@100mslive/roomkit-react 0.1.7-alpha.0 → 0.1.8-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. package/dist/AudioLevel/AudioLevel.d.ts +5 -8
  2. package/dist/AudioLevel/index.d.ts +2 -1
  3. package/dist/AudioLevel/useBorderAudioLevel.d.ts +8 -0
  4. package/dist/{HLSView-F5BDZVT2.js → HLSView-IQRPLYNH.js} +8 -6
  5. package/dist/{HLSView-F5BDZVT2.js.map → HLSView-IQRPLYNH.js.map} +2 -2
  6. package/dist/Prebuilt/components/Chip.d.ts +12 -0
  7. package/dist/Prebuilt/components/PrebuiltDialogPortal.d.ts +4 -0
  8. package/dist/Prebuilt/components/RoleChangeRequest/RequestPrompt.d.ts +9 -0
  9. package/dist/VideoTile/StyledVideoTile.d.ts +445 -3
  10. package/dist/{VirtualBackground-THDRYDRA.js → VirtualBackground-GP4ATXD3.js} +3 -3
  11. package/dist/{chunk-JSH7SKEH.js → chunk-2H5NIZB7.js} +2 -2
  12. package/dist/{chunk-CDYRVICT.js → chunk-GLYGPYNS.js} +574 -1196
  13. package/dist/chunk-GLYGPYNS.js.map +7 -0
  14. package/dist/{chunk-U3G743OY.js → chunk-Z3O2WGWV.js} +2 -2
  15. package/dist/{chunk-U3G743OY.js.map → chunk-Z3O2WGWV.js.map} +1 -1
  16. package/dist/{conference-6IVZHILI.js → conference-JD35TNH4.js} +1545 -840
  17. package/dist/conference-JD35TNH4.js.map +7 -0
  18. package/dist/index.cjs.js +5975 -5849
  19. package/dist/index.cjs.js.map +4 -4
  20. package/dist/index.js +4 -2
  21. package/dist/meta.cjs.json +1633 -1399
  22. package/dist/meta.esbuild.json +1689 -1454
  23. package/package.json +6 -6
  24. package/src/AudioLevel/AudioLevel.tsx +79 -30
  25. package/src/AudioLevel/audio-level.png +0 -0
  26. package/src/AudioLevel/index.ts +2 -1
  27. package/src/AudioLevel/useBorderAudioLevel.tsx +34 -0
  28. package/src/Input/Input.tsx +1 -1
  29. package/src/Prebuilt/App.tsx +1 -0
  30. package/src/Prebuilt/components/Chat/ChatBody.jsx +125 -106
  31. package/src/Prebuilt/components/{Chip.jsx → Chip.tsx} +13 -2
  32. package/src/Prebuilt/components/Footer/ParticipantList.jsx +24 -13
  33. package/src/Prebuilt/components/Footer/RoleAccordion.tsx +43 -3
  34. package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +41 -46
  35. package/src/Prebuilt/components/Leave/MwebLeaveRoom.tsx +23 -35
  36. package/src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx +3 -2
  37. package/src/Prebuilt/components/MoreSettings/EmbedUrl.jsx +3 -2
  38. package/src/Prebuilt/components/MwebLandscapePrompt.jsx +58 -0
  39. package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +3 -2
  40. package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +3 -2
  41. package/src/Prebuilt/components/PrebuiltDialogPortal.tsx +6 -0
  42. package/src/Prebuilt/components/Preview/PreviewJoin.tsx +9 -6
  43. package/src/Prebuilt/components/RaiseHand.jsx +4 -11
  44. package/src/Prebuilt/components/RoleChangeModal.jsx +3 -2
  45. package/src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx +67 -0
  46. package/src/Prebuilt/components/{RoleChangeRequestModal.tsx → RoleChangeRequest/RoleChangeRequestModal.tsx} +18 -50
  47. package/src/Prebuilt/components/Settings/SettingsModal.jsx +3 -2
  48. package/src/Prebuilt/components/Settings/StartRecording.jsx +3 -2
  49. package/src/Prebuilt/components/StatsForNerds.jsx +3 -2
  50. package/src/Prebuilt/components/VideoTile.jsx +34 -75
  51. package/src/Prebuilt/components/conference.jsx +1 -1
  52. package/src/Prebuilt/components/hooks/useMetadata.jsx +2 -1
  53. package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +3 -2
  54. package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +4 -29
  55. package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +3 -2
  56. package/src/Prebuilt/layouts/HLSView.jsx +4 -2
  57. package/src/Prebuilt/layouts/SidePane.tsx +0 -1
  58. package/src/Prebuilt/primitives/DialogContent.jsx +5 -4
  59. package/src/VideoTile/StyledVideoTile.tsx +10 -14
  60. package/dist/chunk-CDYRVICT.js.map +0 -7
  61. package/dist/conference-6IVZHILI.js.map +0 -7
  62. /package/dist/Prebuilt/components/{RoleChangeRequestModal.d.ts → RoleChangeRequest/RoleChangeRequestModal.d.ts} +0 -0
  63. /package/dist/{VirtualBackground-THDRYDRA.js.map → VirtualBackground-GP4ATXD3.js.map} +0 -0
  64. /package/dist/{chunk-JSH7SKEH.js.map → chunk-2H5NIZB7.js.map} +0 -0
@@ -35,7 +35,7 @@ import {
35
35
  textEllipsis,
36
36
  theme,
37
37
  toastAnimation
38
- } from "./chunk-U3G743OY.js";
38
+ } from "./chunk-Z3O2WGWV.js";
39
39
 
40
40
  // src/Button/Button.tsx
41
41
  import React2 from "react";
@@ -657,7 +657,7 @@ var Input = styled("input", {
657
657
  border: "1px solid transparent"
658
658
  },
659
659
  "&::placeholder": {
660
- color: "$on_surface_low"
660
+ color: "$on_surface_medium"
661
661
  },
662
662
  variants: {
663
663
  alert_error_default: {
@@ -779,19 +779,10 @@ var Info = styled("div", {
779
779
  textOverflow: "ellipsis",
780
780
  fontFamily: "$sans"
781
781
  });
782
- var AttributeBox = styled("div", __spreadValues({
783
- position: "absolute",
784
- color: "$on_primary_high",
785
- w: "$12",
786
- h: "$12",
787
- bg: "$secondary_dim",
788
- r: "$round"
789
- }, flexCenter));
790
- var AudioIndicator = styled("div", __spreadProps(__spreadValues({
782
+ var AttributeBox = styled("div", __spreadProps(__spreadValues({
791
783
  position: "absolute",
792
784
  top: "$4",
793
- right: "$4",
794
- color: "$on_primary_high",
785
+ color: "$on_secondary_high",
795
786
  bg: "$secondary_dim",
796
787
  borderRadius: "$round",
797
788
  width: "$14",
@@ -812,12 +803,18 @@ var AudioIndicator = styled("div", __spreadProps(__spreadValues({
812
803
  width: "$13",
813
804
  height: "$13"
814
805
  }
806
+ },
807
+ position: {
808
+ left: { left: "$4" },
809
+ right: { right: "$4" }
815
810
  }
816
811
  },
817
812
  defaultVariants: {
818
- size: "medium"
813
+ size: "medium",
814
+ position: "left"
819
815
  }
820
816
  }));
817
+ var AudioIndicator = styled(AttributeBox, { defaultVariants: { position: "right" } });
821
818
  var FullScreenButton = styled("button", {
822
819
  width: "2.25rem",
823
820
  height: "2.25rem",
@@ -854,9 +851,9 @@ var StyledVideoTile = {
854
851
  Container,
855
852
  Overlay: Overlay2,
856
853
  Info,
857
- AudioIndicator,
858
854
  AvatarContainer,
859
855
  AttributeBox,
856
+ AudioIndicator,
860
857
  FullScreenButton
861
858
  };
862
859
 
@@ -1224,7 +1221,7 @@ var StyledMenuTile = {
1224
1221
  RemoveItem: RemoveMenuItem
1225
1222
  };
1226
1223
 
1227
- // src/AudioLevel/AudioLevel.tsx
1224
+ // src/AudioLevel/useBorderAudioLevel.tsx
1228
1225
  import { useCallback as useCallback2, useRef as useRef2 } from "react";
1229
1226
  import { useAudioLevelStyles } from "@100mslive/react-sdk";
1230
1227
  function useBorderAudioLevel(audioTrackId) {
@@ -1252,6 +1249,83 @@ var sigmoid = (z) => {
1252
1249
  return 1 / (1 + Math.exp(-z));
1253
1250
  };
1254
1251
 
1252
+ // src/AudioLevel/AudioLevel.tsx
1253
+ import React10, { useEffect as useEffect3, useRef as useRef3 } from "react";
1254
+ import { selectTrackAudioByID, useHMSVanillaStore } from "@100mslive/react-sdk";
1255
+
1256
+ // src/AudioLevel/audio-level.png
1257
+ var audio_level_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAABABAMAAAAHc7SNAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAtUExURQAAAP///////////////////////////////////////////////////////6FIq5sAAAAOdFJOUwA/QJqbnJ2euLnc3d7+2IFKrQAAAa9JREFUaN7dmcFRxDAMRXNgW4AbV24ZSkgrlAAFUAqlpITtgT0QnB22BnY3iWXHSlYz5H/NoJNO8bP8JTlyVW1k923/MveYdnc623PuUe3jsux37tEDcN24eFR7HJb9TD2qvQ/LfqUexR7a41Xx7bDsMfWo2j+NlnpU7TsBiOKdAOqoeCcAUTwFYFK8pn0GgFLttWVxAEq1pwJo1Z4KoFV7KoBW7YEAT0uK729pfxuAZcX/3Fr2TwAx05cVDwWIu11RPBQg7lZ0XlR7JIDsdkXxCIDp5GXf2v0GBxBP3pTfAIB48qb83h7AWtlhANbKDgOwVnYYgLWywwCsn/u/AO5HMIqwcwOovdNwLESNG8BQioNfKa52YwBsakC04/MF9C1Rw4HdjhU1SCyKqOCvZCGLhXgMgKgGiUWRI9hr+aSG+bU8sP4LyliIxwW4xOI1j8pKZlB/Tjt794ANpKzdAzOgaOzdAzKiCVpmkACWM4MEIFVCyQzfQWXnPao9eA+rG+dxfXB8L1jNB4pN+bCfd4re59Gqoz9alflQ+zzb7ZROwTWlUziEIO8UZCs7hc1+AbiVW6XSE8knAAAAAElFTkSuQmCC";
1258
+
1259
+ // src/AudioLevel/AudioLevel.tsx
1260
+ var positionValues = new Array(101).fill(0).reduce((acc, _, index) => {
1261
+ acc[index] = Math.round(index / 100 * 4) / 4;
1262
+ return acc;
1263
+ }, {});
1264
+ var barAnimation = keyframes({
1265
+ from: {
1266
+ maskSize: "4em .8em",
1267
+ "-webkit-mask-position-y": ".1em",
1268
+ maskPosition: "initial .1em"
1269
+ },
1270
+ "50%": {
1271
+ maskSize: "4em 1em",
1272
+ "-webkit-mask-position-y": 0,
1273
+ maskPosition: "initial 0"
1274
+ },
1275
+ to: {
1276
+ maskSize: "4em .8em",
1277
+ "-webkit-mask-position-y": ".1em",
1278
+ maskPosition: "initial 0"
1279
+ }
1280
+ });
1281
+ var AudioBar = () => {
1282
+ return /* @__PURE__ */ React10.createElement(
1283
+ Box,
1284
+ {
1285
+ css: {
1286
+ width: ".25em",
1287
+ height: "1em",
1288
+ maskImage: `url(${audio_level_default})`,
1289
+ "-webkit-mask-repeat": "no-repeat",
1290
+ backgroundColor: "$on_primary_high",
1291
+ maskSize: "4em 1em"
1292
+ }
1293
+ }
1294
+ );
1295
+ };
1296
+ var AudioLevel = ({ trackId, size }) => {
1297
+ const ref = useRef3(null);
1298
+ const vanillaStore = useHMSVanillaStore();
1299
+ useEffect3(() => {
1300
+ const unsubscribe = vanillaStore.subscribe((audioLevel) => {
1301
+ if (ref.current) {
1302
+ let index = 0;
1303
+ for (const child of ref.current.children) {
1304
+ const positionX = `-${positionValues[audioLevel] * (index === 1 ? 2.5 : 1.25)}em`;
1305
+ child.style["-webkit-mask-position-x"] = positionX;
1306
+ child.style["mask-position"] = `${positionX} 0`;
1307
+ child.style["animation"] = positionValues[audioLevel] > 0 ? `${barAnimation} 0.6s steps(3,jump-none) 0s infinite` : "none";
1308
+ index++;
1309
+ }
1310
+ }
1311
+ }, selectTrackAudioByID(trackId));
1312
+ return unsubscribe;
1313
+ }, [vanillaStore, trackId]);
1314
+ return /* @__PURE__ */ React10.createElement(
1315
+ Flex,
1316
+ {
1317
+ ref,
1318
+ css: {
1319
+ fontSize: size === "small" ? "0.75rem" : "1rem",
1320
+ gap: size === "small" ? "$1" : "$2"
1321
+ }
1322
+ },
1323
+ /* @__PURE__ */ React10.createElement(AudioBar, null),
1324
+ /* @__PURE__ */ React10.createElement(AudioBar, null),
1325
+ /* @__PURE__ */ React10.createElement(AudioBar, null)
1326
+ );
1327
+ };
1328
+
1255
1329
  // src/Popover/index.tsx
1256
1330
  import { Arrow as Arrow2, Close as Close2, Content as Content4, Popover as Root12, Portal as Portal3, Trigger as Trigger4 } from "@radix-ui/react-popover";
1257
1331
  var StyledContent2 = styled(Content4, __spreadValues({
@@ -1273,7 +1347,7 @@ var Popover2 = {
1273
1347
  };
1274
1348
 
1275
1349
  // src/Stats/Stats.tsx
1276
- import React10, { Fragment } from "react";
1350
+ import React11, { Fragment } from "react";
1277
1351
  import {
1278
1352
  selectConnectionQualityByPeerID,
1279
1353
  selectHMSStats,
@@ -1353,7 +1427,7 @@ function VideoTileStats({ videoTrackID, audioTrackID, peerID, isLocal = false })
1353
1427
  if (!(audioTrackStats || videoTrackStats)) {
1354
1428
  return null;
1355
1429
  }
1356
- return /* @__PURE__ */ React10.createElement(Stats.Root, null, /* @__PURE__ */ React10.createElement("table", null, /* @__PURE__ */ React10.createElement("tbody", null, isLocal ? /* @__PURE__ */ React10.createElement(Fragment, null, /* @__PURE__ */ React10.createElement(
1430
+ return /* @__PURE__ */ React11.createElement(Stats.Root, null, /* @__PURE__ */ React11.createElement("table", null, /* @__PURE__ */ React11.createElement("tbody", null, isLocal ? /* @__PURE__ */ React11.createElement(Fragment, null, /* @__PURE__ */ React11.createElement(
1357
1431
  StatsRow,
1358
1432
  {
1359
1433
  show: isNotNullishAndNot0(availableOutgoingBitrate),
@@ -1367,71 +1441,71 @@ function VideoTileStats({ videoTrackID, audioTrackID, peerID, isLocal = false })
1367
1441
  return null;
1368
1442
  }
1369
1443
  const layer = stat.rid ? simulcastMapping[stat.rid] : "";
1370
- return /* @__PURE__ */ React10.createElement(Fragment, null, layer && /* @__PURE__ */ React10.createElement(StatsRow, { label: layer.toUpperCase(), value: "" }), /* @__PURE__ */ React10.createElement(
1444
+ return /* @__PURE__ */ React11.createElement(Fragment, null, layer && /* @__PURE__ */ React11.createElement(StatsRow, { label: layer.toUpperCase(), value: "" }), /* @__PURE__ */ React11.createElement(
1371
1445
  StatsRow,
1372
1446
  {
1373
1447
  show: isNotNullishAndNot0(stat.frameWidth),
1374
1448
  label: "Width",
1375
1449
  value: (_a8 = stat.frameWidth) == null ? void 0 : _a8.toString()
1376
1450
  }
1377
- ), /* @__PURE__ */ React10.createElement(
1451
+ ), /* @__PURE__ */ React11.createElement(
1378
1452
  StatsRow,
1379
1453
  {
1380
1454
  show: isNotNullishAndNot0(stat.frameHeight),
1381
1455
  label: "Height",
1382
1456
  value: (_b8 = stat.frameHeight) == null ? void 0 : _b8.toString()
1383
1457
  }
1384
- ), /* @__PURE__ */ React10.createElement(
1458
+ ), /* @__PURE__ */ React11.createElement(
1385
1459
  StatsRow,
1386
1460
  {
1387
1461
  show: isNotNullishAndNot0(stat.framesPerSecond),
1388
1462
  label: "FPS",
1389
1463
  value: `${stat.framesPerSecond} ${isNotNullishAndNot0(stat.framesDropped) ? `(${stat.framesDropped} dropped)` : ""}`
1390
1464
  }
1391
- ), /* @__PURE__ */ React10.createElement(
1465
+ ), /* @__PURE__ */ React11.createElement(
1392
1466
  StatsRow,
1393
1467
  {
1394
1468
  show: isNotNullish(stat.bitrate),
1395
1469
  label: "Bitrate(V)",
1396
1470
  value: formatBytes(stat.bitrate, "b/s")
1397
1471
  }
1398
- ), /* @__PURE__ */ React10.createElement(Stats.Gap, null));
1399
- })) : /* @__PURE__ */ React10.createElement(Fragment, null, /* @__PURE__ */ React10.createElement(
1472
+ ), /* @__PURE__ */ React11.createElement(Stats.Gap, null));
1473
+ })) : /* @__PURE__ */ React11.createElement(Fragment, null, /* @__PURE__ */ React11.createElement(
1400
1474
  StatsRow,
1401
1475
  {
1402
1476
  show: isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.frameWidth),
1403
1477
  label: "Width",
1404
1478
  value: (_b7 = videoTrackStats == null ? void 0 : videoTrackStats.frameWidth) == null ? void 0 : _b7.toString()
1405
1479
  }
1406
- ), /* @__PURE__ */ React10.createElement(
1480
+ ), /* @__PURE__ */ React11.createElement(
1407
1481
  StatsRow,
1408
1482
  {
1409
1483
  show: isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.frameHeight),
1410
1484
  label: "Height",
1411
1485
  value: (_c = videoTrackStats == null ? void 0 : videoTrackStats.frameHeight) == null ? void 0 : _c.toString()
1412
1486
  }
1413
- ), /* @__PURE__ */ React10.createElement(
1487
+ ), /* @__PURE__ */ React11.createElement(
1414
1488
  StatsRow,
1415
1489
  {
1416
1490
  show: isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.framesPerSecond),
1417
1491
  label: "FPS",
1418
1492
  value: `${videoTrackStats == null ? void 0 : videoTrackStats.framesPerSecond} ${isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.framesDropped) ? `(${videoTrackStats == null ? void 0 : videoTrackStats.framesDropped} dropped)` : ""}`
1419
1493
  }
1420
- ), /* @__PURE__ */ React10.createElement(
1494
+ ), /* @__PURE__ */ React11.createElement(
1421
1495
  StatsRow,
1422
1496
  {
1423
1497
  show: isNotNullish(videoTrackStats == null ? void 0 : videoTrackStats.bitrate),
1424
1498
  label: "Bitrate(V)",
1425
1499
  value: formatBytes(videoTrackStats == null ? void 0 : videoTrackStats.bitrate, "b/s")
1426
1500
  }
1427
- )), /* @__PURE__ */ React10.createElement(
1501
+ )), /* @__PURE__ */ React11.createElement(
1428
1502
  StatsRow,
1429
1503
  {
1430
1504
  show: isNotNullish(audioTrackStats == null ? void 0 : audioTrackStats.bitrate),
1431
1505
  label: "Bitrate(A)",
1432
1506
  value: formatBytes(audioTrackStats == null ? void 0 : audioTrackStats.bitrate, "b/s")
1433
1507
  }
1434
- ), /* @__PURE__ */ React10.createElement(StatsRow, { show: isNotNullish(downlinkScore), label: "Downlink", value: downlinkScore }), /* @__PURE__ */ React10.createElement(StatsRow, { show: isNotNullish(videoTrackStats == null ? void 0 : videoTrackStats.codec), label: "Codec(V)", value: videoTrackStats == null ? void 0 : videoTrackStats.codec }), /* @__PURE__ */ React10.createElement(StatsRow, { show: isNotNullish(audioTrackStats == null ? void 0 : audioTrackStats.codec), label: "Codec(A)", value: audioTrackStats == null ? void 0 : audioTrackStats.codec }), /* @__PURE__ */ React10.createElement(PacketLostAndJitter, { audioTrackStats, videoTrackStats }))));
1508
+ ), /* @__PURE__ */ React11.createElement(StatsRow, { show: isNotNullish(downlinkScore), label: "Downlink", value: downlinkScore }), /* @__PURE__ */ React11.createElement(StatsRow, { show: isNotNullish(videoTrackStats == null ? void 0 : videoTrackStats.codec), label: "Codec(V)", value: videoTrackStats == null ? void 0 : videoTrackStats.codec }), /* @__PURE__ */ React11.createElement(StatsRow, { show: isNotNullish(audioTrackStats == null ? void 0 : audioTrackStats.codec), label: "Codec(A)", value: audioTrackStats == null ? void 0 : audioTrackStats.codec }), /* @__PURE__ */ React11.createElement(PacketLostAndJitter, { audioTrackStats, videoTrackStats }))));
1435
1509
  }
1436
1510
  var PacketLostAndJitter = ({
1437
1511
  audioTrackStats,
@@ -1441,14 +1515,14 @@ var PacketLostAndJitter = ({
1441
1515
  const isLocalPeer = (audioTrackStats == null ? void 0 : audioTrackStats.type.includes("outbound")) || (videoTrackStats == null ? void 0 : videoTrackStats.type.includes("outbound"));
1442
1516
  const audioStats = isLocalPeer ? audioTrackStats == null ? void 0 : audioTrackStats.remote : audioTrackStats;
1443
1517
  const videoStats = isLocalPeer ? videoTrackStats == null ? void 0 : videoTrackStats.remote : videoTrackStats;
1444
- return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(TrackPacketsLostRow, { label: "Packet Loss(V)", stats: videoStats }), /* @__PURE__ */ React10.createElement(TrackPacketsLostRow, { label: "Packet Loss(A)", stats: audioStats }), /* @__PURE__ */ React10.createElement(StatsRow, { show: isNotNullish(videoStats == null ? void 0 : videoStats.jitter), label: "Jitter(V)", value: (_a7 = videoStats == null ? void 0 : videoStats.jitter) == null ? void 0 : _a7.toFixed(4) }), /* @__PURE__ */ React10.createElement(StatsRow, { show: isNotNullish(audioStats == null ? void 0 : audioStats.jitter), label: "Jitter(A)", value: (_b7 = audioStats == null ? void 0 : audioStats.jitter) == null ? void 0 : _b7.toFixed(4) }));
1518
+ return /* @__PURE__ */ React11.createElement(React11.Fragment, null, /* @__PURE__ */ React11.createElement(TrackPacketsLostRow, { label: "Packet Loss(V)", stats: videoStats }), /* @__PURE__ */ React11.createElement(TrackPacketsLostRow, { label: "Packet Loss(A)", stats: audioStats }), /* @__PURE__ */ React11.createElement(StatsRow, { show: isNotNullish(videoStats == null ? void 0 : videoStats.jitter), label: "Jitter(V)", value: (_a7 = videoStats == null ? void 0 : videoStats.jitter) == null ? void 0 : _a7.toFixed(4) }), /* @__PURE__ */ React11.createElement(StatsRow, { show: isNotNullish(audioStats == null ? void 0 : audioStats.jitter), label: "Jitter(A)", value: (_b7 = audioStats == null ? void 0 : audioStats.jitter) == null ? void 0 : _b7.toFixed(4) }));
1445
1519
  };
1446
1520
  var TrackPacketsLostRow = ({
1447
1521
  stats,
1448
1522
  label
1449
1523
  }) => {
1450
1524
  const packetsLostRate = `${(stats == null ? void 0 : stats.packetsLostRate) ? stats.packetsLostRate.toFixed(2) : 0}/s`;
1451
- return /* @__PURE__ */ React10.createElement(
1525
+ return /* @__PURE__ */ React11.createElement(
1452
1526
  StatsRow,
1453
1527
  {
1454
1528
  show: isNotNullishAndNot0(stats == null ? void 0 : stats.packetsLost),
@@ -1463,10 +1537,10 @@ var RawStatsRow = ({
1463
1537
  tooltip = "",
1464
1538
  show = true
1465
1539
  }) => {
1466
- const statsLabel = /* @__PURE__ */ React10.createElement(Stats.Label, { css: { fontWeight: !value ? "$semiBold" : "$regular" } }, label);
1467
- return /* @__PURE__ */ React10.createElement(React10.Fragment, null, show ? /* @__PURE__ */ React10.createElement(Stats.Row, null, tooltip ? /* @__PURE__ */ React10.createElement(Tooltip, { side: "top", title: tooltip }, statsLabel) : statsLabel, value === "" ? /* @__PURE__ */ React10.createElement(Stats.Value, null) : /* @__PURE__ */ React10.createElement(Stats.Value, null, value)) : null);
1540
+ const statsLabel = /* @__PURE__ */ React11.createElement(Stats.Label, { css: { fontWeight: !value ? "$semiBold" : "$regular" } }, label);
1541
+ return /* @__PURE__ */ React11.createElement(React11.Fragment, null, show ? /* @__PURE__ */ React11.createElement(Stats.Row, null, tooltip ? /* @__PURE__ */ React11.createElement(Tooltip, { side: "top", title: tooltip }, statsLabel) : statsLabel, value === "" ? /* @__PURE__ */ React11.createElement(Stats.Value, null) : /* @__PURE__ */ React11.createElement(Stats.Value, null, value)) : null);
1468
1542
  };
1469
- var StatsRow = React10.memo(RawStatsRow);
1543
+ var StatsRow = React11.memo(RawStatsRow);
1470
1544
  function isNotNullishAndNot0(value) {
1471
1545
  return isNotNullish(value) && value !== 0;
1472
1546
  }
@@ -1545,7 +1619,7 @@ var RadioGroup = {
1545
1619
  };
1546
1620
 
1547
1621
  // src/Toast/Toast.tsx
1548
- import React11 from "react";
1622
+ import React12 from "react";
1549
1623
  import * as ToastPrimitives from "@radix-ui/react-toast";
1550
1624
  import { CrossIcon as CrossIcon2 } from "@100mslive/react-icons";
1551
1625
  var getToastVariant = (base) => {
@@ -1636,7 +1710,7 @@ var ToastViewport = styled(ToastPrimitives.Viewport, {
1636
1710
  zIndex: 1e3
1637
1711
  });
1638
1712
  var DefaultClose = ({ css: css2 }) => {
1639
- return /* @__PURE__ */ React11.createElement(ToastClose, { css: css2, asChild: true }, /* @__PURE__ */ React11.createElement(IconButton, null, /* @__PURE__ */ React11.createElement(CrossIcon2, null)));
1713
+ return /* @__PURE__ */ React12.createElement(ToastClose, { css: css2, asChild: true }, /* @__PURE__ */ React12.createElement(IconButton, null, /* @__PURE__ */ React12.createElement(CrossIcon2, null)));
1640
1714
  };
1641
1715
  var HMSToast = (_a7) => {
1642
1716
  var _b7 = _a7, {
@@ -1654,7 +1728,7 @@ var HMSToast = (_a7) => {
1654
1728
  "action",
1655
1729
  "inlineAction"
1656
1730
  ]);
1657
- return /* @__PURE__ */ React11.createElement(React11.Fragment, null, /* @__PURE__ */ React11.createElement(ToastRoot, __spreadValues({}, props), /* @__PURE__ */ React11.createElement(ToastTitle, null, /* @__PURE__ */ React11.createElement(Flex, { align: "center", css: { gap: "$4", flex: "1 1 0", minWidth: 0 } }, icon ? /* @__PURE__ */ React11.createElement(Box, { css: { w: "$10", h: "$10", alignSelf: "start", mt: "$2" } }, icon) : null, /* @__PURE__ */ React11.createElement(Text, { variant: "sub1", css: { c: "inherit", wordBreak: "break-word" } }, title)), isClosable ? /* @__PURE__ */ React11.createElement(DefaultClose, null) : null, !isClosable && inlineAction && action ? /* @__PURE__ */ React11.createElement(ToastAction, { altText: `${title}Action` }, action) : null), description ? /* @__PURE__ */ React11.createElement(ToastDescription, null, /* @__PURE__ */ React11.createElement(Text, { variant: "body1", css: { fontWeight: "$regular", c: "$on_surface_medium" } }, description)) : null, !inlineAction && action ? /* @__PURE__ */ React11.createElement(ToastAction, { altText: `${title}Action`, css: { mt: "$10" } }, action) : null));
1731
+ return /* @__PURE__ */ React12.createElement(React12.Fragment, null, /* @__PURE__ */ React12.createElement(ToastRoot, __spreadValues({}, props), /* @__PURE__ */ React12.createElement(ToastTitle, null, /* @__PURE__ */ React12.createElement(Flex, { align: "center", css: { gap: "$4", flex: "1 1 0", minWidth: 0 } }, icon ? /* @__PURE__ */ React12.createElement(Box, { css: { w: "$10", h: "$10", alignSelf: "start", mt: "$2" } }, icon) : null, /* @__PURE__ */ React12.createElement(Text, { variant: "sub1", css: { c: "inherit", wordBreak: "break-word" } }, title)), isClosable ? /* @__PURE__ */ React12.createElement(DefaultClose, null) : null, !isClosable && inlineAction && action ? /* @__PURE__ */ React12.createElement(ToastAction, { altText: `${title}Action` }, action) : null), description ? /* @__PURE__ */ React12.createElement(ToastDescription, null, /* @__PURE__ */ React12.createElement(Text, { variant: "body1", css: { fontWeight: "$regular", c: "$on_surface_medium" } }, description)) : null, !inlineAction && action ? /* @__PURE__ */ React12.createElement(ToastAction, { altText: `${title}Action`, css: { mt: "$10" } }, action) : null));
1658
1732
  };
1659
1733
  var Toast = {
1660
1734
  Provider: ToastPrimitives.Provider,
@@ -1668,7 +1742,7 @@ var Toast = {
1668
1742
  };
1669
1743
 
1670
1744
  // src/Accordion/Accordion.tsx
1671
- import React12 from "react";
1745
+ import React13 from "react";
1672
1746
  import * as BaseAccordion from "@radix-ui/react-accordion";
1673
1747
  import { ChevronUpIcon } from "@100mslive/react-icons";
1674
1748
  var StyledAccordion = styled(BaseAccordion.Root, {});
@@ -1720,14 +1794,14 @@ var StyledChevron = styled(ChevronUpIcon, {
1720
1794
  });
1721
1795
  var AccordionRoot = StyledAccordion;
1722
1796
  var AccordionItem = StyledItem;
1723
- var AccordionHeader = React12.forwardRef((_a7, forwardedRef) => {
1797
+ var AccordionHeader = React13.forwardRef((_a7, forwardedRef) => {
1724
1798
  var _b7 = _a7, { children, iconStyles, css: css2 } = _b7, props = __objRest(_b7, ["children", "iconStyles", "css"]);
1725
- return /* @__PURE__ */ React12.createElement(StyledHeader, { css: css2 }, /* @__PURE__ */ React12.createElement(StyledTrigger3, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), children, /* @__PURE__ */ React12.createElement(StyledChevron, { "aria-hidden": true, css: iconStyles })));
1799
+ return /* @__PURE__ */ React13.createElement(StyledHeader, { css: css2 }, /* @__PURE__ */ React13.createElement(StyledTrigger3, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), children, /* @__PURE__ */ React13.createElement(StyledChevron, { "aria-hidden": true, css: iconStyles })));
1726
1800
  });
1727
- var AccordionContent = React12.forwardRef(
1801
+ var AccordionContent = React13.forwardRef(
1728
1802
  (_a7, forwardedRef) => {
1729
1803
  var _b7 = _a7, { children, contentStyles } = _b7, props = __objRest(_b7, ["children", "contentStyles"]);
1730
- return /* @__PURE__ */ React12.createElement(StyledContent3, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), /* @__PURE__ */ React12.createElement(Box, { css: contentStyles }, children));
1804
+ return /* @__PURE__ */ React13.createElement(StyledContent3, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), /* @__PURE__ */ React13.createElement(Box, { css: contentStyles }, children));
1731
1805
  }
1732
1806
  );
1733
1807
 
@@ -1921,14 +1995,14 @@ var Tabs = {
1921
1995
  };
1922
1996
 
1923
1997
  // src/QRCode/QRCode.tsx
1924
- import React13 from "react";
1998
+ import React14 from "react";
1925
1999
  import { QRCodeSVG } from "qrcode.react";
1926
2000
  var QRCode = (props) => {
1927
- return /* @__PURE__ */ React13.createElement(QRCodeSVG, __spreadValues({ style: { width: "100%", height: "100%" } }, props));
2001
+ return /* @__PURE__ */ React14.createElement(QRCodeSVG, __spreadValues({ style: { width: "100%", height: "100%" } }, props));
1928
2002
  };
1929
2003
 
1930
2004
  // src/Link/Link.tsx
1931
- import React14 from "react";
2005
+ import React15 from "react";
1932
2006
  import * as icons from "@100mslive/react-icons";
1933
2007
  var LinkComponent = styled("a", {
1934
2008
  textDecoration: "none",
@@ -1954,9 +2028,9 @@ var LinkComponent = styled("a", {
1954
2028
  });
1955
2029
  var Link = (_a7) => {
1956
2030
  var _b7 = _a7, { iconSide = "left", icon, color = "primary", children } = _b7, rest = __objRest(_b7, ["iconSide", "icon", "color", "children"]);
1957
- const Icon2 = icon ? icons[icon] : React14.Fragment;
1958
- const renderedIcon = icon ? /* @__PURE__ */ React14.createElement(Flex, { as: "span" }, /* @__PURE__ */ React14.createElement(Icon2, { height: 13.33, width: 13.33 }), " ") : null;
1959
- return /* @__PURE__ */ React14.createElement(LinkComponent, __spreadProps(__spreadValues({}, rest), { color }), iconSide === "left" && renderedIcon, /* @__PURE__ */ React14.createElement(Text, { as: "span", variant: "body2", css: { color: "inherit" } }, children), iconSide === "right" && renderedIcon);
2031
+ const Icon2 = icon ? icons[icon] : React15.Fragment;
2032
+ const renderedIcon = icon ? /* @__PURE__ */ React15.createElement(Flex, { as: "span" }, /* @__PURE__ */ React15.createElement(Icon2, { height: 13.33, width: 13.33 }), " ") : null;
2033
+ return /* @__PURE__ */ React15.createElement(LinkComponent, __spreadProps(__spreadValues({}, rest), { color }), iconSide === "left" && renderedIcon, /* @__PURE__ */ React15.createElement(Text, { as: "span", variant: "body2", css: { color: "inherit" } }, children), iconSide === "right" && renderedIcon);
1960
2034
  };
1961
2035
 
1962
2036
  // src/Collapsible/Collapsible.tsx
@@ -1990,18 +2064,18 @@ var Collapsible = {
1990
2064
  };
1991
2065
 
1992
2066
  // src/Prebuilt/App.tsx
1993
- import React61, { Suspense as Suspense2, useEffect as useEffect29, useRef as useRef10 } from "react";
2067
+ import React58, { Suspense as Suspense2, useEffect as useEffect28, useRef as useRef10 } from "react";
1994
2068
  import { BrowserRouter, MemoryRouter, Navigate, Route, Routes, useParams as useParams5 } from "react-router-dom";
1995
2069
  import {
1996
2070
  HMSReactiveStore,
1997
2071
  HMSRoomProvider,
1998
2072
  selectIsConnectedToRoom as selectIsConnectedToRoom6,
1999
- useHMSActions as useHMSActions20,
2000
- useHMSStore as useHMSStore30
2073
+ useHMSActions as useHMSActions18,
2074
+ useHMSStore as useHMSStore26
2001
2075
  } from "@100mslive/react-sdk";
2002
2076
 
2003
2077
  // src/Prebuilt/components/AppData/AppData.jsx
2004
- import React15, { useEffect as useEffect3 } from "react";
2078
+ import React16, { useEffect as useEffect4 } from "react";
2005
2079
  import {
2006
2080
  HMSRoomState,
2007
2081
  selectAvailableRoleNames,
@@ -2087,7 +2161,7 @@ var useUserPreferences = (key, defaultPreference) => {
2087
2161
 
2088
2162
  // src/Prebuilt/components/AppData/useSidepane.js
2089
2163
  import { useCallback as useCallback3 } from "react";
2090
- import { selectAppData, useHMSActions, useHMSStore as useHMSStore2, useHMSVanillaStore } from "@100mslive/react-sdk";
2164
+ import { selectAppData, useHMSActions, useHMSStore as useHMSStore2, useHMSVanillaStore as useHMSVanillaStore2 } from "@100mslive/react-sdk";
2091
2165
 
2092
2166
  // src/Prebuilt/common/constants.js
2093
2167
  import { parsedUserAgent } from "@100mslive/react-sdk";
@@ -2185,7 +2259,7 @@ var useSidepaneState = () => {
2185
2259
  };
2186
2260
  var useSidepaneToggle = (sidepaneType) => {
2187
2261
  const hmsActions = useHMSActions();
2188
- const vanillaStore = useHMSVanillaStore();
2262
+ const vanillaStore = useHMSVanillaStore2();
2189
2263
  const toggleSidepane = useCallback3(() => {
2190
2264
  const isOpen = vanillaStore.getState(selectAppData(APP_DATA.sidePane)) === sidepaneType;
2191
2265
  hmsActions.setAppData(APP_DATA.sidePane, !isOpen ? sidepaneType : "");
@@ -2211,7 +2285,7 @@ import {
2211
2285
  selectVideoTrackByPeerID,
2212
2286
  useHMSActions as useHMSActions2,
2213
2287
  useHMSStore as useHMSStore3,
2214
- useHMSVanillaStore as useHMSVanillaStore2
2288
+ useHMSVanillaStore as useHMSVanillaStore3
2215
2289
  } from "@100mslive/react-sdk";
2216
2290
  var useUISettings = (uiSettingKey) => {
2217
2291
  const uiSettings = useHMSStore3(selectAppDataByPath(APP_DATA.uiSettings, uiSettingKey));
@@ -2291,7 +2365,7 @@ var useSetAppDataByKey = (appDataKey) => {
2291
2365
  };
2292
2366
  var useSetAppData = ({ key1, key2 }) => {
2293
2367
  const actions = useHMSActions2();
2294
- const store = useHMSVanillaStore2();
2368
+ const store = useHMSVanillaStore3();
2295
2369
  const [, setPreferences] = useUserPreferences(UserPreferencesKeys.UI_SETTINGS);
2296
2370
  const setValue = useCallback4(
2297
2371
  (value) => {
@@ -2356,7 +2430,7 @@ var initialAppData = {
2356
2430
  [APP_DATA.activeScreensharePeerId]: "",
2357
2431
  [APP_DATA.disableNotificiations]: false
2358
2432
  };
2359
- var AppData = React15.memo(({ appDetails, tokenEndpoint }) => {
2433
+ var AppData = React16.memo(({ appDetails, tokenEndpoint }) => {
2360
2434
  const hmsActions = useHMSActions3();
2361
2435
  const isConnected = useHMSStore4(selectIsConnectedToRoom);
2362
2436
  const sidePane = useSidepaneState();
@@ -2366,27 +2440,27 @@ var AppData = React15.memo(({ appDetails, tokenEndpoint }) => {
2366
2440
  const rolesMap = useHMSStore4(selectRolesMap);
2367
2441
  const localPeerRole = useHMSStore4(selectLocalPeerRoleName);
2368
2442
  const appData = useHMSStore4(selectFullAppData);
2369
- useEffect3(() => {
2443
+ useEffect4(() => {
2370
2444
  if (!isConnected && sidePane && sidePane !== SIDE_PANE_OPTIONS.PARTICIPANTS) {
2371
2445
  resetSidePane();
2372
2446
  }
2373
2447
  }, [isConnected, sidePane, resetSidePane]);
2374
- useEffect3(() => {
2448
+ useEffect4(() => {
2375
2449
  hmsActions.initAppData(__spreadValues(__spreadValues({}, initialAppData), appData));
2376
2450
  hmsActions.setFrameworkInfo({
2377
2451
  type: "react-web",
2378
2452
  isPrebuilt: true,
2379
- version: React15.version
2453
+ version: React16.version
2380
2454
  });
2381
2455
  }, [hmsActions]);
2382
- useEffect3(() => {
2456
+ useEffect4(() => {
2383
2457
  const uiSettings = preferences || {};
2384
2458
  const updatedSettings = __spreadProps(__spreadValues({}, uiSettings), {
2385
2459
  [UI_SETTINGS.uiViewMode]: uiSettings.uiViewMode || UI_MODE_GRID
2386
2460
  });
2387
2461
  hmsActions.setAppData(APP_DATA.uiSettings, updatedSettings, true);
2388
2462
  }, [preferences, hmsActions]);
2389
- useEffect3(() => {
2463
+ useEffect4(() => {
2390
2464
  const appData2 = {
2391
2465
  [APP_DATA.tokenEndpoint]: tokenEndpoint,
2392
2466
  [APP_DATA.appConfig]: getAppDetails(appDetails)
@@ -2395,19 +2469,19 @@ var AppData = React15.memo(({ appDetails, tokenEndpoint }) => {
2395
2469
  hmsActions.setAppData([key], appData2[key]);
2396
2470
  }
2397
2471
  }, [appDetails, tokenEndpoint, hmsActions]);
2398
- useEffect3(() => {
2472
+ useEffect4(() => {
2399
2473
  if (!preferences.subscribedNotifications) {
2400
2474
  return;
2401
2475
  }
2402
2476
  hmsActions.setAppData(APP_DATA.subscribedNotifications, preferences.subscribedNotifications, true);
2403
2477
  }, [preferences.subscribedNotifications, hmsActions]);
2404
- useEffect3(() => {
2478
+ useEffect4(() => {
2405
2479
  if (localPeerRole) {
2406
2480
  const config2 = normalizeAppPolicyConfig(roleNames, rolesMap);
2407
2481
  hmsActions.setAppData(APP_DATA.appLayout, config2[localPeerRole]);
2408
2482
  }
2409
2483
  }, [roleNames, rolesMap, localPeerRole, hmsActions]);
2410
- return /* @__PURE__ */ React15.createElement(ResetStreamingStart, null);
2484
+ return /* @__PURE__ */ React16.createElement(ResetStreamingStart, null);
2411
2485
  });
2412
2486
  var ResetStreamingStart = () => {
2413
2487
  const { isHLSRunning, isRTMPRunning, isBrowserRecordingOn } = useRecordingStreaming();
@@ -2419,19 +2493,19 @@ var ResetStreamingStart = () => {
2419
2493
  const [rtmpStarted, setRTMPStarted] = useSetAppDataByKey(APP_DATA.rtmpStarted);
2420
2494
  const toggleStreaming = useSidepaneToggle(SIDE_PANE_OPTIONS.STREAMING);
2421
2495
  const isStreamingOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.STREAMING);
2422
- useEffect3(() => {
2496
+ useEffect4(() => {
2423
2497
  if (isBrowserRecordingOn && recordingStarted) {
2424
2498
  setRecordingStarted(false);
2425
2499
  }
2426
2500
  }, [isBrowserRecordingOn, recordingStarted, setRecordingStarted]);
2427
- useEffect3(() => {
2501
+ useEffect4(() => {
2428
2502
  if (roomState === HMSRoomState.Disconnected) {
2429
2503
  setHLSStarted(false);
2430
2504
  setRecordingStarted(false);
2431
2505
  setRTMPStarted(false);
2432
2506
  }
2433
2507
  }, [roomState, setHLSStarted, setRTMPStarted, setRecordingStarted]);
2434
- useEffect3(() => {
2508
+ useEffect4(() => {
2435
2509
  if (isHLSRunning || hlsError) {
2436
2510
  if (hlsStarted) {
2437
2511
  setHLSStarted(false);
@@ -2441,7 +2515,7 @@ var ResetStreamingStart = () => {
2441
2515
  }
2442
2516
  }
2443
2517
  }, [isHLSRunning, hlsStarted, setHLSStarted, hlsError, isStreamingOpen, toggleStreaming]);
2444
- useEffect3(() => {
2518
+ useEffect4(() => {
2445
2519
  if (isRTMPRunning || rtmpError || isBrowserRecordingOn) {
2446
2520
  if (rtmpStarted) {
2447
2521
  setRTMPStarted(false);
@@ -2455,12 +2529,12 @@ var ResetStreamingStart = () => {
2455
2529
  };
2456
2530
 
2457
2531
  // src/Prebuilt/components/AuthToken.jsx
2458
- import React18, { useEffect as useEffect4, useState as useState4 } from "react";
2532
+ import React20, { useEffect as useEffect5, useState as useState4 } from "react";
2459
2533
  import { useHMSActions as useHMSActions4 } from "@100mslive/react-sdk";
2460
2534
 
2461
2535
  // src/Prebuilt/AppContext.tsx
2462
- import React16, { useContext } from "react";
2463
- var HMSPrebuiltContext = React16.createContext({
2536
+ import React17, { useContext } from "react";
2537
+ var HMSPrebuiltContext = React17.createContext({
2464
2538
  roomCode: "",
2465
2539
  userName: "",
2466
2540
  userId: "",
@@ -2477,15 +2551,21 @@ var useHMSPrebuiltContext = () => {
2477
2551
  };
2478
2552
 
2479
2553
  // src/Prebuilt/primitives/DialogContent.jsx
2480
- import React17, { useRef as useRef3 } from "react";
2554
+ import React19, { useRef as useRef4 } from "react";
2481
2555
  import { CheckIcon, CloudUploadIcon, CrossIcon as CrossIcon3 } from "@100mslive/react-icons";
2556
+
2557
+ // src/Prebuilt/components/PrebuiltDialogPortal.tsx
2558
+ import React18 from "react";
2559
+ var PrebuiltDialogPortal = ({ children }) => /* @__PURE__ */ React18.createElement(Dialog.Portal, { container: document.getElementById("prebuilt-container") }, children);
2560
+
2561
+ // src/Prebuilt/primitives/DialogContent.jsx
2482
2562
  var DialogContent = (_a7) => {
2483
2563
  var _b7 = _a7, { Icon: Icon2, title, closeable = true, children, css: css2, iconCSS = {} } = _b7, props = __objRest(_b7, ["Icon", "title", "closeable", "children", "css", "iconCSS"]);
2484
- return /* @__PURE__ */ React17.createElement(Dialog.Portal, null, /* @__PURE__ */ React17.createElement(Dialog.Overlay, null), /* @__PURE__ */ React17.createElement(Dialog.Content, __spreadValues({ css: __spreadValues({ width: "min(600px, 100%)" }, css2) }, props), /* @__PURE__ */ React17.createElement(Dialog.Title, null, /* @__PURE__ */ React17.createElement(Flex, { justify: "between" }, /* @__PURE__ */ React17.createElement(Flex, { align: "center", css: { mb: "$1" } }, Icon2 ? /* @__PURE__ */ React17.createElement(Box, { css: __spreadValues({ mr: "$2", color: "$on_primary_high" }, iconCSS) }, /* @__PURE__ */ React17.createElement(Icon2, null)) : null, /* @__PURE__ */ React17.createElement(Text, { variant: "h6", inline: true }, title)), closeable && /* @__PURE__ */ React17.createElement(Dialog.DefaultClose, { "data-testid": "dialoge_cross_icon" }))), /* @__PURE__ */ React17.createElement(HorizontalDivider, { css: { mt: "0.8rem" } }), /* @__PURE__ */ React17.createElement(Box, null, children)));
2564
+ return /* @__PURE__ */ React19.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React19.createElement(Dialog.Overlay, null), /* @__PURE__ */ React19.createElement(Dialog.Content, __spreadValues({ css: __spreadValues({ width: "min(600px, 100%)" }, css2) }, props), /* @__PURE__ */ React19.createElement(Dialog.Title, null, /* @__PURE__ */ React19.createElement(Flex, { justify: "between" }, /* @__PURE__ */ React19.createElement(Flex, { align: "center", css: { mb: "$1" } }, Icon2 ? /* @__PURE__ */ React19.createElement(Box, { css: __spreadValues({ mr: "$2", color: "$on_primary_high" }, iconCSS) }, /* @__PURE__ */ React19.createElement(Icon2, null)) : null, /* @__PURE__ */ React19.createElement(Text, { variant: "h6", inline: true }, title)), closeable && /* @__PURE__ */ React19.createElement(Dialog.DefaultClose, { "data-testid": "dialoge_cross_icon" }))), /* @__PURE__ */ React19.createElement(HorizontalDivider, { css: { mt: "0.8rem" } }), /* @__PURE__ */ React19.createElement(Box, null, children)));
2485
2565
  };
2486
2566
  var ErrorDialog = (_a7) => {
2487
2567
  var _b7 = _a7, { open = true, onOpenChange, title, children } = _b7, props = __objRest(_b7, ["open", "onOpenChange", "title", "children"]);
2488
- return /* @__PURE__ */ React17.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React17.createElement(
2568
+ return /* @__PURE__ */ React19.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React19.createElement(
2489
2569
  DialogContent,
2490
2570
  __spreadValues({
2491
2571
  Icon: CrossIcon3,
@@ -2496,10 +2576,10 @@ var ErrorDialog = (_a7) => {
2496
2576
  closeable: false,
2497
2577
  iconCSS: { color: "$alert_error_default" }
2498
2578
  }, props),
2499
- /* @__PURE__ */ React17.createElement(Box, { css: { mt: "$lg" } }, children)
2579
+ /* @__PURE__ */ React19.createElement(Box, { css: { mt: "$lg" } }, children)
2500
2580
  ));
2501
2581
  };
2502
- var RequestDialog = ({ open = true, onOpenChange, title, body, actionText = "Accept", onAction, Icon: Icon2 }) => /* @__PURE__ */ React17.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React17.createElement(Dialog.Portal, null, /* @__PURE__ */ React17.createElement(Dialog.Overlay, null), /* @__PURE__ */ React17.createElement(Dialog.Content, { css: { width: "min(400px,80%)", p: "$10" } }, /* @__PURE__ */ React17.createElement(Dialog.Title, { css: { p: 0, display: "flex", flexDirection: "row", gap: "$md" } }, Icon2 ? Icon2 : null, /* @__PURE__ */ React17.createElement(Text, { variant: "h6" }, title)), typeof body === "string" ? /* @__PURE__ */ React17.createElement(
2582
+ var RequestDialog = ({ open = true, onOpenChange, title, body, actionText = "Accept", onAction, Icon: Icon2 }) => /* @__PURE__ */ React19.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React19.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React19.createElement(Dialog.Overlay, null), /* @__PURE__ */ React19.createElement(Dialog.Content, { css: { width: "min(400px,80%)", p: "$10" } }, /* @__PURE__ */ React19.createElement(Dialog.Title, { css: { p: 0, display: "flex", flexDirection: "row", gap: "$md" } }, Icon2 ? Icon2 : null, /* @__PURE__ */ React19.createElement(Text, { variant: "h6" }, title)), typeof body === "string" ? /* @__PURE__ */ React19.createElement(
2503
2583
  Text,
2504
2584
  {
2505
2585
  variant: "md",
@@ -2511,7 +2591,7 @@ var RequestDialog = ({ open = true, onOpenChange, title, body, actionText = "Acc
2511
2591
  }
2512
2592
  },
2513
2593
  body
2514
- ) : /* @__PURE__ */ React17.createElement(Box, { css: { mt: "$4", mb: "$10" } }, body), /* @__PURE__ */ React17.createElement(Flex, { justify: "center", align: "center", css: { width: "100%", gap: "$md" } }, /* @__PURE__ */ React17.createElement(Box, { css: { width: "50%" } }, /* @__PURE__ */ React17.createElement(Dialog.Close, { css: { width: "100%" } }, /* @__PURE__ */ React17.createElement(Button, { variant: "standard", outlined: true, css: { width: "100%" } }, "Cancel"))), /* @__PURE__ */ React17.createElement(Box, { css: { width: "50%" } }, /* @__PURE__ */ React17.createElement(Button, { variant: "primary", css: { width: "100%" }, onClick: onAction }, actionText))))));
2594
+ ) : /* @__PURE__ */ React19.createElement(Box, { css: { mt: "$4", mb: "$10" } }, body), /* @__PURE__ */ React19.createElement(Flex, { justify: "center", align: "center", css: { width: "100%", gap: "$md" } }, /* @__PURE__ */ React19.createElement(Box, { css: { width: "50%" } }, /* @__PURE__ */ React19.createElement(Dialog.Close, { css: { width: "100%" } }, /* @__PURE__ */ React19.createElement(Button, { variant: "standard", outlined: true, css: { width: "100%" } }, "Cancel"))), /* @__PURE__ */ React19.createElement(Box, { css: { width: "50%" } }, /* @__PURE__ */ React19.createElement(Button, { variant: "primary", css: { width: "100%" }, onClick: onAction }, actionText))))));
2515
2595
  var DialogRow = ({ children, breakSm = false, css: css2, justify = "between" }) => {
2516
2596
  let finalCSS = {
2517
2597
  margin: "$10 0",
@@ -2526,7 +2606,7 @@ var DialogRow = ({ children, breakSm = false, css: css2, justify = "between" })
2526
2606
  if (css2) {
2527
2607
  finalCSS = Object.assign(finalCSS, css2);
2528
2608
  }
2529
- return /* @__PURE__ */ React17.createElement(Flex, { align: "center", justify, css: finalCSS }, children);
2609
+ return /* @__PURE__ */ React19.createElement(Flex, { align: "center", justify, css: finalCSS }, children);
2530
2610
  };
2531
2611
  var DialogCol = (_a7) => {
2532
2612
  var _b7 = _a7, { children, breakSm = false, css: css2, align = "center", justify = "between" } = _b7, props = __objRest(_b7, ["children", "breakSm", "css", "align", "justify"]);
@@ -2542,20 +2622,20 @@ var DialogCol = (_a7) => {
2542
2622
  if (css2) {
2543
2623
  finalCSS = Object.assign(finalCSS, css2);
2544
2624
  }
2545
- return /* @__PURE__ */ React17.createElement(Flex, __spreadValues({ direction: "column", align, justify, css: finalCSS }, props), children);
2625
+ return /* @__PURE__ */ React19.createElement(Flex, __spreadValues({ direction: "column", align, justify, css: finalCSS }, props), children);
2546
2626
  };
2547
2627
  var DialogSelect = (_a7) => {
2548
2628
  var _b7 = _a7, { title, options, keyField, labelField, selected, onChange } = _b7, props = __objRest(_b7, ["title", "options", "keyField", "labelField", "selected", "onChange"]);
2549
- return /* @__PURE__ */ React17.createElement(DialogRow, { breakSm: true }, /* @__PURE__ */ React17.createElement(Label3, null, title), /* @__PURE__ */ React17.createElement(Select.Root, __spreadValues({ "data-testid": `dialog_select_${title}`, css: { width: "70%", "@sm": { width: "100%" } } }, props), /* @__PURE__ */ React17.createElement(Select.DefaultDownIcon, null), /* @__PURE__ */ React17.createElement(Select.Select, { onChange: (e) => onChange(e.target.value), value: selected, css: { width: "100%" } }, options.map((option) => {
2629
+ return /* @__PURE__ */ React19.createElement(DialogRow, { breakSm: true }, /* @__PURE__ */ React19.createElement(Label3, null, title), /* @__PURE__ */ React19.createElement(Select.Root, __spreadValues({ "data-testid": `dialog_select_${title}`, css: { width: "70%", "@sm": { width: "100%" } } }, props), /* @__PURE__ */ React19.createElement(Select.DefaultDownIcon, null), /* @__PURE__ */ React19.createElement(Select.Select, { onChange: (e) => onChange(e.target.value), value: selected, css: { width: "100%" } }, options.map((option) => {
2550
2630
  const id = keyField ? option[keyField] : option;
2551
2631
  const label = labelField ? option[labelField] : option;
2552
- return /* @__PURE__ */ React17.createElement("option", { value: id, key: id }, label);
2632
+ return /* @__PURE__ */ React19.createElement("option", { value: id, key: id }, label);
2553
2633
  }))));
2554
2634
  };
2555
2635
  var DialogInputFile = (_a7) => {
2556
2636
  var _b7 = _a7, { value, onChange, placeholder, disabled, type } = _b7, props = __objRest(_b7, ["value", "onChange", "placeholder", "disabled", "type"]);
2557
- const inputRef = useRef3();
2558
- return /* @__PURE__ */ React17.createElement(
2637
+ const inputRef = useRef4();
2638
+ return /* @__PURE__ */ React19.createElement(
2559
2639
  DialogCol,
2560
2640
  {
2561
2641
  breakSm: true,
@@ -2576,7 +2656,7 @@ var DialogInputFile = (_a7) => {
2576
2656
  },
2577
2657
  gap: "8"
2578
2658
  },
2579
- /* @__PURE__ */ React17.createElement(
2659
+ /* @__PURE__ */ React19.createElement(
2580
2660
  IconButton,
2581
2661
  {
2582
2662
  variant: "standard",
@@ -2590,7 +2670,7 @@ var DialogInputFile = (_a7) => {
2590
2670
  }
2591
2671
  }
2592
2672
  },
2593
- /* @__PURE__ */ React17.createElement(
2673
+ /* @__PURE__ */ React19.createElement(
2594
2674
  CloudUploadIcon,
2595
2675
  {
2596
2676
  style: {
@@ -2600,7 +2680,7 @@ var DialogInputFile = (_a7) => {
2600
2680
  }
2601
2681
  )
2602
2682
  ),
2603
- /* @__PURE__ */ React17.createElement(Flex, { direction: "row" }, /* @__PURE__ */ React17.createElement(
2683
+ /* @__PURE__ */ React19.createElement(Flex, { direction: "row" }, /* @__PURE__ */ React19.createElement(
2604
2684
  Input,
2605
2685
  __spreadValues({
2606
2686
  ref: inputRef,
@@ -2612,7 +2692,7 @@ var DialogInputFile = (_a7) => {
2612
2692
  type,
2613
2693
  hidden: true
2614
2694
  }, props)
2615
- ), /* @__PURE__ */ React17.createElement(
2695
+ ), /* @__PURE__ */ React19.createElement(
2616
2696
  IconButton,
2617
2697
  {
2618
2698
  variant: "standard",
@@ -2626,20 +2706,20 @@ var DialogInputFile = (_a7) => {
2626
2706
  }
2627
2707
  }
2628
2708
  },
2629
- /* @__PURE__ */ React17.createElement(Text, { variant: "md" }, placeholder)
2709
+ /* @__PURE__ */ React19.createElement(Text, { variant: "md" }, placeholder)
2630
2710
  ))
2631
2711
  );
2632
2712
  };
2633
2713
 
2634
2714
  // src/Prebuilt/components/AuthToken.jsx
2635
- var AuthToken = React18.memo(({ authTokenByRoomCodeEndpoint, defaultAuthToken }) => {
2715
+ var AuthToken = React20.memo(({ authTokenByRoomCodeEndpoint, defaultAuthToken }) => {
2636
2716
  const hmsActions = useHMSActions4();
2637
2717
  const tokenEndpoint = useTokenEndpoint();
2638
2718
  const { roomCode, userId } = useHMSPrebuiltContext();
2639
2719
  const [error, setError] = useState4({ title: "", body: "" });
2640
2720
  let authToken = defaultAuthToken;
2641
2721
  const [, setAuthTokenInAppData] = useSetAppDataByKey(APP_DATA.authToken);
2642
- useEffect4(() => {
2722
+ useEffect5(() => {
2643
2723
  if (authToken) {
2644
2724
  setAuthTokenInAppData(authToken);
2645
2725
  return;
@@ -2650,7 +2730,7 @@ var AuthToken = React18.memo(({ authTokenByRoomCodeEndpoint, defaultAuthToken })
2650
2730
  hmsActions.getAuthTokenByRoomCode({ roomCode, userId }, { endpoint: authTokenByRoomCodeEndpoint }).then((token) => setAuthTokenInAppData(token)).catch((error2) => setError(convertError(error2)));
2651
2731
  }, [hmsActions, tokenEndpoint, authToken, authTokenByRoomCodeEndpoint, setAuthTokenInAppData, roomCode, userId]);
2652
2732
  if (error.title) {
2653
- return /* @__PURE__ */ React18.createElement(ErrorDialog, { title: error.title }, error.body);
2733
+ return /* @__PURE__ */ React20.createElement(ErrorDialog, { title: error.title }, error.body);
2654
2734
  }
2655
2735
  return null;
2656
2736
  });
@@ -2694,11 +2774,11 @@ var convertError = (error) => {
2694
2774
  var Link2 = styled("a", {
2695
2775
  color: "#2f80e1"
2696
2776
  });
2697
- var ErrorWithSupportLink = (errorMessage) => /* @__PURE__ */ React18.createElement("div", null, errorMessage, " If you think this is a mistake on our side, please create", " ", /* @__PURE__ */ React18.createElement(Link2, { target: "_blank", href: "https://github.com/100mslive/100ms-web/issues", rel: "noreferrer" }, "an issue"), " ", "or reach out over", " ", /* @__PURE__ */ React18.createElement(Link2, { target: "_blank", href: "https://discord.com/invite/kGdmszyzq2", rel: "noreferrer" }, "Discord"), ".");
2777
+ var ErrorWithSupportLink = (errorMessage) => /* @__PURE__ */ React20.createElement("div", null, errorMessage, " If you think this is a mistake on our side, please create", " ", /* @__PURE__ */ React20.createElement(Link2, { target: "_blank", href: "https://github.com/100mslive/100ms-web/issues", rel: "noreferrer" }, "an issue"), " ", "or reach out over", " ", /* @__PURE__ */ React20.createElement(Link2, { target: "_blank", href: "https://discord.com/invite/kGdmszyzq2", rel: "noreferrer" }, "Discord"), ".");
2698
2778
  var AuthToken_default = AuthToken;
2699
2779
 
2700
2780
  // src/Prebuilt/components/ErrorBoundary.jsx
2701
- import React19, { Component } from "react";
2781
+ import React21, { Component } from "react";
2702
2782
  import { CopyIcon as CopyIcon2 } from "@100mslive/react-icons";
2703
2783
  var ErrorBoundary = class extends Component {
2704
2784
  constructor(props) {
@@ -2714,7 +2794,7 @@ var ErrorBoundary = class extends Component {
2714
2794
  }
2715
2795
  render() {
2716
2796
  if (this.state.errorInfo) {
2717
- return /* @__PURE__ */ React19.createElement(
2797
+ return /* @__PURE__ */ React21.createElement(
2718
2798
  Flex,
2719
2799
  {
2720
2800
  align: "center",
@@ -2727,7 +2807,7 @@ var ErrorBoundary = class extends Component {
2727
2807
  backgroundColor: "$background_default"
2728
2808
  }
2729
2809
  },
2730
- /* @__PURE__ */ React19.createElement(Box, { css: { position: "relative", overflow: "hidden", r: "$3", height: "100%", width: "100%" } }, /* @__PURE__ */ React19.createElement(
2810
+ /* @__PURE__ */ React21.createElement(Box, { css: { position: "relative", overflow: "hidden", r: "$3", height: "100%", width: "100%" } }, /* @__PURE__ */ React21.createElement(
2731
2811
  Flex,
2732
2812
  {
2733
2813
  direction: "column",
@@ -2738,8 +2818,8 @@ var ErrorBoundary = class extends Component {
2738
2818
  left: 0
2739
2819
  }
2740
2820
  },
2741
- /* @__PURE__ */ React19.createElement("div", { style: { margin: "1.5rem", width: "100%" } }, /* @__PURE__ */ React19.createElement(Text, null, "Something went wrong"), /* @__PURE__ */ React19.createElement(Text, null, "Message: $", this.state.error), /* @__PURE__ */ React19.createElement("br", null), ErrorWithSupportLink(`Please reload to see if it works.`)),
2742
- /* @__PURE__ */ React19.createElement(Flex, null, /* @__PURE__ */ React19.createElement(Tooltip, { title: "Reload page" }, /* @__PURE__ */ React19.createElement(
2821
+ /* @__PURE__ */ React21.createElement("div", { style: { margin: "1.5rem", width: "100%" } }, /* @__PURE__ */ React21.createElement(Text, null, "Something went wrong"), /* @__PURE__ */ React21.createElement(Text, null, "Message: $", this.state.error), /* @__PURE__ */ React21.createElement("br", null), ErrorWithSupportLink(`Please reload to see if it works.`)),
2822
+ /* @__PURE__ */ React21.createElement(Flex, null, /* @__PURE__ */ React21.createElement(Tooltip, { title: "Reload page" }, /* @__PURE__ */ React21.createElement(
2743
2823
  Button,
2744
2824
  {
2745
2825
  onClick: () => {
@@ -2749,7 +2829,7 @@ var ErrorBoundary = class extends Component {
2749
2829
  "data-testid": "join_again_btn"
2750
2830
  },
2751
2831
  "Reload"
2752
- )), /* @__PURE__ */ React19.createElement(Tooltip, { title: "Copy error details to clipboard" }, /* @__PURE__ */ React19.createElement(
2832
+ )), /* @__PURE__ */ React21.createElement(Tooltip, { title: "Copy error details to clipboard" }, /* @__PURE__ */ React21.createElement(
2753
2833
  Button,
2754
2834
  {
2755
2835
  onClick: () => {
@@ -2765,11 +2845,11 @@ var ErrorBoundary = class extends Component {
2765
2845
  css: { mx: "$8" },
2766
2846
  "data-testid": "join_again_btn"
2767
2847
  },
2768
- /* @__PURE__ */ React19.createElement(CopyIcon2, null),
2848
+ /* @__PURE__ */ React21.createElement(CopyIcon2, null),
2769
2849
  " ",
2770
2850
  this.state.isErrorCopied ? "Copied" : "Copy Details"
2771
2851
  ))),
2772
- /* @__PURE__ */ React19.createElement("details", { style: { whiteSpace: "pre-wrap", margin: "1.5rem" } }, /* @__PURE__ */ React19.createElement(Text, null, this.state.error && this.state.error.toString()), /* @__PURE__ */ React19.createElement("br", null), /* @__PURE__ */ React19.createElement(Text, null, JSON.stringify(this.state.errorInfo)))
2852
+ /* @__PURE__ */ React21.createElement("details", { style: { whiteSpace: "pre-wrap", margin: "1.5rem" } }, /* @__PURE__ */ React21.createElement(Text, null, this.state.error && this.state.error.toString()), /* @__PURE__ */ React21.createElement("br", null), /* @__PURE__ */ React21.createElement(Text, null, JSON.stringify(this.state.errorInfo)))
2773
2853
  ))
2774
2854
  );
2775
2855
  }
@@ -2778,15 +2858,15 @@ var ErrorBoundary = class extends Component {
2778
2858
  };
2779
2859
 
2780
2860
  // src/Prebuilt/components/FullPageProgress.jsx
2781
- import React20 from "react";
2782
- var FullPageProgress = ({ loaderColor = "$primary_default", text = "", css: css2 = {} }) => /* @__PURE__ */ React20.createElement(Flex, { direction: "column", justify: "center", align: "center", css: __spreadValues({ size: "100%", color: loaderColor }, css2) }, /* @__PURE__ */ React20.createElement(Loading, { color: "currentColor", size: 100 }), text ? /* @__PURE__ */ React20.createElement(Text, { css: { mt: "$10", color: "$on_surface_high" } }, text) : null);
2861
+ import React22 from "react";
2862
+ var FullPageProgress = ({ loaderColor = "$primary_default", text = "", css: css2 = {} }) => /* @__PURE__ */ React22.createElement(Flex, { direction: "column", justify: "center", align: "center", css: __spreadValues({ size: "100%", color: loaderColor }, css2) }, /* @__PURE__ */ React22.createElement(Loading, { color: "currentColor", size: 100 }), text ? /* @__PURE__ */ React22.createElement(Text, { css: { mt: "$10", color: "$on_surface_high" } }, text) : null);
2783
2863
  var FullPageProgress_default = FullPageProgress;
2784
2864
 
2785
2865
  // src/Prebuilt/components/init/Init.jsx
2786
- import React21, { useEffect as useEffect6 } from "react";
2866
+ import React23, { useEffect as useEffect7 } from "react";
2787
2867
 
2788
2868
  // src/Prebuilt/services/FeatureFlags.jsx
2789
- import { useEffect as useEffect5 } from "react";
2869
+ import { useEffect as useEffect6 } from "react";
2790
2870
  import { selectRoomID, useHMSStore as useHMSStore5 } from "@100mslive/react-sdk";
2791
2871
  var FeatureFlags = class {
2792
2872
  static init(roomId) {
@@ -2813,7 +2893,7 @@ __publicField(FeatureFlags, "enableStatsForNerds", define_process_env_default.RE
2813
2893
  __publicField(FeatureFlags, "enableWhiteboard", define_process_env_default.REACT_APP_ENABLE_WHITEBOARD && define_process_env_default.REACT_APP_PUSHER_APP_KEY && define_process_env_default.REACT_APP_PUSHER_AUTHENDPOINT);
2814
2894
  function FeatureFlagsInit() {
2815
2895
  const roomId = useHMSStore5(selectRoomID);
2816
- useEffect5(() => {
2896
+ useEffect6(() => {
2817
2897
  if (roomId) {
2818
2898
  FeatureFlags.init(roomId);
2819
2899
  }
@@ -2824,10 +2904,10 @@ function FeatureFlagsInit() {
2824
2904
  // src/Prebuilt/components/init/Init.jsx
2825
2905
  var Init = () => {
2826
2906
  const { toggleTheme } = useTheme();
2827
- useEffect6(() => {
2907
+ useEffect7(() => {
2828
2908
  window.toggleUiTheme = toggleTheme;
2829
2909
  }, [toggleTheme]);
2830
- useEffect6(() => {
2910
+ useEffect7(() => {
2831
2911
  function resetHeight() {
2832
2912
  var _a7;
2833
2913
  document.body.style.height = `${((_a7 = window.visualViewport) == null ? void 0 : _a7.height) || window.innerHeight}px`;
@@ -2838,17 +2918,17 @@ var Init = () => {
2838
2918
  window.removeEventListener("resize", resetHeight);
2839
2919
  };
2840
2920
  }, []);
2841
- return /* @__PURE__ */ React21.createElement(FeatureFlagsInit, null);
2921
+ return /* @__PURE__ */ React23.createElement(FeatureFlagsInit, null);
2842
2922
  };
2843
2923
 
2844
2924
  // src/Prebuilt/components/Input/KeyboardInputManager.js
2845
- import { useEffect as useEffect7 } from "react";
2925
+ import { useEffect as useEffect8 } from "react";
2846
2926
  import {
2847
2927
  selectAppData as selectAppData3,
2848
2928
  selectIsLocalAudioEnabled,
2849
2929
  selectIsLocalVideoEnabled,
2850
2930
  useHMSActions as useHMSActions5,
2851
- useHMSVanillaStore as useHMSVanillaStore3
2931
+ useHMSVanillaStore as useHMSVanillaStore4
2852
2932
  } from "@100mslive/react-sdk";
2853
2933
  var isEvenListenersAttached = false;
2854
2934
  var _actions, _store, _toggleAudio, _toggleVideo, _hideSidepane, _toggleStatsForNerds, _toggleHlsStats, _keyDownHandler, _bind, _unbind;
@@ -2935,9 +3015,9 @@ _keyDownHandler = new WeakMap();
2935
3015
  _bind = new WeakMap();
2936
3016
  _unbind = new WeakMap();
2937
3017
  var KeyboardHandler = () => {
2938
- const store = useHMSVanillaStore3();
3018
+ const store = useHMSVanillaStore4();
2939
3019
  const actions = useHMSActions5();
2940
- useEffect7(() => {
3020
+ useEffect8(() => {
2941
3021
  const keyboardManager = new KeyboardInputManager(store, actions);
2942
3022
  keyboardManager.bindAllShortcuts();
2943
3023
  return keyboardManager.unbindAllShortcuts;
@@ -2946,7 +3026,7 @@ var KeyboardHandler = () => {
2946
3026
  };
2947
3027
 
2948
3028
  // src/Prebuilt/components/Notifications/Notifications.jsx
2949
- import React30, { useCallback as useCallback8, useEffect as useEffect16 } from "react";
3029
+ import React32, { useCallback as useCallback8, useEffect as useEffect17 } from "react";
2950
3030
  import { useNavigate as useNavigate2, useParams as useParams2 } from "react-router-dom";
2951
3031
  import {
2952
3032
  HMSNotificationTypes as HMSNotificationTypes7,
@@ -2956,15 +3036,15 @@ import {
2956
3036
  useCustomEvent,
2957
3037
  useHMSNotifications as useHMSNotifications7,
2958
3038
  useHMSStore as useHMSStore7,
2959
- useHMSVanillaStore as useHMSVanillaStore4
3039
+ useHMSVanillaStore as useHMSVanillaStore5
2960
3040
  } from "@100mslive/react-sdk";
2961
3041
 
2962
3042
  // src/Prebuilt/provider/roomLayoutProvider/index.tsx
2963
- import React22 from "react";
3043
+ import React24 from "react";
2964
3044
  import merge from "lodash.merge";
2965
3045
 
2966
3046
  // src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts
2967
- import { useCallback as useCallback5, useEffect as useEffect8, useRef as useRef4, useState as useState5 } from "react";
3047
+ import { useCallback as useCallback5, useEffect as useEffect9, useRef as useRef5, useState as useState5 } from "react";
2968
3048
 
2969
3049
  // src/Prebuilt/provider/roomLayoutProvider/constants/index.ts
2970
3050
  import { JoinForm_JoinBtnType } from "@100mslive/types-prebuilt/elements/join_form";
@@ -3033,8 +3113,8 @@ var useFetchRoomLayout = ({
3033
3113
  authToken = ""
3034
3114
  }) => {
3035
3115
  const [layout, setLayout] = useState5(void 0);
3036
- const layoutResp = useRef4();
3037
- const isFetchInProgress = useRef4(false);
3116
+ const layoutResp = useRef5();
3117
+ const isFetchInProgress = useRef5(false);
3038
3118
  const updateRoomLayoutForRole = useCallback5((role) => {
3039
3119
  var _a7;
3040
3120
  if (!layoutResp.current) {
@@ -3045,7 +3125,7 @@ var useFetchRoomLayout = ({
3045
3125
  setLayout(layout2);
3046
3126
  }
3047
3127
  }, []);
3048
- useEffect8(() => {
3128
+ useEffect9(() => {
3049
3129
  (() => __async(void 0, null, function* () {
3050
3130
  var _a7, _b7;
3051
3131
  if (isFetchInProgress.current || !authToken) {
@@ -3081,7 +3161,7 @@ var useFetchRoomLayout = ({
3081
3161
  };
3082
3162
 
3083
3163
  // src/Prebuilt/provider/roomLayoutProvider/index.tsx
3084
- var RoomLayoutContext = React22.createContext(void 0);
3164
+ var RoomLayoutContext = React24.createContext(void 0);
3085
3165
  var RoomLayoutProvider = ({
3086
3166
  children,
3087
3167
  roomLayoutEndpoint,
@@ -3090,19 +3170,19 @@ var RoomLayoutProvider = ({
3090
3170
  const authToken = useAuthToken();
3091
3171
  const { layout, updateRoomLayoutForRole } = useFetchRoomLayout({ authToken, endpoint: roomLayoutEndpoint });
3092
3172
  const mergedLayout = authToken && layout ? merge(layout, overrideLayout) : layout;
3093
- return /* @__PURE__ */ React22.createElement(RoomLayoutContext.Provider, { value: { layout: mergedLayout, updateRoomLayoutForRole } }, children);
3173
+ return /* @__PURE__ */ React24.createElement(RoomLayoutContext.Provider, { value: { layout: mergedLayout, updateRoomLayoutForRole } }, children);
3094
3174
  };
3095
3175
  var useRoomLayout = () => {
3096
3176
  var _a7;
3097
- return (_a7 = React22.useContext(RoomLayoutContext)) == null ? void 0 : _a7.layout;
3177
+ return (_a7 = React24.useContext(RoomLayoutContext)) == null ? void 0 : _a7.layout;
3098
3178
  };
3099
3179
  var useUpdateRoomLayout = () => {
3100
3180
  var _a7;
3101
- return (_a7 = React22.useContext(RoomLayoutContext)) == null ? void 0 : _a7.updateRoomLayoutForRole;
3181
+ return (_a7 = React24.useContext(RoomLayoutContext)) == null ? void 0 : _a7.updateRoomLayoutForRole;
3102
3182
  };
3103
3183
 
3104
3184
  // src/Prebuilt/components/Toast/ToastConfig.jsx
3105
- import React23, { useCallback as useCallback6 } from "react";
3185
+ import React25, { useCallback as useCallback6 } from "react";
3106
3186
  import { selectPeerByID, useHMSActions as useHMSActions6, useHMSStore as useHMSStore6 } from "@100mslive/react-sdk";
3107
3187
  import {
3108
3188
  ChatUnreadIcon,
@@ -3112,15 +3192,15 @@ import {
3112
3192
  PeopleRemoveIcon,
3113
3193
  PoorConnectivityIcon
3114
3194
  } from "@100mslive/react-icons";
3115
- var ChatAction = React23.forwardRef((_, ref) => {
3195
+ var ChatAction = React25.forwardRef((_, ref) => {
3116
3196
  const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
3117
3197
  const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);
3118
3198
  if (isChatOpen) {
3119
3199
  return null;
3120
3200
  }
3121
- return /* @__PURE__ */ React23.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: toggleChat, ref }, "Open Chat");
3201
+ return /* @__PURE__ */ React25.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: toggleChat, ref }, "Open Chat");
3122
3202
  });
3123
- var HandRaiseAction = React23.forwardRef(({ id = "", isSingleHandRaise = true }, ref) => {
3203
+ var HandRaiseAction = React25.forwardRef(({ id = "", isSingleHandRaise = true }, ref) => {
3124
3204
  var _a7, _b7, _c;
3125
3205
  const hmsActions = useHMSActions6();
3126
3206
  const toggleSidepane = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);
@@ -3142,7 +3222,7 @@ var HandRaiseAction = React23.forwardRef(({ id = "", isSingleHandRaise = true },
3142
3222
  if (isSingleHandRaise && (!peer || !off_stage_roles.includes(peer.roleName))) {
3143
3223
  return null;
3144
3224
  }
3145
- return /* @__PURE__ */ React23.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: onClickHandler, ref }, isSingleHandRaise ? bring_to_stage_label : "View");
3225
+ return /* @__PURE__ */ React25.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: onClickHandler, ref }, isSingleHandRaise ? bring_to_stage_label : "View");
3146
3226
  });
3147
3227
  var ToastConfig = {
3148
3228
  PEER_LIST: {
@@ -3151,18 +3231,18 @@ var ToastConfig = {
3151
3231
  if (notification.data.length === 1) {
3152
3232
  return {
3153
3233
  title: `${(_a7 = notification.data[0]) == null ? void 0 : _a7.name} joined`,
3154
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3234
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3155
3235
  };
3156
3236
  }
3157
3237
  return {
3158
3238
  title: `${(_b7 = notification.data[notification.data.length - 1]) == null ? void 0 : _b7.name} and ${notification.data.length - 1} others joined`,
3159
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3239
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3160
3240
  };
3161
3241
  },
3162
3242
  multiple: (notifications) => {
3163
3243
  return {
3164
3244
  title: `${notifications[0].data.name} and ${notifications.length - 1} others joined`,
3165
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3245
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3166
3246
  };
3167
3247
  }
3168
3248
  },
@@ -3171,13 +3251,13 @@ var ToastConfig = {
3171
3251
  var _a7;
3172
3252
  return {
3173
3253
  title: `${(_a7 = notification.data) == null ? void 0 : _a7.name} joined`,
3174
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3254
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3175
3255
  };
3176
3256
  },
3177
3257
  multiple: function(notifications) {
3178
3258
  return {
3179
3259
  title: `${notifications[notifications.length - 1].data.name} and ${notifications.length - 1} others joined`,
3180
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3260
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3181
3261
  };
3182
3262
  }
3183
3263
  },
@@ -3186,13 +3266,13 @@ var ToastConfig = {
3186
3266
  var _a7;
3187
3267
  return {
3188
3268
  title: `${(_a7 = notification.data) == null ? void 0 : _a7.name} left`,
3189
- icon: /* @__PURE__ */ React23.createElement(PeopleRemoveIcon, null)
3269
+ icon: /* @__PURE__ */ React25.createElement(PeopleRemoveIcon, null)
3190
3270
  };
3191
3271
  },
3192
3272
  multiple: function(notifications) {
3193
3273
  return {
3194
3274
  title: `${notifications[notifications.length - 1].data.name} and ${notifications.length - 1} others left`,
3195
- icon: /* @__PURE__ */ React23.createElement(PeopleRemoveIcon, null)
3275
+ icon: /* @__PURE__ */ React25.createElement(PeopleRemoveIcon, null)
3196
3276
  };
3197
3277
  }
3198
3278
  },
@@ -3201,8 +3281,8 @@ var ToastConfig = {
3201
3281
  var _a7, _b7;
3202
3282
  return {
3203
3283
  title: `${(_a7 = notification.data) == null ? void 0 : _a7.name} raised hand`,
3204
- icon: /* @__PURE__ */ React23.createElement(HandIcon, null),
3205
- action: /* @__PURE__ */ React23.createElement(HandRaiseAction, { id: (_b7 = notification.data) == null ? void 0 : _b7.id })
3284
+ icon: /* @__PURE__ */ React25.createElement(HandIcon, null),
3285
+ action: /* @__PURE__ */ React25.createElement(HandRaiseAction, { id: (_b7 = notification.data) == null ? void 0 : _b7.id })
3206
3286
  };
3207
3287
  },
3208
3288
  multiple: (notifications) => {
@@ -3213,8 +3293,8 @@ var ToastConfig = {
3213
3293
  })).size;
3214
3294
  return {
3215
3295
  title: `${(_a7 = notifications[notifications.length - 1].data) == null ? void 0 : _a7.name} ${count > 1 ? `${count} and others` : ""} raised hand`,
3216
- icon: /* @__PURE__ */ React23.createElement(HandIcon, null),
3217
- action: /* @__PURE__ */ React23.createElement(HandRaiseAction, { isSingleHandRaise: false })
3296
+ icon: /* @__PURE__ */ React25.createElement(HandIcon, null),
3297
+ action: /* @__PURE__ */ React25.createElement(HandRaiseAction, { isSingleHandRaise: false })
3218
3298
  };
3219
3299
  }
3220
3300
  },
@@ -3223,15 +3303,15 @@ var ToastConfig = {
3223
3303
  var _a7;
3224
3304
  return {
3225
3305
  title: `New message from ${(_a7 = notification.data) == null ? void 0 : _a7.senderName}`,
3226
- icon: /* @__PURE__ */ React23.createElement(ChatUnreadIcon, null),
3227
- action: /* @__PURE__ */ React23.createElement(ChatAction, null)
3306
+ icon: /* @__PURE__ */ React25.createElement(ChatUnreadIcon, null),
3307
+ action: /* @__PURE__ */ React25.createElement(ChatAction, null)
3228
3308
  };
3229
3309
  },
3230
3310
  multiple: (notifications) => {
3231
3311
  return {
3232
3312
  title: `${notifications.length} new messages`,
3233
- icon: /* @__PURE__ */ React23.createElement(ChatUnreadIcon, null),
3234
- action: /* @__PURE__ */ React23.createElement(ChatAction, null)
3313
+ icon: /* @__PURE__ */ React25.createElement(ChatUnreadIcon, null),
3314
+ action: /* @__PURE__ */ React25.createElement(ChatAction, null)
3235
3315
  };
3236
3316
  }
3237
3317
  },
@@ -3239,7 +3319,7 @@ var ToastConfig = {
3239
3319
  single: () => {
3240
3320
  return {
3241
3321
  title: `You are now connected`,
3242
- icon: /* @__PURE__ */ React23.createElement(ConnectivityIcon, null),
3322
+ icon: /* @__PURE__ */ React25.createElement(ConnectivityIcon, null),
3243
3323
  variant: "success",
3244
3324
  duration: 3e3
3245
3325
  };
@@ -3251,7 +3331,7 @@ var ToastConfig = {
3251
3331
  title: `You are offline for now. while we try to reconnect, please check
3252
3332
  your internet connection. ${message}.
3253
3333
  `,
3254
- icon: /* @__PURE__ */ React23.createElement(PoorConnectivityIcon, null),
3334
+ icon: /* @__PURE__ */ React25.createElement(PoorConnectivityIcon, null),
3255
3335
  variant: "warning",
3256
3336
  duration: 3e4
3257
3337
  };
@@ -3356,11 +3436,11 @@ var ToastBatcher = {
3356
3436
  ToastManager.addListener(ToastBatcher.syncUItoast.bind(ToastBatcher));
3357
3437
 
3358
3438
  // src/Prebuilt/components/Notifications/AutoplayBlockedModal.jsx
3359
- import React24 from "react";
3439
+ import React26 from "react";
3360
3440
  import { useAutoplayError } from "@100mslive/react-sdk";
3361
3441
  function AutoplayBlockedModal() {
3362
3442
  const { error, resetError, unblockAudio } = useAutoplayError();
3363
- return /* @__PURE__ */ React24.createElement(
3443
+ return /* @__PURE__ */ React26.createElement(
3364
3444
  Dialog.Root,
3365
3445
  {
3366
3446
  open: !!error,
@@ -3371,7 +3451,7 @@ function AutoplayBlockedModal() {
3371
3451
  resetError();
3372
3452
  }
3373
3453
  },
3374
- /* @__PURE__ */ React24.createElement(DialogContent, { title: "Permission Error", closeable: false }, /* @__PURE__ */ React24.createElement(DialogRow, null, /* @__PURE__ */ React24.createElement(Text, { variant: "md" }, "The browser wants us to get a confirmation for playing the Audio. Please allow audio to proceed.")), /* @__PURE__ */ React24.createElement(DialogRow, { justify: "end" }, /* @__PURE__ */ React24.createElement(
3454
+ /* @__PURE__ */ React26.createElement(DialogContent, { title: "Permission Error", closeable: false }, /* @__PURE__ */ React26.createElement(DialogRow, null, /* @__PURE__ */ React26.createElement(Text, { variant: "md" }, "The browser wants us to get a confirmation for playing the Audio. Please allow audio to proceed.")), /* @__PURE__ */ React26.createElement(DialogRow, { justify: "end" }, /* @__PURE__ */ React26.createElement(
3375
3455
  Button,
3376
3456
  {
3377
3457
  variant: "primary",
@@ -3386,11 +3466,11 @@ function AutoplayBlockedModal() {
3386
3466
  }
3387
3467
 
3388
3468
  // src/Prebuilt/components/Notifications/InitErrorModal.jsx
3389
- import React25, { useEffect as useEffect9, useState as useState6 } from "react";
3469
+ import React27, { useEffect as useEffect10, useState as useState6 } from "react";
3390
3470
  var InitErrorModal = ({ notification }) => {
3391
3471
  const [showModal, setShowModal] = useState6(false);
3392
3472
  const [info, setInfo] = useState6({ title: "Init Error", description: "" });
3393
- useEffect9(() => {
3473
+ useEffect10(() => {
3394
3474
  const data = notification == null ? void 0 : notification.data;
3395
3475
  if (!data || data.action !== "INIT") {
3396
3476
  return;
@@ -3410,11 +3490,11 @@ var InitErrorModal = ({ notification }) => {
3410
3490
  setInfo({ title, description });
3411
3491
  setShowModal(true);
3412
3492
  }, [notification]);
3413
- return /* @__PURE__ */ React25.createElement(ErrorDialog, { open: showModal, onOpenChange: setShowModal, title: info.title }, /* @__PURE__ */ React25.createElement(Text, { variant: "sm", css: { wordBreak: "break-word" } }, info.description, " ", /* @__PURE__ */ React25.createElement("br", null), "Current URL - ", window.location.href));
3493
+ return /* @__PURE__ */ React27.createElement(ErrorDialog, { open: showModal, onOpenChange: setShowModal, title: info.title }, /* @__PURE__ */ React27.createElement(Text, { variant: "sm", css: { wordBreak: "break-word" } }, info.description, " ", /* @__PURE__ */ React27.createElement("br", null), "Current URL - ", window.location.href));
3414
3494
  };
3415
3495
 
3416
3496
  // src/Prebuilt/components/Notifications/PeerNotifications.jsx
3417
- import { useEffect as useEffect10 } from "react";
3497
+ import { useEffect as useEffect11 } from "react";
3418
3498
  import { HMSNotificationTypes, useHMSNotifications } from "@100mslive/react-sdk";
3419
3499
  var notificationTypes = [
3420
3500
  HMSNotificationTypes.PEER_LIST,
@@ -3425,7 +3505,7 @@ var PeerNotifications = () => {
3425
3505
  const notification = useHMSNotifications(notificationTypes);
3426
3506
  const isPeerJoinSubscribed = useSubscribedNotifications(SUBSCRIBED_NOTIFICATIONS.PEER_JOINED);
3427
3507
  const isPeerLeftSubscribed = useSubscribedNotifications(SUBSCRIBED_NOTIFICATIONS.PEER_LEFT);
3428
- useEffect10(() => {
3508
+ useEffect11(() => {
3429
3509
  if (!(notification == null ? void 0 : notification.data)) {
3430
3510
  return;
3431
3511
  }
@@ -3455,7 +3535,7 @@ var PeerNotifications = () => {
3455
3535
  };
3456
3536
 
3457
3537
  // src/Prebuilt/components/Notifications/PermissionErrorModal.jsx
3458
- import React26, { useEffect as useEffect11, useState as useState7 } from "react";
3538
+ import React28, { useEffect as useEffect12, useState as useState7 } from "react";
3459
3539
  import { useMedia } from "react-use";
3460
3540
  import { HMSNotificationTypes as HMSNotificationTypes2, useHMSNotifications as useHMSNotifications2 } from "@100mslive/react-sdk";
3461
3541
 
@@ -3471,7 +3551,7 @@ function PermissionErrorModal() {
3471
3551
  const [deviceType, setDeviceType] = useState7("");
3472
3552
  const [isSystemError, setIsSystemError] = useState7(false);
3473
3553
  const isMobile = useMedia(config.media.md);
3474
- useEffect11(() => {
3554
+ useEffect12(() => {
3475
3555
  var _a7, _b7, _c, _d, _e;
3476
3556
  if (!notification || ((_a7 = notification.data) == null ? void 0 : _a7.code) !== 3001 && ((_b7 = notification.data) == null ? void 0 : _b7.code) !== 3011 || ((_c = notification.data) == null ? void 0 : _c.code) === 3001 && ((_d = notification.data) == null ? void 0 : _d.message.includes("screen"))) {
3477
3557
  return;
@@ -3492,15 +3572,15 @@ function PermissionErrorModal() {
3492
3572
  }
3493
3573
  setIsSystemError(notification.data.code === 3011);
3494
3574
  }, [notification]);
3495
- return deviceType ? /* @__PURE__ */ React26.createElement(Dialog.Root, { open: !!deviceType }, /* @__PURE__ */ React26.createElement(Dialog.Portal, null, /* @__PURE__ */ React26.createElement(Dialog.Overlay, null), /* @__PURE__ */ React26.createElement(Dialog.Content, { css: { w: "min(380px, 90%)", p: "$8" } }, /* @__PURE__ */ React26.createElement(
3575
+ return deviceType ? /* @__PURE__ */ React28.createElement(Dialog.Root, { open: !!deviceType }, /* @__PURE__ */ React28.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React28.createElement(Dialog.Overlay, null), /* @__PURE__ */ React28.createElement(Dialog.Content, { css: { w: "min(380px, 90%)", p: "$8" } }, /* @__PURE__ */ React28.createElement(
3496
3576
  Dialog.Title,
3497
3577
  {
3498
3578
  css: {
3499
3579
  borderBottom: "1px solid $border_default"
3500
3580
  }
3501
3581
  },
3502
- isMobile && isIOS ? /* @__PURE__ */ React26.createElement("img", { style: { maxWidth: "100%", maxHeight: "100%" }, src: ios_perm_0_default, alt: "iOS Permission flow" }) : null,
3503
- isMobile && isAndroid ? /* @__PURE__ */ React26.createElement(
3582
+ isMobile && isIOS ? /* @__PURE__ */ React28.createElement("img", { style: { maxWidth: "100%", maxHeight: "100%" }, src: ios_perm_0_default, alt: "iOS Permission flow" }) : null,
3583
+ isMobile && isAndroid ? /* @__PURE__ */ React28.createElement(
3504
3584
  "img",
3505
3585
  {
3506
3586
  src: android_perm_1_default,
@@ -3508,12 +3588,12 @@ function PermissionErrorModal() {
3508
3588
  alt: "Android Permission flow "
3509
3589
  }
3510
3590
  ) : null,
3511
- /* @__PURE__ */ React26.createElement(Text, { variant: "h6" }, "We can't access your ", deviceType)
3512
- ), /* @__PURE__ */ React26.createElement(Text, { variant: "sm", css: { pt: "$4", pb: "$10", color: "$on_surface_medium" } }, isMobile && isIOS ? 'Enable permissions by reloading this page and clicking "Allow" on the pop-up, or change settings from the address bar.' : null, isMobile && isAndroid ? `To allow other users to see and hear you, click the blocked camera icon in your browser's address bar.` : null, !isMobile ? `Access to ${deviceType} is required. ` : null, isSystemError && !isMobile ? `Enable permissions for ${deviceType}${deviceType === "screen" ? "share" : ""} from sytem settings` : null, !isSystemError && !isMobile ? `Enable permissions for ${deviceType}${deviceType === "screen" ? "share" : ""} from address bar or browser settings.` : null), isMobile && isIOS ? /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Button, { onClick: () => window.location.reload(), css: { w: "100%", mb: "$6" } }, "Reload"), /* @__PURE__ */ React26.createElement(Button, { outlined: true, variant: "standard", onClick: () => setDeviceType(""), css: { w: "100%" } }, "Continue anyway")) : null, isMobile && isAndroid ? /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Button, { onClick: () => setDeviceType(""), css: { w: "100%", mb: "$6" } }, "I've allowed access"), /* @__PURE__ */ React26.createElement(Button, { outlined: true, variant: "standard", onClick: () => setDeviceType(""), css: { w: "100%" } }, "Continue anyway")) : null, !isMobile ? /* @__PURE__ */ React26.createElement(Flex, { justify: "end", css: { w: "100%" } }, /* @__PURE__ */ React26.createElement(Button, { outlined: true, variant: "standard", onClick: () => setDeviceType("") }, "Dismiss")) : null))) : null;
3591
+ /* @__PURE__ */ React28.createElement(Text, { variant: "h6" }, "We can't access your ", deviceType)
3592
+ ), /* @__PURE__ */ React28.createElement(Text, { variant: "sm", css: { pt: "$4", pb: "$10", color: "$on_surface_medium" } }, isMobile && isIOS ? 'Enable permissions by reloading this page and clicking "Allow" on the pop-up, or change settings from the address bar.' : null, isMobile && isAndroid ? `To allow other users to see and hear you, click the blocked camera icon in your browser's address bar.` : null, !isMobile ? `Access to ${deviceType} is required. ` : null, isSystemError && !isMobile ? `Enable permissions for ${deviceType}${deviceType === "screen" ? "share" : ""} from sytem settings` : null, !isSystemError && !isMobile ? `Enable permissions for ${deviceType}${deviceType === "screen" ? "share" : ""} from address bar or browser settings.` : null), isMobile && isIOS ? /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(Button, { onClick: () => window.location.reload(), css: { w: "100%", mb: "$6" } }, "Reload"), /* @__PURE__ */ React28.createElement(Button, { outlined: true, variant: "standard", onClick: () => setDeviceType(""), css: { w: "100%" } }, "Continue anyway")) : null, isMobile && isAndroid ? /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(Button, { onClick: () => setDeviceType(""), css: { w: "100%", mb: "$6" } }, "I've allowed access"), /* @__PURE__ */ React28.createElement(Button, { outlined: true, variant: "standard", onClick: () => setDeviceType(""), css: { w: "100%" } }, "Continue anyway")) : null, !isMobile ? /* @__PURE__ */ React28.createElement(Flex, { justify: "end", css: { w: "100%" } }, /* @__PURE__ */ React28.createElement(Button, { outlined: true, variant: "standard", onClick: () => setDeviceType("") }, "Dismiss")) : null))) : null;
3513
3593
  }
3514
3594
 
3515
3595
  // src/Prebuilt/components/Notifications/ReconnectNotifications.jsx
3516
- import React27, { useEffect as useEffect12, useState as useState8 } from "react";
3596
+ import React29, { useEffect as useEffect13, useState as useState8 } from "react";
3517
3597
  import { HMSNotificationTypes as HMSNotificationTypes3, useHMSNotifications as useHMSNotifications3 } from "@100mslive/react-sdk";
3518
3598
  var notificationTypes2 = [
3519
3599
  HMSNotificationTypes3.RECONNECTED,
@@ -3524,7 +3604,7 @@ var notificationId = null;
3524
3604
  var ReconnectNotifications = () => {
3525
3605
  const notification = useHMSNotifications3(notificationTypes2);
3526
3606
  const [open, setOpen] = useState8(false);
3527
- useEffect12(() => {
3607
+ useEffect13(() => {
3528
3608
  var _a7;
3529
3609
  if ((notification == null ? void 0 : notification.type) === HMSNotificationTypes3.ERROR && ((_a7 = notification == null ? void 0 : notification.data) == null ? void 0 : _a7.isTerminal)) {
3530
3610
  setOpen(false);
@@ -3540,7 +3620,7 @@ var ReconnectNotifications = () => {
3540
3620
  }, [notification]);
3541
3621
  if (!open)
3542
3622
  return null;
3543
- return /* @__PURE__ */ React27.createElement(Dialog.Root, { open, modal: true }, /* @__PURE__ */ React27.createElement(Dialog.Portal, { container: document.getElementById("conferencing") }, /* @__PURE__ */ React27.createElement(Dialog.Overlay, null), /* @__PURE__ */ React27.createElement(
3623
+ return /* @__PURE__ */ React29.createElement(Dialog.Root, { open, modal: true }, /* @__PURE__ */ React29.createElement(Dialog.Portal, { container: document.getElementById("conferencing") }, /* @__PURE__ */ React29.createElement(Dialog.Overlay, null), /* @__PURE__ */ React29.createElement(
3544
3624
  Dialog.Content,
3545
3625
  {
3546
3626
  css: {
@@ -3554,12 +3634,12 @@ var ReconnectNotifications = () => {
3554
3634
  animation: "none !important"
3555
3635
  }
3556
3636
  },
3557
- /* @__PURE__ */ React27.createElement(Flex, { align: "center" }, /* @__PURE__ */ React27.createElement("div", { style: { display: "inline", margin: "0.25rem" } }, /* @__PURE__ */ React27.createElement(Loading, { size: 16 })), /* @__PURE__ */ React27.createElement(Text, { css: { fontSize: "$space$8", color: "$on_surface_high" } }, "You lost your network connection. Trying to reconnect."))
3637
+ /* @__PURE__ */ React29.createElement(Flex, { align: "center" }, /* @__PURE__ */ React29.createElement("div", { style: { display: "inline", margin: "0.25rem" } }, /* @__PURE__ */ React29.createElement(Loading, { size: 16 })), /* @__PURE__ */ React29.createElement(Text, { css: { fontSize: "$space$8", color: "$on_surface_high" } }, "You lost your network connection. Trying to reconnect."))
3558
3638
  )));
3559
3639
  };
3560
3640
 
3561
3641
  // src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.jsx
3562
- import React28, { useEffect as useEffect13, useState as useState9 } from "react";
3642
+ import React30, { useEffect as useEffect14, useState as useState9 } from "react";
3563
3643
  import { HMSNotificationTypes as HMSNotificationTypes4, useHMSActions as useHMSActions7, useHMSNotifications as useHMSNotifications4 } from "@100mslive/react-sdk";
3564
3644
  import { MicOnIcon } from "@100mslive/react-icons";
3565
3645
  var TrackBulkUnmuteModal = () => {
@@ -3570,7 +3650,7 @@ var TrackBulkUnmuteModal = () => {
3570
3650
  HMSNotificationTypes4.ROOM_ENDED,
3571
3651
  HMSNotificationTypes4.REMOVED_FROM_ROOM
3572
3652
  ]);
3573
- useEffect13(() => {
3653
+ useEffect14(() => {
3574
3654
  switch (notification == null ? void 0 : notification.type) {
3575
3655
  case HMSNotificationTypes4.REMOVED_FROM_ROOM:
3576
3656
  case HMSNotificationTypes4.ROOM_ENDED:
@@ -3589,7 +3669,7 @@ var TrackBulkUnmuteModal = () => {
3589
3669
  return null;
3590
3670
  }
3591
3671
  const { requestedBy: peer, tracks, enabled } = muteNotification;
3592
- return /* @__PURE__ */ React28.createElement(
3672
+ return /* @__PURE__ */ React30.createElement(
3593
3673
  RequestDialog,
3594
3674
  {
3595
3675
  title: "Track Unmute Request",
@@ -3607,7 +3687,7 @@ var TrackBulkUnmuteModal = () => {
3607
3687
  };
3608
3688
 
3609
3689
  // src/Prebuilt/components/Notifications/TrackNotifications.jsx
3610
- import { useEffect as useEffect14 } from "react";
3690
+ import { useEffect as useEffect15 } from "react";
3611
3691
  import { HMSNotificationTypes as HMSNotificationTypes5, useHMSNotifications as useHMSNotifications5 } from "@100mslive/react-sdk";
3612
3692
  var notificationTypes3 = [
3613
3693
  HMSNotificationTypes5.TRACK_ADDED,
@@ -3617,7 +3697,7 @@ var notificationTypes3 = [
3617
3697
  ];
3618
3698
  var TrackNotifications = () => {
3619
3699
  const notification = useHMSNotifications5(notificationTypes3);
3620
- useEffect14(() => {
3700
+ useEffect15(() => {
3621
3701
  if (notification) {
3622
3702
  console.debug(`[${notification.type}]`, notification);
3623
3703
  }
@@ -3626,7 +3706,7 @@ var TrackNotifications = () => {
3626
3706
  };
3627
3707
 
3628
3708
  // src/Prebuilt/components/Notifications/TrackUnmuteModal.jsx
3629
- import React29, { useEffect as useEffect15, useState as useState10 } from "react";
3709
+ import React31, { useEffect as useEffect16, useState as useState10 } from "react";
3630
3710
  import { HMSNotificationTypes as HMSNotificationTypes6, useHMSActions as useHMSActions8, useHMSNotifications as useHMSNotifications6 } from "@100mslive/react-sdk";
3631
3711
  import { MicOnIcon as MicOnIcon2 } from "@100mslive/react-icons";
3632
3712
  var TrackUnmuteModal = () => {
@@ -3637,7 +3717,7 @@ var TrackUnmuteModal = () => {
3637
3717
  HMSNotificationTypes6.REMOVED_FROM_ROOM
3638
3718
  ]);
3639
3719
  const [muteNotification, setMuteNotification] = useState10(null);
3640
- useEffect15(() => {
3720
+ useEffect16(() => {
3641
3721
  switch (notification == null ? void 0 : notification.type) {
3642
3722
  case HMSNotificationTypes6.REMOVED_FROM_ROOM:
3643
3723
  case HMSNotificationTypes6.ROOM_ENDED:
@@ -3656,7 +3736,7 @@ var TrackUnmuteModal = () => {
3656
3736
  return null;
3657
3737
  }
3658
3738
  const { requestedBy: peer, track, enabled } = muteNotification;
3659
- return /* @__PURE__ */ React29.createElement(
3739
+ return /* @__PURE__ */ React31.createElement(
3660
3740
  RequestDialog,
3661
3741
  {
3662
3742
  title: "Track Unmute Request",
@@ -4176,7 +4256,7 @@ function Notifications() {
4176
4256
  const updateRoomLayoutForRole = useUpdateRoomLayout();
4177
4257
  const isNotificationDisabled = useIsNotificationDisabled();
4178
4258
  const { redirectToLeave } = useRedirectToLeave();
4179
- const vanillaStore = useHMSVanillaStore4();
4259
+ const vanillaStore = useHMSVanillaStore5();
4180
4260
  const handleRoleChangeDenied = useCallback8((request) => {
4181
4261
  ToastManager.addToast({
4182
4262
  title: `${request.peerName} denied your request to join the ${request.role.name} role`,
@@ -4184,7 +4264,7 @@ function Notifications() {
4184
4264
  });
4185
4265
  }, []);
4186
4266
  useCustomEvent({ type: ROLE_CHANGE_DECLINED, onEvent: handleRoleChangeDenied });
4187
- useEffect16(() => {
4267
+ useEffect17(() => {
4188
4268
  var _a7, _b7, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
4189
4269
  if (!notification || isNotificationDisabled) {
4190
4270
  return;
@@ -4225,7 +4305,7 @@ function Notifications() {
4225
4305
  const toastId = ToastManager.addToast({
4226
4306
  title: ((_f = notification.data) == null ? void 0 : _f.message) || "We couldn\u2019t reconnect you. When you\u2019re back online, try joining the room.",
4227
4307
  inlineAction: true,
4228
- action: /* @__PURE__ */ React30.createElement(
4308
+ action: /* @__PURE__ */ React32.createElement(
4229
4309
  Button,
4230
4310
  {
4231
4311
  onClick: () => {
@@ -4291,35 +4371,35 @@ function Notifications() {
4291
4371
  if (isNotificationDisabled) {
4292
4372
  return null;
4293
4373
  }
4294
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(TrackUnmuteModal, null), /* @__PURE__ */ React30.createElement(TrackBulkUnmuteModal, null), /* @__PURE__ */ React30.createElement(TrackNotifications, null), roomState === HMSRoomState2.Connected ? /* @__PURE__ */ React30.createElement(PeerNotifications, null) : null, /* @__PURE__ */ React30.createElement(ReconnectNotifications, null), /* @__PURE__ */ React30.createElement(AutoplayBlockedModal, null), /* @__PURE__ */ React30.createElement(PermissionErrorModal, null), /* @__PURE__ */ React30.createElement(InitErrorModal, { notification }));
4374
+ return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(TrackUnmuteModal, null), /* @__PURE__ */ React32.createElement(TrackBulkUnmuteModal, null), /* @__PURE__ */ React32.createElement(TrackNotifications, null), roomState === HMSRoomState2.Connected ? /* @__PURE__ */ React32.createElement(PeerNotifications, null) : null, /* @__PURE__ */ React32.createElement(ReconnectNotifications, null), /* @__PURE__ */ React32.createElement(AutoplayBlockedModal, null), /* @__PURE__ */ React32.createElement(PermissionErrorModal, null), /* @__PURE__ */ React32.createElement(InitErrorModal, { notification }));
4295
4375
  }
4296
4376
 
4297
4377
  // src/Prebuilt/components/PostLeave.jsx
4298
- import React37 from "react";
4378
+ import React39 from "react";
4299
4379
  import { useNavigate as useNavigate3, useParams as useParams3 } from "react-router-dom";
4300
4380
  import { ExitIcon } from "@100mslive/react-icons";
4301
4381
 
4302
4382
  // src/Prebuilt/components/Header/Header.tsx
4303
- import React36 from "react";
4383
+ import React38 from "react";
4304
4384
  import { useMedia as useMedia3 } from "react-use";
4305
4385
  import { HMSRoomState as HMSRoomState4, selectRoomState as selectRoomState4, useHMSStore as useHMSStore16 } from "@100mslive/react-sdk";
4306
4386
 
4307
4387
  // src/Prebuilt/components/Header/HeaderComponents.jsx
4308
- import React31, { useEffect as useEffect17, useState as useState11 } from "react";
4388
+ import React33, { useEffect as useEffect18, useState as useState11 } from "react";
4309
4389
  import { selectDominantSpeaker, useHMSStore as useHMSStore8 } from "@100mslive/react-sdk";
4310
4390
  import { VolumeOneIcon } from "@100mslive/react-icons";
4311
4391
  var SpeakerTag = () => {
4312
4392
  const dominantSpeaker = useHMSStore8(selectDominantSpeaker);
4313
- return dominantSpeaker && dominantSpeaker.name && /* @__PURE__ */ React31.createElement(
4393
+ return dominantSpeaker && dominantSpeaker.name && /* @__PURE__ */ React33.createElement(
4314
4394
  Flex,
4315
4395
  {
4316
4396
  align: "center",
4317
4397
  justify: "center",
4318
4398
  css: { flex: "1 1 0", color: "$on_primary_high", "@md": { display: "none" } }
4319
4399
  },
4320
- /* @__PURE__ */ React31.createElement(VerticalDivider, { css: { ml: "$8" } }),
4321
- /* @__PURE__ */ React31.createElement(VolumeOneIcon, null),
4322
- /* @__PURE__ */ React31.createElement(Text, { variant: "md", css: __spreadProps(__spreadValues({}, textEllipsis(200)), { ml: "$2" }), title: dominantSpeaker.name }, dominantSpeaker.name)
4400
+ /* @__PURE__ */ React33.createElement(VerticalDivider, { css: { ml: "$8" } }),
4401
+ /* @__PURE__ */ React33.createElement(VolumeOneIcon, null),
4402
+ /* @__PURE__ */ React33.createElement(Text, { variant: "md", css: __spreadProps(__spreadValues({}, textEllipsis(200)), { ml: "$2" }), title: dominantSpeaker.name }, dominantSpeaker.name)
4323
4403
  );
4324
4404
  };
4325
4405
  var LogoImg = styled("img", {
@@ -4335,12 +4415,12 @@ var Logo = () => {
4335
4415
  const roomLayout = useRoomLayout();
4336
4416
  const logo = (_a7 = roomLayout == null ? void 0 : roomLayout.logo) == null ? void 0 : _a7.url;
4337
4417
  const [hideImage, setHideImage] = useState11(false);
4338
- useEffect17(() => {
4418
+ useEffect18(() => {
4339
4419
  if (hideImage) {
4340
4420
  setHideImage(false);
4341
4421
  }
4342
4422
  }, [logo]);
4343
- return logo && !hideImage ? /* @__PURE__ */ React31.createElement(
4423
+ return logo && !hideImage ? /* @__PURE__ */ React33.createElement(
4344
4424
  LogoImg,
4345
4425
  {
4346
4426
  src: logo,
@@ -4354,7 +4434,7 @@ var Logo = () => {
4354
4434
  };
4355
4435
 
4356
4436
  // src/Prebuilt/components/Header/StreamActions.tsx
4357
- import React34, { useCallback as useCallback13, useEffect as useEffect19, useRef as useRef5, useState as useState13 } from "react";
4437
+ import React36, { useCallback as useCallback13, useEffect as useEffect20, useRef as useRef6, useState as useState13 } from "react";
4358
4438
  import { useMedia as useMedia2 } from "react-use";
4359
4439
  import {
4360
4440
  HMSRoomState as HMSRoomState3,
@@ -4369,7 +4449,7 @@ import {
4369
4449
  import { AlertTriangleIcon, CrossIcon as CrossIcon4, RecordIcon } from "@100mslive/react-icons";
4370
4450
 
4371
4451
  // src/Sheet/Sheet.tsx
4372
- import React32 from "react";
4452
+ import React34 from "react";
4373
4453
  import * as DialogPrimitive2 from "@radix-ui/react-dialog";
4374
4454
  var SheetRoot = styled(DialogPrimitive2.Root, {
4375
4455
  minHeight: "240px",
@@ -4443,10 +4523,10 @@ var StyledContent6 = styled(DialogPrimitive2.Content, {
4443
4523
  side: "bottom"
4444
4524
  }
4445
4525
  });
4446
- var SheetContent = React32.forwardRef(
4526
+ var SheetContent = React34.forwardRef(
4447
4527
  (_a7, forwardedRef) => {
4448
4528
  var _b7 = _a7, { children } = _b7, props = __objRest(_b7, ["children"]);
4449
- return /* @__PURE__ */ React32.createElement(Dialog.Portal, null, /* @__PURE__ */ React32.createElement(StyledOverlay, null), /* @__PURE__ */ React32.createElement(StyledContent6, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), children));
4529
+ return /* @__PURE__ */ React34.createElement(Dialog.Portal, null, /* @__PURE__ */ React34.createElement(StyledOverlay, null), /* @__PURE__ */ React34.createElement(StyledContent6, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), children));
4450
4530
  }
4451
4531
  );
4452
4532
  var SheetClose = Dialog.Close;
@@ -4466,7 +4546,7 @@ var Sheet = {
4466
4546
  };
4467
4547
 
4468
4548
  // src/Prebuilt/components/Header/AdditionalRoomState.jsx
4469
- import React33, { useState as useState12 } from "react";
4549
+ import React35, { useState as useState12 } from "react";
4470
4550
  import { selectLocalPeerID as selectLocalPeerID3, selectPeerSharingVideoPlaylist, useHMSStore as useHMSStore13, useScreenShare } from "@100mslive/react-sdk";
4471
4551
  import {
4472
4552
  AudioPlayerIcon,
@@ -4479,7 +4559,7 @@ import {
4479
4559
  } from "@100mslive/react-icons";
4480
4560
 
4481
4561
  // src/Prebuilt/plugins/whiteboard/useWhiteboardMetadata.js
4482
- import { useCallback as useCallback10, useEffect as useEffect18, useMemo as useMemo2 } from "react";
4562
+ import { useCallback as useCallback10, useEffect as useEffect19, useMemo as useMemo2 } from "react";
4483
4563
  import { selectLocalPeerID as selectLocalPeerID2, selectPeerByCondition, useHMSStore as useHMSStore10 } from "@100mslive/react-sdk";
4484
4564
 
4485
4565
  // src/Prebuilt/components/hooks/useMetadata.jsx
@@ -4490,12 +4570,12 @@ import {
4490
4570
  selectPeerMetadata,
4491
4571
  useHMSActions as useHMSActions9,
4492
4572
  useHMSStore as useHMSStore9,
4493
- useHMSVanillaStore as useHMSVanillaStore5
4573
+ useHMSVanillaStore as useHMSVanillaStore6
4494
4574
  } from "@100mslive/react-sdk";
4495
4575
  var useMyMetadata = () => {
4496
4576
  const hmsActions = useHMSActions9();
4497
4577
  const localPeerId = useHMSStore9(selectLocalPeerID);
4498
- const vanillaStore = useHMSVanillaStore5();
4578
+ const vanillaStore = useHMSVanillaStore6();
4499
4579
  const metaData = useHMSStore9(selectPeerMetadata(localPeerId));
4500
4580
  const isHandRaised = useHMSStore9(selectHasPeerHandRaised2(localPeerId));
4501
4581
  const update = (updatedFields) => __async(void 0, null, function* () {
@@ -4512,11 +4592,12 @@ var useMyMetadata = () => {
4512
4592
  yield hmsActions.lowerLocalPeerHand();
4513
4593
  } else {
4514
4594
  yield hmsActions.raiseLocalPeerHand();
4595
+ yield update({ isBRBOn: false });
4515
4596
  }
4516
4597
  }), [isHandRaised]);
4517
4598
  const toggleBRB = useCallback9(() => __async(void 0, null, function* () {
4518
4599
  const newValue = !(metaData == null ? void 0 : metaData.isBRBOn);
4519
- yield update({ isBRBOn: !(metaData == null ? void 0 : metaData.isBRBOn) });
4600
+ yield update({ isBRBOn: newValue });
4520
4601
  if (newValue) {
4521
4602
  yield hmsActions.lowerLocalPeerHand();
4522
4603
  }
@@ -4560,7 +4641,7 @@ var useWhiteboardMetadata = () => {
4560
4641
  console.error("failed to toggle whiteboard to ", !whiteboardOwner, error);
4561
4642
  }
4562
4643
  }), [whiteboardOwner, updateMetaData, amIWhiteboardOwner]);
4563
- useEffect18(() => {
4644
+ useEffect19(() => {
4564
4645
  window.toggleWhiteboard = toggleWhiteboard;
4565
4646
  }, [toggleWhiteboard]);
4566
4647
  return {
@@ -4674,7 +4755,7 @@ var AdditionalRoomState = () => {
4674
4755
  if (isPlaylistInactive && isAudioshareInactive && !shouldShowScreenShareState && !shouldShowVideoState && !whiteboardOwner) {
4675
4756
  return null;
4676
4757
  }
4677
- return /* @__PURE__ */ React33.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React33.createElement(Dropdown.Trigger, { asChild: true }, /* @__PURE__ */ React33.createElement(
4758
+ return /* @__PURE__ */ React35.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React35.createElement(Dropdown.Trigger, { asChild: true }, /* @__PURE__ */ React35.createElement(
4678
4759
  Flex,
4679
4760
  {
4680
4761
  align: "center",
@@ -4687,13 +4768,13 @@ var AdditionalRoomState = () => {
4687
4768
  },
4688
4769
  "data-testid": "record_status_dropdown"
4689
4770
  },
4690
- !isAudioshareInactive && /* @__PURE__ */ React33.createElement(Tooltip, { title: "Screenshare Audio" }, /* @__PURE__ */ React33.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React33.createElement(MusicIcon, { width: 24, height: 24 }))),
4691
- shouldShowScreenShareState && /* @__PURE__ */ React33.createElement(Tooltip, { title: "Screenshare" }, /* @__PURE__ */ React33.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React33.createElement(ShareScreenIcon, { width: 24, height: 24 }))),
4692
- shouldShowVideoState && /* @__PURE__ */ React33.createElement(Tooltip, { title: "video playlist" }, /* @__PURE__ */ React33.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React33.createElement(VideoPlayerIcon, { width: 24, height: 24 }))),
4693
- !isPlaylistInactive && /* @__PURE__ */ React33.createElement(Tooltip, { title: "Playlist Music" }, /* @__PURE__ */ React33.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React33.createElement(AudioPlayerIcon, { width: 24, height: 24 }))),
4694
- whiteboardOwner && /* @__PURE__ */ React33.createElement(Tooltip, { title: "Whiteboard" }, /* @__PURE__ */ React33.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React33.createElement(PencilDrawIcon, { width: 24, height: 24 }))),
4695
- /* @__PURE__ */ React33.createElement(Box, { css: { "@lg": { display: "none" }, color: "$on_surface_low" } }, open ? /* @__PURE__ */ React33.createElement(ChevronUpIcon2, null) : /* @__PURE__ */ React33.createElement(ChevronDownIcon2, null))
4696
- )), /* @__PURE__ */ React33.createElement(Dropdown.Content, { sideOffset: 5, align: "end", css: { w: "$60" } }, !isPlaylistInactive && /* @__PURE__ */ React33.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React33.createElement(AudioPlayerIcon, { width: 24, height: 24 }), /* @__PURE__ */ React33.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Playlist is playing"), playlist.peer.isLocal ? /* @__PURE__ */ React33.createElement(
4771
+ !isAudioshareInactive && /* @__PURE__ */ React35.createElement(Tooltip, { title: "Screenshare Audio" }, /* @__PURE__ */ React35.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React35.createElement(MusicIcon, { width: 24, height: 24 }))),
4772
+ shouldShowScreenShareState && /* @__PURE__ */ React35.createElement(Tooltip, { title: "Screenshare" }, /* @__PURE__ */ React35.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React35.createElement(ShareScreenIcon, { width: 24, height: 24 }))),
4773
+ shouldShowVideoState && /* @__PURE__ */ React35.createElement(Tooltip, { title: "video playlist" }, /* @__PURE__ */ React35.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React35.createElement(VideoPlayerIcon, { width: 24, height: 24 }))),
4774
+ !isPlaylistInactive && /* @__PURE__ */ React35.createElement(Tooltip, { title: "Playlist Music" }, /* @__PURE__ */ React35.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React35.createElement(AudioPlayerIcon, { width: 24, height: 24 }))),
4775
+ whiteboardOwner && /* @__PURE__ */ React35.createElement(Tooltip, { title: "Whiteboard" }, /* @__PURE__ */ React35.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React35.createElement(PencilDrawIcon, { width: 24, height: 24 }))),
4776
+ /* @__PURE__ */ React35.createElement(Box, { css: { "@lg": { display: "none" }, color: "$on_surface_low" } }, open ? /* @__PURE__ */ React35.createElement(ChevronUpIcon2, null) : /* @__PURE__ */ React35.createElement(ChevronDownIcon2, null))
4777
+ )), /* @__PURE__ */ React35.createElement(Dropdown.Content, { sideOffset: 5, align: "end", css: { w: "$60" } }, !isPlaylistInactive && /* @__PURE__ */ React35.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React35.createElement(AudioPlayerIcon, { width: 24, height: 24 }), /* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Playlist is playing"), playlist.peer.isLocal ? /* @__PURE__ */ React35.createElement(
4697
4778
  Text,
4698
4779
  {
4699
4780
  variant: "sm",
@@ -4704,7 +4785,7 @@ var AdditionalRoomState = () => {
4704
4785
  }
4705
4786
  },
4706
4787
  playlist.selection.playing ? "Pause" : "Play"
4707
- ) : /* @__PURE__ */ React33.createElement(
4788
+ ) : /* @__PURE__ */ React35.createElement(
4708
4789
  Text,
4709
4790
  {
4710
4791
  variant: "sm",
@@ -4715,7 +4796,7 @@ var AdditionalRoomState = () => {
4715
4796
  }
4716
4797
  },
4717
4798
  playlist.track.volume === 0 ? "Unmute" : "Mute"
4718
- )), !isAudioshareInactive && /* @__PURE__ */ React33.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React33.createElement(MusicIcon, { width: 24, height: 24 }), /* @__PURE__ */ React33.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Music is playing"), /* @__PURE__ */ React33.createElement(
4799
+ )), !isAudioshareInactive && /* @__PURE__ */ React35.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React35.createElement(MusicIcon, { width: 24, height: 24 }), /* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Music is playing"), /* @__PURE__ */ React35.createElement(
4719
4800
  Text,
4720
4801
  {
4721
4802
  variant: "sm",
@@ -4726,7 +4807,7 @@ var AdditionalRoomState = () => {
4726
4807
  }
4727
4808
  },
4728
4809
  screenshareAudio.muted ? "Unmute" : "Mute"
4729
- )), shouldShowScreenShareState && /* @__PURE__ */ React33.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React33.createElement(ShareScreenIcon, { width: 24, height: 24 }), /* @__PURE__ */ React33.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, `Shared by: ${screenSharingPeerId === localPeerID ? "You" : screenSharingPeerName}`)), shouldShowVideoState && /* @__PURE__ */ React33.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React33.createElement(VideoPlayerIcon, { width: 24, height: 24 }), /* @__PURE__ */ React33.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, `Shared by: ${peerSharingPlaylist.id === localPeerID ? "You" : peerSharingPlaylist.name}`)), whiteboardOwner && /* @__PURE__ */ React33.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React33.createElement(PencilDrawIcon, { width: 24, height: 24 }), /* @__PURE__ */ React33.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Whiteboard Owner - ", whiteboardOwner.name, amIWhiteboardOwner && "(You)"), amIWhiteboardOwner && /* @__PURE__ */ React33.createElement(
4810
+ )), shouldShowScreenShareState && /* @__PURE__ */ React35.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React35.createElement(ShareScreenIcon, { width: 24, height: 24 }), /* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, `Shared by: ${screenSharingPeerId === localPeerID ? "You" : screenSharingPeerName}`)), shouldShowVideoState && /* @__PURE__ */ React35.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React35.createElement(VideoPlayerIcon, { width: 24, height: 24 }), /* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, `Shared by: ${peerSharingPlaylist.id === localPeerID ? "You" : peerSharingPlaylist.name}`)), whiteboardOwner && /* @__PURE__ */ React35.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React35.createElement(PencilDrawIcon, { width: 24, height: 24 }), /* @__PURE__ */ React35.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Whiteboard Owner - ", whiteboardOwner.name, amIWhiteboardOwner && "(You)"), amIWhiteboardOwner && /* @__PURE__ */ React35.createElement(
4730
4811
  Text,
4731
4812
  {
4732
4813
  variant: "sm",
@@ -4746,7 +4827,7 @@ var LiveStatus = () => {
4746
4827
  const { isHLSRunning, isRTMPRunning } = useRecordingStreaming2();
4747
4828
  const hlsState = useHMSStore14(selectHLSState2);
4748
4829
  const isMobile = useMedia2(config.media.md);
4749
- const intervalRef = useRef5(null);
4830
+ const intervalRef = useRef6(null);
4750
4831
  const [liveTime, setLiveTime] = useState13(0);
4751
4832
  const startTimer = useCallback13(() => {
4752
4833
  intervalRef.current = setInterval(() => {
@@ -4756,7 +4837,7 @@ var LiveStatus = () => {
4756
4837
  }
4757
4838
  }, 1e3);
4758
4839
  }, [hlsState == null ? void 0 : hlsState.running, hlsState == null ? void 0 : hlsState.variants]);
4759
- useEffect19(() => {
4840
+ useEffect20(() => {
4760
4841
  if (hlsState == null ? void 0 : hlsState.running) {
4761
4842
  startTimer();
4762
4843
  }
@@ -4772,7 +4853,7 @@ var LiveStatus = () => {
4772
4853
  if (!isHLSRunning && !isRTMPRunning) {
4773
4854
  return null;
4774
4855
  }
4775
- return /* @__PURE__ */ React34.createElement(
4856
+ return /* @__PURE__ */ React36.createElement(
4776
4857
  Flex,
4777
4858
  {
4778
4859
  align: "center",
@@ -4783,8 +4864,8 @@ var LiveStatus = () => {
4783
4864
  borderRadius: "$1"
4784
4865
  }
4785
4866
  },
4786
- /* @__PURE__ */ React34.createElement(Box, { css: { w: "$4", h: "$4", r: "$round", bg: "$alert_error_default", mr: "$2" } }),
4787
- /* @__PURE__ */ React34.createElement(Flex, { align: "center", gap: "2" }, /* @__PURE__ */ React34.createElement(Text, { variant: !isMobile ? "button" : "body2" }, "LIVE"), /* @__PURE__ */ React34.createElement(Text, { variant: "caption" }, ((_a7 = hlsState == null ? void 0 : hlsState.variants) == null ? void 0 : _a7.length) > 0 ? formatTime(liveTime) : ""))
4867
+ /* @__PURE__ */ React36.createElement(Box, { css: { w: "$4", h: "$4", r: "$round", bg: "$alert_error_default", mr: "$2" } }),
4868
+ /* @__PURE__ */ React36.createElement(Flex, { align: "center", gap: "2" }, /* @__PURE__ */ React36.createElement(Text, { variant: !isMobile ? "button" : "body2" }, "LIVE"), /* @__PURE__ */ React36.createElement(Text, { variant: "caption" }, ((_a7 = hlsState == null ? void 0 : hlsState.variants) == null ? void 0 : _a7.length) > 0 ? formatTime(liveTime) : ""))
4788
4869
  );
4789
4870
  };
4790
4871
  var RecordingStatus = () => {
@@ -4799,7 +4880,7 @@ var RecordingStatus = () => {
4799
4880
  if (!(isMobile && isRecordingOn))
4800
4881
  return null;
4801
4882
  }
4802
- return /* @__PURE__ */ React34.createElement(
4883
+ return /* @__PURE__ */ React36.createElement(
4803
4884
  Tooltip,
4804
4885
  {
4805
4886
  boxCss: { zIndex: 1 },
@@ -4809,7 +4890,7 @@ var RecordingStatus = () => {
4809
4890
  isHLSRecordingOn
4810
4891
  })
4811
4892
  },
4812
- /* @__PURE__ */ React34.createElement(
4893
+ /* @__PURE__ */ React36.createElement(
4813
4894
  Flex,
4814
4895
  {
4815
4896
  css: {
@@ -4817,7 +4898,7 @@ var RecordingStatus = () => {
4817
4898
  alignItems: "center"
4818
4899
  }
4819
4900
  },
4820
- /* @__PURE__ */ React34.createElement(RecordIcon, { width: 24, height: 24 })
4901
+ /* @__PURE__ */ React36.createElement(RecordIcon, { width: 24, height: 24 })
4821
4902
  )
4822
4903
  );
4823
4904
  };
@@ -4831,7 +4912,7 @@ var StartRecording = () => {
4831
4912
  return null;
4832
4913
  }
4833
4914
  if (isBrowserRecordingOn) {
4834
- return /* @__PURE__ */ React34.createElement(Popover2.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React34.createElement(Popover2.Trigger, { asChild: true }, /* @__PURE__ */ React34.createElement(Button, { variant: "danger", "data-testid": "stop_recording", icon: true, outlined: true, onClick: () => setOpen(true) }, /* @__PURE__ */ React34.createElement(RecordIcon, null), /* @__PURE__ */ React34.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, "Stop Recording"))), /* @__PURE__ */ React34.createElement(Popover2.Portal, null, /* @__PURE__ */ React34.createElement(Popover2.Content, { align: "end", sideOffset: 8, css: { w: "$64" } }, /* @__PURE__ */ React34.createElement(Text, { variant: "body1", css: { color: "$on_surface_medium" } }, "Are you sure you want to end the recording?"), /* @__PURE__ */ React34.createElement(
4915
+ return /* @__PURE__ */ React36.createElement(Popover2.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React36.createElement(Popover2.Trigger, { asChild: true }, /* @__PURE__ */ React36.createElement(Button, { variant: "danger", "data-testid": "stop_recording", icon: true, outlined: true, onClick: () => setOpen(true) }, /* @__PURE__ */ React36.createElement(RecordIcon, null), /* @__PURE__ */ React36.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, "Stop Recording"))), /* @__PURE__ */ React36.createElement(Popover2.Portal, null, /* @__PURE__ */ React36.createElement(Popover2.Content, { align: "end", sideOffset: 8, css: { w: "$64" } }, /* @__PURE__ */ React36.createElement(Text, { variant: "body1", css: { color: "$on_surface_medium" } }, "Are you sure you want to end the recording?"), /* @__PURE__ */ React36.createElement(
4835
4916
  Button,
4836
4917
  {
4837
4918
  "data-testid": "stop_recording_confirm",
@@ -4854,7 +4935,7 @@ var StartRecording = () => {
4854
4935
  "Stop"
4855
4936
  ))));
4856
4937
  }
4857
- return /* @__PURE__ */ React34.createElement(
4938
+ return /* @__PURE__ */ React36.createElement(
4858
4939
  Button,
4859
4940
  {
4860
4941
  "data-testid": "start_recording",
@@ -4884,21 +4965,21 @@ var StartRecording = () => {
4884
4965
  }
4885
4966
  })
4886
4967
  },
4887
- recordingStarted ? /* @__PURE__ */ React34.createElement(Loading, { size: 24, color: "currentColor" }) : /* @__PURE__ */ React34.createElement(RecordIcon, null),
4888
- /* @__PURE__ */ React34.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, recordingStarted ? "Starting" : "Start", " Recording")
4968
+ recordingStarted ? /* @__PURE__ */ React36.createElement(Loading, { size: 24, color: "currentColor" }) : /* @__PURE__ */ React36.createElement(RecordIcon, null),
4969
+ /* @__PURE__ */ React36.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, recordingStarted ? "Starting" : "Start", " Recording")
4889
4970
  );
4890
4971
  };
4891
4972
  var StreamActions = () => {
4892
4973
  const isConnected = useHMSStore14(selectIsConnectedToRoom2);
4893
4974
  const isMobile = useMedia2(config.media.md);
4894
4975
  const roomState = useHMSStore14(selectRoomState3);
4895
- return /* @__PURE__ */ React34.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React34.createElement(AdditionalRoomState, null), !isMobile && /* @__PURE__ */ React34.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React34.createElement(RecordingStatus, null), roomState !== HMSRoomState3.Preview ? /* @__PURE__ */ React34.createElement(LiveStatus, null) : null), isConnected && !isMobile ? /* @__PURE__ */ React34.createElement(StartRecording, null) : null);
4976
+ return /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React36.createElement(AdditionalRoomState, null), !isMobile && /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React36.createElement(RecordingStatus, null), roomState !== HMSRoomState3.Preview ? /* @__PURE__ */ React36.createElement(LiveStatus, null) : null), isConnected && !isMobile ? /* @__PURE__ */ React36.createElement(StartRecording, null) : null);
4896
4977
  };
4897
4978
  var StopRecordingInSheet = ({
4898
4979
  onStopRecording,
4899
4980
  onClose
4900
4981
  }) => {
4901
- return /* @__PURE__ */ React34.createElement(Sheet.Root, { open: true }, /* @__PURE__ */ React34.createElement(Sheet.Content, null, /* @__PURE__ */ React34.createElement(Sheet.Title, { css: { p: "$10" } }, /* @__PURE__ */ React34.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%", c: "$alert_error_default" } }, /* @__PURE__ */ React34.createElement(Flex, { justify: "start", align: "center", gap: "3" }, /* @__PURE__ */ React34.createElement(AlertTriangleIcon, null), /* @__PURE__ */ React34.createElement(Text, { variant: "h5", css: { c: "$alert_error_default" } }, "Stop Recording")), /* @__PURE__ */ React34.createElement(Sheet.Close, { css: { color: "white" }, onClick: onClose }, /* @__PURE__ */ React34.createElement(CrossIcon4, null)))), /* @__PURE__ */ React34.createElement(HorizontalDivider, null), /* @__PURE__ */ React34.createElement(Box, { as: "div", css: { p: "$10", overflowY: "scroll", maxHeight: "70vh" } }, /* @__PURE__ */ React34.createElement(Text, { variant: "caption", css: { c: "$on_surface_medium", pb: "$8" } }, "Are you sure you want to stop recording? You can\u2019t undo this action."), /* @__PURE__ */ React34.createElement(
4982
+ return /* @__PURE__ */ React36.createElement(Sheet.Root, { open: true }, /* @__PURE__ */ React36.createElement(Sheet.Content, null, /* @__PURE__ */ React36.createElement(Sheet.Title, { css: { p: "$10" } }, /* @__PURE__ */ React36.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%", c: "$alert_error_default" } }, /* @__PURE__ */ React36.createElement(Flex, { justify: "start", align: "center", gap: "3" }, /* @__PURE__ */ React36.createElement(AlertTriangleIcon, null), /* @__PURE__ */ React36.createElement(Text, { variant: "h5", css: { c: "$alert_error_default" } }, "Stop Recording")), /* @__PURE__ */ React36.createElement(Sheet.Close, { css: { color: "white" }, onClick: onClose }, /* @__PURE__ */ React36.createElement(CrossIcon4, null)))), /* @__PURE__ */ React36.createElement(HorizontalDivider, null), /* @__PURE__ */ React36.createElement(Box, { as: "div", css: { p: "$10", overflowY: "scroll", maxHeight: "70vh" } }, /* @__PURE__ */ React36.createElement(Text, { variant: "caption", css: { c: "$on_surface_medium", pb: "$8" } }, "Are you sure you want to stop recording? You can\u2019t undo this action."), /* @__PURE__ */ React36.createElement(
4902
4983
  Button,
4903
4984
  {
4904
4985
  variant: "danger",
@@ -4912,7 +4993,7 @@ var StopRecordingInSheet = ({
4912
4993
  };
4913
4994
 
4914
4995
  // src/Prebuilt/components/Header/common.jsx
4915
- import React35 from "react";
4996
+ import React37 from "react";
4916
4997
  import {
4917
4998
  DeviceType,
4918
4999
  selectIsLocalVideoEnabled as selectIsLocalVideoEnabled2,
@@ -4933,7 +5014,7 @@ var CamaraFlipActions = () => {
4933
5014
  if (!videoInput || !(videoInput == null ? void 0 : videoInput.length) || !(localVideoTrack == null ? void 0 : localVideoTrack.facingMode)) {
4934
5015
  return null;
4935
5016
  }
4936
- return /* @__PURE__ */ React35.createElement(Box, null, /* @__PURE__ */ React35.createElement(
5017
+ return /* @__PURE__ */ React37.createElement(Box, null, /* @__PURE__ */ React37.createElement(
4937
5018
  IconButton_default,
4938
5019
  {
4939
5020
  disabled: !isVideoOn,
@@ -4948,7 +5029,7 @@ var CamaraFlipActions = () => {
4948
5029
  }
4949
5030
  })
4950
5031
  },
4951
- /* @__PURE__ */ React35.createElement(CameraFlipIcon, null)
5032
+ /* @__PURE__ */ React37.createElement(CameraFlipIcon, null)
4952
5033
  ));
4953
5034
  };
4954
5035
  var AudioOutputActions = () => {
@@ -4960,7 +5041,7 @@ var AudioOutputActions = () => {
4960
5041
  if (!shouldShowAudioOutput || !(audioOutputFiltered == null ? void 0 : audioOutputFiltered.length) > 0) {
4961
5042
  return null;
4962
5043
  }
4963
- return /* @__PURE__ */ React35.createElement(
5044
+ return /* @__PURE__ */ React37.createElement(
4964
5045
  AudioOutputSelectionSheet,
4965
5046
  {
4966
5047
  outputDevices: audioOutput,
@@ -4979,11 +5060,11 @@ var AudioOutputActions = () => {
4979
5060
  }
4980
5061
  })
4981
5062
  },
4982
- /* @__PURE__ */ React35.createElement(Box, null, /* @__PURE__ */ React35.createElement(IconButton_default, null, /* @__PURE__ */ React35.createElement(SpeakerIcon, null)))
5063
+ /* @__PURE__ */ React37.createElement(Box, null, /* @__PURE__ */ React37.createElement(IconButton_default, null, /* @__PURE__ */ React37.createElement(SpeakerIcon, null)))
4983
5064
  );
4984
5065
  };
4985
5066
  var AudioOutputSelectionSheet = ({ outputDevices, outputSelected, onChange, children }) => {
4986
- return /* @__PURE__ */ React35.createElement(Sheet.Root, null, /* @__PURE__ */ React35.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React35.createElement(Sheet.Content, null, /* @__PURE__ */ React35.createElement(Sheet.Title, { css: { py: "$10", px: "$8", alignItems: "center" } }, /* @__PURE__ */ React35.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%" } }, /* @__PURE__ */ React35.createElement(Text, { variant: "h6", css: { display: "flex" } }, "Audio Output"), /* @__PURE__ */ React35.createElement(Sheet.Close, null, /* @__PURE__ */ React35.createElement(IconButton_default, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React35.createElement(CrossIcon5, null))))), /* @__PURE__ */ React35.createElement(HorizontalDivider, null), /* @__PURE__ */ React35.createElement(
5067
+ return /* @__PURE__ */ React37.createElement(Sheet.Root, null, /* @__PURE__ */ React37.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React37.createElement(Sheet.Content, null, /* @__PURE__ */ React37.createElement(Sheet.Title, { css: { py: "$10", px: "$8", alignItems: "center" } }, /* @__PURE__ */ React37.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%" } }, /* @__PURE__ */ React37.createElement(Text, { variant: "h6", css: { display: "flex" } }, "Audio Output"), /* @__PURE__ */ React37.createElement(Sheet.Close, null, /* @__PURE__ */ React37.createElement(IconButton_default, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React37.createElement(CrossIcon5, null))))), /* @__PURE__ */ React37.createElement(HorizontalDivider, null), /* @__PURE__ */ React37.createElement(
4987
5068
  Flex,
4988
5069
  {
4989
5070
  direction: "column",
@@ -4994,7 +5075,7 @@ var AudioOutputSelectionSheet = ({ outputDevices, outputSelected, onChange, chil
4994
5075
  }
4995
5076
  },
4996
5077
  outputDevices.map((audioDevice) => {
4997
- return /* @__PURE__ */ React35.createElement(
5078
+ return /* @__PURE__ */ React37.createElement(
4998
5079
  SelectWithLabel,
4999
5080
  {
5000
5081
  key: audioDevice.deviceId,
@@ -5007,8 +5088,8 @@ var AudioOutputSelectionSheet = ({ outputDevices, outputSelected, onChange, chil
5007
5088
  })
5008
5089
  )));
5009
5090
  };
5010
- var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React35.createElement(React35.Fragment, null), checked, id, onChange }) => {
5011
- return /* @__PURE__ */ React35.createElement(
5091
+ var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React37.createElement(React37.Fragment, null), checked, id, onChange }) => {
5092
+ return /* @__PURE__ */ React37.createElement(
5012
5093
  Flex,
5013
5094
  {
5014
5095
  align: "center",
@@ -5020,7 +5101,7 @@ var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React35.createElement(Rea
5020
5101
  },
5021
5102
  onClick: onChange
5022
5103
  },
5023
- /* @__PURE__ */ React35.createElement(
5104
+ /* @__PURE__ */ React37.createElement(
5024
5105
  Label3,
5025
5106
  {
5026
5107
  htmlFor: id,
@@ -5038,7 +5119,7 @@ var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React35.createElement(Rea
5038
5119
  icon,
5039
5120
  label
5040
5121
  ),
5041
- checked && /* @__PURE__ */ React35.createElement(CheckIcon2, { width: 24, height: 24 })
5122
+ checked && /* @__PURE__ */ React37.createElement(CheckIcon2, { width: 24, height: 24 })
5042
5123
  );
5043
5124
  };
5044
5125
 
@@ -5047,9 +5128,9 @@ var Header2 = () => {
5047
5128
  const roomState = useHMSStore16(selectRoomState4);
5048
5129
  const isMobile = useMedia3(config.media.md);
5049
5130
  if (roomState !== HMSRoomState4.Connected) {
5050
- return /* @__PURE__ */ React36.createElement(React36.Fragment, null);
5131
+ return /* @__PURE__ */ React38.createElement(React38.Fragment, null);
5051
5132
  }
5052
- return /* @__PURE__ */ React36.createElement(Flex, { justify: "between", align: "center", css: { position: "relative", height: "100%" } }, /* @__PURE__ */ React36.createElement(Flex, { align: "center", gap: "2", css: { position: "absolute", left: "$10" } }, /* @__PURE__ */ React36.createElement(Logo, null), /* @__PURE__ */ React36.createElement(SpeakerTag, null), isMobile && /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React36.createElement(LiveStatus, null), /* @__PURE__ */ React36.createElement(RecordingStatus, null))), /* @__PURE__ */ React36.createElement(
5133
+ return /* @__PURE__ */ React38.createElement(Flex, { justify: "between", align: "center", css: { position: "relative", height: "100%" } }, /* @__PURE__ */ React38.createElement(Flex, { align: "center", gap: "2", css: { position: "absolute", left: "$10" } }, /* @__PURE__ */ React38.createElement(Logo, null), /* @__PURE__ */ React38.createElement(SpeakerTag, null), isMobile && /* @__PURE__ */ React38.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React38.createElement(LiveStatus, null), /* @__PURE__ */ React38.createElement(RecordingStatus, null))), /* @__PURE__ */ React38.createElement(
5053
5134
  Flex,
5054
5135
  {
5055
5136
  align: "center",
@@ -5059,8 +5140,8 @@ var Header2 = () => {
5059
5140
  gap: "$4"
5060
5141
  }
5061
5142
  },
5062
- /* @__PURE__ */ React36.createElement(StreamActions, null),
5063
- isMobile ? /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(CamaraFlipActions, null), /* @__PURE__ */ React36.createElement(AudioOutputActions, null)) : null
5143
+ /* @__PURE__ */ React38.createElement(StreamActions, null),
5144
+ isMobile ? /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(CamaraFlipActions, null), /* @__PURE__ */ React38.createElement(AudioOutputActions, null)) : null
5064
5145
  ));
5065
5146
  };
5066
5147
 
@@ -5071,7 +5152,7 @@ var PostLeave = () => {
5071
5152
  const { roomCode } = useHMSPrebuiltContext();
5072
5153
  const { roomId, role } = useParams3();
5073
5154
  const [previewPreference] = useUserPreferences(UserPreferencesKeys.PREVIEW, defaultPreviewPreference);
5074
- return /* @__PURE__ */ React37.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React37.createElement(Box, { css: { h: "$18", "@md": { h: "$17" } }, "data-testid": "header" }, /* @__PURE__ */ React37.createElement(Header2, null)), /* @__PURE__ */ React37.createElement(
5155
+ return /* @__PURE__ */ React39.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React39.createElement(Box, { css: { h: "$18", "@md": { h: "$17" } }, "data-testid": "header" }, /* @__PURE__ */ React39.createElement(Header2, null)), /* @__PURE__ */ React39.createElement(
5075
5156
  Flex,
5076
5157
  {
5077
5158
  justify: "center",
@@ -5079,9 +5160,9 @@ var PostLeave = () => {
5079
5160
  align: "center",
5080
5161
  css: { bg: "$background_dim", flex: "1 1 0", position: "relative" }
5081
5162
  },
5082
- /* @__PURE__ */ React37.createElement(Text, { variant: "h2", css: { fontWeight: "$semiBold" } }, "\u{1F44B}"),
5083
- /* @__PURE__ */ React37.createElement(Text, { variant: "h4", css: { color: "$on_surface_high", fontWeight: "$semiBold", mt: "$12" } }, "You left the room"),
5084
- /* @__PURE__ */ React37.createElement(
5163
+ /* @__PURE__ */ React39.createElement(Text, { variant: "h2", css: { fontWeight: "$semiBold" } }, "\u{1F44B}"),
5164
+ /* @__PURE__ */ React39.createElement(Text, { variant: "h4", css: { color: "$on_surface_high", fontWeight: "$semiBold", mt: "$12" } }, "You left the room"),
5165
+ /* @__PURE__ */ React39.createElement(
5085
5166
  Text,
5086
5167
  {
5087
5168
  variant: "body1",
@@ -5093,10 +5174,10 @@ var PostLeave = () => {
5093
5174
  }
5094
5175
  },
5095
5176
  "Have a nice day",
5096
- previewPreference.name && /* @__PURE__ */ React37.createElement(Box, { as: "span", css: __spreadValues({}, textEllipsis(100)) }, ", ", previewPreference.name),
5177
+ previewPreference.name && /* @__PURE__ */ React39.createElement(Box, { as: "span", css: __spreadValues({}, textEllipsis(100)) }, ", ", previewPreference.name),
5097
5178
  "!"
5098
5179
  ),
5099
- /* @__PURE__ */ React37.createElement(Flex, { css: { mt: "$14", gap: "$10", alignItems: "center" } }, /* @__PURE__ */ React37.createElement(Text, { variant: "body1", css: { color: "$on_surface_medium", fontWeight: "$regular" } }, "Left by mistake?"), /* @__PURE__ */ React37.createElement(
5180
+ /* @__PURE__ */ React39.createElement(Flex, { css: { mt: "$14", gap: "$10", alignItems: "center" } }, /* @__PURE__ */ React39.createElement(Text, { variant: "body1", css: { color: "$on_surface_medium", fontWeight: "$regular" } }, "Left by mistake?"), /* @__PURE__ */ React39.createElement(
5100
5181
  Button,
5101
5182
  {
5102
5183
  onClick: () => {
@@ -5108,37 +5189,37 @@ var PostLeave = () => {
5108
5189
  },
5109
5190
  "data-testid": "join_again_btn"
5110
5191
  },
5111
- /* @__PURE__ */ React37.createElement(ExitIcon, null),
5112
- /* @__PURE__ */ React37.createElement(Text, { css: { ml: "$3", fontWeight: "$semiBold", color: "inherit" } }, "Rejoin")
5192
+ /* @__PURE__ */ React39.createElement(ExitIcon, null),
5193
+ /* @__PURE__ */ React39.createElement(Text, { css: { ml: "$3", fontWeight: "$semiBold", color: "inherit" } }, "Rejoin")
5113
5194
  ))
5114
5195
  ));
5115
5196
  };
5116
5197
  var PostLeave_default = PostLeave;
5117
5198
 
5118
5199
  // src/Prebuilt/components/Preview/PreviewContainer.tsx
5119
- import React56 from "react";
5200
+ import React53 from "react";
5120
5201
  import { useNavigate as useNavigate4, useParams as useParams4 } from "react-router-dom";
5121
5202
  import { useSearchParam } from "react-use";
5122
5203
 
5123
5204
  // src/Prebuilt/components/Preview/PreviewJoin.tsx
5124
- import React55, { Fragment as Fragment6, Suspense, useCallback as useCallback17, useEffect as useEffect24, useState as useState19 } from "react";
5125
- import { useMedia as useMedia10 } from "react-use";
5205
+ import React52, { Fragment as Fragment4, Suspense, useCallback as useCallback16, useEffect as useEffect23, useState as useState16 } from "react";
5206
+ import { useMedia as useMedia6 } from "react-use";
5126
5207
  import {
5127
5208
  HMSRoomState as HMSRoomState6,
5128
5209
  selectIsLocalVideoEnabled as selectIsLocalVideoEnabled5,
5129
5210
  selectLocalPeer,
5130
5211
  selectRoomState as selectRoomState6,
5131
- selectVideoTrackByID as selectVideoTrackByID5,
5212
+ selectVideoTrackByID as selectVideoTrackByID4,
5132
5213
  useAVToggle as useAVToggle2,
5133
- useHMSStore as useHMSStore25,
5214
+ useHMSStore as useHMSStore21,
5134
5215
  useParticipants,
5135
5216
  usePreviewJoin,
5136
5217
  useRecordingStreaming as useRecordingStreaming4
5137
5218
  } from "@100mslive/react-sdk";
5138
- import { MicOffIcon as MicOffIcon4, SettingsIcon as SettingsIcon2 } from "@100mslive/react-icons";
5219
+ import { MicOffIcon as MicOffIcon2, SettingsIcon as SettingsIcon2 } from "@100mslive/react-icons";
5139
5220
 
5140
5221
  // src/Prebuilt/components/AudioVideoToggle.jsx
5141
- import React39, { Fragment as Fragment2 } from "react";
5222
+ import React41, { Fragment as Fragment2 } from "react";
5142
5223
  import {
5143
5224
  DeviceType as DeviceType2,
5144
5225
  HMSRoomState as HMSRoomState5,
@@ -5153,7 +5234,7 @@ import {
5153
5234
  import { CameraFlipIcon as CameraFlipIcon2, MicOffIcon, MicOnIcon as MicOnIcon3, VideoOffIcon, VideoOnIcon } from "@100mslive/react-icons";
5154
5235
 
5155
5236
  // src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.jsx
5156
- import React38 from "react";
5237
+ import React40 from "react";
5157
5238
  import { VerticalMenuIcon } from "@100mslive/react-icons";
5158
5239
  var IconSection = styled(IconButton_default, {
5159
5240
  w: "unset",
@@ -5205,7 +5286,7 @@ var IconButtonWithOptions = ({
5205
5286
  }) => {
5206
5287
  const bgCss = { backgroundColor: disabled ? "$surface_brighter" : active ? "$transparent" : "$secondary_dim" };
5207
5288
  const iconCss = { color: disabled ? "$on_surface_low" : active ? "$on_surface_high" : "$on_primary_high" };
5208
- return /* @__PURE__ */ React38.createElement(Flex, null, /* @__PURE__ */ React38.createElement(IconSection, { css: bgCss, onClick }, /* @__PURE__ */ React38.createElement(Tooltip, { disabled: !tooltipMessage, title: tooltipMessage }, /* @__PURE__ */ React38.createElement(Flex, { align: "center", justify: "center", css: iconCss }, icon))), /* @__PURE__ */ React38.createElement(Dropdown.Root, null, /* @__PURE__ */ React38.createElement(
5289
+ return /* @__PURE__ */ React40.createElement(Flex, null, /* @__PURE__ */ React40.createElement(IconSection, { css: bgCss, onClick }, /* @__PURE__ */ React40.createElement(Tooltip, { disabled: !tooltipMessage, title: tooltipMessage }, /* @__PURE__ */ React40.createElement(Flex, { align: "center", justify: "center", css: iconCss }, icon))), /* @__PURE__ */ React40.createElement(Dropdown.Root, null, /* @__PURE__ */ React40.createElement(
5209
5290
  Dropdown.Trigger,
5210
5291
  {
5211
5292
  asChild: true,
@@ -5216,8 +5297,8 @@ var IconButtonWithOptions = ({
5216
5297
  }
5217
5298
  }
5218
5299
  },
5219
- /* @__PURE__ */ React38.createElement(OptionsSection, { css: bgCss }, /* @__PURE__ */ React38.createElement(Tooltip, { title: "View Options" }, /* @__PURE__ */ React38.createElement(Box, { css: iconCss }, /* @__PURE__ */ React38.createElement(VerticalMenuIcon, null))))
5220
- ), /* @__PURE__ */ React38.createElement(
5300
+ /* @__PURE__ */ React40.createElement(OptionsSection, { css: bgCss }, /* @__PURE__ */ React40.createElement(Tooltip, { title: "View Options" }, /* @__PURE__ */ React40.createElement(Box, { css: iconCss }, /* @__PURE__ */ React40.createElement(VerticalMenuIcon, null))))
5301
+ ), /* @__PURE__ */ React40.createElement(
5221
5302
  Dropdown.Content,
5222
5303
  {
5223
5304
  sideOffset: 5,
@@ -5229,7 +5310,7 @@ var IconButtonWithOptions = ({
5229
5310
  border: "none"
5230
5311
  }
5231
5312
  },
5232
- options.map((option, index) => /* @__PURE__ */ React38.createElement(
5313
+ options.map((option, index) => /* @__PURE__ */ React40.createElement(
5233
5314
  Dropdown.Item,
5234
5315
  {
5235
5316
  key: option.title,
@@ -5256,7 +5337,7 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5256
5337
  const { videoInput, audioInput } = allDevices;
5257
5338
  const formattedVideoInputList = videoInput == null ? void 0 : videoInput.map((videoInput2) => ({
5258
5339
  active: selectedDeviceIDs.videoInput === videoInput2.deviceId,
5259
- content: /* @__PURE__ */ React39.createElement(
5340
+ content: /* @__PURE__ */ React41.createElement(
5260
5341
  Text,
5261
5342
  {
5262
5343
  variant: "sm",
@@ -5272,7 +5353,7 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5272
5353
  }));
5273
5354
  const formattedAudioInputList = audioInput == null ? void 0 : audioInput.map((audioInput2) => ({
5274
5355
  active: selectedDeviceIDs.audioInput === audioInput2.deviceId,
5275
- content: /* @__PURE__ */ React39.createElement(
5356
+ content: /* @__PURE__ */ React41.createElement(
5276
5357
  Text,
5277
5358
  {
5278
5359
  variant: "sm",
@@ -5293,7 +5374,7 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5293
5374
  const roomState = useHMSStore17(selectRoomState5);
5294
5375
  const hasAudioDevices = (audioInput == null ? void 0 : audioInput.length) > 0;
5295
5376
  const hasVideoDevices = (videoInput == null ? void 0 : videoInput.length) > 0;
5296
- return /* @__PURE__ */ React39.createElement(Fragment2, null, toggleAudio ? hideOptions || !hasAudioDevices ? /* @__PURE__ */ React39.createElement(Tooltip, { title: `Turn ${isLocalAudioEnabled ? "off" : "on"} audio (${isMacOS ? "\u2318" : "ctrl"} + d)` }, /* @__PURE__ */ React39.createElement(
5377
+ return /* @__PURE__ */ React41.createElement(Fragment2, null, toggleAudio ? hideOptions || !hasAudioDevices ? /* @__PURE__ */ React41.createElement(Tooltip, { title: `Turn ${isLocalAudioEnabled ? "off" : "on"} audio (${isMacOS ? "\u2318" : "ctrl"} + d)` }, /* @__PURE__ */ React41.createElement(
5297
5378
  IconButton_default,
5298
5379
  {
5299
5380
  active: isLocalAudioEnabled,
@@ -5303,20 +5384,20 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5303
5384
  "data-testid": "audio_btn",
5304
5385
  className: "__cancel-drag-event"
5305
5386
  },
5306
- !isLocalAudioEnabled ? /* @__PURE__ */ React39.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React39.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" })
5307
- )) : /* @__PURE__ */ React39.createElement(
5387
+ !isLocalAudioEnabled ? /* @__PURE__ */ React41.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React41.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" })
5388
+ )) : /* @__PURE__ */ React41.createElement(
5308
5389
  IconButtonWithOptions,
5309
5390
  {
5310
5391
  options: formattedAudioInputList,
5311
5392
  disabled: !toggleAudio,
5312
5393
  onDisabledClick: toggleAudio,
5313
5394
  tooltipMessage: `Turn ${isLocalAudioEnabled ? "off" : "on"} audio (${isMacOS ? "\u2318" : "ctrl"} + d)`,
5314
- icon: !isLocalAudioEnabled ? /* @__PURE__ */ React39.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React39.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" }),
5395
+ icon: !isLocalAudioEnabled ? /* @__PURE__ */ React41.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React41.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" }),
5315
5396
  active: isLocalAudioEnabled,
5316
5397
  onClick: toggleAudio,
5317
5398
  key: "toggleAudio"
5318
5399
  }
5319
- ) : null, toggleVideo ? hideOptions || !hasVideoDevices ? /* @__PURE__ */ React39.createElement(Tooltip, { title: `Turn ${isLocalVideoEnabled ? "off" : "on"} video (${isMacOS ? "\u2318" : "ctrl"} + e)` }, /* @__PURE__ */ React39.createElement(
5400
+ ) : null, toggleVideo ? hideOptions || !hasVideoDevices ? /* @__PURE__ */ React41.createElement(Tooltip, { title: `Turn ${isLocalVideoEnabled ? "off" : "on"} video (${isMacOS ? "\u2318" : "ctrl"} + e)` }, /* @__PURE__ */ React41.createElement(
5320
5401
  IconButton_default,
5321
5402
  {
5322
5403
  key: "toggleVideo",
@@ -5326,20 +5407,20 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5326
5407
  "data-testid": "video_btn",
5327
5408
  className: "__cancel-drag-event"
5328
5409
  },
5329
- !isLocalVideoEnabled ? /* @__PURE__ */ React39.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React39.createElement(VideoOnIcon, { "data-testid": "video_on_btn" })
5330
- )) : /* @__PURE__ */ React39.createElement(
5410
+ !isLocalVideoEnabled ? /* @__PURE__ */ React41.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React41.createElement(VideoOnIcon, { "data-testid": "video_on_btn" })
5411
+ )) : /* @__PURE__ */ React41.createElement(
5331
5412
  IconButtonWithOptions,
5332
5413
  {
5333
5414
  disabled: !toggleVideo,
5334
5415
  onDisabledClick: toggleVideo,
5335
5416
  options: formattedVideoInputList,
5336
5417
  tooltipMessage: `Turn ${isLocalVideoEnabled ? "off" : "on"} video (${isMacOS ? "\u2318" : "ctrl"} + e)`,
5337
- icon: !isLocalVideoEnabled ? /* @__PURE__ */ React39.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React39.createElement(VideoOnIcon, { "data-testid": "video_on_btn" }),
5418
+ icon: !isLocalVideoEnabled ? /* @__PURE__ */ React41.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React41.createElement(VideoOnIcon, { "data-testid": "video_on_btn" }),
5338
5419
  key: "toggleVideo",
5339
5420
  active: isLocalVideoEnabled,
5340
5421
  onClick: toggleVideo
5341
5422
  }
5342
- ) : null, (localVideoTrack == null ? void 0 : localVideoTrack.facingMode) && roomState === HMSRoomState5.Preview ? /* @__PURE__ */ React39.createElement(Tooltip, { title: "Switch Camera", key: "switchCamera" }, /* @__PURE__ */ React39.createElement(
5423
+ ) : null, (localVideoTrack == null ? void 0 : localVideoTrack.facingMode) && roomState === HMSRoomState5.Preview ? /* @__PURE__ */ React41.createElement(Tooltip, { title: "Switch Camera", key: "switchCamera" }, /* @__PURE__ */ React41.createElement(
5343
5424
  IconButton_default,
5344
5425
  {
5345
5426
  onClick: () => __async(void 0, null, function* () {
@@ -5353,32 +5434,34 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5353
5434
  }
5354
5435
  })
5355
5436
  },
5356
- /* @__PURE__ */ React39.createElement(CameraFlipIcon2, null)
5437
+ /* @__PURE__ */ React41.createElement(CameraFlipIcon2, null)
5357
5438
  )) : null);
5358
5439
  };
5359
5440
 
5360
- // src/Prebuilt/components/Chip.jsx
5361
- import React40 from "react";
5441
+ // src/Prebuilt/components/Chip.tsx
5442
+ import React42 from "react";
5362
5443
  var Chip = ({
5363
- icon = /* @__PURE__ */ React40.createElement(React40.Fragment, null),
5444
+ icon = /* @__PURE__ */ React42.createElement(React42.Fragment, null),
5364
5445
  content = "",
5365
5446
  backgroundColor = "$surface_default",
5366
5447
  textColor = "$on_surface_high",
5367
- hideIfNoContent = false
5448
+ hideIfNoContent = false,
5449
+ onClick,
5450
+ css: css2 = {}
5368
5451
  }) => {
5369
5452
  if (hideIfNoContent && !content) {
5370
- return;
5453
+ return null;
5371
5454
  }
5372
- return /* @__PURE__ */ React40.createElement(Flex, { align: "center", css: { backgroundColor, p: "$4 $6", borderRadius: "$4" } }, icon, /* @__PURE__ */ React40.createElement(Text, { variant: "sm", css: { fontWeight: "$semiBold", color: textColor, ml: "$2" } }, content));
5455
+ return /* @__PURE__ */ React42.createElement(Flex, { align: "center", css: __spreadValues({ backgroundColor, p: "$4 $6", borderRadius: "$4" }, css2), onClick: () => onClick == null ? void 0 : onClick() }, icon, /* @__PURE__ */ React42.createElement(Text, { variant: "sm", css: { fontWeight: "$semiBold", color: textColor, ml: "$2" } }, content));
5373
5456
  };
5374
5457
  var Chip_default = Chip;
5375
5458
 
5376
5459
  // src/Prebuilt/components/Connection/TileConnection.tsx
5377
- import React42 from "react";
5460
+ import React44 from "react";
5378
5461
  import { PinIcon, SpotlightIcon } from "@100mslive/react-icons";
5379
5462
 
5380
5463
  // src/Prebuilt/components/Connection/ConnectionIndicator.tsx
5381
- import React41 from "react";
5464
+ import React43 from "react";
5382
5465
  import { selectConnectionQualityByPeerID as selectConnectionQualityByPeerID2, useHMSStore as useHMSStore18 } from "@100mslive/react-sdk";
5383
5466
  import { PoorConnectivityIcon as PoorConnectivityIcon2 } from "@100mslive/react-icons";
5384
5467
 
@@ -5440,10 +5523,10 @@ var ConnectionIndicator = ({
5440
5523
  return null;
5441
5524
  }
5442
5525
  if (downlinkQuality === 0) {
5443
- return /* @__PURE__ */ React41.createElement(Tooltip, { title: getTooltipText(downlinkQuality) }, /* @__PURE__ */ React41.createElement(Wrapper, { isTile, css: { color: "#ED4C5A" }, "data-testid": "tile_network" }, /* @__PURE__ */ React41.createElement(PoorConnectivityIcon2, null)));
5526
+ return /* @__PURE__ */ React43.createElement(Tooltip, { title: getTooltipText(downlinkQuality) }, /* @__PURE__ */ React43.createElement(Wrapper, { isTile, css: { color: "#ED4C5A" }, "data-testid": "tile_network" }, /* @__PURE__ */ React43.createElement(PoorConnectivityIcon2, null)));
5444
5527
  }
5445
5528
  const size = isTile ? 12 : 16;
5446
- return /* @__PURE__ */ React41.createElement(Tooltip, { title: getTooltipText(downlinkQuality) }, /* @__PURE__ */ React41.createElement(Wrapper, { isTile, "data-testid": "tile_network", css: { backgroundColor: hideBg ? "" : "$surface_bright" } }, /* @__PURE__ */ React41.createElement(
5529
+ return /* @__PURE__ */ React43.createElement(Tooltip, { title: getTooltipText(downlinkQuality) }, /* @__PURE__ */ React43.createElement(Wrapper, { isTile, "data-testid": "tile_network", css: { backgroundColor: hideBg ? "" : "$surface_bright" } }, /* @__PURE__ */ React43.createElement(
5447
5530
  "svg",
5448
5531
  {
5449
5532
  width: size,
@@ -5458,7 +5541,7 @@ var ConnectionIndicator = ({
5458
5541
  strokeMiterlimit: 2
5459
5542
  }
5460
5543
  },
5461
- /* @__PURE__ */ React41.createElement(
5544
+ /* @__PURE__ */ React43.createElement(
5462
5545
  "path",
5463
5546
  {
5464
5547
  d: "M6.875 0c2.549.035 4.679.902 6.445 2.648.366.362.45.796.216 1.096-.239.306-.714.34-1.142.072a2.28 2.28 0 0 1-.341-.271C9.24.862 4.924.775 1.992 3.346c-.284.249-.594.419-.983.393-.272-.019-.49-.135-.613-.388-.125-.261-.05-.498.114-.713.073-.092.156-.177.245-.254C2.516.804 4.591.039 6.875 0Z",
@@ -5466,7 +5549,7 @@ var ConnectionIndicator = ({
5466
5549
  transform: "translate(-.333)"
5467
5550
  }
5468
5551
  ),
5469
- /* @__PURE__ */ React41.createElement(
5552
+ /* @__PURE__ */ React43.createElement(
5470
5553
  "path",
5471
5554
  {
5472
5555
  d: "M7.056 2.964c1.756.035 3.208.7 4.499 1.763.162.134.277.315.354.512.098.251.114.503-.075.72-.193.222-.452.259-.725.198-.293-.066-.518-.247-.738-.443a4.859 4.859 0 0 0-6.198-.26c-.166.127-.318.271-.475.409-.242.211-.513.343-.843.317-.43-.034-.679-.397-.561-.81.062-.211.181-.4.345-.546 1.265-1.162 2.733-1.836 4.417-1.86Z",
@@ -5474,14 +5557,14 @@ var ConnectionIndicator = ({
5474
5557
  transform: "translate(-.333)"
5475
5558
  }
5476
5559
  ),
5477
- /* @__PURE__ */ React41.createElement(
5560
+ /* @__PURE__ */ React43.createElement(
5478
5561
  "path",
5479
5562
  {
5480
5563
  d: "M7.384,6.052C8.293,6.068 9.157,6.449 9.783,7.108C10.005,7.339 10.157,7.6 10.07,7.942C9.959,8.377 9.435,8.581 9.071,8.243C7.935,7.191 6.356,7.183 5.152,8.183C4.816,8.462 4.6,8.485 4.332,8.27C4.063,8.055 3.998,7.691 4.177,7.358C4.273,7.179 4.414,7.038 4.57,6.911C5.26,6.349 6.149,6.05 7.384,6.052L7.384,6.052Z",
5481
5564
  fill: getColor(2, downlinkQuality, defaultColor, theme2)
5482
5565
  }
5483
5566
  ),
5484
- /* @__PURE__ */ React41.createElement(
5567
+ /* @__PURE__ */ React43.createElement(
5485
5568
  "path",
5486
5569
  {
5487
5570
  d: "M8.214,9.941C8.214,10.234 8.097,10.515 7.888,10.721C7.68,10.928 7.398,11.042 7.104,11.039C6.471,11.036 5.982,10.541 5.993,9.912C6.004,9.259 6.499,8.766 7.133,8.779C7.744,8.791 8.22,9.301 8.214,9.941Z",
@@ -5500,7 +5583,7 @@ var TileConnection = ({
5500
5583
  spotlighted,
5501
5584
  pinned
5502
5585
  }) => {
5503
- return /* @__PURE__ */ React42.createElement(Wrapper2, null, !hideLabel ? /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(Flex, { align: "center" }, pinned && /* @__PURE__ */ React42.createElement(IconWrapper, null, /* @__PURE__ */ React42.createElement(PinIcon, { width: "15", height: "15" })), spotlighted && /* @__PURE__ */ React42.createElement(IconWrapper, null, /* @__PURE__ */ React42.createElement(SpotlightIcon, { width: "15", height: "15" })), /* @__PURE__ */ React42.createElement(
5586
+ return /* @__PURE__ */ React44.createElement(Wrapper2, null, !hideLabel ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(Flex, { align: "center" }, pinned && /* @__PURE__ */ React44.createElement(IconWrapper, null, /* @__PURE__ */ React44.createElement(PinIcon, { width: "15", height: "15" })), spotlighted && /* @__PURE__ */ React44.createElement(IconWrapper, null, /* @__PURE__ */ React44.createElement(SpotlightIcon, { width: "15", height: "15" })), /* @__PURE__ */ React44.createElement(
5504
5587
  Text,
5505
5588
  {
5506
5589
  css: __spreadValues({
@@ -5510,7 +5593,7 @@ var TileConnection = ({
5510
5593
  variant: "xs"
5511
5594
  },
5512
5595
  name
5513
- )), /* @__PURE__ */ React42.createElement(ConnectionIndicator, { isTile: true, peerId, hideBg: true })) : null);
5596
+ )), /* @__PURE__ */ React44.createElement(ConnectionIndicator, { isTile: true, peerId, hideBg: true })) : null);
5514
5597
  };
5515
5598
  var IconWrapper = styled("div", { c: "$on_surface_high", ml: "$3", mt: "$1" });
5516
5599
  var Wrapper2 = styled("div", {
@@ -5530,7 +5613,7 @@ var Wrapper2 = styled("div", {
5530
5613
  var TileConnection_default = TileConnection;
5531
5614
 
5532
5615
  // src/Prebuilt/components/Settings/SettingsModal.jsx
5533
- import React48, { useCallback as useCallback15, useEffect as useEffect21, useState as useState15 } from "react";
5616
+ import React50, { useCallback as useCallback15, useEffect as useEffect22, useState as useState15 } from "react";
5534
5617
  import { useMedia as useMedia4 } from "react-use";
5535
5618
  import { ChevronLeftIcon, CrossIcon as CrossIcon6 } from "@100mslive/react-icons";
5536
5619
 
@@ -5538,7 +5621,7 @@ import { ChevronLeftIcon, CrossIcon as CrossIcon6 } from "@100mslive/react-icons
5538
5621
  import { GridFourIcon, NotificationsIcon, SettingsIcon } from "@100mslive/react-icons";
5539
5622
 
5540
5623
  // src/Prebuilt/components/Settings/DeviceSettings.jsx
5541
- import React44, { Fragment as Fragment3, useEffect as useEffect20, useRef as useRef6, useState as useState14 } from "react";
5624
+ import React46, { Fragment as Fragment3, useEffect as useEffect21, useRef as useRef7, useState as useState14 } from "react";
5542
5625
  import {
5543
5626
  DeviceType as DeviceType3,
5544
5627
  selectIsLocalVideoEnabled as selectIsLocalVideoEnabled3,
@@ -5550,10 +5633,10 @@ import {
5550
5633
  import { MicOnIcon as MicOnIcon4, SpeakerIcon as SpeakerIcon2, VideoOnIcon as VideoOnIcon2 } from "@100mslive/react-icons";
5551
5634
 
5552
5635
  // src/Prebuilt/primitives/DropdownTrigger.jsx
5553
- import React43 from "react";
5636
+ import React45 from "react";
5554
5637
  import { ChevronDownIcon as ChevronDownIcon3, ChevronUpIcon as ChevronUpIcon3 } from "@100mslive/react-icons";
5555
- var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon, titleCSS = {} }, ref) => {
5556
- return /* @__PURE__ */ React43.createElement(
5638
+ var DialogDropdownTrigger = React45.forwardRef(({ title, css: css2, open, icon, titleCSS = {} }, ref) => {
5639
+ return /* @__PURE__ */ React45.createElement(
5557
5640
  Dropdown.Trigger,
5558
5641
  {
5559
5642
  asChild: true,
@@ -5567,7 +5650,7 @@ var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon,
5567
5650
  }, css2),
5568
5651
  ref
5569
5652
  },
5570
- /* @__PURE__ */ React43.createElement(
5653
+ /* @__PURE__ */ React45.createElement(
5571
5654
  Flex,
5572
5655
  {
5573
5656
  css: {
@@ -5578,7 +5661,7 @@ var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon,
5578
5661
  }
5579
5662
  },
5580
5663
  icon,
5581
- /* @__PURE__ */ React43.createElement(
5664
+ /* @__PURE__ */ React45.createElement(
5582
5665
  Text,
5583
5666
  {
5584
5667
  css: __spreadValues(__spreadProps(__spreadValues({
@@ -5590,7 +5673,7 @@ var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon,
5590
5673
  },
5591
5674
  title
5592
5675
  ),
5593
- open ? /* @__PURE__ */ React43.createElement(ChevronUpIcon3, null) : /* @__PURE__ */ React43.createElement(ChevronDownIcon3, null)
5676
+ open ? /* @__PURE__ */ React45.createElement(ChevronUpIcon3, null) : /* @__PURE__ */ React45.createElement(ChevronDownIcon3, null)
5594
5677
  )
5595
5678
  );
5596
5679
  });
@@ -5615,7 +5698,7 @@ var Settings = ({ setHide }) => {
5615
5698
  if (!(videoInput == null ? void 0 : videoInput.length) && !(audioInput == null ? void 0 : audioInput.length) && !(audioOutputFiltered == null ? void 0 : audioOutputFiltered.length)) {
5616
5699
  setHide(true);
5617
5700
  }
5618
- return /* @__PURE__ */ React44.createElement(Box, { className: settingOverflow() }, (videoInput == null ? void 0 : videoInput.length) ? /* @__PURE__ */ React44.createElement(Fragment3, null, isVideoOn && /* @__PURE__ */ React44.createElement(
5701
+ return /* @__PURE__ */ React46.createElement(Box, { className: settingOverflow() }, (videoInput == null ? void 0 : videoInput.length) ? /* @__PURE__ */ React46.createElement(Fragment3, null, isVideoOn && /* @__PURE__ */ React46.createElement(
5619
5702
  StyledVideoTile.Container,
5620
5703
  {
5621
5704
  css: {
@@ -5626,24 +5709,24 @@ var Settings = ({ setHide }) => {
5626
5709
  m: "$10 auto"
5627
5710
  }
5628
5711
  },
5629
- /* @__PURE__ */ React44.createElement(Video, { trackId: videoTrackId, mirror: (track == null ? void 0 : track.facingMode) !== "environment" && mirrorLocalVideo })
5630
- ), /* @__PURE__ */ React44.createElement(
5712
+ /* @__PURE__ */ React46.createElement(Video, { trackId: videoTrackId, mirror: (track == null ? void 0 : track.facingMode) !== "environment" && mirrorLocalVideo })
5713
+ ), /* @__PURE__ */ React46.createElement(
5631
5714
  DeviceSelector,
5632
5715
  {
5633
5716
  title: "Video",
5634
5717
  devices: videoInput,
5635
- icon: /* @__PURE__ */ React44.createElement(VideoOnIcon2, null),
5718
+ icon: /* @__PURE__ */ React46.createElement(VideoOnIcon2, null),
5636
5719
  selection: selectedDeviceIDs.videoInput,
5637
5720
  onChange: (deviceId) => updateDevice({
5638
5721
  deviceId,
5639
5722
  deviceType: DeviceType3.videoInput
5640
5723
  })
5641
5724
  }
5642
- )) : null, (audioInput == null ? void 0 : audioInput.length) ? /* @__PURE__ */ React44.createElement(
5725
+ )) : null, (audioInput == null ? void 0 : audioInput.length) ? /* @__PURE__ */ React46.createElement(
5643
5726
  DeviceSelector,
5644
5727
  {
5645
5728
  title: shouldShowAudioOutput ? "Microphone" : "Audio",
5646
- icon: /* @__PURE__ */ React44.createElement(MicOnIcon4, null),
5729
+ icon: /* @__PURE__ */ React46.createElement(MicOnIcon4, null),
5647
5730
  devices: audioInput,
5648
5731
  selection: selectedDeviceIDs.audioInput,
5649
5732
  onChange: (deviceId) => updateDevice({
@@ -5651,11 +5734,11 @@ var Settings = ({ setHide }) => {
5651
5734
  deviceType: DeviceType3.audioInput
5652
5735
  })
5653
5736
  }
5654
- ) : null, (audioOutputFiltered == null ? void 0 : audioOutputFiltered.length) && shouldShowAudioOutput ? /* @__PURE__ */ React44.createElement(
5737
+ ) : null, (audioOutputFiltered == null ? void 0 : audioOutputFiltered.length) && shouldShowAudioOutput ? /* @__PURE__ */ React46.createElement(
5655
5738
  DeviceSelector,
5656
5739
  {
5657
5740
  title: "Speaker",
5658
- icon: /* @__PURE__ */ React44.createElement(SpeakerIcon2, null),
5741
+ icon: /* @__PURE__ */ React46.createElement(SpeakerIcon2, null),
5659
5742
  devices: audioOutput,
5660
5743
  selection: selectedDeviceIDs.audioOutput,
5661
5744
  onChange: (deviceId) => updateDevice({
@@ -5663,15 +5746,15 @@ var Settings = ({ setHide }) => {
5663
5746
  deviceType: DeviceType3.audioOutput
5664
5747
  })
5665
5748
  },
5666
- /* @__PURE__ */ React44.createElement(TestAudio, { id: selectedDeviceIDs.audioOutput })
5749
+ /* @__PURE__ */ React46.createElement(TestAudio, { id: selectedDeviceIDs.audioOutput })
5667
5750
  ) : null);
5668
5751
  };
5669
5752
  var DeviceSelector = ({ title, devices, selection, onChange, icon, children = null }) => {
5670
5753
  var _a7, _b7;
5671
5754
  const [open, setOpen] = useState14(false);
5672
5755
  const selectionBg = useDropdownSelection();
5673
- const ref = useRef6(null);
5674
- return /* @__PURE__ */ React44.createElement(Box, { css: { mb: "$10" } }, /* @__PURE__ */ React44.createElement(Text, { css: { mb: "$4" } }, title), /* @__PURE__ */ React44.createElement(
5756
+ const ref = useRef7(null);
5757
+ return /* @__PURE__ */ React46.createElement(Box, { css: { mb: "$10" } }, /* @__PURE__ */ React46.createElement(Text, { css: { mb: "$4" } }, title), /* @__PURE__ */ React46.createElement(
5675
5758
  Flex,
5676
5759
  {
5677
5760
  align: "center",
@@ -5683,7 +5766,7 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5683
5766
  }
5684
5767
  }
5685
5768
  },
5686
- /* @__PURE__ */ React44.createElement(
5769
+ /* @__PURE__ */ React46.createElement(
5687
5770
  Box,
5688
5771
  {
5689
5772
  css: {
@@ -5697,7 +5780,7 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5697
5780
  }
5698
5781
  }
5699
5782
  },
5700
- /* @__PURE__ */ React44.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React44.createElement(
5783
+ /* @__PURE__ */ React46.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React46.createElement(
5701
5784
  DialogDropdownTrigger,
5702
5785
  {
5703
5786
  ref,
@@ -5705,8 +5788,8 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5705
5788
  title: ((_a7 = devices.find(({ deviceId }) => deviceId === selection)) == null ? void 0 : _a7.label) || "Select device from list",
5706
5789
  open
5707
5790
  }
5708
- ), /* @__PURE__ */ React44.createElement(Dropdown.Portal, null, /* @__PURE__ */ React44.createElement(Dropdown.Content, { align: "start", sideOffset: 8, css: { w: (_b7 = ref.current) == null ? void 0 : _b7.clientWidth, zIndex: 1001 } }, devices.map((device) => {
5709
- return /* @__PURE__ */ React44.createElement(
5791
+ ), /* @__PURE__ */ React46.createElement(Dropdown.Portal, null, /* @__PURE__ */ React46.createElement(Dropdown.Content, { align: "start", sideOffset: 8, css: { w: (_b7 = ref.current) == null ? void 0 : _b7.clientWidth, zIndex: 1001 } }, devices.map((device) => {
5792
+ return /* @__PURE__ */ React46.createElement(
5710
5793
  Dropdown.Item,
5711
5794
  {
5712
5795
  key: device.label,
@@ -5725,9 +5808,9 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5725
5808
  };
5726
5809
  var TEST_AUDIO_URL = "https://100ms.live/test-audio.wav";
5727
5810
  var TestAudio = ({ id }) => {
5728
- const audioRef = useRef6(null);
5811
+ const audioRef = useRef7(null);
5729
5812
  const [playing, setPlaying] = useState14(false);
5730
- useEffect20(() => {
5813
+ useEffect21(() => {
5731
5814
  if (audioRef.current && id) {
5732
5815
  try {
5733
5816
  if (typeof audioRef.current.setSinkId !== "undefined") {
@@ -5738,7 +5821,7 @@ var TestAudio = ({ id }) => {
5738
5821
  }
5739
5822
  }
5740
5823
  }, [id]);
5741
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(
5824
+ return /* @__PURE__ */ React46.createElement(React46.Fragment, null, /* @__PURE__ */ React46.createElement(
5742
5825
  Button,
5743
5826
  {
5744
5827
  variant: "standard",
@@ -5755,22 +5838,22 @@ var TestAudio = ({ id }) => {
5755
5838
  },
5756
5839
  disabled: playing
5757
5840
  },
5758
- /* @__PURE__ */ React44.createElement(SpeakerIcon2, null),
5841
+ /* @__PURE__ */ React46.createElement(SpeakerIcon2, null),
5759
5842
  "\xA0Test",
5760
5843
  " ",
5761
- /* @__PURE__ */ React44.createElement(Text, { as: "span", css: { display: "none", "@md": { display: "inline" } } }, "\xA0 speaker")
5762
- ), /* @__PURE__ */ React44.createElement("audio", { ref: audioRef, src: TEST_AUDIO_URL, onEnded: () => setPlaying(false), onPlay: () => setPlaying(true) }));
5844
+ /* @__PURE__ */ React46.createElement(Text, { as: "span", css: { display: "none", "@md": { display: "inline" } } }, "\xA0 speaker")
5845
+ ), /* @__PURE__ */ React46.createElement("audio", { ref: audioRef, src: TEST_AUDIO_URL, onEnded: () => setPlaying(false), onPlay: () => setPlaying(true) }));
5763
5846
  };
5764
5847
  var DeviceSettings_default = Settings;
5765
5848
 
5766
5849
  // src/Prebuilt/components/Settings/LayoutSettings.jsx
5767
- import React46, { useCallback as useCallback14 } from "react";
5850
+ import React48, { useCallback as useCallback14 } from "react";
5768
5851
  import { selectIsLocalScreenShared, selectIsLocalVideoEnabled as selectIsLocalVideoEnabled4, useHMSActions as useHMSActions15, useHMSStore as useHMSStore20 } from "@100mslive/react-sdk";
5769
5852
 
5770
5853
  // src/Prebuilt/components/Settings/SwitchWithLabel.jsx
5771
- import React45 from "react";
5854
+ import React47 from "react";
5772
5855
  var SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) => {
5773
- return /* @__PURE__ */ React45.createElement(
5856
+ return /* @__PURE__ */ React47.createElement(
5774
5857
  Flex,
5775
5858
  {
5776
5859
  align: "center",
@@ -5782,7 +5865,7 @@ var SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =>
5782
5865
  display: hide ? "none" : "flex"
5783
5866
  }
5784
5867
  },
5785
- /* @__PURE__ */ React45.createElement(
5868
+ /* @__PURE__ */ React47.createElement(
5786
5869
  Label3,
5787
5870
  {
5788
5871
  htmlFor: id,
@@ -5800,7 +5883,7 @@ var SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =>
5800
5883
  icon,
5801
5884
  label
5802
5885
  ),
5803
- /* @__PURE__ */ React45.createElement(Switch, { id, checked, onCheckedChange: onChange })
5886
+ /* @__PURE__ */ React47.createElement(Switch, { id, checked, onCheckedChange: onChange })
5804
5887
  );
5805
5888
  };
5806
5889
  var SwitchWithLabel_default = SwitchWithLabel;
@@ -5821,7 +5904,7 @@ var LayoutSettings = () => {
5821
5904
  }),
5822
5905
  [hmsActions, isLocalVideoEnabled, isLocalScreenShared, setUISettings]
5823
5906
  );
5824
- return /* @__PURE__ */ React46.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React46.createElement(SwitchWithLabel_default, { label: "Audio Only Mode", id: "audioOnlyMode", checked: isAudioOnly, onChange: toggleIsAudioOnly }), /* @__PURE__ */ React46.createElement(
5907
+ return /* @__PURE__ */ React48.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React48.createElement(SwitchWithLabel_default, { label: "Audio Only Mode", id: "audioOnlyMode", checked: isAudioOnly, onChange: toggleIsAudioOnly }), /* @__PURE__ */ React48.createElement(
5825
5908
  SwitchWithLabel_default,
5826
5909
  {
5827
5910
  label: "Mirror Local Video",
@@ -5833,7 +5916,7 @@ var LayoutSettings = () => {
5833
5916
  });
5834
5917
  }
5835
5918
  }
5836
- ), /* @__PURE__ */ React46.createElement(Flex, { align: "center", css: { w: "100%", my: "$2", py: "$8", "@md": { display: "none" } } }, /* @__PURE__ */ React46.createElement(Text, { variant: "md", css: { fontWeight: "$semiBold" } }, "Tiles In View(", maxTileCount, ")"), /* @__PURE__ */ React46.createElement(Flex, { justify: "end", css: { flex: "1 1 0" } }, /* @__PURE__ */ React46.createElement(
5919
+ ), /* @__PURE__ */ React48.createElement(Flex, { align: "center", css: { w: "100%", my: "$2", py: "$8", "@md": { display: "none" } } }, /* @__PURE__ */ React48.createElement(Text, { variant: "md", css: { fontWeight: "$semiBold" } }, "Tiles In View(", maxTileCount, ")"), /* @__PURE__ */ React48.createElement(Flex, { justify: "end", css: { flex: "1 1 0" } }, /* @__PURE__ */ React48.createElement(
5837
5920
  Slider,
5838
5921
  {
5839
5922
  step: 1,
@@ -5849,11 +5932,11 @@ var LayoutSettings = () => {
5849
5932
  };
5850
5933
 
5851
5934
  // src/Prebuilt/components/Settings/NotificationSettings.jsx
5852
- import React47 from "react";
5935
+ import React49 from "react";
5853
5936
  import { AlertOctagonIcon, HandIcon as HandIcon2, PeopleAddIcon as PeopleAddIcon2, PeopleRemoveIcon as PeopleRemoveIcon2 } from "@100mslive/react-icons";
5854
5937
  var NotificationItem = ({ type, label, icon, checked }) => {
5855
5938
  const [, setSubscribedNotifications] = useSetSubscribedNotifications(type);
5856
- return /* @__PURE__ */ React47.createElement(
5939
+ return /* @__PURE__ */ React49.createElement(
5857
5940
  SwitchWithLabel_default,
5858
5941
  {
5859
5942
  label,
@@ -5868,36 +5951,36 @@ var NotificationItem = ({ type, label, icon, checked }) => {
5868
5951
  };
5869
5952
  var NotificationSettings = () => {
5870
5953
  const subscribedNotifications = useSubscribedNotifications();
5871
- return /* @__PURE__ */ React47.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React47.createElement(
5954
+ return /* @__PURE__ */ React49.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React49.createElement(
5872
5955
  NotificationItem,
5873
5956
  {
5874
5957
  label: "Peer Joined",
5875
5958
  type: SUBSCRIBED_NOTIFICATIONS.PEER_JOINED,
5876
- icon: /* @__PURE__ */ React47.createElement(PeopleAddIcon2, null),
5959
+ icon: /* @__PURE__ */ React49.createElement(PeopleAddIcon2, null),
5877
5960
  checked: subscribedNotifications.PEER_JOINED
5878
5961
  }
5879
- ), /* @__PURE__ */ React47.createElement(
5962
+ ), /* @__PURE__ */ React49.createElement(
5880
5963
  NotificationItem,
5881
5964
  {
5882
5965
  label: "Peer Leave",
5883
5966
  type: SUBSCRIBED_NOTIFICATIONS.PEER_LEFT,
5884
- icon: /* @__PURE__ */ React47.createElement(PeopleRemoveIcon2, null),
5967
+ icon: /* @__PURE__ */ React49.createElement(PeopleRemoveIcon2, null),
5885
5968
  checked: subscribedNotifications.PEER_LEFT
5886
5969
  }
5887
- ), /* @__PURE__ */ React47.createElement(
5970
+ ), /* @__PURE__ */ React49.createElement(
5888
5971
  NotificationItem,
5889
5972
  {
5890
5973
  label: "Hand Raised",
5891
5974
  type: SUBSCRIBED_NOTIFICATIONS.METADATA_UPDATED,
5892
- icon: /* @__PURE__ */ React47.createElement(HandIcon2, null),
5975
+ icon: /* @__PURE__ */ React49.createElement(HandIcon2, null),
5893
5976
  checked: subscribedNotifications.METADATA_UPDATED
5894
5977
  }
5895
- ), /* @__PURE__ */ React47.createElement(
5978
+ ), /* @__PURE__ */ React49.createElement(
5896
5979
  NotificationItem,
5897
5980
  {
5898
5981
  label: "Error",
5899
5982
  type: SUBSCRIBED_NOTIFICATIONS.ERROR,
5900
- icon: /* @__PURE__ */ React47.createElement(AlertOctagonIcon, null),
5983
+ icon: /* @__PURE__ */ React49.createElement(AlertOctagonIcon, null),
5901
5984
  checked: subscribedNotifications.ERROR
5902
5985
  }
5903
5986
  ));
@@ -5939,7 +6022,7 @@ var settingsList = [
5939
6022
  ];
5940
6023
 
5941
6024
  // src/Prebuilt/components/Settings/SettingsModal.jsx
5942
- var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ */ React48.createElement(React48.Fragment, null) }) => {
6025
+ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ */ React50.createElement(React50.Fragment, null) }) => {
5943
6026
  const mediaQueryLg = config.media.md;
5944
6027
  const isMobile = useMedia4(mediaQueryLg);
5945
6028
  const [showSetting, setShowSetting] = useState15(
@@ -5949,7 +6032,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5949
6032
  (key) => (hide) => setShowSetting((prev) => __spreadProps(__spreadValues({}, prev), { [key]: !hide })),
5950
6033
  [setShowSetting]
5951
6034
  );
5952
- useEffect21(() => {
6035
+ useEffect22(() => {
5953
6036
  if (screenType === "hls_live_streaming") {
5954
6037
  hideSettingByTabName("layout")(true);
5955
6038
  }
@@ -5961,7 +6044,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5961
6044
  const resetSelection = useCallback15(() => {
5962
6045
  setSelection("");
5963
6046
  }, []);
5964
- useEffect21(() => {
6047
+ useEffect22(() => {
5965
6048
  var _a7;
5966
6049
  if (isMobile) {
5967
6050
  setSelection("");
@@ -5970,7 +6053,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5970
6053
  setSelection(firstNotHiddenTabName);
5971
6054
  }
5972
6055
  }, [isMobile, showSetting]);
5973
- return isMobile ? /* @__PURE__ */ React48.createElement(
6056
+ return isMobile ? /* @__PURE__ */ React50.createElement(
5974
6057
  MobileSettingModal,
5975
6058
  {
5976
6059
  open,
@@ -5982,7 +6065,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5982
6065
  resetSelection,
5983
6066
  children
5984
6067
  }
5985
- ) : /* @__PURE__ */ React48.createElement(
6068
+ ) : /* @__PURE__ */ React50.createElement(
5986
6069
  DesktopSettingModal,
5987
6070
  {
5988
6071
  open,
@@ -6004,9 +6087,9 @@ var MobileSettingModal = ({
6004
6087
  showSetting,
6005
6088
  hideSettingByTabName,
6006
6089
  resetSelection,
6007
- children = /* @__PURE__ */ React48.createElement(React48.Fragment, null)
6090
+ children = /* @__PURE__ */ React50.createElement(React50.Fragment, null)
6008
6091
  }) => {
6009
- return /* @__PURE__ */ React48.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React48.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React48.createElement(
6092
+ return /* @__PURE__ */ React50.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React50.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React50.createElement(
6010
6093
  Sheet.Content,
6011
6094
  {
6012
6095
  css: {
@@ -6014,9 +6097,9 @@ var MobileSettingModal = ({
6014
6097
  overflowY: "auto"
6015
6098
  }
6016
6099
  },
6017
- /* @__PURE__ */ React48.createElement(Sheet.Title, { css: { py: "$10", px: "$8", alignItems: "center" } }, /* @__PURE__ */ React48.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%" } }, !selection ? /* @__PURE__ */ React48.createElement(Text, { variant: "h6", css: { display: "flex" } }, "Settings") : /* @__PURE__ */ React48.createElement(Text, { variant: "h6", css: { display: "flex" } }, /* @__PURE__ */ React48.createElement(Box, { as: "span", css: { r: "$round", mr: "$2" }, onClick: resetSelection }, /* @__PURE__ */ React48.createElement(ChevronLeftIcon, null)), (selection == null ? void 0 : selection.charAt(0).toUpperCase()) + selection.slice(1)), /* @__PURE__ */ React48.createElement(Sheet.Close, null, /* @__PURE__ */ React48.createElement(IconButton, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React48.createElement(CrossIcon6, null))))),
6018
- /* @__PURE__ */ React48.createElement(HorizontalDivider, null),
6019
- !selection ? /* @__PURE__ */ React48.createElement(
6100
+ /* @__PURE__ */ React50.createElement(Sheet.Title, { css: { py: "$10", px: "$8", alignItems: "center" } }, /* @__PURE__ */ React50.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%" } }, !selection ? /* @__PURE__ */ React50.createElement(Text, { variant: "h6", css: { display: "flex" } }, "Settings") : /* @__PURE__ */ React50.createElement(Text, { variant: "h6", css: { display: "flex" } }, /* @__PURE__ */ React50.createElement(Box, { as: "span", css: { r: "$round", mr: "$2" }, onClick: resetSelection }, /* @__PURE__ */ React50.createElement(ChevronLeftIcon, null)), (selection == null ? void 0 : selection.charAt(0).toUpperCase()) + selection.slice(1)), /* @__PURE__ */ React50.createElement(Sheet.Close, null, /* @__PURE__ */ React50.createElement(IconButton, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React50.createElement(CrossIcon6, null))))),
6101
+ /* @__PURE__ */ React50.createElement(HorizontalDivider, null),
6102
+ !selection ? /* @__PURE__ */ React50.createElement(
6020
6103
  Flex,
6021
6104
  {
6022
6105
  direction: "column",
@@ -6027,7 +6110,7 @@ var MobileSettingModal = ({
6027
6110
  }
6028
6111
  },
6029
6112
  settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ icon: Icon2, tabName, title }) => {
6030
- return /* @__PURE__ */ React48.createElement(
6113
+ return /* @__PURE__ */ React50.createElement(
6031
6114
  Box,
6032
6115
  {
6033
6116
  key: tabName,
@@ -6057,18 +6140,18 @@ var MobileSettingModal = ({
6057
6140
  borderBottom: "1px solid $border_default"
6058
6141
  }
6059
6142
  },
6060
- /* @__PURE__ */ React48.createElement(Icon2, null),
6143
+ /* @__PURE__ */ React50.createElement(Icon2, null),
6061
6144
  title
6062
6145
  );
6063
6146
  })
6064
- ) : /* @__PURE__ */ React48.createElement(
6147
+ ) : /* @__PURE__ */ React50.createElement(
6065
6148
  Box,
6066
6149
  {
6067
6150
  direction: "column",
6068
6151
  css: { overflowY: "scroll", px: "$8", py: "$10", maxHeight: "70vh", overflowX: "hidden" }
6069
6152
  },
6070
6153
  settingsList.filter(({ tabName }) => showSetting[tabName] && selection === tabName).map(({ content: Content10, title, tabName }) => {
6071
- return /* @__PURE__ */ React48.createElement(Content10, { key: title, setHide: hideSettingByTabName(tabName) });
6154
+ return /* @__PURE__ */ React50.createElement(Content10, { key: title, setHide: hideSettingByTabName(tabName) });
6072
6155
  })
6073
6156
  )
6074
6157
  ));
@@ -6081,9 +6164,9 @@ var DesktopSettingModal = ({
6081
6164
  showSetting,
6082
6165
  hideSettingByTabName,
6083
6166
  resetSelection,
6084
- children = /* @__PURE__ */ React48.createElement(React48.Fragment, null)
6167
+ children = /* @__PURE__ */ React50.createElement(React50.Fragment, null)
6085
6168
  }) => {
6086
- return /* @__PURE__ */ React48.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React48.createElement(Dialog.Trigger, { asChild: true }, children), /* @__PURE__ */ React48.createElement(Dialog.Portal, null, /* @__PURE__ */ React48.createElement(Dialog.Overlay, null), /* @__PURE__ */ React48.createElement(
6169
+ return /* @__PURE__ */ React50.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React50.createElement(Dialog.Trigger, { asChild: true }, children), /* @__PURE__ */ React50.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React50.createElement(Dialog.Overlay, null), /* @__PURE__ */ React50.createElement(
6087
6170
  Dialog.Content,
6088
6171
  {
6089
6172
  css: {
@@ -6093,7 +6176,7 @@ var DesktopSettingModal = ({
6093
6176
  r: "$4"
6094
6177
  }
6095
6178
  },
6096
- /* @__PURE__ */ React48.createElement(
6179
+ /* @__PURE__ */ React50.createElement(
6097
6180
  Tabs.Root,
6098
6181
  {
6099
6182
  value: selection,
@@ -6101,7 +6184,7 @@ var DesktopSettingModal = ({
6101
6184
  onValueChange: setSelection,
6102
6185
  css: { size: "100%", position: "relative" }
6103
6186
  },
6104
- /* @__PURE__ */ React48.createElement(
6187
+ /* @__PURE__ */ React50.createElement(
6105
6188
  Tabs.List,
6106
6189
  {
6107
6190
  css: {
@@ -6113,12 +6196,12 @@ var DesktopSettingModal = ({
6113
6196
  borderBottomLeftRadius: "$4"
6114
6197
  }
6115
6198
  },
6116
- /* @__PURE__ */ React48.createElement(Text, { variant: "h5" }, "Settings "),
6117
- /* @__PURE__ */ React48.createElement(Flex, { direction: "column", css: { mx: 0, overflowY: "auto", pt: "$10" } }, settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ icon: Icon2, tabName, title }) => {
6118
- return /* @__PURE__ */ React48.createElement(Tabs.Trigger, { key: tabName, value: tabName, css: { gap: "$8" } }, /* @__PURE__ */ React48.createElement(Icon2, null), title);
6199
+ /* @__PURE__ */ React50.createElement(Text, { variant: "h5" }, "Settings "),
6200
+ /* @__PURE__ */ React50.createElement(Flex, { direction: "column", css: { mx: 0, overflowY: "auto", pt: "$10" } }, settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ icon: Icon2, tabName, title }) => {
6201
+ return /* @__PURE__ */ React50.createElement(Tabs.Trigger, { key: tabName, value: tabName, css: { gap: "$8" } }, /* @__PURE__ */ React50.createElement(Icon2, null), title);
6119
6202
  }))
6120
6203
  ),
6121
- selection && /* @__PURE__ */ React48.createElement(
6204
+ selection && /* @__PURE__ */ React50.createElement(
6122
6205
  Flex,
6123
6206
  {
6124
6207
  direction: "column",
@@ -6129,727 +6212,21 @@ var DesktopSettingModal = ({
6129
6212
  }
6130
6213
  },
6131
6214
  settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ content: Content10, title, tabName }) => {
6132
- return /* @__PURE__ */ React48.createElement(Tabs.Content, { key: tabName, value: tabName, className: settingContent() }, /* @__PURE__ */ React48.createElement(SettingsContentHeader, { onBack: resetSelection, isMobile: false }, title), /* @__PURE__ */ React48.createElement(Content10, { setHide: hideSettingByTabName(tabName) }));
6215
+ return /* @__PURE__ */ React50.createElement(Tabs.Content, { key: tabName, value: tabName, className: settingContent() }, /* @__PURE__ */ React50.createElement(SettingsContentHeader, { onBack: resetSelection, isMobile: false }, title), /* @__PURE__ */ React50.createElement(Content10, { setHide: hideSettingByTabName(tabName) }));
6133
6216
  })
6134
6217
  )
6135
6218
  ),
6136
- /* @__PURE__ */ React48.createElement(Dialog.Close, { css: { position: "absolute", right: "$10", top: "$10" } }, /* @__PURE__ */ React48.createElement(IconButton, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React48.createElement(CrossIcon6, null)))
6219
+ /* @__PURE__ */ React50.createElement(Dialog.Close, { css: { position: "absolute", right: "$10", top: "$10" } }, /* @__PURE__ */ React50.createElement(IconButton, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React50.createElement(CrossIcon6, null)))
6137
6220
  )));
6138
6221
  };
6139
6222
  var SettingsContentHeader = ({ children, isMobile, onBack }) => {
6140
- return /* @__PURE__ */ React48.createElement(Text, { variant: "h6", css: { mb: "$12", display: "flex", alignItems: "center" } }, isMobile && /* @__PURE__ */ React48.createElement(Box, { as: "span", css: { bg: "$surface_bright", mr: "$4", r: "$round", p: "$2" }, onClick: onBack }, /* @__PURE__ */ React48.createElement(ChevronLeftIcon, null)), children);
6223
+ return /* @__PURE__ */ React50.createElement(Text, { variant: "h6", css: { mb: "$12", display: "flex", alignItems: "center" } }, isMobile && /* @__PURE__ */ React50.createElement(Box, { as: "span", css: { bg: "$surface_bright", mr: "$4", r: "$round", p: "$2" }, onClick: onBack }, /* @__PURE__ */ React50.createElement(ChevronLeftIcon, null)), children);
6141
6224
  };
6142
6225
  var SettingsModal_default = SettingsModal;
6143
6226
 
6144
- // src/Prebuilt/components/VideoTile.jsx
6145
- import React53, { Fragment as Fragment5, useCallback as useCallback16, useEffect as useEffect23, useMemo as useMemo3, useRef as useRef7, useState as useState18 } from "react";
6146
- import { useMedia as useMedia8 } from "react-use";
6147
- import {
6148
- selectAudioTrackByPeerID as selectAudioTrackByPeerID2,
6149
- selectHasPeerHandRaised as selectHasPeerHandRaised3,
6150
- selectIsPeerAudioEnabled,
6151
- selectLocalPeerID as selectLocalPeerID5,
6152
- selectPeerMetadata as selectPeerMetadata2,
6153
- selectPeerNameByID,
6154
- selectSessionStore as selectSessionStore3,
6155
- selectTrackAudioByID,
6156
- selectVideoTrackByID as selectVideoTrackByID4,
6157
- selectVideoTrackByPeerID as selectVideoTrackByPeerID3,
6158
- useHMSStore as useHMSStore24,
6159
- useHMSVanillaStore as useHMSVanillaStore6
6160
- } from "@100mslive/react-sdk";
6161
- import { BrbTileIcon, HandIcon as HandIcon3, MicOffIcon as MicOffIcon3 } from "@100mslive/react-icons";
6162
-
6163
- // src/Prebuilt/components/TileMenu/TileMenu.jsx
6164
- import React52, { useState as useState17 } from "react";
6165
- import { useMedia as useMedia7 } from "react-use";
6166
- import {
6167
- selectLocalPeerID as selectLocalPeerID4,
6168
- selectPeerByID as selectPeerByID2,
6169
- selectPermissions as selectPermissions3,
6170
- selectTrackByID as selectTrackByID3,
6171
- selectVideoTrackByPeerID as selectVideoTrackByPeerID2,
6172
- useHMSStore as useHMSStore23,
6173
- useRemoteAVToggle as useRemoteAVToggle2
6174
- } from "@100mslive/react-sdk";
6175
- import { CrossIcon as CrossIcon8, VerticalMenuIcon as VerticalMenuIcon2 } from "@100mslive/react-icons";
6176
-
6177
- // src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx
6178
- import React50, { useState as useState16 } from "react";
6179
- import { useMedia as useMedia5 } from "react-use";
6180
- import { selectLocalPeerName, useHMSActions as useHMSActions16, useHMSStore as useHMSStore21 } from "@100mslive/react-sdk";
6181
-
6182
- // src/Prebuilt/components/MoreSettings/ChangeNameContent.jsx
6183
- import React49 from "react";
6184
- import { ChevronLeftIcon as ChevronLeftIcon2, CrossIcon as CrossIcon7 } from "@100mslive/react-icons";
6185
- var ChangeNameContent = ({
6186
- changeName,
6187
- setCurrentName,
6188
- currentName,
6189
- localPeerName,
6190
- isMobile,
6191
- onExit,
6192
- onBackClick
6193
- }) => {
6194
- return /* @__PURE__ */ React49.createElement(
6195
- "form",
6196
- {
6197
- onSubmit: (e) => __async(void 0, null, function* () {
6198
- e.preventDefault();
6199
- yield changeName();
6200
- })
6201
- },
6202
- /* @__PURE__ */ React49.createElement(
6203
- Text,
6204
- {
6205
- variant: isMobile ? "md" : "lg",
6206
- css: {
6207
- color: "$on_surface_high",
6208
- fontWeight: "$semiBold",
6209
- display: "flex",
6210
- pb: "$4",
6211
- "@md": { px: "$8", borderBottom: "1px solid $border_default" }
6212
- }
6213
- },
6214
- isMobile ? /* @__PURE__ */ React49.createElement(ChevronLeftIcon2, { onClick: onBackClick, style: { marginRight: "0.5rem" } }) : null,
6215
- "Change Name",
6216
- /* @__PURE__ */ React49.createElement(
6217
- Box,
6218
- {
6219
- css: { color: "inherit", ml: "auto", "&:hover": { color: "$on_surface_medium", cursor: "pointer" } },
6220
- onClick: onExit
6221
- },
6222
- /* @__PURE__ */ React49.createElement(CrossIcon7, null)
6223
- )
6224
- ),
6225
- /* @__PURE__ */ React49.createElement(Text, { variant: "sm", css: { color: "$on_surface_medium", pb: "$6", mb: "$8", "@md": { px: "$8", mt: "$4" } } }, "Your name will be visible to other participants in the session."),
6226
- /* @__PURE__ */ React49.createElement(Flex, { justify: "center", align: "center", css: { my: "$8", w: "100%", "@md": { px: "$8" } } }, /* @__PURE__ */ React49.createElement(
6227
- Input,
6228
- {
6229
- css: { width: "100%", bg: "$surface_default" },
6230
- value: currentName,
6231
- type: isMobile ? "search" : "text",
6232
- onChange: (e) => {
6233
- setCurrentName(e.target.value);
6234
- },
6235
- autoComplete: "name",
6236
- required: true,
6237
- "data-testid": "change_name_field",
6238
- onKeyDown: (e) => __async(void 0, null, function* () {
6239
- if (e.key === "Enter" && currentName.trim().length > 0 && currentName !== localPeerName) {
6240
- e.preventDefault();
6241
- if (isMobile) {
6242
- return;
6243
- }
6244
- changeName();
6245
- }
6246
- })
6247
- }
6248
- )),
6249
- /* @__PURE__ */ React49.createElement(
6250
- Flex,
6251
- {
6252
- justify: "between",
6253
- align: "center",
6254
- css: {
6255
- width: "100%",
6256
- gap: "$md",
6257
- mt: "$10",
6258
- "@md": { px: "$4" }
6259
- }
6260
- },
6261
- isMobile ? null : /* @__PURE__ */ React49.createElement(
6262
- Button,
6263
- {
6264
- variant: "standard",
6265
- css: { w: "100%" },
6266
- outlined: true,
6267
- type: "submit",
6268
- disabled: !localPeerName,
6269
- onClick: onExit
6270
- },
6271
- "Cancel"
6272
- ),
6273
- /* @__PURE__ */ React49.createElement(
6274
- Button,
6275
- {
6276
- variant: "primary",
6277
- css: { width: "100%" },
6278
- type: "submit",
6279
- disabled: !currentName.trim() || currentName.trim() === localPeerName,
6280
- "data-testid": "popup_change_btn"
6281
- },
6282
- "Change"
6283
- )
6284
- )
6285
- );
6286
- };
6287
-
6288
- // src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx
6289
- var ChangeNameModal = ({ onOpenChange, openParentSheet = null }) => {
6290
- const [previewPreference, setPreviewPreference] = useUserPreferences(UserPreferencesKeys.PREVIEW);
6291
- const hmsActions = useHMSActions16();
6292
- const localPeerName = useHMSStore21(selectLocalPeerName);
6293
- const [currentName, setCurrentName] = useState16(localPeerName);
6294
- const isMobile = useMedia5(config.media.md);
6295
- const changeName = () => __async(void 0, null, function* () {
6296
- const name = currentName.trim();
6297
- if (!name || name === localPeerName) {
6298
- return;
6299
- }
6300
- try {
6301
- yield hmsActions.changeName(name);
6302
- setPreviewPreference(__spreadProps(__spreadValues({}, previewPreference || {}), {
6303
- name
6304
- }));
6305
- } catch (error) {
6306
- console.error("failed to update name", error);
6307
- ToastManager.addToast({ title: error.message });
6308
- } finally {
6309
- onOpenChange(false);
6310
- }
6311
- });
6312
- const props = {
6313
- changeName,
6314
- setCurrentName,
6315
- currentName,
6316
- localPeerName,
6317
- isMobile,
6318
- onExit: () => onOpenChange(false),
6319
- onBackClick: () => {
6320
- onOpenChange(false);
6321
- openParentSheet();
6322
- }
6323
- };
6324
- if (isMobile) {
6325
- return /* @__PURE__ */ React50.createElement(Sheet.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React50.createElement(Sheet.Content, { css: { bg: "$surface_dim", p: "$8 0" } }, /* @__PURE__ */ React50.createElement(ChangeNameContent, __spreadValues({}, props))));
6326
- }
6327
- return /* @__PURE__ */ React50.createElement(Dialog.Root, { defaultOpen: true, onOpenChange }, /* @__PURE__ */ React50.createElement(Dialog.Portal, null, /* @__PURE__ */ React50.createElement(Dialog.Overlay, null), /* @__PURE__ */ React50.createElement(Dialog.Content, { css: { bg: "$surface_dim", width: "min(400px,80%)", p: "$10" } }, /* @__PURE__ */ React50.createElement(ChangeNameContent, __spreadValues({}, props)))));
6328
- };
6329
-
6330
- // src/Prebuilt/components/TileMenu/TileMenuContent.jsx
6331
- import React51, { Fragment as Fragment4 } from "react";
6332
- import { useMedia as useMedia6 } from "react-use";
6333
- import {
6334
- selectPermissions as selectPermissions2,
6335
- selectSessionStore as selectSessionStore2,
6336
- selectTrackByID as selectTrackByID2,
6337
- useCustomEvent as useCustomEvent2,
6338
- useHMSActions as useHMSActions17,
6339
- useHMSStore as useHMSStore22,
6340
- useRemoteAVToggle
6341
- } from "@100mslive/react-sdk";
6342
- import {
6343
- MicOffIcon as MicOffIcon2,
6344
- MicOnIcon as MicOnIcon5,
6345
- PencilIcon,
6346
- PinIcon as PinIcon2,
6347
- RemoveUserIcon,
6348
- ShareScreenIcon as ShareScreenIcon2,
6349
- ShrinkIcon,
6350
- SpeakerIcon as SpeakerIcon3,
6351
- StarIcon,
6352
- VideoOffIcon as VideoOffIcon2,
6353
- VideoOnIcon as VideoOnIcon3
6354
- } from "@100mslive/react-icons";
6355
- var isSameTile = ({ trackId, videoTrackID, audioTrackID }) => trackId && (videoTrackID && videoTrackID === trackId || audioTrackID && audioTrackID === trackId);
6356
- var spacingCSS = { "@md": { my: "$8", fontWeight: "$semiBold", fontSize: "sm" } };
6357
- var SpotlightActions = ({
6358
- peerId,
6359
- onSpotLightClick = () => {
6360
- return;
6361
- }
6362
- }) => {
6363
- const hmsActions = useHMSActions17();
6364
- const spotlightPeerId = useHMSStore22(selectSessionStore2(SESSION_STORE_KEY.SPOTLIGHT));
6365
- const isTileSpotlighted = spotlightPeerId === peerId;
6366
- const setSpotlightPeerId = (peer) => hmsActions.sessionStore.set(SESSION_STORE_KEY.SPOTLIGHT, peer).catch((err) => ToastManager.addToast({ title: err.description }));
6367
- return /* @__PURE__ */ React51.createElement(
6368
- StyledMenuTile.ItemButton,
6369
- {
6370
- css: spacingCSS,
6371
- onClick: () => {
6372
- if (isTileSpotlighted) {
6373
- setSpotlightPeerId();
6374
- } else {
6375
- setSpotlightPeerId(peerId);
6376
- }
6377
- onSpotLightClick();
6378
- }
6379
- },
6380
- /* @__PURE__ */ React51.createElement(StarIcon, { height: 20, width: 20 }),
6381
- /* @__PURE__ */ React51.createElement("span", null, isTileSpotlighted ? "Remove from Spotlight" : "Spotlight Tile for everyone")
6382
- );
6383
- };
6384
- var PinActions = ({ audioTrackID, videoTrackID }) => {
6385
- const [pinnedTrackId, setPinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
6386
- const isTilePinned = isSameTile({
6387
- trackId: pinnedTrackId,
6388
- videoTrackID,
6389
- audioTrackID
6390
- });
6391
- return /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(
6392
- StyledMenuTile.ItemButton,
6393
- {
6394
- css: spacingCSS,
6395
- onClick: () => isTilePinned ? setPinnedTrackId() : setPinnedTrackId(videoTrackID || audioTrackID)
6396
- },
6397
- /* @__PURE__ */ React51.createElement(PinIcon2, { height: 20, width: 20 }),
6398
- /* @__PURE__ */ React51.createElement("span", null, isTilePinned ? "Unpin" : "Pin", " Tile for myself")
6399
- ));
6400
- };
6401
- var MinimiseInset = () => {
6402
- const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);
6403
- return /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(StyledMenuTile.ItemButton, { css: spacingCSS, onClick: () => setMinimised(!minimised) }, /* @__PURE__ */ React51.createElement(ShrinkIcon, { height: 20, width: 20 }), /* @__PURE__ */ React51.createElement("span", null, minimised ? "Show" : "Minimise", " your video")));
6404
- };
6405
- var SimulcastLayers = ({ trackId }) => {
6406
- var _a7;
6407
- const track = useHMSStore22(selectTrackByID2(trackId));
6408
- const actions = useHMSActions17();
6409
- const bg = useDropdownSelection();
6410
- if (!((_a7 = track == null ? void 0 : track.layerDefinitions) == null ? void 0 : _a7.length) || track.degraded || !track.enabled) {
6411
- return null;
6412
- }
6413
- const currentLayer = track.layerDefinitions.find((layer) => layer.layer === track.layer);
6414
- return /* @__PURE__ */ React51.createElement(Fragment4, null, /* @__PURE__ */ React51.createElement(StyledMenuTile.ItemButton, { css: { color: "$on_surface_medium", cursor: "default" } }, "Select maximum resolution"), track.layerDefinitions.map((layer) => {
6415
- return /* @__PURE__ */ React51.createElement(
6416
- StyledMenuTile.ItemButton,
6417
- {
6418
- key: layer.layer,
6419
- onClick: () => __async(void 0, null, function* () {
6420
- yield actions.setPreferredLayer(trackId, layer.layer);
6421
- }),
6422
- css: {
6423
- justifyContent: "space-between",
6424
- bg: track.preferredLayer === layer.layer ? bg : void 0,
6425
- "&:hover": {
6426
- bg: track.preferredLayer === layer.layer ? bg : void 0
6427
- }
6428
- }
6429
- },
6430
- /* @__PURE__ */ React51.createElement(
6431
- Text,
6432
- {
6433
- as: "span",
6434
- css: {
6435
- textTransform: "capitalize",
6436
- mr: "$2",
6437
- fontWeight: track.preferredLayer === layer.layer ? "$semiBold" : "$regular",
6438
- color: track.preferredLayer === layer.layer ? "$on_primary_high" : "$on_surface_high"
6439
- }
6440
- },
6441
- layer.layer
6442
- ),
6443
- /* @__PURE__ */ React51.createElement(
6444
- Text,
6445
- {
6446
- as: "span",
6447
- variant: "xs",
6448
- css: {
6449
- color: track.preferredLayer === layer.layer ? "$on_primary_high" : "$on_surface_high"
6450
- }
6451
- },
6452
- layer.resolution.width,
6453
- "x",
6454
- layer.resolution.height
6455
- )
6456
- );
6457
- }), /* @__PURE__ */ React51.createElement(StyledMenuTile.ItemButton, null, /* @__PURE__ */ React51.createElement(Text, { as: "span", variant: "xs", css: { color: "$on_surface_medium" } }, "Currently streaming:", /* @__PURE__ */ React51.createElement(
6458
- Text,
6459
- {
6460
- as: "span",
6461
- variant: "xs",
6462
- css: {
6463
- fontWeight: "$semiBold",
6464
- textTransform: "capitalize",
6465
- color: "$on_surface_medium",
6466
- ml: "$2"
6467
- }
6468
- },
6469
- currentLayer ? /* @__PURE__ */ React51.createElement(React51.Fragment, null, track.layer, " (", currentLayer.resolution.width, "x", currentLayer.resolution.height, ")") : "-"
6470
- ))));
6471
- };
6472
- var TileMenuContent = (props) => {
6473
- const actions = useHMSActions17();
6474
- const { removeOthers } = useHMSStore22(selectPermissions2);
6475
- const {
6476
- videoTrackID,
6477
- audioTrackID,
6478
- isLocal,
6479
- isScreenshare,
6480
- showSpotlight,
6481
- showPinAction,
6482
- peerID,
6483
- canMinimise,
6484
- closeSheetOnClick = () => {
6485
- return;
6486
- },
6487
- openNameChangeModal = () => {
6488
- return;
6489
- }
6490
- } = props;
6491
- const { isAudioEnabled, isVideoEnabled, setVolume, toggleAudio, toggleVideo, volume } = useRemoteAVToggle(
6492
- audioTrackID,
6493
- videoTrackID
6494
- );
6495
- const { sendEvent } = useCustomEvent2({
6496
- type: REMOTE_STOP_SCREENSHARE_TYPE
6497
- });
6498
- const isMobile = useMedia6(config.media.md);
6499
- return isLocal ? (showPinAction || canMinimise) && /* @__PURE__ */ React51.createElement(React51.Fragment, null, showPinAction && /* @__PURE__ */ React51.createElement(PinActions, { audioTrackID, videoTrackID }), showSpotlight && /* @__PURE__ */ React51.createElement(SpotlightActions, { peerId: peerID, onSpotLightClick: () => closeSheetOnClick() }), canMinimise && /* @__PURE__ */ React51.createElement(MinimiseInset, null), /* @__PURE__ */ React51.createElement(
6500
- StyledMenuTile.ItemButton,
6501
- {
6502
- onClick: () => {
6503
- openNameChangeModal();
6504
- closeSheetOnClick();
6505
- }
6506
- },
6507
- /* @__PURE__ */ React51.createElement(PencilIcon, { height: 20, width: 20 }),
6508
- /* @__PURE__ */ React51.createElement(Text, { variant: "sm", css: { "@md": { fontWeight: "$semiBold" }, c: "$on_surface_high" } }, "Change Name")
6509
- )) : /* @__PURE__ */ React51.createElement(React51.Fragment, null, toggleVideo ? /* @__PURE__ */ React51.createElement(
6510
- StyledMenuTile.ItemButton,
6511
- {
6512
- css: spacingCSS,
6513
- onClick: () => {
6514
- toggleVideo();
6515
- closeSheetOnClick();
6516
- },
6517
- "data-testid": isVideoEnabled ? "mute_video_participant_btn" : "unmute_video_participant_btn"
6518
- },
6519
- isVideoEnabled ? /* @__PURE__ */ React51.createElement(VideoOnIcon3, { height: 20, width: 20 }) : /* @__PURE__ */ React51.createElement(VideoOffIcon2, { height: 20, width: 20 }),
6520
- /* @__PURE__ */ React51.createElement("span", null, isVideoEnabled ? "Mute" : "Request Unmute")
6521
- ) : null, toggleAudio ? /* @__PURE__ */ React51.createElement(
6522
- StyledMenuTile.ItemButton,
6523
- {
6524
- css: spacingCSS,
6525
- onClick: () => {
6526
- toggleAudio();
6527
- closeSheetOnClick();
6528
- },
6529
- "data-testid": isVideoEnabled ? "mute_audio_participant_btn" : "unmute_audio_participant_btn"
6530
- },
6531
- isAudioEnabled ? /* @__PURE__ */ React51.createElement(MicOnIcon5, { height: 20, width: 20 }) : /* @__PURE__ */ React51.createElement(MicOffIcon2, { height: 20, width: 20 }),
6532
- /* @__PURE__ */ React51.createElement("span", null, isAudioEnabled ? "Mute" : "Request Unmute")
6533
- ) : null, audioTrackID ? /* @__PURE__ */ React51.createElement(StyledMenuTile.VolumeItem, { "data-testid": "participant_volume_slider", css: __spreadProps(__spreadValues({}, spacingCSS), { mb: "$0" }) }, /* @__PURE__ */ React51.createElement(Flex, { align: "center", gap: 1 }, /* @__PURE__ */ React51.createElement(SpeakerIcon3, { height: 20, width: 20 }), /* @__PURE__ */ React51.createElement(Box, { as: "span", css: { ml: "$4" } }, "Volume (", volume, ")")), /* @__PURE__ */ React51.createElement(Slider, { css: { my: "0.5rem" }, step: 5, value: [volume], onValueChange: (e) => setVolume(e[0]) })) : null, showPinAction && /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(PinActions, { audioTrackID, videoTrackID }), showSpotlight && /* @__PURE__ */ React51.createElement(SpotlightActions, { peerId: peerID, onSpotLightClick: () => closeSheetOnClick() })), isMobile ? null : /* @__PURE__ */ React51.createElement(SimulcastLayers, { trackId: videoTrackID }), removeOthers ? /* @__PURE__ */ React51.createElement(
6534
- StyledMenuTile.RemoveItem,
6535
- {
6536
- css: __spreadProps(__spreadValues({}, spacingCSS), { borderTop: "none" }),
6537
- onClick: () => __async(void 0, null, function* () {
6538
- try {
6539
- yield actions.removePeer(peerID, "");
6540
- } catch (error) {
6541
- }
6542
- closeSheetOnClick();
6543
- }),
6544
- "data-testid": "remove_participant_btn"
6545
- },
6546
- /* @__PURE__ */ React51.createElement(RemoveUserIcon, { height: 20, width: 20 }),
6547
- /* @__PURE__ */ React51.createElement("span", null, "Remove Participant")
6548
- ) : null, removeOthers && isScreenshare ? /* @__PURE__ */ React51.createElement(
6549
- StyledMenuTile.RemoveItem,
6550
- {
6551
- onClick: () => {
6552
- sendEvent({});
6553
- closeSheetOnClick();
6554
- },
6555
- css: spacingCSS
6556
- },
6557
- /* @__PURE__ */ React51.createElement(ShareScreenIcon2, { height: 20, width: 20 }),
6558
- /* @__PURE__ */ React51.createElement("span", null, "Stop Screenshare")
6559
- ) : null);
6560
- };
6561
-
6562
- // src/Prebuilt/components/hooks/useDropdownList.jsx
6563
- import { useEffect as useEffect22 } from "react";
6564
- var useDropdownList = ({ name, open }) => {
6565
- const [dropdownList = [], setDropdownList] = useSetAppDataByKey(APP_DATA.dropdownList);
6566
- useEffect22(() => {
6567
- if (open) {
6568
- if (!dropdownList.includes(name)) {
6569
- setDropdownList([...dropdownList, name]);
6570
- }
6571
- } else {
6572
- const index = dropdownList.indexOf(name);
6573
- if (index >= 0) {
6574
- const newDropdownList = [...dropdownList];
6575
- newDropdownList.splice(index, 1);
6576
- setDropdownList(newDropdownList);
6577
- }
6578
- }
6579
- }, [open, name]);
6580
- };
6581
-
6582
- // src/Prebuilt/components/TileMenu/TileMenu.jsx
6583
- var TileMenu = ({
6584
- audioTrackID,
6585
- videoTrackID,
6586
- peerID,
6587
- isScreenshare = false,
6588
- canMinimise,
6589
- enableSpotlightingPeer = true
6590
- }) => {
6591
- var _a7, _b7;
6592
- const [open, setOpen] = useState17(false);
6593
- const { theme: theme2 } = useTheme();
6594
- const localPeerID = useHMSStore23(selectLocalPeerID4);
6595
- const isLocal = localPeerID === peerID;
6596
- const { removeOthers } = useHMSStore23(selectPermissions3);
6597
- const { setVolume, toggleAudio, toggleVideo } = useRemoteAVToggle2(audioTrackID, videoTrackID);
6598
- const showSpotlight = enableSpotlightingPeer;
6599
- const isPrimaryVideoTrack = ((_a7 = useHMSStore23(selectVideoTrackByPeerID2(peerID))) == null ? void 0 : _a7.id) === videoTrackID;
6600
- const showPinAction = audioTrackID || videoTrackID && isPrimaryVideoTrack;
6601
- const track = useHMSStore23(selectTrackByID3(videoTrackID));
6602
- const hideSimulcastLayers = !((_b7 = track == null ? void 0 : track.layerDefinitions) == null ? void 0 : _b7.length) || track.degraded || !track.enabled;
6603
- const isMobile = useMedia7(config.media.md);
6604
- const peer = useHMSStore23(selectPeerByID2(peerID));
6605
- const [showNameChangeModal, setShowNameChangeModal] = useState17(false);
6606
- useDropdownList({ open, name: "TileMenu" });
6607
- if (!(removeOthers || toggleAudio || toggleVideo || setVolume || showPinAction) && hideSimulcastLayers) {
6608
- return null;
6609
- }
6610
- const openNameChangeModal = () => setShowNameChangeModal(true);
6611
- const props = {
6612
- isLocal,
6613
- isScreenshare,
6614
- audioTrackID,
6615
- videoTrackID,
6616
- peerID,
6617
- isPrimaryVideoTrack,
6618
- showSpotlight,
6619
- showPinAction,
6620
- canMinimise,
6621
- openNameChangeModal
6622
- };
6623
- return /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement(StyledMenuTile.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React52.createElement(
6624
- StyledMenuTile.Trigger,
6625
- {
6626
- "data-testid": "participant_menu_btn",
6627
- css: { bg: `${theme2.colors.background_dim.value}A3`, p: "$2", w: "unset", h: "unset" },
6628
- onClick: (e) => e.stopPropagation(),
6629
- className: isMobile ? "__cancel-drag-event" : ""
6630
- },
6631
- /* @__PURE__ */ React52.createElement(VerticalMenuIcon2, { width: 20, height: 20 })
6632
- ), isMobile ? /* @__PURE__ */ React52.createElement(Sheet.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React52.createElement(Sheet.Content, { css: { bg: "$surface_dim", pt: "$8" } }, /* @__PURE__ */ React52.createElement(
6633
- Flex,
6634
- {
6635
- css: {
6636
- color: "$on_surface_high",
6637
- display: "flex",
6638
- w: "100%",
6639
- justifyContent: "space-between",
6640
- alignItems: "center",
6641
- px: "$10",
6642
- pb: "$8",
6643
- borderBottom: "1px solid $border_default"
6644
- }
6645
- },
6646
- /* @__PURE__ */ React52.createElement(Box, null, /* @__PURE__ */ React52.createElement(Text, { css: { color: "$on_surface_high", fontWeight: "$semiBold" } }, peer.name, isLocal ? ` (You)` : null), (peer == null ? void 0 : peer.roleName) ? /* @__PURE__ */ React52.createElement(Text, { variant: "xs", css: { color: "$on_surface_low", mt: "$2" } }, peer.roleName) : null),
6647
- /* @__PURE__ */ React52.createElement(Sheet.Close, { css: { color: "inherit" } }, /* @__PURE__ */ React52.createElement(CrossIcon8, null))
6648
- ), /* @__PURE__ */ React52.createElement(Box, { css: { px: "$8", pb: "$8", maxHeight: "80vh", overflowY: "auto" } }, /* @__PURE__ */ React52.createElement(TileMenuContent, __spreadProps(__spreadValues({}, props), { closeSheetOnClick: () => setOpen(false) }))))) : /* @__PURE__ */ React52.createElement(StyledMenuTile.Content, { side: "top", align: "end", css: { maxHeight: "$80", overflowY: "auto" } }, /* @__PURE__ */ React52.createElement(TileMenuContent, __spreadValues({}, props)))), showNameChangeModal && /* @__PURE__ */ React52.createElement(ChangeNameModal, { onOpenChange: setShowNameChangeModal }));
6649
- };
6650
- var TileMenu_default = TileMenu;
6651
-
6652
- // src/Prebuilt/components/peerTileUtils.jsx
6653
- var PEER_NAME_PLACEHOLDER = "peerName";
6654
- var labelMap = /* @__PURE__ */ new Map([
6655
- [[true, "screen"].toString(), "Your Screen"],
6656
- [[true, "regular"].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
6657
- [[false, "screen"].toString(), `${PEER_NAME_PLACEHOLDER}'s Screen`],
6658
- [[false, "regular"].toString(), PEER_NAME_PLACEHOLDER],
6659
- [[true, void 0].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
6660
- [[false, void 0].toString(), `${PEER_NAME_PLACEHOLDER}`]
6661
- ]);
6662
- var getVideoTileLabel = ({ peerName, isLocal, track }) => {
6663
- const isPeerPresent = peerName !== void 0;
6664
- if (!isPeerPresent || !track) {
6665
- return isPeerPresent ? labelMap.get([isLocal, void 0].toString()).replace(PEER_NAME_PLACEHOLDER, peerName) : "";
6666
- }
6667
- const isLocallyMuted = track.volume === 0;
6668
- let label = labelMap.get([isLocal, track.source].toString());
6669
- if (label) {
6670
- label = label.replace(PEER_NAME_PLACEHOLDER, peerName);
6671
- } else {
6672
- label = `${peerName} ${track.source}`;
6673
- }
6674
- return `${label}${isLocallyMuted ? " (Muted for you)" : ""}`;
6675
- };
6676
-
6677
- // src/Prebuilt/components/VideoTile.jsx
6678
- var Tile = ({
6679
- peerId,
6680
- trackId,
6681
- width,
6682
- height,
6683
- objectFit = "cover",
6684
- canMinimise = false,
6685
- isDragabble = false,
6686
- rootCSS = {},
6687
- containerCSS = {},
6688
- enableSpotlightingPeer = true,
6689
- hideParticipantNameOnTile = false,
6690
- roundedVideoTile = true,
6691
- hideAudioMuteOnTile = false,
6692
- hideMetadataOnTile = false
6693
- }) => {
6694
- const trackSelector = trackId ? selectVideoTrackByID4(trackId) : selectVideoTrackByPeerID3(peerId);
6695
- const track = useHMSStore24(trackSelector);
6696
- const isMobile = useMedia8(config.media.md);
6697
- const peerName = useHMSStore24(selectPeerNameByID(peerId));
6698
- const audioTrack = useHMSStore24(selectAudioTrackByPeerID2(peerId));
6699
- const localPeerID = useHMSStore24(selectLocalPeerID5);
6700
- const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);
6701
- const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
6702
- const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);
6703
- const isAudioMuted = !useHMSStore24(selectIsPeerAudioEnabled(peerId));
6704
- const isVideoMuted = !(track == null ? void 0 : track.enabled);
6705
- const [isMouseHovered, setIsMouseHovered] = useState18(false);
6706
- const isVideoDegraded = track == null ? void 0 : track.degraded;
6707
- const isLocal = localPeerID === peerId;
6708
- const [pinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
6709
- const pinned = isSameTile({
6710
- trackId: pinnedTrackId,
6711
- videoTrackID: track == null ? void 0 : track.id,
6712
- audioTrackID: audioTrack == null ? void 0 : audioTrack.id
6713
- });
6714
- const spotlighted = useHMSStore24(selectSessionStore3(SESSION_STORE_KEY.SPOTLIGHT)) === peerId;
6715
- const label = getVideoTileLabel({
6716
- peerName,
6717
- track,
6718
- isLocal
6719
- });
6720
- const onHoverHandler = useCallback16((event) => {
6721
- setIsMouseHovered(event.type === "mouseenter");
6722
- }, []);
6723
- const isTileBigEnoughToShowStats = height >= 180 && width >= 180;
6724
- const avatarSize = useMemo3(() => {
6725
- if (!width || !height) {
6726
- return void 0;
6727
- }
6728
- if (width <= 150 || height <= 150) {
6729
- return "small";
6730
- } else if (width <= 300 || height <= 300) {
6731
- return "medium";
6732
- }
6733
- return "large";
6734
- }, [width, height]);
6735
- return /* @__PURE__ */ React53.createElement(
6736
- StyledVideoTile.Root,
6737
- {
6738
- css: __spreadValues({
6739
- width,
6740
- height
6741
- }, rootCSS),
6742
- "data-testid": `participant_tile_${peerName}`
6743
- },
6744
- peerName !== void 0 ? /* @__PURE__ */ React53.createElement(
6745
- StyledVideoTile.Container,
6746
- {
6747
- onMouseEnter: onHoverHandler,
6748
- onMouseLeave: onHoverHandler,
6749
- noRadius: !roundedVideoTile,
6750
- css: containerCSS
6751
- },
6752
- showStatsOnTiles && isTileBigEnoughToShowStats ? /* @__PURE__ */ React53.createElement(VideoTileStats, { audioTrackID: audioTrack == null ? void 0 : audioTrack.id, videoTrackID: track == null ? void 0 : track.id, peerID: peerId, isLocal }) : null,
6753
- /* @__PURE__ */ React53.createElement(
6754
- Video,
6755
- {
6756
- trackId: track == null ? void 0 : track.id,
6757
- attach: isLocal ? void 0 : !isAudioOnly,
6758
- mirror: mirrorLocalVideo && peerId === localPeerID && (track == null ? void 0 : track.source) === "regular" && (track == null ? void 0 : track.facingMode) !== "environment",
6759
- noRadius: !roundedVideoTile,
6760
- "data-testid": "participant_video_tile",
6761
- css: {
6762
- objectFit,
6763
- filter: isVideoDegraded ? "blur($space$2)" : void 0,
6764
- bg: "transparent"
6765
- }
6766
- }
6767
- ),
6768
- isVideoMuted || !isLocal && isAudioOnly ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AvatarContainer, null, /* @__PURE__ */ React53.createElement(Avatar, { name: peerName || "", "data-testid": "participant_avatar_icon", size: avatarSize })) : null,
6769
- !hideAudioMuteOnTile ? isAudioMuted ? /* @__PURE__ */ React53.createElement(
6770
- StyledVideoTile.AudioIndicator,
6771
- {
6772
- "data-testid": "participant_audio_mute_icon",
6773
- size: width && height && (width < 180 || height < 180) ? "small" : "medium"
6774
- },
6775
- /* @__PURE__ */ React53.createElement(MicOffIcon3, null)
6776
- ) : /* @__PURE__ */ React53.createElement(AudioLevel, { trackId: audioTrack == null ? void 0 : audioTrack.id }) : null,
6777
- isMouseHovered || isDragabble && isMobile ? /* @__PURE__ */ React53.createElement(
6778
- TileMenu_default,
6779
- {
6780
- peerID: peerId,
6781
- audioTrackID: audioTrack == null ? void 0 : audioTrack.id,
6782
- videoTrackID: track == null ? void 0 : track.id,
6783
- canMinimise,
6784
- enableSpotlightingPeer
6785
- }
6786
- ) : null,
6787
- !hideMetadataOnTile && /* @__PURE__ */ React53.createElement(PeerMetadata, { peerId }),
6788
- /* @__PURE__ */ React53.createElement(
6789
- TileConnection_default,
6790
- {
6791
- hideLabel: hideParticipantNameOnTile,
6792
- name: label,
6793
- isTile: true,
6794
- peerId,
6795
- width,
6796
- pinned,
6797
- spotlighted
6798
- }
6799
- )
6800
- ) : null
6801
- );
6802
- };
6803
- var metaStyles = { top: "$4", left: "$4", width: "$14", height: "$14" };
6804
- var heightAnimation = (value) => keyframes({
6805
- "50%": {
6806
- transform: `scale3d(1,${value},1)`
6807
- },
6808
- "100%": {
6809
- transform: `scale3d(1,1,1)`
6810
- }
6811
- });
6812
- var AudioLevelIndicator = ({ trackId, value, delay }) => {
6813
- const vanillaStore = useHMSVanillaStore6();
6814
- const ref = useRef7();
6815
- useEffect23(() => {
6816
- const unsubscribe = vanillaStore.subscribe((audioLevel) => {
6817
- if (ref.current) {
6818
- ref.current.style["animation"] = `${heightAnimation(
6819
- audioLevel ? value : 1
6820
- )} 0.3s cubic-bezier(0.61, 1, 0.88, 1) infinite ${delay}s`;
6821
- }
6822
- }, selectTrackAudioByID(trackId));
6823
- return unsubscribe;
6824
- }, [vanillaStore, trackId, value, delay]);
6825
- return /* @__PURE__ */ React53.createElement(
6826
- Box,
6827
- {
6828
- ref,
6829
- css: {
6830
- w: 4,
6831
- height: 6,
6832
- r: 2,
6833
- bg: "$on_primary_high"
6834
- }
6835
- }
6836
- );
6837
- };
6838
- var AudioLevel = ({ trackId }) => {
6839
- return /* @__PURE__ */ React53.createElement(StyledVideoTile.AudioIndicator, null, /* @__PURE__ */ React53.createElement(Flex, { align: "center", justify: "center", css: { gap: "$2" } }, [3, 2, 3].map((v, i) => /* @__PURE__ */ React53.createElement(AudioLevelIndicator, { trackId, value: v, delay: i * 0.15, key: i }))));
6840
- };
6841
- var PeerMetadata = ({ peerId }) => {
6842
- const metaData = useHMSStore24(selectPeerMetadata2(peerId));
6843
- const isBRB = (metaData == null ? void 0 : metaData.isBRBOn) || false;
6844
- const isHandRaised = useHMSStore24(selectHasPeerHandRaised3(peerId));
6845
- return /* @__PURE__ */ React53.createElement(Fragment5, null, isHandRaised ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AttributeBox, { css: metaStyles, "data-testid": "raiseHand_icon_onTile" }, /* @__PURE__ */ React53.createElement(HandIcon3, { width: 24, height: 24 })) : null, isBRB ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AttributeBox, { css: metaStyles, "data-testid": "brb_icon_onTile" }, /* @__PURE__ */ React53.createElement(BrbTileIcon, { width: 22, height: 22 })) : null);
6846
- };
6847
- var VideoTile = React53.memo(Tile);
6848
- var VideoTile_default = VideoTile;
6849
-
6850
6227
  // src/Prebuilt/components/Preview/PreviewForm.tsx
6851
- import React54 from "react";
6852
- import { useMedia as useMedia9 } from "react-use";
6228
+ import React51 from "react";
6229
+ import { useMedia as useMedia5 } from "react-use";
6853
6230
  import { JoinForm_JoinBtnType as JoinForm_JoinBtnType2 } from "@100mslive/types-prebuilt/elements/join_form";
6854
6231
  import { useRecordingStreaming as useRecordingStreaming3 } from "@100mslive/react-sdk";
6855
6232
  import { RadioIcon } from "@100mslive/react-icons";
@@ -6865,18 +6242,18 @@ var PreviewForm = ({
6865
6242
  const formSubmit = (e) => {
6866
6243
  e.preventDefault();
6867
6244
  };
6868
- const isMobile = useMedia9(config.media.md);
6245
+ const isMobile = useMedia5(config.media.md);
6869
6246
  const { isHLSRunning } = useRecordingStreaming3();
6870
6247
  const layout = useRoomLayout();
6871
6248
  const { join_form: joinForm = {} } = ((_c = (_b7 = (_a7 = layout == null ? void 0 : layout.screens) == null ? void 0 : _a7.preview) == null ? void 0 : _b7.default) == null ? void 0 : _c.elements) || {};
6872
6249
  const showGoLive = (joinForm == null ? void 0 : joinForm.join_btn_type) === JoinForm_JoinBtnType2.JOIN_BTN_TYPE_JOIN_AND_GO_LIVE && !isHLSRunning;
6873
- return /* @__PURE__ */ React54.createElement(
6250
+ return /* @__PURE__ */ React51.createElement(
6874
6251
  Form,
6875
6252
  {
6876
6253
  css: { flexDirection: cannotPublishVideo ? "column" : "row", "@md": { flexDirection: "row" } },
6877
6254
  onSubmit: formSubmit
6878
6255
  },
6879
- /* @__PURE__ */ React54.createElement(Flex, { align: "center", css: { gap: "$8", w: "100%" } }, /* @__PURE__ */ React54.createElement(
6256
+ /* @__PURE__ */ React51.createElement(Flex, { align: "center", css: { gap: "$8", w: "100%" } }, /* @__PURE__ */ React51.createElement(
6880
6257
  Input,
6881
6258
  {
6882
6259
  required: true,
@@ -6897,8 +6274,8 @@ var PreviewForm = ({
6897
6274
  }
6898
6275
  }
6899
6276
  }
6900
- ), cannotPublishAudio && cannotPublishVideo && !isMobile ? /* @__PURE__ */ React54.createElement(PreviewSettings, null) : null),
6901
- /* @__PURE__ */ React54.createElement(Button, { type: "submit", icon: true, disabled: !name || !enableJoin, onClick: onJoin }, showGoLive ? /* @__PURE__ */ React54.createElement(RadioIcon, { height: 18, width: 18 }) : null, showGoLive ? joinForm.go_live_btn_label : joinForm.join_btn_label)
6277
+ ), cannotPublishAudio && cannotPublishVideo && !isMobile ? /* @__PURE__ */ React51.createElement(PreviewSettings, null) : null),
6278
+ /* @__PURE__ */ React51.createElement(Button, { type: "submit", icon: true, disabled: !name || !enableJoin, onClick: onJoin }, showGoLive ? /* @__PURE__ */ React51.createElement(RadioIcon, { height: 18, width: 18 }) : null, showGoLive ? joinForm.go_live_btn_label : joinForm.join_btn_label)
6902
6279
  );
6903
6280
  };
6904
6281
  var Form = styled("form", {
@@ -6915,7 +6292,7 @@ var Form = styled("form", {
6915
6292
  var PreviewForm_default = PreviewForm;
6916
6293
 
6917
6294
  // src/Prebuilt/components/Preview/PreviewJoin.tsx
6918
- var VirtualBackground = React55.lazy(() => import("./VirtualBackground-THDRYDRA.js"));
6295
+ var VirtualBackground = React52.lazy(() => import("./VirtualBackground-GP4ATXD3.js"));
6919
6296
  var getParticipantChipContent = (peerCount = 0) => {
6920
6297
  if (peerCount === 0) {
6921
6298
  return "You are the first to join";
@@ -6936,9 +6313,9 @@ var PreviewJoin = ({
6936
6313
  );
6937
6314
  const { isStreamingOn } = useRecordingStreaming4();
6938
6315
  const authToken = useAuthToken();
6939
- const [name, setName] = useState19(initialName || previewPreference.name);
6316
+ const [name, setName] = useState16(initialName || previewPreference.name);
6940
6317
  const { toggleAudio, toggleVideo } = useAVToggle2();
6941
- const [previewError, setPreviewError] = useState19(false);
6318
+ const [previewError, setPreviewError] = useState16(false);
6942
6319
  const { endpoints } = useHMSPrebuiltContext();
6943
6320
  const { peerCount } = useParticipants();
6944
6321
  const { enableJoin, preview, join } = usePreviewJoin({
@@ -6958,8 +6335,8 @@ var PreviewJoin = ({
6958
6335
  },
6959
6336
  asRole
6960
6337
  });
6961
- const roomState = useHMSStore25(selectRoomState6);
6962
- const savePreferenceAndJoin = useCallback17(() => {
6338
+ const roomState = useHMSStore21(selectRoomState6);
6339
+ const savePreferenceAndJoin = useCallback16(() => {
6963
6340
  setPreviewPreference({
6964
6341
  name
6965
6342
  });
@@ -6968,11 +6345,11 @@ var PreviewJoin = ({
6968
6345
  }, [join, name, setPreviewPreference, onJoin]);
6969
6346
  const roomLayout = useRoomLayout();
6970
6347
  const { preview_header: previewHeader = {} } = ((_c = (_b7 = (_a7 = roomLayout == null ? void 0 : roomLayout.screens) == null ? void 0 : _a7.preview) == null ? void 0 : _b7.default) == null ? void 0 : _c.elements) || {};
6971
- const localPeer = useHMSStore25(selectLocalPeer);
6972
- const videoTrack = useHMSStore25(selectVideoTrackByID5(localPeer == null ? void 0 : localPeer.videoTrack));
6973
- const isMobile = useMedia10(config.media.md);
6348
+ const localPeer = useHMSStore21(selectLocalPeer);
6349
+ const videoTrack = useHMSStore21(selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack));
6350
+ const isMobile = useMedia6(config.media.md);
6974
6351
  const aspectRatio = (videoTrack == null ? void 0 : videoTrack.width) && (videoTrack == null ? void 0 : videoTrack.height) ? videoTrack.width / videoTrack.height : isMobile ? 9 / 16 : 16 / 9;
6975
- useEffect24(() => {
6352
+ useEffect23(() => {
6976
6353
  if (authToken) {
6977
6354
  if (skipPreview) {
6978
6355
  savePreferenceAndJoin();
@@ -6981,34 +6358,34 @@ var PreviewJoin = ({
6981
6358
  }
6982
6359
  }
6983
6360
  }, [authToken, skipPreview]);
6984
- useEffect24(() => {
6361
+ useEffect23(() => {
6985
6362
  if (initialName) {
6986
6363
  setName(initialName);
6987
6364
  }
6988
6365
  }, [initialName]);
6989
- return roomState === HMSRoomState6.Preview ? /* @__PURE__ */ React55.createElement(Container3, { css: { h: "100%", pt: "$10", "@md": { justifyContent: "space-between" } } }, toggleVideo ? null : /* @__PURE__ */ React55.createElement(Box, null), /* @__PURE__ */ React55.createElement(Flex, { direction: "column", justify: "center", css: { w: "100%", maxWidth: "640px" } }, /* @__PURE__ */ React55.createElement(Logo, null), /* @__PURE__ */ React55.createElement(
6366
+ return roomState === HMSRoomState6.Preview ? /* @__PURE__ */ React52.createElement(Container3, { css: { h: "100%", pt: "$10", "@md": { justifyContent: "space-between" } } }, toggleVideo ? null : /* @__PURE__ */ React52.createElement(Box, null), /* @__PURE__ */ React52.createElement(Flex, { direction: "column", justify: "center", css: { w: "100%", maxWidth: "640px" } }, /* @__PURE__ */ React52.createElement(Logo, null), /* @__PURE__ */ React52.createElement(
6990
6367
  Text,
6991
6368
  {
6992
6369
  variant: "h4",
6993
6370
  css: { wordBreak: "break-word", textAlign: "center", mt: "$14", mb: "$4", "@md": { mt: "$8", mb: "$2" } }
6994
6371
  },
6995
6372
  previewHeader.title
6996
- ), /* @__PURE__ */ React55.createElement(
6373
+ ), /* @__PURE__ */ React52.createElement(
6997
6374
  Text,
6998
6375
  {
6999
6376
  css: { c: "$on_surface_medium", my: "0", textAlign: "center", maxWidth: "100%", wordWrap: "break-word" },
7000
6377
  variant: "sm"
7001
6378
  },
7002
6379
  previewHeader.sub_title
7003
- ), /* @__PURE__ */ React55.createElement(Flex, { justify: "center", css: { mt: "$14", "@md": { mt: "$8", mb: "0" }, gap: "$4" } }, isStreamingOn ? /* @__PURE__ */ React55.createElement(
6380
+ ), /* @__PURE__ */ React52.createElement(Flex, { justify: "center", css: { mt: "$14", "@md": { mt: "$8", mb: "0" }, gap: "$4" } }, isStreamingOn ? /* @__PURE__ */ React52.createElement(
7004
6381
  Chip_default,
7005
6382
  {
7006
6383
  content: "LIVE",
7007
6384
  backgroundColor: "$alert_error_default",
7008
6385
  textColor: "#FFF",
7009
- icon: /* @__PURE__ */ React55.createElement(Box, { css: { h: "$sm", w: "$sm", backgroundColor: "$on_primary_high", borderRadius: "$round" } })
6386
+ icon: /* @__PURE__ */ React52.createElement(Box, { css: { h: "$sm", w: "$sm", backgroundColor: "$on_primary_high", borderRadius: "$round" } })
7010
6387
  }
7011
- ) : null, /* @__PURE__ */ React55.createElement(Chip_default, { content: getParticipantChipContent(peerCount), hideIfNoContent: true }))), toggleVideo ? /* @__PURE__ */ React55.createElement(
6388
+ ) : null, /* @__PURE__ */ React52.createElement(Chip_default, { content: getParticipantChipContent(peerCount), hideIfNoContent: true }))), toggleVideo ? /* @__PURE__ */ React52.createElement(
7012
6389
  Flex,
7013
6390
  {
7014
6391
  align: "center",
@@ -7020,8 +6397,8 @@ var PreviewJoin = ({
7020
6397
  flexDirection: "column"
7021
6398
  }
7022
6399
  },
7023
- /* @__PURE__ */ React55.createElement(PreviewTile, { name, error: previewError })
7024
- ) : null, /* @__PURE__ */ React55.createElement(Box, { css: { w: "100%", maxWidth: `${aspectRatio * 360}px` } }, /* @__PURE__ */ React55.createElement(PreviewControls, { hideSettings: !toggleVideo && !toggleAudio }), /* @__PURE__ */ React55.createElement(
6400
+ /* @__PURE__ */ React52.createElement(PreviewTile, { name, error: previewError })
6401
+ ) : null, /* @__PURE__ */ React52.createElement(Box, { css: { w: "100%", maxWidth: `${Math.max(aspectRatio, 1) * 360}px` } }, /* @__PURE__ */ React52.createElement(PreviewControls, { hideSettings: !toggleVideo && !toggleAudio }), /* @__PURE__ */ React52.createElement(
7025
6402
  PreviewForm_default,
7026
6403
  {
7027
6404
  name,
@@ -7031,7 +6408,7 @@ var PreviewJoin = ({
7031
6408
  cannotPublishVideo: !toggleVideo,
7032
6409
  cannotPublishAudio: !toggleAudio
7033
6410
  }
7034
- ))) : /* @__PURE__ */ React55.createElement(FullPageProgress_default, null);
6411
+ ))) : /* @__PURE__ */ React52.createElement(FullPageProgress_default, null);
7035
6412
  };
7036
6413
  var Container3 = styled("div", __spreadProps(__spreadValues({
7037
6414
  width: "100%"
@@ -7040,17 +6417,17 @@ var Container3 = styled("div", __spreadProps(__spreadValues({
7040
6417
  px: "$10"
7041
6418
  }));
7042
6419
  var PreviewTile = ({ name, error }) => {
7043
- const localPeer = useHMSStore25(selectLocalPeer);
6420
+ const localPeer = useHMSStore21(selectLocalPeer);
7044
6421
  const { isLocalAudioEnabled, toggleAudio } = useAVToggle2();
7045
- const isVideoOn = useHMSStore25(selectIsLocalVideoEnabled5);
6422
+ const isVideoOn = useHMSStore21(selectIsLocalVideoEnabled5);
7046
6423
  const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
7047
- const trackSelector = selectVideoTrackByID5(localPeer == null ? void 0 : localPeer.videoTrack);
7048
- const track = useHMSStore25(trackSelector);
6424
+ const trackSelector = selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack);
6425
+ const track = useHMSStore21(trackSelector);
7049
6426
  const showMuteIcon = !isLocalAudioEnabled || !toggleAudio;
7050
- const videoTrack = useHMSStore25(selectVideoTrackByID5(localPeer == null ? void 0 : localPeer.videoTrack));
7051
- const isMobile = useMedia10(config.media.md);
6427
+ const videoTrack = useHMSStore21(selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack));
6428
+ const isMobile = useMedia6(config.media.md);
7052
6429
  const aspectRatio = (videoTrack == null ? void 0 : videoTrack.width) && (videoTrack == null ? void 0 : videoTrack.height) ? videoTrack.width / videoTrack.height : isMobile ? 9 / 16 : 16 / 9;
7053
- return /* @__PURE__ */ React55.createElement(
6430
+ return /* @__PURE__ */ React52.createElement(
7054
6431
  StyledVideoTile.Container,
7055
6432
  {
7056
6433
  css: {
@@ -7066,35 +6443,35 @@ var PreviewTile = ({ name, error }) => {
7066
6443
  }
7067
6444
  }
7068
6445
  },
7069
- localPeer ? /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(TileConnection_default, { name, peerId: localPeer.id, hideLabel: true }), /* @__PURE__ */ React55.createElement(
6446
+ localPeer ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement(TileConnection_default, { name, peerId: localPeer.id, hideLabel: true }), /* @__PURE__ */ React52.createElement(
7070
6447
  Video,
7071
6448
  {
7072
6449
  mirror: (track == null ? void 0 : track.facingMode) !== "environment" && mirrorLocalVideo,
7073
6450
  trackId: localPeer.videoTrack,
7074
6451
  "data-testid": "preview_tile"
7075
6452
  }
7076
- ), !isVideoOn ? /* @__PURE__ */ React55.createElement(StyledVideoTile.AvatarContainer, null, /* @__PURE__ */ React55.createElement(Avatar, { name, "data-testid": "preview_avatar_tile" })) : null) : !error ? /* @__PURE__ */ React55.createElement(FullPageProgress_default, null) : null,
7077
- showMuteIcon ? /* @__PURE__ */ React55.createElement(StyledVideoTile.AudioIndicator, { size: "medium" }, /* @__PURE__ */ React55.createElement(MicOffIcon4, null)) : /* @__PURE__ */ React55.createElement(AudioLevel, { trackId: localPeer == null ? void 0 : localPeer.audioTrack })
6453
+ ), !isVideoOn ? /* @__PURE__ */ React52.createElement(StyledVideoTile.AvatarContainer, null, /* @__PURE__ */ React52.createElement(Avatar, { name, "data-testid": "preview_avatar_tile" })) : null) : !error ? /* @__PURE__ */ React52.createElement(FullPageProgress_default, null) : null,
6454
+ showMuteIcon ? /* @__PURE__ */ React52.createElement(StyledVideoTile.AudioIndicator, null, /* @__PURE__ */ React52.createElement(MicOffIcon2, null)) : /* @__PURE__ */ React52.createElement(StyledVideoTile.AudioIndicator, { size: "medium" }, /* @__PURE__ */ React52.createElement(AudioLevel, { trackId: localPeer == null ? void 0 : localPeer.audioTrack }))
7078
6455
  );
7079
6456
  };
7080
6457
  var PreviewControls = ({ hideSettings }) => {
7081
- const isMobile = useMedia10(config.media.md);
7082
- return /* @__PURE__ */ React55.createElement(
6458
+ const isMobile = useMedia6(config.media.md);
6459
+ return /* @__PURE__ */ React52.createElement(
7083
6460
  Flex,
7084
6461
  {
7085
- justify: "between",
6462
+ justify: hideSettings && isMobile ? "center" : "between",
7086
6463
  css: {
7087
6464
  width: "100%",
7088
6465
  mt: "$8"
7089
6466
  }
7090
6467
  },
7091
- /* @__PURE__ */ React55.createElement(Flex, { css: { gap: "$4" } }, /* @__PURE__ */ React55.createElement(AudioVideoToggle, null), /* @__PURE__ */ React55.createElement(Suspense, { fallback: "" }, !isMobile ? /* @__PURE__ */ React55.createElement(VirtualBackground, null) : null)),
7092
- !hideSettings ? /* @__PURE__ */ React55.createElement(PreviewSettings, null) : null
6468
+ /* @__PURE__ */ React52.createElement(Flex, { css: { gap: "$4" } }, /* @__PURE__ */ React52.createElement(AudioVideoToggle, null), /* @__PURE__ */ React52.createElement(Suspense, { fallback: "" }, !isMobile ? /* @__PURE__ */ React52.createElement(VirtualBackground, null) : null)),
6469
+ !hideSettings ? /* @__PURE__ */ React52.createElement(PreviewSettings, null) : null
7093
6470
  );
7094
6471
  };
7095
- var PreviewSettings = React55.memo(() => {
7096
- const [open, setOpen] = useState19(false);
7097
- return /* @__PURE__ */ React55.createElement(Fragment6, null, /* @__PURE__ */ React55.createElement(IconButton_default, { "data-testid": "preview_setting_btn", css: { flexShrink: 0 }, onClick: () => setOpen((value) => !value) }, /* @__PURE__ */ React55.createElement(SettingsIcon2, null)), open && /* @__PURE__ */ React55.createElement(SettingsModal_default, { open, onOpenChange: setOpen }));
6472
+ var PreviewSettings = React52.memo(() => {
6473
+ const [open, setOpen] = useState16(false);
6474
+ return /* @__PURE__ */ React52.createElement(Fragment4, null, /* @__PURE__ */ React52.createElement(IconButton_default, { "data-testid": "preview_setting_btn", css: { flexShrink: 0 }, onClick: () => setOpen((value) => !value) }, /* @__PURE__ */ React52.createElement(SettingsIcon2, null)), open && /* @__PURE__ */ React52.createElement(SettingsModal_default, { open, onOpenChange: setOpen }));
7098
6475
  });
7099
6476
  var PreviewJoin_default = PreviewJoin;
7100
6477
 
@@ -7118,14 +6495,14 @@ var PreviewContainer = () => {
7118
6495
  }
7119
6496
  navigate(meetingURL);
7120
6497
  };
7121
- return /* @__PURE__ */ React56.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React56.createElement(
6498
+ return /* @__PURE__ */ React53.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React53.createElement(
7122
6499
  Flex,
7123
6500
  {
7124
6501
  css: { flex: "1 1 0", position: "relative", overflowY: "auto", color: "$primary_default" },
7125
6502
  justify: "center",
7126
6503
  align: "center"
7127
6504
  },
7128
- authToken && Object.keys(previewHeader).length > 0 ? /* @__PURE__ */ React56.createElement(
6505
+ authToken && Object.keys(previewHeader).length > 0 ? /* @__PURE__ */ React53.createElement(
7129
6506
  PreviewJoin_default,
7130
6507
  {
7131
6508
  initialName,
@@ -7133,20 +6510,20 @@ var PreviewContainer = () => {
7133
6510
  asRole: previewAsRole != null ? previewAsRole : void 0,
7134
6511
  onJoin
7135
6512
  }
7136
- ) : /* @__PURE__ */ React56.createElement(FullPageProgress_default, null)
6513
+ ) : /* @__PURE__ */ React53.createElement(FullPageProgress_default, null)
7137
6514
  ));
7138
6515
  };
7139
6516
  var PreviewContainer_default = PreviewContainer;
7140
6517
 
7141
6518
  // src/Prebuilt/components/Toast/ToastContainer.jsx
7142
- import React58, { useEffect as useEffect25, useState as useState20 } from "react";
7143
- import { selectIsConnectedToRoom as selectIsConnectedToRoom3, useHMSStore as useHMSStore26 } from "@100mslive/react-sdk";
6519
+ import React55, { useEffect as useEffect24, useState as useState17 } from "react";
6520
+ import { selectIsConnectedToRoom as selectIsConnectedToRoom3, useHMSStore as useHMSStore22 } from "@100mslive/react-sdk";
7144
6521
 
7145
6522
  // src/Prebuilt/components/Toast/Toast.jsx
7146
- import React57 from "react";
6523
+ import React54 from "react";
7147
6524
  var Toast2 = (_a7) => {
7148
6525
  var _b7 = _a7, { title, description, close = true, open, duration, onOpenChange, icon } = _b7, props = __objRest(_b7, ["title", "description", "close", "open", "duration", "onOpenChange", "icon"]);
7149
- return /* @__PURE__ */ React57.createElement(
6526
+ return /* @__PURE__ */ React54.createElement(
7150
6527
  Toast.HMSToast,
7151
6528
  __spreadValues({
7152
6529
  title,
@@ -7162,17 +6539,17 @@ var Toast2 = (_a7) => {
7162
6539
 
7163
6540
  // src/Prebuilt/components/Toast/ToastContainer.jsx
7164
6541
  var ToastContainer = () => {
7165
- const isConnected = useHMSStore26(selectIsConnectedToRoom3);
7166
- const [toasts, setToast] = useState20([]);
7167
- useEffect25(() => {
6542
+ const isConnected = useHMSStore22(selectIsConnectedToRoom3);
6543
+ const [toasts, setToast] = useState17([]);
6544
+ useEffect24(() => {
7168
6545
  ToastManager.addListener(setToast);
7169
6546
  return () => {
7170
6547
  ToastManager.removeListener(setToast);
7171
6548
  };
7172
6549
  }, []);
7173
- return /* @__PURE__ */ React58.createElement(Toast.Provider, { swipeDirection: "left", duration: 3e3 }, toasts.slice(0, MAX_TOASTS).map((toast) => {
7174
- return /* @__PURE__ */ React58.createElement(Toast2, __spreadProps(__spreadValues({ key: toast.id }, toast), { onOpenChange: (value) => !value && ToastManager.removeToast(toast.id) }));
7175
- }), /* @__PURE__ */ React58.createElement(
6550
+ return /* @__PURE__ */ React55.createElement(Toast.Provider, { swipeDirection: "left", duration: 3e3 }, toasts.slice(0, MAX_TOASTS).map((toast) => {
6551
+ return /* @__PURE__ */ React55.createElement(Toast2, __spreadProps(__spreadValues({ key: toast.id }, toast), { onOpenChange: (value) => !value && ToastManager.removeToast(toast.id) }));
6552
+ }), /* @__PURE__ */ React55.createElement(
7176
6553
  Toast.Viewport,
7177
6554
  {
7178
6555
  css: __spreadValues({
@@ -7183,13 +6560,13 @@ var ToastContainer = () => {
7183
6560
  };
7184
6561
 
7185
6562
  // src/Prebuilt/plugins/FlyingEmoji.jsx
7186
- import React59, { useCallback as useCallback18, useEffect as useEffect26, useMemo as useMemo4, useState as useState21 } from "react";
7187
- import { useMedia as useMedia11 } from "react-use";
6563
+ import React56, { useCallback as useCallback17, useEffect as useEffect25, useMemo as useMemo3, useState as useState18 } from "react";
6564
+ import { useMedia as useMedia7 } from "react-use";
7188
6565
  import {
7189
- selectLocalPeerID as selectLocalPeerID6,
7190
- selectPeerNameByID as selectPeerNameByID2,
7191
- useCustomEvent as useCustomEvent3,
7192
- useHMSStore as useHMSStore27,
6566
+ selectLocalPeerID as selectLocalPeerID4,
6567
+ selectPeerNameByID,
6568
+ useCustomEvent as useCustomEvent2,
6569
+ useHMSStore as useHMSStore23,
7193
6570
  useHMSVanillaStore as useHMSVanillaStore7
7194
6571
  } from "@100mslive/react-sdk";
7195
6572
  var emojiCount = 1;
@@ -7216,17 +6593,17 @@ var getStartingPoints = (isMobile) => {
7216
6593
  return arr;
7217
6594
  };
7218
6595
  function FlyingEmoji() {
7219
- const localPeerId = useHMSStore27(selectLocalPeerID6);
6596
+ const localPeerId = useHMSStore23(selectLocalPeerID4);
7220
6597
  const vanillaStore = useHMSVanillaStore7();
7221
- const [emojis, setEmojis] = useState21([]);
7222
- const isMobile = useMedia11(config.media.md);
7223
- const startingPoints = useMemo4(() => getStartingPoints(isMobile), [isMobile]);
7224
- const showFlyingEmoji = useCallback18(
6598
+ const [emojis, setEmojis] = useState18([]);
6599
+ const isMobile = useMedia7(config.media.md);
6600
+ const startingPoints = useMemo3(() => getStartingPoints(isMobile), [isMobile]);
6601
+ const showFlyingEmoji = useCallback17(
7225
6602
  ({ emojiId, senderId }) => {
7226
6603
  if (!emojiId || !senderId || document.hidden) {
7227
6604
  return;
7228
6605
  }
7229
- const senderPeerName = vanillaStore.getState(selectPeerNameByID2(senderId));
6606
+ const senderPeerName = vanillaStore.getState(selectPeerNameByID(senderId));
7230
6607
  const nameToShow = localPeerId === senderId ? "You" : senderPeerName;
7231
6608
  const startingPoint = startingPoints[emojiCount % startingPoints.length];
7232
6609
  const id = emojiCount++;
@@ -7245,14 +6622,14 @@ function FlyingEmoji() {
7245
6622
  },
7246
6623
  [localPeerId, vanillaStore, startingPoints]
7247
6624
  );
7248
- useCustomEvent3({
6625
+ useCustomEvent2({
7249
6626
  type: EMOJI_REACTION_TYPE,
7250
6627
  onEvent: showFlyingEmoji
7251
6628
  });
7252
- useEffect26(() => {
6629
+ useEffect25(() => {
7253
6630
  window.showFlyingEmoji = showFlyingEmoji;
7254
6631
  }, [showFlyingEmoji]);
7255
- return /* @__PURE__ */ React59.createElement(
6632
+ return /* @__PURE__ */ React56.createElement(
7256
6633
  Box,
7257
6634
  {
7258
6635
  css: {
@@ -7268,7 +6645,7 @@ function FlyingEmoji() {
7268
6645
  }
7269
6646
  },
7270
6647
  emojis.map((emoji) => {
7271
- return /* @__PURE__ */ React59.createElement(
6648
+ return /* @__PURE__ */ React56.createElement(
7272
6649
  Flex,
7273
6650
  {
7274
6651
  key: emoji.id,
@@ -7284,8 +6661,8 @@ function FlyingEmoji() {
7284
6661
  setEmojis(emojis.filter((item) => item.id !== emoji.id));
7285
6662
  }
7286
6663
  },
7287
- /* @__PURE__ */ React59.createElement(Box, null, /* @__PURE__ */ React59.createElement("em-emoji", { id: emoji.emojiId, size: "48px", set: "apple" })),
7288
- /* @__PURE__ */ React59.createElement(
6664
+ /* @__PURE__ */ React56.createElement(Box, null, /* @__PURE__ */ React56.createElement("em-emoji", { id: emoji.emojiId, size: "48px", set: "apple" })),
6665
+ /* @__PURE__ */ React56.createElement(
7289
6666
  Box,
7290
6667
  {
7291
6668
  css: {
@@ -7295,7 +6672,7 @@ function FlyingEmoji() {
7295
6672
  borderRadius: "$1"
7296
6673
  }
7297
6674
  },
7298
- /* @__PURE__ */ React59.createElement(
6675
+ /* @__PURE__ */ React56.createElement(
7299
6676
  Text,
7300
6677
  {
7301
6678
  css: {
@@ -7313,45 +6690,45 @@ function FlyingEmoji() {
7313
6690
  }
7314
6691
 
7315
6692
  // src/Prebuilt/plugins/RemoteStopScreenshare.jsx
7316
- import React60, { useCallback as useCallback19 } from "react";
7317
- import { useCustomEvent as useCustomEvent4, useHMSActions as useHMSActions18 } from "@100mslive/react-sdk";
6693
+ import React57, { useCallback as useCallback18 } from "react";
6694
+ import { useCustomEvent as useCustomEvent3, useHMSActions as useHMSActions16 } from "@100mslive/react-sdk";
7318
6695
  function RemoteStopScreenshare() {
7319
- const actions = useHMSActions18();
7320
- const onRemoteStopScreenshare = useCallback19(() => __async(this, null, function* () {
6696
+ const actions = useHMSActions16();
6697
+ const onRemoteStopScreenshare = useCallback18(() => __async(this, null, function* () {
7321
6698
  yield actions.setScreenShareEnabled(false);
7322
6699
  }), [actions]);
7323
- useCustomEvent4({
6700
+ useCustomEvent3({
7324
6701
  type: REMOTE_STOP_SCREENSHARE_TYPE,
7325
6702
  onEvent: onRemoteStopScreenshare
7326
6703
  });
7327
- return /* @__PURE__ */ React60.createElement(React60.Fragment, null);
6704
+ return /* @__PURE__ */ React57.createElement(React57.Fragment, null);
7328
6705
  }
7329
6706
 
7330
6707
  // src/Prebuilt/components/hooks/useAutoStartStreaming.tsx
7331
- import { useCallback as useCallback20, useEffect as useEffect28, useRef as useRef9 } from "react";
6708
+ import { useCallback as useCallback19, useEffect as useEffect27, useRef as useRef9 } from "react";
7332
6709
  import {
7333
6710
  selectIsConnectedToRoom as selectIsConnectedToRoom5,
7334
- selectPermissions as selectPermissions4,
7335
- useHMSActions as useHMSActions19,
7336
- useHMSStore as useHMSStore29,
6711
+ selectPermissions as selectPermissions2,
6712
+ useHMSActions as useHMSActions17,
6713
+ useHMSStore as useHMSStore25,
7337
6714
  useRecordingStreaming as useRecordingStreaming5
7338
6715
  } from "@100mslive/react-sdk";
7339
6716
 
7340
6717
  // src/Prebuilt/common/hooks.js
7341
- import { useEffect as useEffect27, useRef as useRef8, useState as useState22 } from "react";
6718
+ import { useEffect as useEffect26, useRef as useRef8, useState as useState19 } from "react";
7342
6719
  import { JoinForm_JoinBtnType as JoinForm_JoinBtnType3 } from "@100mslive/types-prebuilt/elements/join_form";
7343
6720
  import {
7344
6721
  selectAvailableRoleNames as selectAvailableRoleNames2,
7345
6722
  selectIsConnectedToRoom as selectIsConnectedToRoom4,
7346
6723
  selectPeerCount,
7347
- selectPeerMetadata as selectPeerMetadata3,
6724
+ selectPeerMetadata as selectPeerMetadata2,
7348
6725
  selectPeers,
7349
6726
  selectRemotePeers,
7350
- useHMSStore as useHMSStore28,
6727
+ useHMSStore as useHMSStore24,
7351
6728
  useHMSVanillaStore as useHMSVanillaStore8
7352
6729
  } from "@100mslive/react-sdk";
7353
6730
  var useFilteredRoles = () => {
7354
- const roles = useHMSStore28(selectAvailableRoleNames2);
6731
+ const roles = useHMSStore24(selectAvailableRoleNames2);
7355
6732
  return roles;
7356
6733
  };
7357
6734
  var useShowStreamingUI = () => {
@@ -7362,15 +6739,15 @@ var useShowStreamingUI = () => {
7362
6739
  };
7363
6740
  var useParticipants2 = (params) => {
7364
6741
  var _a7;
7365
- const isConnected = useHMSStore28(selectIsConnectedToRoom4);
7366
- const peerCount = useHMSStore28(selectPeerCount);
7367
- const availableRoles = useHMSStore28(selectAvailableRoleNames2);
7368
- let participantList = useHMSStore28(isConnected ? selectPeers : selectRemotePeers);
6742
+ const isConnected = useHMSStore24(selectIsConnectedToRoom4);
6743
+ const peerCount = useHMSStore24(selectPeerCount);
6744
+ const availableRoles = useHMSStore24(selectAvailableRoleNames2);
6745
+ let participantList = useHMSStore24(isConnected ? selectPeers : selectRemotePeers);
7369
6746
  const rolesWithParticipants = Array.from(new Set(participantList.map((peer) => peer.roleName)));
7370
6747
  const vanillaStore = useHMSVanillaStore8();
7371
6748
  if ((_a7 = params == null ? void 0 : params.metadata) == null ? void 0 : _a7.isHandRaised) {
7372
6749
  participantList = participantList.filter((peer) => {
7373
- return vanillaStore.getState(selectPeerMetadata3(peer.id)).isHandRaised;
6750
+ return vanillaStore.getState(selectPeerMetadata2(peer.id)).isHandRaised;
7374
6751
  });
7375
6752
  }
7376
6753
  if ((params == null ? void 0 : params.role) && availableRoles.includes(params.role)) {
@@ -7386,13 +6763,13 @@ var useParticipants2 = (params) => {
7386
6763
  // src/Prebuilt/components/hooks/useAutoStartStreaming.tsx
7387
6764
  var useAutoStartStreaming = () => {
7388
6765
  const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
7389
- const permissions = useHMSStore29(selectPermissions4);
6766
+ const permissions = useHMSStore25(selectPermissions2);
7390
6767
  const showStreamingUI = useShowStreamingUI();
7391
- const hmsActions = useHMSActions19();
7392
- const isConnected = useHMSStore29(selectIsConnectedToRoom5);
6768
+ const hmsActions = useHMSActions17();
6769
+ const isConnected = useHMSStore25(selectIsConnectedToRoom5);
7393
6770
  const { isHLSRunning } = useRecordingStreaming5();
7394
6771
  const streamStartedRef = useRef9(false);
7395
- const startHLS = useCallback20(() => __async(void 0, null, function* () {
6772
+ const startHLS = useCallback19(() => __async(void 0, null, function* () {
7396
6773
  var _a7;
7397
6774
  try {
7398
6775
  if (isHLSStarted || !showStreamingUI || isHLSRunning) {
@@ -7409,12 +6786,12 @@ var useAutoStartStreaming = () => {
7409
6786
  setHLSStarted(false);
7410
6787
  }
7411
6788
  }), [hmsActions, isHLSRunning, isHLSStarted, setHLSStarted, showStreamingUI]);
7412
- useEffect28(() => {
6789
+ useEffect27(() => {
7413
6790
  if (!isHLSStarted && !isHLSRunning) {
7414
6791
  streamStartedRef.current = false;
7415
6792
  }
7416
6793
  }, [isHLSStarted, isHLSRunning]);
7417
- useEffect28(() => {
6794
+ useEffect27(() => {
7418
6795
  if (!isConnected || streamStartedRef.current || !(permissions == null ? void 0 : permissions.hlsStreaming)) {
7419
6796
  return;
7420
6797
  }
@@ -7423,8 +6800,8 @@ var useAutoStartStreaming = () => {
7423
6800
  };
7424
6801
 
7425
6802
  // src/Prebuilt/App.tsx
7426
- var Conference = React61.lazy(() => import("./conference-6IVZHILI.js"));
7427
- var HMSPrebuilt = React61.forwardRef(
6803
+ var Conference = React58.lazy(() => import("./conference-JD35TNH4.js"));
6804
+ var HMSPrebuilt = React58.forwardRef(
7428
6805
  ({
7429
6806
  roomCode = "",
7430
6807
  authToken = "",
@@ -7440,8 +6817,8 @@ var HMSPrebuilt = React61.forwardRef(
7440
6817
  var _a7, _b7, _c, _d;
7441
6818
  const metadata = "";
7442
6819
  const reactiveStore = useRef10();
7443
- const [hydrated, setHydrated] = React61.useState(false);
7444
- useEffect29(() => {
6820
+ const [hydrated, setHydrated] = React58.useState(false);
6821
+ useEffect28(() => {
7445
6822
  setHydrated(true);
7446
6823
  const hms = new HMSReactiveStore();
7447
6824
  const hmsStore = hms.getStore();
@@ -7456,13 +6833,13 @@ var HMSPrebuilt = React61.forwardRef(
7456
6833
  hmsNotifications
7457
6834
  };
7458
6835
  }, []);
7459
- useEffect29(() => {
6836
+ useEffect28(() => {
7460
6837
  if (!ref || !reactiveStore.current) {
7461
6838
  return;
7462
6839
  }
7463
6840
  ref.current = __spreadValues({}, reactiveStore.current);
7464
6841
  }, [ref]);
7465
- useEffect29(
6842
+ useEffect28(
7466
6843
  () => () => {
7467
6844
  var _a8;
7468
6845
  (_a8 = reactiveStore == null ? void 0 : reactiveStore.current) == null ? void 0 : _a8.hmsActions.leave();
@@ -7492,7 +6869,7 @@ var HMSPrebuilt = React61.forwardRef(
7492
6869
  return null;
7493
6870
  }
7494
6871
  globalStyles();
7495
- return /* @__PURE__ */ React61.createElement(ErrorBoundary, null, /* @__PURE__ */ React61.createElement(
6872
+ return /* @__PURE__ */ React58.createElement(ErrorBoundary, null, /* @__PURE__ */ React58.createElement(
7496
6873
  HMSPrebuiltContext.Provider,
7497
6874
  {
7498
6875
  value: {
@@ -7510,7 +6887,7 @@ var HMSPrebuilt = React61.forwardRef(
7510
6887
  }
7511
6888
  }
7512
6889
  },
7513
- /* @__PURE__ */ React61.createElement(
6890
+ /* @__PURE__ */ React58.createElement(
7514
6891
  HMSRoomProvider,
7515
6892
  {
7516
6893
  isHMSStatsOn: FeatureFlags.enableStatsForNerds,
@@ -7519,7 +6896,7 @@ var HMSPrebuilt = React61.forwardRef(
7519
6896
  notifications: (_c = reactiveStore.current) == null ? void 0 : _c.hmsNotifications,
7520
6897
  stats: (_d = reactiveStore.current) == null ? void 0 : _d.hmsStats
7521
6898
  },
7522
- /* @__PURE__ */ React61.createElement(RoomLayoutProvider, { roomLayoutEndpoint, overrideLayout }, /* @__PURE__ */ React61.createElement(RoomLayoutContext.Consumer, null, (data) => {
6899
+ /* @__PURE__ */ React58.createElement(RoomLayoutProvider, { roomLayoutEndpoint, overrideLayout }, /* @__PURE__ */ React58.createElement(RoomLayoutContext.Consumer, null, (data) => {
7523
6900
  var _a8;
7524
6901
  const layout = data == null ? void 0 : data.layout;
7525
6902
  const theme2 = ((_a8 = layout == null ? void 0 : layout.themes) == null ? void 0 : _a8[0]) || {};
@@ -7528,7 +6905,7 @@ var HMSPrebuilt = React61.forwardRef(
7528
6905
  if (typography2 == null ? void 0 : typography2.font_family) {
7529
6906
  fontFamily = [`${typography2 == null ? void 0 : typography2.font_family}`, ...fontFamily];
7530
6907
  }
7531
- return /* @__PURE__ */ React61.createElement(
6908
+ return /* @__PURE__ */ React58.createElement(
7532
6909
  HMSThemeProvider,
7533
6910
  {
7534
6911
  themeType: `${theme2.name}-${Date.now()}`,
@@ -7541,11 +6918,12 @@ var HMSPrebuilt = React61.forwardRef(
7541
6918
  }
7542
6919
  }
7543
6920
  },
7544
- /* @__PURE__ */ React61.createElement(AppData, { appDetails: metadata, tokenEndpoint: tokenByRoomIdRoleEndpoint }),
7545
- /* @__PURE__ */ React61.createElement(Init, null),
7546
- /* @__PURE__ */ React61.createElement(
6921
+ /* @__PURE__ */ React58.createElement(AppData, { appDetails: metadata, tokenEndpoint: tokenByRoomIdRoleEndpoint }),
6922
+ /* @__PURE__ */ React58.createElement(Init, null),
6923
+ /* @__PURE__ */ React58.createElement(
7547
6924
  Box,
7548
6925
  {
6926
+ id: "prebuilt-container",
7549
6927
  css: {
7550
6928
  bg: "$background_dim",
7551
6929
  size: "100%",
@@ -7553,7 +6931,7 @@ var HMSPrebuilt = React61.forwardRef(
7553
6931
  "-webkit-text-size-adjust": "100%"
7554
6932
  }
7555
6933
  },
7556
- /* @__PURE__ */ React61.createElement(AppRoutes, { authTokenByRoomCodeEndpoint: tokenByRoomCodeEndpoint, defaultAuthToken: authToken })
6934
+ /* @__PURE__ */ React58.createElement(AppRoutes, { authTokenByRoomCodeEndpoint: tokenByRoomCodeEndpoint, defaultAuthToken: authToken })
7557
6935
  )
7558
6936
  );
7559
6937
  }))
@@ -7564,42 +6942,42 @@ var HMSPrebuilt = React61.forwardRef(
7564
6942
  HMSPrebuilt.displayName = "HMSPrebuilt";
7565
6943
  var Redirector = ({ showPreview }) => {
7566
6944
  const { roomId, role } = useParams5();
7567
- return /* @__PURE__ */ React61.createElement(Navigate, { to: `/${showPreview ? "preview" : "meeting"}/${roomId}/${role || ""}` });
6945
+ return /* @__PURE__ */ React58.createElement(Navigate, { to: `/${showPreview ? "preview" : "meeting"}/${roomId}/${role || ""}` });
7568
6946
  };
7569
6947
  var RouteList = () => {
7570
6948
  const { isPreviewScreenEnabled } = useRoomLayoutPreviewScreen();
7571
6949
  const { isLeaveScreenEnabled } = useRoomLayoutLeaveScreen();
7572
6950
  useAutoStartStreaming();
7573
- return /* @__PURE__ */ React61.createElement(Routes, null, isPreviewScreenEnabled ? /* @__PURE__ */ React61.createElement(Route, { path: "preview" }, /* @__PURE__ */ React61.createElement(
6951
+ return /* @__PURE__ */ React58.createElement(Routes, null, isPreviewScreenEnabled ? /* @__PURE__ */ React58.createElement(Route, { path: "preview" }, /* @__PURE__ */ React58.createElement(
7574
6952
  Route,
7575
6953
  {
7576
6954
  path: ":roomId/:role",
7577
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React61.createElement(PreviewContainer_default, null))
6955
+ element: /* @__PURE__ */ React58.createElement(Suspense2, { fallback: /* @__PURE__ */ React58.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React58.createElement(PreviewContainer_default, null))
7578
6956
  }
7579
- ), /* @__PURE__ */ React61.createElement(
6957
+ ), /* @__PURE__ */ React58.createElement(
7580
6958
  Route,
7581
6959
  {
7582
6960
  path: ":roomId",
7583
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React61.createElement(PreviewContainer_default, null))
6961
+ element: /* @__PURE__ */ React58.createElement(Suspense2, { fallback: /* @__PURE__ */ React58.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React58.createElement(PreviewContainer_default, null))
7584
6962
  }
7585
- )) : null, /* @__PURE__ */ React61.createElement(Route, { path: "meeting" }, /* @__PURE__ */ React61.createElement(
6963
+ )) : null, /* @__PURE__ */ React58.createElement(Route, { path: "meeting" }, /* @__PURE__ */ React58.createElement(
7586
6964
  Route,
7587
6965
  {
7588
6966
  path: ":roomId/:role",
7589
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React61.createElement(Conference, null))
6967
+ element: /* @__PURE__ */ React58.createElement(Suspense2, { fallback: /* @__PURE__ */ React58.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React58.createElement(Conference, null))
7590
6968
  }
7591
- ), /* @__PURE__ */ React61.createElement(
6969
+ ), /* @__PURE__ */ React58.createElement(
7592
6970
  Route,
7593
6971
  {
7594
6972
  path: ":roomId",
7595
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React61.createElement(Conference, null))
6973
+ element: /* @__PURE__ */ React58.createElement(Suspense2, { fallback: /* @__PURE__ */ React58.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React58.createElement(Conference, null))
7596
6974
  }
7597
- )), isLeaveScreenEnabled ? /* @__PURE__ */ React61.createElement(Route, { path: "leave" }, /* @__PURE__ */ React61.createElement(Route, { path: ":roomId/:role", element: /* @__PURE__ */ React61.createElement(PostLeave_default, null) }), /* @__PURE__ */ React61.createElement(Route, { path: ":roomId", element: /* @__PURE__ */ React61.createElement(PostLeave_default, null) })) : null, /* @__PURE__ */ React61.createElement(Route, { path: "/:roomId/:role", element: /* @__PURE__ */ React61.createElement(Redirector, { showPreview: isPreviewScreenEnabled }) }), /* @__PURE__ */ React61.createElement(Route, { path: "/:roomId/", element: /* @__PURE__ */ React61.createElement(Redirector, { showPreview: isPreviewScreenEnabled }) }));
6975
+ )), isLeaveScreenEnabled ? /* @__PURE__ */ React58.createElement(Route, { path: "leave" }, /* @__PURE__ */ React58.createElement(Route, { path: ":roomId/:role", element: /* @__PURE__ */ React58.createElement(PostLeave_default, null) }), /* @__PURE__ */ React58.createElement(Route, { path: ":roomId", element: /* @__PURE__ */ React58.createElement(PostLeave_default, null) })) : null, /* @__PURE__ */ React58.createElement(Route, { path: "/:roomId/:role", element: /* @__PURE__ */ React58.createElement(Redirector, { showPreview: isPreviewScreenEnabled }) }), /* @__PURE__ */ React58.createElement(Route, { path: "/:roomId/", element: /* @__PURE__ */ React58.createElement(Redirector, { showPreview: isPreviewScreenEnabled }) }));
7598
6976
  };
7599
6977
  var BackSwipe = () => {
7600
- const isConnectedToRoom = useHMSStore30(selectIsConnectedToRoom6);
7601
- const hmsActions = useHMSActions20();
7602
- useEffect29(() => {
6978
+ const isConnectedToRoom = useHMSStore26(selectIsConnectedToRoom6);
6979
+ const hmsActions = useHMSActions18();
6980
+ useEffect28(() => {
7603
6981
  const onRouteLeave = () => __async(void 0, null, function* () {
7604
6982
  if (isConnectedToRoom) {
7605
6983
  yield hmsActions.leave();
@@ -7614,7 +6992,7 @@ var BackSwipe = () => {
7614
6992
  };
7615
6993
  var Router = ({ children }) => {
7616
6994
  const { roomId, role, roomCode } = useHMSPrebuiltContext();
7617
- return [roomId, role, roomCode].every((value) => !value) ? /* @__PURE__ */ React61.createElement(BrowserRouter, null, children) : /* @__PURE__ */ React61.createElement(MemoryRouter, { initialEntries: [`/${roomCode ? roomCode : `${roomId}/${role || ""}`}`], initialIndex: 0 }, children);
6995
+ return [roomId, role, roomCode].every((value) => !value) ? /* @__PURE__ */ React58.createElement(BrowserRouter, null, children) : /* @__PURE__ */ React58.createElement(MemoryRouter, { initialEntries: [`/${roomCode ? roomCode : `${roomId}/${role || ""}`}`], initialIndex: 0 }, children);
7618
6996
  };
7619
6997
  function AppRoutes({
7620
6998
  authTokenByRoomCodeEndpoint,
@@ -7622,7 +7000,7 @@ function AppRoutes({
7622
7000
  }) {
7623
7001
  const roomLayout = useRoomLayout();
7624
7002
  const isNotificationsDisabled = useIsNotificationDisabled();
7625
- return /* @__PURE__ */ React61.createElement(Router, null, /* @__PURE__ */ React61.createElement(React61.Fragment, null, /* @__PURE__ */ React61.createElement(ToastContainer, null), /* @__PURE__ */ React61.createElement(Notifications, null), /* @__PURE__ */ React61.createElement(BackSwipe, null), !isNotificationsDisabled && /* @__PURE__ */ React61.createElement(FlyingEmoji, null), /* @__PURE__ */ React61.createElement(RemoteStopScreenshare, null), /* @__PURE__ */ React61.createElement(KeyboardHandler, null), /* @__PURE__ */ React61.createElement(AuthToken_default, { authTokenByRoomCodeEndpoint, defaultAuthToken }), roomLayout && /* @__PURE__ */ React61.createElement(Routes, null, /* @__PURE__ */ React61.createElement(Route, { path: "/*", element: /* @__PURE__ */ React61.createElement(RouteList, null) }))));
7003
+ return /* @__PURE__ */ React58.createElement(Router, null, /* @__PURE__ */ React58.createElement(React58.Fragment, null, /* @__PURE__ */ React58.createElement(ToastContainer, null), /* @__PURE__ */ React58.createElement(Notifications, null), /* @__PURE__ */ React58.createElement(BackSwipe, null), !isNotificationsDisabled && /* @__PURE__ */ React58.createElement(FlyingEmoji, null), /* @__PURE__ */ React58.createElement(RemoteStopScreenshare, null), /* @__PURE__ */ React58.createElement(KeyboardHandler, null), /* @__PURE__ */ React58.createElement(AuthToken_default, { authTokenByRoomCodeEndpoint, defaultAuthToken }), roomLayout && /* @__PURE__ */ React58.createElement(Routes, null, /* @__PURE__ */ React58.createElement(Route, { path: "/*", element: /* @__PURE__ */ React58.createElement(RouteList, null) }))));
7626
7004
  }
7627
7005
 
7628
7006
  // src/Progress/index.tsx
@@ -7665,6 +7043,7 @@ export {
7665
7043
  Video,
7666
7044
  StyledMenuTile,
7667
7045
  useBorderAudioLevel,
7046
+ AudioLevel,
7668
7047
  Popover2 as Popover,
7669
7048
  VideoTileStats,
7670
7049
  Checkbox,
@@ -7689,6 +7068,7 @@ export {
7689
7068
  APP_DATA,
7690
7069
  UI_SETTINGS,
7691
7070
  SIDE_PANE_OPTIONS,
7071
+ REMOTE_STOP_SCREENSHARE_TYPE,
7692
7072
  isChrome,
7693
7073
  isIOS,
7694
7074
  isMacOS,
@@ -7709,6 +7089,7 @@ export {
7709
7089
  useSetSubscribedChatSelector,
7710
7090
  useSetAppDataByKey,
7711
7091
  useHMSPrebuiltContext,
7092
+ PrebuiltDialogPortal,
7712
7093
  DialogContent,
7713
7094
  DialogRow,
7714
7095
  DialogCol,
@@ -7728,15 +7109,12 @@ export {
7728
7109
  StopRecordingInSheet,
7729
7110
  Header2 as Header,
7730
7111
  AudioVideoToggle,
7112
+ Chip_default,
7731
7113
  ConnectionIndicator,
7114
+ TileConnection_default,
7732
7115
  DialogDropdownTrigger,
7733
7116
  useDropdownSelection,
7734
7117
  SettingsModal_default,
7735
- ChangeNameModal,
7736
- useDropdownList,
7737
- TileMenu_default,
7738
- getVideoTileLabel,
7739
- VideoTile_default,
7740
7118
  PreviewTile,
7741
7119
  PreviewControls,
7742
7120
  useFilteredRoles,
@@ -7744,4 +7122,4 @@ export {
7744
7122
  HMSPrebuilt,
7745
7123
  Progress
7746
7124
  };
7747
- //# sourceMappingURL=chunk-CDYRVICT.js.map
7125
+ //# sourceMappingURL=chunk-GLYGPYNS.js.map