- Slots panel moves from popup to side-by-side with the calendar
- First available slot is pre-selected (highlighted) on load
- Calendar initializes to the next business day
- eventsSet auto-selects that date if it has availability
- Events endpoint now skips Sat/Sun (N > 5)
- Removed backdrop/close-button popup infrastructure
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- PaletteController: render proper color swatch cards (box + label) and
wrap output in Markup::create() so Drupal's XSS filter doesn't strip
inline style attributes
- riverside_pt.module: scope page_attachments and page_top to
riverside_pt.* routes only — Tailwind preflight was blowing away
Drupal's default form styles on the login page
- settings.php: derive trusted_host_patterns from BASE_URL so the host
and port always agree; prevents localhost:8080 being treated as untrusted
- entrypoint.sh: pass --base-url to drush site:install so Drupal stores
the correct canonical URL from the start
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Home controller with hero and services sections
- Nav rebuilt on install: Home, Services, About, FAQ, Contact (CTA), Book An Appointment (CTA)
- Entrypoint uses IS_SETUP check so failed installs retry on restart
- Gitea Actions workflow builds and pushes multi-arch image to forge.quinefoundation.com
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>