Let attendees request host-granted microphone access with LiveKit reconnect,
participant panel controls, and toolbar UI that only shows mic when allowed.
Fix Events create URL, surface API key setup guidance, and align the Webinars
sidebar icon with other nav items using currentColor strokes.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop Connecting/Connected and view-only mode text while keeping the active speaker notification line for everyone.
Co-authored-by: Cursor <cursoragent@cursor.com>
Server-render the speaker pill on load, hide noisy connection status on mobile, and use a single sidebarPanel slot so desktop panels replace in place instead of animating side by side.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use programme.svg for conferences and webinars on mobile and desktop; the panel stays available with an empty state when Events has not linked a lineup yet.
Co-authored-by: Cursor <cursoragent@cursor.com>
Attendees reconnect to breakout rooms with publish access while hosts stay on stage; poll and media-token endpoints drive LiveKit reconnection, and the live room shows Events-linked programme when available.
Co-authored-by: Cursor <cursoragent@cursor.com>
Give attendees reaction buttons instead of media controls, gate applause audio until multiple people clap, show the avatar strip in panel layout, and remove the plenary stage subtitle.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show the current stage mode to everyone, redesign the layout picker with clear descriptions, and apply layout changes only when the host saves.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop registerPresenter from demoting hosts to panelists, recognize room owners as managers, and show stage controls in the green room banner.
Co-authored-by: Cursor <cursoragent@cursor.com>
Move the participant name strip below the speaker area instead of overlaying it, and use Ladill profile photos on no-video tiles before falling back to initials.
Co-authored-by: Cursor <cursoragent@cursor.com>
Service rooms support town_hall/webinar types with source lookup, update, and cancel; stage poll no longer overwrites layout while the modal is open.
Co-authored-by: Cursor <cursoragent@cursor.com>
Speakers get a full-screen spotlight with overlapping audience avatars; hosts can configure panels in the green room and switch layouts live.
Co-authored-by: Cursor <cursoragent@cursor.com>
Route guests through silent SSO to the Meet product page, fix Afia context
query, add conference green-room UX and copy, and extend service API for
Care/CRM/Invoice calendar integration.
Co-authored-by: Cursor <cursoragent@cursor.com>
Split town_hall into a Conferences sidebar flow and Spaces-style Rooms with host/speaker/listener roles; enforce audio-only LiveKit UI for rooms; show schedule icon on mobile meetings index.
Co-authored-by: Cursor <cursoragent@cursor.com>
Force light color-scheme on app shells while scoping dark UI to the live room; remove join/restart from list cards and consolidate start/join/rejoin on the details action row; route Join meeting through /r/ so participants are registered before entering /room/.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add restart meeting actions, a dedicated webinar sidebar flow billed at GHS 0.30 per participant, and reserve speaker-line space with a placeholder to prevent layout shift.
Co-authored-by: Cursor <cursoragent@cursor.com>
Highlight speaking participants on video tiles and in the panel, with header copy that names one or multiple speakers at once.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add meet-icons for leave, end, personal, and schedule; dashboard quick actions sit inline with the Meetings heading on small screens.
Co-authored-by: Cursor <cursoragent@cursor.com>
Shared copy-button component shows Copied state on meeting details; mobile More is icon-only and opens the same panel pattern as chat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Poll and waiting-room clients follow the same redirect when the host ends the call; chat and participants use mobile bottom sheets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show mic, camera, share, and More on mobile with Leave/End after a divider,
and move reactions, chat, and hand-raise into the More panel on small screens.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show host-visible waiting badges and enable-audio prompts, harden mic
playback with LiveKit attach patterns, and swipe-scroll meeting controls on mobile.
Co-authored-by: Cursor <cursoragent@cursor.com>
Unlock LiveKit audio after user gesture, respect join mute/video settings,
and replace plain links with btn-secondary pills on the meeting details page.
Co-authored-by: Cursor <cursoragent@cursor.com>
Redesign public join flows on the Frontdesk kiosk template, enforce host
admission when waiting room is enabled, and collect star ratings after leave.
Co-authored-by: Cursor <cursoragent@cursor.com>
Initialize REC/Locked state before Alpine paints, and restore the copy-link
share dropdown on desktop instead of trapping users in native share cancel.
Co-authored-by: Cursor <cursoragent@cursor.com>
Guest joins without email were matching any active participant, overwriting
the host row and granting host controls; header now always shows room host.
Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve participant photos from linked user records for the header host chip and participants panel, with initials as fallback.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show the host initials in the header in-call control and open a live participant list from poll data when it is clicked.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop header, footer, panel, and tile borders in favor of spacing, shadows, and rounded surfaces for a cleaner borderless layout.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove divider lines from the chat sidebar and wrap messages plus the composer in a single rounded box.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wrap the room chrome in a left column so the full-height chat panel pushes header, video, and toolbar together instead of only the main area.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep share in the header only, make chat a full-height side panel that pushes video left, and load meet icons from an allowlisted set with cache busting.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use custom meet-icons assets, custom breakout/end modals instead of native prompts, and relocate share files, recording, and lock controls under the More dropdown.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use meet-icons assets for raise hand, applause, upload, and screen share; move More after lock, redesign the more menu and chat panel with bubbles and close controls.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose join URL and passcode in the room shell with header and toolbar share buttons, native share on supported devices, and a copy-link popover.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use the official LiveKit PHP SDK for tokens, harden client connect/publish timing, keep the Room outside Alpine reactivity, and replace emoji toolbar controls with synced mic/camera toggles and avatar tiles for audio-only participants.
Co-authored-by: Cursor <cursoragent@cursor.com>
Phases 0–18: core meetings, webinar, breakouts, team chat, live streaming, town hall, billing, and Ladill Mail calendar wiring.
Co-authored-by: Cursor <cursoragent@cursor.com>