@naviedu/room-platform-react 0.0.9 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { Component, createContext, useContext, useState, useRef, useCallback, useEffect, useMemo, useId, forwardRef, useLayoutEffect } from 'react';
3
+ import { Component, useContext, createContext, useState, useRef, useCallback, useEffect, useMemo, useId, forwardRef, useLayoutEffect } from 'react';
4
4
  import { Slot, AlertDialog as AlertDialog$1, Dialog as Dialog$1, Select as Select$1, Tabs as Tabs$1, Tooltip as Tooltip$1 } from 'radix-ui';
5
5
  import { Minimize2, Maximize2, XIcon, ChevronDownIcon, CheckIcon, ChevronUpIcon, Loader2Icon, PhoneOff, Bell, PhoneCall, Hand, VideoOff, ChevronUp, SunDim, Images, ImageUp, Plus, Trash2, Settings, ArrowLeftRight, Monitor, LogOut, Mic, Camera, X, ChevronLeft, ChevronRight, PanelRightOpen, PanelRightClose, Check } from 'lucide-react';
6
- import { toast } from 'sonner';
7
6
  import { RoomEvent, Track, createLocalVideoTrack, Room, DataPacket_Kind } from 'livekit-client';
7
+ import { createPortal } from 'react-dom';
8
+ import { toast, Toaster } from 'sonner';
8
9
  import { VideoTrack, RoomContext, RoomAudioRenderer, StartAudio, useTracks, useRoomContext, TrackToggle } from '@livekit/components-react';
9
10
  import { supportsBackgroundProcessors, BackgroundProcessor } from '@livekit/track-processors';
10
- import { createPortal } from 'react-dom';
11
11
  import { io } from 'socket.io-client';
12
12
 
13
13
  function _assert_this_initialized$2(self) {
@@ -173,7 +173,13 @@ var getParticipantTabTitle = function(participantTab) {
173
173
  };
174
174
 
175
175
  var RoomPlatformCapability = {
176
+ ROOM_JOIN: 'room:join',
177
+ CHAT_SEND: 'chat:send',
178
+ MEDIA_SUBSCRIBE: 'media:subscribe',
179
+ MEDIA_PUBLISH_AUDIO: 'media:publish_audio',
180
+ MEDIA_PUBLISH_VIDEO: 'media:publish_video',
176
181
  MEDIA_SHARE_SCREEN: 'media:share_screen',
182
+ DATA_PUBLISH: 'data:publish',
177
183
  ROOM_SPEAK_REQUEST: 'room:speak_request',
178
184
  ROOM_MODERATE: 'room:moderate',
179
185
  MONITOR_MANAGE: 'monitor:manage',
@@ -182,6 +188,10 @@ var RoomPlatformCapability = {
182
188
  PRIVATE_ROOM_CLOSE: 'private_room:close',
183
189
  WHITEBOARD_CLEAR: 'whiteboard:clear'
184
190
  };
191
+ var roomPlatformCapabilities = Object.values(RoomPlatformCapability);
192
+ var isRoomPlatformCapability = function(value) {
193
+ return roomPlatformCapabilities.includes(value);
194
+ };
185
195
 
186
196
  function _define_property$y(obj, key, value) {
187
197
  if (key in obj) {
@@ -250,16 +260,16 @@ function clsx() {
250
260
  return n;
251
261
  }
252
262
 
253
- function _array_like_to_array$B(arr, len) {
263
+ function _array_like_to_array$C(arr, len) {
254
264
  if (len == null || len > arr.length) len = arr.length;
255
265
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
256
266
  return arr2;
257
267
  }
258
- function _array_with_holes$x(arr) {
268
+ function _array_with_holes$y(arr) {
259
269
  if (Array.isArray(arr)) return arr;
260
270
  }
261
271
  function _array_without_holes$f(arr) {
262
- if (Array.isArray(arr)) return _array_like_to_array$B(arr);
272
+ if (Array.isArray(arr)) return _array_like_to_array$C(arr);
263
273
  }
264
274
  function _define_property$x(obj, key, value) {
265
275
  if (key in obj) {
@@ -277,7 +287,7 @@ function _define_property$x(obj, key, value) {
277
287
  function _iterable_to_array$f(iter) {
278
288
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
279
289
  }
280
- function _iterable_to_array_limit$x(arr, i) {
290
+ function _iterable_to_array_limit$y(arr, i) {
281
291
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
282
292
  if (_i == null) return;
283
293
  var _arr = [];
@@ -301,7 +311,7 @@ function _iterable_to_array_limit$x(arr, i) {
301
311
  }
302
312
  return _arr;
303
313
  }
304
- function _non_iterable_rest$x() {
314
+ function _non_iterable_rest$y() {
305
315
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
306
316
  }
307
317
  function _non_iterable_spread$f() {
@@ -322,19 +332,19 @@ function _object_spread$t(target) {
322
332
  }
323
333
  return target;
324
334
  }
325
- function _sliced_to_array$x(arr, i) {
326
- return _array_with_holes$x(arr) || _iterable_to_array_limit$x(arr, i) || _unsupported_iterable_to_array$B(arr, i) || _non_iterable_rest$x();
335
+ function _sliced_to_array$y(arr, i) {
336
+ return _array_with_holes$y(arr) || _iterable_to_array_limit$y(arr, i) || _unsupported_iterable_to_array$C(arr, i) || _non_iterable_rest$y();
327
337
  }
328
338
  function _to_consumable_array$f(arr) {
329
- return _array_without_holes$f(arr) || _iterable_to_array$f(arr) || _unsupported_iterable_to_array$B(arr) || _non_iterable_spread$f();
339
+ return _array_without_holes$f(arr) || _iterable_to_array$f(arr) || _unsupported_iterable_to_array$C(arr) || _non_iterable_spread$f();
330
340
  }
331
- function _unsupported_iterable_to_array$B(o, minLen) {
341
+ function _unsupported_iterable_to_array$C(o, minLen) {
332
342
  if (!o) return;
333
- if (typeof o === "string") return _array_like_to_array$B(o, minLen);
343
+ if (typeof o === "string") return _array_like_to_array$C(o, minLen);
334
344
  var n = Object.prototype.toString.call(o).slice(8, -1);
335
345
  if (n === "Object" && o.constructor) n = o.constructor.name;
336
346
  if (n === "Map" || n === "Set") return Array.from(n);
337
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$B(o, minLen);
347
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$C(o, minLen);
338
348
  }
339
349
  /**
340
350
  * Concatenates two arrays faster than the array spread operator.
@@ -493,7 +503,7 @@ var processObjectDefinition = function(classDefinition, classPartObject, classGr
493
503
  var entries = Object.entries(classDefinition);
494
504
  var len = entries.length;
495
505
  for(var i = 0; i < len; i++){
496
- var _entries_i = _sliced_to_array$x(entries[i], 2), key = _entries_i[0], value = _entries_i[1];
506
+ var _entries_i = _sliced_to_array$y(entries[i], 2), key = _entries_i[0], value = _entries_i[1];
497
507
  processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);
498
508
  }
499
509
  };
@@ -5283,16 +5293,16 @@ function cn() {
5283
5293
  return twMerge(clsx(inputs));
5284
5294
  }
5285
5295
 
5286
- function _array_like_to_array$A(arr, len) {
5296
+ function _array_like_to_array$B(arr, len) {
5287
5297
  if (len == null || len > arr.length) len = arr.length;
5288
5298
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5289
5299
  return arr2;
5290
5300
  }
5291
- function _array_with_holes$w(arr) {
5301
+ function _array_with_holes$x(arr) {
5292
5302
  if (Array.isArray(arr)) return arr;
5293
5303
  }
5294
5304
  function _array_without_holes$e(arr) {
5295
- if (Array.isArray(arr)) return _array_like_to_array$A(arr);
5305
+ if (Array.isArray(arr)) return _array_like_to_array$B(arr);
5296
5306
  }
5297
5307
  function _define_property$w(obj, key, value) {
5298
5308
  if (key in obj) {
@@ -5310,7 +5320,7 @@ function _define_property$w(obj, key, value) {
5310
5320
  function _iterable_to_array$e(iter) {
5311
5321
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
5312
5322
  }
5313
- function _iterable_to_array_limit$w(arr, i) {
5323
+ function _iterable_to_array_limit$x(arr, i) {
5314
5324
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
5315
5325
  if (_i == null) return;
5316
5326
  var _arr = [];
@@ -5334,7 +5344,7 @@ function _iterable_to_array_limit$w(arr, i) {
5334
5344
  }
5335
5345
  return _arr;
5336
5346
  }
5337
- function _non_iterable_rest$w() {
5347
+ function _non_iterable_rest$x() {
5338
5348
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5339
5349
  }
5340
5350
  function _non_iterable_spread$e() {
@@ -5391,19 +5401,19 @@ function _object_without_properties_loose$f(source, excluded) {
5391
5401
  }
5392
5402
  return target;
5393
5403
  }
5394
- function _sliced_to_array$w(arr, i) {
5395
- return _array_with_holes$w(arr) || _iterable_to_array_limit$w(arr, i) || _unsupported_iterable_to_array$A(arr, i) || _non_iterable_rest$w();
5404
+ function _sliced_to_array$x(arr, i) {
5405
+ return _array_with_holes$x(arr) || _iterable_to_array_limit$x(arr, i) || _unsupported_iterable_to_array$B(arr, i) || _non_iterable_rest$x();
5396
5406
  }
5397
5407
  function _to_consumable_array$e(arr) {
5398
- return _array_without_holes$e(arr) || _iterable_to_array$e(arr) || _unsupported_iterable_to_array$A(arr) || _non_iterable_spread$e();
5408
+ return _array_without_holes$e(arr) || _iterable_to_array$e(arr) || _unsupported_iterable_to_array$B(arr) || _non_iterable_spread$e();
5399
5409
  }
5400
- function _unsupported_iterable_to_array$A(o, minLen) {
5410
+ function _unsupported_iterable_to_array$B(o, minLen) {
5401
5411
  if (!o) return;
5402
- if (typeof o === "string") return _array_like_to_array$A(o, minLen);
5412
+ if (typeof o === "string") return _array_like_to_array$B(o, minLen);
5403
5413
  var n = Object.prototype.toString.call(o).slice(8, -1);
5404
5414
  if (n === "Object" && o.constructor) n = o.constructor.name;
5405
5415
  if (n === "Map" || n === "Set") return Array.from(n);
5406
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$A(o, minLen);
5416
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$B(o, minLen);
5407
5417
  }
5408
5418
  var falsyToString = function(value) {
5409
5419
  return typeof value === "boolean" ? "".concat(value) : value === 0 ? "0" : value;
@@ -5422,7 +5432,7 @@ var cva = function(base, config) {
5422
5432
  return variants[variant][variantKey];
5423
5433
  });
5424
5434
  var propsWithoutUndefined = props && Object.entries(props).reduce(function(acc, param) {
5425
- var _param = _sliced_to_array$w(param, 2), key = _param[0], value = _param[1];
5435
+ var _param = _sliced_to_array$x(param, 2), key = _param[0], value = _param[1];
5426
5436
  if (value === undefined) {
5427
5437
  return acc;
5428
5438
  }
@@ -5435,7 +5445,7 @@ var cva = function(base, config) {
5435
5445
  "className"
5436
5446
  ]);
5437
5447
  return Object.entries(compoundVariantOptions).every(function(param) {
5438
- var _param = _sliced_to_array$w(param, 2), key = _param[0], value = _param[1];
5448
+ var _param = _sliced_to_array$x(param, 2), key = _param[0], value = _param[1];
5439
5449
  return Array.isArray(value) ? value.includes(_object_spread$s({}, defaultVariants, propsWithoutUndefined)[key]) : _object_spread$s({}, defaultVariants, propsWithoutUndefined)[key] === value;
5440
5450
  }) ? _to_consumable_array$e(acc).concat([
5441
5451
  cvClass,
@@ -5558,6 +5568,18 @@ function Button(_0) {
5558
5568
  }, props));
5559
5569
  }
5560
5570
 
5571
+ var PortalContainerContext = /*#__PURE__*/ createContext(null);
5572
+ function PortalContainerProvider(param) {
5573
+ var children = param.children, container = param.container;
5574
+ return /*#__PURE__*/ jsx(PortalContainerContext.Provider, {
5575
+ value: container,
5576
+ children: children
5577
+ });
5578
+ }
5579
+ function usePortalContainer() {
5580
+ return useContext(PortalContainerContext);
5581
+ }
5582
+
5561
5583
  function _define_property$u(obj, key, value) {
5562
5584
  if (key in obj) {
5563
5585
  Object.defineProperty(obj, key, {
@@ -5604,6 +5626,25 @@ function _object_spread$q(target) {
5604
5626
  }
5605
5627
  return target;
5606
5628
  }
5629
+ function ownKeys$l(object, enumerableOnly) {
5630
+ var keys = Object.keys(object);
5631
+ if (Object.getOwnPropertySymbols) {
5632
+ var symbols = Object.getOwnPropertySymbols(object);
5633
+ keys.push.apply(keys, symbols);
5634
+ }
5635
+ return keys;
5636
+ }
5637
+ function _object_spread_props$l(target, source) {
5638
+ source = source != null ? source : {};
5639
+ if (Object.getOwnPropertyDescriptors) {
5640
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
5641
+ } else {
5642
+ ownKeys$l(Object(source)).forEach(function(key) {
5643
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
5644
+ });
5645
+ }
5646
+ return target;
5647
+ }
5607
5648
  function _object_without_properties$d(source, excluded) {
5608
5649
  if (source == null) return {};
5609
5650
  var target = {}, sourceKeys, key, i;
@@ -5647,10 +5688,16 @@ function AlertDialog(_0) {
5647
5688
  }, props));
5648
5689
  }
5649
5690
  function AlertDialogPortal(_0) {
5650
- _object_destructuring_empty$3(_0); var props = _extends$3({}, _0);
5651
- return /*#__PURE__*/ jsx(AlertDialog$1.Portal, _object_spread$q({
5691
+ var container = _0.container, props = _object_without_properties$d(_0, [
5692
+ "container"
5693
+ ]);
5694
+ var _ref;
5695
+ var inheritedContainer = usePortalContainer();
5696
+ return /*#__PURE__*/ jsx(AlertDialog$1.Portal, _object_spread_props$l(_object_spread$q({
5652
5697
  "data-slot": "alert-dialog-portal"
5653
- }, props));
5698
+ }, props), {
5699
+ container: (_ref = container !== null && container !== void 0 ? container : inheritedContainer) !== null && _ref !== void 0 ? _ref : undefined
5700
+ }));
5654
5701
  }
5655
5702
  function AlertDialogOverlay(_0) {
5656
5703
  var className = _0.className, props = _object_without_properties$d(_0, [
@@ -5841,12 +5888,12 @@ function Badge(_0) {
5841
5888
  }, props));
5842
5889
  }
5843
5890
 
5844
- function _array_like_to_array$z(arr, len) {
5891
+ function _array_like_to_array$A(arr, len) {
5845
5892
  if (len == null || len > arr.length) len = arr.length;
5846
5893
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5847
5894
  return arr2;
5848
5895
  }
5849
- function _array_with_holes$v(arr) {
5896
+ function _array_with_holes$w(arr) {
5850
5897
  if (Array.isArray(arr)) return arr;
5851
5898
  }
5852
5899
  function _define_property$s(obj, key, value) {
@@ -5876,7 +5923,7 @@ function _extends$2() {
5876
5923
  };
5877
5924
  return _extends$2.apply(this, arguments);
5878
5925
  }
5879
- function _iterable_to_array_limit$v(arr, i) {
5926
+ function _iterable_to_array_limit$w(arr, i) {
5880
5927
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
5881
5928
  if (_i == null) return;
5882
5929
  var _arr = [];
@@ -5900,7 +5947,7 @@ function _iterable_to_array_limit$v(arr, i) {
5900
5947
  }
5901
5948
  return _arr;
5902
5949
  }
5903
- function _non_iterable_rest$v() {
5950
+ function _non_iterable_rest$w() {
5904
5951
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5905
5952
  }
5906
5953
  function _object_destructuring_empty$2(o) {
@@ -5977,16 +6024,16 @@ function _object_without_properties_loose$b(source, excluded) {
5977
6024
  }
5978
6025
  return target;
5979
6026
  }
5980
- function _sliced_to_array$v(arr, i) {
5981
- return _array_with_holes$v(arr) || _iterable_to_array_limit$v(arr, i) || _unsupported_iterable_to_array$z(arr, i) || _non_iterable_rest$v();
6027
+ function _sliced_to_array$w(arr, i) {
6028
+ return _array_with_holes$w(arr) || _iterable_to_array_limit$w(arr, i) || _unsupported_iterable_to_array$A(arr, i) || _non_iterable_rest$w();
5982
6029
  }
5983
- function _unsupported_iterable_to_array$z(o, minLen) {
6030
+ function _unsupported_iterable_to_array$A(o, minLen) {
5984
6031
  if (!o) return;
5985
- if (typeof o === "string") return _array_like_to_array$z(o, minLen);
6032
+ if (typeof o === "string") return _array_like_to_array$A(o, minLen);
5986
6033
  var n = Object.prototype.toString.call(o).slice(8, -1);
5987
6034
  if (n === "Object" && o.constructor) n = o.constructor.name;
5988
6035
  if (n === "Map" || n === "Set") return Array.from(n);
5989
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$z(o, minLen);
6036
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$A(o, minLen);
5990
6037
  }
5991
6038
  function Dialog(_0) {
5992
6039
  _object_destructuring_empty$2(_0); var props = _extends$2({}, _0);
@@ -5995,10 +6042,16 @@ function Dialog(_0) {
5995
6042
  }, props));
5996
6043
  }
5997
6044
  function DialogPortal(_0) {
5998
- _object_destructuring_empty$2(_0); var props = _extends$2({}, _0);
5999
- return /*#__PURE__*/ jsx(Dialog$1.Portal, _object_spread$o({
6045
+ var container = _0.container, props = _object_without_properties$b(_0, [
6046
+ "container"
6047
+ ]);
6048
+ var _ref;
6049
+ var inheritedContainer = usePortalContainer();
6050
+ return /*#__PURE__*/ jsx(Dialog$1.Portal, _object_spread_props$k(_object_spread$o({
6000
6051
  "data-slot": "dialog-portal"
6001
- }, props));
6052
+ }, props), {
6053
+ container: (_ref = container !== null && container !== void 0 ? container : inheritedContainer) !== null && _ref !== void 0 ? _ref : undefined
6054
+ }));
6002
6055
  }
6003
6056
  function DialogOverlay(_0) {
6004
6057
  var className = _0.className, props = _object_without_properties$b(_0, [
@@ -6016,7 +6069,7 @@ function DialogContent(_0) {
6016
6069
  "showCloseButton",
6017
6070
  "maximizable"
6018
6071
  ]);
6019
- var _React_useState = _sliced_to_array$v(React.useState(false), 2), isMaximized = _React_useState[0], setIsMaximized = _React_useState[1];
6072
+ var _React_useState = _sliced_to_array$w(React.useState(false), 2), isMaximized = _React_useState[0], setIsMaximized = _React_useState[1];
6020
6073
  return /*#__PURE__*/ jsxs(DialogPortal, {
6021
6074
  children: [
6022
6075
  /*#__PURE__*/ jsx(DialogOverlay, {}),
@@ -6245,13 +6298,17 @@ function SelectTrigger(_0) {
6245
6298
  }));
6246
6299
  }
6247
6300
  function SelectContent(_0) {
6248
- var className = _0.className, children = _0.children, _0_position = _0.position, position = _0_position === void 0 ? 'item-aligned' : _0_position, _0_align = _0.align, align = _0_align === void 0 ? 'center' : _0_align, props = _object_without_properties$a(_0, [
6301
+ var className = _0.className, children = _0.children, _0_position = _0.position, position = _0_position === void 0 ? 'item-aligned' : _0_position, _0_align = _0.align, align = _0_align === void 0 ? 'center' : _0_align, container = _0.container, props = _object_without_properties$a(_0, [
6249
6302
  "className",
6250
6303
  "children",
6251
6304
  "position",
6252
- "align"
6305
+ "align",
6306
+ "container"
6253
6307
  ]);
6308
+ var _ref;
6309
+ var inheritedContainer = usePortalContainer();
6254
6310
  return /*#__PURE__*/ jsx(Select$1.Portal, {
6311
+ container: (_ref = container !== null && container !== void 0 ? container : inheritedContainer) !== null && _ref !== void 0 ? _ref : undefined,
6255
6312
  children: /*#__PURE__*/ jsxs(Select$1.Content, _object_spread_props$j(_object_spread$n({
6256
6313
  "data-slot": "select-content",
6257
6314
  "data-align-trigger": position === 'item-aligned',
@@ -6636,12 +6693,16 @@ function TooltipTrigger(_0) {
6636
6693
  }, props));
6637
6694
  }
6638
6695
  function TooltipContent(_0) {
6639
- var className = _0.className, _0_sideOffset = _0.sideOffset, sideOffset = _0_sideOffset === void 0 ? 4 : _0_sideOffset, children = _0.children, props = _object_without_properties$7(_0, [
6696
+ var className = _0.className, _0_sideOffset = _0.sideOffset, sideOffset = _0_sideOffset === void 0 ? 4 : _0_sideOffset, children = _0.children, container = _0.container, props = _object_without_properties$7(_0, [
6640
6697
  "className",
6641
6698
  "sideOffset",
6642
- "children"
6699
+ "children",
6700
+ "container"
6643
6701
  ]);
6702
+ var _ref;
6703
+ var inheritedContainer = usePortalContainer();
6644
6704
  return /*#__PURE__*/ jsx(Tooltip$1.Portal, {
6705
+ container: (_ref = container !== null && container !== void 0 ? container : inheritedContainer) !== null && _ref !== void 0 ? _ref : undefined,
6645
6706
  children: /*#__PURE__*/ jsxs(Tooltip$1.Content, _object_spread_props$i(_object_spread$k({
6646
6707
  "data-slot": "tooltip-content",
6647
6708
  sideOffset: sideOffset,
@@ -6732,16 +6793,16 @@ var RoomPlatformRuntimeErrorCode = {
6732
6793
  LIVEKIT_TOKEN_EXPIRED: 'LIVEKIT_TOKEN_EXPIRED'
6733
6794
  };
6734
6795
 
6735
- function _array_like_to_array$y(arr, len) {
6796
+ function _array_like_to_array$z(arr, len) {
6736
6797
  if (len == null || len > arr.length) len = arr.length;
6737
6798
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
6738
6799
  return arr2;
6739
6800
  }
6740
- function _array_with_holes$u(arr) {
6801
+ function _array_with_holes$v(arr) {
6741
6802
  if (Array.isArray(arr)) return arr;
6742
6803
  }
6743
6804
  function _array_without_holes$d(arr) {
6744
- if (Array.isArray(arr)) return _array_like_to_array$y(arr);
6805
+ if (Array.isArray(arr)) return _array_like_to_array$z(arr);
6745
6806
  }
6746
6807
  function _assert_this_initialized$1(self) {
6747
6808
  if (self === void 0) {
@@ -6849,7 +6910,7 @@ function _is_native_function$1(fn) {
6849
6910
  function _iterable_to_array$d(iter) {
6850
6911
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
6851
6912
  }
6852
- function _iterable_to_array_limit$u(arr, i) {
6913
+ function _iterable_to_array_limit$v(arr, i) {
6853
6914
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
6854
6915
  if (_i == null) return;
6855
6916
  var _arr = [];
@@ -6873,7 +6934,7 @@ function _iterable_to_array_limit$u(arr, i) {
6873
6934
  }
6874
6935
  return _arr;
6875
6936
  }
6876
- function _non_iterable_rest$u() {
6937
+ function _non_iterable_rest$v() {
6877
6938
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6878
6939
  }
6879
6940
  function _non_iterable_spread$d() {
@@ -6926,23 +6987,23 @@ function _set_prototype_of$1(o, p) {
6926
6987
  };
6927
6988
  return _set_prototype_of$1(o, p);
6928
6989
  }
6929
- function _sliced_to_array$u(arr, i) {
6930
- return _array_with_holes$u(arr) || _iterable_to_array_limit$u(arr, i) || _unsupported_iterable_to_array$y(arr, i) || _non_iterable_rest$u();
6990
+ function _sliced_to_array$v(arr, i) {
6991
+ return _array_with_holes$v(arr) || _iterable_to_array_limit$v(arr, i) || _unsupported_iterable_to_array$z(arr, i) || _non_iterable_rest$v();
6931
6992
  }
6932
6993
  function _to_consumable_array$d(arr) {
6933
- return _array_without_holes$d(arr) || _iterable_to_array$d(arr) || _unsupported_iterable_to_array$y(arr) || _non_iterable_spread$d();
6994
+ return _array_without_holes$d(arr) || _iterable_to_array$d(arr) || _unsupported_iterable_to_array$z(arr) || _non_iterable_spread$d();
6934
6995
  }
6935
6996
  function _type_of$a(obj) {
6936
6997
  "@swc/helpers - typeof";
6937
6998
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
6938
6999
  }
6939
- function _unsupported_iterable_to_array$y(o, minLen) {
7000
+ function _unsupported_iterable_to_array$z(o, minLen) {
6940
7001
  if (!o) return;
6941
- if (typeof o === "string") return _array_like_to_array$y(o, minLen);
7002
+ if (typeof o === "string") return _array_like_to_array$z(o, minLen);
6942
7003
  var n = Object.prototype.toString.call(o).slice(8, -1);
6943
7004
  if (n === "Object" && o.constructor) n = o.constructor.name;
6944
7005
  if (n === "Map" || n === "Set") return Array.from(n);
6945
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$y(o, minLen);
7006
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$z(o, minLen);
6946
7007
  }
6947
7008
  function _wrap_native_super$1(Class) {
6948
7009
  var _cache = typeof Map === "function" ? new Map() : undefined;
@@ -7116,7 +7177,7 @@ var createIdempotencyKey$1 = function() {
7116
7177
  var actionPendingKey = function(name, payload) {
7117
7178
  if (!payload) return name;
7118
7179
  return "".concat(name, ":").concat(JSON.stringify(Object.entries(payload).sort(function(param, param1) {
7119
- var _param = _sliced_to_array$u(param, 1), left = _param[0], _param1 = _sliced_to_array$u(param1, 1), right = _param1[0];
7180
+ var _param = _sliced_to_array$v(param, 1), left = _param[0], _param1 = _sliced_to_array$v(param1, 1), right = _param1[0];
7120
7181
  return left.localeCompare(right);
7121
7182
  })));
7122
7183
  };
@@ -7221,21 +7282,21 @@ var activeDevicesStateOf = function(room) {
7221
7282
  };
7222
7283
  function RoomPlatformProvider(param) {
7223
7284
  var apiBaseUrl = param.apiBaseUrl, children = param.children, launchToken = param.launchToken, onError = param.onError, onLifecycleEvent = param.onLifecycleEvent, onLaunchTicketRequired = param.onLaunchTicketRequired;
7224
- var _useState = _sliced_to_array$u(useState(), 2), access = _useState[0], setAccess = _useState[1];
7225
- var _useState1 = _sliced_to_array$u(useState(emptyActiveDevices), 2), activeDevices = _useState1[0], setActiveDevices = _useState1[1];
7226
- var _useState2 = _sliced_to_array$u(useState(), 2), actionError = _useState2[0], setActionError = _useState2[1];
7227
- var _useState3 = _sliced_to_array$u(useState(), 2), controlState = _useState3[0], setControlState = _useState3[1];
7228
- var _useState4 = _sliced_to_array$u(useState(), 2), error = _useState4[0], setError = _useState4[1];
7229
- var _useState5 = _sliced_to_array$u(useState(null), 2), localCameraTrack = _useState5[0], setLocalCameraTrack = _useState5[1];
7230
- var _useState6 = _sliced_to_array$u(useState(null), 2), localPreviewTrack = _useState6[0], setLocalPreviewTrack = _useState6[1];
7231
- var _useState7 = _sliced_to_array$u(useState(emptyLocalMediaState), 2), localMedia = _useState7[0], setLocalMedia = _useState7[1];
7232
- var _useState8 = _sliced_to_array$u(useState(), 2), privateRoom = _useState8[0], setPrivateRoom = _useState8[1];
7233
- var _useState9 = _sliced_to_array$u(useState(), 2), privateRoomConnection = _useState9[0], setPrivateRoomConnection = _useState9[1];
7234
- var _useState10 = _sliced_to_array$u(useState(false), 2), privateMediaRestorePending = _useState10[0], setPrivateMediaRestorePending = _useState10[1];
7235
- var _useState11 = _sliced_to_array$u(useState([]), 2), pendingActionKeys = _useState11[0], setPendingActionKeys = _useState11[1];
7236
- var _useState12 = _sliced_to_array$u(useState([]), 2), pendingLocalMediaKinds = _useState12[0], setPendingLocalMediaKinds = _useState12[1];
7237
- var _useState13 = _sliced_to_array$u(useState(null), 2), room = _useState13[0], setRoom = _useState13[1];
7238
- var _useState14 = _sliced_to_array$u(useState('connecting'), 2), status = _useState14[0], setStatus = _useState14[1];
7285
+ var _useState = _sliced_to_array$v(useState(), 2), access = _useState[0], setAccess = _useState[1];
7286
+ var _useState1 = _sliced_to_array$v(useState(emptyActiveDevices), 2), activeDevices = _useState1[0], setActiveDevices = _useState1[1];
7287
+ var _useState2 = _sliced_to_array$v(useState(), 2), actionError = _useState2[0], setActionError = _useState2[1];
7288
+ var _useState3 = _sliced_to_array$v(useState(), 2), controlState = _useState3[0], setControlState = _useState3[1];
7289
+ var _useState4 = _sliced_to_array$v(useState(), 2), error = _useState4[0], setError = _useState4[1];
7290
+ var _useState5 = _sliced_to_array$v(useState(null), 2), localCameraTrack = _useState5[0], setLocalCameraTrack = _useState5[1];
7291
+ var _useState6 = _sliced_to_array$v(useState(null), 2), localPreviewTrack = _useState6[0], setLocalPreviewTrack = _useState6[1];
7292
+ var _useState7 = _sliced_to_array$v(useState(emptyLocalMediaState), 2), localMedia = _useState7[0], setLocalMedia = _useState7[1];
7293
+ var _useState8 = _sliced_to_array$v(useState(), 2), privateRoom = _useState8[0], setPrivateRoom = _useState8[1];
7294
+ var _useState9 = _sliced_to_array$v(useState(), 2), privateRoomConnection = _useState9[0], setPrivateRoomConnection = _useState9[1];
7295
+ var _useState10 = _sliced_to_array$v(useState(false), 2), privateMediaRestorePending = _useState10[0], setPrivateMediaRestorePending = _useState10[1];
7296
+ var _useState11 = _sliced_to_array$v(useState([]), 2), pendingActionKeys = _useState11[0], setPendingActionKeys = _useState11[1];
7297
+ var _useState12 = _sliced_to_array$v(useState([]), 2), pendingLocalMediaKinds = _useState12[0], setPendingLocalMediaKinds = _useState12[1];
7298
+ var _useState13 = _sliced_to_array$v(useState(null), 2), room = _useState13[0], setRoom = _useState13[1];
7299
+ var _useState14 = _sliced_to_array$v(useState('connecting'), 2), status = _useState14[0], setStatus = _useState14[1];
7239
7300
  var isMountedRef = useRef(false);
7240
7301
  var accessRef = useRef(undefined);
7241
7302
  var controlStateRef = useRef(undefined);
@@ -8642,12 +8703,46 @@ function useRoomPlatform() {
8642
8703
  return context;
8643
8704
  }
8644
8705
 
8645
- function _array_like_to_array$x(arr, len) {
8706
+ var RoomPlatformToastContext = /*#__PURE__*/ createContext({
8707
+ error: function(message) {
8708
+ return toast.error(message);
8709
+ }
8710
+ });
8711
+ function RoomPlatformToastProvider(param) {
8712
+ var children = param.children;
8713
+ var portalContainer = usePortalContainer();
8714
+ var toasterId = useId();
8715
+ var roomPlatformToast = useMemo(function() {
8716
+ return {
8717
+ error: function(message) {
8718
+ return toast.error(message, {
8719
+ toasterId: toasterId
8720
+ });
8721
+ }
8722
+ };
8723
+ }, [
8724
+ toasterId
8725
+ ]);
8726
+ return /*#__PURE__*/ jsxs(RoomPlatformToastContext.Provider, {
8727
+ value: roomPlatformToast,
8728
+ children: [
8729
+ children,
8730
+ portalContainer ? /*#__PURE__*/ createPortal(/*#__PURE__*/ jsx(Toaster, {
8731
+ id: toasterId
8732
+ }), portalContainer) : null
8733
+ ]
8734
+ });
8735
+ }
8736
+ function useRoomPlatformToast() {
8737
+ return useContext(RoomPlatformToastContext);
8738
+ }
8739
+
8740
+ function _array_like_to_array$y(arr, len) {
8646
8741
  if (len == null || len > arr.length) len = arr.length;
8647
8742
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
8648
8743
  return arr2;
8649
8744
  }
8650
- function _array_with_holes$t(arr) {
8745
+ function _array_with_holes$u(arr) {
8651
8746
  if (Array.isArray(arr)) return arr;
8652
8747
  }
8653
8748
  function asyncGeneratorStep$l(gen, resolve, reject, _next, _throw, key, arg) {
@@ -8679,7 +8774,7 @@ function _async_to_generator$l(fn) {
8679
8774
  });
8680
8775
  };
8681
8776
  }
8682
- function _iterable_to_array_limit$t(arr, i) {
8777
+ function _iterable_to_array_limit$u(arr, i) {
8683
8778
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
8684
8779
  if (_i == null) return;
8685
8780
  var _arr = [];
@@ -8703,19 +8798,19 @@ function _iterable_to_array_limit$t(arr, i) {
8703
8798
  }
8704
8799
  return _arr;
8705
8800
  }
8706
- function _non_iterable_rest$t() {
8801
+ function _non_iterable_rest$u() {
8707
8802
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
8708
8803
  }
8709
- function _sliced_to_array$t(arr, i) {
8710
- return _array_with_holes$t(arr) || _iterable_to_array_limit$t(arr, i) || _unsupported_iterable_to_array$x(arr, i) || _non_iterable_rest$t();
8804
+ function _sliced_to_array$u(arr, i) {
8805
+ return _array_with_holes$u(arr) || _iterable_to_array_limit$u(arr, i) || _unsupported_iterable_to_array$y(arr, i) || _non_iterable_rest$u();
8711
8806
  }
8712
- function _unsupported_iterable_to_array$x(o, minLen) {
8807
+ function _unsupported_iterable_to_array$y(o, minLen) {
8713
8808
  if (!o) return;
8714
- if (typeof o === "string") return _array_like_to_array$x(o, minLen);
8809
+ if (typeof o === "string") return _array_like_to_array$y(o, minLen);
8715
8810
  var n = Object.prototype.toString.call(o).slice(8, -1);
8716
8811
  if (n === "Object" && o.constructor) n = o.constructor.name;
8717
8812
  if (n === "Map" || n === "Set") return Array.from(n);
8718
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$x(o, minLen);
8813
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$y(o, minLen);
8719
8814
  }
8720
8815
  function _ts_generator$l(thisArg, body) {
8721
8816
  var f, y, t, _ = {
@@ -8870,9 +8965,9 @@ function useRoomPlatformPrivateRoom() {
8870
8965
  var _useRoomPlatformPrivateRoomContext = useRoomPlatformPrivateRoomContext(), projectedPrivateRoom = _useRoomPlatformPrivateRoomContext.privateRoom, projectedPrivateRoomConnection = _useRoomPlatformPrivateRoomContext.privateRoomConnection;
8871
8966
  var privateRoom = isValidPrivateRoomProjection(projectedPrivateRoom) ? projectedPrivateRoom : undefined;
8872
8967
  var privateRoomConnection = privateRoom && isValidPrivateRoomConnection(projectedPrivateRoomConnection, privateRoom) ? projectedPrivateRoomConnection : undefined;
8873
- var _useState = _sliced_to_array$t(useState(false), 2), isAcceptingPrivateRoom = _useState[0], setIsAcceptingPrivateRoom = _useState[1];
8874
- var _useState1 = _sliced_to_array$t(useState(false), 2), isEndingPrivateRoom = _useState1[0], setIsEndingPrivateRoom = _useState1[1];
8875
- var _useState2 = _sliced_to_array$t(useState(), 2), privateRoomReturnedNoticeId = _useState2[0], setPrivateRoomReturnedNoticeId = _useState2[1];
8968
+ var _useState = _sliced_to_array$u(useState(false), 2), isAcceptingPrivateRoom = _useState[0], setIsAcceptingPrivateRoom = _useState[1];
8969
+ var _useState1 = _sliced_to_array$u(useState(false), 2), isEndingPrivateRoom = _useState1[0], setIsEndingPrivateRoom = _useState1[1];
8970
+ var _useState2 = _sliced_to_array$u(useState(), 2), privateRoomReturnedNoticeId = _useState2[0], setPrivateRoomReturnedNoticeId = _useState2[1];
8876
8971
  var actorExternalId = externalActorIdFromMetadata$1(room === null || room === void 0 ? void 0 : room.localParticipant.metadata);
8877
8972
  var isCaller = Boolean(actorExternalId && (privateRoom === null || privateRoom === void 0 ? void 0 : privateRoom.callerExternalActorId) === actorExternalId);
8878
8973
  var isStudent = Boolean(actorExternalId && (privateRoom === null || privateRoom === void 0 ? void 0 : privateRoom.studentExternalActorId) === actorExternalId);
@@ -9123,21 +9218,21 @@ function useRoomPlatformPrivateRoomPendingState() {
9123
9218
  };
9124
9219
  }
9125
9220
 
9126
- function _array_like_to_array$w(arr, len) {
9221
+ function _array_like_to_array$x(arr, len) {
9127
9222
  if (len == null || len > arr.length) len = arr.length;
9128
9223
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
9129
9224
  return arr2;
9130
9225
  }
9131
- function _array_with_holes$s(arr) {
9226
+ function _array_with_holes$t(arr) {
9132
9227
  if (Array.isArray(arr)) return arr;
9133
9228
  }
9134
9229
  function _array_without_holes$c(arr) {
9135
- if (Array.isArray(arr)) return _array_like_to_array$w(arr);
9230
+ if (Array.isArray(arr)) return _array_like_to_array$x(arr);
9136
9231
  }
9137
9232
  function _iterable_to_array$c(iter) {
9138
9233
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
9139
9234
  }
9140
- function _iterable_to_array_limit$s(arr, i) {
9235
+ function _iterable_to_array_limit$t(arr, i) {
9141
9236
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
9142
9237
  if (_i == null) return;
9143
9238
  var _arr = [];
@@ -9161,29 +9256,29 @@ function _iterable_to_array_limit$s(arr, i) {
9161
9256
  }
9162
9257
  return _arr;
9163
9258
  }
9164
- function _non_iterable_rest$s() {
9259
+ function _non_iterable_rest$t() {
9165
9260
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9166
9261
  }
9167
9262
  function _non_iterable_spread$c() {
9168
9263
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9169
9264
  }
9170
- function _sliced_to_array$s(arr, i) {
9171
- return _array_with_holes$s(arr) || _iterable_to_array_limit$s(arr, i) || _unsupported_iterable_to_array$w(arr, i) || _non_iterable_rest$s();
9265
+ function _sliced_to_array$t(arr, i) {
9266
+ return _array_with_holes$t(arr) || _iterable_to_array_limit$t(arr, i) || _unsupported_iterable_to_array$x(arr, i) || _non_iterable_rest$t();
9172
9267
  }
9173
9268
  function _to_consumable_array$c(arr) {
9174
- return _array_without_holes$c(arr) || _iterable_to_array$c(arr) || _unsupported_iterable_to_array$w(arr) || _non_iterable_spread$c();
9269
+ return _array_without_holes$c(arr) || _iterable_to_array$c(arr) || _unsupported_iterable_to_array$x(arr) || _non_iterable_spread$c();
9175
9270
  }
9176
9271
  function _type_of$9(obj) {
9177
9272
  "@swc/helpers - typeof";
9178
9273
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
9179
9274
  }
9180
- function _unsupported_iterable_to_array$w(o, minLen) {
9275
+ function _unsupported_iterable_to_array$x(o, minLen) {
9181
9276
  if (!o) return;
9182
- if (typeof o === "string") return _array_like_to_array$w(o, minLen);
9277
+ if (typeof o === "string") return _array_like_to_array$x(o, minLen);
9183
9278
  var n = Object.prototype.toString.call(o).slice(8, -1);
9184
9279
  if (n === "Object" && o.constructor) n = o.constructor.name;
9185
9280
  if (n === "Map" || n === "Set") return Array.from(n);
9186
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$w(o, minLen);
9281
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$x(o, minLen);
9187
9282
  }
9188
9283
  var externalActorIdFromMetadata = function(metadata) {
9189
9284
  if (!metadata) return undefined;
@@ -9231,7 +9326,7 @@ var snapshotPresence = function(room, controlState) {
9231
9326
  };
9232
9327
  function useRoomPresence() {
9233
9328
  var _useRoomPlatform = useRoomPlatform(), controlState = _useRoomPlatform.controlState, room = _useRoomPlatform.room;
9234
- var _useState = _sliced_to_array$s(useState(function() {
9329
+ var _useState = _sliced_to_array$t(useState(function() {
9235
9330
  return snapshotPresence(room, controlState);
9236
9331
  }), 2), presence = _useState[0], setPresence = _useState[1];
9237
9332
  useEffect(function() {
@@ -9272,15 +9367,15 @@ function useRoomPresence() {
9272
9367
  return presence;
9273
9368
  }
9274
9369
 
9275
- function _array_like_to_array$v(arr, len) {
9370
+ function _array_like_to_array$w(arr, len) {
9276
9371
  if (len == null || len > arr.length) len = arr.length;
9277
9372
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
9278
9373
  return arr2;
9279
9374
  }
9280
- function _array_with_holes$r(arr) {
9375
+ function _array_with_holes$s(arr) {
9281
9376
  if (Array.isArray(arr)) return arr;
9282
9377
  }
9283
- function _iterable_to_array_limit$r(arr, i) {
9378
+ function _iterable_to_array_limit$s(arr, i) {
9284
9379
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
9285
9380
  if (_i == null) return;
9286
9381
  var _arr = [];
@@ -9304,19 +9399,19 @@ function _iterable_to_array_limit$r(arr, i) {
9304
9399
  }
9305
9400
  return _arr;
9306
9401
  }
9307
- function _non_iterable_rest$r() {
9402
+ function _non_iterable_rest$s() {
9308
9403
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9309
9404
  }
9310
- function _sliced_to_array$r(arr, i) {
9311
- return _array_with_holes$r(arr) || _iterable_to_array_limit$r(arr, i) || _unsupported_iterable_to_array$v(arr, i) || _non_iterable_rest$r();
9405
+ function _sliced_to_array$s(arr, i) {
9406
+ return _array_with_holes$s(arr) || _iterable_to_array_limit$s(arr, i) || _unsupported_iterable_to_array$w(arr, i) || _non_iterable_rest$s();
9312
9407
  }
9313
- function _unsupported_iterable_to_array$v(o, minLen) {
9408
+ function _unsupported_iterable_to_array$w(o, minLen) {
9314
9409
  if (!o) return;
9315
- if (typeof o === "string") return _array_like_to_array$v(o, minLen);
9410
+ if (typeof o === "string") return _array_like_to_array$w(o, minLen);
9316
9411
  var n = Object.prototype.toString.call(o).slice(8, -1);
9317
9412
  if (n === "Object" && o.constructor) n = o.constructor.name;
9318
9413
  if (n === "Map" || n === "Set") return Array.from(n);
9319
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$v(o, minLen);
9414
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$w(o, minLen);
9320
9415
  }
9321
9416
  function RoomParticipantActions(param) {
9322
9417
  var _param_isActiveSpeaker = param.isActiveSpeaker, isActiveSpeaker = _param_isActiveSpeaker === void 0 ? false : _param_isActiveSpeaker, isLocal = param.isLocal, isOnline = param.isOnline, participant = param.participant, participantIdentity = param.participantIdentity;
@@ -9330,7 +9425,8 @@ function RoomParticipantActions(param) {
9330
9425
  var resolvedIsLocal = (_ref = isLocal !== null && isLocal !== void 0 ? isLocal : mappedPresence === null || mappedPresence === void 0 ? void 0 : mappedPresence.isLocal) !== null && _ref !== void 0 ? _ref : false;
9331
9426
  var resolvedIsOnline = isOnline !== null && isOnline !== void 0 ? isOnline : Boolean(mappedPresence);
9332
9427
  var _useRoomPlatformPrivateRoom = useRoomPlatformPrivateRoom(), cancelPrivateRoom = _useRoomPlatformPrivateRoom.cancelPrivateRoom, currentPrivateRoomOperation = _useRoomPlatformPrivateRoom.currentPrivateRoomOperation;
9333
- var _useState = _sliced_to_array$r(useState(false), 2), privateCallHovered = _useState[0], setPrivateCallHovered = _useState[1];
9428
+ var roomPlatformToast = useRoomPlatformToast();
9429
+ var _useState = _sliced_to_array$s(useState(false), 2), privateCallHovered = _useState[0], setPrivateCallHovered = _useState[1];
9334
9430
  var actionPayload = resolvedParticipantIdentity ? {
9335
9431
  participantIdentity: resolvedParticipantIdentity
9336
9432
  } : undefined;
@@ -9344,19 +9440,19 @@ function RoomParticipantActions(param) {
9344
9440
  var setActiveSpeaker = function() {
9345
9441
  if (!actionPayload || isSettingActiveSpeakerPending) return;
9346
9442
  void performAction(RoomPlatformAction.SPEAKER_SET, actionPayload).catch(function() {
9347
- toast.error('Không gọi được học sinh phát biểu. Vui lòng thử lại.');
9443
+ roomPlatformToast.error('Không gọi được học sinh phát biểu. Vui lòng thử lại.');
9348
9444
  });
9349
9445
  };
9350
9446
  var startPrivateRoom = function() {
9351
9447
  if (!canInvitePrivateRoom || !actionPayload || isInvitingPrivateRoom) return;
9352
9448
  void performAction(RoomPlatformAction.PRIVATE_ROOM_INVITE, actionPayload).catch(function() {
9353
- toast.error('Không thể gọi riêng học sinh này. Vui lòng thử lại.');
9449
+ roomPlatformToast.error('Không thể gọi riêng học sinh này. Vui lòng thử lại.');
9354
9450
  });
9355
9451
  };
9356
9452
  var cancelPrivateRoomCall = function() {
9357
9453
  if (!canCancelPrivateRoom) return;
9358
9454
  void cancelPrivateRoom().catch(function() {
9359
- toast.error('Không hủy được cuộc gọi riêng. Vui lòng thử lại.');
9455
+ roomPlatformToast.error('Không hủy được cuộc gọi riêng. Vui lòng thử lại.');
9360
9456
  });
9361
9457
  };
9362
9458
  return /*#__PURE__*/ jsxs("div", {
@@ -9680,7 +9776,7 @@ function RoomPlatformVideoTile(param) {
9680
9776
  return /*#__PURE__*/ jsxs("div", {
9681
9777
  "aria-label": resolvedLabel,
9682
9778
  className: [
9683
- 'relative overflow-hidden rounded-lg bg-slate-900 text-white ring-1 ring-white/10',
9779
+ 'relative overflow-hidden rounded-lg bg-slate-900 text-white',
9684
9780
  className
9685
9781
  ].filter(Boolean).join(' '),
9686
9782
  "data-kind": kind,
@@ -9724,12 +9820,12 @@ function RoomPlatformActiveSpeaker(param) {
9724
9820
  }) : null;
9725
9821
  }
9726
9822
 
9727
- function _array_like_to_array$u(arr, len) {
9823
+ function _array_like_to_array$v(arr, len) {
9728
9824
  if (len == null || len > arr.length) len = arr.length;
9729
9825
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
9730
9826
  return arr2;
9731
9827
  }
9732
- function _array_with_holes$q(arr) {
9828
+ function _array_with_holes$r(arr) {
9733
9829
  if (Array.isArray(arr)) return arr;
9734
9830
  }
9735
9831
  function _instanceof$2(left, right) {
@@ -9739,7 +9835,7 @@ function _instanceof$2(left, right) {
9739
9835
  return left instanceof right;
9740
9836
  }
9741
9837
  }
9742
- function _iterable_to_array_limit$q(arr, i) {
9838
+ function _iterable_to_array_limit$r(arr, i) {
9743
9839
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
9744
9840
  if (_i == null) return;
9745
9841
  var _arr = [];
@@ -9763,19 +9859,19 @@ function _iterable_to_array_limit$q(arr, i) {
9763
9859
  }
9764
9860
  return _arr;
9765
9861
  }
9766
- function _non_iterable_rest$q() {
9862
+ function _non_iterable_rest$r() {
9767
9863
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9768
9864
  }
9769
- function _sliced_to_array$q(arr, i) {
9770
- return _array_with_holes$q(arr) || _iterable_to_array_limit$q(arr, i) || _unsupported_iterable_to_array$u(arr, i) || _non_iterable_rest$q();
9865
+ function _sliced_to_array$r(arr, i) {
9866
+ return _array_with_holes$r(arr) || _iterable_to_array_limit$r(arr, i) || _unsupported_iterable_to_array$v(arr, i) || _non_iterable_rest$r();
9771
9867
  }
9772
- function _unsupported_iterable_to_array$u(o, minLen) {
9868
+ function _unsupported_iterable_to_array$v(o, minLen) {
9773
9869
  if (!o) return;
9774
- if (typeof o === "string") return _array_like_to_array$u(o, minLen);
9870
+ if (typeof o === "string") return _array_like_to_array$v(o, minLen);
9775
9871
  var n = Object.prototype.toString.call(o).slice(8, -1);
9776
9872
  if (n === "Object" && o.constructor) n = o.constructor.name;
9777
9873
  if (n === "Map" || n === "Set") return Array.from(n);
9778
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$u(o, minLen);
9874
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$v(o, minLen);
9779
9875
  }
9780
9876
  var IDLE_TIMEOUT_MS = 15000;
9781
9877
  var ROOM_CONTROL_ACTIVITY_SELECTOR = '[data-room-control-activity]';
@@ -9784,10 +9880,10 @@ var isRoomControlActivityTarget = function(target) {
9784
9880
  };
9785
9881
  function RoomPlatformControlAnchor(param) {
9786
9882
  var _param_anchorKind = param.anchorKind, anchorKind = _param_anchorKind === void 0 ? 'main-panel' : _param_anchorKind, children = param.children, controlBar = param.controlBar, _param_anchorScope = param.anchorScope, anchorScope = _param_anchorScope === void 0 ? 'panel' : _param_anchorScope, className = param.className, style = param.style;
9787
- var _useState = _sliced_to_array$q(useState(true), 2), isVisible = _useState[0], setIsVisible = _useState[1];
9788
- var _useState1 = _sliced_to_array$q(useState(false), 2), isHovered = _useState1[0], setIsHovered = _useState1[1];
9789
- var _useState2 = _sliced_to_array$q(useState(false), 2), isFocusWithin = _useState2[0], setIsFocusWithin = _useState2[1];
9790
- var _useState3 = _sliced_to_array$q(useState(0), 2), activityVersion = _useState3[0], setActivityVersion = _useState3[1];
9883
+ var _useState = _sliced_to_array$r(useState(true), 2), isVisible = _useState[0], setIsVisible = _useState[1];
9884
+ var _useState1 = _sliced_to_array$r(useState(false), 2), isHovered = _useState1[0], setIsHovered = _useState1[1];
9885
+ var _useState2 = _sliced_to_array$r(useState(false), 2), isFocusWithin = _useState2[0], setIsFocusWithin = _useState2[1];
9886
+ var _useState3 = _sliced_to_array$r(useState(0), 2), activityVersion = _useState3[0], setActivityVersion = _useState3[1];
9791
9887
  var anchorRef = useRef(null);
9792
9888
  var timerRef = useRef(null);
9793
9889
  var focusTimerRef = useRef(null);
@@ -9921,15 +10017,15 @@ function RoomPlatformControlAnchor(param) {
9921
10017
  });
9922
10018
  }
9923
10019
 
9924
- function _array_like_to_array$t(arr, len) {
10020
+ function _array_like_to_array$u(arr, len) {
9925
10021
  if (len == null || len > arr.length) len = arr.length;
9926
10022
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
9927
10023
  return arr2;
9928
10024
  }
9929
- function _array_with_holes$p(arr) {
10025
+ function _array_with_holes$q(arr) {
9930
10026
  if (Array.isArray(arr)) return arr;
9931
10027
  }
9932
- function _iterable_to_array_limit$p(arr, i) {
10028
+ function _iterable_to_array_limit$q(arr, i) {
9933
10029
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
9934
10030
  if (_i == null) return;
9935
10031
  var _arr = [];
@@ -9953,19 +10049,19 @@ function _iterable_to_array_limit$p(arr, i) {
9953
10049
  }
9954
10050
  return _arr;
9955
10051
  }
9956
- function _non_iterable_rest$p() {
10052
+ function _non_iterable_rest$q() {
9957
10053
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9958
10054
  }
9959
- function _sliced_to_array$p(arr, i) {
9960
- return _array_with_holes$p(arr) || _iterable_to_array_limit$p(arr, i) || _unsupported_iterable_to_array$t(arr, i) || _non_iterable_rest$p();
10055
+ function _sliced_to_array$q(arr, i) {
10056
+ return _array_with_holes$q(arr) || _iterable_to_array_limit$q(arr, i) || _unsupported_iterable_to_array$u(arr, i) || _non_iterable_rest$q();
9961
10057
  }
9962
- function _unsupported_iterable_to_array$t(o, minLen) {
10058
+ function _unsupported_iterable_to_array$u(o, minLen) {
9963
10059
  if (!o) return;
9964
- if (typeof o === "string") return _array_like_to_array$t(o, minLen);
10060
+ if (typeof o === "string") return _array_like_to_array$u(o, minLen);
9965
10061
  var n = Object.prototype.toString.call(o).slice(8, -1);
9966
10062
  if (n === "Object" && o.constructor) n = o.constructor.name;
9967
10063
  if (n === "Map" || n === "Set") return Array.from(n);
9968
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$t(o, minLen);
10064
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$u(o, minLen);
9969
10065
  }
9970
10066
  var ALLOWED_MIME_TYPES = [
9971
10067
  'image/jpeg',
@@ -9990,8 +10086,8 @@ function RoomPlatformBackgroundSettings(param) {
9990
10086
  var state = param.state, presets = param.presets, uploadItems = param.uploadItems, onSelectNoBackground = param.onSelectNoBackground, onSelectBlurLevel = param.onSelectBlurLevel, onSelectPreset = param.onSelectPreset, onSelectUploaded = param.onSelectUploaded, onDeleteUploaded = param.onDeleteUploaded, onUpload = param.onUpload;
9991
10087
  var _ref;
9992
10088
  var _presets_;
9993
- var _useState = _sliced_to_array$p(useState(null), 2), uploadError = _useState[0], setUploadError = _useState[1];
9994
- var _useState1 = _sliced_to_array$p(useState(function() {
10089
+ var _useState = _sliced_to_array$q(useState(null), 2), uploadError = _useState[0], setUploadError = _useState[1];
10090
+ var _useState1 = _sliced_to_array$q(useState(function() {
9995
10091
  return backgroundTabFromState(state.mode);
9996
10092
  }), 2), activeTab = _useState1[0], setActiveTab = _useState1[1];
9997
10093
  var fileInputId = useId();
@@ -10414,12 +10510,12 @@ var getSelectedDevice = function(devices, selectedValue) {
10414
10510
  });
10415
10511
  };
10416
10512
 
10417
- function _array_like_to_array$s(arr, len) {
10513
+ function _array_like_to_array$t(arr, len) {
10418
10514
  if (len == null || len > arr.length) len = arr.length;
10419
10515
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10420
10516
  return arr2;
10421
10517
  }
10422
- function _array_with_holes$o(arr) {
10518
+ function _array_with_holes$p(arr) {
10423
10519
  if (Array.isArray(arr)) return arr;
10424
10520
  }
10425
10521
  function asyncGeneratorStep$k(gen, resolve, reject, _next, _throw, key, arg) {
@@ -10451,7 +10547,7 @@ function _async_to_generator$k(fn) {
10451
10547
  });
10452
10548
  };
10453
10549
  }
10454
- function _iterable_to_array_limit$o(arr, i) {
10550
+ function _iterable_to_array_limit$p(arr, i) {
10455
10551
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
10456
10552
  if (_i == null) return;
10457
10553
  var _arr = [];
@@ -10475,19 +10571,19 @@ function _iterable_to_array_limit$o(arr, i) {
10475
10571
  }
10476
10572
  return _arr;
10477
10573
  }
10478
- function _non_iterable_rest$o() {
10574
+ function _non_iterable_rest$p() {
10479
10575
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10480
10576
  }
10481
- function _sliced_to_array$o(arr, i) {
10482
- return _array_with_holes$o(arr) || _iterable_to_array_limit$o(arr, i) || _unsupported_iterable_to_array$s(arr, i) || _non_iterable_rest$o();
10577
+ function _sliced_to_array$p(arr, i) {
10578
+ return _array_with_holes$p(arr) || _iterable_to_array_limit$p(arr, i) || _unsupported_iterable_to_array$t(arr, i) || _non_iterable_rest$p();
10483
10579
  }
10484
- function _unsupported_iterable_to_array$s(o, minLen) {
10580
+ function _unsupported_iterable_to_array$t(o, minLen) {
10485
10581
  if (!o) return;
10486
- if (typeof o === "string") return _array_like_to_array$s(o, minLen);
10582
+ if (typeof o === "string") return _array_like_to_array$t(o, minLen);
10487
10583
  var n = Object.prototype.toString.call(o).slice(8, -1);
10488
10584
  if (n === "Object" && o.constructor) n = o.constructor.name;
10489
10585
  if (n === "Map" || n === "Set") return Array.from(n);
10490
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$s(o, minLen);
10586
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$t(o, minLen);
10491
10587
  }
10492
10588
  function _ts_generator$k(thisArg, body) {
10493
10589
  var f, y, t, _ = {
@@ -10643,12 +10739,12 @@ function RoomPlatformDeviceSettings(param) {
10643
10739
  var _useRoomPlatform = useRoomPlatform(), activeDevices = _useRoomPlatform.activeDevices, room = _useRoomPlatform.room, switchActiveDevice = _useRoomPlatform.switchActiveDevice;
10644
10740
  var enumerateDevices = (_navigator_mediaDevices = navigator.mediaDevices) === null || _navigator_mediaDevices === void 0 ? void 0 : _navigator_mediaDevices.enumerateDevices;
10645
10741
  var canEnumerateDevices = typeof enumerateDevices === 'function';
10646
- var _useState = _sliced_to_array$o(useState([]), 2), devices = _useState[0], setDevices = _useState[1];
10647
- var _useState1 = _sliced_to_array$o(useState(canEnumerateDevices ? (_activeDevices_audioinput = activeDevices.audioinput) !== null && _activeDevices_audioinput !== void 0 ? _activeDevices_audioinput : fallbacks.audioinput.value : fallbacks.audioinput.value), 2), selectedMicrophoneId = _useState1[0], setSelectedMicrophoneId = _useState1[1];
10648
- var _useState2 = _sliced_to_array$o(useState(canEnumerateDevices ? (_activeDevices_videoinput = activeDevices.videoinput) !== null && _activeDevices_videoinput !== void 0 ? _activeDevices_videoinput : fallbacks.videoinput.value : fallbacks.videoinput.value), 2), selectedCameraId = _useState2[0], setSelectedCameraId = _useState2[1];
10649
- var _useState3 = _sliced_to_array$o(useState(canEnumerateDevices ? (_activeDevices_audiooutput = activeDevices.audiooutput) !== null && _activeDevices_audiooutput !== void 0 ? _activeDevices_audiooutput : fallbacks.audiooutput.value : fallbacks.audiooutput.value), 2), selectedSpeakerId = _useState3[0], setSelectedSpeakerId = _useState3[1];
10650
- var _useState4 = _sliced_to_array$o(useState(null), 2), deviceApplyError = _useState4[0], setDeviceApplyError = _useState4[1];
10651
- var _useState5 = _sliced_to_array$o(useState(false), 2), isApplyingDevices = _useState5[0], setIsApplyingDevices = _useState5[1];
10742
+ var _useState = _sliced_to_array$p(useState([]), 2), devices = _useState[0], setDevices = _useState[1];
10743
+ var _useState1 = _sliced_to_array$p(useState(canEnumerateDevices ? (_activeDevices_audioinput = activeDevices.audioinput) !== null && _activeDevices_audioinput !== void 0 ? _activeDevices_audioinput : fallbacks.audioinput.value : fallbacks.audioinput.value), 2), selectedMicrophoneId = _useState1[0], setSelectedMicrophoneId = _useState1[1];
10744
+ var _useState2 = _sliced_to_array$p(useState(canEnumerateDevices ? (_activeDevices_videoinput = activeDevices.videoinput) !== null && _activeDevices_videoinput !== void 0 ? _activeDevices_videoinput : fallbacks.videoinput.value : fallbacks.videoinput.value), 2), selectedCameraId = _useState2[0], setSelectedCameraId = _useState2[1];
10745
+ var _useState3 = _sliced_to_array$p(useState(canEnumerateDevices ? (_activeDevices_audiooutput = activeDevices.audiooutput) !== null && _activeDevices_audiooutput !== void 0 ? _activeDevices_audiooutput : fallbacks.audiooutput.value : fallbacks.audiooutput.value), 2), selectedSpeakerId = _useState3[0], setSelectedSpeakerId = _useState3[1];
10746
+ var _useState4 = _sliced_to_array$p(useState(null), 2), deviceApplyError = _useState4[0], setDeviceApplyError = _useState4[1];
10747
+ var _useState5 = _sliced_to_array$p(useState(false), 2), isApplyingDevices = _useState5[0], setIsApplyingDevices = _useState5[1];
10652
10748
  var microphones = useMemo(function() {
10653
10749
  return devices.filter(function(param) {
10654
10750
  var kind = param.kind;
@@ -10908,12 +11004,12 @@ function RoomPlatformDeviceSettings(param) {
10908
11004
  });
10909
11005
  }
10910
11006
 
10911
- function _array_like_to_array$r(arr, len) {
11007
+ function _array_like_to_array$s(arr, len) {
10912
11008
  if (len == null || len > arr.length) len = arr.length;
10913
11009
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10914
11010
  return arr2;
10915
11011
  }
10916
- function _array_with_holes$n(arr) {
11012
+ function _array_with_holes$o(arr) {
10917
11013
  if (Array.isArray(arr)) return arr;
10918
11014
  }
10919
11015
  function asyncGeneratorStep$j(gen, resolve, reject, _next, _throw, key, arg) {
@@ -10958,7 +11054,7 @@ function _define_property$k(obj, key, value) {
10958
11054
  }
10959
11055
  return obj;
10960
11056
  }
10961
- function _iterable_to_array_limit$n(arr, i) {
11057
+ function _iterable_to_array_limit$o(arr, i) {
10962
11058
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
10963
11059
  if (_i == null) return;
10964
11060
  var _arr = [];
@@ -10982,7 +11078,7 @@ function _iterable_to_array_limit$n(arr, i) {
10982
11078
  }
10983
11079
  return _arr;
10984
11080
  }
10985
- function _non_iterable_rest$n() {
11081
+ function _non_iterable_rest$o() {
10986
11082
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10987
11083
  }
10988
11084
  function _object_spread$g(target) {
@@ -11055,16 +11151,16 @@ function _object_without_properties_loose$5(source, excluded) {
11055
11151
  }
11056
11152
  return target;
11057
11153
  }
11058
- function _sliced_to_array$n(arr, i) {
11059
- return _array_with_holes$n(arr) || _iterable_to_array_limit$n(arr, i) || _unsupported_iterable_to_array$r(arr, i) || _non_iterable_rest$n();
11154
+ function _sliced_to_array$o(arr, i) {
11155
+ return _array_with_holes$o(arr) || _iterable_to_array_limit$o(arr, i) || _unsupported_iterable_to_array$s(arr, i) || _non_iterable_rest$o();
11060
11156
  }
11061
- function _unsupported_iterable_to_array$r(o, minLen) {
11157
+ function _unsupported_iterable_to_array$s(o, minLen) {
11062
11158
  if (!o) return;
11063
- if (typeof o === "string") return _array_like_to_array$r(o, minLen);
11159
+ if (typeof o === "string") return _array_like_to_array$s(o, minLen);
11064
11160
  var n = Object.prototype.toString.call(o).slice(8, -1);
11065
11161
  if (n === "Object" && o.constructor) n = o.constructor.name;
11066
11162
  if (n === "Map" || n === "Set") return Array.from(n);
11067
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$r(o, minLen);
11163
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$s(o, minLen);
11068
11164
  }
11069
11165
  function _ts_generator$j(thisArg, body) {
11070
11166
  var f, y, t, _ = {
@@ -11213,9 +11309,10 @@ function IconTooltipButton$1(_0) {
11213
11309
  function RoomPlatformControlBar(param) {
11214
11310
  var cameraBackground = param.cameraBackground, _param_isFullscreen = param.isFullscreen, isFullscreen = _param_isFullscreen === void 0 ? false : _param_isFullscreen, _param_isTheaterMode = param.isTheaterMode, isTheaterMode = _param_isTheaterMode === void 0 ? false : _param_isTheaterMode, onExit = param.onExit, onToggleFullscreen = param.onToggleFullscreen, onToggleTheaterMode = param.onToggleTheaterMode;
11215
11311
  var _useRoomPlatform = useRoomPlatform(), access = _useRoomPlatform.access, controlState = _useRoomPlatform.controlState, hasCapability = _useRoomPlatform.hasCapability, isLocalMediaPending = _useRoomPlatform.isLocalMediaPending, localMedia = _useRoomPlatform.localMedia, performAction = _useRoomPlatform.performAction, room = _useRoomPlatform.room, setLocalMediaEnabled = _useRoomPlatform.setLocalMediaEnabled;
11216
- var _useState = _sliced_to_array$n(useState(false), 2), settingsOpen = _useState[0], setSettingsOpen = _useState[1];
11217
- var _useState1 = _sliced_to_array$n(useState(false), 2), isRequestSpeakPending = _useState1[0], setIsRequestSpeakPending = _useState1[1];
11218
- var _useState2 = _sliced_to_array$n(useState(false), 2), isCancelSpeakPending = _useState2[0], setIsCancelSpeakPending = _useState2[1];
11312
+ var _useState = _sliced_to_array$o(useState(false), 2), settingsOpen = _useState[0], setSettingsOpen = _useState[1];
11313
+ var _useState1 = _sliced_to_array$o(useState(false), 2), isRequestSpeakPending = _useState1[0], setIsRequestSpeakPending = _useState1[1];
11314
+ var _useState2 = _sliced_to_array$o(useState(false), 2), isCancelSpeakPending = _useState2[0], setIsCancelSpeakPending = _useState2[1];
11315
+ var roomPlatformToast = useRoomPlatformToast();
11219
11316
  var currentParticipant = useRoomPresence().find(function(participant) {
11220
11317
  return participant.isLocal;
11221
11318
  });
@@ -11252,7 +11349,7 @@ function RoomPlatformControlBar(param) {
11252
11349
  ];
11253
11350
  case 3:
11254
11351
  _state.sent();
11255
- toast.error('Không gửi được yêu cầu phát biểu. Vui lòng thử lại.');
11352
+ roomPlatformToast.error('Không gửi được yêu cầu phát biểu. Vui lòng thử lại.');
11256
11353
  return [
11257
11354
  3,
11258
11355
  5
@@ -11299,7 +11396,7 @@ function RoomPlatformControlBar(param) {
11299
11396
  ];
11300
11397
  case 3:
11301
11398
  _state.sent();
11302
- toast.error('Không hủy được yêu cầu phát biểu. Vui lòng thử lại.');
11399
+ roomPlatformToast.error('Không hủy được yêu cầu phát biểu. Vui lòng thử lại.');
11303
11400
  return [
11304
11401
  3,
11305
11402
  5
@@ -11465,12 +11562,12 @@ function RoomPlatformControlBar(param) {
11465
11562
  });
11466
11563
  }
11467
11564
 
11468
- function _array_like_to_array$q(arr, len) {
11565
+ function _array_like_to_array$r(arr, len) {
11469
11566
  if (len == null || len > arr.length) len = arr.length;
11470
11567
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
11471
11568
  return arr2;
11472
11569
  }
11473
- function _array_with_holes$m(arr) {
11570
+ function _array_with_holes$n(arr) {
11474
11571
  if (Array.isArray(arr)) return arr;
11475
11572
  }
11476
11573
  function asyncGeneratorStep$i(gen, resolve, reject, _next, _throw, key, arg) {
@@ -11502,7 +11599,7 @@ function _async_to_generator$i(fn) {
11502
11599
  });
11503
11600
  };
11504
11601
  }
11505
- function _iterable_to_array_limit$m(arr, i) {
11602
+ function _iterable_to_array_limit$n(arr, i) {
11506
11603
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11507
11604
  if (_i == null) return;
11508
11605
  var _arr = [];
@@ -11526,19 +11623,19 @@ function _iterable_to_array_limit$m(arr, i) {
11526
11623
  }
11527
11624
  return _arr;
11528
11625
  }
11529
- function _non_iterable_rest$m() {
11626
+ function _non_iterable_rest$n() {
11530
11627
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
11531
11628
  }
11532
- function _sliced_to_array$m(arr, i) {
11533
- return _array_with_holes$m(arr) || _iterable_to_array_limit$m(arr, i) || _unsupported_iterable_to_array$q(arr, i) || _non_iterable_rest$m();
11629
+ function _sliced_to_array$n(arr, i) {
11630
+ return _array_with_holes$n(arr) || _iterable_to_array_limit$n(arr, i) || _unsupported_iterable_to_array$r(arr, i) || _non_iterable_rest$n();
11534
11631
  }
11535
- function _unsupported_iterable_to_array$q(o, minLen) {
11632
+ function _unsupported_iterable_to_array$r(o, minLen) {
11536
11633
  if (!o) return;
11537
- if (typeof o === "string") return _array_like_to_array$q(o, minLen);
11634
+ if (typeof o === "string") return _array_like_to_array$r(o, minLen);
11538
11635
  var n = Object.prototype.toString.call(o).slice(8, -1);
11539
11636
  if (n === "Object" && o.constructor) n = o.constructor.name;
11540
11637
  if (n === "Map" || n === "Set") return Array.from(n);
11541
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$q(o, minLen);
11638
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$r(o, minLen);
11542
11639
  }
11543
11640
  function _ts_generator$i(thisArg, body) {
11544
11641
  var f, y, t, _ = {
@@ -11642,7 +11739,8 @@ function _ts_generator$i(thisArg, body) {
11642
11739
  function RoomPlatformCurrentOperationStrip(param) {
11643
11740
  var activeSpeakerParticipantIdentity = param.activeSpeakerParticipantIdentity, canClearActiveSpeaker = param.canClearActiveSpeaker, isClearingActiveSpeaker = param.isClearingActiveSpeaker, onClearActiveSpeaker = param.onClearActiveSpeaker, currentPrivateRoomOperation = param.currentPrivateRoomOperation, onCancelPrivateRoom = param.onCancelPrivateRoom, participants = param.participants;
11644
11741
  var _ref, _ref1;
11645
- var _useState = _sliced_to_array$m(useState(false), 2), isCancelingPrivateRoomOperation = _useState[0], setIsCancelingPrivateRoomOperation = _useState[1];
11742
+ var _useState = _sliced_to_array$n(useState(false), 2), isCancelingPrivateRoomOperation = _useState[0], setIsCancelingPrivateRoomOperation = _useState[1];
11743
+ var roomPlatformToast = useRoomPlatformToast();
11646
11744
  var activeSpeaker = activeSpeakerParticipantIdentity ? participants.find(function(participant) {
11647
11745
  return participant.participantIdentity === activeSpeakerParticipantIdentity;
11648
11746
  }) : undefined;
@@ -11680,7 +11778,7 @@ function RoomPlatformCurrentOperationStrip(param) {
11680
11778
  ];
11681
11779
  case 3:
11682
11780
  _state.sent();
11683
- toast.error('Không hủy được cuộc gọi riêng. Vui lòng thử lại.');
11781
+ roomPlatformToast.error('Không hủy được cuộc gọi riêng. Vui lòng thử lại.');
11684
11782
  return [
11685
11783
  3,
11686
11784
  5
@@ -11908,15 +12006,15 @@ function RoomPlatformMonitorSidebarVideoTile(props) {
11908
12006
  return /*#__PURE__*/ jsx(RoomPlatformMonitorVideoTile, _object_spread$f({}, props));
11909
12007
  }
11910
12008
 
11911
- function _array_like_to_array$p(arr, len) {
12009
+ function _array_like_to_array$q(arr, len) {
11912
12010
  if (len == null || len > arr.length) len = arr.length;
11913
12011
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
11914
12012
  return arr2;
11915
12013
  }
11916
- function _array_with_holes$l(arr) {
12014
+ function _array_with_holes$m(arr) {
11917
12015
  if (Array.isArray(arr)) return arr;
11918
12016
  }
11919
- function _iterable_to_array_limit$l(arr, i) {
12017
+ function _iterable_to_array_limit$m(arr, i) {
11920
12018
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11921
12019
  if (_i == null) return;
11922
12020
  var _arr = [];
@@ -11940,19 +12038,19 @@ function _iterable_to_array_limit$l(arr, i) {
11940
12038
  }
11941
12039
  return _arr;
11942
12040
  }
11943
- function _non_iterable_rest$l() {
12041
+ function _non_iterable_rest$m() {
11944
12042
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
11945
12043
  }
11946
- function _sliced_to_array$l(arr, i) {
11947
- return _array_with_holes$l(arr) || _iterable_to_array_limit$l(arr, i) || _unsupported_iterable_to_array$p(arr, i) || _non_iterable_rest$l();
12044
+ function _sliced_to_array$m(arr, i) {
12045
+ return _array_with_holes$m(arr) || _iterable_to_array_limit$m(arr, i) || _unsupported_iterable_to_array$q(arr, i) || _non_iterable_rest$m();
11948
12046
  }
11949
- function _unsupported_iterable_to_array$p(o, minLen) {
12047
+ function _unsupported_iterable_to_array$q(o, minLen) {
11950
12048
  if (!o) return;
11951
- if (typeof o === "string") return _array_like_to_array$p(o, minLen);
12049
+ if (typeof o === "string") return _array_like_to_array$q(o, minLen);
11952
12050
  var n = Object.prototype.toString.call(o).slice(8, -1);
11953
12051
  if (n === "Object" && o.constructor) n = o.constructor.name;
11954
12052
  if (n === "Map" || n === "Set") return Array.from(n);
11955
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$p(o, minLen);
12053
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$q(o, minLen);
11956
12054
  }
11957
12055
  var hasAvailableTrackMedia$1 = function(param) {
11958
12056
  var publication = param.publication;
@@ -11965,7 +12063,7 @@ var hasAvailableTrackMedia$1 = function(param) {
11965
12063
  };
11966
12064
  function RoomPlatformMonitorStage(param) {
11967
12065
  var roster = param.roster, _param_pageSize = param.pageSize, pageSize = _param_pageSize === void 0 ? 12 : _param_pageSize;
11968
- var _useState = _sliced_to_array$l(useState(1), 2), page = _useState[0], setPage = _useState[1];
12066
+ var _useState = _sliced_to_array$m(useState(1), 2), page = _useState[0], setPage = _useState[1];
11969
12067
  var cameraTracks = useTracks([
11970
12068
  Track.Source.Camera
11971
12069
  ]);
@@ -12168,13 +12266,13 @@ function useRoomPlatformMonitorViewer(param) {
12168
12266
  ]);
12169
12267
  }
12170
12268
 
12171
- function _array_like_to_array$o(arr, len) {
12269
+ function _array_like_to_array$p(arr, len) {
12172
12270
  if (len == null || len > arr.length) len = arr.length;
12173
12271
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
12174
12272
  return arr2;
12175
12273
  }
12176
12274
  function _array_without_holes$b(arr) {
12177
- if (Array.isArray(arr)) return _array_like_to_array$o(arr);
12275
+ if (Array.isArray(arr)) return _array_like_to_array$p(arr);
12178
12276
  }
12179
12277
  function asyncGeneratorStep$h(gen, resolve, reject, _next, _throw, key, arg) {
12180
12278
  try {
@@ -12266,19 +12364,19 @@ function _object_spread_props$d(target, source) {
12266
12364
  return target;
12267
12365
  }
12268
12366
  function _to_consumable_array$b(arr) {
12269
- return _array_without_holes$b(arr) || _iterable_to_array$b(arr) || _unsupported_iterable_to_array$o(arr) || _non_iterable_spread$b();
12367
+ return _array_without_holes$b(arr) || _iterable_to_array$b(arr) || _unsupported_iterable_to_array$p(arr) || _non_iterable_spread$b();
12270
12368
  }
12271
12369
  function _type_of$8(obj) {
12272
12370
  "@swc/helpers - typeof";
12273
12371
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
12274
12372
  }
12275
- function _unsupported_iterable_to_array$o(o, minLen) {
12373
+ function _unsupported_iterable_to_array$p(o, minLen) {
12276
12374
  if (!o) return;
12277
- if (typeof o === "string") return _array_like_to_array$o(o, minLen);
12375
+ if (typeof o === "string") return _array_like_to_array$p(o, minLen);
12278
12376
  var n = Object.prototype.toString.call(o).slice(8, -1);
12279
12377
  if (n === "Object" && o.constructor) n = o.constructor.name;
12280
12378
  if (n === "Map" || n === "Set") return Array.from(n);
12281
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$o(o, minLen);
12379
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$p(o, minLen);
12282
12380
  }
12283
12381
  function _ts_generator$h(thisArg, body) {
12284
12382
  var f, y, t, _ = {
@@ -13096,12 +13194,12 @@ var saveRoomPlatformUploadAndSelect = function(file) {
13096
13194
  })();
13097
13195
  };
13098
13196
 
13099
- function _array_like_to_array$n(arr, len) {
13197
+ function _array_like_to_array$o(arr, len) {
13100
13198
  if (len == null || len > arr.length) len = arr.length;
13101
13199
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
13102
13200
  return arr2;
13103
13201
  }
13104
- function _array_with_holes$k(arr) {
13202
+ function _array_with_holes$l(arr) {
13105
13203
  if (Array.isArray(arr)) return arr;
13106
13204
  }
13107
13205
  function asyncGeneratorStep$g(gen, resolve, reject, _next, _throw, key, arg) {
@@ -13146,7 +13244,7 @@ function _define_property$h(obj, key, value) {
13146
13244
  }
13147
13245
  return obj;
13148
13246
  }
13149
- function _iterable_to_array_limit$k(arr, i) {
13247
+ function _iterable_to_array_limit$l(arr, i) {
13150
13248
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
13151
13249
  if (_i == null) return;
13152
13250
  var _arr = [];
@@ -13170,7 +13268,7 @@ function _iterable_to_array_limit$k(arr, i) {
13170
13268
  }
13171
13269
  return _arr;
13172
13270
  }
13173
- function _non_iterable_rest$k() {
13271
+ function _non_iterable_rest$l() {
13174
13272
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
13175
13273
  }
13176
13274
  function _object_spread$d(target) {
@@ -13207,16 +13305,16 @@ function _object_spread_props$c(target, source) {
13207
13305
  }
13208
13306
  return target;
13209
13307
  }
13210
- function _sliced_to_array$k(arr, i) {
13211
- return _array_with_holes$k(arr) || _iterable_to_array_limit$k(arr, i) || _unsupported_iterable_to_array$n(arr, i) || _non_iterable_rest$k();
13308
+ function _sliced_to_array$l(arr, i) {
13309
+ return _array_with_holes$l(arr) || _iterable_to_array_limit$l(arr, i) || _unsupported_iterable_to_array$o(arr, i) || _non_iterable_rest$l();
13212
13310
  }
13213
- function _unsupported_iterable_to_array$n(o, minLen) {
13311
+ function _unsupported_iterable_to_array$o(o, minLen) {
13214
13312
  if (!o) return;
13215
- if (typeof o === "string") return _array_like_to_array$n(o, minLen);
13313
+ if (typeof o === "string") return _array_like_to_array$o(o, minLen);
13216
13314
  var n = Object.prototype.toString.call(o).slice(8, -1);
13217
13315
  if (n === "Object" && o.constructor) n = o.constructor.name;
13218
13316
  if (n === "Map" || n === "Set") return Array.from(n);
13219
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$n(o, minLen);
13317
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$o(o, minLen);
13220
13318
  }
13221
13319
  function _ts_generator$g(thisArg, body) {
13222
13320
  var f, y, t, _ = {
@@ -13339,7 +13437,7 @@ function useRoomPlatformCameraBackground(param) {
13339
13437
  var _ref, _ref1;
13340
13438
  var _uploadItems_find, _uploadItems_;
13341
13439
  var isSupported = typeof window !== 'undefined' && supportsBackgroundProcessors();
13342
- var _useState = _sliced_to_array$k(useState(function() {
13440
+ var _useState = _sliced_to_array$l(useState(function() {
13343
13441
  var saved = loadRoomPlatformCameraBackgroundSettings();
13344
13442
  return mapSettingsToState(saved, isSupported);
13345
13443
  }), 2), state = _useState[0], setState = _useState[1];
@@ -13351,7 +13449,7 @@ function useRoomPlatformCameraBackground(param) {
13351
13449
  var activeObjectUrlRef = useRef(null);
13352
13450
  var uploadPreviewUrlsRef = useRef([]);
13353
13451
  var lastAppliedKeyRef = useRef('');
13354
- var _useState1 = _sliced_to_array$k(useState([]), 2), uploadItems = _useState1[0], setUploadItems = _useState1[1];
13452
+ var _useState1 = _sliced_to_array$l(useState([]), 2), uploadItems = _useState1[0], setUploadItems = _useState1[1];
13355
13453
  var clearActiveObjectUrl = useCallback(function() {
13356
13454
  if (!activeObjectUrlRef.current) return;
13357
13455
  URL.revokeObjectURL(activeObjectUrlRef.current);
@@ -14212,16 +14310,16 @@ function useRoomPlatformCameraBackground(param) {
14212
14310
  };
14213
14311
  }
14214
14312
 
14215
- function _array_like_to_array$m(arr, len) {
14313
+ function _array_like_to_array$n(arr, len) {
14216
14314
  if (len == null || len > arr.length) len = arr.length;
14217
14315
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
14218
14316
  return arr2;
14219
14317
  }
14220
- function _array_with_holes$j(arr) {
14318
+ function _array_with_holes$k(arr) {
14221
14319
  if (Array.isArray(arr)) return arr;
14222
14320
  }
14223
14321
  function _array_without_holes$a(arr) {
14224
- if (Array.isArray(arr)) return _array_like_to_array$m(arr);
14322
+ if (Array.isArray(arr)) return _array_like_to_array$n(arr);
14225
14323
  }
14226
14324
  function asyncGeneratorStep$f(gen, resolve, reject, _next, _throw, key, arg) {
14227
14325
  try {
@@ -14255,7 +14353,7 @@ function _async_to_generator$f(fn) {
14255
14353
  function _iterable_to_array$a(iter) {
14256
14354
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
14257
14355
  }
14258
- function _iterable_to_array_limit$j(arr, i) {
14356
+ function _iterable_to_array_limit$k(arr, i) {
14259
14357
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
14260
14358
  if (_i == null) return;
14261
14359
  var _arr = [];
@@ -14279,25 +14377,25 @@ function _iterable_to_array_limit$j(arr, i) {
14279
14377
  }
14280
14378
  return _arr;
14281
14379
  }
14282
- function _non_iterable_rest$j() {
14380
+ function _non_iterable_rest$k() {
14283
14381
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
14284
14382
  }
14285
14383
  function _non_iterable_spread$a() {
14286
14384
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
14287
14385
  }
14288
- function _sliced_to_array$j(arr, i) {
14289
- return _array_with_holes$j(arr) || _iterable_to_array_limit$j(arr, i) || _unsupported_iterable_to_array$m(arr, i) || _non_iterable_rest$j();
14386
+ function _sliced_to_array$k(arr, i) {
14387
+ return _array_with_holes$k(arr) || _iterable_to_array_limit$k(arr, i) || _unsupported_iterable_to_array$n(arr, i) || _non_iterable_rest$k();
14290
14388
  }
14291
14389
  function _to_consumable_array$a(arr) {
14292
- return _array_without_holes$a(arr) || _iterable_to_array$a(arr) || _unsupported_iterable_to_array$m(arr) || _non_iterable_spread$a();
14390
+ return _array_without_holes$a(arr) || _iterable_to_array$a(arr) || _unsupported_iterable_to_array$n(arr) || _non_iterable_spread$a();
14293
14391
  }
14294
- function _unsupported_iterable_to_array$m(o, minLen) {
14392
+ function _unsupported_iterable_to_array$n(o, minLen) {
14295
14393
  if (!o) return;
14296
- if (typeof o === "string") return _array_like_to_array$m(o, minLen);
14394
+ if (typeof o === "string") return _array_like_to_array$n(o, minLen);
14297
14395
  var n = Object.prototype.toString.call(o).slice(8, -1);
14298
14396
  if (n === "Object" && o.constructor) n = o.constructor.name;
14299
14397
  if (n === "Map" || n === "Set") return Array.from(n);
14300
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$m(o, minLen);
14398
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$n(o, minLen);
14301
14399
  }
14302
14400
  function _ts_generator$f(thisArg, body) {
14303
14401
  var f, y, t, _ = {
@@ -14427,7 +14525,7 @@ function RoomPlatformPrivateRoomConnection(param) {
14427
14525
  var canShareScreen = connection.permissions.includes('media:share_screen');
14428
14526
  var canPublish = connection.permissions.includes('media:publish');
14429
14527
  var baseScopeKey = isEligible ? "".concat(state.id, ":").concat(currentExternalActorId, ":").concat(scopeOf(connection)) : '';
14430
- var _useState = _sliced_to_array$j(useState(null), 2), room = _useState[0], setRoom = _useState[1];
14528
+ var _useState = _sliced_to_array$k(useState(null), 2), room = _useState[0], setRoom = _useState[1];
14431
14529
  var roomRef = useRef(null);
14432
14530
  var generationRef = useRef(0);
14433
14531
  var scopeRef = useRef(undefined);
@@ -14435,7 +14533,7 @@ function RoomPlatformPrivateRoomConnection(param) {
14435
14533
  var onDisconnectedRef = useRef(onDisconnected);
14436
14534
  var refreshedTokenKeysRef = useRef(new Set());
14437
14535
  var refreshRequestedScopeRef = useRef(undefined);
14438
- var _useState1 = _sliced_to_array$j(useState(0), 2), generationNonce = _useState1[0], setGenerationNonce = _useState1[1];
14536
+ var _useState1 = _sliced_to_array$k(useState(0), 2), generationNonce = _useState1[0], setGenerationNonce = _useState1[1];
14439
14537
  var scopeKey = baseScopeKey ? "".concat(baseScopeKey, ":").concat(generationNonce) : '';
14440
14538
  // A token refresh must not be a generation key. Pin the token to the scope so
14441
14539
  // ordinary actor-scoped refetches keep the existing LiveKit Room instance.
@@ -14636,12 +14734,12 @@ function RoomPlatformPrivateRoomConnection(param) {
14636
14734
  });
14637
14735
  }
14638
14736
 
14639
- function _array_like_to_array$l(arr, len) {
14737
+ function _array_like_to_array$m(arr, len) {
14640
14738
  if (len == null || len > arr.length) len = arr.length;
14641
14739
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
14642
14740
  return arr2;
14643
14741
  }
14644
- function _array_with_holes$i(arr) {
14742
+ function _array_with_holes$j(arr) {
14645
14743
  if (Array.isArray(arr)) return arr;
14646
14744
  }
14647
14745
  function asyncGeneratorStep$e(gen, resolve, reject, _next, _throw, key, arg) {
@@ -14673,7 +14771,7 @@ function _async_to_generator$e(fn) {
14673
14771
  });
14674
14772
  };
14675
14773
  }
14676
- function _iterable_to_array_limit$i(arr, i) {
14774
+ function _iterable_to_array_limit$j(arr, i) {
14677
14775
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
14678
14776
  if (_i == null) return;
14679
14777
  var _arr = [];
@@ -14697,19 +14795,19 @@ function _iterable_to_array_limit$i(arr, i) {
14697
14795
  }
14698
14796
  return _arr;
14699
14797
  }
14700
- function _non_iterable_rest$i() {
14798
+ function _non_iterable_rest$j() {
14701
14799
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
14702
14800
  }
14703
- function _sliced_to_array$i(arr, i) {
14704
- return _array_with_holes$i(arr) || _iterable_to_array_limit$i(arr, i) || _unsupported_iterable_to_array$l(arr, i) || _non_iterable_rest$i();
14801
+ function _sliced_to_array$j(arr, i) {
14802
+ return _array_with_holes$j(arr) || _iterable_to_array_limit$j(arr, i) || _unsupported_iterable_to_array$m(arr, i) || _non_iterable_rest$j();
14705
14803
  }
14706
- function _unsupported_iterable_to_array$l(o, minLen) {
14804
+ function _unsupported_iterable_to_array$m(o, minLen) {
14707
14805
  if (!o) return;
14708
- if (typeof o === "string") return _array_like_to_array$l(o, minLen);
14806
+ if (typeof o === "string") return _array_like_to_array$m(o, minLen);
14709
14807
  var n = Object.prototype.toString.call(o).slice(8, -1);
14710
14808
  if (n === "Object" && o.constructor) n = o.constructor.name;
14711
14809
  if (n === "Map" || n === "Set") return Array.from(n);
14712
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$l(o, minLen);
14810
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$m(o, minLen);
14713
14811
  }
14714
14812
  function _ts_generator$e(thisArg, body) {
14715
14813
  var f, y, t, _ = {
@@ -14812,8 +14910,9 @@ function _ts_generator$e(thisArg, body) {
14812
14910
  }
14813
14911
  function useRoomPlatformPrivateRoomControlActions(param) {
14814
14912
  var canShareScreen = param.canShareScreen, isScreenSharing = param.isScreenSharing, onStartScreenShare = param.onStartScreenShare, onStopScreenShare = param.onStopScreenShare, onEnd = param.onEnd, onScreenSharingChange = param.onScreenSharingChange, setLocalScreenShareEnabled = param.setLocalScreenShareEnabled, onEndingChange = param.onEndingChange, onEnded = param.onEnded;
14815
- var _useState = _sliced_to_array$i(useState(false), 2), isScreenSharePending = _useState[0], setIsScreenSharePending = _useState[1];
14816
- var _useState1 = _sliced_to_array$i(useState(false), 2), isEnding = _useState1[0], setIsEnding = _useState1[1];
14913
+ var roomPlatformToast = useRoomPlatformToast();
14914
+ var _useState = _sliced_to_array$j(useState(false), 2), isScreenSharePending = _useState[0], setIsScreenSharePending = _useState[1];
14915
+ var _useState1 = _sliced_to_array$j(useState(false), 2), isEnding = _useState1[0], setIsEnding = _useState1[1];
14817
14916
  var isStartingRef = useRef(false);
14818
14917
  var isStoppingRef = useRef(false);
14819
14918
  var isEndingRef = useRef(false);
@@ -14881,7 +14980,7 @@ function useRoomPlatformPrivateRoomControlActions(param) {
14881
14980
  ];
14882
14981
  case 8:
14883
14982
  _state.sent();
14884
- toast.error('Không thể chia sẻ màn hình trong phòng riêng.');
14983
+ roomPlatformToast.error('Không thể chia sẻ màn hình trong phòng riêng.');
14885
14984
  return [
14886
14985
  3,
14887
14986
  10
@@ -14937,7 +15036,7 @@ function useRoomPlatformPrivateRoomControlActions(param) {
14937
15036
  ];
14938
15037
  case 4:
14939
15038
  _state.sent();
14940
- toast.error('Không thể dừng chia sẻ màn hình trong phòng riêng.');
15039
+ roomPlatformToast.error('Không thể dừng chia sẻ màn hình trong phòng riêng.');
14941
15040
  return [
14942
15041
  3,
14943
15042
  6
@@ -15017,12 +15116,12 @@ function useRoomPlatformPrivateRoomControlActions(param) {
15017
15116
  };
15018
15117
  }
15019
15118
 
15020
- function _array_like_to_array$k(arr, len) {
15119
+ function _array_like_to_array$l(arr, len) {
15021
15120
  if (len == null || len > arr.length) len = arr.length;
15022
15121
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15023
15122
  return arr2;
15024
15123
  }
15025
- function _array_with_holes$h(arr) {
15124
+ function _array_with_holes$i(arr) {
15026
15125
  if (Array.isArray(arr)) return arr;
15027
15126
  }
15028
15127
  function asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, key, arg) {
@@ -15067,7 +15166,7 @@ function _define_property$g(obj, key, value) {
15067
15166
  }
15068
15167
  return obj;
15069
15168
  }
15070
- function _iterable_to_array_limit$h(arr, i) {
15169
+ function _iterable_to_array_limit$i(arr, i) {
15071
15170
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
15072
15171
  if (_i == null) return;
15073
15172
  var _arr = [];
@@ -15091,7 +15190,7 @@ function _iterable_to_array_limit$h(arr, i) {
15091
15190
  }
15092
15191
  return _arr;
15093
15192
  }
15094
- function _non_iterable_rest$h() {
15193
+ function _non_iterable_rest$i() {
15095
15194
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
15096
15195
  }
15097
15196
  function _object_spread$c(target) {
@@ -15164,16 +15263,16 @@ function _object_without_properties_loose$4(source, excluded) {
15164
15263
  }
15165
15264
  return target;
15166
15265
  }
15167
- function _sliced_to_array$h(arr, i) {
15168
- return _array_with_holes$h(arr) || _iterable_to_array_limit$h(arr, i) || _unsupported_iterable_to_array$k(arr, i) || _non_iterable_rest$h();
15266
+ function _sliced_to_array$i(arr, i) {
15267
+ return _array_with_holes$i(arr) || _iterable_to_array_limit$i(arr, i) || _unsupported_iterable_to_array$l(arr, i) || _non_iterable_rest$i();
15169
15268
  }
15170
- function _unsupported_iterable_to_array$k(o, minLen) {
15269
+ function _unsupported_iterable_to_array$l(o, minLen) {
15171
15270
  if (!o) return;
15172
- if (typeof o === "string") return _array_like_to_array$k(o, minLen);
15271
+ if (typeof o === "string") return _array_like_to_array$l(o, minLen);
15173
15272
  var n = Object.prototype.toString.call(o).slice(8, -1);
15174
15273
  if (n === "Object" && o.constructor) n = o.constructor.name;
15175
15274
  if (n === "Map" || n === "Set") return Array.from(n);
15176
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$k(o, minLen);
15275
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$l(o, minLen);
15177
15276
  }
15178
15277
  function _ts_generator$d(thisArg, body) {
15179
15278
  var f, y, t, _ = {
@@ -15380,7 +15479,7 @@ var runAsyncSafely = function(action) {
15380
15479
  function RoomPlatformPrivateRoomControlBar(param) {
15381
15480
  var publishEnabled = param.publishEnabled, permissions = param.permissions, screenShareDisabled = param.screenShareDisabled, onStartScreenShare = param.onStartScreenShare, onStopScreenShare = param.onStopScreenShare, onEnd = param.onEnd, onEndingChange = param.onEndingChange, onEnded = param.onEnded;
15382
15481
  var room = useRoomContext();
15383
- var _useState = _sliced_to_array$h(useState(false), 2), isScreenSharing = _useState[0], setIsScreenSharing = _useState[1];
15482
+ var _useState = _sliced_to_array$i(useState(false), 2), isScreenSharing = _useState[0], setIsScreenSharing = _useState[1];
15384
15483
  var isScreenSharingRef = useRef(isScreenSharing);
15385
15484
  var isScreenSharePendingRef = useRef(false);
15386
15485
  var isNotifyingExternalStopRef = useRef(false);
@@ -15693,13 +15792,13 @@ var WhiteboardSocketEvent = /*#__PURE__*/ function(WhiteboardSocketEvent) {
15693
15792
  return WhiteboardSocketEvent;
15694
15793
  }({});
15695
15794
 
15696
- function _array_like_to_array$j(arr, len) {
15795
+ function _array_like_to_array$k(arr, len) {
15697
15796
  if (len == null || len > arr.length) len = arr.length;
15698
15797
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15699
15798
  return arr2;
15700
15799
  }
15701
15800
  function _array_without_holes$9(arr) {
15702
- if (Array.isArray(arr)) return _array_like_to_array$j(arr);
15801
+ if (Array.isArray(arr)) return _array_like_to_array$k(arr);
15703
15802
  }
15704
15803
  function _define_property$f(obj, key, value) {
15705
15804
  if (key in obj) {
@@ -15791,15 +15890,15 @@ function _object_without_properties_loose$3(source, excluded) {
15791
15890
  return target;
15792
15891
  }
15793
15892
  function _to_consumable_array$9(arr) {
15794
- return _array_without_holes$9(arr) || _iterable_to_array$9(arr) || _unsupported_iterable_to_array$j(arr) || _non_iterable_spread$9();
15893
+ return _array_without_holes$9(arr) || _iterable_to_array$9(arr) || _unsupported_iterable_to_array$k(arr) || _non_iterable_spread$9();
15795
15894
  }
15796
- function _unsupported_iterable_to_array$j(o, minLen) {
15895
+ function _unsupported_iterable_to_array$k(o, minLen) {
15797
15896
  if (!o) return;
15798
- if (typeof o === "string") return _array_like_to_array$j(o, minLen);
15897
+ if (typeof o === "string") return _array_like_to_array$k(o, minLen);
15799
15898
  var n = Object.prototype.toString.call(o).slice(8, -1);
15800
15899
  if (n === "Object" && o.constructor) n = o.constructor.name;
15801
15900
  if (n === "Map" || n === "Set") return Array.from(n);
15802
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$j(o, minLen);
15901
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$k(o, minLen);
15803
15902
  }
15804
15903
  function createWhiteboardLocalHistory(createOperationId) {
15805
15904
  var state = {
@@ -15942,13 +16041,13 @@ function omitLatestRevision$1(object) {
15942
16041
  return input;
15943
16042
  }
15944
16043
 
15945
- function _array_like_to_array$i(arr, len) {
16044
+ function _array_like_to_array$j(arr, len) {
15946
16045
  if (len == null || len > arr.length) len = arr.length;
15947
16046
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15948
16047
  return arr2;
15949
16048
  }
15950
16049
  function _array_without_holes$8(arr) {
15951
- if (Array.isArray(arr)) return _array_like_to_array$i(arr);
16050
+ if (Array.isArray(arr)) return _array_like_to_array$j(arr);
15952
16051
  }
15953
16052
  function _iterable_to_array$8(iter) {
15954
16053
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
@@ -15957,15 +16056,15 @@ function _non_iterable_spread$8() {
15957
16056
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
15958
16057
  }
15959
16058
  function _to_consumable_array$8(arr) {
15960
- return _array_without_holes$8(arr) || _iterable_to_array$8(arr) || _unsupported_iterable_to_array$i(arr) || _non_iterable_spread$8();
16059
+ return _array_without_holes$8(arr) || _iterable_to_array$8(arr) || _unsupported_iterable_to_array$j(arr) || _non_iterable_spread$8();
15961
16060
  }
15962
- function _unsupported_iterable_to_array$i(o, minLen) {
16061
+ function _unsupported_iterable_to_array$j(o, minLen) {
15963
16062
  if (!o) return;
15964
- if (typeof o === "string") return _array_like_to_array$i(o, minLen);
16063
+ if (typeof o === "string") return _array_like_to_array$j(o, minLen);
15965
16064
  var n = Object.prototype.toString.call(o).slice(8, -1);
15966
16065
  if (n === "Object" && o.constructor) n = o.constructor.name;
15967
16066
  if (n === "Map" || n === "Set") return Array.from(n);
15968
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$i(o, minLen);
16067
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$j(o, minLen);
15969
16068
  }
15970
16069
  var STROKE_WIDTHS = {
15971
16070
  xs: 2,
@@ -16308,16 +16407,16 @@ function pointInPolygon(point, polygon) {
16308
16407
  return inside;
16309
16408
  }
16310
16409
 
16311
- function _array_like_to_array$h(arr, len) {
16410
+ function _array_like_to_array$i(arr, len) {
16312
16411
  if (len == null || len > arr.length) len = arr.length;
16313
16412
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16314
16413
  return arr2;
16315
16414
  }
16316
- function _array_with_holes$g(arr) {
16415
+ function _array_with_holes$h(arr) {
16317
16416
  if (Array.isArray(arr)) return arr;
16318
16417
  }
16319
16418
  function _array_without_holes$7(arr) {
16320
- if (Array.isArray(arr)) return _array_like_to_array$h(arr);
16419
+ if (Array.isArray(arr)) return _array_like_to_array$i(arr);
16321
16420
  }
16322
16421
  function _define_property$e(obj, key, value) {
16323
16422
  if (key in obj) {
@@ -16335,7 +16434,7 @@ function _define_property$e(obj, key, value) {
16335
16434
  function _iterable_to_array$7(iter) {
16336
16435
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
16337
16436
  }
16338
- function _iterable_to_array_limit$g(arr, i) {
16437
+ function _iterable_to_array_limit$h(arr, i) {
16339
16438
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
16340
16439
  if (_i == null) return;
16341
16440
  var _arr = [];
@@ -16359,7 +16458,7 @@ function _iterable_to_array_limit$g(arr, i) {
16359
16458
  }
16360
16459
  return _arr;
16361
16460
  }
16362
- function _non_iterable_rest$g() {
16461
+ function _non_iterable_rest$h() {
16363
16462
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16364
16463
  }
16365
16464
  function _non_iterable_spread$7() {
@@ -16399,23 +16498,23 @@ function _object_spread_props$9(target, source) {
16399
16498
  }
16400
16499
  return target;
16401
16500
  }
16402
- function _sliced_to_array$g(arr, i) {
16403
- return _array_with_holes$g(arr) || _iterable_to_array_limit$g(arr, i) || _unsupported_iterable_to_array$h(arr, i) || _non_iterable_rest$g();
16501
+ function _sliced_to_array$h(arr, i) {
16502
+ return _array_with_holes$h(arr) || _iterable_to_array_limit$h(arr, i) || _unsupported_iterable_to_array$i(arr, i) || _non_iterable_rest$h();
16404
16503
  }
16405
16504
  function _to_consumable_array$7(arr) {
16406
- return _array_without_holes$7(arr) || _iterable_to_array$7(arr) || _unsupported_iterable_to_array$h(arr) || _non_iterable_spread$7();
16505
+ return _array_without_holes$7(arr) || _iterable_to_array$7(arr) || _unsupported_iterable_to_array$i(arr) || _non_iterable_spread$7();
16407
16506
  }
16408
16507
  function _type_of$6(obj) {
16409
16508
  "@swc/helpers - typeof";
16410
16509
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
16411
16510
  }
16412
- function _unsupported_iterable_to_array$h(o, minLen) {
16511
+ function _unsupported_iterable_to_array$i(o, minLen) {
16413
16512
  if (!o) return;
16414
- if (typeof o === "string") return _array_like_to_array$h(o, minLen);
16513
+ if (typeof o === "string") return _array_like_to_array$i(o, minLen);
16415
16514
  var n = Object.prototype.toString.call(o).slice(8, -1);
16416
16515
  if (n === "Object" && o.constructor) n = o.constructor.name;
16417
16516
  if (n === "Map" || n === "Set") return Array.from(n);
16418
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$h(o, minLen);
16517
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$i(o, minLen);
16419
16518
  }
16420
16519
  function resetSceneState() {
16421
16520
  return {
@@ -16693,7 +16792,7 @@ function applyOperationToScene(state, operation, revision, optimisticRestoreObje
16693
16792
  }
16694
16793
  function sortRecoveredObjects(state) {
16695
16794
  state.recoveredObjects = new Map(_to_consumable_array$7(state.recoveredObjects.entries()).sort(function(param, param1) {
16696
- var _param = _sliced_to_array$g(param, 2), left = _param[1], _param1 = _sliced_to_array$g(param1, 2), right = _param1[1];
16795
+ var _param = _sliced_to_array$h(param, 2), left = _param[1], _param1 = _sliced_to_array$h(param1, 2), right = _param1[1];
16697
16796
  return left.latestRevision === right.latestRevision ? left.objectId.localeCompare(right.objectId) : left.latestRevision - right.latestRevision;
16698
16797
  }));
16699
16798
  }
@@ -16754,7 +16853,7 @@ function removeExpiredMarkers(state, now) {
16754
16853
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
16755
16854
  try {
16756
16855
  for(var _iterator = state.recoveredObjects[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
16757
- var _step_value = _sliced_to_array$g(_step.value, 2), objectId = _step_value[0], object = _step_value[1];
16856
+ var _step_value = _sliced_to_array$h(_step.value, 2), objectId = _step_value[0], object = _step_value[1];
16758
16857
  if (isExpiredMarker(object, now)) state.recoveredObjects.delete(objectId);
16759
16858
  }
16760
16859
  } catch (err) {
@@ -17464,16 +17563,16 @@ function FilledDiamondShapeIcon() {
17464
17563
  });
17465
17564
  }
17466
17565
 
17467
- function _array_like_to_array$g(arr, len) {
17566
+ function _array_like_to_array$h(arr, len) {
17468
17567
  if (len == null || len > arr.length) len = arr.length;
17469
17568
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
17470
17569
  return arr2;
17471
17570
  }
17472
- function _array_with_holes$f(arr) {
17571
+ function _array_with_holes$g(arr) {
17473
17572
  if (Array.isArray(arr)) return arr;
17474
17573
  }
17475
17574
  function _array_without_holes$6(arr) {
17476
- if (Array.isArray(arr)) return _array_like_to_array$g(arr);
17575
+ if (Array.isArray(arr)) return _array_like_to_array$h(arr);
17477
17576
  }
17478
17577
  function _define_property$c(obj, key, value) {
17479
17578
  if (key in obj) {
@@ -17491,7 +17590,7 @@ function _define_property$c(obj, key, value) {
17491
17590
  function _iterable_to_array$6(iter) {
17492
17591
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
17493
17592
  }
17494
- function _iterable_to_array_limit$f(arr, i) {
17593
+ function _iterable_to_array_limit$g(arr, i) {
17495
17594
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
17496
17595
  if (_i == null) return;
17497
17596
  var _arr = [];
@@ -17515,7 +17614,7 @@ function _iterable_to_array_limit$f(arr, i) {
17515
17614
  }
17516
17615
  return _arr;
17517
17616
  }
17518
- function _non_iterable_rest$f() {
17617
+ function _non_iterable_rest$g() {
17519
17618
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17520
17619
  }
17521
17620
  function _non_iterable_spread$6() {
@@ -17555,19 +17654,19 @@ function _object_spread_props$8(target, source) {
17555
17654
  }
17556
17655
  return target;
17557
17656
  }
17558
- function _sliced_to_array$f(arr, i) {
17559
- return _array_with_holes$f(arr) || _iterable_to_array_limit$f(arr, i) || _unsupported_iterable_to_array$g(arr, i) || _non_iterable_rest$f();
17657
+ function _sliced_to_array$g(arr, i) {
17658
+ return _array_with_holes$g(arr) || _iterable_to_array_limit$g(arr, i) || _unsupported_iterable_to_array$h(arr, i) || _non_iterable_rest$g();
17560
17659
  }
17561
17660
  function _to_consumable_array$6(arr) {
17562
- return _array_without_holes$6(arr) || _iterable_to_array$6(arr) || _unsupported_iterable_to_array$g(arr) || _non_iterable_spread$6();
17661
+ return _array_without_holes$6(arr) || _iterable_to_array$6(arr) || _unsupported_iterable_to_array$h(arr) || _non_iterable_spread$6();
17563
17662
  }
17564
- function _unsupported_iterable_to_array$g(o, minLen) {
17663
+ function _unsupported_iterable_to_array$h(o, minLen) {
17565
17664
  if (!o) return;
17566
- if (typeof o === "string") return _array_like_to_array$g(o, minLen);
17665
+ if (typeof o === "string") return _array_like_to_array$h(o, minLen);
17567
17666
  var n = Object.prototype.toString.call(o).slice(8, -1);
17568
17667
  if (n === "Object" && o.constructor) n = o.constructor.name;
17569
17668
  if (n === "Map" || n === "Set") return Array.from(n);
17570
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$g(o, minLen);
17669
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$h(o, minLen);
17571
17670
  }
17572
17671
  var WHITEBOARD_VIEWPORT_PADDING = 16;
17573
17672
  var WHITEBOARD_DOCK_SNAP_DISTANCE = 64;
@@ -17598,14 +17697,14 @@ var WHITEBOARD_POPOVER_SIZES = {
17598
17697
  }
17599
17698
  };
17600
17699
  function useWhiteboardToolbarLayout() {
17601
- var _useState = _sliced_to_array$f(useState(function() {
17700
+ var _useState = _sliced_to_array$g(useState(function() {
17602
17701
  return getViewport();
17603
17702
  }), 2), viewport = _useState[0], setViewport = _useState[1];
17604
17703
  var viewportRef = useRef(viewport);
17605
- var _useState1 = _sliced_to_array$f(useState(false), 2), toolbarOpen = _useState1[0], setToolbarOpen = _useState1[1];
17606
- var _useState2 = _sliced_to_array$f(useState(null), 2), activePopover = _useState2[0], setActivePopover = _useState2[1];
17607
- var _useState3 = _sliced_to_array$f(useState(false), 2), hasOpened = _useState3[0], setHasOpened = _useState3[1];
17608
- var _useState4 = _sliced_to_array$f(useState(function() {
17704
+ var _useState1 = _sliced_to_array$g(useState(false), 2), toolbarOpen = _useState1[0], setToolbarOpen = _useState1[1];
17705
+ var _useState2 = _sliced_to_array$g(useState(null), 2), activePopover = _useState2[0], setActivePopover = _useState2[1];
17706
+ var _useState3 = _sliced_to_array$g(useState(false), 2), hasOpened = _useState3[0], setHasOpened = _useState3[1];
17707
+ var _useState4 = _sliced_to_array$g(useState(function() {
17609
17708
  return getToolbarLayout(getDefaultToolbarPosition(getViewport()), getViewport());
17610
17709
  }), 2), layout = _useState4[0], setLayout = _useState4[1];
17611
17710
  var dragOriginRef = useRef(undefined);
@@ -17831,10 +17930,10 @@ function getOutsideDock(position, orientation, viewport) {
17831
17930
  ]
17832
17931
  ];
17833
17932
  return (_candidates_filter_sort_ = candidates.filter(function(param) {
17834
- var _param = _sliced_to_array$f(param, 2), distance = _param[1];
17933
+ var _param = _sliced_to_array$g(param, 2), distance = _param[1];
17835
17934
  return distance > 0;
17836
17935
  }).sort(function(param, param1) {
17837
- var _param = _sliced_to_array$f(param, 2), left = _param[1], _param1 = _sliced_to_array$f(param1, 2), right = _param1[1];
17936
+ var _param = _sliced_to_array$g(param, 2), left = _param[1], _param1 = _sliced_to_array$g(param1, 2), right = _param1[1];
17838
17937
  return left - right;
17839
17938
  })[0]) === null || _candidates_filter_sort_ === void 0 ? void 0 : _candidates_filter_sort_[0];
17840
17939
  }
@@ -17997,12 +18096,12 @@ function TriggerIcon() {
17997
18096
  });
17998
18097
  }
17999
18098
 
18000
- function _array_like_to_array$f(arr, len) {
18099
+ function _array_like_to_array$g(arr, len) {
18001
18100
  if (len == null || len > arr.length) len = arr.length;
18002
18101
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18003
18102
  return arr2;
18004
18103
  }
18005
- function _array_with_holes$e(arr) {
18104
+ function _array_with_holes$f(arr) {
18006
18105
  if (Array.isArray(arr)) return arr;
18007
18106
  }
18008
18107
  function _define_property$b(obj, key, value) {
@@ -18018,7 +18117,7 @@ function _define_property$b(obj, key, value) {
18018
18117
  }
18019
18118
  return obj;
18020
18119
  }
18021
- function _iterable_to_array_limit$e(arr, i) {
18120
+ function _iterable_to_array_limit$f(arr, i) {
18022
18121
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
18023
18122
  if (_i == null) return;
18024
18123
  var _arr = [];
@@ -18042,19 +18141,19 @@ function _iterable_to_array_limit$e(arr, i) {
18042
18141
  }
18043
18142
  return _arr;
18044
18143
  }
18045
- function _non_iterable_rest$e() {
18144
+ function _non_iterable_rest$f() {
18046
18145
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18047
18146
  }
18048
- function _sliced_to_array$e(arr, i) {
18049
- return _array_with_holes$e(arr) || _iterable_to_array_limit$e(arr, i) || _unsupported_iterable_to_array$f(arr, i) || _non_iterable_rest$e();
18147
+ function _sliced_to_array$f(arr, i) {
18148
+ return _array_with_holes$f(arr) || _iterable_to_array_limit$f(arr, i) || _unsupported_iterable_to_array$g(arr, i) || _non_iterable_rest$f();
18050
18149
  }
18051
- function _unsupported_iterable_to_array$f(o, minLen) {
18150
+ function _unsupported_iterable_to_array$g(o, minLen) {
18052
18151
  if (!o) return;
18053
- if (typeof o === "string") return _array_like_to_array$f(o, minLen);
18152
+ if (typeof o === "string") return _array_like_to_array$g(o, minLen);
18054
18153
  var n = Object.prototype.toString.call(o).slice(8, -1);
18055
18154
  if (n === "Object" && o.constructor) n = o.constructor.name;
18056
18155
  if (n === "Map" || n === "Set") return Array.from(n);
18057
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$f(o, minLen);
18156
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$g(o, minLen);
18058
18157
  }
18059
18158
  function WhiteboardToolbar(param) {
18060
18159
  var _param_activeColor = param.activeColor, activeColor = _param_activeColor === void 0 ? DEFAULT_WHITEBOARD_COLOR : _param_activeColor, _param_activeDrawKind = param.activeDrawKind, activeDrawKind = _param_activeDrawKind === void 0 ? DEFAULT_WHITEBOARD_DRAW_KIND : _param_activeDrawKind, _param_activeTool = param.activeTool, activeTool = _param_activeTool === void 0 ? 'draw' : _param_activeTool, _param_activeWidthPreset = param.activeWidthPreset, activeWidthPreset = _param_activeWidthPreset === void 0 ? DEFAULT_WHITEBOARD_WIDTH_PRESET : _param_activeWidthPreset, _param_canRedo = param.canRedo, canRedo = _param_canRedo === void 0 ? false : _param_canRedo, _param_canUndo = param.canUndo, canUndo = _param_canUndo === void 0 ? false : _param_canUndo, onClose = param.onClose, onColorChange = param.onColorChange, onDrawKindChange = param.onDrawKindChange, onOpenChange = param.onOpenChange, onOperation = param.onOperation, onRedo = param.onRedo, onRetry = param.onRetry, onToolChange = param.onToolChange, onUndo = param.onUndo, onWidthPresetChange = param.onWidthPresetChange, permissions = param.permissions, _param_runtimeState = param.runtimeState, runtimeState = _param_runtimeState === void 0 ? 'ready' : _param_runtimeState;
@@ -18067,7 +18166,7 @@ function WhiteboardToolbar(param) {
18067
18166
  var colorButtonRef = useRef(null);
18068
18167
  var drawPopoverRef = useRef(null);
18069
18168
  var colorPopoverRef = useRef(null);
18070
- var _useState = _sliced_to_array$e(useState(undefined), 2), measuredPopoverStyle = _useState[0], setMeasuredPopoverStyle = _useState[1];
18169
+ var _useState = _sliced_to_array$f(useState(undefined), 2), measuredPopoverStyle = _useState[0], setMeasuredPopoverStyle = _useState[1];
18071
18170
  var interactionDisabled = !canWrite || runtimeState !== 'ready';
18072
18171
  var clearDisabled = !canClear || runtimeState !== 'ready';
18073
18172
  var tooltipSide = getToolbarTooltipSide(dock);
@@ -18565,15 +18664,15 @@ function CloseIcon() {
18565
18664
  });
18566
18665
  }
18567
18666
 
18568
- function _array_like_to_array$e(arr, len) {
18667
+ function _array_like_to_array$f(arr, len) {
18569
18668
  if (len == null || len > arr.length) len = arr.length;
18570
18669
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18571
18670
  return arr2;
18572
18671
  }
18573
- function _array_with_holes$d(arr) {
18672
+ function _array_with_holes$e(arr) {
18574
18673
  if (Array.isArray(arr)) return arr;
18575
18674
  }
18576
- function _iterable_to_array_limit$d(arr, i) {
18675
+ function _iterable_to_array_limit$e(arr, i) {
18577
18676
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
18578
18677
  if (_i == null) return;
18579
18678
  var _arr = [];
@@ -18597,23 +18696,23 @@ function _iterable_to_array_limit$d(arr, i) {
18597
18696
  }
18598
18697
  return _arr;
18599
18698
  }
18600
- function _non_iterable_rest$d() {
18699
+ function _non_iterable_rest$e() {
18601
18700
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18602
18701
  }
18603
- function _sliced_to_array$d(arr, i) {
18604
- return _array_with_holes$d(arr) || _iterable_to_array_limit$d(arr, i) || _unsupported_iterable_to_array$e(arr, i) || _non_iterable_rest$d();
18702
+ function _sliced_to_array$e(arr, i) {
18703
+ return _array_with_holes$e(arr) || _iterable_to_array_limit$e(arr, i) || _unsupported_iterable_to_array$f(arr, i) || _non_iterable_rest$e();
18605
18704
  }
18606
- function _unsupported_iterable_to_array$e(o, minLen) {
18705
+ function _unsupported_iterable_to_array$f(o, minLen) {
18607
18706
  if (!o) return;
18608
- if (typeof o === "string") return _array_like_to_array$e(o, minLen);
18707
+ if (typeof o === "string") return _array_like_to_array$f(o, minLen);
18609
18708
  var n = Object.prototype.toString.call(o).slice(8, -1);
18610
18709
  if (n === "Object" && o.constructor) n = o.constructor.name;
18611
18710
  if (n === "Map" || n === "Set") return Array.from(n);
18612
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$e(o, minLen);
18711
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$f(o, minLen);
18613
18712
  }
18614
18713
  function useWhiteboardFrameRect() {
18615
18714
  var frameRef = useRef(null);
18616
- var _useState = _sliced_to_array$d(useState(undefined), 2), frameRect = _useState[0], setFrameRect = _useState[1];
18715
+ var _useState = _sliced_to_array$e(useState(undefined), 2), frameRect = _useState[0], setFrameRect = _useState[1];
18617
18716
  useEffect(function() {
18618
18717
  var element = frameRef.current;
18619
18718
  if (!element) return;
@@ -18648,16 +18747,16 @@ function useWhiteboardFrameRect() {
18648
18747
  };
18649
18748
  }
18650
18749
 
18651
- function _array_like_to_array$d(arr, len) {
18750
+ function _array_like_to_array$e(arr, len) {
18652
18751
  if (len == null || len > arr.length) len = arr.length;
18653
18752
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18654
18753
  return arr2;
18655
18754
  }
18656
- function _array_with_holes$c(arr) {
18755
+ function _array_with_holes$d(arr) {
18657
18756
  if (Array.isArray(arr)) return arr;
18658
18757
  }
18659
18758
  function _array_without_holes$5(arr) {
18660
- if (Array.isArray(arr)) return _array_like_to_array$d(arr);
18759
+ if (Array.isArray(arr)) return _array_like_to_array$e(arr);
18661
18760
  }
18662
18761
  function asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, key, arg) {
18663
18762
  try {
@@ -18704,7 +18803,7 @@ function _define_property$a(obj, key, value) {
18704
18803
  function _iterable_to_array$5(iter) {
18705
18804
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
18706
18805
  }
18707
- function _iterable_to_array_limit$c(arr, i) {
18806
+ function _iterable_to_array_limit$d(arr, i) {
18708
18807
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
18709
18808
  if (_i == null) return;
18710
18809
  var _arr = [];
@@ -18728,7 +18827,7 @@ function _iterable_to_array_limit$c(arr, i) {
18728
18827
  }
18729
18828
  return _arr;
18730
18829
  }
18731
- function _non_iterable_rest$c() {
18830
+ function _non_iterable_rest$d() {
18732
18831
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18733
18832
  }
18734
18833
  function _non_iterable_spread$5() {
@@ -18804,23 +18903,23 @@ function _object_without_properties_loose$2(source, excluded) {
18804
18903
  }
18805
18904
  return target;
18806
18905
  }
18807
- function _sliced_to_array$c(arr, i) {
18808
- return _array_with_holes$c(arr) || _iterable_to_array_limit$c(arr, i) || _unsupported_iterable_to_array$d(arr, i) || _non_iterable_rest$c();
18906
+ function _sliced_to_array$d(arr, i) {
18907
+ return _array_with_holes$d(arr) || _iterable_to_array_limit$d(arr, i) || _unsupported_iterable_to_array$e(arr, i) || _non_iterable_rest$d();
18809
18908
  }
18810
18909
  function _to_consumable_array$5(arr) {
18811
- return _array_without_holes$5(arr) || _iterable_to_array$5(arr) || _unsupported_iterable_to_array$d(arr) || _non_iterable_spread$5();
18910
+ return _array_without_holes$5(arr) || _iterable_to_array$5(arr) || _unsupported_iterable_to_array$e(arr) || _non_iterable_spread$5();
18812
18911
  }
18813
18912
  function _type_of$5(obj) {
18814
18913
  "@swc/helpers - typeof";
18815
18914
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
18816
18915
  }
18817
- function _unsupported_iterable_to_array$d(o, minLen) {
18916
+ function _unsupported_iterable_to_array$e(o, minLen) {
18818
18917
  if (!o) return;
18819
- if (typeof o === "string") return _array_like_to_array$d(o, minLen);
18918
+ if (typeof o === "string") return _array_like_to_array$e(o, minLen);
18820
18919
  var n = Object.prototype.toString.call(o).slice(8, -1);
18821
18920
  if (n === "Object" && o.constructor) n = o.constructor.name;
18822
18921
  if (n === "Map" || n === "Set") return Array.from(n);
18823
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$d(o, minLen);
18922
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$e(o, minLen);
18824
18923
  }
18825
18924
  function _ts_generator$c(thisArg, body) {
18826
18925
  var f, y, t, _ = {
@@ -18942,10 +19041,10 @@ function WhiteboardCanvas(param) {
18942
19041
  if (!localHistoryRef.current) localHistoryRef.current = createWhiteboardLocalHistory(function() {
18943
19042
  return createStableId('annotation-history');
18944
19043
  });
18945
- var _useState = _sliced_to_array$c(useState(function() {
19044
+ var _useState = _sliced_to_array$d(useState(function() {
18946
19045
  return resetSceneState();
18947
19046
  }), 2), sceneState = _useState[0], setSceneState = _useState[1];
18948
- var _useState1 = _sliced_to_array$c(useState(function() {
19047
+ var _useState1 = _sliced_to_array$d(useState(function() {
18949
19048
  var _ref;
18950
19049
  var _localHistoryRef_current;
18951
19050
  return (_ref = (_localHistoryRef_current = localHistoryRef.current) === null || _localHistoryRef_current === void 0 ? void 0 : _localHistoryRef_current.getState()) !== null && _ref !== void 0 ? _ref : {
@@ -18953,11 +19052,11 @@ function WhiteboardCanvas(param) {
18953
19052
  undoStack: []
18954
19053
  };
18955
19054
  }), 2), localHistoryState = _useState1[0], setLocalHistoryState = _useState1[1];
18956
- var _useState2 = _sliced_to_array$c(useState(controlledActiveTool !== null && controlledActiveTool !== void 0 ? controlledActiveTool : 'draw'), 2), uncontrolledActiveTool = _useState2[0], setUncontrolledActiveTool = _useState2[1];
18957
- var _useState3 = _sliced_to_array$c(useState(DEFAULT_WHITEBOARD_DRAW_KIND), 2), activeDrawKind = _useState3[0], setActiveDrawKind = _useState3[1];
18958
- var _useState4 = _sliced_to_array$c(useState(DEFAULT_WHITEBOARD_COLOR), 2), activeColor = _useState4[0], setActiveColor = _useState4[1];
18959
- var _useState5 = _sliced_to_array$c(useState(DEFAULT_WHITEBOARD_WIDTH_PRESET), 2), activeWidthPreset = _useState5[0], setActiveWidthPreset = _useState5[1];
18960
- var _useState6 = _sliced_to_array$c(useState(false), 2), toolbarOpen = _useState6[0], setToolbarOpen = _useState6[1];
19055
+ var _useState2 = _sliced_to_array$d(useState(controlledActiveTool !== null && controlledActiveTool !== void 0 ? controlledActiveTool : 'draw'), 2), uncontrolledActiveTool = _useState2[0], setUncontrolledActiveTool = _useState2[1];
19056
+ var _useState3 = _sliced_to_array$d(useState(DEFAULT_WHITEBOARD_DRAW_KIND), 2), activeDrawKind = _useState3[0], setActiveDrawKind = _useState3[1];
19057
+ var _useState4 = _sliced_to_array$d(useState(DEFAULT_WHITEBOARD_COLOR), 2), activeColor = _useState4[0], setActiveColor = _useState4[1];
19058
+ var _useState5 = _sliced_to_array$d(useState(DEFAULT_WHITEBOARD_WIDTH_PRESET), 2), activeWidthPreset = _useState5[0], setActiveWidthPreset = _useState5[1];
19059
+ var _useState6 = _sliced_to_array$d(useState(false), 2), toolbarOpen = _useState6[0], setToolbarOpen = _useState6[1];
18961
19060
  var activeTool = controlledActiveTool !== null && controlledActiveTool !== void 0 ? controlledActiveTool : uncontrolledActiveTool;
18962
19061
  var hasWritePermission = permissions.includes('whiteboard:write');
18963
19062
  var submitState = whiteboard === null || whiteboard === void 0 ? void 0 : (_whiteboard_submitStatus = whiteboard.submitStatus) === null || _whiteboard_submitStatus === void 0 ? void 0 : _whiteboard_submitStatus.state;
@@ -19560,19 +19659,28 @@ function getNearestMarkerExpiry(objects) {
19560
19659
  return expiries.length ? (_Math = Math).min.apply(_Math, _to_consumable_array$5(expiries)) : undefined;
19561
19660
  }
19562
19661
  function getNormalizedPoint(event, frameRect) {
19563
- if (!Number.isFinite(frameRect.left) || !Number.isFinite(frameRect.top)) return undefined;
19564
- if (!Number.isFinite(frameRect.width) || !Number.isFinite(frameRect.height)) return undefined;
19565
- if (frameRect.width <= 0 || frameRect.height <= 0) return undefined;
19662
+ var currentFrameRect = getPointerFrameRect(event, frameRect);
19663
+ if (!currentFrameRect) return undefined;
19566
19664
  var clientX = getEventCoordinate(event, 'clientX');
19567
19665
  var clientY = getEventCoordinate(event, 'clientY');
19568
19666
  if (!Number.isFinite(clientX) || !Number.isFinite(clientY)) return undefined;
19569
- var x = (clientX - frameRect.left) / frameRect.width;
19570
- var y = (clientY - frameRect.top) / frameRect.height;
19667
+ var x = (clientX - currentFrameRect.left) / currentFrameRect.width;
19668
+ var y = (clientY - currentFrameRect.top) / currentFrameRect.height;
19571
19669
  return {
19572
19670
  x: clamp01(x),
19573
19671
  y: clamp01(y)
19574
19672
  };
19575
19673
  }
19674
+ function getPointerFrameRect(event, fallback) {
19675
+ var rect = event.currentTarget.getBoundingClientRect();
19676
+ if (Number.isFinite(rect.left) && Number.isFinite(rect.top) && Number.isFinite(rect.width) && Number.isFinite(rect.height) && rect.width > 0 && rect.height > 0) {
19677
+ return rect;
19678
+ }
19679
+ if (!Number.isFinite(fallback.left) || !Number.isFinite(fallback.top) || !Number.isFinite(fallback.width) || !Number.isFinite(fallback.height) || fallback.width <= 0 || fallback.height <= 0) {
19680
+ return undefined;
19681
+ }
19682
+ return fallback;
19683
+ }
19576
19684
  function getEventCoordinate(event, key) {
19577
19685
  var _event_nativeEvent;
19578
19686
  if (Number.isFinite(event[key])) return event[key];
@@ -19592,15 +19700,15 @@ function clamp01(value) {
19592
19700
  return Math.max(0, Math.min(1, value));
19593
19701
  }
19594
19702
 
19595
- function _array_like_to_array$c(arr, len) {
19703
+ function _array_like_to_array$d(arr, len) {
19596
19704
  if (len == null || len > arr.length) len = arr.length;
19597
19705
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19598
19706
  return arr2;
19599
19707
  }
19600
- function _array_with_holes$b(arr) {
19708
+ function _array_with_holes$c(arr) {
19601
19709
  if (Array.isArray(arr)) return arr;
19602
19710
  }
19603
- function _iterable_to_array_limit$b(arr, i) {
19711
+ function _iterable_to_array_limit$c(arr, i) {
19604
19712
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
19605
19713
  if (_i == null) return;
19606
19714
  var _arr = [];
@@ -19624,19 +19732,19 @@ function _iterable_to_array_limit$b(arr, i) {
19624
19732
  }
19625
19733
  return _arr;
19626
19734
  }
19627
- function _non_iterable_rest$b() {
19735
+ function _non_iterable_rest$c() {
19628
19736
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
19629
19737
  }
19630
- function _sliced_to_array$b(arr, i) {
19631
- return _array_with_holes$b(arr) || _iterable_to_array_limit$b(arr, i) || _unsupported_iterable_to_array$c(arr, i) || _non_iterable_rest$b();
19738
+ function _sliced_to_array$c(arr, i) {
19739
+ return _array_with_holes$c(arr) || _iterable_to_array_limit$c(arr, i) || _unsupported_iterable_to_array$d(arr, i) || _non_iterable_rest$c();
19632
19740
  }
19633
- function _unsupported_iterable_to_array$c(o, minLen) {
19741
+ function _unsupported_iterable_to_array$d(o, minLen) {
19634
19742
  if (!o) return;
19635
- if (typeof o === "string") return _array_like_to_array$c(o, minLen);
19743
+ if (typeof o === "string") return _array_like_to_array$d(o, minLen);
19636
19744
  var n = Object.prototype.toString.call(o).slice(8, -1);
19637
19745
  if (n === "Object" && o.constructor) n = o.constructor.name;
19638
19746
  if (n === "Map" || n === "Set") return Array.from(n);
19639
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$c(o, minLen);
19747
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$d(o, minLen);
19640
19748
  }
19641
19749
  function createWhiteboardSubmitQueue(options) {
19642
19750
  var _options_now;
@@ -19758,7 +19866,7 @@ function createWhiteboardSubmitQueue(options) {
19758
19866
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
19759
19867
  try {
19760
19868
  var _loop = function() {
19761
- var _step_value = _sliced_to_array$b(_step.value, 2), operationId = _step_value[0], revision = _step_value[1];
19869
+ var _step_value = _sliced_to_array$c(_step.value, 2), operationId = _step_value[0], revision = _step_value[1];
19762
19870
  var item = queue.find(function(queuedItem) {
19763
19871
  return queuedItem.operation.operationId === operationId;
19764
19872
  });
@@ -19819,16 +19927,16 @@ function createWhiteboardSubmitQueue(options) {
19819
19927
  };
19820
19928
  }
19821
19929
 
19822
- function _array_like_to_array$b(arr, len) {
19930
+ function _array_like_to_array$c(arr, len) {
19823
19931
  if (len == null || len > arr.length) len = arr.length;
19824
19932
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19825
19933
  return arr2;
19826
19934
  }
19827
- function _array_with_holes$a(arr) {
19935
+ function _array_with_holes$b(arr) {
19828
19936
  if (Array.isArray(arr)) return arr;
19829
19937
  }
19830
19938
  function _array_without_holes$4(arr) {
19831
- if (Array.isArray(arr)) return _array_like_to_array$b(arr);
19939
+ if (Array.isArray(arr)) return _array_like_to_array$c(arr);
19832
19940
  }
19833
19941
  function asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, key, arg) {
19834
19942
  try {
@@ -19875,7 +19983,7 @@ function _define_property$9(obj, key, value) {
19875
19983
  function _iterable_to_array$4(iter) {
19876
19984
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
19877
19985
  }
19878
- function _iterable_to_array_limit$a(arr, i) {
19986
+ function _iterable_to_array_limit$b(arr, i) {
19879
19987
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
19880
19988
  if (_i == null) return;
19881
19989
  var _arr = [];
@@ -19899,7 +20007,7 @@ function _iterable_to_array_limit$a(arr, i) {
19899
20007
  }
19900
20008
  return _arr;
19901
20009
  }
19902
- function _non_iterable_rest$a() {
20010
+ function _non_iterable_rest$b() {
19903
20011
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
19904
20012
  }
19905
20013
  function _non_iterable_spread$4() {
@@ -19939,23 +20047,23 @@ function _object_spread_props$6(target, source) {
19939
20047
  }
19940
20048
  return target;
19941
20049
  }
19942
- function _sliced_to_array$a(arr, i) {
19943
- return _array_with_holes$a(arr) || _iterable_to_array_limit$a(arr, i) || _unsupported_iterable_to_array$b(arr, i) || _non_iterable_rest$a();
20050
+ function _sliced_to_array$b(arr, i) {
20051
+ return _array_with_holes$b(arr) || _iterable_to_array_limit$b(arr, i) || _unsupported_iterable_to_array$c(arr, i) || _non_iterable_rest$b();
19944
20052
  }
19945
20053
  function _to_consumable_array$4(arr) {
19946
- return _array_without_holes$4(arr) || _iterable_to_array$4(arr) || _unsupported_iterable_to_array$b(arr) || _non_iterable_spread$4();
20054
+ return _array_without_holes$4(arr) || _iterable_to_array$4(arr) || _unsupported_iterable_to_array$c(arr) || _non_iterable_spread$4();
19947
20055
  }
19948
20056
  function _type_of$4(obj) {
19949
20057
  "@swc/helpers - typeof";
19950
20058
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
19951
20059
  }
19952
- function _unsupported_iterable_to_array$b(o, minLen) {
20060
+ function _unsupported_iterable_to_array$c(o, minLen) {
19953
20061
  if (!o) return;
19954
- if (typeof o === "string") return _array_like_to_array$b(o, minLen);
20062
+ if (typeof o === "string") return _array_like_to_array$c(o, minLen);
19955
20063
  var n = Object.prototype.toString.call(o).slice(8, -1);
19956
20064
  if (n === "Object" && o.constructor) n = o.constructor.name;
19957
20065
  if (n === "Map" || n === "Set") return Array.from(n);
19958
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$b(o, minLen);
20066
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$c(o, minLen);
19959
20067
  }
19960
20068
  function _ts_generator$b(thisArg, body) {
19961
20069
  var f, y, t, _ = {
@@ -20161,7 +20269,7 @@ function createWhiteboardRuntime() {
20161
20269
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
20162
20270
  try {
20163
20271
  for(var _iterator = bufferedCommittedEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
20164
- var _step_value = _sliced_to_array$a(_step.value, 2), eventRevision = _step_value[0], event = _step_value[1];
20272
+ var _step_value = _sliced_to_array$b(_step.value, 2), eventRevision = _step_value[0], event = _step_value[1];
20165
20273
  if (eventRevision > revision) continue;
20166
20274
  operationIds.set(event.operation.operationId, eventRevision);
20167
20275
  bufferedCommittedEvents.delete(eventRevision);
@@ -20776,7 +20884,7 @@ function createWhiteboardRuntime() {
20776
20884
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
20777
20885
  try {
20778
20886
  for(_iterator = reconciliation.recoveredOperationIds[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
20779
- _step_value = _sliced_to_array$a(_step.value, 2), operationId = _step_value[0], revision = _step_value[1];
20887
+ _step_value = _sliced_to_array$b(_step.value, 2), operationId = _step_value[0], revision = _step_value[1];
20780
20888
  recoveredOperationIds.set(operationId, revision);
20781
20889
  }
20782
20890
  } catch (err) {
@@ -20879,7 +20987,7 @@ function createWhiteboardRuntime() {
20879
20987
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
20880
20988
  try {
20881
20989
  for(_iterator = recovery.recoveredOperationIds[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
20882
- _step_value = _sliced_to_array$a(_step.value, 2), operationId = _step_value[0], revision = _step_value[1];
20990
+ _step_value = _sliced_to_array$b(_step.value, 2), operationId = _step_value[0], revision = _step_value[1];
20883
20991
  recoveredOperationIds.set(operationId, revision);
20884
20992
  }
20885
20993
  } catch (err) {
@@ -21449,16 +21557,16 @@ function sortRecoveryObjects(objects) {
21449
21557
  });
21450
21558
  }
21451
21559
 
21452
- function _array_like_to_array$a(arr, len) {
21560
+ function _array_like_to_array$b(arr, len) {
21453
21561
  if (len == null || len > arr.length) len = arr.length;
21454
21562
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
21455
21563
  return arr2;
21456
21564
  }
21457
- function _array_with_holes$9(arr) {
21565
+ function _array_with_holes$a(arr) {
21458
21566
  if (Array.isArray(arr)) return arr;
21459
21567
  }
21460
21568
  function _array_without_holes$3(arr) {
21461
- if (Array.isArray(arr)) return _array_like_to_array$a(arr);
21569
+ if (Array.isArray(arr)) return _array_like_to_array$b(arr);
21462
21570
  }
21463
21571
  function asyncGeneratorStep$a(gen, resolve, reject, _next, _throw, key, arg) {
21464
21572
  try {
@@ -21505,7 +21613,7 @@ function _define_property$8(obj, key, value) {
21505
21613
  function _iterable_to_array$3(iter) {
21506
21614
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
21507
21615
  }
21508
- function _iterable_to_array_limit$9(arr, i) {
21616
+ function _iterable_to_array_limit$a(arr, i) {
21509
21617
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
21510
21618
  if (_i == null) return;
21511
21619
  var _arr = [];
@@ -21529,7 +21637,7 @@ function _iterable_to_array_limit$9(arr, i) {
21529
21637
  }
21530
21638
  return _arr;
21531
21639
  }
21532
- function _non_iterable_rest$9() {
21640
+ function _non_iterable_rest$a() {
21533
21641
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
21534
21642
  }
21535
21643
  function _non_iterable_spread$3() {
@@ -21569,19 +21677,19 @@ function _object_spread_props$5(target, source) {
21569
21677
  }
21570
21678
  return target;
21571
21679
  }
21572
- function _sliced_to_array$9(arr, i) {
21573
- return _array_with_holes$9(arr) || _iterable_to_array_limit$9(arr, i) || _unsupported_iterable_to_array$a(arr, i) || _non_iterable_rest$9();
21680
+ function _sliced_to_array$a(arr, i) {
21681
+ return _array_with_holes$a(arr) || _iterable_to_array_limit$a(arr, i) || _unsupported_iterable_to_array$b(arr, i) || _non_iterable_rest$a();
21574
21682
  }
21575
21683
  function _to_consumable_array$3(arr) {
21576
- return _array_without_holes$3(arr) || _iterable_to_array$3(arr) || _unsupported_iterable_to_array$a(arr) || _non_iterable_spread$3();
21684
+ return _array_without_holes$3(arr) || _iterable_to_array$3(arr) || _unsupported_iterable_to_array$b(arr) || _non_iterable_spread$3();
21577
21685
  }
21578
- function _unsupported_iterable_to_array$a(o, minLen) {
21686
+ function _unsupported_iterable_to_array$b(o, minLen) {
21579
21687
  if (!o) return;
21580
- if (typeof o === "string") return _array_like_to_array$a(o, minLen);
21688
+ if (typeof o === "string") return _array_like_to_array$b(o, minLen);
21581
21689
  var n = Object.prototype.toString.call(o).slice(8, -1);
21582
21690
  if (n === "Object" && o.constructor) n = o.constructor.name;
21583
21691
  if (n === "Map" || n === "Set") return Array.from(n);
21584
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$a(o, minLen);
21692
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$b(o, minLen);
21585
21693
  }
21586
21694
  function _ts_generator$a(thisArg, body) {
21587
21695
  var f, y, t, _ = {
@@ -21685,20 +21793,20 @@ function _ts_generator$a(thisArg, body) {
21685
21793
  function WhiteboardProvider(param) {
21686
21794
  var controlledAuth = param.auth, children = param.children, _param_createRuntime = param.createRuntime, createRuntime = _param_createRuntime === void 0 ? createWhiteboardRuntime : _param_createRuntime, onDiagnostic = param.onDiagnostic, realtimeEndpoint = param.realtimeEndpoint, recoveryPort = param.recoveryPort, socketFactory = param.socketFactory, controlledShareSessionKey = param.shareSessionKey;
21687
21795
  var _boardState_activeShareSessionKey, _ref;
21688
- var _useState = _sliced_to_array$9(useState(hasValidWhiteboardAuth(controlledAuth) ? controlledAuth : undefined), 2), auth = _useState[0], setAuthState = _useState[1];
21689
- var _useState1 = _sliced_to_array$9(useState(controlledShareSessionKey), 2), shareSessionKey = _useState1[0], setShareSessionKey = _useState1[1];
21690
- var _useState2 = _sliced_to_array$9(useState(hasValidWhiteboardAuth(controlledAuth) ? 'connecting' : 'standby'), 2), status = _useState2[0], setStatus = _useState2[1];
21691
- var _useState3 = _sliced_to_array$9(useState({
21796
+ var _useState = _sliced_to_array$a(useState(hasValidWhiteboardAuth(controlledAuth) ? controlledAuth : undefined), 2), auth = _useState[0], setAuthState = _useState[1];
21797
+ var _useState1 = _sliced_to_array$a(useState(controlledShareSessionKey), 2), shareSessionKey = _useState1[0], setShareSessionKey = _useState1[1];
21798
+ var _useState2 = _sliced_to_array$a(useState(hasValidWhiteboardAuth(controlledAuth) ? 'connecting' : 'standby'), 2), status = _useState2[0], setStatus = _useState2[1];
21799
+ var _useState3 = _sliced_to_array$a(useState({
21692
21800
  activeShareSessionKey: controlledShareSessionKey,
21693
21801
  confirmedRevision: 0,
21694
21802
  headRevision: 0,
21695
21803
  pendingOperationCount: 0
21696
21804
  }), 2), boardState = _useState3[0], setBoardState = _useState3[1];
21697
- var _useState4 = _sliced_to_array$9(useState('idle'), 2), recoveryStatus = _useState4[0], setRecoveryStatus = _useState4[1];
21698
- var _useState5 = _sliced_to_array$9(useState(undefined), 2), recovery = _useState5[0], setRecovery = _useState5[1];
21699
- var _useState6 = _sliced_to_array$9(useState(undefined), 2), committedEvent = _useState6[0], setCommittedEvent = _useState6[1];
21700
- var _useState7 = _sliced_to_array$9(useState([]), 2), committedEvents = _useState7[0], setCommittedEvents = _useState7[1];
21701
- var _useState8 = _sliced_to_array$9(useState({
21805
+ var _useState4 = _sliced_to_array$a(useState('idle'), 2), recoveryStatus = _useState4[0], setRecoveryStatus = _useState4[1];
21806
+ var _useState5 = _sliced_to_array$a(useState(undefined), 2), recovery = _useState5[0], setRecovery = _useState5[1];
21807
+ var _useState6 = _sliced_to_array$a(useState(undefined), 2), committedEvent = _useState6[0], setCommittedEvent = _useState6[1];
21808
+ var _useState7 = _sliced_to_array$a(useState([]), 2), committedEvents = _useState7[0], setCommittedEvents = _useState7[1];
21809
+ var _useState8 = _sliced_to_array$a(useState({
21702
21810
  state: 'idle'
21703
21811
  }), 2), submitStatus = _useState8[0], setSubmitStatus = _useState8[1];
21704
21812
  var authRef = useRef(auth);
@@ -22080,12 +22188,12 @@ function WhiteboardProvider(param) {
22080
22188
  });
22081
22189
  }
22082
22190
 
22083
- function _array_like_to_array$9(arr, len) {
22191
+ function _array_like_to_array$a(arr, len) {
22084
22192
  if (len == null || len > arr.length) len = arr.length;
22085
22193
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
22086
22194
  return arr2;
22087
22195
  }
22088
- function _array_with_holes$8(arr) {
22196
+ function _array_with_holes$9(arr) {
22089
22197
  if (Array.isArray(arr)) return arr;
22090
22198
  }
22091
22199
  function _define_property$7(obj, key, value) {
@@ -22101,7 +22209,7 @@ function _define_property$7(obj, key, value) {
22101
22209
  }
22102
22210
  return obj;
22103
22211
  }
22104
- function _iterable_to_array_limit$8(arr, i) {
22212
+ function _iterable_to_array_limit$9(arr, i) {
22105
22213
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
22106
22214
  if (_i == null) return;
22107
22215
  var _arr = [];
@@ -22125,7 +22233,7 @@ function _iterable_to_array_limit$8(arr, i) {
22125
22233
  }
22126
22234
  return _arr;
22127
22235
  }
22128
- function _non_iterable_rest$8() {
22236
+ function _non_iterable_rest$9() {
22129
22237
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
22130
22238
  }
22131
22239
  function _object_spread$5(target) {
@@ -22162,16 +22270,16 @@ function _object_spread_props$4(target, source) {
22162
22270
  }
22163
22271
  return target;
22164
22272
  }
22165
- function _sliced_to_array$8(arr, i) {
22166
- return _array_with_holes$8(arr) || _iterable_to_array_limit$8(arr, i) || _unsupported_iterable_to_array$9(arr, i) || _non_iterable_rest$8();
22273
+ function _sliced_to_array$9(arr, i) {
22274
+ return _array_with_holes$9(arr) || _iterable_to_array_limit$9(arr, i) || _unsupported_iterable_to_array$a(arr, i) || _non_iterable_rest$9();
22167
22275
  }
22168
- function _unsupported_iterable_to_array$9(o, minLen) {
22276
+ function _unsupported_iterable_to_array$a(o, minLen) {
22169
22277
  if (!o) return;
22170
- if (typeof o === "string") return _array_like_to_array$9(o, minLen);
22278
+ if (typeof o === "string") return _array_like_to_array$a(o, minLen);
22171
22279
  var n = Object.prototype.toString.call(o).slice(8, -1);
22172
22280
  if (n === "Object" && o.constructor) n = o.constructor.name;
22173
22281
  if (n === "Map" || n === "Set") return Array.from(n);
22174
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$9(o, minLen);
22282
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$a(o, minLen);
22175
22283
  }
22176
22284
  var cameraVideoClassName = 'h-full w-full object-cover -scale-x-100';
22177
22285
  var getTrackSource = function(trackRef) {
@@ -22238,7 +22346,7 @@ function useScreenShareAspectRatio(trackRef) {
22238
22346
  var _trackRef_publication;
22239
22347
  var trackSid = trackRef === null || trackRef === void 0 ? void 0 : (_trackRef_publication = trackRef.publication) === null || _trackRef_publication === void 0 ? void 0 : _trackRef_publication.trackSid;
22240
22348
  var fallbackAspectRatio = getAspectRatio(trackRef);
22241
- var _useState = _sliced_to_array$8(useState(), 2), intrinsicRatio = _useState[0], setIntrinsicRatio = _useState[1];
22349
+ var _useState = _sliced_to_array$9(useState(), 2), intrinsicRatio = _useState[0], setIntrinsicRatio = _useState[1];
22242
22350
  var aspectRatio = intrinsicRatio && (trackSid !== undefined ? intrinsicRatio.trackSid === trackSid : intrinsicRatio.trackSid === undefined && intrinsicRatio.trackRef === trackRef) ? intrinsicRatio.aspectRatio : fallbackAspectRatio;
22243
22351
  var updateFromVideo = useCallback(function(event) {
22244
22352
  var _event_currentTarget = event.currentTarget, videoWidth = _event_currentTarget.videoWidth, videoHeight = _event_currentTarget.videoHeight;
@@ -22262,12 +22370,12 @@ function useScreenShareAspectRatio(trackRef) {
22262
22370
  function ScreenShareFrame(param) {
22263
22371
  var trackRef = param.trackRef, aspectRatio = param.aspectRatio, onLoadedMetadata = param.onLoadedMetadata, onResize = param.onResize, whiteboard = param.whiteboard;
22264
22372
  var frameRef = useRef(null);
22265
- var _useState = _sliced_to_array$8(useState(), 2), frameSize = _useState[0], setFrameSize = _useState[1];
22373
+ var _useState = _sliced_to_array$9(useState(), 2), frameSize = _useState[0], setFrameSize = _useState[1];
22266
22374
  useLayoutEffect(function() {
22267
22375
  var _frameRef_current;
22268
22376
  var container = (_frameRef_current = frameRef.current) === null || _frameRef_current === void 0 ? void 0 : _frameRef_current.parentElement;
22269
22377
  if (!container) return;
22270
- var _aspectRatio_split_map = _sliced_to_array$8(aspectRatio.split('/').map(Number), 2), sourceWidth = _aspectRatio_split_map[0], sourceHeight = _aspectRatio_split_map[1];
22378
+ var _aspectRatio_split_map = _sliced_to_array$9(aspectRatio.split('/').map(Number), 2), sourceWidth = _aspectRatio_split_map[0], sourceHeight = _aspectRatio_split_map[1];
22271
22379
  var ratio = sourceWidth / sourceHeight;
22272
22380
  var updateSize = function() {
22273
22381
  var clientWidth = container.clientWidth, clientHeight = container.clientHeight;
@@ -22320,7 +22428,7 @@ function ScreenShareFrame(param) {
22320
22428
  }
22321
22429
  function RoomPlatformPrivateRoomStage(param) {
22322
22430
  var callerExternalActorId = param.callerExternalActorId, studentExternalActorId = param.studentExternalActorId, activeScreenShareExternalActorId = param.activeScreenShareExternalActorId, controlBar = param.controlBar, whiteboard = param.whiteboard;
22323
- var _useState = _sliced_to_array$8(useState(true), 2), sidebarOpen = _useState[0], setSidebarOpen = _useState[1];
22431
+ var _useState = _sliced_to_array$9(useState(true), 2), sidebarOpen = _useState[0], setSidebarOpen = _useState[1];
22324
22432
  var previousScreenShareExternalActorIdRef = useRef(activeScreenShareExternalActorId);
22325
22433
  var previousShareSessionKeyRef = useRef(undefined);
22326
22434
  var whiteboardContext = useContext(WhiteboardContext);
@@ -23042,13 +23150,13 @@ var WebSocketRealtimeTransport = /*#__PURE__*/ function() {
23042
23150
  return WebSocketRealtimeTransport;
23043
23151
  }();
23044
23152
 
23045
- function _array_like_to_array$8(arr, len) {
23153
+ function _array_like_to_array$9(arr, len) {
23046
23154
  if (len == null || len > arr.length) len = arr.length;
23047
23155
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
23048
23156
  return arr2;
23049
23157
  }
23050
23158
  function _array_without_holes$2(arr) {
23051
- if (Array.isArray(arr)) return _array_like_to_array$8(arr);
23159
+ if (Array.isArray(arr)) return _array_like_to_array$9(arr);
23052
23160
  }
23053
23161
  function _class_call_check$1(instance, Constructor) {
23054
23162
  if (!(instance instanceof Constructor)) {
@@ -23088,15 +23196,15 @@ function _non_iterable_spread$2() {
23088
23196
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
23089
23197
  }
23090
23198
  function _to_consumable_array$2(arr) {
23091
- return _array_without_holes$2(arr) || _iterable_to_array$2(arr) || _unsupported_iterable_to_array$8(arr) || _non_iterable_spread$2();
23199
+ return _array_without_holes$2(arr) || _iterable_to_array$2(arr) || _unsupported_iterable_to_array$9(arr) || _non_iterable_spread$2();
23092
23200
  }
23093
- function _unsupported_iterable_to_array$8(o, minLen) {
23201
+ function _unsupported_iterable_to_array$9(o, minLen) {
23094
23202
  if (!o) return;
23095
- if (typeof o === "string") return _array_like_to_array$8(o, minLen);
23203
+ if (typeof o === "string") return _array_like_to_array$9(o, minLen);
23096
23204
  var n = Object.prototype.toString.call(o).slice(8, -1);
23097
23205
  if (n === "Object" && o.constructor) n = o.constructor.name;
23098
23206
  if (n === "Map" || n === "Set") return Array.from(n);
23099
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$8(o, minLen);
23207
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$9(o, minLen);
23100
23208
  }
23101
23209
  var ChatClientState = /*#__PURE__*/ function() {
23102
23210
  function ChatClientState() {
@@ -24385,12 +24493,12 @@ function ForwardMessageDialog(param) {
24385
24493
  });
24386
24494
  }
24387
24495
 
24388
- function _array_like_to_array$7(arr, len) {
24496
+ function _array_like_to_array$8(arr, len) {
24389
24497
  if (len == null || len > arr.length) len = arr.length;
24390
24498
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
24391
24499
  return arr2;
24392
24500
  }
24393
- function _array_with_holes$7(arr) {
24501
+ function _array_with_holes$8(arr) {
24394
24502
  if (Array.isArray(arr)) return arr;
24395
24503
  }
24396
24504
  function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
@@ -24422,7 +24530,7 @@ function _async_to_generator$5(fn) {
24422
24530
  });
24423
24531
  };
24424
24532
  }
24425
- function _iterable_to_array_limit$7(arr, i) {
24533
+ function _iterable_to_array_limit$8(arr, i) {
24426
24534
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24427
24535
  if (_i == null) return;
24428
24536
  var _arr = [];
@@ -24446,19 +24554,19 @@ function _iterable_to_array_limit$7(arr, i) {
24446
24554
  }
24447
24555
  return _arr;
24448
24556
  }
24449
- function _non_iterable_rest$7() {
24557
+ function _non_iterable_rest$8() {
24450
24558
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
24451
24559
  }
24452
- function _sliced_to_array$7(arr, i) {
24453
- return _array_with_holes$7(arr) || _iterable_to_array_limit$7(arr, i) || _unsupported_iterable_to_array$7(arr, i) || _non_iterable_rest$7();
24560
+ function _sliced_to_array$8(arr, i) {
24561
+ return _array_with_holes$8(arr) || _iterable_to_array_limit$8(arr, i) || _unsupported_iterable_to_array$8(arr, i) || _non_iterable_rest$8();
24454
24562
  }
24455
- function _unsupported_iterable_to_array$7(o, minLen) {
24563
+ function _unsupported_iterable_to_array$8(o, minLen) {
24456
24564
  if (!o) return;
24457
- if (typeof o === "string") return _array_like_to_array$7(o, minLen);
24565
+ if (typeof o === "string") return _array_like_to_array$8(o, minLen);
24458
24566
  var n = Object.prototype.toString.call(o).slice(8, -1);
24459
24567
  if (n === "Object" && o.constructor) n = o.constructor.name;
24460
24568
  if (n === "Map" || n === "Set") return Array.from(n);
24461
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$7(o, minLen);
24569
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$8(o, minLen);
24462
24570
  }
24463
24571
  function _ts_generator$5(thisArg, body) {
24464
24572
  var f, y, t, _ = {
@@ -24561,7 +24669,7 @@ function _ts_generator$5(thisArg, body) {
24561
24669
  }
24562
24670
  function MessageComposer(param) {
24563
24671
  var canSend = param.canSend, className = param.className, onSend = param.onSend;
24564
- var _useState = _sliced_to_array$7(useState(''), 2), text = _useState[0], setText = _useState[1];
24672
+ var _useState = _sliced_to_array$8(useState(''), 2), text = _useState[0], setText = _useState[1];
24565
24673
  if (!canSend) {
24566
24674
  return /*#__PURE__*/ jsx("div", {
24567
24675
  className: cx('navi-chat__readonly', className),
@@ -24677,16 +24785,16 @@ function MessageComposer(param) {
24677
24785
  });
24678
24786
  }
24679
24787
 
24680
- function _array_like_to_array$6(arr, len) {
24788
+ function _array_like_to_array$7(arr, len) {
24681
24789
  if (len == null || len > arr.length) len = arr.length;
24682
24790
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
24683
24791
  return arr2;
24684
24792
  }
24685
- function _array_with_holes$6(arr) {
24793
+ function _array_with_holes$7(arr) {
24686
24794
  if (Array.isArray(arr)) return arr;
24687
24795
  }
24688
24796
  function _array_without_holes$1(arr) {
24689
- if (Array.isArray(arr)) return _array_like_to_array$6(arr);
24797
+ if (Array.isArray(arr)) return _array_like_to_array$7(arr);
24690
24798
  }
24691
24799
  function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
24692
24800
  try {
@@ -24727,7 +24835,7 @@ function _instanceof(left, right) {
24727
24835
  function _iterable_to_array$1(iter) {
24728
24836
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
24729
24837
  }
24730
- function _iterable_to_array_limit$6(arr, i) {
24838
+ function _iterable_to_array_limit$7(arr, i) {
24731
24839
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24732
24840
  if (_i == null) return;
24733
24841
  var _arr = [];
@@ -24751,25 +24859,25 @@ function _iterable_to_array_limit$6(arr, i) {
24751
24859
  }
24752
24860
  return _arr;
24753
24861
  }
24754
- function _non_iterable_rest$6() {
24862
+ function _non_iterable_rest$7() {
24755
24863
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
24756
24864
  }
24757
24865
  function _non_iterable_spread$1() {
24758
24866
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
24759
24867
  }
24760
- function _sliced_to_array$6(arr, i) {
24761
- return _array_with_holes$6(arr) || _iterable_to_array_limit$6(arr, i) || _unsupported_iterable_to_array$6(arr, i) || _non_iterable_rest$6();
24868
+ function _sliced_to_array$7(arr, i) {
24869
+ return _array_with_holes$7(arr) || _iterable_to_array_limit$7(arr, i) || _unsupported_iterable_to_array$7(arr, i) || _non_iterable_rest$7();
24762
24870
  }
24763
24871
  function _to_consumable_array$1(arr) {
24764
- return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$6(arr) || _non_iterable_spread$1();
24872
+ return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$7(arr) || _non_iterable_spread$1();
24765
24873
  }
24766
- function _unsupported_iterable_to_array$6(o, minLen) {
24874
+ function _unsupported_iterable_to_array$7(o, minLen) {
24767
24875
  if (!o) return;
24768
- if (typeof o === "string") return _array_like_to_array$6(o, minLen);
24876
+ if (typeof o === "string") return _array_like_to_array$7(o, minLen);
24769
24877
  var n = Object.prototype.toString.call(o).slice(8, -1);
24770
24878
  if (n === "Object" && o.constructor) n = o.constructor.name;
24771
24879
  if (n === "Map" || n === "Set") return Array.from(n);
24772
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$6(o, minLen);
24880
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$7(o, minLen);
24773
24881
  }
24774
24882
  function _ts_generator$4(thisArg, body) {
24775
24883
  var f, y, t, _ = {
@@ -24878,15 +24986,15 @@ function MessageList(param) {
24878
24986
  var restoreScrollSnapshotRef = useRef(undefined);
24879
24987
  var previousMessageCountRef = useRef(messages.length);
24880
24988
  var previousMessagesRef = useRef(messages);
24881
- var _useState = _sliced_to_array$6(useState(''), 2), draftText = _useState[0], setDraftText = _useState[1];
24882
- var _useState1 = _sliced_to_array$6(useState(), 2), editingMessageId = _useState1[0], setEditingMessageId = _useState1[1];
24883
- var _useState2 = _sliced_to_array$6(useState(), 2), openMenuMessageId = _useState2[0], setOpenMenuMessageId = _useState2[1];
24989
+ var _useState = _sliced_to_array$7(useState(''), 2), draftText = _useState[0], setDraftText = _useState[1];
24990
+ var _useState1 = _sliced_to_array$7(useState(), 2), editingMessageId = _useState1[0], setEditingMessageId = _useState1[1];
24991
+ var _useState2 = _sliced_to_array$7(useState(), 2), openMenuMessageId = _useState2[0], setOpenMenuMessageId = _useState2[1];
24884
24992
  var openMenuRef = useRef(null);
24885
- var _useState3 = _sliced_to_array$6(useState(function() {
24993
+ var _useState3 = _sliced_to_array$7(useState(function() {
24886
24994
  return now().getTime();
24887
24995
  }), 2), currentTimeMs = _useState3[0], setCurrentTimeMs = _useState3[1];
24888
- var _useState4 = _sliced_to_array$6(useState(true), 2), isAtLatest = _useState4[0], setIsAtLatest = _useState4[1];
24889
- var _useState5 = _sliced_to_array$6(useState(false), 2), hasNewMessages = _useState5[0], setHasNewMessages = _useState5[1];
24996
+ var _useState4 = _sliced_to_array$7(useState(true), 2), isAtLatest = _useState4[0], setIsAtLatest = _useState4[1];
24997
+ var _useState5 = _sliced_to_array$7(useState(false), 2), hasNewMessages = _useState5[0], setHasNewMessages = _useState5[1];
24890
24998
  var orderedMessages = useMemo(function() {
24891
24999
  return _to_consumable_array$1(messages).sort(compareMessagesByCreatedAt);
24892
25000
  }, [
@@ -25309,12 +25417,12 @@ var formatTime = function(value) {
25309
25417
  }).format(new Date(value));
25310
25418
  };
25311
25419
 
25312
- function _array_like_to_array$5(arr, len) {
25420
+ function _array_like_to_array$6(arr, len) {
25313
25421
  if (len == null || len > arr.length) len = arr.length;
25314
25422
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
25315
25423
  return arr2;
25316
25424
  }
25317
- function _array_with_holes$5(arr) {
25425
+ function _array_with_holes$6(arr) {
25318
25426
  if (Array.isArray(arr)) return arr;
25319
25427
  }
25320
25428
  function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
@@ -25346,7 +25454,7 @@ function _async_to_generator$3(fn) {
25346
25454
  });
25347
25455
  };
25348
25456
  }
25349
- function _iterable_to_array_limit$5(arr, i) {
25457
+ function _iterable_to_array_limit$6(arr, i) {
25350
25458
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
25351
25459
  if (_i == null) return;
25352
25460
  var _arr = [];
@@ -25370,19 +25478,19 @@ function _iterable_to_array_limit$5(arr, i) {
25370
25478
  }
25371
25479
  return _arr;
25372
25480
  }
25373
- function _non_iterable_rest$5() {
25481
+ function _non_iterable_rest$6() {
25374
25482
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
25375
25483
  }
25376
- function _sliced_to_array$5(arr, i) {
25377
- return _array_with_holes$5(arr) || _iterable_to_array_limit$5(arr, i) || _unsupported_iterable_to_array$5(arr, i) || _non_iterable_rest$5();
25484
+ function _sliced_to_array$6(arr, i) {
25485
+ return _array_with_holes$6(arr) || _iterable_to_array_limit$6(arr, i) || _unsupported_iterable_to_array$6(arr, i) || _non_iterable_rest$6();
25378
25486
  }
25379
- function _unsupported_iterable_to_array$5(o, minLen) {
25487
+ function _unsupported_iterable_to_array$6(o, minLen) {
25380
25488
  if (!o) return;
25381
- if (typeof o === "string") return _array_like_to_array$5(o, minLen);
25489
+ if (typeof o === "string") return _array_like_to_array$6(o, minLen);
25382
25490
  var n = Object.prototype.toString.call(o).slice(8, -1);
25383
25491
  if (n === "Object" && o.constructor) n = o.constructor.name;
25384
25492
  if (n === "Map" || n === "Set") return Array.from(n);
25385
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$5(o, minLen);
25493
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$6(o, minLen);
25386
25494
  }
25387
25495
  function _ts_generator$3(thisArg, body) {
25388
25496
  var f, y, t, _ = {
@@ -25487,7 +25595,7 @@ function ChatPanel(param) {
25487
25595
  var className = param.className;
25488
25596
  var _messagesByRoom_activeRoom_roomId, _ref, _ref1, _ref2;
25489
25597
  var _useChatContext = useChatContext(), activeRoomId = _useChatContext.activeRoomId, classNames = _useChatContext.classNames, client = _useChatContext.client, currentSubject = _useChatContext.currentSubject, hasMoreByRoom = _useChatContext.hasMoreByRoom, isLoadingOlderByRoom = _useChatContext.isLoadingOlderByRoom, loadOlderMessages = _useChatContext.loadOlderMessages, messagesByRoom = _useChatContext.messagesByRoom, messageActionWindowMs = _useChatContext.messageActionWindowMs, now = _useChatContext.now, onlineCountsByRoom = _useChatContext.onlineCountsByRoom, rooms = _useChatContext.rooms, sendMessage = _useChatContext.sendMessage, deleteMessage = _useChatContext.deleteMessage, editMessage = _useChatContext.editMessage, setActiveRoomId = _useChatContext.setActiveRoomId, setRoomAtLatest = _useChatContext.setRoomAtLatest, status = _useChatContext.status, unreadCountsByRoom = _useChatContext.unreadCountsByRoom;
25490
- var _useState = _sliced_to_array$5(useState(), 2), forwardingMessage = _useState[0], setForwardingMessage = _useState[1];
25598
+ var _useState = _sliced_to_array$6(useState(), 2), forwardingMessage = _useState[0], setForwardingMessage = _useState[1];
25491
25599
  var activeRoom = findActiveRoom(rooms, activeRoomId);
25492
25600
  var canRead = hasRoomPermission(activeRoom, 'read');
25493
25601
  var canSend = hasRoomPermission(activeRoom, 'send');
@@ -25630,16 +25738,16 @@ var getRoomDisplayRole = function(room) {
25630
25738
  return hasRoomPermission(room, 'forward') ? 'Quản trị' : 'Thành viên';
25631
25739
  };
25632
25740
 
25633
- function _array_like_to_array$4(arr, len) {
25741
+ function _array_like_to_array$5(arr, len) {
25634
25742
  if (len == null || len > arr.length) len = arr.length;
25635
25743
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
25636
25744
  return arr2;
25637
25745
  }
25638
- function _array_with_holes$4(arr) {
25746
+ function _array_with_holes$5(arr) {
25639
25747
  if (Array.isArray(arr)) return arr;
25640
25748
  }
25641
25749
  function _array_without_holes(arr) {
25642
- if (Array.isArray(arr)) return _array_like_to_array$4(arr);
25750
+ if (Array.isArray(arr)) return _array_like_to_array$5(arr);
25643
25751
  }
25644
25752
  function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
25645
25753
  try {
@@ -25686,7 +25794,7 @@ function _define_property$1(obj, key, value) {
25686
25794
  function _iterable_to_array(iter) {
25687
25795
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
25688
25796
  }
25689
- function _iterable_to_array_limit$4(arr, i) {
25797
+ function _iterable_to_array_limit$5(arr, i) {
25690
25798
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
25691
25799
  if (_i == null) return;
25692
25800
  var _arr = [];
@@ -25710,7 +25818,7 @@ function _iterable_to_array_limit$4(arr, i) {
25710
25818
  }
25711
25819
  return _arr;
25712
25820
  }
25713
- function _non_iterable_rest$4() {
25821
+ function _non_iterable_rest$5() {
25714
25822
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
25715
25823
  }
25716
25824
  function _non_iterable_spread() {
@@ -25750,23 +25858,23 @@ function _object_spread_props$1(target, source) {
25750
25858
  }
25751
25859
  return target;
25752
25860
  }
25753
- function _sliced_to_array$4(arr, i) {
25754
- return _array_with_holes$4(arr) || _iterable_to_array_limit$4(arr, i) || _unsupported_iterable_to_array$4(arr, i) || _non_iterable_rest$4();
25861
+ function _sliced_to_array$5(arr, i) {
25862
+ return _array_with_holes$5(arr) || _iterable_to_array_limit$5(arr, i) || _unsupported_iterable_to_array$5(arr, i) || _non_iterable_rest$5();
25755
25863
  }
25756
25864
  function _to_consumable_array(arr) {
25757
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array$4(arr) || _non_iterable_spread();
25865
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array$5(arr) || _non_iterable_spread();
25758
25866
  }
25759
25867
  function _type_of(obj) {
25760
25868
  "@swc/helpers - typeof";
25761
25869
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
25762
25870
  }
25763
- function _unsupported_iterable_to_array$4(o, minLen) {
25871
+ function _unsupported_iterable_to_array$5(o, minLen) {
25764
25872
  if (!o) return;
25765
- if (typeof o === "string") return _array_like_to_array$4(o, minLen);
25873
+ if (typeof o === "string") return _array_like_to_array$5(o, minLen);
25766
25874
  var n = Object.prototype.toString.call(o).slice(8, -1);
25767
25875
  if (n === "Object" && o.constructor) n = o.constructor.name;
25768
25876
  if (n === "Map" || n === "Set") return Array.from(n);
25769
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$4(o, minLen);
25877
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$5(o, minLen);
25770
25878
  }
25771
25879
  function _ts_generator$2(thisArg, body) {
25772
25880
  var f, y, t, _ = {
@@ -25874,15 +25982,15 @@ function ChatProvider(param) {
25874
25982
  return new Date();
25875
25983
  } : _param_now, onError = param.onError, refreshToken = param.refreshToken, refreshTokenExpiresAt = param.refreshTokenExpiresAt, realtimeEndpoint = param.realtimeEndpoint, rooms = param.rooms, token = param.token, tokenExpiresAt = param.tokenExpiresAt, tokens = param.tokens;
25876
25984
  var _rooms_;
25877
- var _useState = _sliced_to_array$4(useState(currentRoomId !== null && currentRoomId !== void 0 ? currentRoomId : (_rooms_ = rooms[0]) === null || _rooms_ === void 0 ? void 0 : _rooms_.roomId), 2), activeRoomId = _useState[0], setActiveRoomId = _useState[1];
25878
- var _useState1 = _sliced_to_array$4(useState({}), 2), hasMoreByRoom = _useState1[0], setHasMoreByRoom = _useState1[1];
25879
- var _useState2 = _sliced_to_array$4(useState({}), 2), historyCursorsByRoom = _useState2[0], setHistoryCursorsByRoom = _useState2[1];
25880
- var _useState3 = _sliced_to_array$4(useState({}), 2), isLoadingOlderByRoom = _useState3[0], setIsLoadingOlderByRoom = _useState3[1];
25881
- var _useState4 = _sliced_to_array$4(useState(initialMessages), 2), messagesByRoom = _useState4[0], setMessagesByRoom = _useState4[1];
25882
- var _useState5 = _sliced_to_array$4(useState({}), 2), onlineCountsByRoom = _useState5[0], setOnlineCountsByRoom = _useState5[1];
25883
- var _useState6 = _sliced_to_array$4(useState({}), 2), roomLatestStateByRoom = _useState6[0], setRoomLatestStateByRoom = _useState6[1];
25884
- var _useState7 = _sliced_to_array$4(useState('connecting'), 2), status = _useState7[0], setStatus = _useState7[1];
25885
- var _useState8 = _sliced_to_array$4(useState({}), 2), unreadCountsByRoom = _useState8[0], setUnreadCountsByRoom = _useState8[1];
25985
+ var _useState = _sliced_to_array$5(useState(currentRoomId !== null && currentRoomId !== void 0 ? currentRoomId : (_rooms_ = rooms[0]) === null || _rooms_ === void 0 ? void 0 : _rooms_.roomId), 2), activeRoomId = _useState[0], setActiveRoomId = _useState[1];
25986
+ var _useState1 = _sliced_to_array$5(useState({}), 2), hasMoreByRoom = _useState1[0], setHasMoreByRoom = _useState1[1];
25987
+ var _useState2 = _sliced_to_array$5(useState({}), 2), historyCursorsByRoom = _useState2[0], setHistoryCursorsByRoom = _useState2[1];
25988
+ var _useState3 = _sliced_to_array$5(useState({}), 2), isLoadingOlderByRoom = _useState3[0], setIsLoadingOlderByRoom = _useState3[1];
25989
+ var _useState4 = _sliced_to_array$5(useState(initialMessages), 2), messagesByRoom = _useState4[0], setMessagesByRoom = _useState4[1];
25990
+ var _useState5 = _sliced_to_array$5(useState({}), 2), onlineCountsByRoom = _useState5[0], setOnlineCountsByRoom = _useState5[1];
25991
+ var _useState6 = _sliced_to_array$5(useState({}), 2), roomLatestStateByRoom = _useState6[0], setRoomLatestStateByRoom = _useState6[1];
25992
+ var _useState7 = _sliced_to_array$5(useState('connecting'), 2), status = _useState7[0], setStatus = _useState7[1];
25993
+ var _useState8 = _sliced_to_array$5(useState({}), 2), unreadCountsByRoom = _useState8[0], setUnreadCountsByRoom = _useState8[1];
25886
25994
  var currentSubject = useMemo(function() {
25887
25995
  return subjectFromToken(token);
25888
25996
  }, [
@@ -26309,7 +26417,7 @@ var isChatRoomPresenceDto = function(event) {
26309
26417
  return Boolean(event && (typeof event === "undefined" ? "undefined" : _type_of(event)) === 'object' && 'roomId' in event && typeof event.roomId === 'string' && 'onlineCount' in event && typeof event.onlineCount === 'number');
26310
26418
  };
26311
26419
  var subjectFromToken = function(token) {
26312
- var _token_split = _sliced_to_array$4(token.split('.'), 2), payload = _token_split[1];
26420
+ var _token_split = _sliced_to_array$5(token.split('.'), 2), payload = _token_split[1];
26313
26421
  if (!payload) return undefined;
26314
26422
  try {
26315
26423
  var normalized = payload.replace(/-/g, '+').replace(/_/g, '/');
@@ -26321,6 +26429,96 @@ var subjectFromToken = function(token) {
26321
26429
  }
26322
26430
  };
26323
26431
 
26432
+ var roomPlatformGeneratedStyles = "/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n@layer properties;\n.room-platform-room {\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-amber-50: oklch(98.7% 0.022 95.277);\n --color-amber-200: oklch(92.4% 0.12 95.746);\n --color-amber-700: oklch(55.5% 0.163 48.998);\n --color-amber-950: oklch(27.9% 0.077 45.635);\n --color-emerald-50: oklch(97.9% 0.021 166.113);\n --color-emerald-200: oklch(90.5% 0.093 164.15);\n --color-emerald-400: oklch(76.5% 0.177 163.223);\n --color-emerald-950: oklch(26.2% 0.051 172.552);\n --color-sky-50: oklch(97.7% 0.013 236.62);\n --color-sky-200: oklch(90.1% 0.058 230.902);\n --color-sky-950: oklch(29.3% 0.066 243.157);\n --color-slate-50: oklch(98.4% 0.003 247.858);\n --color-slate-100: oklch(96.8% 0.007 247.896);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-300: oklch(86.9% 0.022 252.894);\n --color-slate-400: oklch(70.4% 0.04 256.788);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-slate-700: oklch(37.2% 0.044 257.287);\n --color-slate-900: oklch(20.8% 0.042 265.755);\n --color-slate-950: oklch(12.9% 0.042 264.695);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-2xl: 42rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-md: 0.375rem;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --radius-4xl: 2rem;\n --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);\n --ease-out: cubic-bezier(0, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --blur-xs: 4px;\n --aspect-video: 16 / 9;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --color-background: #ffffff;\n --color-foreground: oklch(0.145 0 0);\n --color-popover: #ffffff;\n --color-popover-foreground: oklch(0.145 0 0);\n --color-primary: #242f62;\n --color-primary-foreground: #ffffff;\n --color-secondary: #eb6619;\n --color-secondary-foreground: #ffffff;\n --color-muted: oklch(0.97 0 0);\n --color-muted-foreground: oklch(0.556 0 0);\n --color-accent: oklch(0.97 0 0);\n --color-accent-foreground: oklch(0.205 0 0);\n --color-destructive: oklch(0.577 0.245 27.325);\n --color-border: oklch(0.922 0 0);\n --color-input: oklch(0.922 0 0);\n --color-ring: #9dc2f3;\n --color-liveclass-orange: #eb6619;\n}\n@property --tw-animation-delay {\n syntax: \"*\";\n inherits: false;\n initial-value: 0s;\n}\n@property --tw-animation-direction {\n syntax: \"*\";\n inherits: false;\n initial-value: normal;\n}\n@property --tw-animation-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-animation-fill-mode {\n syntax: \"*\";\n inherits: false;\n initial-value: none;\n}\n@property --tw-animation-iteration-count {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-blur {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-enter-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-enter-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-blur {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-opacity {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-rotate {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-scale {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-exit-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-exit-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n.room-platform-room .pointer-events-none {\n pointer-events: none;\n}\n.room-platform-room .visible {\n visibility: visible;\n}\n.room-platform-room .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n.room-platform-room .absolute {\n position: absolute;\n}\n.room-platform-room .fixed {\n position: fixed;\n}\n.room-platform-room .relative {\n position: relative;\n}\n.room-platform-room .static {\n position: static;\n}\n.room-platform-room .inset-0 {\n inset: calc(var(--spacing) * 0);\n}\n.room-platform-room .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n}\n.room-platform-room .inset-x-3 {\n inset-inline: calc(var(--spacing) * 3);\n}\n.room-platform-room .start {\n inset-inline-start: var(--spacing);\n}\n.room-platform-room .end {\n inset-inline-end: var(--spacing);\n}\n.room-platform-room .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n}\n.room-platform-room .top-2 {\n top: calc(var(--spacing) * 2);\n}\n.room-platform-room .top-3 {\n top: calc(var(--spacing) * 3);\n}\n.room-platform-room .top-4 {\n top: calc(var(--spacing) * 4);\n}\n.room-platform-room .top-7 {\n top: calc(var(--spacing) * 7);\n}\n.room-platform-room .right-2 {\n right: calc(var(--spacing) * 2);\n}\n.room-platform-room .right-4 {\n right: calc(var(--spacing) * 4);\n}\n.room-platform-room .right-7 {\n right: calc(var(--spacing) * 7);\n}\n.room-platform-room .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n}\n.room-platform-room .bottom-1 {\n bottom: calc(var(--spacing) * 1);\n}\n.room-platform-room .bottom-2 {\n bottom: calc(var(--spacing) * 2);\n}\n.room-platform-room .bottom-3 {\n bottom: calc(var(--spacing) * 3);\n}\n.room-platform-room .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n}\n.room-platform-room .left-0 {\n left: calc(var(--spacing) * 0);\n}\n.room-platform-room .left-1\\/2 {\n left: calc(1 / 2 * 100%);\n}\n.room-platform-room .left-2 {\n left: calc(var(--spacing) * 2);\n}\n.room-platform-room .left-3 {\n left: calc(var(--spacing) * 3);\n}\n.room-platform-room .left-4 {\n left: calc(var(--spacing) * 4);\n}\n.room-platform-room .isolate {\n isolation: isolate;\n}\n.room-platform-room .z-10 {\n z-index: 10;\n}\n.room-platform-room .z-20 {\n z-index: 20;\n}\n.room-platform-room .z-30 {\n z-index: 30;\n}\n.room-platform-room .z-40 {\n z-index: 40;\n}\n.room-platform-room .z-50 {\n z-index: 50;\n}\n.room-platform-room .z-\\[70\\] {\n z-index: 70;\n}\n.room-platform-room .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n}\n.room-platform-room .m-0 {\n margin: calc(var(--spacing) * 0);\n}\n.room-platform-room .m-auto {\n margin: auto;\n}\n.room-platform-room .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n}\n.room-platform-room .-mx-4 {\n margin-inline: calc(var(--spacing) * -4);\n}\n.room-platform-room .mx-auto {\n margin-inline: auto;\n}\n.room-platform-room .my-1 {\n margin-block: calc(var(--spacing) * 1);\n}\n.room-platform-room .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n}\n.room-platform-room .-mb-4 {\n margin-bottom: calc(var(--spacing) * -4);\n}\n.room-platform-room .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n}\n.room-platform-room .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n}\n.room-platform-room .flex {\n display: flex;\n}\n.room-platform-room .grid {\n display: grid;\n}\n.room-platform-room .hidden {\n display: none;\n}\n.room-platform-room .inline {\n display: inline;\n}\n.room-platform-room .inline-flex {\n display: inline-flex;\n}\n.room-platform-room .inline-grid {\n display: inline-grid;\n}\n.room-platform-room .aspect-video {\n aspect-ratio: var(--aspect-video);\n}\n.room-platform-room .size-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n height: calc(var(--spacing) * 2.5);\n}\n.room-platform-room .size-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n}\n.room-platform-room .size-4 {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n}\n.room-platform-room .size-5 {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n}\n.room-platform-room .size-6 {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n}\n.room-platform-room .size-7 {\n width: calc(var(--spacing) * 7);\n height: calc(var(--spacing) * 7);\n}\n.room-platform-room .size-8 {\n width: calc(var(--spacing) * 8);\n height: calc(var(--spacing) * 8);\n}\n.room-platform-room .size-9 {\n width: calc(var(--spacing) * 9);\n height: calc(var(--spacing) * 9);\n}\n.room-platform-room .size-10 {\n width: calc(var(--spacing) * 10);\n height: calc(var(--spacing) * 10);\n}\n.room-platform-room .size-12 {\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n}\n.room-platform-room .h-5 {\n height: calc(var(--spacing) * 5);\n}\n.room-platform-room .h-6 {\n height: calc(var(--spacing) * 6);\n}\n.room-platform-room .h-7 {\n height: calc(var(--spacing) * 7);\n}\n.room-platform-room .h-8 {\n height: calc(var(--spacing) * 8);\n}\n.room-platform-room .h-9 {\n height: calc(var(--spacing) * 9);\n}\n.room-platform-room .h-10\\! {\n height: calc(var(--spacing) * 10) !important;\n}\n.room-platform-room .h-12 {\n height: calc(var(--spacing) * 12);\n}\n.room-platform-room .h-\\[calc\\(100\\%-1px\\)\\] {\n height: calc(100% - 1px);\n}\n.room-platform-room .h-auto {\n height: auto;\n}\n.room-platform-room .h-dvh {\n height: 100dvh;\n}\n.room-platform-room .h-full {\n height: 100%;\n}\n.room-platform-room .h-px {\n height: 1px;\n}\n.room-platform-room .h-screen {\n height: 100vh;\n}\n.room-platform-room .max-h-\\(--radix-select-content-available-height\\) {\n max-height: var(--radix-select-content-available-height);\n}\n.room-platform-room .max-h-\\[85vh\\] {\n max-height: 85vh;\n}\n.room-platform-room .max-h-full {\n max-height: 100%;\n}\n.room-platform-room .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n}\n.room-platform-room .min-h-10 {\n min-height: calc(var(--spacing) * 10);\n}\n.room-platform-room .min-h-18 {\n min-height: calc(var(--spacing) * 18);\n}\n.room-platform-room .min-h-\\[320px\\] {\n min-height: 320px;\n}\n.room-platform-room .min-h-dvh {\n min-height: 100dvh;\n}\n.room-platform-room .w-9 {\n width: calc(var(--spacing) * 9);\n}\n.room-platform-room .w-48 {\n width: calc(var(--spacing) * 48);\n}\n.room-platform-room .w-auto {\n width: auto;\n}\n.room-platform-room .w-dvw {\n width: 100dvw;\n}\n.room-platform-room .w-fit {\n width: fit-content;\n}\n.room-platform-room .w-full {\n width: 100%;\n}\n.room-platform-room .w-full\\! {\n width: 100% !important;\n}\n.room-platform-room .w-screen {\n width: 100vw;\n}\n.room-platform-room .max-w-\\[40\\%\\] {\n max-width: 40%;\n}\n.room-platform-room .max-w-\\[calc\\(100\\%-1\\.5rem\\)\\] {\n max-width: calc(100% - 1.5rem);\n}\n.room-platform-room .max-w-\\[calc\\(100\\%-1rem\\)\\] {\n max-width: calc(100% - 1rem);\n}\n.room-platform-room .max-w-\\[calc\\(100\\%-2rem\\)\\] {\n max-width: calc(100% - 2rem);\n}\n.room-platform-room .max-w-full {\n max-width: 100%;\n}\n.room-platform-room .max-w-none {\n max-width: none;\n}\n.room-platform-room .max-w-xs {\n max-width: var(--container-xs);\n}\n.room-platform-room .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n}\n.room-platform-room .min-w-36 {\n min-width: calc(var(--spacing) * 36);\n}\n.room-platform-room .flex-1 {\n flex: 1;\n}\n.room-platform-room .flex-none {\n flex: none;\n}\n.room-platform-room .shrink-0 {\n flex-shrink: 0;\n}\n.room-platform-room .origin-\\(--radix-select-content-transform-origin\\) {\n transform-origin: var(--radix-select-content-transform-origin);\n}\n.room-platform-room .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n}\n.room-platform-room .-translate-x-full {\n --tw-translate-x: -100%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n}\n.room-platform-room .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n}\n.room-platform-room .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n}\n.room-platform-room .translate-y-\\[calc\\(-50\\%_-_2px\\)\\] {\n --tw-translate-y: calc(-50% - 2px);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n}\n.room-platform-room .translate-y-\\[calc\\(100\\%-0\\.75rem\\)\\] {\n --tw-translate-y: calc(100% - 0.75rem);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n}\n.room-platform-room .-scale-x-100 {\n --tw-scale-x: calc(100% * -1);\n scale: var(--tw-scale-x) var(--tw-scale-y);\n}\n.room-platform-room .rotate-45 {\n rotate: 45deg;\n}\n.room-platform-room .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n}\n.room-platform-room .animate-in {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);\n}\n.room-platform-room .animate-spin {\n animation: var(--animate-spin);\n}\n.room-platform-room .cursor-default {\n cursor: default;\n}\n.room-platform-room .cursor-not-allowed {\n cursor: not-allowed;\n}\n.room-platform-room .cursor-pointer {\n cursor: pointer;\n}\n.room-platform-room .resize {\n resize: both;\n}\n.room-platform-room .scroll-my-1 {\n scroll-margin-block: calc(var(--spacing) * 1);\n}\n.room-platform-room .grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.room-platform-room .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.room-platform-room .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.room-platform-room .grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.room-platform-room .grid-rows-\\[auto_1fr\\] {\n grid-template-rows: auto 1fr;\n}\n.room-platform-room .grid-rows-\\[auto_minmax\\(0\\,1fr\\)\\] {\n grid-template-rows: auto minmax(0,1fr);\n}\n.room-platform-room .grid-rows-\\[minmax\\(240px\\,45dvh\\)_minmax\\(0\\,1fr\\)\\] {\n grid-template-rows: minmax(240px,45dvh) minmax(0,1fr);\n}\n.room-platform-room .flex-col {\n flex-direction: column;\n}\n.room-platform-room .flex-col-reverse {\n flex-direction: column-reverse;\n}\n.room-platform-room .flex-wrap {\n flex-wrap: wrap;\n}\n.room-platform-room .place-items-center {\n place-items: center;\n}\n.room-platform-room .content-start {\n align-content: flex-start;\n}\n.room-platform-room .items-center {\n align-items: center;\n}\n.room-platform-room .justify-between {\n justify-content: space-between;\n}\n.room-platform-room .justify-center {\n justify-content: center;\n}\n.room-platform-room .justify-end {\n justify-content: flex-end;\n}\n.room-platform-room .gap-0 {\n gap: calc(var(--spacing) * 0);\n}\n.room-platform-room .gap-1 {\n gap: calc(var(--spacing) * 1);\n}\n.room-platform-room .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n}\n.room-platform-room .gap-2 {\n gap: calc(var(--spacing) * 2);\n}\n.room-platform-room .gap-3 {\n gap: calc(var(--spacing) * 3);\n}\n.room-platform-room .gap-4 {\n gap: calc(var(--spacing) * 4);\n}\n.room-platform-room .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.room-platform-room .overflow-auto {\n overflow: auto;\n}\n.room-platform-room .overflow-hidden {\n overflow: hidden;\n}\n.room-platform-room .overflow-x-hidden {\n overflow-x: hidden;\n}\n.room-platform-room .overflow-y-auto {\n overflow-y: auto;\n}\n.room-platform-room .rounded-2xl {\n border-radius: var(--radius-2xl);\n}\n.room-platform-room .rounded-4xl {\n border-radius: var(--radius-4xl);\n}\n.room-platform-room .rounded-\\[2px\\] {\n border-radius: 2px;\n}\n.room-platform-room .rounded-\\[min\\(var\\(--radius-md\\)\\,10px\\)\\] {\n border-radius: min(var(--radius-md), 10px);\n}\n.room-platform-room .rounded-\\[min\\(var\\(--radius-md\\)\\,12px\\)\\] {\n border-radius: min(var(--radius-md), 12px);\n}\n.room-platform-room .rounded-full {\n border-radius: calc(infinity * 1px);\n}\n.room-platform-room .rounded-lg {\n border-radius: var(--radius-lg);\n}\n.room-platform-room .rounded-md {\n border-radius: var(--radius-md);\n}\n.room-platform-room .rounded-none {\n border-radius: 0;\n}\n.room-platform-room .rounded-xl {\n border-radius: var(--radius-xl);\n}\n.room-platform-room .rounded-l-lg {\n border-top-left-radius: var(--radius-lg);\n border-bottom-left-radius: var(--radius-lg);\n}\n.room-platform-room .rounded-b-xl {\n border-bottom-right-radius: var(--radius-xl);\n border-bottom-left-radius: var(--radius-xl);\n}\n.room-platform-room .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n}\n.room-platform-room .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n}\n.room-platform-room .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n}\n.room-platform-room .border-r-0 {\n border-right-style: var(--tw-border-style);\n border-right-width: 0px;\n}\n.room-platform-room .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n}\n.room-platform-room .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n}\n.room-platform-room .border-\\[\\#2563EB\\] {\n border-color: #2563EB;\n}\n.room-platform-room .border-amber-200 {\n border-color: var(--color-amber-200);\n}\n.room-platform-room .border-border {\n border-color: var(--color-border);\n}\n.room-platform-room .border-emerald-200 {\n border-color: var(--color-emerald-200);\n}\n.room-platform-room .border-input {\n border-color: var(--color-input);\n}\n.room-platform-room .border-liveclass-orange {\n border-color: var(--color-liveclass-orange);\n}\n.room-platform-room .border-liveclass-orange\\/30 {\n border-color: color-mix(in srgb, #eb6619 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-liveclass-orange) 30%, transparent);\n }\n}\n.room-platform-room .border-primary\\/10 {\n border-color: color-mix(in srgb, #242f62 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-primary) 10%, transparent);\n }\n}\n.room-platform-room .border-red-300\\/40 {\n border-color: color-mix(in srgb, oklch(80.8% 0.114 19.571) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-red-300) 40%, transparent);\n }\n}\n.room-platform-room .border-sky-200 {\n border-color: var(--color-sky-200);\n}\n.room-platform-room .border-slate-200 {\n border-color: var(--color-slate-200);\n}\n.room-platform-room .border-slate-300 {\n border-color: var(--color-slate-300);\n}\n.room-platform-room .border-transparent {\n border-color: transparent;\n}\n.room-platform-room .border-white {\n border-color: var(--color-white);\n}\n.room-platform-room .border-white\\/10 {\n border-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n}\n.room-platform-room .border-white\\/20 {\n border-color: color-mix(in srgb, #fff 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 20%, transparent);\n }\n}\n.room-platform-room .border-white\\/30 {\n border-color: color-mix(in srgb, #fff 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 30%, transparent);\n }\n}\n.room-platform-room .bg-amber-50 {\n background-color: var(--color-amber-50);\n}\n.room-platform-room .bg-background {\n background-color: var(--color-background);\n}\n.room-platform-room .bg-black {\n background-color: var(--color-black);\n}\n.room-platform-room .bg-black\\/10 {\n background-color: color-mix(in srgb, #000 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n}\n.room-platform-room .bg-black\\/20 {\n background-color: color-mix(in srgb, #000 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 20%, transparent);\n }\n}\n.room-platform-room .bg-border {\n background-color: var(--color-border);\n}\n.room-platform-room .bg-destructive\\/10 {\n background-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 10%, transparent);\n }\n}\n.room-platform-room .bg-emerald-50 {\n background-color: var(--color-emerald-50);\n}\n.room-platform-room .bg-liveclass-orange {\n background-color: var(--color-liveclass-orange);\n}\n.room-platform-room .bg-liveclass-orange\\/10 {\n background-color: color-mix(in srgb, #eb6619 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-liveclass-orange) 10%, transparent);\n }\n}\n.room-platform-room .bg-muted {\n background-color: var(--color-muted);\n}\n.room-platform-room .bg-muted\\/50 {\n background-color: color-mix(in srgb, oklch(0.97 0 0) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);\n }\n}\n.room-platform-room .bg-popover {\n background-color: var(--color-popover);\n}\n.room-platform-room .bg-primary {\n background-color: var(--color-primary);\n}\n.room-platform-room .bg-primary\\/10 {\n background-color: color-mix(in srgb, #242f62 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 10%, transparent);\n }\n}\n.room-platform-room .bg-secondary {\n background-color: var(--color-secondary);\n}\n.room-platform-room .bg-sky-50 {\n background-color: var(--color-sky-50);\n}\n.room-platform-room .bg-slate-50 {\n background-color: var(--color-slate-50);\n}\n.room-platform-room .bg-slate-900 {\n background-color: var(--color-slate-900);\n}\n.room-platform-room .bg-slate-900\\/45 {\n background-color: color-mix(in srgb, oklch(20.8% 0.042 265.755) 45%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-slate-900) 45%, transparent);\n }\n}\n.room-platform-room .bg-slate-950 {\n background-color: var(--color-slate-950);\n}\n.room-platform-room .bg-slate-950\\/40 {\n background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-slate-950) 40%, transparent);\n }\n}\n.room-platform-room .bg-slate-950\\/75 {\n background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 75%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-slate-950) 75%, transparent);\n }\n}\n.room-platform-room .bg-slate-950\\/80 {\n background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-slate-950) 80%, transparent);\n }\n}\n.room-platform-room .bg-slate-950\\/90 {\n background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-slate-950) 90%, transparent);\n }\n}\n.room-platform-room .bg-transparent {\n background-color: transparent;\n}\n.room-platform-room .bg-white {\n background-color: var(--color-white);\n}\n.room-platform-room .bg-white\\/90 {\n background-color: color-mix(in srgb, #fff 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 90%, transparent);\n }\n}\n.room-platform-room .bg-clip-padding {\n background-clip: padding-box;\n}\n.room-platform-room .fill-primary {\n fill: var(--color-primary);\n}\n.room-platform-room .object-contain {\n object-fit: contain;\n}\n.room-platform-room .object-cover {\n object-fit: cover;\n}\n.room-platform-room .p-0 {\n padding: calc(var(--spacing) * 0);\n}\n.room-platform-room .p-1 {\n padding: calc(var(--spacing) * 1);\n}\n.room-platform-room .p-2 {\n padding: calc(var(--spacing) * 2);\n}\n.room-platform-room .p-3 {\n padding: calc(var(--spacing) * 3);\n}\n.room-platform-room .p-4 {\n padding: calc(var(--spacing) * 4);\n}\n.room-platform-room .p-6 {\n padding: calc(var(--spacing) * 6);\n}\n.room-platform-room .p-\\[3px\\] {\n padding: 3px;\n}\n.room-platform-room .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n}\n.room-platform-room .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n}\n.room-platform-room .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n}\n.room-platform-room .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n}\n.room-platform-room .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n}\n.room-platform-room .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n}\n.room-platform-room .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n}\n.room-platform-room .py-1 {\n padding-block: calc(var(--spacing) * 1);\n}\n.room-platform-room .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n}\n.room-platform-room .py-2 {\n padding-block: calc(var(--spacing) * 2);\n}\n.room-platform-room .py-3 {\n padding-block: calc(var(--spacing) * 3);\n}\n.room-platform-room .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n}\n.room-platform-room .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n}\n.room-platform-room .pr-20 {\n padding-right: calc(var(--spacing) * 20);\n}\n.room-platform-room .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n}\n.room-platform-room .pl-1\\.5 {\n padding-left: calc(var(--spacing) * 1.5);\n}\n.room-platform-room .pl-2\\.5 {\n padding-left: calc(var(--spacing) * 2.5);\n}\n.room-platform-room .text-center {\n text-align: center;\n}\n.room-platform-room .text-left {\n text-align: left;\n}\n.room-platform-room .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n}\n.room-platform-room .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n}\n.room-platform-room .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n}\n.room-platform-room .text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n}\n.room-platform-room .leading-5 {\n --tw-leading: calc(var(--spacing) * 5);\n line-height: calc(var(--spacing) * 5);\n}\n.room-platform-room .leading-none {\n --tw-leading: 1;\n line-height: 1;\n}\n.room-platform-room .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n}\n.room-platform-room .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n}\n.room-platform-room .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n}\n.room-platform-room .text-balance {\n text-wrap: balance;\n}\n.room-platform-room .whitespace-nowrap {\n white-space: nowrap;\n}\n.room-platform-room .text-\\[\\#2563EB\\] {\n color: #2563EB;\n}\n.room-platform-room .text-amber-700 {\n color: var(--color-amber-700);\n}\n.room-platform-room .text-amber-950 {\n color: var(--color-amber-950);\n}\n.room-platform-room .text-destructive {\n color: var(--color-destructive);\n}\n.room-platform-room .text-emerald-950 {\n color: var(--color-emerald-950);\n}\n.room-platform-room .text-foreground {\n color: var(--color-foreground);\n}\n.room-platform-room .text-foreground\\/60 {\n color: color-mix(in srgb, oklch(0.145 0 0) 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-foreground) 60%, transparent);\n }\n}\n.room-platform-room .text-liveclass-orange {\n color: var(--color-liveclass-orange);\n}\n.room-platform-room .text-muted-foreground {\n color: var(--color-muted-foreground);\n}\n.room-platform-room .text-popover-foreground {\n color: var(--color-popover-foreground);\n}\n.room-platform-room .text-primary {\n color: var(--color-primary);\n}\n.room-platform-room .text-primary-foreground {\n color: var(--color-primary-foreground);\n}\n.room-platform-room .text-red-100 {\n color: var(--color-red-100);\n}\n.room-platform-room .text-secondary-foreground {\n color: var(--color-secondary-foreground);\n}\n.room-platform-room .text-sky-950 {\n color: var(--color-sky-950);\n}\n.room-platform-room .text-slate-200 {\n color: var(--color-slate-200);\n}\n.room-platform-room .text-slate-300 {\n color: var(--color-slate-300);\n}\n.room-platform-room .text-slate-400 {\n color: var(--color-slate-400);\n}\n.room-platform-room .text-slate-500 {\n color: var(--color-slate-500);\n}\n.room-platform-room .text-slate-700 {\n color: var(--color-slate-700);\n}\n.room-platform-room .text-slate-950 {\n color: var(--color-slate-950);\n}\n.room-platform-room .text-white {\n color: var(--color-white);\n}\n.room-platform-room .text-white\\/55 {\n color: color-mix(in srgb, #fff 55%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 55%, transparent);\n }\n}\n.room-platform-room .text-white\\/60 {\n color: color-mix(in srgb, #fff 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 60%, transparent);\n }\n}\n.room-platform-room .text-white\\/70 {\n color: color-mix(in srgb, #fff 70%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 70%, transparent);\n }\n}\n.room-platform-room .uppercase {\n text-transform: uppercase;\n}\n.room-platform-room .underline-offset-4 {\n text-underline-offset: 4px;\n}\n.room-platform-room .opacity-70 {\n opacity: 70%;\n}\n.room-platform-room .opacity-80 {\n opacity: 80%;\n}\n.room-platform-room .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .ring {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.room-platform-room .ring-\\[\\#2563EB\\]\\/15 {\n --tw-ring-color: color-mix(in oklab, #2563EB 15%, transparent);\n}\n.room-platform-room .ring-emerald-400 {\n --tw-ring-color: var(--color-emerald-400);\n}\n.room-platform-room .ring-foreground\\/10 {\n --tw-ring-color: color-mix(in srgb, oklch(0.145 0 0) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-foreground) 10%, transparent);\n }\n}\n.room-platform-room .ring-white\\/10 {\n --tw-ring-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n}\n.room-platform-room .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n @media (forced-colors: active) {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n}\n.room-platform-room .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n}\n.room-platform-room .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.room-platform-room .blur-\\[3px\\] {\n --tw-blur: blur(3px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.room-platform-room .blur-\\[6px\\] {\n --tw-blur: blur(6px);\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.room-platform-room .drop-shadow-sm {\n --tw-drop-shadow-size: drop-shadow(0 1px 2px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.15)));\n --tw-drop-shadow: drop-shadow(var(--drop-shadow-sm));\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.room-platform-room .backdrop-blur-\\[1px\\] {\n --tw-backdrop-blur: blur(1px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n}\n.room-platform-room .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.room-platform-room .transition-\\[width\\,transform\\,opacity\\] {\n transition-property: width,transform,opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.room-platform-room .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.room-platform-room .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.room-platform-room .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.room-platform-room .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n}\n.room-platform-room .duration-200 {\n --tw-duration: 200ms;\n transition-duration: 200ms;\n}\n.room-platform-room .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n}\n.room-platform-room .fade-in-0 {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n}\n.room-platform-room .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n}\n.room-platform-room .select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n.room-platform-room .zoom-in-95 {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n}\n.room-platform-room .paused {\n animation-play-state: paused;\n}\n.room-platform-room .ring-inset {\n --tw-ring-inset: inset;\n}\n.room-platform-room .running {\n animation-play-state: running;\n}\n.room-platform-room .group-data-horizontal\\/tabs\\:h-8 {\n .room-platform-room &:is(:where(.group\\/tabs)[data-horizontal] *) {\n height: calc(var(--spacing) * 8);\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:h-fit {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n height: fit-content;\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:w-full {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n width: 100%;\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:flex-col {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n flex-direction: column;\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:justify-start {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n justify-content: flex-start;\n }\n}\n.room-platform-room .group-data-\\[size\\=sm\\]\\/alert-dialog-content\\:grid {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"sm\"] *) {\n display: grid;\n }\n}\n.room-platform-room .group-data-\\[size\\=sm\\]\\/alert-dialog-content\\:grid-cols-2 {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"sm\"] *) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n.room-platform-room .group-data-\\[variant\\=line\\]\\/tabs-list\\:bg-transparent {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"line\"] *) {\n background-color: transparent;\n }\n}\n.room-platform-room .after\\:absolute {\n .room-platform-room &::after {\n content: var(--tw-content);\n position: absolute;\n }\n}\n.room-platform-room .after\\:bg-foreground {\n .room-platform-room &::after {\n content: var(--tw-content);\n background-color: var(--color-foreground);\n }\n}\n.room-platform-room .after\\:opacity-0 {\n .room-platform-room &::after {\n content: var(--tw-content);\n opacity: 0%;\n }\n}\n.room-platform-room .after\\:transition-opacity {\n .room-platform-room &::after {\n content: var(--tw-content);\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n}\n.room-platform-room .group-data-horizontal\\/tabs\\:after\\:inset-x-0 {\n .room-platform-room &:is(:where(.group\\/tabs)[data-horizontal] *) {\n .room-platform-room &::after {\n content: var(--tw-content);\n inset-inline: calc(var(--spacing) * 0);\n }\n }\n}\n.room-platform-room .group-data-horizontal\\/tabs\\:after\\:bottom-\\[-5px\\] {\n .room-platform-room &:is(:where(.group\\/tabs)[data-horizontal] *) {\n .room-platform-room &::after {\n content: var(--tw-content);\n bottom: -5px;\n }\n }\n}\n.room-platform-room .group-data-horizontal\\/tabs\\:after\\:h-0\\.5 {\n .room-platform-room &:is(:where(.group\\/tabs)[data-horizontal] *) {\n .room-platform-room &::after {\n content: var(--tw-content);\n height: calc(var(--spacing) * 0.5);\n }\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:after\\:inset-y-0 {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n .room-platform-room &::after {\n content: var(--tw-content);\n inset-block: calc(var(--spacing) * 0);\n }\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:after\\:-right-1 {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n .room-platform-room &::after {\n content: var(--tw-content);\n right: calc(var(--spacing) * -1);\n }\n }\n}\n.room-platform-room .group-data-vertical\\/tabs\\:after\\:w-0\\.5 {\n .room-platform-room &:is(:where(.group\\/tabs)[data-vertical] *) {\n .room-platform-room &::after {\n content: var(--tw-content);\n width: calc(var(--spacing) * 0.5);\n }\n }\n}\n.room-platform-room .hover\\:border-slate-300 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-300);\n }\n }\n}\n.room-platform-room .hover\\:border-slate-400 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n border-color: var(--color-slate-400);\n }\n }\n}\n.room-platform-room .hover\\:bg-destructive\\/20 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n}\n.room-platform-room .hover\\:bg-liveclass-orange\\/90 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #eb6619 90%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-liveclass-orange) 90%, transparent);\n }\n }\n }\n}\n.room-platform-room .hover\\:bg-muted {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n}\n.room-platform-room .hover\\:bg-red-50 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-red-50);\n }\n }\n}\n.room-platform-room .hover\\:bg-red-500\\/15 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-500) 15%, transparent);\n }\n }\n }\n}\n.room-platform-room .hover\\:bg-secondary\\/80 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #eb6619 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n}\n.room-platform-room .hover\\:bg-slate-100 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-100);\n }\n }\n}\n.room-platform-room .hover\\:bg-slate-900 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-slate-900);\n }\n }\n}\n.room-platform-room .hover\\:bg-white {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n}\n.room-platform-room .hover\\:bg-white\\/10 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n }\n}\n.room-platform-room .hover\\:bg-white\\/15 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #fff 15%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 15%, transparent);\n }\n }\n }\n}\n.room-platform-room .hover\\:text-foreground {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-foreground);\n }\n }\n}\n.room-platform-room .hover\\:text-muted-foreground {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-muted-foreground);\n }\n }\n}\n.room-platform-room .hover\\:text-red-600 {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-red-600);\n }\n }\n}\n.room-platform-room .hover\\:text-white {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-white);\n }\n }\n}\n.room-platform-room .hover\\:underline {\n .room-platform-room &:hover {\n @media (hover: hover) {\n text-decoration-line: underline;\n }\n }\n}\n.room-platform-room .focus\\:bg-accent {\n .room-platform-room &:focus {\n background-color: var(--color-accent);\n }\n}\n.room-platform-room .focus\\:text-accent-foreground {\n .room-platform-room &:focus {\n color: var(--color-accent-foreground);\n }\n}\n.room-platform-room .not-data-\\[variant\\=destructive\\]\\:focus\\:\\*\\*\\:text-accent-foreground {\n .room-platform-room &:not(*[data-variant=\"destructive\"]) {\n .room-platform-room &:focus {\n .room-platform-room :is(& *) {\n color: var(--color-accent-foreground);\n }\n }\n }\n}\n.room-platform-room .focus-visible\\:border-destructive\\/40 {\n .room-platform-room &:focus-visible {\n border-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n}\n.room-platform-room .focus-visible\\:border-ring {\n .room-platform-room &:focus-visible {\n border-color: var(--color-ring);\n }\n}\n.room-platform-room .focus-visible\\:ring-3 {\n .room-platform-room &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n}\n.room-platform-room .focus-visible\\:ring-\\[3px\\] {\n .room-platform-room &:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n}\n.room-platform-room .focus-visible\\:ring-destructive\\/20 {\n .room-platform-room &:focus-visible {\n --tw-ring-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n}\n.room-platform-room .focus-visible\\:ring-ring\\/50 {\n .room-platform-room &:focus-visible {\n --tw-ring-color: color-mix(in srgb, #9dc2f3 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-ring) 50%, transparent);\n }\n }\n}\n.room-platform-room .focus-visible\\:outline-1 {\n .room-platform-room &:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n}\n.room-platform-room .focus-visible\\:outline-ring {\n .room-platform-room &:focus-visible {\n outline-color: var(--color-ring);\n }\n}\n.room-platform-room .active\\:not-aria-\\[haspopup\\]\\:translate-y-px {\n .room-platform-room &:active {\n .room-platform-room &:not(*[aria-haspopup]) {\n --tw-translate-y: 1px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n}\n.room-platform-room .disabled\\:pointer-events-none {\n .room-platform-room &:disabled {\n pointer-events: none;\n }\n}\n.room-platform-room .disabled\\:cursor-not-allowed {\n .room-platform-room &:disabled {\n cursor: not-allowed;\n }\n}\n.room-platform-room .disabled\\:border-white\\/35 {\n .room-platform-room &:disabled {\n border-color: color-mix(in srgb, #fff 35%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 35%, transparent);\n }\n }\n}\n.room-platform-room .disabled\\:bg-white\\/5 {\n .room-platform-room &:disabled {\n background-color: color-mix(in srgb, #fff 5%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-white) 5%, transparent);\n }\n }\n}\n.room-platform-room .disabled\\:text-white\\/65 {\n .room-platform-room &:disabled {\n color: color-mix(in srgb, #fff 65%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-white) 65%, transparent);\n }\n }\n}\n.room-platform-room .disabled\\:opacity-50 {\n .room-platform-room &:disabled {\n opacity: 50%;\n }\n}\n.room-platform-room .in-data-\\[slot\\=button-group\\]\\:rounded-lg {\n .room-platform-room :where(*[data-slot=\"button-group\"]) & {\n border-radius: var(--radius-lg);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-end\\]\\:pr-1 {\n .room-platform-room &:has(*[data-icon=\"inline-end\"]) {\n padding-right: calc(var(--spacing) * 1);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-end\\]\\:pr-1\\.5 {\n .room-platform-room &:has(*[data-icon=\"inline-end\"]) {\n padding-right: calc(var(--spacing) * 1.5);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-end\\]\\:pr-2 {\n .room-platform-room &:has(*[data-icon=\"inline-end\"]) {\n padding-right: calc(var(--spacing) * 2);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-end\\]\\:pr-3 {\n .room-platform-room &:has(*[data-icon=\"inline-end\"]) {\n padding-right: calc(var(--spacing) * 3);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-start\\]\\:pl-1 {\n .room-platform-room &:has(*[data-icon=\"inline-start\"]) {\n padding-left: calc(var(--spacing) * 1);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-start\\]\\:pl-1\\.5 {\n .room-platform-room &:has(*[data-icon=\"inline-start\"]) {\n padding-left: calc(var(--spacing) * 1.5);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-start\\]\\:pl-2 {\n .room-platform-room &:has(*[data-icon=\"inline-start\"]) {\n padding-left: calc(var(--spacing) * 2);\n }\n}\n.room-platform-room .has-data-\\[icon\\=inline-start\\]\\:pl-3 {\n .room-platform-room &:has(*[data-icon=\"inline-start\"]) {\n padding-left: calc(var(--spacing) * 3);\n }\n}\n.room-platform-room .has-data-\\[slot\\=alert-dialog-media\\]\\:grid-rows-\\[auto_auto_1fr\\] {\n .room-platform-room &:has(*[data-slot=\"alert-dialog-media\"]) {\n grid-template-rows: auto auto 1fr;\n }\n}\n.room-platform-room .has-data-\\[slot\\=alert-dialog-media\\]\\:gap-x-4 {\n .room-platform-room &:has(*[data-slot=\"alert-dialog-media\"]) {\n column-gap: calc(var(--spacing) * 4);\n }\n}\n.room-platform-room .aria-expanded\\:bg-muted {\n .room-platform-room &[aria-expanded=\"true\"] {\n background-color: var(--color-muted);\n }\n}\n.room-platform-room .aria-expanded\\:bg-secondary {\n .room-platform-room &[aria-expanded=\"true\"] {\n background-color: var(--color-secondary);\n }\n}\n.room-platform-room .aria-expanded\\:text-foreground {\n .room-platform-room &[aria-expanded=\"true\"] {\n color: var(--color-foreground);\n }\n}\n.room-platform-room .aria-expanded\\:text-secondary-foreground {\n .room-platform-room &[aria-expanded=\"true\"] {\n color: var(--color-secondary-foreground);\n }\n}\n.room-platform-room .aria-invalid\\:border-destructive {\n .room-platform-room &[aria-invalid=\"true\"] {\n border-color: var(--color-destructive);\n }\n}\n.room-platform-room .aria-invalid\\:ring-3 {\n .room-platform-room &[aria-invalid=\"true\"] {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n}\n.room-platform-room .aria-invalid\\:ring-destructive\\/20 {\n .room-platform-room &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n}\n.room-platform-room .data-active\\:bg-background {\n .room-platform-room &[data-active] {\n background-color: var(--color-background);\n }\n}\n.room-platform-room .data-active\\:text-foreground {\n .room-platform-room &[data-active] {\n color: var(--color-foreground);\n }\n}\n.room-platform-room .group-data-\\[variant\\=default\\]\\/tabs-list\\:data-active\\:shadow-sm {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"default\"] *) {\n .room-platform-room &[data-active] {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n}\n.room-platform-room .group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"line\"] *) {\n .room-platform-room &[data-active] {\n background-color: transparent;\n }\n }\n}\n.room-platform-room .group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:shadow-none {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"line\"] *) {\n .room-platform-room &[data-active] {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n}\n.room-platform-room .group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:after\\:opacity-100 {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"line\"] *) {\n .room-platform-room &[data-active] {\n .room-platform-room &::after {\n content: var(--tw-content);\n opacity: 100%;\n }\n }\n }\n}\n.room-platform-room .data-closed\\:animate-out {\n .room-platform-room &[data-closed] {\n animation: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);\n }\n}\n.room-platform-room .data-closed\\:fade-out-0 {\n .room-platform-room &[data-closed] {\n --tw-exit-opacity: calc(0/100);\n --tw-exit-opacity: 0;\n }\n}\n.room-platform-room .data-closed\\:zoom-out-95 {\n .room-platform-room &[data-closed] {\n --tw-exit-scale: calc(95*1%);\n --tw-exit-scale: .95;\n }\n}\n.room-platform-room .data-disabled\\:pointer-events-none {\n .room-platform-room &[data-disabled] {\n pointer-events: none;\n }\n}\n.room-platform-room .data-disabled\\:opacity-50 {\n .room-platform-room &[data-disabled] {\n opacity: 50%;\n }\n}\n.room-platform-room .data-horizontal\\:flex-col {\n .room-platform-room &[data-horizontal] {\n flex-direction: column;\n }\n}\n.room-platform-room .data-open\\:animate-in {\n .room-platform-room &[data-open] {\n animation: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none);\n }\n}\n.room-platform-room .data-open\\:fade-in-0 {\n .room-platform-room &[data-open] {\n --tw-enter-opacity: calc(0/100);\n --tw-enter-opacity: 0;\n }\n}\n.room-platform-room .data-open\\:zoom-in-95 {\n .room-platform-room &[data-open] {\n --tw-enter-scale: calc(95*1%);\n --tw-enter-scale: .95;\n }\n}\n.room-platform-room .data-placeholder\\:text-muted-foreground {\n .room-platform-room &[data-placeholder] {\n color: var(--color-muted-foreground);\n }\n}\n.room-platform-room .data-\\[align-trigger\\=true\\]\\:animate-none {\n .room-platform-room &[data-align-trigger=\"true\"] {\n animation: none;\n }\n}\n.room-platform-room .data-\\[lk-enabled\\=true\\]\\:border-white {\n .room-platform-room &[data-lk-enabled=\"true\"] {\n border-color: var(--color-white);\n }\n}\n.room-platform-room .data-\\[lk-enabled\\=true\\]\\:bg-white {\n .room-platform-room &[data-lk-enabled=\"true\"] {\n background-color: var(--color-white);\n }\n}\n.room-platform-room .data-\\[lk-enabled\\=true\\]\\:text-slate-950 {\n .room-platform-room &[data-lk-enabled=\"true\"] {\n color: var(--color-slate-950);\n }\n}\n.room-platform-room .data-\\[lk-enabled\\=true\\]\\:hover\\:bg-white {\n .room-platform-room &[data-lk-enabled=\"true\"] {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-white);\n }\n }\n }\n}\n.room-platform-room .data-\\[position\\=popper\\]\\:h-\\(--radix-select-trigger-height\\) {\n .room-platform-room &[data-position=\"popper\"] {\n height: var(--radix-select-trigger-height);\n }\n}\n.room-platform-room .data-\\[position\\=popper\\]\\:w-full {\n .room-platform-room &[data-position=\"popper\"] {\n width: 100%;\n }\n}\n.room-platform-room .data-\\[position\\=popper\\]\\:min-w-\\(--radix-select-trigger-width\\) {\n .room-platform-room &[data-position=\"popper\"] {\n min-width: var(--radix-select-trigger-width);\n }\n}\n.room-platform-room .data-\\[side\\=bottom\\]\\:translate-y-1 {\n .room-platform-room &[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n}\n.room-platform-room .data-\\[side\\=bottom\\]\\:slide-in-from-top-2 {\n .room-platform-room &[data-side=\"bottom\"] {\n --tw-enter-translate-y: calc(2*var(--spacing)*-1);\n }\n}\n.room-platform-room .data-\\[side\\=left\\]\\:-translate-x-1 {\n .room-platform-room &[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n}\n.room-platform-room .data-\\[side\\=left\\]\\:slide-in-from-right-2 {\n .room-platform-room &[data-side=\"left\"] {\n --tw-enter-translate-x: calc(2*var(--spacing));\n }\n}\n.room-platform-room .data-\\[side\\=right\\]\\:translate-x-1 {\n .room-platform-room &[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n}\n.room-platform-room .data-\\[side\\=right\\]\\:slide-in-from-left-2 {\n .room-platform-room &[data-side=\"right\"] {\n --tw-enter-translate-x: calc(2*var(--spacing)*-1);\n }\n}\n.room-platform-room .data-\\[side\\=top\\]\\:-translate-y-1 {\n .room-platform-room &[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n}\n.room-platform-room .data-\\[side\\=top\\]\\:slide-in-from-bottom-2 {\n .room-platform-room &[data-side=\"top\"] {\n --tw-enter-translate-y: calc(2*var(--spacing));\n }\n}\n.room-platform-room .data-\\[size\\=default\\]\\:h-8 {\n .room-platform-room &[data-size=\"default\"] {\n height: calc(var(--spacing) * 8);\n }\n}\n.room-platform-room .data-\\[size\\=default\\]\\:max-w-xs {\n .room-platform-room &[data-size=\"default\"] {\n max-width: var(--container-xs);\n }\n}\n.room-platform-room .data-\\[size\\=sm\\]\\:h-7 {\n .room-platform-room &[data-size=\"sm\"] {\n height: calc(var(--spacing) * 7);\n }\n}\n.room-platform-room .data-\\[size\\=sm\\]\\:max-w-xs {\n .room-platform-room &[data-size=\"sm\"] {\n max-width: var(--container-xs);\n }\n}\n.room-platform-room .data-\\[size\\=sm\\]\\:rounded-\\[min\\(var\\(--radius-md\\)\\,10px\\)\\] {\n .room-platform-room &[data-size=\"sm\"] {\n border-radius: min(var(--radius-md), 10px);\n }\n}\n.room-platform-room .\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1 {\n .room-platform-room :is(& > *) {\n .room-platform-room &[data-slot=\"select-value\"] {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n }\n }\n}\n.room-platform-room .\\*\\:data-\\[slot\\=select-value\\]\\:flex {\n .room-platform-room :is(& > *) {\n .room-platform-room &[data-slot=\"select-value\"] {\n display: flex;\n }\n }\n}\n.room-platform-room .\\*\\:data-\\[slot\\=select-value\\]\\:items-center {\n .room-platform-room :is(& > *) {\n .room-platform-room &[data-slot=\"select-value\"] {\n align-items: center;\n }\n }\n}\n.room-platform-room .\\*\\:data-\\[slot\\=select-value\\]\\:gap-1\\.5 {\n .room-platform-room :is(& > *) {\n .room-platform-room &[data-slot=\"select-value\"] {\n gap: calc(var(--spacing) * 1.5);\n }\n }\n}\n.room-platform-room .data-\\[variant\\=line\\]\\:rounded-none {\n .room-platform-room &[data-variant=\"line\"] {\n border-radius: 0;\n }\n}\n.room-platform-room .supports-backdrop-filter\\:backdrop-blur-xs {\n @supports (backdrop-filter: var(--tw)) {\n --tw-backdrop-blur: blur(var(--blur-xs));\n -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);\n }\n}\n.room-platform-room .sm\\:max-w-2xl {\n @media (width >= 40rem) {\n max-width: var(--container-2xl);\n }\n}\n.room-platform-room .sm\\:max-w-none {\n @media (width >= 40rem) {\n max-width: none;\n }\n}\n.room-platform-room .sm\\:max-w-sm {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n}\n.room-platform-room .sm\\:grid-cols-3 {\n @media (width >= 40rem) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n.room-platform-room .sm\\:flex-row {\n @media (width >= 40rem) {\n flex-direction: row;\n }\n}\n.room-platform-room .sm\\:justify-end {\n @media (width >= 40rem) {\n justify-content: flex-end;\n }\n}\n.room-platform-room .sm\\:p-4 {\n @media (width >= 40rem) {\n padding: calc(var(--spacing) * 4);\n }\n}\n.room-platform-room .sm\\:text-sm {\n @media (width >= 40rem) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n}\n.room-platform-room .sm\\:group-data-\\[size\\=default\\]\\/alert-dialog-content\\:row-span-2 {\n @media (width >= 40rem) {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"default\"] *) {\n grid-row: span 2 / span 2;\n }\n }\n}\n.room-platform-room .sm\\:group-data-\\[size\\=default\\]\\/alert-dialog-content\\:place-items-start {\n @media (width >= 40rem) {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"default\"] *) {\n place-items: start;\n }\n }\n}\n.room-platform-room .sm\\:group-data-\\[size\\=default\\]\\/alert-dialog-content\\:text-left {\n @media (width >= 40rem) {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"default\"] *) {\n text-align: left;\n }\n }\n}\n.room-platform-room .sm\\:group-data-\\[size\\=default\\]\\/alert-dialog-content\\:group-has-data-\\[slot\\=alert-dialog-media\\]\\/alert-dialog-content\\:col-start-2 {\n @media (width >= 40rem) {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"default\"] *) {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content):has(*[data-slot=\"alert-dialog-media\"]) *) {\n grid-column-start: 2;\n }\n }\n }\n}\n.room-platform-room .sm\\:group-data-\\[size\\=default\\]\\/alert-dialog-content\\:has-data-\\[slot\\=alert-dialog-media\\]\\:grid-rows-\\[auto_1fr\\] {\n @media (width >= 40rem) {\n .room-platform-room &:is(:where(.group\\/alert-dialog-content)[data-size=\"default\"] *) {\n .room-platform-room &:has(*[data-slot=\"alert-dialog-media\"]) {\n grid-template-rows: auto 1fr;\n }\n }\n }\n}\n.room-platform-room .data-\\[size\\=default\\]\\:sm\\:max-w-sm {\n .room-platform-room &[data-size=\"default\"] {\n @media (width >= 40rem) {\n max-width: var(--container-sm);\n }\n }\n}\n.room-platform-room .md\\:block {\n @media (width >= 48rem) {\n display: block;\n }\n}\n.room-platform-room .md\\:inline-flex {\n @media (width >= 48rem) {\n display: inline-flex;\n }\n}\n.room-platform-room .md\\:max-w-\\[300px\\] {\n @media (width >= 48rem) {\n max-width: 300px;\n }\n}\n.room-platform-room .md\\:grid-cols-1 {\n @media (width >= 48rem) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n }\n}\n.room-platform-room .md\\:grid-cols-\\[minmax\\(0\\,1fr\\)_minmax\\(12rem\\,16rem\\)\\] {\n @media (width >= 48rem) {\n grid-template-columns: minmax(0,1fr) minmax(12rem,16rem);\n }\n}\n.room-platform-room .md\\:grid-cols-\\[minmax\\(0\\,1fr\\)_minmax\\(260px\\,300px\\)\\] {\n @media (width >= 48rem) {\n grid-template-columns: minmax(0,1fr) minmax(260px,300px);\n }\n}\n.room-platform-room .md\\:grid-rows-1 {\n @media (width >= 48rem) {\n grid-template-rows: repeat(1, minmax(0, 1fr));\n }\n}\n.room-platform-room .md\\:justify-self-end {\n @media (width >= 48rem) {\n justify-self: flex-end;\n }\n}\n.room-platform-room .md\\:border-l {\n @media (width >= 48rem) {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n}\n.room-platform-room .md\\:border-white\\/10 {\n @media (width >= 48rem) {\n border-color: color-mix(in srgb, #fff 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n}\n.room-platform-room .md\\:text-pretty {\n @media (width >= 48rem) {\n text-wrap: pretty;\n }\n}\n.room-platform-room .lg\\:grid-cols-2 {\n @media (width >= 64rem) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n.room-platform-room .dark\\:border-input {\n @media (prefers-color-scheme: dark) {\n border-color: var(--color-input);\n }\n}\n.room-platform-room .dark\\:bg-destructive\\/20 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n}\n.room-platform-room .dark\\:bg-input\\/30 {\n @media (prefers-color-scheme: dark) {\n background-color: color-mix(in srgb, oklch(0.922 0 0) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 30%, transparent);\n }\n }\n}\n.room-platform-room .dark\\:text-muted-foreground {\n @media (prefers-color-scheme: dark) {\n color: var(--color-muted-foreground);\n }\n}\n.room-platform-room .dark\\:hover\\:bg-destructive\\/30 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 30%, transparent);\n }\n }\n }\n }\n}\n.room-platform-room .dark\\:hover\\:bg-input\\/50 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(0.922 0 0) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 50%, transparent);\n }\n }\n }\n }\n}\n.room-platform-room .dark\\:hover\\:bg-muted\\/50 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(0.97 0 0) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-muted) 50%, transparent);\n }\n }\n }\n }\n}\n.room-platform-room .dark\\:hover\\:text-foreground {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-foreground);\n }\n }\n }\n}\n.room-platform-room .dark\\:focus-visible\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:focus-visible {\n --tw-ring-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n }\n}\n.room-platform-room .dark\\:aria-invalid\\:border-destructive\\/50 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &[aria-invalid=\"true\"] {\n border-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-destructive) 50%, transparent);\n }\n }\n }\n}\n.room-platform-room .dark\\:aria-invalid\\:ring-destructive\\/40 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &[aria-invalid=\"true\"] {\n --tw-ring-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-destructive) 40%, transparent);\n }\n }\n }\n}\n.room-platform-room .dark\\:data-active\\:border-input {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &[data-active] {\n border-color: var(--color-input);\n }\n }\n}\n.room-platform-room .dark\\:data-active\\:bg-input\\/30 {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &[data-active] {\n background-color: color-mix(in srgb, oklch(0.922 0 0) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-input) 30%, transparent);\n }\n }\n }\n}\n.room-platform-room .dark\\:data-active\\:text-foreground {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &[data-active] {\n color: var(--color-foreground);\n }\n }\n}\n.room-platform-room .dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:border-transparent {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"line\"] *) {\n .room-platform-room &[data-active] {\n border-color: transparent;\n }\n }\n }\n}\n.room-platform-room .dark\\:group-data-\\[variant\\=line\\]\\/tabs-list\\:data-active\\:bg-transparent {\n @media (prefers-color-scheme: dark) {\n .room-platform-room &:is(:where(.group\\/tabs-list)[data-variant=\"line\"] *) {\n .room-platform-room &[data-active] {\n background-color: transparent;\n }\n }\n }\n}\n.room-platform-room .\\[\\&_svg\\]\\:pointer-events-none {\n .room-platform-room & svg {\n pointer-events: none;\n }\n}\n.room-platform-room .\\[\\&_svg\\]\\:shrink-0 {\n .room-platform-room & svg {\n flex-shrink: 0;\n }\n}\n.room-platform-room .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3 {\n .room-platform-room & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3);\n height: calc(var(--spacing) * 3);\n }\n}\n.room-platform-room .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-3\\.5 {\n .room-platform-room & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 3.5);\n height: calc(var(--spacing) * 3.5);\n }\n}\n.room-platform-room .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {\n .room-platform-room & svg:not([class*='size-']) {\n width: calc(var(--spacing) * 4);\n height: calc(var(--spacing) * 4);\n }\n}\n.room-platform-room .\\*\\:\\[a\\]\\:underline {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(a) {\n text-decoration-line: underline;\n }\n }\n}\n.room-platform-room .\\*\\:\\[a\\]\\:underline-offset-3 {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(a) {\n text-underline-offset: 3px;\n }\n }\n}\n.room-platform-room .\\[a\\]\\:hover\\:bg-destructive\\/20 {\n .room-platform-room &:is(a) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(0.577 0.245 27.325) 20%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-destructive) 20%, transparent);\n }\n }\n }\n }\n}\n.room-platform-room .\\[a\\]\\:hover\\:bg-muted {\n .room-platform-room &:is(a) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: var(--color-muted);\n }\n }\n }\n}\n.room-platform-room .\\[a\\]\\:hover\\:bg-primary\\/80 {\n .room-platform-room &:is(a) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #242f62 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-primary) 80%, transparent);\n }\n }\n }\n }\n}\n.room-platform-room .\\[a\\]\\:hover\\:bg-secondary\\/80 {\n .room-platform-room &:is(a) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, #eb6619 80%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-secondary) 80%, transparent);\n }\n }\n }\n }\n}\n.room-platform-room .\\[a\\]\\:hover\\:text-muted-foreground {\n .room-platform-room &:is(a) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-muted-foreground);\n }\n }\n }\n}\n.room-platform-room .\\*\\:\\[a\\]\\:hover\\:text-foreground {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(a) {\n .room-platform-room &:hover {\n @media (hover: hover) {\n color: var(--color-foreground);\n }\n }\n }\n }\n}\n.room-platform-room .\\*\\:\\[span\\]\\:last\\:flex {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(span) {\n .room-platform-room &:last-child {\n display: flex;\n }\n }\n }\n}\n.room-platform-room .\\*\\:\\[span\\]\\:last\\:items-center {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(span) {\n .room-platform-room &:last-child {\n align-items: center;\n }\n }\n }\n}\n.room-platform-room .\\*\\:\\[span\\]\\:last\\:gap-2 {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(span) {\n .room-platform-room &:last-child {\n gap: calc(var(--spacing) * 2);\n }\n }\n }\n}\n.room-platform-room .\\*\\:\\[svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-6 {\n .room-platform-room :is(& > *) {\n .room-platform-room &:is(svg:not([class*='size-'])) {\n width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6);\n }\n }\n}\n.room-platform-room .\\[\\&\\>svg\\]\\:pointer-events-none {\n .room-platform-room &>svg {\n pointer-events: none;\n }\n}\n.room-platform-room .\\[\\&\\>svg\\]\\:size-3\\! {\n .room-platform-room &>svg {\n width: calc(var(--spacing) * 3) !important;\n height: calc(var(--spacing) * 3) !important;\n }\n}\n.room-platform-room .navi-chat__panel {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: var(--navi-chat-radius, 10px);\n background: var(--navi-chat-color-surface, #ffffff);\n color: var(--navi-chat-color-text, #111827);\n font-family: var(--navi-chat-font-family, Inter, ui-sans-serif, system-ui, sans-serif);\n}\n.room-platform-room .navi-chat__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n flex: 0 0 auto;\n padding: 10px 12px;\n border-bottom: 1px solid var(--navi-chat-color-border, #d8e0ea);\n background: #f8fafc;\n}\n.room-platform-room .navi-chat__header-main {\n min-width: 0;\n}\n.room-platform-room .navi-chat__title {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n margin: 0;\n overflow: hidden;\n color: var(--navi-chat-color-text, #111827);\n font-size: 14px;\n font-weight: 700;\n line-height: 1.25;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.room-platform-room .navi-chat__online-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n border-radius: 999px;\n background: #eff6ff;\n color: var(--navi-chat-color-primary, #2563eb);\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n padding: 0 6px;\n}\n.room-platform-room .navi-chat__header-meta {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: 8px;\n}\n.room-platform-room .navi-chat__role-badge {\n border-radius: 999px;\n background: #eff6ff;\n color: var(--navi-chat-color-primary, #2563eb);\n font-size: 12px;\n font-weight: 600;\n line-height: 1;\n padding: 5px 8px;\n}\n.room-platform-room .navi-chat__rooms {\n display: flex;\n flex: 0 0 auto;\n gap: 6px;\n overflow-x: auto;\n padding: 10px;\n border-bottom: 1px solid var(--navi-chat-color-border, #d8e0ea);\n}\n.room-platform-room .navi-chat__room-tab, .room-platform-room .navi-chat__send-button, .room-platform-room .navi-chat__message-action, .room-platform-room .navi-chat__message-menu-trigger, .room-platform-room .navi-chat__message-menu-item, .room-platform-room .navi-chat__message-edit-button, .room-platform-room .navi-chat__message-edit-input {\n font: inherit;\n}\n.room-platform-room .navi-chat__room-tab {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n max-width: 160px;\n border: 0;\n border-radius: 8px;\n background: #f1f5f9;\n color: #475569;\n cursor: pointer;\n padding: 7px 10px;\n}\n.room-platform-room .navi-chat__room-tab--active {\n background: var(--navi-chat-color-primary, #2563eb);\n color: #ffffff;\n}\n.room-platform-room .navi-chat__room-tab-label {\n display: block;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.room-platform-room .navi-chat__unread-badge {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n border-radius: 999px;\n background: #eff6ff;\n color: var(--navi-chat-color-primary, #2563eb);\n font-size: 11px;\n font-weight: 700;\n line-height: 1;\n padding: 0 5px;\n}\n.room-platform-room .navi-chat__room-tab--active .navi-chat__unread-badge {\n background: rgba(255, 255, 255, 0.18);\n color: #ffffff;\n}\n.room-platform-room .navi-chat__messages {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n min-height: 0;\n overflow-y: auto;\n padding: 14px;\n background: #fbfdff;\n}\n.room-platform-room .navi-chat__messages-stack {\n display: flex;\n flex-direction: column;\n gap: 10px;\n margin-top: auto;\n}\n.room-platform-room .navi-chat__empty {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 0;\n padding: 24px;\n background: #fbfdff;\n color: #64748b;\n text-align: center;\n}\n.room-platform-room .navi-chat__empty strong {\n margin-top: 8px;\n color: #334155;\n font-size: 14px;\n}\n.room-platform-room .navi-chat__empty span {\n margin-top: 4px;\n font-size: 13px;\n}\n.room-platform-room .navi-chat__empty-icon {\n color: var(--navi-chat-color-primary, #2563eb);\n font-size: 22px;\n line-height: 1;\n}\n.room-platform-room .navi-chat__message {\n display: flex;\n}\n.room-platform-room .navi-chat__message-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.room-platform-room .navi-chat__loading-older {\n align-self: center;\n color: #64748b;\n font-size: 12px;\n font-weight: 600;\n padding: 4px 0;\n}\n.room-platform-room .navi-chat__message--own {\n justify-content: flex-end;\n}\n.room-platform-room .navi-chat__message-row {\n position: relative;\n display: flex;\n align-items: flex-end;\n gap: 6px;\n min-width: 0;\n max-width: min(82%, 560px);\n}\n.room-platform-room .navi-chat__message-row--own {\n flex-direction: row-reverse;\n}\n.room-platform-room .navi-chat__message-bubble {\n min-width: 0;\n max-width: 100%;\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: 10px;\n background: #ffffff;\n padding: 9px 11px;\n box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);\n}\n.room-platform-room .navi-chat__message--grouped .navi-chat__message-bubble {\n padding-top: 8px;\n}\n.room-platform-room .navi-chat__message--own .navi-chat__message-bubble {\n border-color: var(--navi-chat-own-message-border, #bfdbfe);\n background: var(--navi-chat-own-message-background, #eff6ff);\n}\n.room-platform-room .navi-chat__message--deleted .navi-chat__message-bubble {\n background: #f8fafc;\n color: #64748b;\n font-style: italic;\n}\n.room-platform-room .navi-chat__message-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n margin-bottom: 4px;\n}\n.room-platform-room .navi-chat__message-author {\n overflow: hidden;\n color: #334155;\n font-size: 12px;\n font-weight: 700;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.room-platform-room .navi-chat__message-time {\n color: #94a3b8;\n font-size: 11px;\n white-space: nowrap;\n}\n.room-platform-room .navi-chat__message-text {\n margin: 0;\n color: var(--navi-chat-color-text, #111827);\n font-size: 13px;\n line-height: 1.45;\n overflow-wrap: anywhere;\n white-space: pre-wrap;\n}\n.room-platform-room .navi-chat__message-action {\n margin-top: 8px;\n border: 0;\n background: transparent;\n color: var(--navi-chat-color-primary, #2563eb);\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n padding: 0;\n}\n.room-platform-room .navi-chat__message-menu {\n position: absolute;\n right: -30px;\n bottom: 2px;\n z-index: 3;\n display: inline-flex;\n flex: 0 0 auto;\n opacity: 0;\n pointer-events: none;\n transition: opacity 120ms ease, transform 120ms ease;\n transform: translateY(2px);\n vertical-align: middle;\n}\n.room-platform-room .navi-chat__message-row--own .navi-chat__message-menu {\n right: auto;\n left: -30px;\n}\n.room-platform-room .navi-chat__message:hover .navi-chat__message-menu, .room-platform-room .navi-chat__message:focus-within .navi-chat__message-menu, .room-platform-room .navi-chat__message-menu--open {\n opacity: 1;\n pointer-events: auto;\n transform: translateY(0);\n}\n.room-platform-room .navi-chat__message-menu-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: 999px;\n background: #ffffff;\n color: #64748b;\n cursor: pointer;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n padding: 0;\n box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);\n}\n.room-platform-room .navi-chat__message-menu-trigger:hover, .room-platform-room .navi-chat__message-menu-trigger:focus-visible {\n border-color: #bfdbfe;\n background: #eff6ff;\n color: var(--navi-chat-color-primary, #2563eb);\n}\n.room-platform-room .navi-chat__message-menu-popover {\n position: absolute;\n right: 0;\n bottom: 32px;\n z-index: 2;\n display: flex;\n min-width: 82px;\n flex-direction: column;\n overflow: hidden;\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: 8px;\n background: #ffffff;\n box-shadow: 0 8px 18px rgba(15, 23, 42, 0.14);\n}\n.room-platform-room .navi-chat__message-row--own .navi-chat__message-menu-popover {\n right: auto;\n left: 0;\n}\n.room-platform-room .navi-chat__message-menu-item {\n border: 0;\n background: transparent;\n color: var(--navi-chat-color-text, #111827);\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n line-height: 1;\n padding: 8px 10px;\n text-align: left;\n}\n.room-platform-room .navi-chat__message-menu-item:hover, .room-platform-room .navi-chat__message-menu-item:focus-visible {\n background: #f1f5f9;\n color: var(--navi-chat-color-primary, #2563eb);\n}\n.room-platform-room .navi-chat__message-edit {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n.room-platform-room .navi-chat__message-edit-input {\n box-sizing: border-box;\n width: min(280px, 100%);\n min-height: 64px;\n resize: vertical;\n border: 1px solid #cbd5e1;\n border-radius: 8px;\n background: #ffffff;\n color: var(--navi-chat-color-text, #111827);\n font-size: 13px;\n line-height: 1.4;\n padding: 8px 9px;\n}\n.room-platform-room .navi-chat__message-edit-actions {\n display: flex;\n justify-content: flex-end;\n gap: 6px;\n}\n.room-platform-room .navi-chat__message-edit-button {\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: 7px;\n background: #ffffff;\n color: #334155;\n cursor: pointer;\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n padding: 7px 9px;\n}\n.room-platform-room .navi-chat__message-edit-button--primary {\n border-color: var(--navi-chat-color-primary, #2563eb);\n background: var(--navi-chat-color-primary, #2563eb);\n color: #ffffff;\n}\n.room-platform-room .navi-chat__latest-overlay {\n position: sticky;\n bottom: 8px;\n align-self: stretch;\n box-sizing: border-box;\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n gap: 8px;\n margin-top: 8px;\n pointer-events: none;\n}\n.room-platform-room .navi-chat__new-message-notice {\n grid-column: 2;\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: 999px;\n background: #ffffff;\n color: var(--navi-chat-color-primary, #2563eb);\n font-size: 12px;\n font-weight: 700;\n line-height: 1;\n padding: 8px 12px;\n box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14);\n}\n.room-platform-room .navi-chat__scroll-latest {\n grid-column: 3;\n justify-self: end;\n box-sizing: border-box;\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n margin-right: 4px;\n border: 1px solid var(--navi-chat-color-border, #d8e0ea);\n border-radius: 50%;\n background: #ffffff;\n color: var(--navi-chat-color-primary, #2563eb);\n cursor: pointer;\n padding: 0;\n pointer-events: auto;\n box-shadow: 0 6px 16px rgba(15, 23, 42, 0.16);\n}\n.room-platform-room .navi-chat__scroll-latest-icon {\n width: 18px;\n height: 18px;\n fill: currentColor;\n}\n.room-platform-room .navi-chat__composer {\n display: flex;\n flex: 0 0 auto;\n align-items: flex-end;\n gap: 8px;\n padding: 10px;\n border-top: 1px solid var(--navi-chat-color-border, #d8e0ea);\n background: #ffffff;\n}\n.room-platform-room .navi-chat__composer-main {\n display: flex;\n flex: 1 1 auto;\n min-width: 0;\n flex-direction: column;\n gap: 4px;\n}\n.room-platform-room .navi-chat__composer-input {\n flex: 1 1 auto;\n min-width: 0;\n min-height: 38px;\n max-height: 84px;\n resize: vertical;\n border: 1px solid #cbd5e1;\n border-radius: 8px;\n color: var(--navi-chat-color-text, #111827);\n font: inherit;\n font-size: 13px;\n line-height: 1.4;\n padding: 9px 10px;\n}\n.room-platform-room .navi-chat__composer-tip {\n margin: 0;\n color: #64748b;\n font-size: 11px;\n line-height: 1.3;\n}\n.room-platform-room .navi-chat__send-button {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n align-self: center;\n width: 44px;\n height: 44px;\n border: 0;\n border-radius: 999px;\n background: var(--navi-chat-color-primary, #2563eb);\n color: #ffffff;\n cursor: pointer;\n padding: 0;\n}\n.room-platform-room .navi-chat__send-button:disabled {\n cursor: not-allowed;\n opacity: 0.45;\n}\n.room-platform-room .navi-chat__send-icon {\n width: 18px;\n height: 18px;\n fill: currentColor;\n}\n.room-platform-room .navi-chat__readonly {\n flex: 0 0 auto;\n border-top: 1px solid var(--navi-chat-color-border, #d8e0ea);\n background: #f8fafc;\n color: #64748b;\n font-size: 13px;\n padding: 12px 14px;\n}\n.room-platform-room .navi-chat__status {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n}\n.room-platform-room .navi-chat__status-dot {\n width: 9px;\n height: 9px;\n border-radius: 999px;\n background: #94a3b8;\n}\n.room-platform-room .navi-chat__status--connected .navi-chat__status-dot {\n background: #16a34a;\n}\n.room-platform-room .navi-chat__status--muted .navi-chat__status-dot {\n background: #94a3b8;\n}\n.room-platform-room .navi-chat__status--error .navi-chat__status-dot {\n background: #dc2626;\n}\n.room-platform-room .whiteboard-react-canvas {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.room-platform-room .whiteboard-react-canvas__scene {\n position: relative;\n height: 100%;\n min-height: 100%;\n}\n.room-platform-room .whiteboard-react-canvas__layer {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n}\n.room-platform-room .whiteboard-react-canvas__layer--scene {\n z-index: 10;\n pointer-events: none;\n}\n.room-platform-room .whiteboard-react-canvas__layer--interaction {\n z-index: 11;\n touch-action: none;\n user-select: none;\n -webkit-user-select: none;\n}\n.room-platform-room .whiteboard-react-trigger, .room-platform-room .whiteboard-react-toolbar, .room-platform-room .whiteboard-react-toolbar__popover {\n --whiteboard-overlay-bg: rgb(255 255 255 / 0.94);\n --whiteboard-overlay-border: rgb(148 163 184 / 0.32);\n --whiteboard-overlay-shadow: 0 18px 40px rgb(15 23 42 / 0.24);\n --whiteboard-overlay-text: #0f172a;\n --whiteboard-overlay-muted: #475569;\n --whiteboard-overlay-accent: #0f766e;\n --whiteboard-overlay-accent-soft: rgb(15 118 110 / 0.12);\n --whiteboard-overlay-danger: #dc2626;\n position: fixed;\n border: 1px solid var(--whiteboard-overlay-border);\n border-radius: 1.125rem;\n background: var(--whiteboard-overlay-bg);\n color: var(--whiteboard-overlay-text);\n box-shadow: var(--whiteboard-overlay-shadow);\n backdrop-filter: blur(16px);\n}\n.room-platform-room .whiteboard-react-trigger {\n z-index: 60;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n padding: 0;\n border: 0;\n border-radius: 999px;\n background: #252627;\n color: #00ff9d;\n cursor: pointer;\n transition: background 140ms ease, color 140ms ease;\n}\n.room-platform-room .whiteboard-react-trigger:hover {\n background: #00ff9d;\n color: #000;\n}\n.room-platform-room .whiteboard-react-toolbar__tooltip-trigger {\n display: inline-flex;\n}\n.room-platform-room .whiteboard-react-trigger:focus-visible, .room-platform-room .whiteboard-react-toolbar__button:focus-visible, .room-platform-room .whiteboard-react-toolbar__drag-handle:focus-visible, .room-platform-room .whiteboard-react-toolbar__option-chip:focus-visible, .room-platform-room .whiteboard-react-toolbar__width-chip:focus-visible, .room-platform-room .whiteboard-react-color-popover__swatch:focus-visible, .room-platform-room .whiteboard-react-toolbar__status-action:focus-visible {\n outline: 2px solid rgb(15 118 110 / 0.45);\n outline-offset: 2px;\n}\n.room-platform-room .whiteboard-react-trigger__icon {\n width: 1.5rem;\n height: 1.5rem;\n flex: none;\n}\n.room-platform-room .whiteboard-react-toolbar__icon {\n width: 1.35rem;\n height: 1.35rem;\n flex: none;\n}\n.room-platform-room .whiteboard-react-toolbar__icon.ColorSvg {\n width: 2rem;\n}\n.room-platform-room .whiteboard-react-trigger__label {\n white-space: nowrap;\n}\n.room-platform-room .whiteboard-react-trigger__status-dot, .room-platform-room .whiteboard-react-toolbar__status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: 999px;\n background: var(--whiteboard-overlay-accent);\n box-shadow: 0 0 0 4px rgb(15 118 110 / 0.14);\n flex: none;\n}\n.room-platform-room .whiteboard-react-trigger[data-runtime-state='failed'] .whiteboard-react-trigger__status-dot {\n background: var(--whiteboard-overlay-danger);\n box-shadow: 0 0 0 4px rgb(220 38 38 / 0.12);\n}\n.room-platform-room .whiteboard-react-toolbar {\n z-index: 61;\n border: 0.15rem solid rgb(226 232 240 / 0.72);\n border-radius: 0.5rem;\n background: #292a2c;\n color: #f8fafc;\n box-shadow: 0 12px 28px rgb(15 23 42 / 0.3);\n transition: transform 140ms ease, box-shadow 140ms ease;\n transform-origin: center;\n animation: whiteboard-toolbar-orientation-vertical 180ms ease-in-out;\n}\n@keyframes whiteboard-toolbar-orientation-vertical {\n from {\n transform: scaleX(1.2);\n }\n to {\n transform: scale(1);\n }\n}\n@keyframes whiteboard-toolbar-orientation-horizontal {\n from {\n transform: scaleX(1.2);\n }\n to {\n transform: scale(1);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .room-platform-room .whiteboard-react-toolbar {\n animation: none;\n transition: none;\n }\n}\n.room-platform-room .whiteboard-react-toolbar__chrome {\n display: flex;\n flex-direction: column;\n gap: 0.3rem;\n padding: 0.4rem;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] .whiteboard-react-toolbar__chrome {\n flex-direction: row;\n align-items: center;\n box-sizing: border-box;\n padding: 0.4rem;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] {\n animation-name: whiteboard-toolbar-orientation-horizontal;\n}\n.room-platform-room .whiteboard-react-toolbar__drag-handle {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-top: 0.75rem;\n width: 2rem;\n height: 2rem;\n border-radius: 0.65rem;\n background: transparent;\n color: rgb(226 232 240 / 0.84);\n cursor: grab;\n transition: color 120ms ease, border-color 120ms ease;\n}\n.room-platform-room .whiteboard-react-toolbar__drag-handle::before {\n position: absolute;\n top: -0.5rem;\n right: 0;\n left: 0;\n height: 1px;\n content: '';\n background: rgb(226 232 240 / 0.45);\n}\n.room-platform-room .whiteboard-react-toolbar__drag-handle:hover {\n color: #fff;\n background: rgb(255 255 255 / 0.1);\n}\n.room-platform-room .whiteboard-react-toolbar__drag-handle:active {\n cursor: grabbing;\n}\n.room-platform-room .whiteboard-react-toolbar__status {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n max-width: 16rem;\n padding: 0.625rem 0.75rem;\n border-radius: 0.875rem;\n background: rgb(248 250 252 / 0.96);\n color: var(--whiteboard-overlay-muted);\n font-size: 0.8125rem;\n font-weight: 500;\n}\n.room-platform-room .whiteboard-react-toolbar__status[data-state='failed'] {\n color: var(--whiteboard-overlay-danger);\n background: rgb(254 242 242 / 0.96);\n}\n.room-platform-room .whiteboard-react-toolbar__status[data-state='busy'] {\n color: var(--whiteboard-overlay-accent);\n background: rgb(240 253 250 / 0.96);\n}\n.room-platform-room .whiteboard-react-toolbar__status-action {\n margin-left: 0.25rem;\n border: 0;\n background: transparent;\n color: inherit;\n font-weight: 700;\n text-decoration: underline;\n}\n.room-platform-room .whiteboard-react-toolbar__rail {\n display: flex;\n gap: 0.5rem;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='vertical'] .whiteboard-react-toolbar__rail {\n flex-direction: column;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] .whiteboard-react-toolbar__rail {\n flex-direction: row;\n align-items: center;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] .whiteboard-react-toolbar__drag-handle::before {\n top: 0;\n right: auto;\n bottom: 0;\n left: -0.15rem;\n width: 1px;\n height: auto;\n}\n.room-platform-room .whiteboard-react-toolbar__button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n border: 0;\n border-radius: 0.65rem;\n margin-top: 0.75rem;\n background: transparent;\n color: #f8fafc;\n transition: transform 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] .whiteboard-react-toolbar__button, .room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] .whiteboard-react-toolbar__drag-handle {\n margin-top: 0;\n margin-bottom: 0;\n margin-left: 0.75rem;\n}\n.room-platform-room .whiteboard-react-toolbar__button:hover:not(:disabled) {\n cursor: pointer;\n background: rgb(255 255 255 / 0.1);\n}\n.room-platform-room .whiteboard-react-toolbar__button[data-active='true'] {\n background: #0878f7;\n color: #fff;\n}\n.room-platform-room .whiteboard-react-toolbar__button[data-active='true']:hover:not(:disabled) {\n background: #0878f7;\n}\n.room-platform-room .whiteboard-react-toolbar__button[aria-label='Color'] .whiteboard-react-toolbar__icon {\n display: none;\n}\n.room-platform-room .whiteboard-react-toolbar__button[aria-label='Color'] .whiteboard-react-toolbar__button-swatch {\n position: static;\n width: 1.5rem;\n height: 1.5rem;\n border: 0;\n}\n.room-platform-room .whiteboard-react-toolbar__button[aria-label='Close whiteboard tools'] {\n margin-bottom: 0.75rem;\n background: #ef1111;\n color: #fff;\n}\n.room-platform-room .whiteboard-react-toolbar__button[aria-label='Close whiteboard tools']:hover:not(:disabled) {\n background: #dc0d0d;\n}\n.room-platform-room .whiteboard-react-toolbar[data-orientation='horizontal'] span:last-child .whiteboard-react-toolbar__button {\n margin-bottom: 0;\n margin-right: 0.75rem;\n}\n.room-platform-room .whiteboard-react-toolbar__button:disabled, .room-platform-room .whiteboard-react-toolbar__option-chip:disabled, .room-platform-room .whiteboard-react-toolbar__width-chip:disabled, .room-platform-room .whiteboard-react-color-popover__swatch:disabled {\n cursor: not-allowed;\n opacity: 0.46;\n}\n.room-platform-room .whiteboard-react-toolbar__button-swatch {\n position: absolute;\n right: 0.34rem;\n bottom: 0.34rem;\n width: 0.6rem;\n height: 0.6rem;\n border: 1px solid rgb(255 255 255 / 0.8);\n border-radius: 999px;\n background: var(--whiteboard-color);\n box-shadow: 0 0 0 1px rgb(15 23 42 / 0.12);\n}\n.room-platform-room .whiteboard-react-toolbar__popover {\n z-index: 62;\n padding: 0.65rem;\n border: 0.15rem solid rgb(226 232 240 / 0.72);\n border-radius: 0.5rem;\n background: #292a2c;\n color: #f8fafc;\n box-shadow: 0 12px 28px rgb(15 23 42 / 0.3);\n}\n.room-platform-room .whiteboard-react-draw-popover {\n max-width: 15.5rem;\n}\n.room-platform-room .whiteboard-react-color-popover {\n width: 12.5rem;\n}\n.room-platform-room .whiteboard-react-toolbar__popover-section {\n display: flex;\n flex-direction: column;\n gap: 0.35rem;\n}\n.room-platform-room .whiteboard-react-toolbar__popover-section + .whiteboard-react-toolbar__popover-section {\n margin-top: 0.55rem;\n}\n.room-platform-room .whiteboard-react-toolbar__popover-label {\n margin: 0;\n font-size: 0.75rem;\n font-weight: 700;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: rgb(226 232 240 / 0.82);\n}\n.room-platform-room .whiteboard-react-toolbar__option-grid, .room-platform-room .whiteboard-react-toolbar__width-grid {\n display: grid;\n gap: 0.35rem;\n}\n.room-platform-room .whiteboard-react-toolbar__option-grid {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.room-platform-room .whiteboard-react-toolbar__option-grid--shapes {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.room-platform-room .whiteboard-react-toolbar__option-chip, .room-platform-room .whiteboard-react-toolbar__width-chip {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2.25rem;\n height: 2.25rem;\n border: 1px solid transparent;\n border-radius: 0.65rem;\n background: transparent;\n color: #f8fafc;\n font-size: 0.75rem;\n font-weight: 600;\n line-height: 1;\n padding: 0;\n cursor: pointer;\n}\n.room-platform-room .whiteboard-react-toolbar__option-chip[data-active='true'], .room-platform-room .whiteboard-react-toolbar__width-chip[data-active='true'] {\n border-color: transparent;\n background: #0878f7;\n color: #fff;\n}\n.room-platform-room .whiteboard-react-toolbar__option-chip:hover:not(:disabled):not([data-active='true']), .room-platform-room .whiteboard-react-toolbar__width-chip:hover:not(:disabled):not([data-active='true']) {\n color: #fff;\n}\n.room-platform-room .whiteboard-react-toolbar__width-grid {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.room-platform-room .whiteboard-react-toolbar__option-icon {\n flex: none;\n}\n.room-platform-room .whiteboard-react-toolbar__width-sample {\n display: inline-flex;\n width: 1.35rem;\n height: 1.35rem;\n border-radius: 999px;\n background: currentColor;\n flex: none;\n}\n.room-platform-room .whiteboard-react-toolbar__width-sample[data-width='xs'] {\n width: 0.3rem;\n height: 0.3rem;\n}\n.room-platform-room .whiteboard-react-toolbar__width-sample[data-width='sm'] {\n width: 0.45rem;\n height: 0.45rem;\n}\n.room-platform-room .whiteboard-react-toolbar__width-sample[data-width='md'] {\n width: 0.65rem;\n height: 0.65rem;\n}\n.room-platform-room .whiteboard-react-toolbar__width-sample[data-width='lg'] {\n width: 0.9rem;\n height: 0.9rem;\n}\n.room-platform-room .whiteboard-react-color-popover__grid {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 0.5rem;\n}\n.room-platform-room .whiteboard-react-color-popover__swatch {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.75rem;\n height: 1.75rem;\n padding: 0;\n border: 1px solid rgb(148 163 184 / 0.28);\n border-radius: 999px;\n background: rgb(255 255 255 / 0.9);\n cursor: pointer;\n}\n.room-platform-room .whiteboard-react-color-popover__swatch-fill {\n width: 1.35rem;\n height: 1.35rem;\n border-radius: 999px;\n background: var(--whiteboard-color);\n box-shadow: inset 0 0 0 1px rgb(15 23 42 / 0.08);\n}\n.room-platform-room .whiteboard-react-color-popover__swatch[data-active='true'] {\n border-color: rgb(15 118 110 / 0.45);\n box-shadow: 0 0 0 4px rgb(15 118 110 / 0.12);\n}\n.room-platform-room .whiteboard-react-color-popover__swatch[data-light='true'] .whiteboard-react-color-popover__swatch-fill {\n box-shadow: inset 0 0 0 1px rgb(15 23 42 / 0.12), 0 0 0 1px rgb(226 232 240 / 0.8);\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ease {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@keyframes enter {\n from {\n opacity: var(--tw-enter-opacity,1);\n transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));\n filter: blur(var(--tw-enter-blur,0));\n }\n}\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity,1);\n transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));\n filter: blur(var(--tw-exit-blur,0));\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n .room-platform-room *, .room-platform-room ::before, .room-platform-room ::after, .room-platform-room ::backdrop {\n --tw-animation-delay: 0s;\n --tw-animation-direction: normal;\n --tw-animation-duration: initial;\n --tw-animation-fill-mode: none;\n --tw-animation-iteration-count: 1;\n --tw-enter-blur: 0;\n --tw-enter-opacity: 1;\n --tw-enter-rotate: 0;\n --tw-enter-scale: 1;\n --tw-enter-translate-x: 0;\n --tw-enter-translate-y: 0;\n --tw-exit-blur: 0;\n --tw-exit-opacity: 1;\n --tw-exit-rotate: 0;\n --tw-exit-scale: 1;\n --tw-exit-translate-x: 0;\n --tw-exit-translate-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-content: \"\";\n }\n }\n}\n/* @naviedu/room-platform-react bundled tailwind utilities */\n.room-platform-host {\n box-sizing: border-box;\n display: block;\n height: 100%;\n min-height: 0;\n min-width: 0;\n}\n\n:host(.room-platform-host) {\n box-sizing: border-box;\n display: block;\n height: 100%;\n min-height: 0;\n min-width: 0;\n}\n\n[data-room-platform-app-root] {\n box-sizing: border-box;\n display: block;\n height: 100%;\n min-height: 0;\n min-width: 0;\n}\n\n.room-platform-room {\n --room-platform-navy: #242f62;\n --room-platform-orange: #eb6619;\n --room-platform-border: #dbe3ef;\n --room-platform-surface: #ffffff;\n --room-platform-muted: #f8fafc;\n background: var(--room-platform-muted);\n color: #172033;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n width: 100%;\n}\n\n.room-platform-room[data-sizing='viewport'] {\n height: 100dvh;\n min-height: 100dvh;\n}\n\n.room-platform-room[data-sizing='container'] {\n height: 100%;\n min-height: 0;\n width: 100%;\n}\n\n.room-platform-room.room-platform-portal-root {\n background: transparent;\n display: block;\n height: auto;\n min-height: 0;\n overflow: visible;\n width: auto;\n}\n\n.room-platform-surface {\n box-sizing: border-box;\n}\n\n.room-platform-panel {\n background: var(--room-platform-surface);\n border: 1px solid var(--room-platform-border);\n border-radius: 8px;\n}\n\n.room-platform-button {\n align-items: center;\n border: 1px solid transparent;\n border-radius: 8px;\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n gap: 0.375rem;\n justify-content: center;\n min-height: 2rem;\n padding: 0.375rem 0.75rem;\n}\n\n.room-platform-button:focus-visible,\n.room-platform-tab:focus-visible {\n outline: 3px solid color-mix(in srgb, var(--room-platform-orange), transparent 65%);\n outline-offset: 2px;\n}\n\n.room-platform-button:disabled {\n cursor: not-allowed;\n opacity: 0.55;\n}\n\n.room-platform-button--default {\n background: var(--room-platform-navy);\n color: #fff;\n}\n\n.room-platform-button--quiet {\n background: #edf2f7;\n color: var(--room-platform-navy);\n}\n\n.room-platform-button--danger {\n background: #fff1f2;\n color: #b42318;\n}\n\n.room-platform-shell {\n background: #020617;\n color: #fff;\n display: flex;\n flex: 1;\n flex-direction: column;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n.room-platform-shell-top-bar--hidden {\n display: none;\n}\n\n.room-platform-shell-body {\n display: grid;\n flex: 1;\n grid-template-columns: minmax(0, 1fr);\n min-height: 0;\n position: relative;\n}\n\n.room-platform-shell-body--sidebar {\n grid-template-columns: minmax(0, 1fr) minmax(16.25rem, 18.75rem);\n}\n\n.room-platform-shell-main {\n display: flex;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n}\n\n.room-platform-shell-sidebar {\n display: flex;\n min-height: 0;\n position: relative;\n width: 100%;\n}\n\n.room-platform-shell-sidebar-content {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.room-platform-shell-sidebar-open,\n.room-platform-shell-sidebar-close {\n position: absolute;\n z-index: 40;\n}\n\n.room-platform-shell-sidebar-open {\n right: 1rem;\n top: 1rem;\n}\n\n.room-platform-shell-sidebar-close {\n left: 0;\n top: 0.75rem;\n transform: translateX(-100%);\n}\n\n.room-platform-top-bar {\n align-items: center;\n background: #0f172a;\n border-bottom: 1px solid rgb(255 255 255 / 10%);\n color: #fff;\n display: flex;\n flex-wrap: wrap;\n gap: 0.75rem;\n justify-content: space-between;\n min-height: 4.5rem;\n padding: 0.75rem 1rem;\n}\n\n.room-platform-top-bar h1,\n.room-platform-top-bar p {\n margin: 0;\n}\n\n.room-platform-top-bar h1 {\n color: #fff;\n font-size: 1.125rem;\n}\n\n.room-platform-eyebrow {\n color: #cbd5e1;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.room-platform-top-bar-heading,\n.room-platform-top-bar-trailing {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.room-platform-top-bar-trailing {\n justify-content: flex-end;\n}\n\n.room-platform-media-controls {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem;\n}\n\n.room-platform-media-controls .room-platform-button {\n font-size: 0.8125rem;\n}\n\n.room-platform-status {\n border-radius: 999px;\n font-size: 0.8rem;\n font-weight: 600;\n padding: 0.25rem 0.625rem;\n}\n\n.room-platform-status[data-status='connected'] {\n background: #dcfae6;\n color: #166534;\n}\n\n.room-platform-status[data-status='error'] {\n background: #fee2e2;\n color: #b42318;\n}\n\n.room-platform-status[data-status='connecting'],\n.room-platform-status[data-status='reconnecting'] {\n background: #fff3d6;\n color: #9a4f00;\n}\n\n.room-platform-main {\n display: flex;\n flex: 1;\n gap: 1rem;\n min-height: 0;\n min-width: 0;\n padding: 1rem;\n position: relative;\n}\n\n.room-platform-stage-area {\n flex: 1;\n min-height: 26rem;\n min-width: 0;\n position: relative;\n}\n\n.room-platform-stage {\n align-items: center;\n background: linear-gradient(135deg, #1e2a5b, #3c4b89);\n color: #fff;\n display: flex;\n height: 100%;\n justify-content: center;\n overflow: hidden;\n padding: 1rem;\n position: relative;\n}\n\n.room-platform-stage-title {\n font-size: 1.125rem;\n font-weight: 700;\n}\n\n.room-platform-workspace-overlay {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n overflow: auto;\n width: 100%;\n}\n\n.room-platform-workspace-alongside {\n min-width: 18rem;\n width: 35%;\n}\n\n.room-platform-sidebar {\n background: var(--room-platform-surface);\n border: 1px solid var(--room-platform-border);\n border-radius: 8px;\n min-width: 0;\n overflow: hidden;\n width: 100%;\n}\n\n.room-platform-control-anchor {\n align-items: stretch;\n display: flex;\n flex: 1;\n justify-content: center;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n}\n\n.room-platform-control-bar {\n bottom: 0;\n display: flex;\n justify-content: center;\n left: 0;\n margin: auto;\n padding: 0 0.75rem 0.75rem;\n position: absolute;\n right: 0;\n transition: transform 200ms ease;\n width: fit-content;\n z-index: 40;\n}\n\n.room-platform-control-bar--hidden {\n transform: translateY(calc(100% - 0.75rem));\n}\n\n.room-platform-control-reveal {\n bottom: 0.25rem;\n left: 50%;\n position: absolute;\n transform: translateX(-50%);\n z-index: 30;\n}\n\n.room-platform-side-media {\n display: grid;\n gap: 0.75rem;\n padding: 0.75rem;\n}\n\n.room-platform-video-tile {\n background: #0f172a;\n border-radius: 8px;\n color: #fff;\n min-height: 0;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.room-platform-video-tile--preview,\n.room-platform-video-tile--active-speaker {\n aspect-ratio: 16 / 9;\n}\n\n.room-platform-video-tile--stage,\n.room-platform-video-tile--overlay {\n height: 100%;\n}\n\n.room-platform-video-tile-media {\n display: block;\n height: 100%;\n object-fit: cover;\n width: 100%;\n}\n\n.room-platform-video-tile--stage .room-platform-video-tile-media {\n object-fit: contain;\n}\n\n.room-platform-video-tile-media--mirrored {\n transform: scaleX(-1);\n}\n\n.room-platform-video-tile-label {\n background: rgb(15 23 42 / 75%);\n border-radius: 999px;\n bottom: 0.5rem;\n font-size: 0.75rem;\n font-weight: 700;\n left: 0.5rem;\n max-width: calc(100% - 1rem);\n overflow: hidden;\n padding: 0.25rem 0.5rem;\n position: absolute;\n text-overflow: ellipsis;\n white-space: nowrap;\n z-index: 15;\n}\n\n.room-platform-video-tile-empty {\n align-items: center;\n display: flex;\n font-size: 0.8125rem;\n height: 100%;\n justify-content: center;\n margin: 0;\n min-height: 8rem;\n padding: 1rem;\n text-align: center;\n}\n\n.room-platform-tabs {\n border-bottom: 1px solid var(--room-platform-border);\n display: flex;\n gap: 0.25rem;\n overflow-x: auto;\n padding: 0.5rem;\n}\n\n.room-platform-tab {\n background: transparent;\n border: 0;\n border-radius: 6px;\n color: #475569;\n cursor: pointer;\n font: inherit;\n font-size: 0.875rem;\n padding: 0.4rem 0.6rem;\n white-space: nowrap;\n}\n\n.room-platform-tab[aria-selected='true'] {\n background: #e9edf9;\n color: var(--room-platform-navy);\n font-weight: 700;\n}\n\n.room-platform-tab-panel {\n padding: 0.75rem;\n}\n\n.room-platform-participant-list {\n display: grid;\n gap: 0.5rem;\n}\n\n.room-platform-participant-row {\n align-items: center;\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n padding: 0.625rem;\n}\n\n.room-platform-participant-name,\n.room-platform-participant-subtitle {\n margin: 0;\n}\n\n.room-platform-participant-name {\n font-size: 0.875rem;\n font-weight: 700;\n}\n\n.room-platform-participant-subtitle {\n color: #64748b;\n font-size: 0.75rem;\n}\n\n.room-platform-participant-presence {\n color: #64748b;\n font-size: 0.75rem;\n font-weight: 500;\n margin: 0.25rem 0 0;\n}\n\n.room-platform-participant-presence[data-online='true'] {\n color: #16a34a;\n}\n\n.room-platform-participant-row-trailing,\n.room-platform-participant-actions {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: 0.375rem;\n justify-content: flex-end;\n}\n\n.room-platform-participant-actions .room-platform-button {\n font-size: 0.75rem;\n min-height: 1.75rem;\n padding: 0.25rem 0.5rem;\n}\n\n.room-platform-action-error {\n color: #b42318;\n font-size: 0.8125rem;\n margin: 0.5rem 0 0;\n}\n\n.room-platform-error {\n color: #fca5a5;\n font-size: 0.8125rem;\n margin: 0.5rem 0 0;\n}\n\n.room-platform-empty {\n color: #64748b;\n font-size: 0.875rem;\n margin: 0;\n padding: 1rem 0;\n text-align: center;\n}\n\n.room-platform-whiteboard {\n height: 100%;\n width: 100%;\n}\n\n.room-platform-surface-error {\n align-items: center;\n background: rgb(15 23 42 / 88%);\n color: #fff;\n display: flex;\n height: 100%;\n justify-content: center;\n margin: 0;\n padding: 1rem;\n text-align: center;\n width: 100%;\n}\n\n.room-platform-start-audio {\n background: #242f62;\n border: 0;\n border-radius: 8px;\n color: #fff;\n cursor: pointer;\n left: 50%;\n padding: 0.625rem 1rem;\n position: fixed;\n top: 1rem;\n transform: translateX(-50%);\n z-index: 50;\n}\n\n.room-platform-start-audio:focus-visible {\n outline: 3px solid #eb6619;\n outline-offset: 2px;\n}\n\n.room-platform-stage-frame {\n align-items: center;\n background: #0f172a;\n border-radius: 8px;\n display: flex;\n justify-content: center;\n max-height: 100%;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.room-platform-stage-frame > video {\n display: block;\n height: 100%;\n object-fit: contain;\n width: 100%;\n}\n\n.room-platform-stage-content {\n inset: 0;\n position: absolute;\n z-index: 10;\n}\n\n.room-platform-stage-camera-overlay {\n aspect-ratio: 16 / 9;\n left: 1rem;\n max-width: 40%;\n overflow: hidden;\n position: absolute;\n top: 1rem;\n width: 12rem;\n z-index: 20;\n}\n\n.room-platform-stage-camera-overlay video {\n height: 100%;\n object-fit: cover;\n width: 100%;\n}\n\n.room-platform-stage-status {\n background: rgb(15 23 42 / 80%);\n border-radius: 999px;\n color: #dbeafe;\n left: 50%;\n margin: 0;\n padding: 0.375rem 0.75rem;\n position: absolute;\n top: 1.5rem;\n transform: translateX(-50%);\n z-index: 30;\n}\n\n@keyframes private-live-room-bell-ring {\n 0%,\n 52%,\n 100% {\n transform: rotate(0deg);\n }\n 6% {\n transform: rotate(14deg);\n }\n 12% {\n transform: rotate(-14deg);\n }\n 18% {\n transform: rotate(12deg);\n }\n 24% {\n transform: rotate(-10deg);\n }\n 30% {\n transform: rotate(8deg);\n }\n 38% {\n transform: rotate(-5deg);\n }\n 46% {\n transform: rotate(3deg);\n }\n}\n\n.private-live-room-ringing-bell {\n display: inline-flex;\n animation: private-live-room-bell-ring 2.2s ease-in-out infinite;\n transform-box: fill-box;\n transform-origin: 50% 0%;\n will-change: transform;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .private-live-room-ringing-bell {\n animation: none;\n }\n}\n\n@media (max-width: 900px) {\n .room-platform-stage-area {\n min-height: 20rem;\n }\n}\n\n@media (max-width: 767px) {\n .room-platform-shell-body {\n grid-template-columns: 1fr;\n grid-template-rows: minmax(15rem, 45dvh) minmax(0, 1fr);\n }\n\n .room-platform-shell-body > .room-platform-shell-main:only-child {\n grid-row: 1 / -1;\n }\n\n .room-platform-shell-sidebar {\n max-width: none;\n }\n\n .room-platform-top-bar {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.75rem;\n }\n\n .room-platform-top-bar-heading,\n .room-platform-top-bar-trailing {\n justify-content: flex-start;\n width: 100%;\n }\n\n .room-platform-main {\n flex-direction: column;\n padding: 0.5rem;\n }\n\n .room-platform-workspace-alongside {\n min-width: 0;\n width: 100%;\n }\n}\n";
26433
+
26434
+ function _array_like_to_array$4(arr, len) {
26435
+ if (len == null || len > arr.length) len = arr.length;
26436
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
26437
+ return arr2;
26438
+ }
26439
+ function _array_with_holes$4(arr) {
26440
+ if (Array.isArray(arr)) return arr;
26441
+ }
26442
+ function _iterable_to_array_limit$4(arr, i) {
26443
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
26444
+ if (_i == null) return;
26445
+ var _arr = [];
26446
+ var _n = true;
26447
+ var _d = false;
26448
+ var _s, _e;
26449
+ try {
26450
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
26451
+ _arr.push(_s.value);
26452
+ if (i && _arr.length === i) break;
26453
+ }
26454
+ } catch (err) {
26455
+ _d = true;
26456
+ _e = err;
26457
+ } finally{
26458
+ try {
26459
+ if (!_n && _i["return"] != null) _i["return"]();
26460
+ } finally{
26461
+ if (_d) throw _e;
26462
+ }
26463
+ }
26464
+ return _arr;
26465
+ }
26466
+ function _non_iterable_rest$4() {
26467
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
26468
+ }
26469
+ function _sliced_to_array$4(arr, i) {
26470
+ return _array_with_holes$4(arr) || _iterable_to_array_limit$4(arr, i) || _unsupported_iterable_to_array$4(arr, i) || _non_iterable_rest$4();
26471
+ }
26472
+ function _unsupported_iterable_to_array$4(o, minLen) {
26473
+ if (!o) return;
26474
+ if (typeof o === "string") return _array_like_to_array$4(o, minLen);
26475
+ var n = Object.prototype.toString.call(o).slice(8, -1);
26476
+ if (n === "Object" && o.constructor) n = o.constructor.name;
26477
+ if (n === "Map" || n === "Set") return Array.from(n);
26478
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$4(o, minLen);
26479
+ }
26480
+ function RoomPlatformShadowHost(param) {
26481
+ var children = param.children;
26482
+ var hostRef = useRef(null);
26483
+ var _useState = _sliced_to_array$4(useState(null), 2), surface = _useState[0], setSurface = _useState[1];
26484
+ useLayoutEffect(function() {
26485
+ var _host_shadowRoot;
26486
+ var host = hostRef.current;
26487
+ if (!host) return;
26488
+ var shadowRoot = (_host_shadowRoot = host.shadowRoot) !== null && _host_shadowRoot !== void 0 ? _host_shadowRoot : host.attachShadow({
26489
+ mode: 'open'
26490
+ });
26491
+ var style = host.ownerDocument.createElement('style');
26492
+ var appRoot = host.ownerDocument.createElement('div');
26493
+ var portalRoot = host.ownerDocument.createElement('div');
26494
+ style.setAttribute('data-room-platform-style', '');
26495
+ style.textContent = roomPlatformGeneratedStyles;
26496
+ appRoot.setAttribute('data-room-platform-app-root', '');
26497
+ portalRoot.className = 'room-platform-room room-platform-portal-root';
26498
+ portalRoot.setAttribute('data-room-platform-portal-root', '');
26499
+ shadowRoot.append(style, appRoot, portalRoot);
26500
+ setSurface({
26501
+ appRoot: appRoot,
26502
+ portalRoot: portalRoot
26503
+ });
26504
+ return function() {
26505
+ setSurface(null);
26506
+ style.remove();
26507
+ appRoot.remove();
26508
+ portalRoot.remove();
26509
+ };
26510
+ }, []);
26511
+ return /*#__PURE__*/ jsx("div", {
26512
+ ref: hostRef,
26513
+ "data-room-platform-host": true,
26514
+ className: "room-platform-host",
26515
+ children: surface ? /*#__PURE__*/ createPortal(/*#__PURE__*/ jsx(PortalContainerProvider, {
26516
+ container: surface.portalRoot,
26517
+ children: children
26518
+ }), surface.appRoot) : null
26519
+ });
26520
+ }
26521
+
26324
26522
  function _array_like_to_array$3(arr, len) {
26325
26523
  if (len == null || len > arr.length) len = arr.length;
26326
26524
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -26672,7 +26870,7 @@ function _ts_generator$1(thisArg, body) {
26672
26870
  }
26673
26871
  }
26674
26872
  function RoomPlatformSpeakQueue(param) {
26675
- var activeSpeakerParticipantIdentity = param.activeSpeakerParticipantIdentity, activeSpeakerSlot = param.activeSpeakerSlot, canApproveSpeak = param.canApproveSpeak, canClearActiveSpeaker = param.canClearActiveSpeaker, canRejectSpeak = param.canRejectSpeak, isClearingActiveSpeaker = param.isClearingActiveSpeaker, _param_isPracticeMode = param.isPracticeMode, isPracticeMode = _param_isPracticeMode === void 0 ? false : _param_isPracticeMode, onApproveSpeakRequest = param.onApproveSpeakRequest, onClearActiveSpeaker = param.onClearActiveSpeaker, onRejectSpeakRequest = param.onRejectSpeakRequest, participants = param.participants, raisedHandParticipantIdentities = param.raisedHandParticipantIdentities;
26873
+ var activeSpeakerParticipantIdentity = param.activeSpeakerParticipantIdentity, activeSpeakerSlot = param.activeSpeakerSlot, canApproveSpeak = param.canApproveSpeak, canClearActiveSpeaker = param.canClearActiveSpeaker, canRejectSpeak = param.canRejectSpeak, isClearingActiveSpeaker = param.isClearingActiveSpeaker, onApproveSpeakRequest = param.onApproveSpeakRequest, onClearActiveSpeaker = param.onClearActiveSpeaker, onRejectSpeakRequest = param.onRejectSpeakRequest, participants = param.participants, raisedHandParticipantIdentities = param.raisedHandParticipantIdentities;
26676
26874
  var participantsByIdentity = new Map(participants.map(function(participant) {
26677
26875
  return [
26678
26876
  participant.participantIdentity,
@@ -26684,6 +26882,7 @@ function RoomPlatformSpeakQueue(param) {
26684
26882
  var canShowApprove = canApproveSpeak && onApproveSpeakRequest;
26685
26883
  var canShowReject = canRejectSpeak && onRejectSpeakRequest;
26686
26884
  var _useState = _sliced_to_array$2(useState(null), 2), pendingSpeakAction = _useState[0], setPendingSpeakAction = _useState[1];
26885
+ var roomPlatformToast = useRoomPlatformToast();
26687
26886
  var runSpeakAction = function(participantIdentity, action) {
26688
26887
  return _async_to_generator$1(function() {
26689
26888
  var handler;
@@ -26718,7 +26917,7 @@ function RoomPlatformSpeakQueue(param) {
26718
26917
  ];
26719
26918
  case 3:
26720
26919
  _state.sent();
26721
- toast.error(action === 'approve' ? 'Không duyệt được học sinh phát biểu.' : 'Không từ chối được yêu cầu phát biểu.');
26920
+ roomPlatformToast.error(action === 'approve' ? 'Không duyệt được học sinh phát biểu.' : 'Không từ chối được yêu cầu phát biểu.');
26722
26921
  return [
26723
26922
  3,
26724
26923
  5
@@ -26751,11 +26950,11 @@ function RoomPlatformSpeakQueue(param) {
26751
26950
  "Bục giảng"
26752
26951
  ]
26753
26952
  }),
26754
- !isPracticeMode ? /*#__PURE__*/ jsx(Badge, {
26953
+ /*#__PURE__*/ jsx(Badge, {
26755
26954
  variant: "outline",
26756
26955
  className: "border-liveclass-orange/30 text-liveclass-orange",
26757
26956
  children: raisedHandParticipantIdentities.length
26758
- }) : null
26957
+ })
26759
26958
  ]
26760
26959
  }),
26761
26960
  hasActiveSpeaker ? /*#__PURE__*/ jsxs("div", {
@@ -26856,7 +27055,7 @@ function RoomPlatformSpeakQueue(param) {
26856
27055
  }, participantIdentity);
26857
27056
  }) : /*#__PURE__*/ jsx("p", {
26858
27057
  className: "text-sm text-muted-foreground",
26859
- children: isPracticeMode ? 'Danh sách chờ phát biểu sẽ được đồng bộ theo trạng thái phòng.' : 'Không có học sinh chờ phát biểu.'
27058
+ children: "Kh\xf4ng c\xf3 học sinh chờ ph\xe1t biểu."
26860
27059
  })
26861
27060
  ]
26862
27061
  });
@@ -26937,6 +27136,24 @@ function _unsupported_iterable_to_array$1(o, minLen) {
26937
27136
  if (n === "Map" || n === "Set") return Array.from(n);
26938
27137
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
26939
27138
  }
27139
+ var cameraOverlayClassName = 'absolute left-4 top-4 z-30 aspect-video w-48 max-w-[40%]';
27140
+ function RoomPlatformCameraOverlay(param) {
27141
+ var trackRef = param.trackRef, status = param.status, testId = param.testId;
27142
+ return /*#__PURE__*/ jsx("div", {
27143
+ "data-identity": trackRef === null || trackRef === void 0 ? void 0 : trackRef.participant.identity,
27144
+ "data-status": status,
27145
+ "data-testid": testId,
27146
+ className: cameraOverlayClassName,
27147
+ style: {
27148
+ aspectRatio: getTrackAspectRatio(trackRef)
27149
+ },
27150
+ children: trackRef ? /*#__PURE__*/ jsx(RoomPlatformVideoTile, {
27151
+ kind: "overlay",
27152
+ mediaClassName: "h-full w-full overflow-hidden",
27153
+ trackRef: trackRef
27154
+ }) : 'Đang chờ tín hiệu lớp học'
27155
+ });
27156
+ }
26940
27157
  function getTrackAspectRatio(trackRef) {
26941
27158
  var _ref, _ref1;
26942
27159
  var _publication_track, _publication_track_mediaStreamTrack_getSettings, _publication_track_mediaStreamTrack, _publication_track1;
@@ -26974,17 +27191,10 @@ function RoomPlatformStage(param) {
26974
27191
  var resolvedOverlayTrack = overlayTrack !== null && overlayTrack !== void 0 ? overlayTrack : isScreenShare ? model.cameraOverlay : undefined;
26975
27192
  var frameClassName = model.primary ? 'relative flex h-full min-h-0 w-full items-center justify-center overflow-hidden rounded-lg text-white ring-1 ring-white/10' : 'relative flex h-full min-h-0 w-full items-center justify-center overflow-hidden rounded-lg bg-slate-950 p-4 text-sm text-slate-300 ring-1 ring-white/10';
26976
27193
  if (layout === 'camera-overlay') {
26977
- return /*#__PURE__*/ jsx("div", {
26978
- className: "absolute left-4 top-4 z-10 aspect-video w-48 max-w-[40%] overflow-hidden rounded-lg bg-slate-950 text-white ring-1 ring-white/20",
26979
- "data-status": status,
26980
- "data-testid": "room-platform-stage",
26981
- style: frameStyle,
26982
- children: cameraOverlayTrack ? /*#__PURE__*/ jsx(RoomPlatformVideoTile, {
26983
- className: "h-full w-full",
26984
- kind: "overlay",
26985
- mediaClassName: "h-full w-full overflow-hidden",
26986
- trackRef: cameraOverlayTrack
26987
- }) : 'Đang chờ tín hiệu lớp học'
27194
+ return /*#__PURE__*/ jsx(RoomPlatformCameraOverlay, {
27195
+ status: status,
27196
+ testId: "room-platform-stage",
27197
+ trackRef: cameraOverlayTrack
26988
27198
  });
26989
27199
  }
26990
27200
  return /*#__PURE__*/ jsxs("div", {
@@ -27021,15 +27231,9 @@ function RoomPlatformStage(param) {
27021
27231
  }) : 'Đang chờ tín hiệu lớp học'
27022
27232
  })
27023
27233
  }),
27024
- resolvedOverlayTrack ? /*#__PURE__*/ jsx("div", {
27025
- "data-identity": resolvedOverlayTrack.participant.identity,
27026
- "data-testid": "room-platform-camera-overlay",
27027
- className: "absolute left-4 top-4 z-30 aspect-video w-48 max-w-[40%] ring-1 ring-white/20",
27028
- children: /*#__PURE__*/ jsx(RoomPlatformVideoTile, {
27029
- kind: "overlay",
27030
- mediaClassName: "h-full w-full overflow-hidden",
27031
- trackRef: resolvedOverlayTrack
27032
- })
27234
+ resolvedOverlayTrack ? /*#__PURE__*/ jsx(RoomPlatformCameraOverlay, {
27235
+ testId: "room-platform-camera-overlay",
27236
+ trackRef: resolvedOverlayTrack
27033
27237
  }) : null
27034
27238
  ]
27035
27239
  });
@@ -27066,22 +27270,29 @@ function RoomPlatformTopBar(param) {
27066
27270
  });
27067
27271
  }
27068
27272
 
27069
- var isSpeakingRemote = function(param) {
27070
- var participant = param.participant;
27071
- return !participant.isLocal && participant.isSpeaking;
27072
- };
27073
- var isRemote = function(param) {
27074
- var participant = param.participant;
27075
- return !participant.isLocal;
27076
- };
27077
27273
  var hasAvailableTrackMedia = function(param) {
27078
27274
  var publication = param.publication;
27079
27275
  var state = publication;
27080
27276
  return !state.isMuted && state.isSubscribed !== false && state.track !== null;
27081
27277
  };
27278
+ var capabilitiesFromMetadata = function(metadata) {
27279
+ if (!metadata) return [];
27280
+ try {
27281
+ var capabilities = JSON.parse(metadata).capabilities;
27282
+ return Array.isArray(capabilities) && capabilities.every(function(value) {
27283
+ return typeof value === 'string' && isRoomPlatformCapability(value);
27284
+ }) ? capabilities : [];
27285
+ } catch (unused) {
27286
+ return [];
27287
+ }
27288
+ };
27289
+ var isModeratorCamera = function(param, localCapabilities) {
27290
+ var participant = param.participant;
27291
+ return (participant.isLocal ? localCapabilities : capabilitiesFromMetadata(participant.metadata)).includes(RoomPlatformCapability.ROOM_MODERATE);
27292
+ };
27082
27293
  function selectRoomPlatformStage(tracks) {
27083
- var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, activeSpeakerParticipantIdentity = _ref.activeSpeakerParticipantIdentity, primaryCameraSelector = _ref.primaryCameraSelector;
27084
- var _ref1, _cameras_find, _cameras_find1, _ref2, _shares_;
27294
+ var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, activeSpeakerParticipantIdentity = _ref.activeSpeakerParticipantIdentity, localCapabilities = _ref.localCapabilities;
27295
+ var _ref1, _shares_;
27085
27296
  var availableTracks = tracks.filter(hasAvailableTrackMedia);
27086
27297
  var shares = availableTracks.filter(function(param) {
27087
27298
  var source = param.source;
@@ -27091,13 +27302,10 @@ function selectRoomPlatformStage(tracks) {
27091
27302
  var source = param.source;
27092
27303
  return source === Track.Source.Camera;
27093
27304
  });
27094
- var genericPrimaryCamera = (_ref1 = (_cameras_find = cameras.find(isSpeakingRemote)) !== null && _cameras_find !== void 0 ? _cameras_find : cameras.find(isRemote)) !== null && _ref1 !== void 0 ? _ref1 : cameras[0];
27095
- var selectedPrimaryCamera = primaryCameraSelector ? primaryCameraSelector(cameras, activeSpeakerParticipantIdentity) : shares[0] ? (_cameras_find1 = cameras.find(function(param) {
27096
- var participant = param.participant;
27097
- var _shares_;
27098
- return participant.identity === ((_shares_ = shares[0]) === null || _shares_ === void 0 ? void 0 : _shares_.participant.identity);
27099
- })) !== null && _cameras_find1 !== void 0 ? _cameras_find1 : genericPrimaryCamera : genericPrimaryCamera;
27100
- var primary = (_ref2 = (_shares_ = shares[0]) !== null && _shares_ !== void 0 ? _shares_ : selectedPrimaryCamera) !== null && _ref2 !== void 0 ? _ref2 : undefined;
27305
+ var selectedPrimaryCamera = cameras.find(function(camera) {
27306
+ return isModeratorCamera(camera, localCapabilities !== null && localCapabilities !== void 0 ? localCapabilities : []);
27307
+ });
27308
+ var primary = (_ref1 = (_shares_ = shares[0]) !== null && _shares_ !== void 0 ? _shares_ : selectedPrimaryCamera) !== null && _ref1 !== void 0 ? _ref1 : undefined;
27101
27309
  var cameraOverlay = shares[0] ? selectedPrimaryCamera !== null && selectedPrimaryCamera !== void 0 ? selectedPrimaryCamera : undefined : undefined;
27102
27310
  var localPreview = cameras.find(function(param) {
27103
27311
  var participant = param.participant;
@@ -27125,8 +27333,9 @@ function selectRoomPlatformStage(tracks) {
27125
27333
  };
27126
27334
  }
27127
27335
 
27128
- function useRoomPlatformStage(primaryCameraSelector) {
27129
- var controlState = useRoomPlatform().controlState;
27336
+ function useRoomPlatformStage() {
27337
+ var _ref;
27338
+ var _useRoomPlatform = useRoomPlatform(), access = _useRoomPlatform.access, controlState = _useRoomPlatform.controlState;
27130
27339
  return selectRoomPlatformStage(useTracks([
27131
27340
  Track.Source.Camera,
27132
27341
  Track.Source.ScreenShare
@@ -27134,7 +27343,7 @@ function useRoomPlatformStage(primaryCameraSelector) {
27134
27343
  onlySubscribed: true
27135
27344
  }), {
27136
27345
  activeSpeakerParticipantIdentity: controlState === null || controlState === void 0 ? void 0 : controlState.activeSpeakerParticipantIdentity,
27137
- primaryCameraSelector: primaryCameraSelector
27346
+ localCapabilities: (_ref = access === null || access === void 0 ? void 0 : access.capabilities) !== null && _ref !== void 0 ? _ref : []
27138
27347
  });
27139
27348
  }
27140
27349
 
@@ -27411,6 +27620,32 @@ var emptyStageModel = {
27411
27620
  },
27412
27621
  primary: undefined
27413
27622
  };
27623
+ function RoomPlatformPracticeModeMediaPolicy(param) {
27624
+ var isPracticeMode = param.isPracticeMode;
27625
+ var _useRoomPlatform = useRoomPlatform(), localMedia = _useRoomPlatform.localMedia, setLocalMediaEnabled = _useRoomPlatform.setLocalMediaEnabled;
27626
+ var previousIsPracticeModeRef = useRef(isPracticeMode);
27627
+ var shouldStopScreenShareRef = useRef(false);
27628
+ useEffect(function() {
27629
+ if (!previousIsPracticeModeRef.current && isPracticeMode) {
27630
+ shouldStopScreenShareRef.current = true;
27631
+ }
27632
+ previousIsPracticeModeRef.current = isPracticeMode;
27633
+ if (!isPracticeMode) {
27634
+ shouldStopScreenShareRef.current = false;
27635
+ return;
27636
+ }
27637
+ if (!shouldStopScreenShareRef.current || !localMedia.screenShare) return;
27638
+ shouldStopScreenShareRef.current = false;
27639
+ void setLocalMediaEnabled('screenShare', false).catch(function() {
27640
+ return undefined;
27641
+ });
27642
+ }, [
27643
+ isPracticeMode,
27644
+ localMedia.screenShare,
27645
+ setLocalMediaEnabled
27646
+ ]);
27647
+ return null;
27648
+ }
27414
27649
  function getShareSessionKey(trackSid) {
27415
27650
  return trackSid ? "livekit:".concat(trackSid) : undefined;
27416
27651
  }
@@ -27447,13 +27682,14 @@ function RoomPlatformWhiteboardShareLifecycle(param) {
27447
27682
  return null;
27448
27683
  }
27449
27684
  var RoomPlatformWorkspaceContent = function(param) {
27450
- var cameraBackground = param.cameraBackground, integrations = param.integrations, extensions = param.extensions, isPracticeMode = param.isPracticeMode, onExit = param.onExit; param.primaryCameraSelector; var showLocalPreview = param.showLocalPreview, sizing = param.sizing, stageModel = param.stageModel;
27451
- var _ref, _ref1;
27452
- var _resolvedStageModel_primary, _extensions_sidebarTabs;
27685
+ var cameraBackground = param.cameraBackground, integrations = param.integrations, extensions = param.extensions; param.isPracticeMode; var onExit = param.onExit, sizing = param.sizing, stageModel = param.stageModel;
27686
+ var _resolvedStageModel_cameraOverlay, _ref, _ref1;
27687
+ var _resolvedStageModel_primary, _resolvedStageModel_primary1, _extensions_sidebarTabs;
27453
27688
  var _useRoomPlatform = useRoomPlatform(), access = _useRoomPlatform.access, controlState = _useRoomPlatform.controlState, error = _useRoomPlatform.error, hasCapability = _useRoomPlatform.hasCapability, isActionPending = _useRoomPlatform.isActionPending, localPreviewTrack = _useRoomPlatform.localPreviewTrack, performAction = _useRoomPlatform.performAction, status = _useRoomPlatform.status;
27454
27689
  var _useRoomPlatformPrivateRoom = useRoomPlatformPrivateRoom(), cancelPrivateRoom = _useRoomPlatformPrivateRoom.cancelPrivateRoom, currentPrivateRoomOperation = _useRoomPlatformPrivateRoom.currentPrivateRoomOperation;
27455
27690
  var resolvedStageModel = stageModel !== null && stageModel !== void 0 ? stageModel : emptyStageModel;
27456
- var shareSessionKey = ((_resolvedStageModel_primary = resolvedStageModel.primary) === null || _resolvedStageModel_primary === void 0 ? void 0 : _resolvedStageModel_primary.source) === Track.Source.ScreenShare ? getShareSessionKey(resolvedStageModel.primary.publication.trackSid) : undefined;
27691
+ var selectedHostCamera = (_resolvedStageModel_cameraOverlay = resolvedStageModel.cameraOverlay) !== null && _resolvedStageModel_cameraOverlay !== void 0 ? _resolvedStageModel_cameraOverlay : ((_resolvedStageModel_primary = resolvedStageModel.primary) === null || _resolvedStageModel_primary === void 0 ? void 0 : _resolvedStageModel_primary.source) === Track.Source.Camera ? resolvedStageModel.primary : undefined;
27692
+ var shareSessionKey = ((_resolvedStageModel_primary1 = resolvedStageModel.primary) === null || _resolvedStageModel_primary1 === void 0 ? void 0 : _resolvedStageModel_primary1.source) === Track.Source.ScreenShare ? getShareSessionKey(resolvedStageModel.primary.publication.trackSid) : undefined;
27457
27693
  var participants = useRoomPresence();
27458
27694
  var currentParticipantPresence = participants.find(function(participant) {
27459
27695
  return participant.isLocal;
@@ -27497,11 +27733,14 @@ var RoomPlatformWorkspaceContent = function(param) {
27497
27733
  };
27498
27734
  var participantTab = extensions === null || extensions === void 0 ? void 0 : extensions.participantTab;
27499
27735
  var monitor = extensions === null || extensions === void 0 ? void 0 : extensions.monitor;
27500
- var canUseMonitor = Boolean((monitor === null || monitor === void 0 ? void 0 : monitor.roomEligible) && hasCapability('monitor:manage'));
27736
+ var canUseMonitor = hasCapability('monitor:manage');
27737
+ var roomPlatformToast = useRoomPlatformToast();
27501
27738
  var handleMonitorStartError = useCallback(function() {
27502
27739
  setStageView('teaching');
27503
- toast.error('Không thể bật Monitor. Vui lòng thử lại.');
27504
- }, []);
27740
+ roomPlatformToast.error('Không thể bật Monitor. Vui lòng thử lại.');
27741
+ }, [
27742
+ roomPlatformToast
27743
+ ]);
27505
27744
  useEffect(function() {
27506
27745
  if (!canUseMonitor) setStageView('teaching');
27507
27746
  }, [
@@ -27602,10 +27841,10 @@ var RoomPlatformWorkspaceContent = function(param) {
27602
27841
  var activeSpeakerSlot = resolvedStageModel.activeSpeaker && !isSelfActiveSpeaker ? /*#__PURE__*/ jsx(RoomPlatformActiveSpeaker, {
27603
27842
  trackRef: resolvedStageModel.activeSpeaker
27604
27843
  }) : undefined;
27605
- var localMediaSlot = showLocalPreview ? /*#__PURE__*/ jsx(RoomPlatformLocalPreview, {
27844
+ var localMediaSlot = (selectedHostCamera === null || selectedHostCamera === void 0 ? void 0 : selectedHostCamera.participant.isLocal) ? undefined : /*#__PURE__*/ jsx(RoomPlatformLocalPreview, {
27606
27845
  localPreviewTrack: localPreviewTrack,
27607
27846
  trackRef: resolvedStageModel.localPreview
27608
- }) : undefined;
27847
+ });
27609
27848
  var activeSpeakerMediaSlot = hasActiveSpeaker && !canModerate ? activeSpeakerSlot : undefined;
27610
27849
  var isClearingActiveSpeaker = isActionPending(RoomPlatformAction.SPEAKER_CLEAR);
27611
27850
  var clearActiveSpeaker = function() {
@@ -27648,7 +27887,6 @@ var RoomPlatformWorkspaceContent = function(param) {
27648
27887
  canClearActiveSpeaker: true,
27649
27888
  canRejectSpeak: true,
27650
27889
  isClearingActiveSpeaker: isClearingActiveSpeaker,
27651
- isPracticeMode: isPracticeMode,
27652
27890
  onApproveSpeakRequest: approveSpeakRequest,
27653
27891
  onClearActiveSpeaker: clearActiveSpeaker,
27654
27892
  onRejectSpeakRequest: rejectSpeakRequest,
@@ -27828,7 +28066,7 @@ var RoomPlatformWorkspaceContent = function(param) {
27828
28066
  });
27829
28067
  };
27830
28068
  var RoomPlatformConnectedWorkspace = function(props) {
27831
- var stageModel = useRoomPlatformStage(props.primaryCameraSelector);
28069
+ var stageModel = useRoomPlatformStage();
27832
28070
  return /*#__PURE__*/ jsx(RoomPlatformWorkspaceContent, _object_spread_props(_object_spread({}, props), {
27833
28071
  stageModel: stageModel
27834
28072
  }));
@@ -27858,6 +28096,7 @@ function RoomPlatformPrivateRoomRuntime(param) {
27858
28096
  privateRoomId: privateRoomState.privateRoom.id
27859
28097
  }));
27860
28098
  var pending = acceptPending || declinePending || privateRoomState.isAcceptingPrivateRoom;
28099
+ var roomPlatformToast = useRoomPlatformToast();
27861
28100
  var whiteboard = integrations === null || integrations === void 0 ? void 0 : integrations.whiteboard;
27862
28101
  var whiteboardAuth = (whiteboard === null || whiteboard === void 0 ? void 0 : whiteboard.joinState.available) ? whiteboard.joinState.auth : undefined;
27863
28102
  return /*#__PURE__*/ jsxs(Fragment, {
@@ -27890,7 +28129,7 @@ function RoomPlatformPrivateRoomRuntime(param) {
27890
28129
  disabled: pending,
27891
28130
  onClick: function() {
27892
28131
  return void privateRoomState.declinePrivateRoom().catch(function() {
27893
- toast.error('Không thể từ chối phòng riêng. Vui lòng thử lại.');
28132
+ roomPlatformToast.error('Không thể từ chối phòng riêng. Vui lòng thử lại.');
27894
28133
  });
27895
28134
  },
27896
28135
  children: [
@@ -27929,7 +28168,7 @@ function RoomPlatformPrivateRoomRuntime(param) {
27929
28168
  ];
27930
28169
  case 3:
27931
28170
  _state.sent();
27932
- toast.error('Không thể vào phòng riêng. Vui lòng thử lại.');
28171
+ roomPlatformToast.error('Không thể vào phòng riêng. Vui lòng thử lại.');
27933
28172
  return [
27934
28173
  3,
27935
28174
  5
@@ -27999,34 +28238,42 @@ function RoomPlatformPrivateRoomRuntime(param) {
27999
28238
  ]
28000
28239
  });
28001
28240
  }
28002
- function RoomPlatformRoom(_0) {
28003
- var children = _0.children, extensions = _0.extensions, integrations = _0.integrations, isPracticeMode = _0.isPracticeMode, onExit = _0.onExit, primaryCameraSelector = _0.primaryCameraSelector, _0_showLocalPreview = _0.showLocalPreview, showLocalPreview = _0_showLocalPreview === void 0 ? true : _0_showLocalPreview, _0_sizing = _0.sizing, sizing = _0_sizing === void 0 ? 'viewport' : _0_sizing, providerProps = _object_without_properties(_0, [
28241
+ function RoomPlatformRuntime(_0) {
28242
+ var children = _0.children, extensions = _0.extensions, integrations = _0.integrations, isPracticeMode = _0.isPracticeMode, onExit = _0.onExit, _0_sizing = _0.sizing, sizing = _0_sizing === void 0 ? 'viewport' : _0_sizing, providerProps = _object_without_properties(_0, [
28004
28243
  "children",
28005
28244
  "extensions",
28006
28245
  "integrations",
28007
28246
  "isPracticeMode",
28008
28247
  "onExit",
28009
- "primaryCameraSelector",
28010
- "showLocalPreview",
28011
28248
  "sizing"
28012
28249
  ]);
28013
- return /*#__PURE__*/ jsx(RoomPlatformProvider, _object_spread_props(_object_spread({}, providerProps), {
28014
- children: /*#__PURE__*/ jsx(RoomPlatformMediaRuntime, {
28015
- children: /*#__PURE__*/ jsx(RoomPlatformPrivateRoomRuntime, {
28016
- integrations: integrations,
28017
- children: children !== null && children !== void 0 ? children : /*#__PURE__*/ jsx(RoomPlatformWorkspace, {
28018
- extensions: extensions,
28250
+ return /*#__PURE__*/ jsxs(RoomPlatformProvider, _object_spread_props(_object_spread({}, providerProps), {
28251
+ children: [
28252
+ /*#__PURE__*/ jsx(RoomPlatformPracticeModeMediaPolicy, {
28253
+ isPracticeMode: isPracticeMode
28254
+ }),
28255
+ /*#__PURE__*/ jsx(RoomPlatformMediaRuntime, {
28256
+ children: /*#__PURE__*/ jsx(RoomPlatformPrivateRoomRuntime, {
28019
28257
  integrations: integrations,
28020
- isPracticeMode: isPracticeMode,
28021
- onExit: onExit,
28022
- primaryCameraSelector: primaryCameraSelector,
28023
- showLocalPreview: showLocalPreview,
28024
- sizing: sizing
28258
+ children: children !== null && children !== void 0 ? children : /*#__PURE__*/ jsx(RoomPlatformWorkspace, {
28259
+ extensions: extensions,
28260
+ integrations: integrations,
28261
+ isPracticeMode: isPracticeMode,
28262
+ onExit: onExit,
28263
+ sizing: sizing
28264
+ })
28025
28265
  })
28026
28266
  })
28027
- })
28267
+ ]
28028
28268
  }));
28029
28269
  }
28270
+ function RoomPlatformRoom(props) {
28271
+ return /*#__PURE__*/ jsx(RoomPlatformShadowHost, {
28272
+ children: /*#__PURE__*/ jsx(RoomPlatformToastProvider, {
28273
+ children: /*#__PURE__*/ jsx(RoomPlatformRuntime, _object_spread({}, props))
28274
+ })
28275
+ });
28276
+ }
28030
28277
 
28031
28278
  function RoomPlatformVideoTracks(param) {
28032
28279
  var _param_status = param.status, status = _param_status === void 0 ? 'connected' : _param_status;