Remove newest-card highlighting so every active service point looks the same, sort the board stably by destination, and have the display announce whenever a counter’s ticket changes (falling back when a server voice row is missing).
Co-authored-by: Cursor <cursoragent@cursor.com>
Browsers abort the outer Save settings form when a Reinstall package form is nested inside it. Move reinstall outside the main form and harden update validation so package failures cannot block saving.
Co-authored-by: Cursor <cursoragent@cursor.com>
Queue Core stays generic; selecting Healthcare, Banking, Restaurant, and other industries installs departments, stages (queues), service points, workflows, terminology, and announcement profiles without code changes per vertical. Care-linked orgs skip stage materialization so Care remains the clinical provisioner.
Co-authored-by: Cursor <cursoragent@cursor.com>
Counters gain destination/staff metadata; tickets can be pre-assigned to a
service point with assigned_only queues for healthcare while shared_pool
preserves generic bank/government behavior. Display and announcements expose
ticket, staff, and destination clearly for Care and public boards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Filter now-serving to the latest called/serving ticket per destination so historical calls no longer crowd the public board, and scale ticket cards so numbers no longer clip destination text.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use count-aware ticket grids and complete service destinations so active calls stay legible without clipping across TV and mobile layouts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Handoff now frees the counter, ends the service session, and requeues
the same ticket for the next department — critical for hospital flows
like doctor → lab.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the once-per-session sessionStorage guard (which suppressed the loading
screen after its first appearance) with entry-aware logic: show on app entry
and reloads, suppress on internal link navigations and back/forward.
Match Analytics and Reports styling with shadow panels on the filter bar
and audit table instead of bordered card wrappers.
Co-authored-by: Cursor <cursoragent@cursor.com>
Analytics, Reports, Feedback, and Branches use simple headers again;
report and related show views use shadow panels instead of card borders.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce shared x-qms.page-hero with summary stats across queues,
tickets, counters, admin pages, and insights; remove bordered cards on
Analytics, Reports, Feedback, and Branches list views.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace local member UUID invites with platform email invites, SSO post-auth
redirect, and provisioner-backed pending access until accept.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extract the Pro upsell into a shared partial so free orgs see View plans on the dashboard, not only in the sidebar.
Co-authored-by: Cursor <cursoragent@cursor.com>
When 6/12/24 month Paystack is selected, Pro and Business prices display the full term amount instead of /mo.
Co-authored-by: Cursor <cursoragent@cursor.com>
Enterprise charges per active branch (GHS 299+) with wallet subscribe/renew; sidebar and dashboard upsell no longer gated behind settings.view.
Co-authored-by: Cursor <cursoragent@cursor.com>
Welcome screen, choice cards, form progress, and success state now follow the same lobby-tablet visual language with idle reset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Customers can pick a service, optionally enter details, and receive a ticket on a branded touchscreen flow with admin-configurable queues and auto-reset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the small pill with a two-column layout, accent bar, and prominent counter name for waiting-area displays.
Co-authored-by: Cursor <cursoragent@cursor.com>
Lock layout to 100dvh without scroll, scale ticket cards with clamp(), and replace powered-by text with the dark wordmark.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove waiting, estimate, and service queue sidebar; replace text header with customer logo when uploaded.
Co-authored-by: Cursor <cursoragent@cursor.com>
Server-render initial payload, poll with same-origin relative URLs, fall back to branch queues when none assigned, and improve contrast so stats remain visible if custom CSS is missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add corporate layout, live preview, URL copy, queue details, and a polished TV display with clock, stats sidebar, and branded now-serving cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add tap-to-enable speech overlay, stop marking announcements played on TTS errors, pick voices by locale, and scope pending announcements to the display's queues.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace Alpine-incompatible Set and stuck speaking lock with a plain-object queue; resume speechSynthesis and exempt display ack from CSRF.
Co-authored-by: Cursor <cursoragent@cursor.com>