Files
dashcaddy/status/js
Hermes c1fc26c7b0 [pending-judge] feat(DC-168 r2): calendar widget UX + theming — month-window fetch, universal theme contrast, grid UX
Owner directives (verbatim): "show no upcoming appointments" when empty /
"days and times highlighted" when there are events; "properly stylize the
calendar to fit with each theme correctly"; "relatively small widget basically
about the size of the weather widget".

r1 judge blockers fixed:
- .mytheme literal rule replaced by UNIVERSAL theme handling: theme.js tags
  <html> with the class `light-bg` (luminance-derived) for builtin AND user
  themes; chip colors derive via color-mix toward white (dark surfaces, 80%)
  or black (light surfaces, 28%) — no per-slug rules, arbitrarily-named user
  themes covered. Objective WCAG contrast test computes the ratio for ALL 10
  builtin themes from themes.css values: worst case 4.60:1 (ocean), all
  >= 4.5:1.
- Event query now FOLLOWS THE VISIBLE MONTH: windowFor(viewMonth) =
  [prev-month 1st .. current+2mo end]; loaded-range union with refetch when
  grid navigation leaves the loaded window (navigate() -> fetchCalendar).
  Contract test navigates twice and asserts the refetch window extends past
  the initial 60 days.
- [data-theme] comment corrected (implementation uses html.light-bg class).

Also: smoke harness now at dashcaddy-api/.dc168-smoke.js (asserts empty chip
string, events chip, grid cell counts); contract suite 4 tests + 9 ns suite
= 13 calendar tests green; eslint 0 errors.
2026-10-11 23:53:26 -07:00
..
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00

DashCaddy Onboarding System

This directory contains the JavaScript modules for the user onboarding tooltip system.

Files

  • onboarding.js - Main entry point, initializes the onboarding system
  • tour-manager.js - Orchestrates the onboarding flow and manages tour state
  • progress-tracker.js - Manages persistent storage of user progress
  • tooltip-definitions.js - Defines all tooltip content and positioning
  • dns-template-selector.js - Presents DNS server template options
  • theme-adapter.js - Ensures tooltips match the current dashboard theme

Load Order

The scripts are loaded in the following order (as defined in status/index.html):

  1. progress-tracker.js
  2. theme-adapter.js
  3. tooltip-definitions.js
  4. dns-template-selector.js
  5. tour-manager.js
  6. onboarding.js (main initialization)

Dependencies

Integration

The onboarding system integrates with:

  • Dashboard theme system (via CSS variables)
  • App template selector (for DNS server deployment)
  • Local storage (for progress persistence)

Development

Each module is wrapped in an IIFE (Immediately Invoked Function Expression) to avoid global namespace pollution. Modules communicate through well-defined interfaces and the window object where necessary.