@php /** @var array $chatState injected by ChatController@index */ $chatState = $chatState ?? ['counts' => [], 'devices' => [], 'urls' => [], 'csrfToken' => csrf_token()]; $counts = $chatState['counts'] ?? []; $tplCounts = $counts['templates'] ?? []; $devices = $chatState['devices'] ?? []; @endphp
{{ __('bulk send') }}

{{ __('Message queues') }}

{{ __('Select a queue to open the thread and send a test reply.') }}
{{-- Shimmer skeletons during the first conversations.list() fetch. The JS replaces this whole node on success. --}} @for ($i = 0; $i < 4; $i++)
@endfor
--
{{ __('Select a queue') }}
{{ __('No active thread') }}
{{-- "Scheduled for…" indicator. JS toggles .hidden when the user picks a date/time from the schedule modal. --}} {{-- Media preview banner (shown after picking a file from the attach menu, before the message is sent). The JS toggles .hidden and fills #media-preview-body with a thumbnail + filename + size; the X button clears the pending file. --}}
{{-- Real emoji picker — emoji-picker-element web component is mounted here by the JS on first open. Markup is just a host wrapper; categories / search / skin tones come from the package. --}}