@100mslive/roomkit-react 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) 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-3S74KF3A.js → HLSView-DDGPZHA2.js} +5 -4
  5. package/dist/{HLSView-3S74KF3A.js.map → HLSView-DDGPZHA2.js.map} +2 -2
  6. package/dist/Prebuilt/App.d.ts +1 -0
  7. package/dist/Prebuilt/AppContext.d.ts +1 -0
  8. package/dist/Prebuilt/components/Chip.d.ts +12 -0
  9. package/dist/Prebuilt/components/Footer/PaginatedParticipants.d.ts +5 -0
  10. package/dist/Prebuilt/components/Footer/RoleAccordion.d.ts +10 -3
  11. package/dist/Prebuilt/components/Notifications/HeadlessEndRoomListener.d.ts +2 -0
  12. package/dist/Prebuilt/components/PrebuiltDialogPortal.d.ts +4 -0
  13. package/dist/Prebuilt/components/PrebuiltTileElements.d.ts +2198 -0
  14. package/dist/{VirtualBackground-3TI5NA4V.js → VirtualBackground-UVZJVOA2.js} +3 -3
  15. package/dist/{chunk-5DQ3WTED.js → chunk-6SQTFOK6.js} +2 -2
  16. package/dist/{chunk-5DQ3WTED.js.map → chunk-6SQTFOK6.js.map} +1 -1
  17. package/dist/{chunk-36X4ZCLC.js → chunk-HUMNPIYI.js} +2 -2
  18. package/dist/{chunk-Z7P5WITU.js → chunk-PRM33R4R.js} +591 -1186
  19. package/dist/chunk-PRM33R4R.js.map +7 -0
  20. package/dist/{conference-JNABIZBG.js → conference-N7S47TDK.js} +1505 -717
  21. package/dist/conference-N7S47TDK.js.map +7 -0
  22. package/dist/index.cjs.js +3083 -2825
  23. package/dist/index.cjs.js.map +4 -4
  24. package/dist/index.js +4 -2
  25. package/dist/meta.cjs.json +1107 -740
  26. package/dist/meta.esbuild.json +1160 -791
  27. package/package.json +6 -6
  28. package/src/AudioLevel/AudioLevel.tsx +79 -30
  29. package/src/AudioLevel/audio-level.png +0 -0
  30. package/src/AudioLevel/index.ts +2 -1
  31. package/src/AudioLevel/useBorderAudioLevel.tsx +34 -0
  32. package/src/Prebuilt/App.tsx +6 -0
  33. package/src/Prebuilt/AppContext.tsx +2 -0
  34. package/src/Prebuilt/common/constants.js +1 -1
  35. package/src/Prebuilt/common/utils.js +0 -7
  36. package/src/Prebuilt/components/AppData/AppData.jsx +1 -1
  37. package/src/Prebuilt/components/AppData/useUISettings.js +1 -1
  38. package/src/Prebuilt/components/{Chip.jsx → Chip.tsx} +18 -3
  39. package/src/Prebuilt/components/Footer/PaginatedParticipants.tsx +94 -0
  40. package/src/Prebuilt/components/Footer/ParticipantList.jsx +67 -26
  41. package/src/Prebuilt/components/Footer/RoleAccordion.tsx +91 -49
  42. package/src/Prebuilt/components/Footer/RoleOptions.tsx +1 -1
  43. package/src/Prebuilt/components/Leave/DesktopLeaveRoom.tsx +7 -4
  44. package/src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx +3 -2
  45. package/src/Prebuilt/components/MoreSettings/EmbedUrl.jsx +3 -2
  46. package/src/Prebuilt/components/MwebLandscapePrompt.jsx +58 -0
  47. package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +3 -2
  48. package/src/Prebuilt/components/Notifications/HeadlessEndRoomListener.tsx +23 -0
  49. package/src/Prebuilt/components/Notifications/Notifications.jsx +1 -1
  50. package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +3 -2
  51. package/src/Prebuilt/components/PrebuiltDialogPortal.tsx +6 -0
  52. package/src/Prebuilt/components/PrebuiltTileElements.tsx +5 -0
  53. package/src/Prebuilt/components/Preview/PreviewJoin.tsx +11 -7
  54. package/src/Prebuilt/components/RoleChangeModal.jsx +3 -2
  55. package/src/Prebuilt/components/RoleChangeRequest/RequestPrompt.tsx +3 -2
  56. package/src/Prebuilt/components/Settings/SettingsModal.jsx +3 -2
  57. package/src/Prebuilt/components/Settings/StartRecording.jsx +3 -2
  58. package/src/Prebuilt/components/SidePaneTabs.tsx +31 -5
  59. package/src/Prebuilt/components/StatsForNerds.jsx +3 -2
  60. package/src/Prebuilt/components/VideoTile.jsx +21 -83
  61. package/src/Prebuilt/components/conference.jsx +4 -3
  62. package/src/Prebuilt/components/hooks/useDropdownSelection.jsx +1 -1
  63. package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +3 -2
  64. package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +4 -29
  65. package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +3 -2
  66. package/src/Prebuilt/layouts/HLSView.jsx +1 -0
  67. package/src/Prebuilt/layouts/SidePane.tsx +1 -0
  68. package/src/Prebuilt/primitives/DialogContent.jsx +5 -4
  69. package/dist/chunk-Z7P5WITU.js.map +0 -7
  70. package/dist/conference-JNABIZBG.js.map +0 -7
  71. /package/dist/{VirtualBackground-3TI5NA4V.js.map → VirtualBackground-UVZJVOA2.js.map} +0 -0
  72. /package/dist/{chunk-36X4ZCLC.js.map → chunk-HUMNPIYI.js.map} +0 -0
@@ -35,7 +35,7 @@ import {
35
35
  textEllipsis,
36
36
  theme,
37
37
  toastAnimation
38
- } from "./chunk-5DQ3WTED.js";
38
+ } from "./chunk-6SQTFOK6.js";
39
39
 
40
40
  // src/Button/Button.tsx
41
41
  import React2 from "react";
@@ -1221,7 +1221,7 @@ var StyledMenuTile = {
1221
1221
  RemoveItem: RemoveMenuItem
1222
1222
  };
1223
1223
 
1224
- // src/AudioLevel/AudioLevel.tsx
1224
+ // src/AudioLevel/useBorderAudioLevel.tsx
1225
1225
  import { useCallback as useCallback2, useRef as useRef2 } from "react";
1226
1226
  import { useAudioLevelStyles } from "@100mslive/react-sdk";
1227
1227
  function useBorderAudioLevel(audioTrackId) {
@@ -1249,6 +1249,83 @@ var sigmoid = (z) => {
1249
1249
  return 1 / (1 + Math.exp(-z));
1250
1250
  };
1251
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.1em"
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
+
1252
1329
  // src/Popover/index.tsx
1253
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";
1254
1331
  var StyledContent2 = styled(Content4, __spreadValues({
@@ -1270,7 +1347,7 @@ var Popover2 = {
1270
1347
  };
1271
1348
 
1272
1349
  // src/Stats/Stats.tsx
1273
- import React10, { Fragment } from "react";
1350
+ import React11, { Fragment } from "react";
1274
1351
  import {
1275
1352
  selectConnectionQualityByPeerID,
1276
1353
  selectHMSStats,
@@ -1350,7 +1427,7 @@ function VideoTileStats({ videoTrackID, audioTrackID, peerID, isLocal = false })
1350
1427
  if (!(audioTrackStats || videoTrackStats)) {
1351
1428
  return null;
1352
1429
  }
1353
- 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(
1354
1431
  StatsRow,
1355
1432
  {
1356
1433
  show: isNotNullishAndNot0(availableOutgoingBitrate),
@@ -1364,71 +1441,71 @@ function VideoTileStats({ videoTrackID, audioTrackID, peerID, isLocal = false })
1364
1441
  return null;
1365
1442
  }
1366
1443
  const layer = stat.rid ? simulcastMapping[stat.rid] : "";
1367
- 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(
1368
1445
  StatsRow,
1369
1446
  {
1370
1447
  show: isNotNullishAndNot0(stat.frameWidth),
1371
1448
  label: "Width",
1372
1449
  value: (_a8 = stat.frameWidth) == null ? void 0 : _a8.toString()
1373
1450
  }
1374
- ), /* @__PURE__ */ React10.createElement(
1451
+ ), /* @__PURE__ */ React11.createElement(
1375
1452
  StatsRow,
1376
1453
  {
1377
1454
  show: isNotNullishAndNot0(stat.frameHeight),
1378
1455
  label: "Height",
1379
1456
  value: (_b8 = stat.frameHeight) == null ? void 0 : _b8.toString()
1380
1457
  }
1381
- ), /* @__PURE__ */ React10.createElement(
1458
+ ), /* @__PURE__ */ React11.createElement(
1382
1459
  StatsRow,
1383
1460
  {
1384
1461
  show: isNotNullishAndNot0(stat.framesPerSecond),
1385
1462
  label: "FPS",
1386
1463
  value: `${stat.framesPerSecond} ${isNotNullishAndNot0(stat.framesDropped) ? `(${stat.framesDropped} dropped)` : ""}`
1387
1464
  }
1388
- ), /* @__PURE__ */ React10.createElement(
1465
+ ), /* @__PURE__ */ React11.createElement(
1389
1466
  StatsRow,
1390
1467
  {
1391
1468
  show: isNotNullish(stat.bitrate),
1392
1469
  label: "Bitrate(V)",
1393
1470
  value: formatBytes(stat.bitrate, "b/s")
1394
1471
  }
1395
- ), /* @__PURE__ */ React10.createElement(Stats.Gap, null));
1396
- })) : /* @__PURE__ */ React10.createElement(Fragment, null, /* @__PURE__ */ React10.createElement(
1472
+ ), /* @__PURE__ */ React11.createElement(Stats.Gap, null));
1473
+ })) : /* @__PURE__ */ React11.createElement(Fragment, null, /* @__PURE__ */ React11.createElement(
1397
1474
  StatsRow,
1398
1475
  {
1399
1476
  show: isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.frameWidth),
1400
1477
  label: "Width",
1401
1478
  value: (_b7 = videoTrackStats == null ? void 0 : videoTrackStats.frameWidth) == null ? void 0 : _b7.toString()
1402
1479
  }
1403
- ), /* @__PURE__ */ React10.createElement(
1480
+ ), /* @__PURE__ */ React11.createElement(
1404
1481
  StatsRow,
1405
1482
  {
1406
1483
  show: isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.frameHeight),
1407
1484
  label: "Height",
1408
1485
  value: (_c = videoTrackStats == null ? void 0 : videoTrackStats.frameHeight) == null ? void 0 : _c.toString()
1409
1486
  }
1410
- ), /* @__PURE__ */ React10.createElement(
1487
+ ), /* @__PURE__ */ React11.createElement(
1411
1488
  StatsRow,
1412
1489
  {
1413
1490
  show: isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.framesPerSecond),
1414
1491
  label: "FPS",
1415
1492
  value: `${videoTrackStats == null ? void 0 : videoTrackStats.framesPerSecond} ${isNotNullishAndNot0(videoTrackStats == null ? void 0 : videoTrackStats.framesDropped) ? `(${videoTrackStats == null ? void 0 : videoTrackStats.framesDropped} dropped)` : ""}`
1416
1493
  }
1417
- ), /* @__PURE__ */ React10.createElement(
1494
+ ), /* @__PURE__ */ React11.createElement(
1418
1495
  StatsRow,
1419
1496
  {
1420
1497
  show: isNotNullish(videoTrackStats == null ? void 0 : videoTrackStats.bitrate),
1421
1498
  label: "Bitrate(V)",
1422
1499
  value: formatBytes(videoTrackStats == null ? void 0 : videoTrackStats.bitrate, "b/s")
1423
1500
  }
1424
- )), /* @__PURE__ */ React10.createElement(
1501
+ )), /* @__PURE__ */ React11.createElement(
1425
1502
  StatsRow,
1426
1503
  {
1427
1504
  show: isNotNullish(audioTrackStats == null ? void 0 : audioTrackStats.bitrate),
1428
1505
  label: "Bitrate(A)",
1429
1506
  value: formatBytes(audioTrackStats == null ? void 0 : audioTrackStats.bitrate, "b/s")
1430
1507
  }
1431
- ), /* @__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 }))));
1432
1509
  }
1433
1510
  var PacketLostAndJitter = ({
1434
1511
  audioTrackStats,
@@ -1438,14 +1515,14 @@ var PacketLostAndJitter = ({
1438
1515
  const isLocalPeer = (audioTrackStats == null ? void 0 : audioTrackStats.type.includes("outbound")) || (videoTrackStats == null ? void 0 : videoTrackStats.type.includes("outbound"));
1439
1516
  const audioStats = isLocalPeer ? audioTrackStats == null ? void 0 : audioTrackStats.remote : audioTrackStats;
1440
1517
  const videoStats = isLocalPeer ? videoTrackStats == null ? void 0 : videoTrackStats.remote : videoTrackStats;
1441
- 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) }));
1442
1519
  };
1443
1520
  var TrackPacketsLostRow = ({
1444
1521
  stats,
1445
1522
  label
1446
1523
  }) => {
1447
1524
  const packetsLostRate = `${(stats == null ? void 0 : stats.packetsLostRate) ? stats.packetsLostRate.toFixed(2) : 0}/s`;
1448
- return /* @__PURE__ */ React10.createElement(
1525
+ return /* @__PURE__ */ React11.createElement(
1449
1526
  StatsRow,
1450
1527
  {
1451
1528
  show: isNotNullishAndNot0(stats == null ? void 0 : stats.packetsLost),
@@ -1460,10 +1537,10 @@ var RawStatsRow = ({
1460
1537
  tooltip = "",
1461
1538
  show = true
1462
1539
  }) => {
1463
- const statsLabel = /* @__PURE__ */ React10.createElement(Stats.Label, { css: { fontWeight: !value ? "$semiBold" : "$regular" } }, label);
1464
- 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);
1465
1542
  };
1466
- var StatsRow = React10.memo(RawStatsRow);
1543
+ var StatsRow = React11.memo(RawStatsRow);
1467
1544
  function isNotNullishAndNot0(value) {
1468
1545
  return isNotNullish(value) && value !== 0;
1469
1546
  }
@@ -1542,7 +1619,7 @@ var RadioGroup = {
1542
1619
  };
1543
1620
 
1544
1621
  // src/Toast/Toast.tsx
1545
- import React11 from "react";
1622
+ import React12 from "react";
1546
1623
  import * as ToastPrimitives from "@radix-ui/react-toast";
1547
1624
  import { CrossIcon as CrossIcon2 } from "@100mslive/react-icons";
1548
1625
  var getToastVariant = (base) => {
@@ -1633,7 +1710,7 @@ var ToastViewport = styled(ToastPrimitives.Viewport, {
1633
1710
  zIndex: 1e3
1634
1711
  });
1635
1712
  var DefaultClose = ({ css: css2 }) => {
1636
- 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)));
1637
1714
  };
1638
1715
  var HMSToast = (_a7) => {
1639
1716
  var _b7 = _a7, {
@@ -1651,7 +1728,7 @@ var HMSToast = (_a7) => {
1651
1728
  "action",
1652
1729
  "inlineAction"
1653
1730
  ]);
1654
- 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));
1655
1732
  };
1656
1733
  var Toast = {
1657
1734
  Provider: ToastPrimitives.Provider,
@@ -1665,7 +1742,7 @@ var Toast = {
1665
1742
  };
1666
1743
 
1667
1744
  // src/Accordion/Accordion.tsx
1668
- import React12 from "react";
1745
+ import React13 from "react";
1669
1746
  import * as BaseAccordion from "@radix-ui/react-accordion";
1670
1747
  import { ChevronUpIcon } from "@100mslive/react-icons";
1671
1748
  var StyledAccordion = styled(BaseAccordion.Root, {});
@@ -1717,14 +1794,14 @@ var StyledChevron = styled(ChevronUpIcon, {
1717
1794
  });
1718
1795
  var AccordionRoot = StyledAccordion;
1719
1796
  var AccordionItem = StyledItem;
1720
- var AccordionHeader = React12.forwardRef((_a7, forwardedRef) => {
1797
+ var AccordionHeader = React13.forwardRef((_a7, forwardedRef) => {
1721
1798
  var _b7 = _a7, { children, iconStyles, css: css2 } = _b7, props = __objRest(_b7, ["children", "iconStyles", "css"]);
1722
- 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 })));
1723
1800
  });
1724
- var AccordionContent = React12.forwardRef(
1801
+ var AccordionContent = React13.forwardRef(
1725
1802
  (_a7, forwardedRef) => {
1726
1803
  var _b7 = _a7, { children, contentStyles } = _b7, props = __objRest(_b7, ["children", "contentStyles"]);
1727
- 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));
1728
1805
  }
1729
1806
  );
1730
1807
 
@@ -1918,14 +1995,14 @@ var Tabs = {
1918
1995
  };
1919
1996
 
1920
1997
  // src/QRCode/QRCode.tsx
1921
- import React13 from "react";
1998
+ import React14 from "react";
1922
1999
  import { QRCodeSVG } from "qrcode.react";
1923
2000
  var QRCode = (props) => {
1924
- 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));
1925
2002
  };
1926
2003
 
1927
2004
  // src/Link/Link.tsx
1928
- import React14 from "react";
2005
+ import React15 from "react";
1929
2006
  import * as icons from "@100mslive/react-icons";
1930
2007
  var LinkComponent = styled("a", {
1931
2008
  textDecoration: "none",
@@ -1951,9 +2028,9 @@ var LinkComponent = styled("a", {
1951
2028
  });
1952
2029
  var Link = (_a7) => {
1953
2030
  var _b7 = _a7, { iconSide = "left", icon, color = "primary", children } = _b7, rest = __objRest(_b7, ["iconSide", "icon", "color", "children"]);
1954
- const Icon2 = icon ? icons[icon] : React14.Fragment;
1955
- const renderedIcon = icon ? /* @__PURE__ */ React14.createElement(Flex, { as: "span" }, /* @__PURE__ */ React14.createElement(Icon2, { height: 13.33, width: 13.33 }), " ") : null;
1956
- 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);
1957
2034
  };
1958
2035
 
1959
2036
  // src/Collapsible/Collapsible.tsx
@@ -1987,18 +2064,18 @@ var Collapsible = {
1987
2064
  };
1988
2065
 
1989
2066
  // src/Prebuilt/App.tsx
1990
- import React61, { Suspense as Suspense2, useEffect as useEffect29, useRef as useRef10 } from "react";
2067
+ import React59, { Suspense as Suspense2, useEffect as useEffect29, useRef as useRef10 } from "react";
1991
2068
  import { BrowserRouter, MemoryRouter, Navigate, Route, Routes, useParams as useParams5 } from "react-router-dom";
1992
2069
  import {
1993
2070
  HMSReactiveStore,
1994
2071
  HMSRoomProvider,
1995
2072
  selectIsConnectedToRoom as selectIsConnectedToRoom6,
1996
- useHMSActions as useHMSActions20,
1997
- useHMSStore as useHMSStore30
2073
+ useHMSActions as useHMSActions18,
2074
+ useHMSStore as useHMSStore26
1998
2075
  } from "@100mslive/react-sdk";
1999
2076
 
2000
2077
  // src/Prebuilt/components/AppData/AppData.jsx
2001
- import React15, { useEffect as useEffect3 } from "react";
2078
+ import React16, { useEffect as useEffect4 } from "react";
2002
2079
  import {
2003
2080
  HMSRoomState,
2004
2081
  selectAvailableRoleNames,
@@ -2084,7 +2161,7 @@ var useUserPreferences = (key, defaultPreference) => {
2084
2161
 
2085
2162
  // src/Prebuilt/components/AppData/useSidepane.js
2086
2163
  import { useCallback as useCallback3 } from "react";
2087
- 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";
2088
2165
 
2089
2166
  // src/Prebuilt/common/constants.js
2090
2167
  import { parsedUserAgent } from "@100mslive/react-sdk";
@@ -2126,7 +2203,7 @@ var APP_DATA = {
2126
2203
  pdfConfig: "pdfConfig",
2127
2204
  minimiseInset: "minimiseInset",
2128
2205
  activeScreensharePeerId: "activeScreensharePeerId",
2129
- disableNotificiations: "disableNotificiations"
2206
+ disableNotifications: "disableNotifications"
2130
2207
  };
2131
2208
  var UI_SETTINGS = {
2132
2209
  isAudioOnly: "isAudioOnly",
@@ -2182,7 +2259,7 @@ var useSidepaneState = () => {
2182
2259
  };
2183
2260
  var useSidepaneToggle = (sidepaneType) => {
2184
2261
  const hmsActions = useHMSActions();
2185
- const vanillaStore = useHMSVanillaStore();
2262
+ const vanillaStore = useHMSVanillaStore2();
2186
2263
  const toggleSidepane = useCallback3(() => {
2187
2264
  const isOpen = vanillaStore.getState(selectAppData(APP_DATA.sidePane)) === sidepaneType;
2188
2265
  hmsActions.setAppData(APP_DATA.sidePane, !isOpen ? sidepaneType : "");
@@ -2208,7 +2285,7 @@ import {
2208
2285
  selectVideoTrackByPeerID,
2209
2286
  useHMSActions as useHMSActions2,
2210
2287
  useHMSStore as useHMSStore3,
2211
- useHMSVanillaStore as useHMSVanillaStore2
2288
+ useHMSVanillaStore as useHMSVanillaStore3
2212
2289
  } from "@100mslive/react-sdk";
2213
2290
  var useUISettings = (uiSettingKey) => {
2214
2291
  const uiSettings = useHMSStore3(selectAppDataByPath(APP_DATA.uiSettings, uiSettingKey));
@@ -2252,7 +2329,7 @@ var useSubscribedNotifications = (notificationKey) => {
2252
2329
  return notificationPreference;
2253
2330
  };
2254
2331
  var useIsNotificationDisabled = () => {
2255
- const notificationPreference = useHMSStore3(selectAppDataByPath(APP_DATA.disableNotificiations));
2332
+ const notificationPreference = useHMSStore3(selectAppDataByPath(APP_DATA.disableNotifications));
2256
2333
  return notificationPreference;
2257
2334
  };
2258
2335
  var useSetSubscribedNotifications = (notificationKey) => {
@@ -2288,7 +2365,7 @@ var useSetAppDataByKey = (appDataKey) => {
2288
2365
  };
2289
2366
  var useSetAppData = ({ key1, key2 }) => {
2290
2367
  const actions = useHMSActions2();
2291
- const store = useHMSVanillaStore2();
2368
+ const store = useHMSVanillaStore3();
2292
2369
  const [, setPreferences] = useUserPreferences(UserPreferencesKeys.UI_SETTINGS);
2293
2370
  const setValue = useCallback4(
2294
2371
  (value) => {
@@ -2351,9 +2428,9 @@ var initialAppData = {
2351
2428
  [APP_DATA.authToken]: "",
2352
2429
  [APP_DATA.minimiseInset]: false,
2353
2430
  [APP_DATA.activeScreensharePeerId]: "",
2354
- [APP_DATA.disableNotificiations]: false
2431
+ [APP_DATA.disableNotifications]: false
2355
2432
  };
2356
- var AppData = React15.memo(({ appDetails, tokenEndpoint }) => {
2433
+ var AppData = React16.memo(({ appDetails, tokenEndpoint }) => {
2357
2434
  const hmsActions = useHMSActions3();
2358
2435
  const isConnected = useHMSStore4(selectIsConnectedToRoom);
2359
2436
  const sidePane = useSidepaneState();
@@ -2363,27 +2440,27 @@ var AppData = React15.memo(({ appDetails, tokenEndpoint }) => {
2363
2440
  const rolesMap = useHMSStore4(selectRolesMap);
2364
2441
  const localPeerRole = useHMSStore4(selectLocalPeerRoleName);
2365
2442
  const appData = useHMSStore4(selectFullAppData);
2366
- useEffect3(() => {
2443
+ useEffect4(() => {
2367
2444
  if (!isConnected && sidePane && sidePane !== SIDE_PANE_OPTIONS.PARTICIPANTS) {
2368
2445
  resetSidePane();
2369
2446
  }
2370
2447
  }, [isConnected, sidePane, resetSidePane]);
2371
- useEffect3(() => {
2448
+ useEffect4(() => {
2372
2449
  hmsActions.initAppData(__spreadValues(__spreadValues({}, initialAppData), appData));
2373
2450
  hmsActions.setFrameworkInfo({
2374
2451
  type: "react-web",
2375
2452
  isPrebuilt: true,
2376
- version: React15.version
2453
+ version: React16.version
2377
2454
  });
2378
2455
  }, [hmsActions]);
2379
- useEffect3(() => {
2456
+ useEffect4(() => {
2380
2457
  const uiSettings = preferences || {};
2381
2458
  const updatedSettings = __spreadProps(__spreadValues({}, uiSettings), {
2382
2459
  [UI_SETTINGS.uiViewMode]: uiSettings.uiViewMode || UI_MODE_GRID
2383
2460
  });
2384
2461
  hmsActions.setAppData(APP_DATA.uiSettings, updatedSettings, true);
2385
2462
  }, [preferences, hmsActions]);
2386
- useEffect3(() => {
2463
+ useEffect4(() => {
2387
2464
  const appData2 = {
2388
2465
  [APP_DATA.tokenEndpoint]: tokenEndpoint,
2389
2466
  [APP_DATA.appConfig]: getAppDetails(appDetails)
@@ -2392,19 +2469,19 @@ var AppData = React15.memo(({ appDetails, tokenEndpoint }) => {
2392
2469
  hmsActions.setAppData([key], appData2[key]);
2393
2470
  }
2394
2471
  }, [appDetails, tokenEndpoint, hmsActions]);
2395
- useEffect3(() => {
2472
+ useEffect4(() => {
2396
2473
  if (!preferences.subscribedNotifications) {
2397
2474
  return;
2398
2475
  }
2399
2476
  hmsActions.setAppData(APP_DATA.subscribedNotifications, preferences.subscribedNotifications, true);
2400
2477
  }, [preferences.subscribedNotifications, hmsActions]);
2401
- useEffect3(() => {
2478
+ useEffect4(() => {
2402
2479
  if (localPeerRole) {
2403
2480
  const config2 = normalizeAppPolicyConfig(roleNames, rolesMap);
2404
2481
  hmsActions.setAppData(APP_DATA.appLayout, config2[localPeerRole]);
2405
2482
  }
2406
2483
  }, [roleNames, rolesMap, localPeerRole, hmsActions]);
2407
- return /* @__PURE__ */ React15.createElement(ResetStreamingStart, null);
2484
+ return /* @__PURE__ */ React16.createElement(ResetStreamingStart, null);
2408
2485
  });
2409
2486
  var ResetStreamingStart = () => {
2410
2487
  const { isHLSRunning, isRTMPRunning, isBrowserRecordingOn } = useRecordingStreaming();
@@ -2416,19 +2493,19 @@ var ResetStreamingStart = () => {
2416
2493
  const [rtmpStarted, setRTMPStarted] = useSetAppDataByKey(APP_DATA.rtmpStarted);
2417
2494
  const toggleStreaming = useSidepaneToggle(SIDE_PANE_OPTIONS.STREAMING);
2418
2495
  const isStreamingOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.STREAMING);
2419
- useEffect3(() => {
2496
+ useEffect4(() => {
2420
2497
  if (isBrowserRecordingOn && recordingStarted) {
2421
2498
  setRecordingStarted(false);
2422
2499
  }
2423
2500
  }, [isBrowserRecordingOn, recordingStarted, setRecordingStarted]);
2424
- useEffect3(() => {
2501
+ useEffect4(() => {
2425
2502
  if (roomState === HMSRoomState.Disconnected) {
2426
2503
  setHLSStarted(false);
2427
2504
  setRecordingStarted(false);
2428
2505
  setRTMPStarted(false);
2429
2506
  }
2430
2507
  }, [roomState, setHLSStarted, setRTMPStarted, setRecordingStarted]);
2431
- useEffect3(() => {
2508
+ useEffect4(() => {
2432
2509
  if (isHLSRunning || hlsError) {
2433
2510
  if (hlsStarted) {
2434
2511
  setHLSStarted(false);
@@ -2438,7 +2515,7 @@ var ResetStreamingStart = () => {
2438
2515
  }
2439
2516
  }
2440
2517
  }, [isHLSRunning, hlsStarted, setHLSStarted, hlsError, isStreamingOpen, toggleStreaming]);
2441
- useEffect3(() => {
2518
+ useEffect4(() => {
2442
2519
  if (isRTMPRunning || rtmpError || isBrowserRecordingOn) {
2443
2520
  if (rtmpStarted) {
2444
2521
  setRTMPStarted(false);
@@ -2452,17 +2529,18 @@ var ResetStreamingStart = () => {
2452
2529
  };
2453
2530
 
2454
2531
  // src/Prebuilt/components/AuthToken.jsx
2455
- import React18, { useEffect as useEffect4, useState as useState4 } from "react";
2532
+ import React20, { useEffect as useEffect5, useState as useState4 } from "react";
2456
2533
  import { useHMSActions as useHMSActions4 } from "@100mslive/react-sdk";
2457
2534
 
2458
2535
  // src/Prebuilt/AppContext.tsx
2459
- import React16, { useContext } from "react";
2460
- var HMSPrebuiltContext = React16.createContext({
2536
+ import React17, { useContext } from "react";
2537
+ var HMSPrebuiltContext = React17.createContext({
2461
2538
  roomCode: "",
2462
2539
  userName: "",
2463
2540
  userId: "",
2464
2541
  endpoints: {},
2465
- onLeave: void 0
2542
+ onLeave: void 0,
2543
+ onJoin: void 0
2466
2544
  });
2467
2545
  HMSPrebuiltContext.displayName = "HMSPrebuiltContext";
2468
2546
  var useHMSPrebuiltContext = () => {
@@ -2474,15 +2552,21 @@ var useHMSPrebuiltContext = () => {
2474
2552
  };
2475
2553
 
2476
2554
  // src/Prebuilt/primitives/DialogContent.jsx
2477
- import React17, { useRef as useRef3 } from "react";
2555
+ import React19, { useRef as useRef4 } from "react";
2478
2556
  import { CheckIcon, CloudUploadIcon, CrossIcon as CrossIcon3 } from "@100mslive/react-icons";
2557
+
2558
+ // src/Prebuilt/components/PrebuiltDialogPortal.tsx
2559
+ import React18 from "react";
2560
+ var PrebuiltDialogPortal = ({ children }) => /* @__PURE__ */ React18.createElement(Dialog.Portal, { container: document.getElementById("prebuilt-container") }, children);
2561
+
2562
+ // src/Prebuilt/primitives/DialogContent.jsx
2479
2563
  var DialogContent = (_a7) => {
2480
2564
  var _b7 = _a7, { Icon: Icon2, title, closeable = true, children, css: css2, iconCSS = {} } = _b7, props = __objRest(_b7, ["Icon", "title", "closeable", "children", "css", "iconCSS"]);
2481
- 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)));
2565
+ 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)));
2482
2566
  };
2483
2567
  var ErrorDialog = (_a7) => {
2484
2568
  var _b7 = _a7, { open = true, onOpenChange, title, children } = _b7, props = __objRest(_b7, ["open", "onOpenChange", "title", "children"]);
2485
- return /* @__PURE__ */ React17.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React17.createElement(
2569
+ return /* @__PURE__ */ React19.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React19.createElement(
2486
2570
  DialogContent,
2487
2571
  __spreadValues({
2488
2572
  Icon: CrossIcon3,
@@ -2493,10 +2577,10 @@ var ErrorDialog = (_a7) => {
2493
2577
  closeable: false,
2494
2578
  iconCSS: { color: "$alert_error_default" }
2495
2579
  }, props),
2496
- /* @__PURE__ */ React17.createElement(Box, { css: { mt: "$lg" } }, children)
2580
+ /* @__PURE__ */ React19.createElement(Box, { css: { mt: "$lg" } }, children)
2497
2581
  ));
2498
2582
  };
2499
- 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(
2583
+ 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(
2500
2584
  Text,
2501
2585
  {
2502
2586
  variant: "md",
@@ -2508,7 +2592,7 @@ var RequestDialog = ({ open = true, onOpenChange, title, body, actionText = "Acc
2508
2592
  }
2509
2593
  },
2510
2594
  body
2511
- ) : /* @__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))))));
2595
+ ) : /* @__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))))));
2512
2596
  var DialogRow = ({ children, breakSm = false, css: css2, justify = "between" }) => {
2513
2597
  let finalCSS = {
2514
2598
  margin: "$10 0",
@@ -2523,7 +2607,7 @@ var DialogRow = ({ children, breakSm = false, css: css2, justify = "between" })
2523
2607
  if (css2) {
2524
2608
  finalCSS = Object.assign(finalCSS, css2);
2525
2609
  }
2526
- return /* @__PURE__ */ React17.createElement(Flex, { align: "center", justify, css: finalCSS }, children);
2610
+ return /* @__PURE__ */ React19.createElement(Flex, { align: "center", justify, css: finalCSS }, children);
2527
2611
  };
2528
2612
  var DialogCol = (_a7) => {
2529
2613
  var _b7 = _a7, { children, breakSm = false, css: css2, align = "center", justify = "between" } = _b7, props = __objRest(_b7, ["children", "breakSm", "css", "align", "justify"]);
@@ -2539,20 +2623,20 @@ var DialogCol = (_a7) => {
2539
2623
  if (css2) {
2540
2624
  finalCSS = Object.assign(finalCSS, css2);
2541
2625
  }
2542
- return /* @__PURE__ */ React17.createElement(Flex, __spreadValues({ direction: "column", align, justify, css: finalCSS }, props), children);
2626
+ return /* @__PURE__ */ React19.createElement(Flex, __spreadValues({ direction: "column", align, justify, css: finalCSS }, props), children);
2543
2627
  };
2544
2628
  var DialogSelect = (_a7) => {
2545
2629
  var _b7 = _a7, { title, options, keyField, labelField, selected, onChange } = _b7, props = __objRest(_b7, ["title", "options", "keyField", "labelField", "selected", "onChange"]);
2546
- 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) => {
2630
+ 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) => {
2547
2631
  const id = keyField ? option[keyField] : option;
2548
2632
  const label = labelField ? option[labelField] : option;
2549
- return /* @__PURE__ */ React17.createElement("option", { value: id, key: id }, label);
2633
+ return /* @__PURE__ */ React19.createElement("option", { value: id, key: id }, label);
2550
2634
  }))));
2551
2635
  };
2552
2636
  var DialogInputFile = (_a7) => {
2553
2637
  var _b7 = _a7, { value, onChange, placeholder, disabled, type } = _b7, props = __objRest(_b7, ["value", "onChange", "placeholder", "disabled", "type"]);
2554
- const inputRef = useRef3();
2555
- return /* @__PURE__ */ React17.createElement(
2638
+ const inputRef = useRef4();
2639
+ return /* @__PURE__ */ React19.createElement(
2556
2640
  DialogCol,
2557
2641
  {
2558
2642
  breakSm: true,
@@ -2573,7 +2657,7 @@ var DialogInputFile = (_a7) => {
2573
2657
  },
2574
2658
  gap: "8"
2575
2659
  },
2576
- /* @__PURE__ */ React17.createElement(
2660
+ /* @__PURE__ */ React19.createElement(
2577
2661
  IconButton,
2578
2662
  {
2579
2663
  variant: "standard",
@@ -2587,7 +2671,7 @@ var DialogInputFile = (_a7) => {
2587
2671
  }
2588
2672
  }
2589
2673
  },
2590
- /* @__PURE__ */ React17.createElement(
2674
+ /* @__PURE__ */ React19.createElement(
2591
2675
  CloudUploadIcon,
2592
2676
  {
2593
2677
  style: {
@@ -2597,7 +2681,7 @@ var DialogInputFile = (_a7) => {
2597
2681
  }
2598
2682
  )
2599
2683
  ),
2600
- /* @__PURE__ */ React17.createElement(Flex, { direction: "row" }, /* @__PURE__ */ React17.createElement(
2684
+ /* @__PURE__ */ React19.createElement(Flex, { direction: "row" }, /* @__PURE__ */ React19.createElement(
2601
2685
  Input,
2602
2686
  __spreadValues({
2603
2687
  ref: inputRef,
@@ -2609,7 +2693,7 @@ var DialogInputFile = (_a7) => {
2609
2693
  type,
2610
2694
  hidden: true
2611
2695
  }, props)
2612
- ), /* @__PURE__ */ React17.createElement(
2696
+ ), /* @__PURE__ */ React19.createElement(
2613
2697
  IconButton,
2614
2698
  {
2615
2699
  variant: "standard",
@@ -2623,20 +2707,20 @@ var DialogInputFile = (_a7) => {
2623
2707
  }
2624
2708
  }
2625
2709
  },
2626
- /* @__PURE__ */ React17.createElement(Text, { variant: "md" }, placeholder)
2710
+ /* @__PURE__ */ React19.createElement(Text, { variant: "md" }, placeholder)
2627
2711
  ))
2628
2712
  );
2629
2713
  };
2630
2714
 
2631
2715
  // src/Prebuilt/components/AuthToken.jsx
2632
- var AuthToken = React18.memo(({ authTokenByRoomCodeEndpoint, defaultAuthToken }) => {
2716
+ var AuthToken = React20.memo(({ authTokenByRoomCodeEndpoint, defaultAuthToken }) => {
2633
2717
  const hmsActions = useHMSActions4();
2634
2718
  const tokenEndpoint = useTokenEndpoint();
2635
2719
  const { roomCode, userId } = useHMSPrebuiltContext();
2636
2720
  const [error, setError] = useState4({ title: "", body: "" });
2637
2721
  let authToken = defaultAuthToken;
2638
2722
  const [, setAuthTokenInAppData] = useSetAppDataByKey(APP_DATA.authToken);
2639
- useEffect4(() => {
2723
+ useEffect5(() => {
2640
2724
  if (authToken) {
2641
2725
  setAuthTokenInAppData(authToken);
2642
2726
  return;
@@ -2647,7 +2731,7 @@ var AuthToken = React18.memo(({ authTokenByRoomCodeEndpoint, defaultAuthToken })
2647
2731
  hmsActions.getAuthTokenByRoomCode({ roomCode, userId }, { endpoint: authTokenByRoomCodeEndpoint }).then((token) => setAuthTokenInAppData(token)).catch((error2) => setError(convertError(error2)));
2648
2732
  }, [hmsActions, tokenEndpoint, authToken, authTokenByRoomCodeEndpoint, setAuthTokenInAppData, roomCode, userId]);
2649
2733
  if (error.title) {
2650
- return /* @__PURE__ */ React18.createElement(ErrorDialog, { title: error.title }, error.body);
2734
+ return /* @__PURE__ */ React20.createElement(ErrorDialog, { title: error.title }, error.body);
2651
2735
  }
2652
2736
  return null;
2653
2737
  });
@@ -2691,11 +2775,11 @@ var convertError = (error) => {
2691
2775
  var Link2 = styled("a", {
2692
2776
  color: "#2f80e1"
2693
2777
  });
2694
- 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"), ".");
2778
+ 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"), ".");
2695
2779
  var AuthToken_default = AuthToken;
2696
2780
 
2697
2781
  // src/Prebuilt/components/ErrorBoundary.jsx
2698
- import React19, { Component } from "react";
2782
+ import React21, { Component } from "react";
2699
2783
  import { CopyIcon as CopyIcon2 } from "@100mslive/react-icons";
2700
2784
  var ErrorBoundary = class extends Component {
2701
2785
  constructor(props) {
@@ -2711,7 +2795,7 @@ var ErrorBoundary = class extends Component {
2711
2795
  }
2712
2796
  render() {
2713
2797
  if (this.state.errorInfo) {
2714
- return /* @__PURE__ */ React19.createElement(
2798
+ return /* @__PURE__ */ React21.createElement(
2715
2799
  Flex,
2716
2800
  {
2717
2801
  align: "center",
@@ -2724,7 +2808,7 @@ var ErrorBoundary = class extends Component {
2724
2808
  backgroundColor: "$background_default"
2725
2809
  }
2726
2810
  },
2727
- /* @__PURE__ */ React19.createElement(Box, { css: { position: "relative", overflow: "hidden", r: "$3", height: "100%", width: "100%" } }, /* @__PURE__ */ React19.createElement(
2811
+ /* @__PURE__ */ React21.createElement(Box, { css: { position: "relative", overflow: "hidden", r: "$3", height: "100%", width: "100%" } }, /* @__PURE__ */ React21.createElement(
2728
2812
  Flex,
2729
2813
  {
2730
2814
  direction: "column",
@@ -2735,8 +2819,8 @@ var ErrorBoundary = class extends Component {
2735
2819
  left: 0
2736
2820
  }
2737
2821
  },
2738
- /* @__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.`)),
2739
- /* @__PURE__ */ React19.createElement(Flex, null, /* @__PURE__ */ React19.createElement(Tooltip, { title: "Reload page" }, /* @__PURE__ */ React19.createElement(
2822
+ /* @__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.`)),
2823
+ /* @__PURE__ */ React21.createElement(Flex, null, /* @__PURE__ */ React21.createElement(Tooltip, { title: "Reload page" }, /* @__PURE__ */ React21.createElement(
2740
2824
  Button,
2741
2825
  {
2742
2826
  onClick: () => {
@@ -2746,7 +2830,7 @@ var ErrorBoundary = class extends Component {
2746
2830
  "data-testid": "join_again_btn"
2747
2831
  },
2748
2832
  "Reload"
2749
- )), /* @__PURE__ */ React19.createElement(Tooltip, { title: "Copy error details to clipboard" }, /* @__PURE__ */ React19.createElement(
2833
+ )), /* @__PURE__ */ React21.createElement(Tooltip, { title: "Copy error details to clipboard" }, /* @__PURE__ */ React21.createElement(
2750
2834
  Button,
2751
2835
  {
2752
2836
  onClick: () => {
@@ -2762,11 +2846,11 @@ var ErrorBoundary = class extends Component {
2762
2846
  css: { mx: "$8" },
2763
2847
  "data-testid": "join_again_btn"
2764
2848
  },
2765
- /* @__PURE__ */ React19.createElement(CopyIcon2, null),
2849
+ /* @__PURE__ */ React21.createElement(CopyIcon2, null),
2766
2850
  " ",
2767
2851
  this.state.isErrorCopied ? "Copied" : "Copy Details"
2768
2852
  ))),
2769
- /* @__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)))
2853
+ /* @__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)))
2770
2854
  ))
2771
2855
  );
2772
2856
  }
@@ -2775,15 +2859,15 @@ var ErrorBoundary = class extends Component {
2775
2859
  };
2776
2860
 
2777
2861
  // src/Prebuilt/components/FullPageProgress.jsx
2778
- import React20 from "react";
2779
- 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);
2862
+ import React22 from "react";
2863
+ 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);
2780
2864
  var FullPageProgress_default = FullPageProgress;
2781
2865
 
2782
2866
  // src/Prebuilt/components/init/Init.jsx
2783
- import React21, { useEffect as useEffect6 } from "react";
2867
+ import React23, { useEffect as useEffect7 } from "react";
2784
2868
 
2785
2869
  // src/Prebuilt/services/FeatureFlags.jsx
2786
- import { useEffect as useEffect5 } from "react";
2870
+ import { useEffect as useEffect6 } from "react";
2787
2871
  import { selectRoomID, useHMSStore as useHMSStore5 } from "@100mslive/react-sdk";
2788
2872
  var FeatureFlags = class {
2789
2873
  static init(roomId) {
@@ -2810,7 +2894,7 @@ __publicField(FeatureFlags, "enableStatsForNerds", define_process_env_default.RE
2810
2894
  __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);
2811
2895
  function FeatureFlagsInit() {
2812
2896
  const roomId = useHMSStore5(selectRoomID);
2813
- useEffect5(() => {
2897
+ useEffect6(() => {
2814
2898
  if (roomId) {
2815
2899
  FeatureFlags.init(roomId);
2816
2900
  }
@@ -2821,10 +2905,10 @@ function FeatureFlagsInit() {
2821
2905
  // src/Prebuilt/components/init/Init.jsx
2822
2906
  var Init = () => {
2823
2907
  const { toggleTheme } = useTheme();
2824
- useEffect6(() => {
2908
+ useEffect7(() => {
2825
2909
  window.toggleUiTheme = toggleTheme;
2826
2910
  }, [toggleTheme]);
2827
- useEffect6(() => {
2911
+ useEffect7(() => {
2828
2912
  function resetHeight() {
2829
2913
  var _a7;
2830
2914
  document.body.style.height = `${((_a7 = window.visualViewport) == null ? void 0 : _a7.height) || window.innerHeight}px`;
@@ -2835,17 +2919,17 @@ var Init = () => {
2835
2919
  window.removeEventListener("resize", resetHeight);
2836
2920
  };
2837
2921
  }, []);
2838
- return /* @__PURE__ */ React21.createElement(FeatureFlagsInit, null);
2922
+ return /* @__PURE__ */ React23.createElement(FeatureFlagsInit, null);
2839
2923
  };
2840
2924
 
2841
2925
  // src/Prebuilt/components/Input/KeyboardInputManager.js
2842
- import { useEffect as useEffect7 } from "react";
2926
+ import { useEffect as useEffect8 } from "react";
2843
2927
  import {
2844
2928
  selectAppData as selectAppData3,
2845
2929
  selectIsLocalAudioEnabled,
2846
2930
  selectIsLocalVideoEnabled,
2847
2931
  useHMSActions as useHMSActions5,
2848
- useHMSVanillaStore as useHMSVanillaStore3
2932
+ useHMSVanillaStore as useHMSVanillaStore4
2849
2933
  } from "@100mslive/react-sdk";
2850
2934
  var isEvenListenersAttached = false;
2851
2935
  var _actions, _store, _toggleAudio, _toggleVideo, _hideSidepane, _toggleStatsForNerds, _toggleHlsStats, _keyDownHandler, _bind, _unbind;
@@ -2932,9 +3016,9 @@ _keyDownHandler = new WeakMap();
2932
3016
  _bind = new WeakMap();
2933
3017
  _unbind = new WeakMap();
2934
3018
  var KeyboardHandler = () => {
2935
- const store = useHMSVanillaStore3();
3019
+ const store = useHMSVanillaStore4();
2936
3020
  const actions = useHMSActions5();
2937
- useEffect7(() => {
3021
+ useEffect8(() => {
2938
3022
  const keyboardManager = new KeyboardInputManager(store, actions);
2939
3023
  keyboardManager.bindAllShortcuts();
2940
3024
  return keyboardManager.unbindAllShortcuts;
@@ -2943,7 +3027,7 @@ var KeyboardHandler = () => {
2943
3027
  };
2944
3028
 
2945
3029
  // src/Prebuilt/components/Notifications/Notifications.jsx
2946
- import React30, { useCallback as useCallback8, useEffect as useEffect16 } from "react";
3030
+ import React32, { useCallback as useCallback8, useEffect as useEffect17 } from "react";
2947
3031
  import { useNavigate as useNavigate2, useParams as useParams2 } from "react-router-dom";
2948
3032
  import {
2949
3033
  HMSNotificationTypes as HMSNotificationTypes7,
@@ -2953,15 +3037,15 @@ import {
2953
3037
  useCustomEvent,
2954
3038
  useHMSNotifications as useHMSNotifications7,
2955
3039
  useHMSStore as useHMSStore7,
2956
- useHMSVanillaStore as useHMSVanillaStore4
3040
+ useHMSVanillaStore as useHMSVanillaStore5
2957
3041
  } from "@100mslive/react-sdk";
2958
3042
 
2959
3043
  // src/Prebuilt/provider/roomLayoutProvider/index.tsx
2960
- import React22 from "react";
3044
+ import React24 from "react";
2961
3045
  import merge from "lodash.merge";
2962
3046
 
2963
3047
  // src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts
2964
- import { useCallback as useCallback5, useEffect as useEffect8, useRef as useRef4, useState as useState5 } from "react";
3048
+ import { useCallback as useCallback5, useEffect as useEffect9, useRef as useRef5, useState as useState5 } from "react";
2965
3049
 
2966
3050
  // src/Prebuilt/provider/roomLayoutProvider/constants/index.ts
2967
3051
  import { JoinForm_JoinBtnType } from "@100mslive/types-prebuilt/elements/join_form";
@@ -3030,8 +3114,8 @@ var useFetchRoomLayout = ({
3030
3114
  authToken = ""
3031
3115
  }) => {
3032
3116
  const [layout, setLayout] = useState5(void 0);
3033
- const layoutResp = useRef4();
3034
- const isFetchInProgress = useRef4(false);
3117
+ const layoutResp = useRef5();
3118
+ const isFetchInProgress = useRef5(false);
3035
3119
  const updateRoomLayoutForRole = useCallback5((role) => {
3036
3120
  var _a7;
3037
3121
  if (!layoutResp.current) {
@@ -3042,7 +3126,7 @@ var useFetchRoomLayout = ({
3042
3126
  setLayout(layout2);
3043
3127
  }
3044
3128
  }, []);
3045
- useEffect8(() => {
3129
+ useEffect9(() => {
3046
3130
  (() => __async(void 0, null, function* () {
3047
3131
  var _a7, _b7;
3048
3132
  if (isFetchInProgress.current || !authToken) {
@@ -3078,7 +3162,7 @@ var useFetchRoomLayout = ({
3078
3162
  };
3079
3163
 
3080
3164
  // src/Prebuilt/provider/roomLayoutProvider/index.tsx
3081
- var RoomLayoutContext = React22.createContext(void 0);
3165
+ var RoomLayoutContext = React24.createContext(void 0);
3082
3166
  var RoomLayoutProvider = ({
3083
3167
  children,
3084
3168
  roomLayoutEndpoint,
@@ -3087,19 +3171,19 @@ var RoomLayoutProvider = ({
3087
3171
  const authToken = useAuthToken();
3088
3172
  const { layout, updateRoomLayoutForRole } = useFetchRoomLayout({ authToken, endpoint: roomLayoutEndpoint });
3089
3173
  const mergedLayout = authToken && layout ? merge(layout, overrideLayout) : layout;
3090
- return /* @__PURE__ */ React22.createElement(RoomLayoutContext.Provider, { value: { layout: mergedLayout, updateRoomLayoutForRole } }, children);
3174
+ return /* @__PURE__ */ React24.createElement(RoomLayoutContext.Provider, { value: { layout: mergedLayout, updateRoomLayoutForRole } }, children);
3091
3175
  };
3092
3176
  var useRoomLayout = () => {
3093
3177
  var _a7;
3094
- return (_a7 = React22.useContext(RoomLayoutContext)) == null ? void 0 : _a7.layout;
3178
+ return (_a7 = React24.useContext(RoomLayoutContext)) == null ? void 0 : _a7.layout;
3095
3179
  };
3096
3180
  var useUpdateRoomLayout = () => {
3097
3181
  var _a7;
3098
- return (_a7 = React22.useContext(RoomLayoutContext)) == null ? void 0 : _a7.updateRoomLayoutForRole;
3182
+ return (_a7 = React24.useContext(RoomLayoutContext)) == null ? void 0 : _a7.updateRoomLayoutForRole;
3099
3183
  };
3100
3184
 
3101
3185
  // src/Prebuilt/components/Toast/ToastConfig.jsx
3102
- import React23, { useCallback as useCallback6 } from "react";
3186
+ import React25, { useCallback as useCallback6 } from "react";
3103
3187
  import { selectPeerByID, useHMSActions as useHMSActions6, useHMSStore as useHMSStore6 } from "@100mslive/react-sdk";
3104
3188
  import {
3105
3189
  ChatUnreadIcon,
@@ -3109,15 +3193,15 @@ import {
3109
3193
  PeopleRemoveIcon,
3110
3194
  PoorConnectivityIcon
3111
3195
  } from "@100mslive/react-icons";
3112
- var ChatAction = React23.forwardRef((_, ref) => {
3196
+ var ChatAction = React25.forwardRef((_, ref) => {
3113
3197
  const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
3114
3198
  const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);
3115
3199
  if (isChatOpen) {
3116
3200
  return null;
3117
3201
  }
3118
- return /* @__PURE__ */ React23.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: toggleChat, ref }, "Open Chat");
3202
+ return /* @__PURE__ */ React25.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: toggleChat, ref }, "Open Chat");
3119
3203
  });
3120
- var HandRaiseAction = React23.forwardRef(({ id = "", isSingleHandRaise = true }, ref) => {
3204
+ var HandRaiseAction = React25.forwardRef(({ id = "", isSingleHandRaise = true }, ref) => {
3121
3205
  var _a7, _b7, _c;
3122
3206
  const hmsActions = useHMSActions6();
3123
3207
  const toggleSidepane = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);
@@ -3139,7 +3223,7 @@ var HandRaiseAction = React23.forwardRef(({ id = "", isSingleHandRaise = true },
3139
3223
  if (isSingleHandRaise && (!peer || !off_stage_roles.includes(peer.roleName))) {
3140
3224
  return null;
3141
3225
  }
3142
- return /* @__PURE__ */ React23.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: onClickHandler, ref }, isSingleHandRaise ? bring_to_stage_label : "View");
3226
+ return /* @__PURE__ */ React25.createElement(Button, { outlined: true, as: "div", variant: "standard", css: { w: "max-content" }, onClick: onClickHandler, ref }, isSingleHandRaise ? bring_to_stage_label : "View");
3143
3227
  });
3144
3228
  var ToastConfig = {
3145
3229
  PEER_LIST: {
@@ -3148,18 +3232,18 @@ var ToastConfig = {
3148
3232
  if (notification.data.length === 1) {
3149
3233
  return {
3150
3234
  title: `${(_a7 = notification.data[0]) == null ? void 0 : _a7.name} joined`,
3151
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3235
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3152
3236
  };
3153
3237
  }
3154
3238
  return {
3155
3239
  title: `${(_b7 = notification.data[notification.data.length - 1]) == null ? void 0 : _b7.name} and ${notification.data.length - 1} others joined`,
3156
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3240
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3157
3241
  };
3158
3242
  },
3159
3243
  multiple: (notifications) => {
3160
3244
  return {
3161
3245
  title: `${notifications[0].data.name} and ${notifications.length - 1} others joined`,
3162
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3246
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3163
3247
  };
3164
3248
  }
3165
3249
  },
@@ -3168,13 +3252,13 @@ var ToastConfig = {
3168
3252
  var _a7;
3169
3253
  return {
3170
3254
  title: `${(_a7 = notification.data) == null ? void 0 : _a7.name} joined`,
3171
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3255
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3172
3256
  };
3173
3257
  },
3174
3258
  multiple: function(notifications) {
3175
3259
  return {
3176
3260
  title: `${notifications[notifications.length - 1].data.name} and ${notifications.length - 1} others joined`,
3177
- icon: /* @__PURE__ */ React23.createElement(PeopleAddIcon, null)
3261
+ icon: /* @__PURE__ */ React25.createElement(PeopleAddIcon, null)
3178
3262
  };
3179
3263
  }
3180
3264
  },
@@ -3183,13 +3267,13 @@ var ToastConfig = {
3183
3267
  var _a7;
3184
3268
  return {
3185
3269
  title: `${(_a7 = notification.data) == null ? void 0 : _a7.name} left`,
3186
- icon: /* @__PURE__ */ React23.createElement(PeopleRemoveIcon, null)
3270
+ icon: /* @__PURE__ */ React25.createElement(PeopleRemoveIcon, null)
3187
3271
  };
3188
3272
  },
3189
3273
  multiple: function(notifications) {
3190
3274
  return {
3191
3275
  title: `${notifications[notifications.length - 1].data.name} and ${notifications.length - 1} others left`,
3192
- icon: /* @__PURE__ */ React23.createElement(PeopleRemoveIcon, null)
3276
+ icon: /* @__PURE__ */ React25.createElement(PeopleRemoveIcon, null)
3193
3277
  };
3194
3278
  }
3195
3279
  },
@@ -3198,8 +3282,8 @@ var ToastConfig = {
3198
3282
  var _a7, _b7;
3199
3283
  return {
3200
3284
  title: `${(_a7 = notification.data) == null ? void 0 : _a7.name} raised hand`,
3201
- icon: /* @__PURE__ */ React23.createElement(HandIcon, null),
3202
- action: /* @__PURE__ */ React23.createElement(HandRaiseAction, { id: (_b7 = notification.data) == null ? void 0 : _b7.id })
3285
+ icon: /* @__PURE__ */ React25.createElement(HandIcon, null),
3286
+ action: /* @__PURE__ */ React25.createElement(HandRaiseAction, { id: (_b7 = notification.data) == null ? void 0 : _b7.id })
3203
3287
  };
3204
3288
  },
3205
3289
  multiple: (notifications) => {
@@ -3210,8 +3294,8 @@ var ToastConfig = {
3210
3294
  })).size;
3211
3295
  return {
3212
3296
  title: `${(_a7 = notifications[notifications.length - 1].data) == null ? void 0 : _a7.name} ${count > 1 ? `${count} and others` : ""} raised hand`,
3213
- icon: /* @__PURE__ */ React23.createElement(HandIcon, null),
3214
- action: /* @__PURE__ */ React23.createElement(HandRaiseAction, { isSingleHandRaise: false })
3297
+ icon: /* @__PURE__ */ React25.createElement(HandIcon, null),
3298
+ action: /* @__PURE__ */ React25.createElement(HandRaiseAction, { isSingleHandRaise: false })
3215
3299
  };
3216
3300
  }
3217
3301
  },
@@ -3220,15 +3304,15 @@ var ToastConfig = {
3220
3304
  var _a7;
3221
3305
  return {
3222
3306
  title: `New message from ${(_a7 = notification.data) == null ? void 0 : _a7.senderName}`,
3223
- icon: /* @__PURE__ */ React23.createElement(ChatUnreadIcon, null),
3224
- action: /* @__PURE__ */ React23.createElement(ChatAction, null)
3307
+ icon: /* @__PURE__ */ React25.createElement(ChatUnreadIcon, null),
3308
+ action: /* @__PURE__ */ React25.createElement(ChatAction, null)
3225
3309
  };
3226
3310
  },
3227
3311
  multiple: (notifications) => {
3228
3312
  return {
3229
3313
  title: `${notifications.length} new messages`,
3230
- icon: /* @__PURE__ */ React23.createElement(ChatUnreadIcon, null),
3231
- action: /* @__PURE__ */ React23.createElement(ChatAction, null)
3314
+ icon: /* @__PURE__ */ React25.createElement(ChatUnreadIcon, null),
3315
+ action: /* @__PURE__ */ React25.createElement(ChatAction, null)
3232
3316
  };
3233
3317
  }
3234
3318
  },
@@ -3236,7 +3320,7 @@ var ToastConfig = {
3236
3320
  single: () => {
3237
3321
  return {
3238
3322
  title: `You are now connected`,
3239
- icon: /* @__PURE__ */ React23.createElement(ConnectivityIcon, null),
3323
+ icon: /* @__PURE__ */ React25.createElement(ConnectivityIcon, null),
3240
3324
  variant: "success",
3241
3325
  duration: 3e3
3242
3326
  };
@@ -3248,7 +3332,7 @@ var ToastConfig = {
3248
3332
  title: `You are offline for now. while we try to reconnect, please check
3249
3333
  your internet connection. ${message}.
3250
3334
  `,
3251
- icon: /* @__PURE__ */ React23.createElement(PoorConnectivityIcon, null),
3335
+ icon: /* @__PURE__ */ React25.createElement(PoorConnectivityIcon, null),
3252
3336
  variant: "warning",
3253
3337
  duration: 3e4
3254
3338
  };
@@ -3353,11 +3437,11 @@ var ToastBatcher = {
3353
3437
  ToastManager.addListener(ToastBatcher.syncUItoast.bind(ToastBatcher));
3354
3438
 
3355
3439
  // src/Prebuilt/components/Notifications/AutoplayBlockedModal.jsx
3356
- import React24 from "react";
3440
+ import React26 from "react";
3357
3441
  import { useAutoplayError } from "@100mslive/react-sdk";
3358
3442
  function AutoplayBlockedModal() {
3359
3443
  const { error, resetError, unblockAudio } = useAutoplayError();
3360
- return /* @__PURE__ */ React24.createElement(
3444
+ return /* @__PURE__ */ React26.createElement(
3361
3445
  Dialog.Root,
3362
3446
  {
3363
3447
  open: !!error,
@@ -3368,7 +3452,7 @@ function AutoplayBlockedModal() {
3368
3452
  resetError();
3369
3453
  }
3370
3454
  },
3371
- /* @__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(
3455
+ /* @__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(
3372
3456
  Button,
3373
3457
  {
3374
3458
  variant: "primary",
@@ -3383,11 +3467,11 @@ function AutoplayBlockedModal() {
3383
3467
  }
3384
3468
 
3385
3469
  // src/Prebuilt/components/Notifications/InitErrorModal.jsx
3386
- import React25, { useEffect as useEffect9, useState as useState6 } from "react";
3470
+ import React27, { useEffect as useEffect10, useState as useState6 } from "react";
3387
3471
  var InitErrorModal = ({ notification }) => {
3388
3472
  const [showModal, setShowModal] = useState6(false);
3389
3473
  const [info, setInfo] = useState6({ title: "Init Error", description: "" });
3390
- useEffect9(() => {
3474
+ useEffect10(() => {
3391
3475
  const data = notification == null ? void 0 : notification.data;
3392
3476
  if (!data || data.action !== "INIT") {
3393
3477
  return;
@@ -3407,11 +3491,11 @@ var InitErrorModal = ({ notification }) => {
3407
3491
  setInfo({ title, description });
3408
3492
  setShowModal(true);
3409
3493
  }, [notification]);
3410
- 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));
3494
+ 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));
3411
3495
  };
3412
3496
 
3413
3497
  // src/Prebuilt/components/Notifications/PeerNotifications.jsx
3414
- import { useEffect as useEffect10 } from "react";
3498
+ import { useEffect as useEffect11 } from "react";
3415
3499
  import { HMSNotificationTypes, useHMSNotifications } from "@100mslive/react-sdk";
3416
3500
  var notificationTypes = [
3417
3501
  HMSNotificationTypes.PEER_LIST,
@@ -3422,7 +3506,7 @@ var PeerNotifications = () => {
3422
3506
  const notification = useHMSNotifications(notificationTypes);
3423
3507
  const isPeerJoinSubscribed = useSubscribedNotifications(SUBSCRIBED_NOTIFICATIONS.PEER_JOINED);
3424
3508
  const isPeerLeftSubscribed = useSubscribedNotifications(SUBSCRIBED_NOTIFICATIONS.PEER_LEFT);
3425
- useEffect10(() => {
3509
+ useEffect11(() => {
3426
3510
  if (!(notification == null ? void 0 : notification.data)) {
3427
3511
  return;
3428
3512
  }
@@ -3452,7 +3536,7 @@ var PeerNotifications = () => {
3452
3536
  };
3453
3537
 
3454
3538
  // src/Prebuilt/components/Notifications/PermissionErrorModal.jsx
3455
- import React26, { useEffect as useEffect11, useState as useState7 } from "react";
3539
+ import React28, { useEffect as useEffect12, useState as useState7 } from "react";
3456
3540
  import { useMedia } from "react-use";
3457
3541
  import { HMSNotificationTypes as HMSNotificationTypes2, useHMSNotifications as useHMSNotifications2 } from "@100mslive/react-sdk";
3458
3542
 
@@ -3468,7 +3552,7 @@ function PermissionErrorModal() {
3468
3552
  const [deviceType, setDeviceType] = useState7("");
3469
3553
  const [isSystemError, setIsSystemError] = useState7(false);
3470
3554
  const isMobile = useMedia(config.media.md);
3471
- useEffect11(() => {
3555
+ useEffect12(() => {
3472
3556
  var _a7, _b7, _c, _d, _e;
3473
3557
  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"))) {
3474
3558
  return;
@@ -3489,15 +3573,15 @@ function PermissionErrorModal() {
3489
3573
  }
3490
3574
  setIsSystemError(notification.data.code === 3011);
3491
3575
  }, [notification]);
3492
- 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(
3576
+ 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(
3493
3577
  Dialog.Title,
3494
3578
  {
3495
3579
  css: {
3496
3580
  borderBottom: "1px solid $border_default"
3497
3581
  }
3498
3582
  },
3499
- isMobile && isIOS ? /* @__PURE__ */ React26.createElement("img", { style: { maxWidth: "100%", maxHeight: "100%" }, src: ios_perm_0_default, alt: "iOS Permission flow" }) : null,
3500
- isMobile && isAndroid ? /* @__PURE__ */ React26.createElement(
3583
+ isMobile && isIOS ? /* @__PURE__ */ React28.createElement("img", { style: { maxWidth: "100%", maxHeight: "100%" }, src: ios_perm_0_default, alt: "iOS Permission flow" }) : null,
3584
+ isMobile && isAndroid ? /* @__PURE__ */ React28.createElement(
3501
3585
  "img",
3502
3586
  {
3503
3587
  src: android_perm_1_default,
@@ -3505,12 +3589,12 @@ function PermissionErrorModal() {
3505
3589
  alt: "Android Permission flow "
3506
3590
  }
3507
3591
  ) : null,
3508
- /* @__PURE__ */ React26.createElement(Text, { variant: "h6" }, "We can't access your ", deviceType)
3509
- ), /* @__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;
3592
+ /* @__PURE__ */ React28.createElement(Text, { variant: "h6" }, "We can't access your ", deviceType)
3593
+ ), /* @__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;
3510
3594
  }
3511
3595
 
3512
3596
  // src/Prebuilt/components/Notifications/ReconnectNotifications.jsx
3513
- import React27, { useEffect as useEffect12, useState as useState8 } from "react";
3597
+ import React29, { useEffect as useEffect13, useState as useState8 } from "react";
3514
3598
  import { HMSNotificationTypes as HMSNotificationTypes3, useHMSNotifications as useHMSNotifications3 } from "@100mslive/react-sdk";
3515
3599
  var notificationTypes2 = [
3516
3600
  HMSNotificationTypes3.RECONNECTED,
@@ -3521,7 +3605,7 @@ var notificationId = null;
3521
3605
  var ReconnectNotifications = () => {
3522
3606
  const notification = useHMSNotifications3(notificationTypes2);
3523
3607
  const [open, setOpen] = useState8(false);
3524
- useEffect12(() => {
3608
+ useEffect13(() => {
3525
3609
  var _a7;
3526
3610
  if ((notification == null ? void 0 : notification.type) === HMSNotificationTypes3.ERROR && ((_a7 = notification == null ? void 0 : notification.data) == null ? void 0 : _a7.isTerminal)) {
3527
3611
  setOpen(false);
@@ -3537,7 +3621,7 @@ var ReconnectNotifications = () => {
3537
3621
  }, [notification]);
3538
3622
  if (!open)
3539
3623
  return null;
3540
- 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(
3624
+ 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(
3541
3625
  Dialog.Content,
3542
3626
  {
3543
3627
  css: {
@@ -3551,12 +3635,12 @@ var ReconnectNotifications = () => {
3551
3635
  animation: "none !important"
3552
3636
  }
3553
3637
  },
3554
- /* @__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."))
3638
+ /* @__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."))
3555
3639
  )));
3556
3640
  };
3557
3641
 
3558
3642
  // src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.jsx
3559
- import React28, { useEffect as useEffect13, useState as useState9 } from "react";
3643
+ import React30, { useEffect as useEffect14, useState as useState9 } from "react";
3560
3644
  import { HMSNotificationTypes as HMSNotificationTypes4, useHMSActions as useHMSActions7, useHMSNotifications as useHMSNotifications4 } from "@100mslive/react-sdk";
3561
3645
  import { MicOnIcon } from "@100mslive/react-icons";
3562
3646
  var TrackBulkUnmuteModal = () => {
@@ -3567,7 +3651,7 @@ var TrackBulkUnmuteModal = () => {
3567
3651
  HMSNotificationTypes4.ROOM_ENDED,
3568
3652
  HMSNotificationTypes4.REMOVED_FROM_ROOM
3569
3653
  ]);
3570
- useEffect13(() => {
3654
+ useEffect14(() => {
3571
3655
  switch (notification == null ? void 0 : notification.type) {
3572
3656
  case HMSNotificationTypes4.REMOVED_FROM_ROOM:
3573
3657
  case HMSNotificationTypes4.ROOM_ENDED:
@@ -3586,7 +3670,7 @@ var TrackBulkUnmuteModal = () => {
3586
3670
  return null;
3587
3671
  }
3588
3672
  const { requestedBy: peer, tracks, enabled } = muteNotification;
3589
- return /* @__PURE__ */ React28.createElement(
3673
+ return /* @__PURE__ */ React30.createElement(
3590
3674
  RequestDialog,
3591
3675
  {
3592
3676
  title: "Track Unmute Request",
@@ -3604,7 +3688,7 @@ var TrackBulkUnmuteModal = () => {
3604
3688
  };
3605
3689
 
3606
3690
  // src/Prebuilt/components/Notifications/TrackNotifications.jsx
3607
- import { useEffect as useEffect14 } from "react";
3691
+ import { useEffect as useEffect15 } from "react";
3608
3692
  import { HMSNotificationTypes as HMSNotificationTypes5, useHMSNotifications as useHMSNotifications5 } from "@100mslive/react-sdk";
3609
3693
  var notificationTypes3 = [
3610
3694
  HMSNotificationTypes5.TRACK_ADDED,
@@ -3614,7 +3698,7 @@ var notificationTypes3 = [
3614
3698
  ];
3615
3699
  var TrackNotifications = () => {
3616
3700
  const notification = useHMSNotifications5(notificationTypes3);
3617
- useEffect14(() => {
3701
+ useEffect15(() => {
3618
3702
  if (notification) {
3619
3703
  console.debug(`[${notification.type}]`, notification);
3620
3704
  }
@@ -3623,7 +3707,7 @@ var TrackNotifications = () => {
3623
3707
  };
3624
3708
 
3625
3709
  // src/Prebuilt/components/Notifications/TrackUnmuteModal.jsx
3626
- import React29, { useEffect as useEffect15, useState as useState10 } from "react";
3710
+ import React31, { useEffect as useEffect16, useState as useState10 } from "react";
3627
3711
  import { HMSNotificationTypes as HMSNotificationTypes6, useHMSActions as useHMSActions8, useHMSNotifications as useHMSNotifications6 } from "@100mslive/react-sdk";
3628
3712
  import { MicOnIcon as MicOnIcon2 } from "@100mslive/react-icons";
3629
3713
  var TrackUnmuteModal = () => {
@@ -3634,7 +3718,7 @@ var TrackUnmuteModal = () => {
3634
3718
  HMSNotificationTypes6.REMOVED_FROM_ROOM
3635
3719
  ]);
3636
3720
  const [muteNotification, setMuteNotification] = useState10(null);
3637
- useEffect15(() => {
3721
+ useEffect16(() => {
3638
3722
  switch (notification == null ? void 0 : notification.type) {
3639
3723
  case HMSNotificationTypes6.REMOVED_FROM_ROOM:
3640
3724
  case HMSNotificationTypes6.ROOM_ENDED:
@@ -3653,7 +3737,7 @@ var TrackUnmuteModal = () => {
3653
3737
  return null;
3654
3738
  }
3655
3739
  const { requestedBy: peer, track, enabled } = muteNotification;
3656
- return /* @__PURE__ */ React29.createElement(
3740
+ return /* @__PURE__ */ React31.createElement(
3657
3741
  RequestDialog,
3658
3742
  {
3659
3743
  title: "Track Unmute Request",
@@ -4162,12 +4246,6 @@ var formatTime = (timeInSeconds) => {
4162
4246
  const hour = hours !== 0 ? `${hours < 10 ? "0" : ""}${hours}:` : "";
4163
4247
  return `${hour}${minutes < 10 ? "0" : ""}${minutes}:${seconds < 10 ? "0" : ""}${seconds}`;
4164
4248
  };
4165
- var getAttributeBoxSize = (width, height) => {
4166
- if (!width || !height) {
4167
- return "";
4168
- }
4169
- return width < 180 || height < 180 ? "small" : "medium";
4170
- };
4171
4249
 
4172
4250
  // src/Prebuilt/components/Notifications/Notifications.jsx
4173
4251
  function Notifications() {
@@ -4179,7 +4257,7 @@ function Notifications() {
4179
4257
  const updateRoomLayoutForRole = useUpdateRoomLayout();
4180
4258
  const isNotificationDisabled = useIsNotificationDisabled();
4181
4259
  const { redirectToLeave } = useRedirectToLeave();
4182
- const vanillaStore = useHMSVanillaStore4();
4260
+ const vanillaStore = useHMSVanillaStore5();
4183
4261
  const handleRoleChangeDenied = useCallback8((request) => {
4184
4262
  ToastManager.addToast({
4185
4263
  title: `${request.peerName} denied your request to join the ${request.role.name} role`,
@@ -4187,7 +4265,7 @@ function Notifications() {
4187
4265
  });
4188
4266
  }, []);
4189
4267
  useCustomEvent({ type: ROLE_CHANGE_DECLINED, onEvent: handleRoleChangeDenied });
4190
- useEffect16(() => {
4268
+ useEffect17(() => {
4191
4269
  var _a7, _b7, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
4192
4270
  if (!notification || isNotificationDisabled) {
4193
4271
  return;
@@ -4228,7 +4306,7 @@ function Notifications() {
4228
4306
  const toastId = ToastManager.addToast({
4229
4307
  title: ((_f = notification.data) == null ? void 0 : _f.message) || "We couldn\u2019t reconnect you. When you\u2019re back online, try joining the room.",
4230
4308
  inlineAction: true,
4231
- action: /* @__PURE__ */ React30.createElement(
4309
+ action: /* @__PURE__ */ React32.createElement(
4232
4310
  Button,
4233
4311
  {
4234
4312
  onClick: () => {
@@ -4294,35 +4372,53 @@ function Notifications() {
4294
4372
  if (isNotificationDisabled) {
4295
4373
  return null;
4296
4374
  }
4297
- 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 }));
4375
+ 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 }));
4376
+ }
4377
+
4378
+ // src/Prebuilt/components/Notifications/HeadlessEndRoomListener.tsx
4379
+ import React33, { useEffect as useEffect18 } from "react";
4380
+ import { HMSNotificationTypes as HMSNotificationTypes8, useHMSNotifications as useHMSNotifications8 } from "@100mslive/react-sdk";
4381
+ function HeadlessEndRoomListener() {
4382
+ const notification = useHMSNotifications8();
4383
+ const isNotificationDisabled = useIsNotificationDisabled();
4384
+ const { redirectToLeave } = useRedirectToLeave();
4385
+ useEffect18(() => {
4386
+ if (!notification || !isNotificationDisabled) {
4387
+ return;
4388
+ }
4389
+ if ([HMSNotificationTypes8.ROOM_ENDED, HMSNotificationTypes8.REMOVED_FROM_ROOM].includes(notification.type)) {
4390
+ redirectToLeave(1e3);
4391
+ }
4392
+ }, [notification]);
4393
+ return /* @__PURE__ */ React33.createElement(React33.Fragment, null);
4298
4394
  }
4299
4395
 
4300
4396
  // src/Prebuilt/components/PostLeave.jsx
4301
- import React37 from "react";
4397
+ import React40 from "react";
4302
4398
  import { useNavigate as useNavigate3, useParams as useParams3 } from "react-router-dom";
4303
4399
  import { ExitIcon } from "@100mslive/react-icons";
4304
4400
 
4305
4401
  // src/Prebuilt/components/Header/Header.tsx
4306
- import React36 from "react";
4402
+ import React39 from "react";
4307
4403
  import { useMedia as useMedia3 } from "react-use";
4308
4404
  import { HMSRoomState as HMSRoomState4, selectRoomState as selectRoomState4, useHMSStore as useHMSStore16 } from "@100mslive/react-sdk";
4309
4405
 
4310
4406
  // src/Prebuilt/components/Header/HeaderComponents.jsx
4311
- import React31, { useEffect as useEffect17, useState as useState11 } from "react";
4407
+ import React34, { useEffect as useEffect19, useState as useState11 } from "react";
4312
4408
  import { selectDominantSpeaker, useHMSStore as useHMSStore8 } from "@100mslive/react-sdk";
4313
4409
  import { VolumeOneIcon } from "@100mslive/react-icons";
4314
4410
  var SpeakerTag = () => {
4315
4411
  const dominantSpeaker = useHMSStore8(selectDominantSpeaker);
4316
- return dominantSpeaker && dominantSpeaker.name && /* @__PURE__ */ React31.createElement(
4412
+ return dominantSpeaker && dominantSpeaker.name && /* @__PURE__ */ React34.createElement(
4317
4413
  Flex,
4318
4414
  {
4319
4415
  align: "center",
4320
4416
  justify: "center",
4321
4417
  css: { flex: "1 1 0", color: "$on_primary_high", "@md": { display: "none" } }
4322
4418
  },
4323
- /* @__PURE__ */ React31.createElement(VerticalDivider, { css: { ml: "$8" } }),
4324
- /* @__PURE__ */ React31.createElement(VolumeOneIcon, null),
4325
- /* @__PURE__ */ React31.createElement(Text, { variant: "md", css: __spreadProps(__spreadValues({}, textEllipsis(200)), { ml: "$2" }), title: dominantSpeaker.name }, dominantSpeaker.name)
4419
+ /* @__PURE__ */ React34.createElement(VerticalDivider, { css: { ml: "$8" } }),
4420
+ /* @__PURE__ */ React34.createElement(VolumeOneIcon, null),
4421
+ /* @__PURE__ */ React34.createElement(Text, { variant: "md", css: __spreadProps(__spreadValues({}, textEllipsis(200)), { ml: "$2" }), title: dominantSpeaker.name }, dominantSpeaker.name)
4326
4422
  );
4327
4423
  };
4328
4424
  var LogoImg = styled("img", {
@@ -4338,12 +4434,12 @@ var Logo = () => {
4338
4434
  const roomLayout = useRoomLayout();
4339
4435
  const logo = (_a7 = roomLayout == null ? void 0 : roomLayout.logo) == null ? void 0 : _a7.url;
4340
4436
  const [hideImage, setHideImage] = useState11(false);
4341
- useEffect17(() => {
4437
+ useEffect19(() => {
4342
4438
  if (hideImage) {
4343
4439
  setHideImage(false);
4344
4440
  }
4345
4441
  }, [logo]);
4346
- return logo && !hideImage ? /* @__PURE__ */ React31.createElement(
4442
+ return logo && !hideImage ? /* @__PURE__ */ React34.createElement(
4347
4443
  LogoImg,
4348
4444
  {
4349
4445
  src: logo,
@@ -4357,7 +4453,7 @@ var Logo = () => {
4357
4453
  };
4358
4454
 
4359
4455
  // src/Prebuilt/components/Header/StreamActions.tsx
4360
- import React34, { useCallback as useCallback13, useEffect as useEffect19, useRef as useRef5, useState as useState13 } from "react";
4456
+ import React37, { useCallback as useCallback13, useEffect as useEffect21, useRef as useRef6, useState as useState13 } from "react";
4361
4457
  import { useMedia as useMedia2 } from "react-use";
4362
4458
  import {
4363
4459
  HMSRoomState as HMSRoomState3,
@@ -4372,7 +4468,7 @@ import {
4372
4468
  import { AlertTriangleIcon, CrossIcon as CrossIcon4, RecordIcon } from "@100mslive/react-icons";
4373
4469
 
4374
4470
  // src/Sheet/Sheet.tsx
4375
- import React32 from "react";
4471
+ import React35 from "react";
4376
4472
  import * as DialogPrimitive2 from "@radix-ui/react-dialog";
4377
4473
  var SheetRoot = styled(DialogPrimitive2.Root, {
4378
4474
  minHeight: "240px",
@@ -4446,10 +4542,10 @@ var StyledContent6 = styled(DialogPrimitive2.Content, {
4446
4542
  side: "bottom"
4447
4543
  }
4448
4544
  });
4449
- var SheetContent = React32.forwardRef(
4545
+ var SheetContent = React35.forwardRef(
4450
4546
  (_a7, forwardedRef) => {
4451
4547
  var _b7 = _a7, { children } = _b7, props = __objRest(_b7, ["children"]);
4452
- return /* @__PURE__ */ React32.createElement(Dialog.Portal, null, /* @__PURE__ */ React32.createElement(StyledOverlay, null), /* @__PURE__ */ React32.createElement(StyledContent6, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), children));
4548
+ return /* @__PURE__ */ React35.createElement(Dialog.Portal, null, /* @__PURE__ */ React35.createElement(StyledOverlay, null), /* @__PURE__ */ React35.createElement(StyledContent6, __spreadProps(__spreadValues({}, props), { ref: forwardedRef }), children));
4453
4549
  }
4454
4550
  );
4455
4551
  var SheetClose = Dialog.Close;
@@ -4469,7 +4565,7 @@ var Sheet = {
4469
4565
  };
4470
4566
 
4471
4567
  // src/Prebuilt/components/Header/AdditionalRoomState.jsx
4472
- import React33, { useState as useState12 } from "react";
4568
+ import React36, { useState as useState12 } from "react";
4473
4569
  import { selectLocalPeerID as selectLocalPeerID3, selectPeerSharingVideoPlaylist, useHMSStore as useHMSStore13, useScreenShare } from "@100mslive/react-sdk";
4474
4570
  import {
4475
4571
  AudioPlayerIcon,
@@ -4482,7 +4578,7 @@ import {
4482
4578
  } from "@100mslive/react-icons";
4483
4579
 
4484
4580
  // src/Prebuilt/plugins/whiteboard/useWhiteboardMetadata.js
4485
- import { useCallback as useCallback10, useEffect as useEffect18, useMemo as useMemo2 } from "react";
4581
+ import { useCallback as useCallback10, useEffect as useEffect20, useMemo as useMemo2 } from "react";
4486
4582
  import { selectLocalPeerID as selectLocalPeerID2, selectPeerByCondition, useHMSStore as useHMSStore10 } from "@100mslive/react-sdk";
4487
4583
 
4488
4584
  // src/Prebuilt/components/hooks/useMetadata.jsx
@@ -4493,12 +4589,12 @@ import {
4493
4589
  selectPeerMetadata,
4494
4590
  useHMSActions as useHMSActions9,
4495
4591
  useHMSStore as useHMSStore9,
4496
- useHMSVanillaStore as useHMSVanillaStore5
4592
+ useHMSVanillaStore as useHMSVanillaStore6
4497
4593
  } from "@100mslive/react-sdk";
4498
4594
  var useMyMetadata = () => {
4499
4595
  const hmsActions = useHMSActions9();
4500
4596
  const localPeerId = useHMSStore9(selectLocalPeerID);
4501
- const vanillaStore = useHMSVanillaStore5();
4597
+ const vanillaStore = useHMSVanillaStore6();
4502
4598
  const metaData = useHMSStore9(selectPeerMetadata(localPeerId));
4503
4599
  const isHandRaised = useHMSStore9(selectHasPeerHandRaised2(localPeerId));
4504
4600
  const update = (updatedFields) => __async(void 0, null, function* () {
@@ -4564,7 +4660,7 @@ var useWhiteboardMetadata = () => {
4564
4660
  console.error("failed to toggle whiteboard to ", !whiteboardOwner, error);
4565
4661
  }
4566
4662
  }), [whiteboardOwner, updateMetaData, amIWhiteboardOwner]);
4567
- useEffect18(() => {
4663
+ useEffect20(() => {
4568
4664
  window.toggleWhiteboard = toggleWhiteboard;
4569
4665
  }, [toggleWhiteboard]);
4570
4666
  return {
@@ -4678,7 +4774,7 @@ var AdditionalRoomState = () => {
4678
4774
  if (isPlaylistInactive && isAudioshareInactive && !shouldShowScreenShareState && !shouldShowVideoState && !whiteboardOwner) {
4679
4775
  return null;
4680
4776
  }
4681
- return /* @__PURE__ */ React33.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React33.createElement(Dropdown.Trigger, { asChild: true }, /* @__PURE__ */ React33.createElement(
4777
+ return /* @__PURE__ */ React36.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React36.createElement(Dropdown.Trigger, { asChild: true }, /* @__PURE__ */ React36.createElement(
4682
4778
  Flex,
4683
4779
  {
4684
4780
  align: "center",
@@ -4691,13 +4787,13 @@ var AdditionalRoomState = () => {
4691
4787
  },
4692
4788
  "data-testid": "record_status_dropdown"
4693
4789
  },
4694
- !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 }))),
4695
- 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 }))),
4696
- 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 }))),
4697
- !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 }))),
4698
- 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 }))),
4699
- /* @__PURE__ */ React33.createElement(Box, { css: { "@lg": { display: "none" }, color: "$on_surface_low" } }, open ? /* @__PURE__ */ React33.createElement(ChevronUpIcon2, null) : /* @__PURE__ */ React33.createElement(ChevronDownIcon2, null))
4700
- )), /* @__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(
4790
+ !isAudioshareInactive && /* @__PURE__ */ React36.createElement(Tooltip, { title: "Screenshare Audio" }, /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React36.createElement(MusicIcon, { width: 24, height: 24 }))),
4791
+ shouldShowScreenShareState && /* @__PURE__ */ React36.createElement(Tooltip, { title: "Screenshare" }, /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React36.createElement(ShareScreenIcon, { width: 24, height: 24 }))),
4792
+ shouldShowVideoState && /* @__PURE__ */ React36.createElement(Tooltip, { title: "video playlist" }, /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React36.createElement(VideoPlayerIcon, { width: 24, height: 24 }))),
4793
+ !isPlaylistInactive && /* @__PURE__ */ React36.createElement(Tooltip, { title: "Playlist Music" }, /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React36.createElement(AudioPlayerIcon, { width: 24, height: 24 }))),
4794
+ whiteboardOwner && /* @__PURE__ */ React36.createElement(Tooltip, { title: "Whiteboard" }, /* @__PURE__ */ React36.createElement(Flex, { align: "center", css: { color: "$on_primary_high", mx: "$2" } }, /* @__PURE__ */ React36.createElement(PencilDrawIcon, { width: 24, height: 24 }))),
4795
+ /* @__PURE__ */ React36.createElement(Box, { css: { "@lg": { display: "none" }, color: "$on_surface_low" } }, open ? /* @__PURE__ */ React36.createElement(ChevronUpIcon2, null) : /* @__PURE__ */ React36.createElement(ChevronDownIcon2, null))
4796
+ )), /* @__PURE__ */ React36.createElement(Dropdown.Content, { sideOffset: 5, align: "end", css: { w: "$60" } }, !isPlaylistInactive && /* @__PURE__ */ React36.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React36.createElement(AudioPlayerIcon, { width: 24, height: 24 }), /* @__PURE__ */ React36.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Playlist is playing"), playlist.peer.isLocal ? /* @__PURE__ */ React36.createElement(
4701
4797
  Text,
4702
4798
  {
4703
4799
  variant: "sm",
@@ -4708,7 +4804,7 @@ var AdditionalRoomState = () => {
4708
4804
  }
4709
4805
  },
4710
4806
  playlist.selection.playing ? "Pause" : "Play"
4711
- ) : /* @__PURE__ */ React33.createElement(
4807
+ ) : /* @__PURE__ */ React36.createElement(
4712
4808
  Text,
4713
4809
  {
4714
4810
  variant: "sm",
@@ -4719,7 +4815,7 @@ var AdditionalRoomState = () => {
4719
4815
  }
4720
4816
  },
4721
4817
  playlist.track.volume === 0 ? "Unmute" : "Mute"
4722
- )), !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(
4818
+ )), !isAudioshareInactive && /* @__PURE__ */ React36.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React36.createElement(MusicIcon, { width: 24, height: 24 }), /* @__PURE__ */ React36.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Music is playing"), /* @__PURE__ */ React36.createElement(
4723
4819
  Text,
4724
4820
  {
4725
4821
  variant: "sm",
@@ -4730,7 +4826,7 @@ var AdditionalRoomState = () => {
4730
4826
  }
4731
4827
  },
4732
4828
  screenshareAudio.muted ? "Unmute" : "Mute"
4733
- )), 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(
4829
+ )), shouldShowScreenShareState && /* @__PURE__ */ React36.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React36.createElement(ShareScreenIcon, { width: 24, height: 24 }), /* @__PURE__ */ React36.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, `Shared by: ${screenSharingPeerId === localPeerID ? "You" : screenSharingPeerName}`)), shouldShowVideoState && /* @__PURE__ */ React36.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React36.createElement(VideoPlayerIcon, { width: 24, height: 24 }), /* @__PURE__ */ React36.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, `Shared by: ${peerSharingPlaylist.id === localPeerID ? "You" : peerSharingPlaylist.name}`)), whiteboardOwner && /* @__PURE__ */ React36.createElement(Dropdown.Item, { css: { color: "$on_primary_high" } }, /* @__PURE__ */ React36.createElement(PencilDrawIcon, { width: 24, height: 24 }), /* @__PURE__ */ React36.createElement(Text, { variant: "sm", css: { ml: "$2", flex: "1 1 0" } }, "Whiteboard Owner - ", whiteboardOwner.name, amIWhiteboardOwner && "(You)"), amIWhiteboardOwner && /* @__PURE__ */ React36.createElement(
4734
4830
  Text,
4735
4831
  {
4736
4832
  variant: "sm",
@@ -4750,7 +4846,7 @@ var LiveStatus = () => {
4750
4846
  const { isHLSRunning, isRTMPRunning } = useRecordingStreaming2();
4751
4847
  const hlsState = useHMSStore14(selectHLSState2);
4752
4848
  const isMobile = useMedia2(config.media.md);
4753
- const intervalRef = useRef5(null);
4849
+ const intervalRef = useRef6(null);
4754
4850
  const [liveTime, setLiveTime] = useState13(0);
4755
4851
  const startTimer = useCallback13(() => {
4756
4852
  intervalRef.current = setInterval(() => {
@@ -4760,7 +4856,7 @@ var LiveStatus = () => {
4760
4856
  }
4761
4857
  }, 1e3);
4762
4858
  }, [hlsState == null ? void 0 : hlsState.running, hlsState == null ? void 0 : hlsState.variants]);
4763
- useEffect19(() => {
4859
+ useEffect21(() => {
4764
4860
  if (hlsState == null ? void 0 : hlsState.running) {
4765
4861
  startTimer();
4766
4862
  }
@@ -4776,7 +4872,7 @@ var LiveStatus = () => {
4776
4872
  if (!isHLSRunning && !isRTMPRunning) {
4777
4873
  return null;
4778
4874
  }
4779
- return /* @__PURE__ */ React34.createElement(
4875
+ return /* @__PURE__ */ React37.createElement(
4780
4876
  Flex,
4781
4877
  {
4782
4878
  align: "center",
@@ -4787,8 +4883,8 @@ var LiveStatus = () => {
4787
4883
  borderRadius: "$1"
4788
4884
  }
4789
4885
  },
4790
- /* @__PURE__ */ React34.createElement(Box, { css: { w: "$4", h: "$4", r: "$round", bg: "$alert_error_default", mr: "$2" } }),
4791
- /* @__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) : ""))
4886
+ /* @__PURE__ */ React37.createElement(Box, { css: { w: "$4", h: "$4", r: "$round", bg: "$alert_error_default", mr: "$2" } }),
4887
+ /* @__PURE__ */ React37.createElement(Flex, { align: "center", gap: "2" }, /* @__PURE__ */ React37.createElement(Text, { variant: !isMobile ? "button" : "body2" }, "LIVE"), /* @__PURE__ */ React37.createElement(Text, { variant: "caption" }, ((_a7 = hlsState == null ? void 0 : hlsState.variants) == null ? void 0 : _a7.length) > 0 ? formatTime(liveTime) : ""))
4792
4888
  );
4793
4889
  };
4794
4890
  var RecordingStatus = () => {
@@ -4803,7 +4899,7 @@ var RecordingStatus = () => {
4803
4899
  if (!(isMobile && isRecordingOn))
4804
4900
  return null;
4805
4901
  }
4806
- return /* @__PURE__ */ React34.createElement(
4902
+ return /* @__PURE__ */ React37.createElement(
4807
4903
  Tooltip,
4808
4904
  {
4809
4905
  boxCss: { zIndex: 1 },
@@ -4813,7 +4909,7 @@ var RecordingStatus = () => {
4813
4909
  isHLSRecordingOn
4814
4910
  })
4815
4911
  },
4816
- /* @__PURE__ */ React34.createElement(
4912
+ /* @__PURE__ */ React37.createElement(
4817
4913
  Flex,
4818
4914
  {
4819
4915
  css: {
@@ -4821,7 +4917,7 @@ var RecordingStatus = () => {
4821
4917
  alignItems: "center"
4822
4918
  }
4823
4919
  },
4824
- /* @__PURE__ */ React34.createElement(RecordIcon, { width: 24, height: 24 })
4920
+ /* @__PURE__ */ React37.createElement(RecordIcon, { width: 24, height: 24 })
4825
4921
  )
4826
4922
  );
4827
4923
  };
@@ -4835,7 +4931,7 @@ var StartRecording = () => {
4835
4931
  return null;
4836
4932
  }
4837
4933
  if (isBrowserRecordingOn) {
4838
- 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(
4934
+ return /* @__PURE__ */ React37.createElement(Popover2.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React37.createElement(Popover2.Trigger, { asChild: true }, /* @__PURE__ */ React37.createElement(Button, { variant: "danger", "data-testid": "stop_recording", icon: true, outlined: true, onClick: () => setOpen(true) }, /* @__PURE__ */ React37.createElement(RecordIcon, null), /* @__PURE__ */ React37.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, "Stop Recording"))), /* @__PURE__ */ React37.createElement(Popover2.Portal, null, /* @__PURE__ */ React37.createElement(Popover2.Content, { align: "end", sideOffset: 8, css: { w: "$64" } }, /* @__PURE__ */ React37.createElement(Text, { variant: "body1", css: { color: "$on_surface_medium" } }, "Are you sure you want to end the recording?"), /* @__PURE__ */ React37.createElement(
4839
4935
  Button,
4840
4936
  {
4841
4937
  "data-testid": "stop_recording_confirm",
@@ -4858,7 +4954,7 @@ var StartRecording = () => {
4858
4954
  "Stop"
4859
4955
  ))));
4860
4956
  }
4861
- return /* @__PURE__ */ React34.createElement(
4957
+ return /* @__PURE__ */ React37.createElement(
4862
4958
  Button,
4863
4959
  {
4864
4960
  "data-testid": "start_recording",
@@ -4888,21 +4984,21 @@ var StartRecording = () => {
4888
4984
  }
4889
4985
  })
4890
4986
  },
4891
- recordingStarted ? /* @__PURE__ */ React34.createElement(Loading, { size: 24, color: "currentColor" }) : /* @__PURE__ */ React34.createElement(RecordIcon, null),
4892
- /* @__PURE__ */ React34.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, recordingStarted ? "Starting" : "Start", " Recording")
4987
+ recordingStarted ? /* @__PURE__ */ React37.createElement(Loading, { size: 24, color: "currentColor" }) : /* @__PURE__ */ React37.createElement(RecordIcon, null),
4988
+ /* @__PURE__ */ React37.createElement(Text, { as: "span", css: { "@md": { display: "none" }, color: "currentColor" } }, recordingStarted ? "Starting" : "Start", " Recording")
4893
4989
  );
4894
4990
  };
4895
4991
  var StreamActions = () => {
4896
4992
  const isConnected = useHMSStore14(selectIsConnectedToRoom2);
4897
4993
  const isMobile = useMedia2(config.media.md);
4898
4994
  const roomState = useHMSStore14(selectRoomState3);
4899
- 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);
4995
+ return /* @__PURE__ */ React37.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React37.createElement(AdditionalRoomState, null), !isMobile && /* @__PURE__ */ React37.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React37.createElement(RecordingStatus, null), roomState !== HMSRoomState3.Preview ? /* @__PURE__ */ React37.createElement(LiveStatus, null) : null), isConnected && !isMobile ? /* @__PURE__ */ React37.createElement(StartRecording, null) : null);
4900
4996
  };
4901
4997
  var StopRecordingInSheet = ({
4902
4998
  onStopRecording,
4903
4999
  onClose
4904
5000
  }) => {
4905
- 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(
5001
+ return /* @__PURE__ */ React37.createElement(Sheet.Root, { open: true }, /* @__PURE__ */ React37.createElement(Sheet.Content, null, /* @__PURE__ */ React37.createElement(Sheet.Title, { css: { p: "$10" } }, /* @__PURE__ */ React37.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%", c: "$alert_error_default" } }, /* @__PURE__ */ React37.createElement(Flex, { justify: "start", align: "center", gap: "3" }, /* @__PURE__ */ React37.createElement(AlertTriangleIcon, null), /* @__PURE__ */ React37.createElement(Text, { variant: "h5", css: { c: "$alert_error_default" } }, "Stop Recording")), /* @__PURE__ */ React37.createElement(Sheet.Close, { css: { color: "white" }, onClick: onClose }, /* @__PURE__ */ React37.createElement(CrossIcon4, null)))), /* @__PURE__ */ React37.createElement(HorizontalDivider, null), /* @__PURE__ */ React37.createElement(Box, { as: "div", css: { p: "$10", overflowY: "scroll", maxHeight: "70vh" } }, /* @__PURE__ */ React37.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__ */ React37.createElement(
4906
5002
  Button,
4907
5003
  {
4908
5004
  variant: "danger",
@@ -4916,7 +5012,7 @@ var StopRecordingInSheet = ({
4916
5012
  };
4917
5013
 
4918
5014
  // src/Prebuilt/components/Header/common.jsx
4919
- import React35 from "react";
5015
+ import React38 from "react";
4920
5016
  import {
4921
5017
  DeviceType,
4922
5018
  selectIsLocalVideoEnabled as selectIsLocalVideoEnabled2,
@@ -4937,7 +5033,7 @@ var CamaraFlipActions = () => {
4937
5033
  if (!videoInput || !(videoInput == null ? void 0 : videoInput.length) || !(localVideoTrack == null ? void 0 : localVideoTrack.facingMode)) {
4938
5034
  return null;
4939
5035
  }
4940
- return /* @__PURE__ */ React35.createElement(Box, null, /* @__PURE__ */ React35.createElement(
5036
+ return /* @__PURE__ */ React38.createElement(Box, null, /* @__PURE__ */ React38.createElement(
4941
5037
  IconButton_default,
4942
5038
  {
4943
5039
  disabled: !isVideoOn,
@@ -4952,7 +5048,7 @@ var CamaraFlipActions = () => {
4952
5048
  }
4953
5049
  })
4954
5050
  },
4955
- /* @__PURE__ */ React35.createElement(CameraFlipIcon, null)
5051
+ /* @__PURE__ */ React38.createElement(CameraFlipIcon, null)
4956
5052
  ));
4957
5053
  };
4958
5054
  var AudioOutputActions = () => {
@@ -4964,7 +5060,7 @@ var AudioOutputActions = () => {
4964
5060
  if (!shouldShowAudioOutput || !(audioOutputFiltered == null ? void 0 : audioOutputFiltered.length) > 0) {
4965
5061
  return null;
4966
5062
  }
4967
- return /* @__PURE__ */ React35.createElement(
5063
+ return /* @__PURE__ */ React38.createElement(
4968
5064
  AudioOutputSelectionSheet,
4969
5065
  {
4970
5066
  outputDevices: audioOutput,
@@ -4983,11 +5079,11 @@ var AudioOutputActions = () => {
4983
5079
  }
4984
5080
  })
4985
5081
  },
4986
- /* @__PURE__ */ React35.createElement(Box, null, /* @__PURE__ */ React35.createElement(IconButton_default, null, /* @__PURE__ */ React35.createElement(SpeakerIcon, null)))
5082
+ /* @__PURE__ */ React38.createElement(Box, null, /* @__PURE__ */ React38.createElement(IconButton_default, null, /* @__PURE__ */ React38.createElement(SpeakerIcon, null)))
4987
5083
  );
4988
5084
  };
4989
5085
  var AudioOutputSelectionSheet = ({ outputDevices, outputSelected, onChange, children }) => {
4990
- 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(
5086
+ return /* @__PURE__ */ React38.createElement(Sheet.Root, null, /* @__PURE__ */ React38.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React38.createElement(Sheet.Content, null, /* @__PURE__ */ React38.createElement(Sheet.Title, { css: { py: "$10", px: "$8", alignItems: "center" } }, /* @__PURE__ */ React38.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%" } }, /* @__PURE__ */ React38.createElement(Text, { variant: "h6", css: { display: "flex" } }, "Audio Output"), /* @__PURE__ */ React38.createElement(Sheet.Close, null, /* @__PURE__ */ React38.createElement(IconButton_default, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React38.createElement(CrossIcon5, null))))), /* @__PURE__ */ React38.createElement(HorizontalDivider, null), /* @__PURE__ */ React38.createElement(
4991
5087
  Flex,
4992
5088
  {
4993
5089
  direction: "column",
@@ -4998,7 +5094,7 @@ var AudioOutputSelectionSheet = ({ outputDevices, outputSelected, onChange, chil
4998
5094
  }
4999
5095
  },
5000
5096
  outputDevices.map((audioDevice) => {
5001
- return /* @__PURE__ */ React35.createElement(
5097
+ return /* @__PURE__ */ React38.createElement(
5002
5098
  SelectWithLabel,
5003
5099
  {
5004
5100
  key: audioDevice.deviceId,
@@ -5011,8 +5107,8 @@ var AudioOutputSelectionSheet = ({ outputDevices, outputSelected, onChange, chil
5011
5107
  })
5012
5108
  )));
5013
5109
  };
5014
- var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React35.createElement(React35.Fragment, null), checked, id, onChange }) => {
5015
- return /* @__PURE__ */ React35.createElement(
5110
+ var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React38.createElement(React38.Fragment, null), checked, id, onChange }) => {
5111
+ return /* @__PURE__ */ React38.createElement(
5016
5112
  Flex,
5017
5113
  {
5018
5114
  align: "center",
@@ -5024,7 +5120,7 @@ var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React35.createElement(Rea
5024
5120
  },
5025
5121
  onClick: onChange
5026
5122
  },
5027
- /* @__PURE__ */ React35.createElement(
5123
+ /* @__PURE__ */ React38.createElement(
5028
5124
  Label3,
5029
5125
  {
5030
5126
  htmlFor: id,
@@ -5042,7 +5138,7 @@ var SelectWithLabel = ({ label, icon = /* @__PURE__ */ React35.createElement(Rea
5042
5138
  icon,
5043
5139
  label
5044
5140
  ),
5045
- checked && /* @__PURE__ */ React35.createElement(CheckIcon2, { width: 24, height: 24 })
5141
+ checked && /* @__PURE__ */ React38.createElement(CheckIcon2, { width: 24, height: 24 })
5046
5142
  );
5047
5143
  };
5048
5144
 
@@ -5051,9 +5147,9 @@ var Header2 = () => {
5051
5147
  const roomState = useHMSStore16(selectRoomState4);
5052
5148
  const isMobile = useMedia3(config.media.md);
5053
5149
  if (roomState !== HMSRoomState4.Connected) {
5054
- return /* @__PURE__ */ React36.createElement(React36.Fragment, null);
5150
+ return /* @__PURE__ */ React39.createElement(React39.Fragment, null);
5055
5151
  }
5056
- 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(
5152
+ return /* @__PURE__ */ React39.createElement(Flex, { justify: "between", align: "center", css: { position: "relative", height: "100%" } }, /* @__PURE__ */ React39.createElement(Flex, { align: "center", gap: "2", css: { position: "absolute", left: "$10" } }, /* @__PURE__ */ React39.createElement(Logo, null), /* @__PURE__ */ React39.createElement(SpeakerTag, null), isMobile && /* @__PURE__ */ React39.createElement(Flex, { align: "center", css: { gap: "$4" } }, /* @__PURE__ */ React39.createElement(LiveStatus, null), /* @__PURE__ */ React39.createElement(RecordingStatus, null))), /* @__PURE__ */ React39.createElement(
5057
5153
  Flex,
5058
5154
  {
5059
5155
  align: "center",
@@ -5063,8 +5159,8 @@ var Header2 = () => {
5063
5159
  gap: "$4"
5064
5160
  }
5065
5161
  },
5066
- /* @__PURE__ */ React36.createElement(StreamActions, null),
5067
- isMobile ? /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(CamaraFlipActions, null), /* @__PURE__ */ React36.createElement(AudioOutputActions, null)) : null
5162
+ /* @__PURE__ */ React39.createElement(StreamActions, null),
5163
+ isMobile ? /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement(CamaraFlipActions, null), /* @__PURE__ */ React39.createElement(AudioOutputActions, null)) : null
5068
5164
  ));
5069
5165
  };
5070
5166
 
@@ -5075,7 +5171,7 @@ var PostLeave = () => {
5075
5171
  const { roomCode } = useHMSPrebuiltContext();
5076
5172
  const { roomId, role } = useParams3();
5077
5173
  const [previewPreference] = useUserPreferences(UserPreferencesKeys.PREVIEW, defaultPreviewPreference);
5078
- 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(
5174
+ return /* @__PURE__ */ React40.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React40.createElement(Box, { css: { h: "$18", "@md": { h: "$17" } }, "data-testid": "header" }, /* @__PURE__ */ React40.createElement(Header2, null)), /* @__PURE__ */ React40.createElement(
5079
5175
  Flex,
5080
5176
  {
5081
5177
  justify: "center",
@@ -5083,9 +5179,9 @@ var PostLeave = () => {
5083
5179
  align: "center",
5084
5180
  css: { bg: "$background_dim", flex: "1 1 0", position: "relative" }
5085
5181
  },
5086
- /* @__PURE__ */ React37.createElement(Text, { variant: "h2", css: { fontWeight: "$semiBold" } }, "\u{1F44B}"),
5087
- /* @__PURE__ */ React37.createElement(Text, { variant: "h4", css: { color: "$on_surface_high", fontWeight: "$semiBold", mt: "$12" } }, "You left the room"),
5088
- /* @__PURE__ */ React37.createElement(
5182
+ /* @__PURE__ */ React40.createElement(Text, { variant: "h2", css: { fontWeight: "$semiBold" } }, "\u{1F44B}"),
5183
+ /* @__PURE__ */ React40.createElement(Text, { variant: "h4", css: { color: "$on_surface_high", fontWeight: "$semiBold", mt: "$12" } }, "You left the room"),
5184
+ /* @__PURE__ */ React40.createElement(
5089
5185
  Text,
5090
5186
  {
5091
5187
  variant: "body1",
@@ -5097,10 +5193,10 @@ var PostLeave = () => {
5097
5193
  }
5098
5194
  },
5099
5195
  "Have a nice day",
5100
- previewPreference.name && /* @__PURE__ */ React37.createElement(Box, { as: "span", css: __spreadValues({}, textEllipsis(100)) }, ", ", previewPreference.name),
5196
+ previewPreference.name && /* @__PURE__ */ React40.createElement(Box, { as: "span", css: __spreadValues({}, textEllipsis(100)) }, ", ", previewPreference.name),
5101
5197
  "!"
5102
5198
  ),
5103
- /* @__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(
5199
+ /* @__PURE__ */ React40.createElement(Flex, { css: { mt: "$14", gap: "$10", alignItems: "center" } }, /* @__PURE__ */ React40.createElement(Text, { variant: "body1", css: { color: "$on_surface_medium", fontWeight: "$regular" } }, "Left by mistake?"), /* @__PURE__ */ React40.createElement(
5104
5200
  Button,
5105
5201
  {
5106
5202
  onClick: () => {
@@ -5112,37 +5208,37 @@ var PostLeave = () => {
5112
5208
  },
5113
5209
  "data-testid": "join_again_btn"
5114
5210
  },
5115
- /* @__PURE__ */ React37.createElement(ExitIcon, null),
5116
- /* @__PURE__ */ React37.createElement(Text, { css: { ml: "$3", fontWeight: "$semiBold", color: "inherit" } }, "Rejoin")
5211
+ /* @__PURE__ */ React40.createElement(ExitIcon, null),
5212
+ /* @__PURE__ */ React40.createElement(Text, { css: { ml: "$3", fontWeight: "$semiBold", color: "inherit" } }, "Rejoin")
5117
5213
  ))
5118
5214
  ));
5119
5215
  };
5120
5216
  var PostLeave_default = PostLeave;
5121
5217
 
5122
5218
  // src/Prebuilt/components/Preview/PreviewContainer.tsx
5123
- import React56 from "react";
5219
+ import React54 from "react";
5124
5220
  import { useNavigate as useNavigate4, useParams as useParams4 } from "react-router-dom";
5125
5221
  import { useSearchParam } from "react-use";
5126
5222
 
5127
5223
  // src/Prebuilt/components/Preview/PreviewJoin.tsx
5128
- import React55, { Fragment as Fragment6, Suspense, useCallback as useCallback17, useEffect as useEffect24, useState as useState19 } from "react";
5129
- import { useMedia as useMedia10 } from "react-use";
5224
+ import React53, { Fragment as Fragment4, Suspense, useCallback as useCallback16, useEffect as useEffect24, useState as useState16 } from "react";
5225
+ import { useMedia as useMedia6 } from "react-use";
5130
5226
  import {
5131
5227
  HMSRoomState as HMSRoomState6,
5132
5228
  selectIsLocalVideoEnabled as selectIsLocalVideoEnabled5,
5133
5229
  selectLocalPeer,
5134
5230
  selectRoomState as selectRoomState6,
5135
- selectVideoTrackByID as selectVideoTrackByID5,
5231
+ selectVideoTrackByID as selectVideoTrackByID4,
5136
5232
  useAVToggle as useAVToggle2,
5137
- useHMSStore as useHMSStore25,
5233
+ useHMSStore as useHMSStore21,
5138
5234
  useParticipants,
5139
5235
  usePreviewJoin,
5140
5236
  useRecordingStreaming as useRecordingStreaming4
5141
5237
  } from "@100mslive/react-sdk";
5142
- import { MicOffIcon as MicOffIcon4, SettingsIcon as SettingsIcon2 } from "@100mslive/react-icons";
5238
+ import { MicOffIcon as MicOffIcon2, SettingsIcon as SettingsIcon2 } from "@100mslive/react-icons";
5143
5239
 
5144
5240
  // src/Prebuilt/components/AudioVideoToggle.jsx
5145
- import React39, { Fragment as Fragment2 } from "react";
5241
+ import React42, { Fragment as Fragment2 } from "react";
5146
5242
  import {
5147
5243
  DeviceType as DeviceType2,
5148
5244
  HMSRoomState as HMSRoomState5,
@@ -5157,7 +5253,7 @@ import {
5157
5253
  import { CameraFlipIcon as CameraFlipIcon2, MicOffIcon, MicOnIcon as MicOnIcon3, VideoOffIcon, VideoOnIcon } from "@100mslive/react-icons";
5158
5254
 
5159
5255
  // src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.jsx
5160
- import React38 from "react";
5256
+ import React41 from "react";
5161
5257
  import { VerticalMenuIcon } from "@100mslive/react-icons";
5162
5258
  var IconSection = styled(IconButton_default, {
5163
5259
  w: "unset",
@@ -5209,7 +5305,7 @@ var IconButtonWithOptions = ({
5209
5305
  }) => {
5210
5306
  const bgCss = { backgroundColor: disabled ? "$surface_brighter" : active ? "$transparent" : "$secondary_dim" };
5211
5307
  const iconCss = { color: disabled ? "$on_surface_low" : active ? "$on_surface_high" : "$on_primary_high" };
5212
- 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(
5308
+ return /* @__PURE__ */ React41.createElement(Flex, null, /* @__PURE__ */ React41.createElement(IconSection, { css: bgCss, onClick }, /* @__PURE__ */ React41.createElement(Tooltip, { disabled: !tooltipMessage, title: tooltipMessage }, /* @__PURE__ */ React41.createElement(Flex, { align: "center", justify: "center", css: iconCss }, icon))), /* @__PURE__ */ React41.createElement(Dropdown.Root, null, /* @__PURE__ */ React41.createElement(
5213
5309
  Dropdown.Trigger,
5214
5310
  {
5215
5311
  asChild: true,
@@ -5220,8 +5316,8 @@ var IconButtonWithOptions = ({
5220
5316
  }
5221
5317
  }
5222
5318
  },
5223
- /* @__PURE__ */ React38.createElement(OptionsSection, { css: bgCss }, /* @__PURE__ */ React38.createElement(Tooltip, { title: "View Options" }, /* @__PURE__ */ React38.createElement(Box, { css: iconCss }, /* @__PURE__ */ React38.createElement(VerticalMenuIcon, null))))
5224
- ), /* @__PURE__ */ React38.createElement(
5319
+ /* @__PURE__ */ React41.createElement(OptionsSection, { css: bgCss }, /* @__PURE__ */ React41.createElement(Tooltip, { title: "View Options" }, /* @__PURE__ */ React41.createElement(Box, { css: iconCss }, /* @__PURE__ */ React41.createElement(VerticalMenuIcon, null))))
5320
+ ), /* @__PURE__ */ React41.createElement(
5225
5321
  Dropdown.Content,
5226
5322
  {
5227
5323
  sideOffset: 5,
@@ -5233,7 +5329,7 @@ var IconButtonWithOptions = ({
5233
5329
  border: "none"
5234
5330
  }
5235
5331
  },
5236
- options.map((option, index) => /* @__PURE__ */ React38.createElement(
5332
+ options.map((option, index) => /* @__PURE__ */ React41.createElement(
5237
5333
  Dropdown.Item,
5238
5334
  {
5239
5335
  key: option.title,
@@ -5260,7 +5356,7 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5260
5356
  const { videoInput, audioInput } = allDevices;
5261
5357
  const formattedVideoInputList = videoInput == null ? void 0 : videoInput.map((videoInput2) => ({
5262
5358
  active: selectedDeviceIDs.videoInput === videoInput2.deviceId,
5263
- content: /* @__PURE__ */ React39.createElement(
5359
+ content: /* @__PURE__ */ React42.createElement(
5264
5360
  Text,
5265
5361
  {
5266
5362
  variant: "sm",
@@ -5276,7 +5372,7 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5276
5372
  }));
5277
5373
  const formattedAudioInputList = audioInput == null ? void 0 : audioInput.map((audioInput2) => ({
5278
5374
  active: selectedDeviceIDs.audioInput === audioInput2.deviceId,
5279
- content: /* @__PURE__ */ React39.createElement(
5375
+ content: /* @__PURE__ */ React42.createElement(
5280
5376
  Text,
5281
5377
  {
5282
5378
  variant: "sm",
@@ -5297,7 +5393,7 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5297
5393
  const roomState = useHMSStore17(selectRoomState5);
5298
5394
  const hasAudioDevices = (audioInput == null ? void 0 : audioInput.length) > 0;
5299
5395
  const hasVideoDevices = (videoInput == null ? void 0 : videoInput.length) > 0;
5300
- 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(
5396
+ return /* @__PURE__ */ React42.createElement(Fragment2, null, toggleAudio ? hideOptions || !hasAudioDevices ? /* @__PURE__ */ React42.createElement(Tooltip, { title: `Turn ${isLocalAudioEnabled ? "off" : "on"} audio (${isMacOS ? "\u2318" : "ctrl"} + d)` }, /* @__PURE__ */ React42.createElement(
5301
5397
  IconButton_default,
5302
5398
  {
5303
5399
  active: isLocalAudioEnabled,
@@ -5307,20 +5403,20 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5307
5403
  "data-testid": "audio_btn",
5308
5404
  className: "__cancel-drag-event"
5309
5405
  },
5310
- !isLocalAudioEnabled ? /* @__PURE__ */ React39.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React39.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" })
5311
- )) : /* @__PURE__ */ React39.createElement(
5406
+ !isLocalAudioEnabled ? /* @__PURE__ */ React42.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React42.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" })
5407
+ )) : /* @__PURE__ */ React42.createElement(
5312
5408
  IconButtonWithOptions,
5313
5409
  {
5314
5410
  options: formattedAudioInputList,
5315
5411
  disabled: !toggleAudio,
5316
5412
  onDisabledClick: toggleAudio,
5317
5413
  tooltipMessage: `Turn ${isLocalAudioEnabled ? "off" : "on"} audio (${isMacOS ? "\u2318" : "ctrl"} + d)`,
5318
- icon: !isLocalAudioEnabled ? /* @__PURE__ */ React39.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React39.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" }),
5414
+ icon: !isLocalAudioEnabled ? /* @__PURE__ */ React42.createElement(MicOffIcon, { "data-testid": "audio_off_btn" }) : /* @__PURE__ */ React42.createElement(MicOnIcon3, { "data-testid": "audio_on_btn" }),
5319
5415
  active: isLocalAudioEnabled,
5320
5416
  onClick: toggleAudio,
5321
5417
  key: "toggleAudio"
5322
5418
  }
5323
- ) : null, toggleVideo ? hideOptions || !hasVideoDevices ? /* @__PURE__ */ React39.createElement(Tooltip, { title: `Turn ${isLocalVideoEnabled ? "off" : "on"} video (${isMacOS ? "\u2318" : "ctrl"} + e)` }, /* @__PURE__ */ React39.createElement(
5419
+ ) : null, toggleVideo ? hideOptions || !hasVideoDevices ? /* @__PURE__ */ React42.createElement(Tooltip, { title: `Turn ${isLocalVideoEnabled ? "off" : "on"} video (${isMacOS ? "\u2318" : "ctrl"} + e)` }, /* @__PURE__ */ React42.createElement(
5324
5420
  IconButton_default,
5325
5421
  {
5326
5422
  key: "toggleVideo",
@@ -5330,20 +5426,20 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5330
5426
  "data-testid": "video_btn",
5331
5427
  className: "__cancel-drag-event"
5332
5428
  },
5333
- !isLocalVideoEnabled ? /* @__PURE__ */ React39.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React39.createElement(VideoOnIcon, { "data-testid": "video_on_btn" })
5334
- )) : /* @__PURE__ */ React39.createElement(
5429
+ !isLocalVideoEnabled ? /* @__PURE__ */ React42.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React42.createElement(VideoOnIcon, { "data-testid": "video_on_btn" })
5430
+ )) : /* @__PURE__ */ React42.createElement(
5335
5431
  IconButtonWithOptions,
5336
5432
  {
5337
5433
  disabled: !toggleVideo,
5338
5434
  onDisabledClick: toggleVideo,
5339
5435
  options: formattedVideoInputList,
5340
5436
  tooltipMessage: `Turn ${isLocalVideoEnabled ? "off" : "on"} video (${isMacOS ? "\u2318" : "ctrl"} + e)`,
5341
- icon: !isLocalVideoEnabled ? /* @__PURE__ */ React39.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React39.createElement(VideoOnIcon, { "data-testid": "video_on_btn" }),
5437
+ icon: !isLocalVideoEnabled ? /* @__PURE__ */ React42.createElement(VideoOffIcon, { "data-testid": "video_off_btn" }) : /* @__PURE__ */ React42.createElement(VideoOnIcon, { "data-testid": "video_on_btn" }),
5342
5438
  key: "toggleVideo",
5343
5439
  active: isLocalVideoEnabled,
5344
5440
  onClick: toggleVideo
5345
5441
  }
5346
- ) : null, (localVideoTrack == null ? void 0 : localVideoTrack.facingMode) && roomState === HMSRoomState5.Preview ? /* @__PURE__ */ React39.createElement(Tooltip, { title: "Switch Camera", key: "switchCamera" }, /* @__PURE__ */ React39.createElement(
5442
+ ) : null, (localVideoTrack == null ? void 0 : localVideoTrack.facingMode) && roomState === HMSRoomState5.Preview ? /* @__PURE__ */ React42.createElement(Tooltip, { title: "Switch Camera", key: "switchCamera" }, /* @__PURE__ */ React42.createElement(
5347
5443
  IconButton_default,
5348
5444
  {
5349
5445
  onClick: () => __async(void 0, null, function* () {
@@ -5357,32 +5453,43 @@ var AudioVideoToggle = ({ hideOptions = false }) => {
5357
5453
  }
5358
5454
  })
5359
5455
  },
5360
- /* @__PURE__ */ React39.createElement(CameraFlipIcon2, null)
5456
+ /* @__PURE__ */ React42.createElement(CameraFlipIcon2, null)
5361
5457
  )) : null);
5362
5458
  };
5363
5459
 
5364
- // src/Prebuilt/components/Chip.jsx
5365
- import React40 from "react";
5460
+ // src/Prebuilt/components/Chip.tsx
5461
+ import React43 from "react";
5366
5462
  var Chip = ({
5367
- icon = /* @__PURE__ */ React40.createElement(React40.Fragment, null),
5463
+ icon = /* @__PURE__ */ React43.createElement(React43.Fragment, null),
5368
5464
  content = "",
5369
5465
  backgroundColor = "$surface_default",
5370
5466
  textColor = "$on_surface_high",
5371
- hideIfNoContent = false
5467
+ hideIfNoContent = false,
5468
+ onClick,
5469
+ css: css2 = {}
5372
5470
  }) => {
5373
5471
  if (hideIfNoContent && !content) {
5374
- return;
5472
+ return null;
5375
5473
  }
5376
- 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));
5474
+ return /* @__PURE__ */ React43.createElement(
5475
+ Flex,
5476
+ {
5477
+ align: "center",
5478
+ css: __spreadValues({ backgroundColor, p: "$4 $6", gap: "$2", borderRadius: "$4" }, css2),
5479
+ onClick: () => onClick == null ? void 0 : onClick()
5480
+ },
5481
+ icon,
5482
+ /* @__PURE__ */ React43.createElement(Text, { variant: "sm", css: { fontWeight: "$semiBold", color: textColor } }, content)
5483
+ );
5377
5484
  };
5378
5485
  var Chip_default = Chip;
5379
5486
 
5380
5487
  // src/Prebuilt/components/Connection/TileConnection.tsx
5381
- import React42 from "react";
5488
+ import React45 from "react";
5382
5489
  import { PinIcon, SpotlightIcon } from "@100mslive/react-icons";
5383
5490
 
5384
5491
  // src/Prebuilt/components/Connection/ConnectionIndicator.tsx
5385
- import React41 from "react";
5492
+ import React44 from "react";
5386
5493
  import { selectConnectionQualityByPeerID as selectConnectionQualityByPeerID2, useHMSStore as useHMSStore18 } from "@100mslive/react-sdk";
5387
5494
  import { PoorConnectivityIcon as PoorConnectivityIcon2 } from "@100mslive/react-icons";
5388
5495
 
@@ -5444,10 +5551,10 @@ var ConnectionIndicator = ({
5444
5551
  return null;
5445
5552
  }
5446
5553
  if (downlinkQuality === 0) {
5447
- 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)));
5554
+ return /* @__PURE__ */ React44.createElement(Tooltip, { title: getTooltipText(downlinkQuality) }, /* @__PURE__ */ React44.createElement(Wrapper, { isTile, css: { color: "#ED4C5A" }, "data-testid": "tile_network" }, /* @__PURE__ */ React44.createElement(PoorConnectivityIcon2, null)));
5448
5555
  }
5449
5556
  const size = isTile ? 12 : 16;
5450
- 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(
5557
+ return /* @__PURE__ */ React44.createElement(Tooltip, { title: getTooltipText(downlinkQuality) }, /* @__PURE__ */ React44.createElement(Wrapper, { isTile, "data-testid": "tile_network", css: { backgroundColor: hideBg ? "" : "$surface_bright" } }, /* @__PURE__ */ React44.createElement(
5451
5558
  "svg",
5452
5559
  {
5453
5560
  width: size,
@@ -5462,7 +5569,7 @@ var ConnectionIndicator = ({
5462
5569
  strokeMiterlimit: 2
5463
5570
  }
5464
5571
  },
5465
- /* @__PURE__ */ React41.createElement(
5572
+ /* @__PURE__ */ React44.createElement(
5466
5573
  "path",
5467
5574
  {
5468
5575
  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",
@@ -5470,7 +5577,7 @@ var ConnectionIndicator = ({
5470
5577
  transform: "translate(-.333)"
5471
5578
  }
5472
5579
  ),
5473
- /* @__PURE__ */ React41.createElement(
5580
+ /* @__PURE__ */ React44.createElement(
5474
5581
  "path",
5475
5582
  {
5476
5583
  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",
@@ -5478,14 +5585,14 @@ var ConnectionIndicator = ({
5478
5585
  transform: "translate(-.333)"
5479
5586
  }
5480
5587
  ),
5481
- /* @__PURE__ */ React41.createElement(
5588
+ /* @__PURE__ */ React44.createElement(
5482
5589
  "path",
5483
5590
  {
5484
5591
  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",
5485
5592
  fill: getColor(2, downlinkQuality, defaultColor, theme2)
5486
5593
  }
5487
5594
  ),
5488
- /* @__PURE__ */ React41.createElement(
5595
+ /* @__PURE__ */ React44.createElement(
5489
5596
  "path",
5490
5597
  {
5491
5598
  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",
@@ -5504,7 +5611,7 @@ var TileConnection = ({
5504
5611
  spotlighted,
5505
5612
  pinned
5506
5613
  }) => {
5507
- 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(
5614
+ return /* @__PURE__ */ React45.createElement(Wrapper2, null, !hideLabel ? /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement(Flex, { align: "center" }, pinned && /* @__PURE__ */ React45.createElement(IconWrapper, null, /* @__PURE__ */ React45.createElement(PinIcon, { width: "15", height: "15" })), spotlighted && /* @__PURE__ */ React45.createElement(IconWrapper, null, /* @__PURE__ */ React45.createElement(SpotlightIcon, { width: "15", height: "15" })), /* @__PURE__ */ React45.createElement(
5508
5615
  Text,
5509
5616
  {
5510
5617
  css: __spreadValues({
@@ -5514,7 +5621,7 @@ var TileConnection = ({
5514
5621
  variant: "xs"
5515
5622
  },
5516
5623
  name
5517
- )), /* @__PURE__ */ React42.createElement(ConnectionIndicator, { isTile: true, peerId, hideBg: true })) : null);
5624
+ )), /* @__PURE__ */ React45.createElement(ConnectionIndicator, { isTile: true, peerId, hideBg: true })) : null);
5518
5625
  };
5519
5626
  var IconWrapper = styled("div", { c: "$on_surface_high", ml: "$3", mt: "$1" });
5520
5627
  var Wrapper2 = styled("div", {
@@ -5533,8 +5640,12 @@ var Wrapper2 = styled("div", {
5533
5640
  });
5534
5641
  var TileConnection_default = TileConnection;
5535
5642
 
5643
+ // src/Prebuilt/components/PrebuiltTileElements.tsx
5644
+ var PrebuiltAudioIndicator = styled(StyledVideoTile.AudioIndicator, { height: "$12", width: "$12" });
5645
+ var PrebuiltAttributeBox = styled(StyledVideoTile.AttributeBox, { height: "$12", width: "$12" });
5646
+
5536
5647
  // src/Prebuilt/components/Settings/SettingsModal.jsx
5537
- import React48, { useCallback as useCallback15, useEffect as useEffect21, useState as useState15 } from "react";
5648
+ import React51, { useCallback as useCallback15, useEffect as useEffect23, useState as useState15 } from "react";
5538
5649
  import { useMedia as useMedia4 } from "react-use";
5539
5650
  import { ChevronLeftIcon, CrossIcon as CrossIcon6 } from "@100mslive/react-icons";
5540
5651
 
@@ -5542,7 +5653,7 @@ import { ChevronLeftIcon, CrossIcon as CrossIcon6 } from "@100mslive/react-icons
5542
5653
  import { GridFourIcon, NotificationsIcon, SettingsIcon } from "@100mslive/react-icons";
5543
5654
 
5544
5655
  // src/Prebuilt/components/Settings/DeviceSettings.jsx
5545
- import React44, { Fragment as Fragment3, useEffect as useEffect20, useRef as useRef6, useState as useState14 } from "react";
5656
+ import React47, { Fragment as Fragment3, useEffect as useEffect22, useRef as useRef7, useState as useState14 } from "react";
5546
5657
  import {
5547
5658
  DeviceType as DeviceType3,
5548
5659
  selectIsLocalVideoEnabled as selectIsLocalVideoEnabled3,
@@ -5554,10 +5665,10 @@ import {
5554
5665
  import { MicOnIcon as MicOnIcon4, SpeakerIcon as SpeakerIcon2, VideoOnIcon as VideoOnIcon2 } from "@100mslive/react-icons";
5555
5666
 
5556
5667
  // src/Prebuilt/primitives/DropdownTrigger.jsx
5557
- import React43 from "react";
5668
+ import React46 from "react";
5558
5669
  import { ChevronDownIcon as ChevronDownIcon3, ChevronUpIcon as ChevronUpIcon3 } from "@100mslive/react-icons";
5559
- var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon, titleCSS = {} }, ref) => {
5560
- return /* @__PURE__ */ React43.createElement(
5670
+ var DialogDropdownTrigger = React46.forwardRef(({ title, css: css2, open, icon, titleCSS = {} }, ref) => {
5671
+ return /* @__PURE__ */ React46.createElement(
5561
5672
  Dropdown.Trigger,
5562
5673
  {
5563
5674
  asChild: true,
@@ -5571,7 +5682,7 @@ var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon,
5571
5682
  }, css2),
5572
5683
  ref
5573
5684
  },
5574
- /* @__PURE__ */ React43.createElement(
5685
+ /* @__PURE__ */ React46.createElement(
5575
5686
  Flex,
5576
5687
  {
5577
5688
  css: {
@@ -5582,7 +5693,7 @@ var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon,
5582
5693
  }
5583
5694
  },
5584
5695
  icon,
5585
- /* @__PURE__ */ React43.createElement(
5696
+ /* @__PURE__ */ React46.createElement(
5586
5697
  Text,
5587
5698
  {
5588
5699
  css: __spreadValues(__spreadProps(__spreadValues({
@@ -5594,14 +5705,14 @@ var DialogDropdownTrigger = React43.forwardRef(({ title, css: css2, open, icon,
5594
5705
  },
5595
5706
  title
5596
5707
  ),
5597
- open ? /* @__PURE__ */ React43.createElement(ChevronUpIcon3, null) : /* @__PURE__ */ React43.createElement(ChevronDownIcon3, null)
5708
+ open ? /* @__PURE__ */ React46.createElement(ChevronUpIcon3, null) : /* @__PURE__ */ React46.createElement(ChevronDownIcon3, null)
5598
5709
  )
5599
5710
  );
5600
5711
  });
5601
5712
 
5602
5713
  // src/Prebuilt/components/hooks/useDropdownSelection.jsx
5603
5714
  var useDropdownSelection = () => {
5604
- return "$primary_dim";
5715
+ return "$surface_bright";
5605
5716
  };
5606
5717
 
5607
5718
  // src/Prebuilt/components/Settings/DeviceSettings.jsx
@@ -5619,7 +5730,7 @@ var Settings = ({ setHide }) => {
5619
5730
  if (!(videoInput == null ? void 0 : videoInput.length) && !(audioInput == null ? void 0 : audioInput.length) && !(audioOutputFiltered == null ? void 0 : audioOutputFiltered.length)) {
5620
5731
  setHide(true);
5621
5732
  }
5622
- return /* @__PURE__ */ React44.createElement(Box, { className: settingOverflow() }, (videoInput == null ? void 0 : videoInput.length) ? /* @__PURE__ */ React44.createElement(Fragment3, null, isVideoOn && /* @__PURE__ */ React44.createElement(
5733
+ return /* @__PURE__ */ React47.createElement(Box, { className: settingOverflow() }, (videoInput == null ? void 0 : videoInput.length) ? /* @__PURE__ */ React47.createElement(Fragment3, null, isVideoOn && /* @__PURE__ */ React47.createElement(
5623
5734
  StyledVideoTile.Container,
5624
5735
  {
5625
5736
  css: {
@@ -5630,24 +5741,24 @@ var Settings = ({ setHide }) => {
5630
5741
  m: "$10 auto"
5631
5742
  }
5632
5743
  },
5633
- /* @__PURE__ */ React44.createElement(Video, { trackId: videoTrackId, mirror: (track == null ? void 0 : track.facingMode) !== "environment" && mirrorLocalVideo })
5634
- ), /* @__PURE__ */ React44.createElement(
5744
+ /* @__PURE__ */ React47.createElement(Video, { trackId: videoTrackId, mirror: (track == null ? void 0 : track.facingMode) !== "environment" && mirrorLocalVideo })
5745
+ ), /* @__PURE__ */ React47.createElement(
5635
5746
  DeviceSelector,
5636
5747
  {
5637
5748
  title: "Video",
5638
5749
  devices: videoInput,
5639
- icon: /* @__PURE__ */ React44.createElement(VideoOnIcon2, null),
5750
+ icon: /* @__PURE__ */ React47.createElement(VideoOnIcon2, null),
5640
5751
  selection: selectedDeviceIDs.videoInput,
5641
5752
  onChange: (deviceId) => updateDevice({
5642
5753
  deviceId,
5643
5754
  deviceType: DeviceType3.videoInput
5644
5755
  })
5645
5756
  }
5646
- )) : null, (audioInput == null ? void 0 : audioInput.length) ? /* @__PURE__ */ React44.createElement(
5757
+ )) : null, (audioInput == null ? void 0 : audioInput.length) ? /* @__PURE__ */ React47.createElement(
5647
5758
  DeviceSelector,
5648
5759
  {
5649
5760
  title: shouldShowAudioOutput ? "Microphone" : "Audio",
5650
- icon: /* @__PURE__ */ React44.createElement(MicOnIcon4, null),
5761
+ icon: /* @__PURE__ */ React47.createElement(MicOnIcon4, null),
5651
5762
  devices: audioInput,
5652
5763
  selection: selectedDeviceIDs.audioInput,
5653
5764
  onChange: (deviceId) => updateDevice({
@@ -5655,11 +5766,11 @@ var Settings = ({ setHide }) => {
5655
5766
  deviceType: DeviceType3.audioInput
5656
5767
  })
5657
5768
  }
5658
- ) : null, (audioOutputFiltered == null ? void 0 : audioOutputFiltered.length) && shouldShowAudioOutput ? /* @__PURE__ */ React44.createElement(
5769
+ ) : null, (audioOutputFiltered == null ? void 0 : audioOutputFiltered.length) && shouldShowAudioOutput ? /* @__PURE__ */ React47.createElement(
5659
5770
  DeviceSelector,
5660
5771
  {
5661
5772
  title: "Speaker",
5662
- icon: /* @__PURE__ */ React44.createElement(SpeakerIcon2, null),
5773
+ icon: /* @__PURE__ */ React47.createElement(SpeakerIcon2, null),
5663
5774
  devices: audioOutput,
5664
5775
  selection: selectedDeviceIDs.audioOutput,
5665
5776
  onChange: (deviceId) => updateDevice({
@@ -5667,15 +5778,15 @@ var Settings = ({ setHide }) => {
5667
5778
  deviceType: DeviceType3.audioOutput
5668
5779
  })
5669
5780
  },
5670
- /* @__PURE__ */ React44.createElement(TestAudio, { id: selectedDeviceIDs.audioOutput })
5781
+ /* @__PURE__ */ React47.createElement(TestAudio, { id: selectedDeviceIDs.audioOutput })
5671
5782
  ) : null);
5672
5783
  };
5673
5784
  var DeviceSelector = ({ title, devices, selection, onChange, icon, children = null }) => {
5674
5785
  var _a7, _b7;
5675
5786
  const [open, setOpen] = useState14(false);
5676
5787
  const selectionBg = useDropdownSelection();
5677
- const ref = useRef6(null);
5678
- return /* @__PURE__ */ React44.createElement(Box, { css: { mb: "$10" } }, /* @__PURE__ */ React44.createElement(Text, { css: { mb: "$4" } }, title), /* @__PURE__ */ React44.createElement(
5788
+ const ref = useRef7(null);
5789
+ return /* @__PURE__ */ React47.createElement(Box, { css: { mb: "$10" } }, /* @__PURE__ */ React47.createElement(Text, { css: { mb: "$4" } }, title), /* @__PURE__ */ React47.createElement(
5679
5790
  Flex,
5680
5791
  {
5681
5792
  align: "center",
@@ -5687,7 +5798,7 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5687
5798
  }
5688
5799
  }
5689
5800
  },
5690
- /* @__PURE__ */ React44.createElement(
5801
+ /* @__PURE__ */ React47.createElement(
5691
5802
  Box,
5692
5803
  {
5693
5804
  css: {
@@ -5701,7 +5812,7 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5701
5812
  }
5702
5813
  }
5703
5814
  },
5704
- /* @__PURE__ */ React44.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React44.createElement(
5815
+ /* @__PURE__ */ React47.createElement(Dropdown.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React47.createElement(
5705
5816
  DialogDropdownTrigger,
5706
5817
  {
5707
5818
  ref,
@@ -5709,8 +5820,8 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5709
5820
  title: ((_a7 = devices.find(({ deviceId }) => deviceId === selection)) == null ? void 0 : _a7.label) || "Select device from list",
5710
5821
  open
5711
5822
  }
5712
- ), /* @__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) => {
5713
- return /* @__PURE__ */ React44.createElement(
5823
+ ), /* @__PURE__ */ React47.createElement(Dropdown.Portal, null, /* @__PURE__ */ React47.createElement(Dropdown.Content, { align: "start", sideOffset: 8, css: { w: (_b7 = ref.current) == null ? void 0 : _b7.clientWidth, zIndex: 1001 } }, devices.map((device) => {
5824
+ return /* @__PURE__ */ React47.createElement(
5714
5825
  Dropdown.Item,
5715
5826
  {
5716
5827
  key: device.label,
@@ -5729,9 +5840,9 @@ var DeviceSelector = ({ title, devices, selection, onChange, icon, children = nu
5729
5840
  };
5730
5841
  var TEST_AUDIO_URL = "https://100ms.live/test-audio.wav";
5731
5842
  var TestAudio = ({ id }) => {
5732
- const audioRef = useRef6(null);
5843
+ const audioRef = useRef7(null);
5733
5844
  const [playing, setPlaying] = useState14(false);
5734
- useEffect20(() => {
5845
+ useEffect22(() => {
5735
5846
  if (audioRef.current && id) {
5736
5847
  try {
5737
5848
  if (typeof audioRef.current.setSinkId !== "undefined") {
@@ -5742,7 +5853,7 @@ var TestAudio = ({ id }) => {
5742
5853
  }
5743
5854
  }
5744
5855
  }, [id]);
5745
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(
5856
+ return /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(
5746
5857
  Button,
5747
5858
  {
5748
5859
  variant: "standard",
@@ -5759,22 +5870,22 @@ var TestAudio = ({ id }) => {
5759
5870
  },
5760
5871
  disabled: playing
5761
5872
  },
5762
- /* @__PURE__ */ React44.createElement(SpeakerIcon2, null),
5873
+ /* @__PURE__ */ React47.createElement(SpeakerIcon2, null),
5763
5874
  "\xA0Test",
5764
5875
  " ",
5765
- /* @__PURE__ */ React44.createElement(Text, { as: "span", css: { display: "none", "@md": { display: "inline" } } }, "\xA0 speaker")
5766
- ), /* @__PURE__ */ React44.createElement("audio", { ref: audioRef, src: TEST_AUDIO_URL, onEnded: () => setPlaying(false), onPlay: () => setPlaying(true) }));
5876
+ /* @__PURE__ */ React47.createElement(Text, { as: "span", css: { display: "none", "@md": { display: "inline" } } }, "\xA0 speaker")
5877
+ ), /* @__PURE__ */ React47.createElement("audio", { ref: audioRef, src: TEST_AUDIO_URL, onEnded: () => setPlaying(false), onPlay: () => setPlaying(true) }));
5767
5878
  };
5768
5879
  var DeviceSettings_default = Settings;
5769
5880
 
5770
5881
  // src/Prebuilt/components/Settings/LayoutSettings.jsx
5771
- import React46, { useCallback as useCallback14 } from "react";
5882
+ import React49, { useCallback as useCallback14 } from "react";
5772
5883
  import { selectIsLocalScreenShared, selectIsLocalVideoEnabled as selectIsLocalVideoEnabled4, useHMSActions as useHMSActions15, useHMSStore as useHMSStore20 } from "@100mslive/react-sdk";
5773
5884
 
5774
5885
  // src/Prebuilt/components/Settings/SwitchWithLabel.jsx
5775
- import React45 from "react";
5886
+ import React48 from "react";
5776
5887
  var SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) => {
5777
- return /* @__PURE__ */ React45.createElement(
5888
+ return /* @__PURE__ */ React48.createElement(
5778
5889
  Flex,
5779
5890
  {
5780
5891
  align: "center",
@@ -5786,7 +5897,7 @@ var SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =>
5786
5897
  display: hide ? "none" : "flex"
5787
5898
  }
5788
5899
  },
5789
- /* @__PURE__ */ React45.createElement(
5900
+ /* @__PURE__ */ React48.createElement(
5790
5901
  Label3,
5791
5902
  {
5792
5903
  htmlFor: id,
@@ -5804,7 +5915,7 @@ var SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =>
5804
5915
  icon,
5805
5916
  label
5806
5917
  ),
5807
- /* @__PURE__ */ React45.createElement(Switch, { id, checked, onCheckedChange: onChange })
5918
+ /* @__PURE__ */ React48.createElement(Switch, { id, checked, onCheckedChange: onChange })
5808
5919
  );
5809
5920
  };
5810
5921
  var SwitchWithLabel_default = SwitchWithLabel;
@@ -5825,7 +5936,7 @@ var LayoutSettings = () => {
5825
5936
  }),
5826
5937
  [hmsActions, isLocalVideoEnabled, isLocalScreenShared, setUISettings]
5827
5938
  );
5828
- 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(
5939
+ return /* @__PURE__ */ React49.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React49.createElement(SwitchWithLabel_default, { label: "Audio Only Mode", id: "audioOnlyMode", checked: isAudioOnly, onChange: toggleIsAudioOnly }), /* @__PURE__ */ React49.createElement(
5829
5940
  SwitchWithLabel_default,
5830
5941
  {
5831
5942
  label: "Mirror Local Video",
@@ -5837,7 +5948,7 @@ var LayoutSettings = () => {
5837
5948
  });
5838
5949
  }
5839
5950
  }
5840
- ), /* @__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(
5951
+ ), /* @__PURE__ */ React49.createElement(Flex, { align: "center", css: { w: "100%", my: "$2", py: "$8", "@md": { display: "none" } } }, /* @__PURE__ */ React49.createElement(Text, { variant: "md", css: { fontWeight: "$semiBold" } }, "Tiles In View(", maxTileCount, ")"), /* @__PURE__ */ React49.createElement(Flex, { justify: "end", css: { flex: "1 1 0" } }, /* @__PURE__ */ React49.createElement(
5841
5952
  Slider,
5842
5953
  {
5843
5954
  step: 1,
@@ -5853,11 +5964,11 @@ var LayoutSettings = () => {
5853
5964
  };
5854
5965
 
5855
5966
  // src/Prebuilt/components/Settings/NotificationSettings.jsx
5856
- import React47 from "react";
5967
+ import React50 from "react";
5857
5968
  import { AlertOctagonIcon, HandIcon as HandIcon2, PeopleAddIcon as PeopleAddIcon2, PeopleRemoveIcon as PeopleRemoveIcon2 } from "@100mslive/react-icons";
5858
5969
  var NotificationItem = ({ type, label, icon, checked }) => {
5859
5970
  const [, setSubscribedNotifications] = useSetSubscribedNotifications(type);
5860
- return /* @__PURE__ */ React47.createElement(
5971
+ return /* @__PURE__ */ React50.createElement(
5861
5972
  SwitchWithLabel_default,
5862
5973
  {
5863
5974
  label,
@@ -5872,36 +5983,36 @@ var NotificationItem = ({ type, label, icon, checked }) => {
5872
5983
  };
5873
5984
  var NotificationSettings = () => {
5874
5985
  const subscribedNotifications = useSubscribedNotifications();
5875
- return /* @__PURE__ */ React47.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React47.createElement(
5986
+ return /* @__PURE__ */ React50.createElement(Box, { className: settingOverflow() }, /* @__PURE__ */ React50.createElement(
5876
5987
  NotificationItem,
5877
5988
  {
5878
5989
  label: "Peer Joined",
5879
5990
  type: SUBSCRIBED_NOTIFICATIONS.PEER_JOINED,
5880
- icon: /* @__PURE__ */ React47.createElement(PeopleAddIcon2, null),
5991
+ icon: /* @__PURE__ */ React50.createElement(PeopleAddIcon2, null),
5881
5992
  checked: subscribedNotifications.PEER_JOINED
5882
5993
  }
5883
- ), /* @__PURE__ */ React47.createElement(
5994
+ ), /* @__PURE__ */ React50.createElement(
5884
5995
  NotificationItem,
5885
5996
  {
5886
5997
  label: "Peer Leave",
5887
5998
  type: SUBSCRIBED_NOTIFICATIONS.PEER_LEFT,
5888
- icon: /* @__PURE__ */ React47.createElement(PeopleRemoveIcon2, null),
5999
+ icon: /* @__PURE__ */ React50.createElement(PeopleRemoveIcon2, null),
5889
6000
  checked: subscribedNotifications.PEER_LEFT
5890
6001
  }
5891
- ), /* @__PURE__ */ React47.createElement(
6002
+ ), /* @__PURE__ */ React50.createElement(
5892
6003
  NotificationItem,
5893
6004
  {
5894
6005
  label: "Hand Raised",
5895
6006
  type: SUBSCRIBED_NOTIFICATIONS.METADATA_UPDATED,
5896
- icon: /* @__PURE__ */ React47.createElement(HandIcon2, null),
6007
+ icon: /* @__PURE__ */ React50.createElement(HandIcon2, null),
5897
6008
  checked: subscribedNotifications.METADATA_UPDATED
5898
6009
  }
5899
- ), /* @__PURE__ */ React47.createElement(
6010
+ ), /* @__PURE__ */ React50.createElement(
5900
6011
  NotificationItem,
5901
6012
  {
5902
6013
  label: "Error",
5903
6014
  type: SUBSCRIBED_NOTIFICATIONS.ERROR,
5904
- icon: /* @__PURE__ */ React47.createElement(AlertOctagonIcon, null),
6015
+ icon: /* @__PURE__ */ React50.createElement(AlertOctagonIcon, null),
5905
6016
  checked: subscribedNotifications.ERROR
5906
6017
  }
5907
6018
  ));
@@ -5943,7 +6054,7 @@ var settingsList = [
5943
6054
  ];
5944
6055
 
5945
6056
  // src/Prebuilt/components/Settings/SettingsModal.jsx
5946
- var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ */ React48.createElement(React48.Fragment, null) }) => {
6057
+ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ */ React51.createElement(React51.Fragment, null) }) => {
5947
6058
  const mediaQueryLg = config.media.md;
5948
6059
  const isMobile = useMedia4(mediaQueryLg);
5949
6060
  const [showSetting, setShowSetting] = useState15(
@@ -5953,7 +6064,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5953
6064
  (key) => (hide) => setShowSetting((prev) => __spreadProps(__spreadValues({}, prev), { [key]: !hide })),
5954
6065
  [setShowSetting]
5955
6066
  );
5956
- useEffect21(() => {
6067
+ useEffect23(() => {
5957
6068
  if (screenType === "hls_live_streaming") {
5958
6069
  hideSettingByTabName("layout")(true);
5959
6070
  }
@@ -5965,7 +6076,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5965
6076
  const resetSelection = useCallback15(() => {
5966
6077
  setSelection("");
5967
6078
  }, []);
5968
- useEffect21(() => {
6079
+ useEffect23(() => {
5969
6080
  var _a7;
5970
6081
  if (isMobile) {
5971
6082
  setSelection("");
@@ -5974,7 +6085,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5974
6085
  setSelection(firstNotHiddenTabName);
5975
6086
  }
5976
6087
  }, [isMobile, showSetting]);
5977
- return isMobile ? /* @__PURE__ */ React48.createElement(
6088
+ return isMobile ? /* @__PURE__ */ React51.createElement(
5978
6089
  MobileSettingModal,
5979
6090
  {
5980
6091
  open,
@@ -5986,7 +6097,7 @@ var SettingsModal = ({ open, onOpenChange, screenType, children = /* @__PURE__ *
5986
6097
  resetSelection,
5987
6098
  children
5988
6099
  }
5989
- ) : /* @__PURE__ */ React48.createElement(
6100
+ ) : /* @__PURE__ */ React51.createElement(
5990
6101
  DesktopSettingModal,
5991
6102
  {
5992
6103
  open,
@@ -6008,9 +6119,9 @@ var MobileSettingModal = ({
6008
6119
  showSetting,
6009
6120
  hideSettingByTabName,
6010
6121
  resetSelection,
6011
- children = /* @__PURE__ */ React48.createElement(React48.Fragment, null)
6122
+ children = /* @__PURE__ */ React51.createElement(React51.Fragment, null)
6012
6123
  }) => {
6013
- return /* @__PURE__ */ React48.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React48.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React48.createElement(
6124
+ return /* @__PURE__ */ React51.createElement(Sheet.Root, { open, onOpenChange }, /* @__PURE__ */ React51.createElement(Sheet.Trigger, { asChild: true }, children), /* @__PURE__ */ React51.createElement(
6014
6125
  Sheet.Content,
6015
6126
  {
6016
6127
  css: {
@@ -6018,9 +6129,9 @@ var MobileSettingModal = ({
6018
6129
  overflowY: "auto"
6019
6130
  }
6020
6131
  },
6021
- /* @__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))))),
6022
- /* @__PURE__ */ React48.createElement(HorizontalDivider, null),
6023
- !selection ? /* @__PURE__ */ React48.createElement(
6132
+ /* @__PURE__ */ React51.createElement(Sheet.Title, { css: { py: "$10", px: "$8", alignItems: "center" } }, /* @__PURE__ */ React51.createElement(Flex, { direction: "row", justify: "between", css: { w: "100%" } }, !selection ? /* @__PURE__ */ React51.createElement(Text, { variant: "h6", css: { display: "flex" } }, "Settings") : /* @__PURE__ */ React51.createElement(Text, { variant: "h6", css: { display: "flex" } }, /* @__PURE__ */ React51.createElement(Box, { as: "span", css: { r: "$round", mr: "$2" }, onClick: resetSelection }, /* @__PURE__ */ React51.createElement(ChevronLeftIcon, null)), (selection == null ? void 0 : selection.charAt(0).toUpperCase()) + selection.slice(1)), /* @__PURE__ */ React51.createElement(Sheet.Close, null, /* @__PURE__ */ React51.createElement(IconButton, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React51.createElement(CrossIcon6, null))))),
6133
+ /* @__PURE__ */ React51.createElement(HorizontalDivider, null),
6134
+ !selection ? /* @__PURE__ */ React51.createElement(
6024
6135
  Flex,
6025
6136
  {
6026
6137
  direction: "column",
@@ -6031,7 +6142,7 @@ var MobileSettingModal = ({
6031
6142
  }
6032
6143
  },
6033
6144
  settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ icon: Icon2, tabName, title }) => {
6034
- return /* @__PURE__ */ React48.createElement(
6145
+ return /* @__PURE__ */ React51.createElement(
6035
6146
  Box,
6036
6147
  {
6037
6148
  key: tabName,
@@ -6061,18 +6172,18 @@ var MobileSettingModal = ({
6061
6172
  borderBottom: "1px solid $border_default"
6062
6173
  }
6063
6174
  },
6064
- /* @__PURE__ */ React48.createElement(Icon2, null),
6175
+ /* @__PURE__ */ React51.createElement(Icon2, null),
6065
6176
  title
6066
6177
  );
6067
6178
  })
6068
- ) : /* @__PURE__ */ React48.createElement(
6179
+ ) : /* @__PURE__ */ React51.createElement(
6069
6180
  Box,
6070
6181
  {
6071
6182
  direction: "column",
6072
6183
  css: { overflowY: "scroll", px: "$8", py: "$10", maxHeight: "70vh", overflowX: "hidden" }
6073
6184
  },
6074
6185
  settingsList.filter(({ tabName }) => showSetting[tabName] && selection === tabName).map(({ content: Content10, title, tabName }) => {
6075
- return /* @__PURE__ */ React48.createElement(Content10, { key: title, setHide: hideSettingByTabName(tabName) });
6186
+ return /* @__PURE__ */ React51.createElement(Content10, { key: title, setHide: hideSettingByTabName(tabName) });
6076
6187
  })
6077
6188
  )
6078
6189
  ));
@@ -6085,9 +6196,9 @@ var DesktopSettingModal = ({
6085
6196
  showSetting,
6086
6197
  hideSettingByTabName,
6087
6198
  resetSelection,
6088
- children = /* @__PURE__ */ React48.createElement(React48.Fragment, null)
6199
+ children = /* @__PURE__ */ React51.createElement(React51.Fragment, null)
6089
6200
  }) => {
6090
- 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(
6201
+ return /* @__PURE__ */ React51.createElement(Dialog.Root, { open, onOpenChange }, /* @__PURE__ */ React51.createElement(Dialog.Trigger, { asChild: true }, children), /* @__PURE__ */ React51.createElement(PrebuiltDialogPortal, null, /* @__PURE__ */ React51.createElement(Dialog.Overlay, null), /* @__PURE__ */ React51.createElement(
6091
6202
  Dialog.Content,
6092
6203
  {
6093
6204
  css: {
@@ -6097,7 +6208,7 @@ var DesktopSettingModal = ({
6097
6208
  r: "$4"
6098
6209
  }
6099
6210
  },
6100
- /* @__PURE__ */ React48.createElement(
6211
+ /* @__PURE__ */ React51.createElement(
6101
6212
  Tabs.Root,
6102
6213
  {
6103
6214
  value: selection,
@@ -6105,7 +6216,7 @@ var DesktopSettingModal = ({
6105
6216
  onValueChange: setSelection,
6106
6217
  css: { size: "100%", position: "relative" }
6107
6218
  },
6108
- /* @__PURE__ */ React48.createElement(
6219
+ /* @__PURE__ */ React51.createElement(
6109
6220
  Tabs.List,
6110
6221
  {
6111
6222
  css: {
@@ -6117,12 +6228,12 @@ var DesktopSettingModal = ({
6117
6228
  borderBottomLeftRadius: "$4"
6118
6229
  }
6119
6230
  },
6120
- /* @__PURE__ */ React48.createElement(Text, { variant: "h5" }, "Settings "),
6121
- /* @__PURE__ */ React48.createElement(Flex, { direction: "column", css: { mx: 0, overflowY: "auto", pt: "$10" } }, settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ icon: Icon2, tabName, title }) => {
6122
- return /* @__PURE__ */ React48.createElement(Tabs.Trigger, { key: tabName, value: tabName, css: { gap: "$8" } }, /* @__PURE__ */ React48.createElement(Icon2, null), title);
6231
+ /* @__PURE__ */ React51.createElement(Text, { variant: "h5" }, "Settings "),
6232
+ /* @__PURE__ */ React51.createElement(Flex, { direction: "column", css: { mx: 0, overflowY: "auto", pt: "$10" } }, settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ icon: Icon2, tabName, title }) => {
6233
+ return /* @__PURE__ */ React51.createElement(Tabs.Trigger, { key: tabName, value: tabName, css: { gap: "$8" } }, /* @__PURE__ */ React51.createElement(Icon2, null), title);
6123
6234
  }))
6124
6235
  ),
6125
- selection && /* @__PURE__ */ React48.createElement(
6236
+ selection && /* @__PURE__ */ React51.createElement(
6126
6237
  Flex,
6127
6238
  {
6128
6239
  direction: "column",
@@ -6133,731 +6244,21 @@ var DesktopSettingModal = ({
6133
6244
  }
6134
6245
  },
6135
6246
  settingsList.filter(({ tabName }) => showSetting[tabName]).map(({ content: Content10, title, tabName }) => {
6136
- 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) }));
6247
+ return /* @__PURE__ */ React51.createElement(Tabs.Content, { key: tabName, value: tabName, className: settingContent() }, /* @__PURE__ */ React51.createElement(SettingsContentHeader, { onBack: resetSelection, isMobile: false }, title), /* @__PURE__ */ React51.createElement(Content10, { setHide: hideSettingByTabName(tabName) }));
6137
6248
  })
6138
6249
  )
6139
6250
  ),
6140
- /* @__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)))
6251
+ /* @__PURE__ */ React51.createElement(Dialog.Close, { css: { position: "absolute", right: "$10", top: "$10" } }, /* @__PURE__ */ React51.createElement(IconButton, { as: "div", "data-testid": "dialog_cross_icon" }, /* @__PURE__ */ React51.createElement(CrossIcon6, null)))
6141
6252
  )));
6142
6253
  };
6143
6254
  var SettingsContentHeader = ({ children, isMobile, onBack }) => {
6144
- 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);
6255
+ return /* @__PURE__ */ React51.createElement(Text, { variant: "h6", css: { mb: "$12", display: "flex", alignItems: "center" } }, isMobile && /* @__PURE__ */ React51.createElement(Box, { as: "span", css: { bg: "$surface_bright", mr: "$4", r: "$round", p: "$2" }, onClick: onBack }, /* @__PURE__ */ React51.createElement(ChevronLeftIcon, null)), children);
6145
6256
  };
6146
6257
  var SettingsModal_default = SettingsModal;
6147
6258
 
6148
- // src/Prebuilt/components/VideoTile.jsx
6149
- import React53, { Fragment as Fragment5, useCallback as useCallback16, useEffect as useEffect23, useMemo as useMemo3, useRef as useRef7, useState as useState18 } from "react";
6150
- import { useMedia as useMedia8 } from "react-use";
6151
- import {
6152
- selectAudioTrackByPeerID as selectAudioTrackByPeerID2,
6153
- selectHasPeerHandRaised as selectHasPeerHandRaised3,
6154
- selectIsPeerAudioEnabled,
6155
- selectLocalPeerID as selectLocalPeerID5,
6156
- selectPeerMetadata as selectPeerMetadata2,
6157
- selectPeerNameByID,
6158
- selectSessionStore as selectSessionStore3,
6159
- selectTrackAudioByID,
6160
- selectVideoTrackByID as selectVideoTrackByID4,
6161
- selectVideoTrackByPeerID as selectVideoTrackByPeerID3,
6162
- useHMSStore as useHMSStore24,
6163
- useHMSVanillaStore as useHMSVanillaStore6
6164
- } from "@100mslive/react-sdk";
6165
- import { BrbTileIcon, HandIcon as HandIcon3, MicOffIcon as MicOffIcon3 } from "@100mslive/react-icons";
6166
-
6167
- // src/Prebuilt/components/TileMenu/TileMenu.jsx
6168
- import React52, { useState as useState17 } from "react";
6169
- import { useMedia as useMedia7 } from "react-use";
6170
- import {
6171
- selectLocalPeerID as selectLocalPeerID4,
6172
- selectPeerByID as selectPeerByID2,
6173
- selectPermissions as selectPermissions3,
6174
- selectTrackByID as selectTrackByID3,
6175
- selectVideoTrackByPeerID as selectVideoTrackByPeerID2,
6176
- useHMSStore as useHMSStore23,
6177
- useRemoteAVToggle as useRemoteAVToggle2
6178
- } from "@100mslive/react-sdk";
6179
- import { CrossIcon as CrossIcon8, VerticalMenuIcon as VerticalMenuIcon2 } from "@100mslive/react-icons";
6180
-
6181
- // src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx
6182
- import React50, { useState as useState16 } from "react";
6183
- import { useMedia as useMedia5 } from "react-use";
6184
- import { selectLocalPeerName, useHMSActions as useHMSActions16, useHMSStore as useHMSStore21 } from "@100mslive/react-sdk";
6185
-
6186
- // src/Prebuilt/components/MoreSettings/ChangeNameContent.jsx
6187
- import React49 from "react";
6188
- import { ChevronLeftIcon as ChevronLeftIcon2, CrossIcon as CrossIcon7 } from "@100mslive/react-icons";
6189
- var ChangeNameContent = ({
6190
- changeName,
6191
- setCurrentName,
6192
- currentName,
6193
- localPeerName,
6194
- isMobile,
6195
- onExit,
6196
- onBackClick
6197
- }) => {
6198
- return /* @__PURE__ */ React49.createElement(
6199
- "form",
6200
- {
6201
- onSubmit: (e) => __async(void 0, null, function* () {
6202
- e.preventDefault();
6203
- yield changeName();
6204
- })
6205
- },
6206
- /* @__PURE__ */ React49.createElement(
6207
- Text,
6208
- {
6209
- variant: isMobile ? "md" : "lg",
6210
- css: {
6211
- color: "$on_surface_high",
6212
- fontWeight: "$semiBold",
6213
- display: "flex",
6214
- pb: "$4",
6215
- "@md": { px: "$8", borderBottom: "1px solid $border_default" }
6216
- }
6217
- },
6218
- isMobile ? /* @__PURE__ */ React49.createElement(ChevronLeftIcon2, { onClick: onBackClick, style: { marginRight: "0.5rem" } }) : null,
6219
- "Change Name",
6220
- /* @__PURE__ */ React49.createElement(
6221
- Box,
6222
- {
6223
- css: { color: "inherit", ml: "auto", "&:hover": { color: "$on_surface_medium", cursor: "pointer" } },
6224
- onClick: onExit
6225
- },
6226
- /* @__PURE__ */ React49.createElement(CrossIcon7, null)
6227
- )
6228
- ),
6229
- /* @__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."),
6230
- /* @__PURE__ */ React49.createElement(Flex, { justify: "center", align: "center", css: { my: "$8", w: "100%", "@md": { px: "$8" } } }, /* @__PURE__ */ React49.createElement(
6231
- Input,
6232
- {
6233
- css: { width: "100%", bg: "$surface_default" },
6234
- value: currentName,
6235
- type: isMobile ? "search" : "text",
6236
- onChange: (e) => {
6237
- setCurrentName(e.target.value);
6238
- },
6239
- autoComplete: "name",
6240
- required: true,
6241
- "data-testid": "change_name_field",
6242
- onKeyDown: (e) => __async(void 0, null, function* () {
6243
- if (e.key === "Enter" && currentName.trim().length > 0 && currentName !== localPeerName) {
6244
- e.preventDefault();
6245
- if (isMobile) {
6246
- return;
6247
- }
6248
- changeName();
6249
- }
6250
- })
6251
- }
6252
- )),
6253
- /* @__PURE__ */ React49.createElement(
6254
- Flex,
6255
- {
6256
- justify: "between",
6257
- align: "center",
6258
- css: {
6259
- width: "100%",
6260
- gap: "$md",
6261
- mt: "$10",
6262
- "@md": { px: "$4" }
6263
- }
6264
- },
6265
- isMobile ? null : /* @__PURE__ */ React49.createElement(
6266
- Button,
6267
- {
6268
- variant: "standard",
6269
- css: { w: "100%" },
6270
- outlined: true,
6271
- type: "submit",
6272
- disabled: !localPeerName,
6273
- onClick: onExit
6274
- },
6275
- "Cancel"
6276
- ),
6277
- /* @__PURE__ */ React49.createElement(
6278
- Button,
6279
- {
6280
- variant: "primary",
6281
- css: { width: "100%" },
6282
- type: "submit",
6283
- disabled: !currentName.trim() || currentName.trim() === localPeerName,
6284
- "data-testid": "popup_change_btn"
6285
- },
6286
- "Change"
6287
- )
6288
- )
6289
- );
6290
- };
6291
-
6292
- // src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx
6293
- var ChangeNameModal = ({ onOpenChange, openParentSheet = null }) => {
6294
- const [previewPreference, setPreviewPreference] = useUserPreferences(UserPreferencesKeys.PREVIEW);
6295
- const hmsActions = useHMSActions16();
6296
- const localPeerName = useHMSStore21(selectLocalPeerName);
6297
- const [currentName, setCurrentName] = useState16(localPeerName);
6298
- const isMobile = useMedia5(config.media.md);
6299
- const changeName = () => __async(void 0, null, function* () {
6300
- const name = currentName.trim();
6301
- if (!name || name === localPeerName) {
6302
- return;
6303
- }
6304
- try {
6305
- yield hmsActions.changeName(name);
6306
- setPreviewPreference(__spreadProps(__spreadValues({}, previewPreference || {}), {
6307
- name
6308
- }));
6309
- } catch (error) {
6310
- console.error("failed to update name", error);
6311
- ToastManager.addToast({ title: error.message });
6312
- } finally {
6313
- onOpenChange(false);
6314
- }
6315
- });
6316
- const props = {
6317
- changeName,
6318
- setCurrentName,
6319
- currentName,
6320
- localPeerName,
6321
- isMobile,
6322
- onExit: () => onOpenChange(false),
6323
- onBackClick: () => {
6324
- onOpenChange(false);
6325
- openParentSheet();
6326
- }
6327
- };
6328
- if (isMobile) {
6329
- 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))));
6330
- }
6331
- 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)))));
6332
- };
6333
-
6334
- // src/Prebuilt/components/TileMenu/TileMenuContent.jsx
6335
- import React51, { Fragment as Fragment4 } from "react";
6336
- import { useMedia as useMedia6 } from "react-use";
6337
- import {
6338
- selectPermissions as selectPermissions2,
6339
- selectSessionStore as selectSessionStore2,
6340
- selectTrackByID as selectTrackByID2,
6341
- useCustomEvent as useCustomEvent2,
6342
- useHMSActions as useHMSActions17,
6343
- useHMSStore as useHMSStore22,
6344
- useRemoteAVToggle
6345
- } from "@100mslive/react-sdk";
6346
- import {
6347
- MicOffIcon as MicOffIcon2,
6348
- MicOnIcon as MicOnIcon5,
6349
- PencilIcon,
6350
- PinIcon as PinIcon2,
6351
- RemoveUserIcon,
6352
- ShareScreenIcon as ShareScreenIcon2,
6353
- ShrinkIcon,
6354
- SpeakerIcon as SpeakerIcon3,
6355
- StarIcon,
6356
- VideoOffIcon as VideoOffIcon2,
6357
- VideoOnIcon as VideoOnIcon3
6358
- } from "@100mslive/react-icons";
6359
- var isSameTile = ({ trackId, videoTrackID, audioTrackID }) => trackId && (videoTrackID && videoTrackID === trackId || audioTrackID && audioTrackID === trackId);
6360
- var spacingCSS = { "@md": { my: "$8", fontWeight: "$semiBold", fontSize: "sm" } };
6361
- var SpotlightActions = ({
6362
- peerId,
6363
- onSpotLightClick = () => {
6364
- return;
6365
- }
6366
- }) => {
6367
- const hmsActions = useHMSActions17();
6368
- const spotlightPeerId = useHMSStore22(selectSessionStore2(SESSION_STORE_KEY.SPOTLIGHT));
6369
- const isTileSpotlighted = spotlightPeerId === peerId;
6370
- const setSpotlightPeerId = (peer) => hmsActions.sessionStore.set(SESSION_STORE_KEY.SPOTLIGHT, peer).catch((err) => ToastManager.addToast({ title: err.description }));
6371
- return /* @__PURE__ */ React51.createElement(
6372
- StyledMenuTile.ItemButton,
6373
- {
6374
- css: spacingCSS,
6375
- onClick: () => {
6376
- if (isTileSpotlighted) {
6377
- setSpotlightPeerId();
6378
- } else {
6379
- setSpotlightPeerId(peerId);
6380
- }
6381
- onSpotLightClick();
6382
- }
6383
- },
6384
- /* @__PURE__ */ React51.createElement(StarIcon, { height: 20, width: 20 }),
6385
- /* @__PURE__ */ React51.createElement("span", null, isTileSpotlighted ? "Remove from Spotlight" : "Spotlight Tile for everyone")
6386
- );
6387
- };
6388
- var PinActions = ({ audioTrackID, videoTrackID }) => {
6389
- const [pinnedTrackId, setPinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
6390
- const isTilePinned = isSameTile({
6391
- trackId: pinnedTrackId,
6392
- videoTrackID,
6393
- audioTrackID
6394
- });
6395
- return /* @__PURE__ */ React51.createElement(React51.Fragment, null, /* @__PURE__ */ React51.createElement(
6396
- StyledMenuTile.ItemButton,
6397
- {
6398
- css: spacingCSS,
6399
- onClick: () => isTilePinned ? setPinnedTrackId() : setPinnedTrackId(videoTrackID || audioTrackID)
6400
- },
6401
- /* @__PURE__ */ React51.createElement(PinIcon2, { height: 20, width: 20 }),
6402
- /* @__PURE__ */ React51.createElement("span", null, isTilePinned ? "Unpin" : "Pin", " Tile for myself")
6403
- ));
6404
- };
6405
- var MinimiseInset = () => {
6406
- const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);
6407
- 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")));
6408
- };
6409
- var SimulcastLayers = ({ trackId }) => {
6410
- var _a7;
6411
- const track = useHMSStore22(selectTrackByID2(trackId));
6412
- const actions = useHMSActions17();
6413
- const bg = useDropdownSelection();
6414
- if (!((_a7 = track == null ? void 0 : track.layerDefinitions) == null ? void 0 : _a7.length) || track.degraded || !track.enabled) {
6415
- return null;
6416
- }
6417
- const currentLayer = track.layerDefinitions.find((layer) => layer.layer === track.layer);
6418
- 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) => {
6419
- return /* @__PURE__ */ React51.createElement(
6420
- StyledMenuTile.ItemButton,
6421
- {
6422
- key: layer.layer,
6423
- onClick: () => __async(void 0, null, function* () {
6424
- yield actions.setPreferredLayer(trackId, layer.layer);
6425
- }),
6426
- css: {
6427
- justifyContent: "space-between",
6428
- bg: track.preferredLayer === layer.layer ? bg : void 0,
6429
- "&:hover": {
6430
- bg: track.preferredLayer === layer.layer ? bg : void 0
6431
- }
6432
- }
6433
- },
6434
- /* @__PURE__ */ React51.createElement(
6435
- Text,
6436
- {
6437
- as: "span",
6438
- css: {
6439
- textTransform: "capitalize",
6440
- mr: "$2",
6441
- fontWeight: track.preferredLayer === layer.layer ? "$semiBold" : "$regular",
6442
- color: track.preferredLayer === layer.layer ? "$on_primary_high" : "$on_surface_high"
6443
- }
6444
- },
6445
- layer.layer
6446
- ),
6447
- /* @__PURE__ */ React51.createElement(
6448
- Text,
6449
- {
6450
- as: "span",
6451
- variant: "xs",
6452
- css: {
6453
- color: track.preferredLayer === layer.layer ? "$on_primary_high" : "$on_surface_high"
6454
- }
6455
- },
6456
- layer.resolution.width,
6457
- "x",
6458
- layer.resolution.height
6459
- )
6460
- );
6461
- }), /* @__PURE__ */ React51.createElement(StyledMenuTile.ItemButton, null, /* @__PURE__ */ React51.createElement(Text, { as: "span", variant: "xs", css: { color: "$on_surface_medium" } }, "Currently streaming:", /* @__PURE__ */ React51.createElement(
6462
- Text,
6463
- {
6464
- as: "span",
6465
- variant: "xs",
6466
- css: {
6467
- fontWeight: "$semiBold",
6468
- textTransform: "capitalize",
6469
- color: "$on_surface_medium",
6470
- ml: "$2"
6471
- }
6472
- },
6473
- currentLayer ? /* @__PURE__ */ React51.createElement(React51.Fragment, null, track.layer, " (", currentLayer.resolution.width, "x", currentLayer.resolution.height, ")") : "-"
6474
- ))));
6475
- };
6476
- var TileMenuContent = (props) => {
6477
- const actions = useHMSActions17();
6478
- const { removeOthers } = useHMSStore22(selectPermissions2);
6479
- const {
6480
- videoTrackID,
6481
- audioTrackID,
6482
- isLocal,
6483
- isScreenshare,
6484
- showSpotlight,
6485
- showPinAction,
6486
- peerID,
6487
- canMinimise,
6488
- closeSheetOnClick = () => {
6489
- return;
6490
- },
6491
- openNameChangeModal = () => {
6492
- return;
6493
- }
6494
- } = props;
6495
- const { isAudioEnabled, isVideoEnabled, setVolume, toggleAudio, toggleVideo, volume } = useRemoteAVToggle(
6496
- audioTrackID,
6497
- videoTrackID
6498
- );
6499
- const { sendEvent } = useCustomEvent2({
6500
- type: REMOTE_STOP_SCREENSHARE_TYPE
6501
- });
6502
- const isMobile = useMedia6(config.media.md);
6503
- 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(
6504
- StyledMenuTile.ItemButton,
6505
- {
6506
- onClick: () => {
6507
- openNameChangeModal();
6508
- closeSheetOnClick();
6509
- }
6510
- },
6511
- /* @__PURE__ */ React51.createElement(PencilIcon, { height: 20, width: 20 }),
6512
- /* @__PURE__ */ React51.createElement(Text, { variant: "sm", css: { "@md": { fontWeight: "$semiBold" }, c: "$on_surface_high" } }, "Change Name")
6513
- )) : /* @__PURE__ */ React51.createElement(React51.Fragment, null, toggleVideo ? /* @__PURE__ */ React51.createElement(
6514
- StyledMenuTile.ItemButton,
6515
- {
6516
- css: spacingCSS,
6517
- onClick: () => {
6518
- toggleVideo();
6519
- closeSheetOnClick();
6520
- },
6521
- "data-testid": isVideoEnabled ? "mute_video_participant_btn" : "unmute_video_participant_btn"
6522
- },
6523
- isVideoEnabled ? /* @__PURE__ */ React51.createElement(VideoOnIcon3, { height: 20, width: 20 }) : /* @__PURE__ */ React51.createElement(VideoOffIcon2, { height: 20, width: 20 }),
6524
- /* @__PURE__ */ React51.createElement("span", null, isVideoEnabled ? "Mute" : "Request Unmute")
6525
- ) : null, toggleAudio ? /* @__PURE__ */ React51.createElement(
6526
- StyledMenuTile.ItemButton,
6527
- {
6528
- css: spacingCSS,
6529
- onClick: () => {
6530
- toggleAudio();
6531
- closeSheetOnClick();
6532
- },
6533
- "data-testid": isVideoEnabled ? "mute_audio_participant_btn" : "unmute_audio_participant_btn"
6534
- },
6535
- isAudioEnabled ? /* @__PURE__ */ React51.createElement(MicOnIcon5, { height: 20, width: 20 }) : /* @__PURE__ */ React51.createElement(MicOffIcon2, { height: 20, width: 20 }),
6536
- /* @__PURE__ */ React51.createElement("span", null, isAudioEnabled ? "Mute" : "Request Unmute")
6537
- ) : 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(
6538
- StyledMenuTile.RemoveItem,
6539
- {
6540
- css: __spreadProps(__spreadValues({}, spacingCSS), { borderTop: "none" }),
6541
- onClick: () => __async(void 0, null, function* () {
6542
- try {
6543
- yield actions.removePeer(peerID, "");
6544
- } catch (error) {
6545
- }
6546
- closeSheetOnClick();
6547
- }),
6548
- "data-testid": "remove_participant_btn"
6549
- },
6550
- /* @__PURE__ */ React51.createElement(RemoveUserIcon, { height: 20, width: 20 }),
6551
- /* @__PURE__ */ React51.createElement("span", null, "Remove Participant")
6552
- ) : null, removeOthers && isScreenshare ? /* @__PURE__ */ React51.createElement(
6553
- StyledMenuTile.RemoveItem,
6554
- {
6555
- onClick: () => {
6556
- sendEvent({});
6557
- closeSheetOnClick();
6558
- },
6559
- css: spacingCSS
6560
- },
6561
- /* @__PURE__ */ React51.createElement(ShareScreenIcon2, { height: 20, width: 20 }),
6562
- /* @__PURE__ */ React51.createElement("span", null, "Stop Screenshare")
6563
- ) : null);
6564
- };
6565
-
6566
- // src/Prebuilt/components/hooks/useDropdownList.jsx
6567
- import { useEffect as useEffect22 } from "react";
6568
- var useDropdownList = ({ name, open }) => {
6569
- const [dropdownList = [], setDropdownList] = useSetAppDataByKey(APP_DATA.dropdownList);
6570
- useEffect22(() => {
6571
- if (open) {
6572
- if (!dropdownList.includes(name)) {
6573
- setDropdownList([...dropdownList, name]);
6574
- }
6575
- } else {
6576
- const index = dropdownList.indexOf(name);
6577
- if (index >= 0) {
6578
- const newDropdownList = [...dropdownList];
6579
- newDropdownList.splice(index, 1);
6580
- setDropdownList(newDropdownList);
6581
- }
6582
- }
6583
- }, [open, name]);
6584
- };
6585
-
6586
- // src/Prebuilt/components/TileMenu/TileMenu.jsx
6587
- var TileMenu = ({
6588
- audioTrackID,
6589
- videoTrackID,
6590
- peerID,
6591
- isScreenshare = false,
6592
- canMinimise,
6593
- enableSpotlightingPeer = true
6594
- }) => {
6595
- var _a7, _b7;
6596
- const [open, setOpen] = useState17(false);
6597
- const { theme: theme2 } = useTheme();
6598
- const localPeerID = useHMSStore23(selectLocalPeerID4);
6599
- const isLocal = localPeerID === peerID;
6600
- const { removeOthers } = useHMSStore23(selectPermissions3);
6601
- const { setVolume, toggleAudio, toggleVideo } = useRemoteAVToggle2(audioTrackID, videoTrackID);
6602
- const showSpotlight = enableSpotlightingPeer;
6603
- const isPrimaryVideoTrack = ((_a7 = useHMSStore23(selectVideoTrackByPeerID2(peerID))) == null ? void 0 : _a7.id) === videoTrackID;
6604
- const showPinAction = audioTrackID || videoTrackID && isPrimaryVideoTrack;
6605
- const track = useHMSStore23(selectTrackByID3(videoTrackID));
6606
- const hideSimulcastLayers = !((_b7 = track == null ? void 0 : track.layerDefinitions) == null ? void 0 : _b7.length) || track.degraded || !track.enabled;
6607
- const isMobile = useMedia7(config.media.md);
6608
- const peer = useHMSStore23(selectPeerByID2(peerID));
6609
- const [showNameChangeModal, setShowNameChangeModal] = useState17(false);
6610
- useDropdownList({ open, name: "TileMenu" });
6611
- if (!(removeOthers || toggleAudio || toggleVideo || setVolume || showPinAction) && hideSimulcastLayers) {
6612
- return null;
6613
- }
6614
- const openNameChangeModal = () => setShowNameChangeModal(true);
6615
- const props = {
6616
- isLocal,
6617
- isScreenshare,
6618
- audioTrackID,
6619
- videoTrackID,
6620
- peerID,
6621
- isPrimaryVideoTrack,
6622
- showSpotlight,
6623
- showPinAction,
6624
- canMinimise,
6625
- openNameChangeModal
6626
- };
6627
- return /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement(StyledMenuTile.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React52.createElement(
6628
- StyledMenuTile.Trigger,
6629
- {
6630
- "data-testid": "participant_menu_btn",
6631
- css: { bg: `${theme2.colors.background_dim.value}A3`, p: "$2", w: "unset", h: "unset" },
6632
- onClick: (e) => e.stopPropagation(),
6633
- className: isMobile ? "__cancel-drag-event" : ""
6634
- },
6635
- /* @__PURE__ */ React52.createElement(VerticalMenuIcon2, { width: 20, height: 20 })
6636
- ), isMobile ? /* @__PURE__ */ React52.createElement(Sheet.Root, { open, onOpenChange: setOpen }, /* @__PURE__ */ React52.createElement(Sheet.Content, { css: { bg: "$surface_dim", pt: "$8" } }, /* @__PURE__ */ React52.createElement(
6637
- Flex,
6638
- {
6639
- css: {
6640
- color: "$on_surface_high",
6641
- display: "flex",
6642
- w: "100%",
6643
- justifyContent: "space-between",
6644
- alignItems: "center",
6645
- px: "$10",
6646
- pb: "$8",
6647
- borderBottom: "1px solid $border_default"
6648
- }
6649
- },
6650
- /* @__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),
6651
- /* @__PURE__ */ React52.createElement(Sheet.Close, { css: { color: "inherit" } }, /* @__PURE__ */ React52.createElement(CrossIcon8, null))
6652
- ), /* @__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 }));
6653
- };
6654
- var TileMenu_default = TileMenu;
6655
-
6656
- // src/Prebuilt/components/peerTileUtils.jsx
6657
- var PEER_NAME_PLACEHOLDER = "peerName";
6658
- var labelMap = /* @__PURE__ */ new Map([
6659
- [[true, "screen"].toString(), "Your Screen"],
6660
- [[true, "regular"].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
6661
- [[false, "screen"].toString(), `${PEER_NAME_PLACEHOLDER}'s Screen`],
6662
- [[false, "regular"].toString(), PEER_NAME_PLACEHOLDER],
6663
- [[true, void 0].toString(), `You (${PEER_NAME_PLACEHOLDER})`],
6664
- [[false, void 0].toString(), `${PEER_NAME_PLACEHOLDER}`]
6665
- ]);
6666
- var getVideoTileLabel = ({ peerName, isLocal, track }) => {
6667
- const isPeerPresent = peerName !== void 0;
6668
- if (!isPeerPresent || !track) {
6669
- return isPeerPresent ? labelMap.get([isLocal, void 0].toString()).replace(PEER_NAME_PLACEHOLDER, peerName) : "";
6670
- }
6671
- const isLocallyMuted = track.volume === 0;
6672
- let label = labelMap.get([isLocal, track.source].toString());
6673
- if (label) {
6674
- label = label.replace(PEER_NAME_PLACEHOLDER, peerName);
6675
- } else {
6676
- label = `${peerName} ${track.source}`;
6677
- }
6678
- return `${label}${isLocallyMuted ? " (Muted for you)" : ""}`;
6679
- };
6680
-
6681
- // src/Prebuilt/components/VideoTile.jsx
6682
- var Tile = ({
6683
- peerId,
6684
- trackId,
6685
- width,
6686
- height,
6687
- objectFit = "cover",
6688
- canMinimise = false,
6689
- isDragabble = false,
6690
- rootCSS = {},
6691
- containerCSS = {},
6692
- enableSpotlightingPeer = true,
6693
- hideParticipantNameOnTile = false,
6694
- roundedVideoTile = true,
6695
- hideAudioMuteOnTile = false,
6696
- hideMetadataOnTile = false
6697
- }) => {
6698
- var _a7, _b7;
6699
- const trackSelector = trackId ? selectVideoTrackByID4(trackId) : selectVideoTrackByPeerID3(peerId);
6700
- const track = useHMSStore24(trackSelector);
6701
- const isMobile = useMedia8(config.media.md);
6702
- const peerName = useHMSStore24(selectPeerNameByID(peerId));
6703
- const audioTrack = useHMSStore24(selectAudioTrackByPeerID2(peerId));
6704
- const localPeerID = useHMSStore24(selectLocalPeerID5);
6705
- const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);
6706
- const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
6707
- const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);
6708
- const isAudioMuted = !useHMSStore24(selectIsPeerAudioEnabled(peerId));
6709
- const isVideoMuted = !(track == null ? void 0 : track.enabled);
6710
- const [isMouseHovered, setIsMouseHovered] = useState18(false);
6711
- const isVideoDegraded = track == null ? void 0 : track.degraded;
6712
- const isLocal = localPeerID === peerId;
6713
- const [pinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
6714
- const pinned = isSameTile({
6715
- trackId: pinnedTrackId,
6716
- videoTrackID: track == null ? void 0 : track.id,
6717
- audioTrackID: audioTrack == null ? void 0 : audioTrack.id
6718
- });
6719
- const spotlighted = useHMSStore24(selectSessionStore3(SESSION_STORE_KEY.SPOTLIGHT)) === peerId;
6720
- const label = getVideoTileLabel({
6721
- peerName,
6722
- track,
6723
- isLocal
6724
- });
6725
- const onHoverHandler = useCallback16((event) => {
6726
- setIsMouseHovered(event.type === "mouseenter");
6727
- }, []);
6728
- const ref = useRef7(null);
6729
- const calculatedHeight = ((_a7 = ref.current) == null ? void 0 : _a7.clientHeight) || "";
6730
- const calculatedWidth = ((_b7 = ref.current) == null ? void 0 : _b7.clientWidth) || "";
6731
- const isTileBigEnoughToShowStats = calculatedHeight >= 180 && calculatedWidth >= 180;
6732
- const avatarSize = useMemo3(() => {
6733
- if (!calculatedWidth || !calculatedHeight) {
6734
- return void 0;
6735
- }
6736
- if (calculatedWidth <= 150 || calculatedHeight <= 150) {
6737
- return "small";
6738
- } else if (calculatedWidth <= 300 || calculatedHeight <= 300) {
6739
- return "medium";
6740
- }
6741
- return "large";
6742
- }, [calculatedWidth, calculatedHeight]);
6743
- return /* @__PURE__ */ React53.createElement(
6744
- StyledVideoTile.Root,
6745
- {
6746
- ref,
6747
- css: __spreadValues({
6748
- width,
6749
- height
6750
- }, rootCSS),
6751
- "data-testid": `participant_tile_${peerName}`
6752
- },
6753
- peerName !== void 0 ? /* @__PURE__ */ React53.createElement(
6754
- StyledVideoTile.Container,
6755
- {
6756
- onMouseEnter: onHoverHandler,
6757
- onMouseLeave: onHoverHandler,
6758
- noRadius: !roundedVideoTile,
6759
- css: containerCSS
6760
- },
6761
- showStatsOnTiles && isTileBigEnoughToShowStats ? /* @__PURE__ */ React53.createElement(VideoTileStats, { audioTrackID: audioTrack == null ? void 0 : audioTrack.id, videoTrackID: track == null ? void 0 : track.id, peerID: peerId, isLocal }) : null,
6762
- /* @__PURE__ */ React53.createElement(
6763
- Video,
6764
- {
6765
- trackId: track == null ? void 0 : track.id,
6766
- attach: isLocal ? void 0 : !isAudioOnly,
6767
- mirror: mirrorLocalVideo && peerId === localPeerID && (track == null ? void 0 : track.source) === "regular" && (track == null ? void 0 : track.facingMode) !== "environment",
6768
- noRadius: !roundedVideoTile,
6769
- "data-testid": "participant_video_tile",
6770
- css: {
6771
- objectFit,
6772
- filter: isVideoDegraded ? "blur($space$2)" : void 0,
6773
- bg: "transparent"
6774
- }
6775
- }
6776
- ),
6777
- isVideoMuted || !isLocal && isAudioOnly ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AvatarContainer, null, /* @__PURE__ */ React53.createElement(Avatar, { name: peerName || "", "data-testid": "participant_avatar_icon", size: avatarSize })) : null,
6778
- !hideAudioMuteOnTile ? isAudioMuted ? /* @__PURE__ */ React53.createElement(
6779
- StyledVideoTile.AudioIndicator,
6780
- {
6781
- "data-testid": "participant_audio_mute_icon",
6782
- size: getAttributeBoxSize(calculatedWidth, calculatedHeight)
6783
- },
6784
- /* @__PURE__ */ React53.createElement(MicOffIcon3, null)
6785
- ) : /* @__PURE__ */ React53.createElement(AudioLevel, { trackId: audioTrack == null ? void 0 : audioTrack.id }) : null,
6786
- isMouseHovered || isDragabble && isMobile ? /* @__PURE__ */ React53.createElement(
6787
- TileMenu_default,
6788
- {
6789
- peerID: peerId,
6790
- audioTrackID: audioTrack == null ? void 0 : audioTrack.id,
6791
- videoTrackID: track == null ? void 0 : track.id,
6792
- canMinimise,
6793
- enableSpotlightingPeer
6794
- }
6795
- ) : null,
6796
- !hideMetadataOnTile && /* @__PURE__ */ React53.createElement(PeerMetadata, { peerId, height: calculatedHeight, width: calculatedWidth }),
6797
- /* @__PURE__ */ React53.createElement(
6798
- TileConnection_default,
6799
- {
6800
- hideLabel: hideParticipantNameOnTile,
6801
- name: label,
6802
- isTile: true,
6803
- peerId,
6804
- width,
6805
- pinned,
6806
- spotlighted
6807
- }
6808
- )
6809
- ) : null
6810
- );
6811
- };
6812
- var heightAnimation = (value) => keyframes({
6813
- "50%": {
6814
- transform: `scale3d(1,${value},1)`
6815
- },
6816
- "100%": {
6817
- transform: `scale3d(1,1,1)`
6818
- }
6819
- });
6820
- var AudioLevelIndicator = ({ trackId, value, delay }) => {
6821
- const vanillaStore = useHMSVanillaStore6();
6822
- const ref = useRef7();
6823
- useEffect23(() => {
6824
- const unsubscribe = vanillaStore.subscribe((audioLevel) => {
6825
- if (ref.current) {
6826
- ref.current.style["animation"] = `${heightAnimation(
6827
- audioLevel ? value : 1
6828
- )} 0.3s cubic-bezier(0.61, 1, 0.88, 1) infinite ${delay}s`;
6829
- }
6830
- }, selectTrackAudioByID(trackId));
6831
- return unsubscribe;
6832
- }, [vanillaStore, trackId, value, delay]);
6833
- return /* @__PURE__ */ React53.createElement(
6834
- Box,
6835
- {
6836
- ref,
6837
- css: {
6838
- w: 4,
6839
- height: 6,
6840
- r: 2,
6841
- bg: "$on_primary_high"
6842
- }
6843
- }
6844
- );
6845
- };
6846
- var AudioLevel = ({ trackId }) => {
6847
- 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 }))));
6848
- };
6849
- var PeerMetadata = ({ peerId, height, width }) => {
6850
- const metaData = useHMSStore24(selectPeerMetadata2(peerId));
6851
- const isBRB = (metaData == null ? void 0 : metaData.isBRBOn) || false;
6852
- const isHandRaised = useHMSStore24(selectHasPeerHandRaised3(peerId));
6853
- return /* @__PURE__ */ React53.createElement(Fragment5, null, isHandRaised ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AttributeBox, { size: getAttributeBoxSize(width, height), "data-testid": "raiseHand_icon_onTile" }, /* @__PURE__ */ React53.createElement(HandIcon3, { width: 24, height: 24 })) : null, isBRB ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AttributeBox, { size: getAttributeBoxSize(width, height), "data-testid": "brb_icon_onTile" }, /* @__PURE__ */ React53.createElement(BrbTileIcon, { width: 22, height: 22 })) : null);
6854
- };
6855
- var VideoTile = React53.memo(Tile);
6856
- var VideoTile_default = VideoTile;
6857
-
6858
6259
  // src/Prebuilt/components/Preview/PreviewForm.tsx
6859
- import React54 from "react";
6860
- import { useMedia as useMedia9 } from "react-use";
6260
+ import React52 from "react";
6261
+ import { useMedia as useMedia5 } from "react-use";
6861
6262
  import { JoinForm_JoinBtnType as JoinForm_JoinBtnType2 } from "@100mslive/types-prebuilt/elements/join_form";
6862
6263
  import { useRecordingStreaming as useRecordingStreaming3 } from "@100mslive/react-sdk";
6863
6264
  import { RadioIcon } from "@100mslive/react-icons";
@@ -6873,18 +6274,18 @@ var PreviewForm = ({
6873
6274
  const formSubmit = (e) => {
6874
6275
  e.preventDefault();
6875
6276
  };
6876
- const isMobile = useMedia9(config.media.md);
6277
+ const isMobile = useMedia5(config.media.md);
6877
6278
  const { isHLSRunning } = useRecordingStreaming3();
6878
6279
  const layout = useRoomLayout();
6879
6280
  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) || {};
6880
6281
  const showGoLive = (joinForm == null ? void 0 : joinForm.join_btn_type) === JoinForm_JoinBtnType2.JOIN_BTN_TYPE_JOIN_AND_GO_LIVE && !isHLSRunning;
6881
- return /* @__PURE__ */ React54.createElement(
6282
+ return /* @__PURE__ */ React52.createElement(
6882
6283
  Form,
6883
6284
  {
6884
6285
  css: { flexDirection: cannotPublishVideo ? "column" : "row", "@md": { flexDirection: "row" } },
6885
6286
  onSubmit: formSubmit
6886
6287
  },
6887
- /* @__PURE__ */ React54.createElement(Flex, { align: "center", css: { gap: "$8", w: "100%" } }, /* @__PURE__ */ React54.createElement(
6288
+ /* @__PURE__ */ React52.createElement(Flex, { align: "center", css: { gap: "$8", w: "100%" } }, /* @__PURE__ */ React52.createElement(
6888
6289
  Input,
6889
6290
  {
6890
6291
  required: true,
@@ -6905,8 +6306,8 @@ var PreviewForm = ({
6905
6306
  }
6906
6307
  }
6907
6308
  }
6908
- ), cannotPublishAudio && cannotPublishVideo && !isMobile ? /* @__PURE__ */ React54.createElement(PreviewSettings, null) : null),
6909
- /* @__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)
6309
+ ), cannotPublishAudio && cannotPublishVideo && !isMobile ? /* @__PURE__ */ React52.createElement(PreviewSettings, null) : null),
6310
+ /* @__PURE__ */ React52.createElement(Button, { type: "submit", icon: true, disabled: !name || !enableJoin, onClick: onJoin }, showGoLive ? /* @__PURE__ */ React52.createElement(RadioIcon, { height: 18, width: 18 }) : null, showGoLive ? joinForm.go_live_btn_label : joinForm.join_btn_label)
6910
6311
  );
6911
6312
  };
6912
6313
  var Form = styled("form", {
@@ -6923,7 +6324,7 @@ var Form = styled("form", {
6923
6324
  var PreviewForm_default = PreviewForm;
6924
6325
 
6925
6326
  // src/Prebuilt/components/Preview/PreviewJoin.tsx
6926
- var VirtualBackground = React55.lazy(() => import("./VirtualBackground-3TI5NA4V.js"));
6327
+ var VirtualBackground = React53.lazy(() => import("./VirtualBackground-UVZJVOA2.js"));
6927
6328
  var getParticipantChipContent = (peerCount = 0) => {
6928
6329
  if (peerCount === 0) {
6929
6330
  return "You are the first to join";
@@ -6944,9 +6345,9 @@ var PreviewJoin = ({
6944
6345
  );
6945
6346
  const { isStreamingOn } = useRecordingStreaming4();
6946
6347
  const authToken = useAuthToken();
6947
- const [name, setName] = useState19(initialName || previewPreference.name);
6348
+ const [name, setName] = useState16(initialName || previewPreference.name);
6948
6349
  const { toggleAudio, toggleVideo } = useAVToggle2();
6949
- const [previewError, setPreviewError] = useState19(false);
6350
+ const [previewError, setPreviewError] = useState16(false);
6950
6351
  const { endpoints } = useHMSPrebuiltContext();
6951
6352
  const { peerCount } = useParticipants();
6952
6353
  const { enableJoin, preview, join } = usePreviewJoin({
@@ -6966,8 +6367,8 @@ var PreviewJoin = ({
6966
6367
  },
6967
6368
  asRole
6968
6369
  });
6969
- const roomState = useHMSStore25(selectRoomState6);
6970
- const savePreferenceAndJoin = useCallback17(() => {
6370
+ const roomState = useHMSStore21(selectRoomState6);
6371
+ const savePreferenceAndJoin = useCallback16(() => {
6971
6372
  setPreviewPreference({
6972
6373
  name
6973
6374
  });
@@ -6976,9 +6377,9 @@ var PreviewJoin = ({
6976
6377
  }, [join, name, setPreviewPreference, onJoin]);
6977
6378
  const roomLayout = useRoomLayout();
6978
6379
  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) || {};
6979
- const localPeer = useHMSStore25(selectLocalPeer);
6980
- const videoTrack = useHMSStore25(selectVideoTrackByID5(localPeer == null ? void 0 : localPeer.videoTrack));
6981
- const isMobile = useMedia10(config.media.md);
6380
+ const localPeer = useHMSStore21(selectLocalPeer);
6381
+ const videoTrack = useHMSStore21(selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack));
6382
+ const isMobile = useMedia6(config.media.md);
6982
6383
  const aspectRatio = (videoTrack == null ? void 0 : videoTrack.width) && (videoTrack == null ? void 0 : videoTrack.height) ? videoTrack.width / videoTrack.height : isMobile ? 9 / 16 : 16 / 9;
6983
6384
  useEffect24(() => {
6984
6385
  if (authToken) {
@@ -6994,29 +6395,29 @@ var PreviewJoin = ({
6994
6395
  setName(initialName);
6995
6396
  }
6996
6397
  }, [initialName]);
6997
- 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(
6398
+ return roomState === HMSRoomState6.Preview ? /* @__PURE__ */ React53.createElement(Container3, { css: { h: "100%", pt: "$10", "@md": { justifyContent: "space-between" } } }, toggleVideo ? null : /* @__PURE__ */ React53.createElement(Box, null), /* @__PURE__ */ React53.createElement(Flex, { direction: "column", justify: "center", css: { w: "100%", maxWidth: "640px" } }, /* @__PURE__ */ React53.createElement(Logo, null), /* @__PURE__ */ React53.createElement(
6998
6399
  Text,
6999
6400
  {
7000
6401
  variant: "h4",
7001
6402
  css: { wordBreak: "break-word", textAlign: "center", mt: "$14", mb: "$4", "@md": { mt: "$8", mb: "$2" } }
7002
6403
  },
7003
6404
  previewHeader.title
7004
- ), /* @__PURE__ */ React55.createElement(
6405
+ ), /* @__PURE__ */ React53.createElement(
7005
6406
  Text,
7006
6407
  {
7007
6408
  css: { c: "$on_surface_medium", my: "0", textAlign: "center", maxWidth: "100%", wordWrap: "break-word" },
7008
6409
  variant: "sm"
7009
6410
  },
7010
6411
  previewHeader.sub_title
7011
- ), /* @__PURE__ */ React55.createElement(Flex, { justify: "center", css: { mt: "$14", "@md": { mt: "$8", mb: "0" }, gap: "$4" } }, isStreamingOn ? /* @__PURE__ */ React55.createElement(
6412
+ ), /* @__PURE__ */ React53.createElement(Flex, { justify: "center", css: { mt: "$14", "@md": { mt: "$8", mb: "0" }, gap: "$4" } }, isStreamingOn ? /* @__PURE__ */ React53.createElement(
7012
6413
  Chip_default,
7013
6414
  {
7014
6415
  content: "LIVE",
7015
6416
  backgroundColor: "$alert_error_default",
7016
6417
  textColor: "#FFF",
7017
- icon: /* @__PURE__ */ React55.createElement(Box, { css: { h: "$sm", w: "$sm", backgroundColor: "$on_primary_high", borderRadius: "$round" } })
6418
+ icon: /* @__PURE__ */ React53.createElement(Box, { css: { h: "$sm", w: "$sm", backgroundColor: "$on_primary_high", borderRadius: "$round" } })
7018
6419
  }
7019
- ) : null, /* @__PURE__ */ React55.createElement(Chip_default, { content: getParticipantChipContent(peerCount), hideIfNoContent: true }))), toggleVideo ? /* @__PURE__ */ React55.createElement(
6420
+ ) : null, /* @__PURE__ */ React53.createElement(Chip_default, { content: getParticipantChipContent(peerCount), hideIfNoContent: true }))), toggleVideo ? /* @__PURE__ */ React53.createElement(
7020
6421
  Flex,
7021
6422
  {
7022
6423
  align: "center",
@@ -7028,8 +6429,8 @@ var PreviewJoin = ({
7028
6429
  flexDirection: "column"
7029
6430
  }
7030
6431
  },
7031
- /* @__PURE__ */ React55.createElement(PreviewTile, { name, error: previewError })
7032
- ) : null, /* @__PURE__ */ React55.createElement(Box, { css: { w: "100%", maxWidth: `${Math.max(aspectRatio, 1) * 360}px` } }, /* @__PURE__ */ React55.createElement(PreviewControls, { hideSettings: !toggleVideo && !toggleAudio }), /* @__PURE__ */ React55.createElement(
6432
+ /* @__PURE__ */ React53.createElement(PreviewTile, { name, error: previewError })
6433
+ ) : null, /* @__PURE__ */ React53.createElement(Box, { css: { w: "100%", maxWidth: `${Math.max(aspectRatio, 1) * 360}px` } }, /* @__PURE__ */ React53.createElement(PreviewControls, { hideSettings: !toggleVideo && !toggleAudio }), /* @__PURE__ */ React53.createElement(
7033
6434
  PreviewForm_default,
7034
6435
  {
7035
6436
  name,
@@ -7039,7 +6440,7 @@ var PreviewJoin = ({
7039
6440
  cannotPublishVideo: !toggleVideo,
7040
6441
  cannotPublishAudio: !toggleAudio
7041
6442
  }
7042
- ))) : /* @__PURE__ */ React55.createElement(FullPageProgress_default, null);
6443
+ ))) : /* @__PURE__ */ React53.createElement(FullPageProgress_default, null);
7043
6444
  };
7044
6445
  var Container3 = styled("div", __spreadProps(__spreadValues({
7045
6446
  width: "100%"
@@ -7048,17 +6449,17 @@ var Container3 = styled("div", __spreadProps(__spreadValues({
7048
6449
  px: "$10"
7049
6450
  }));
7050
6451
  var PreviewTile = ({ name, error }) => {
7051
- const localPeer = useHMSStore25(selectLocalPeer);
6452
+ const localPeer = useHMSStore21(selectLocalPeer);
7052
6453
  const { isLocalAudioEnabled, toggleAudio } = useAVToggle2();
7053
- const isVideoOn = useHMSStore25(selectIsLocalVideoEnabled5);
6454
+ const isVideoOn = useHMSStore21(selectIsLocalVideoEnabled5);
7054
6455
  const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
7055
- const trackSelector = selectVideoTrackByID5(localPeer == null ? void 0 : localPeer.videoTrack);
7056
- const track = useHMSStore25(trackSelector);
6456
+ const trackSelector = selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack);
6457
+ const track = useHMSStore21(trackSelector);
7057
6458
  const showMuteIcon = !isLocalAudioEnabled || !toggleAudio;
7058
- const videoTrack = useHMSStore25(selectVideoTrackByID5(localPeer == null ? void 0 : localPeer.videoTrack));
7059
- const isMobile = useMedia10(config.media.md);
6459
+ const videoTrack = useHMSStore21(selectVideoTrackByID4(localPeer == null ? void 0 : localPeer.videoTrack));
6460
+ const isMobile = useMedia6(config.media.md);
7060
6461
  const aspectRatio = (videoTrack == null ? void 0 : videoTrack.width) && (videoTrack == null ? void 0 : videoTrack.height) ? videoTrack.width / videoTrack.height : isMobile ? 9 / 16 : 16 / 9;
7061
- return /* @__PURE__ */ React55.createElement(
6462
+ return /* @__PURE__ */ React53.createElement(
7062
6463
  StyledVideoTile.Container,
7063
6464
  {
7064
6465
  css: {
@@ -7074,20 +6475,20 @@ var PreviewTile = ({ name, error }) => {
7074
6475
  }
7075
6476
  }
7076
6477
  },
7077
- localPeer ? /* @__PURE__ */ React55.createElement(React55.Fragment, null, /* @__PURE__ */ React55.createElement(TileConnection_default, { name, peerId: localPeer.id, hideLabel: true }), /* @__PURE__ */ React55.createElement(
6478
+ localPeer ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement(TileConnection_default, { name, peerId: localPeer.id, hideLabel: true }), /* @__PURE__ */ React53.createElement(
7078
6479
  Video,
7079
6480
  {
7080
6481
  mirror: (track == null ? void 0 : track.facingMode) !== "environment" && mirrorLocalVideo,
7081
6482
  trackId: localPeer.videoTrack,
7082
6483
  "data-testid": "preview_tile"
7083
6484
  }
7084
- ), !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,
7085
- showMuteIcon ? /* @__PURE__ */ React55.createElement(StyledVideoTile.AudioIndicator, null, /* @__PURE__ */ React55.createElement(MicOffIcon4, null)) : /* @__PURE__ */ React55.createElement(AudioLevel, { trackId: localPeer == null ? void 0 : localPeer.audioTrack })
6485
+ ), !isVideoOn ? /* @__PURE__ */ React53.createElement(StyledVideoTile.AvatarContainer, null, /* @__PURE__ */ React53.createElement(Avatar, { name, "data-testid": "preview_avatar_tile", size: "medium" })) : null) : !error ? /* @__PURE__ */ React53.createElement(FullPageProgress_default, null) : null,
6486
+ showMuteIcon ? /* @__PURE__ */ React53.createElement(PrebuiltAudioIndicator, null, /* @__PURE__ */ React53.createElement(MicOffIcon2, { height: 16, width: 16 })) : /* @__PURE__ */ React53.createElement(PrebuiltAudioIndicator, null, /* @__PURE__ */ React53.createElement(AudioLevel, { trackId: localPeer == null ? void 0 : localPeer.audioTrack }))
7086
6487
  );
7087
6488
  };
7088
6489
  var PreviewControls = ({ hideSettings }) => {
7089
- const isMobile = useMedia10(config.media.md);
7090
- return /* @__PURE__ */ React55.createElement(
6490
+ const isMobile = useMedia6(config.media.md);
6491
+ return /* @__PURE__ */ React53.createElement(
7091
6492
  Flex,
7092
6493
  {
7093
6494
  justify: hideSettings && isMobile ? "center" : "between",
@@ -7096,13 +6497,13 @@ var PreviewControls = ({ hideSettings }) => {
7096
6497
  mt: "$8"
7097
6498
  }
7098
6499
  },
7099
- /* @__PURE__ */ React55.createElement(Flex, { css: { gap: "$4" } }, /* @__PURE__ */ React55.createElement(AudioVideoToggle, null), /* @__PURE__ */ React55.createElement(Suspense, { fallback: "" }, !isMobile ? /* @__PURE__ */ React55.createElement(VirtualBackground, null) : null)),
7100
- !hideSettings ? /* @__PURE__ */ React55.createElement(PreviewSettings, null) : null
6500
+ /* @__PURE__ */ React53.createElement(Flex, { css: { gap: "$4" } }, /* @__PURE__ */ React53.createElement(AudioVideoToggle, null), /* @__PURE__ */ React53.createElement(Suspense, { fallback: "" }, !isMobile ? /* @__PURE__ */ React53.createElement(VirtualBackground, null) : null)),
6501
+ !hideSettings ? /* @__PURE__ */ React53.createElement(PreviewSettings, null) : null
7101
6502
  );
7102
6503
  };
7103
- var PreviewSettings = React55.memo(() => {
7104
- const [open, setOpen] = useState19(false);
7105
- 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 }));
6504
+ var PreviewSettings = React53.memo(() => {
6505
+ const [open, setOpen] = useState16(false);
6506
+ return /* @__PURE__ */ React53.createElement(Fragment4, null, /* @__PURE__ */ React53.createElement(IconButton_default, { "data-testid": "preview_setting_btn", css: { flexShrink: 0 }, onClick: () => setOpen((value) => !value) }, /* @__PURE__ */ React53.createElement(SettingsIcon2, null)), open && /* @__PURE__ */ React53.createElement(SettingsModal_default, { open, onOpenChange: setOpen }));
7106
6507
  });
7107
6508
  var PreviewJoin_default = PreviewJoin;
7108
6509
 
@@ -7126,14 +6527,14 @@ var PreviewContainer = () => {
7126
6527
  }
7127
6528
  navigate(meetingURL);
7128
6529
  };
7129
- return /* @__PURE__ */ React56.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React56.createElement(
6530
+ return /* @__PURE__ */ React54.createElement(Flex, { direction: "column", css: { size: "100%" } }, /* @__PURE__ */ React54.createElement(
7130
6531
  Flex,
7131
6532
  {
7132
6533
  css: { flex: "1 1 0", position: "relative", overflowY: "auto", color: "$primary_default" },
7133
6534
  justify: "center",
7134
6535
  align: "center"
7135
6536
  },
7136
- authToken && Object.keys(previewHeader).length > 0 ? /* @__PURE__ */ React56.createElement(
6537
+ authToken && Object.keys(previewHeader).length > 0 ? /* @__PURE__ */ React54.createElement(
7137
6538
  PreviewJoin_default,
7138
6539
  {
7139
6540
  initialName,
@@ -7141,20 +6542,20 @@ var PreviewContainer = () => {
7141
6542
  asRole: previewAsRole != null ? previewAsRole : void 0,
7142
6543
  onJoin
7143
6544
  }
7144
- ) : /* @__PURE__ */ React56.createElement(FullPageProgress_default, null)
6545
+ ) : /* @__PURE__ */ React54.createElement(FullPageProgress_default, null)
7145
6546
  ));
7146
6547
  };
7147
6548
  var PreviewContainer_default = PreviewContainer;
7148
6549
 
7149
6550
  // src/Prebuilt/components/Toast/ToastContainer.jsx
7150
- import React58, { useEffect as useEffect25, useState as useState20 } from "react";
7151
- import { selectIsConnectedToRoom as selectIsConnectedToRoom3, useHMSStore as useHMSStore26 } from "@100mslive/react-sdk";
6551
+ import React56, { useEffect as useEffect25, useState as useState17 } from "react";
6552
+ import { selectIsConnectedToRoom as selectIsConnectedToRoom3, useHMSStore as useHMSStore22 } from "@100mslive/react-sdk";
7152
6553
 
7153
6554
  // src/Prebuilt/components/Toast/Toast.jsx
7154
- import React57 from "react";
6555
+ import React55 from "react";
7155
6556
  var Toast2 = (_a7) => {
7156
6557
  var _b7 = _a7, { title, description, close = true, open, duration, onOpenChange, icon } = _b7, props = __objRest(_b7, ["title", "description", "close", "open", "duration", "onOpenChange", "icon"]);
7157
- return /* @__PURE__ */ React57.createElement(
6558
+ return /* @__PURE__ */ React55.createElement(
7158
6559
  Toast.HMSToast,
7159
6560
  __spreadValues({
7160
6561
  title,
@@ -7170,17 +6571,17 @@ var Toast2 = (_a7) => {
7170
6571
 
7171
6572
  // src/Prebuilt/components/Toast/ToastContainer.jsx
7172
6573
  var ToastContainer = () => {
7173
- const isConnected = useHMSStore26(selectIsConnectedToRoom3);
7174
- const [toasts, setToast] = useState20([]);
6574
+ const isConnected = useHMSStore22(selectIsConnectedToRoom3);
6575
+ const [toasts, setToast] = useState17([]);
7175
6576
  useEffect25(() => {
7176
6577
  ToastManager.addListener(setToast);
7177
6578
  return () => {
7178
6579
  ToastManager.removeListener(setToast);
7179
6580
  };
7180
6581
  }, []);
7181
- return /* @__PURE__ */ React58.createElement(Toast.Provider, { swipeDirection: "left", duration: 3e3 }, toasts.slice(0, MAX_TOASTS).map((toast) => {
7182
- return /* @__PURE__ */ React58.createElement(Toast2, __spreadProps(__spreadValues({ key: toast.id }, toast), { onOpenChange: (value) => !value && ToastManager.removeToast(toast.id) }));
7183
- }), /* @__PURE__ */ React58.createElement(
6582
+ return /* @__PURE__ */ React56.createElement(Toast.Provider, { swipeDirection: "left", duration: 3e3 }, toasts.slice(0, MAX_TOASTS).map((toast) => {
6583
+ return /* @__PURE__ */ React56.createElement(Toast2, __spreadProps(__spreadValues({ key: toast.id }, toast), { onOpenChange: (value) => !value && ToastManager.removeToast(toast.id) }));
6584
+ }), /* @__PURE__ */ React56.createElement(
7184
6585
  Toast.Viewport,
7185
6586
  {
7186
6587
  css: __spreadValues({
@@ -7191,13 +6592,13 @@ var ToastContainer = () => {
7191
6592
  };
7192
6593
 
7193
6594
  // src/Prebuilt/plugins/FlyingEmoji.jsx
7194
- import React59, { useCallback as useCallback18, useEffect as useEffect26, useMemo as useMemo4, useState as useState21 } from "react";
7195
- import { useMedia as useMedia11 } from "react-use";
6595
+ import React57, { useCallback as useCallback17, useEffect as useEffect26, useMemo as useMemo3, useState as useState18 } from "react";
6596
+ import { useMedia as useMedia7 } from "react-use";
7196
6597
  import {
7197
- selectLocalPeerID as selectLocalPeerID6,
7198
- selectPeerNameByID as selectPeerNameByID2,
7199
- useCustomEvent as useCustomEvent3,
7200
- useHMSStore as useHMSStore27,
6598
+ selectLocalPeerID as selectLocalPeerID4,
6599
+ selectPeerNameByID,
6600
+ useCustomEvent as useCustomEvent2,
6601
+ useHMSStore as useHMSStore23,
7201
6602
  useHMSVanillaStore as useHMSVanillaStore7
7202
6603
  } from "@100mslive/react-sdk";
7203
6604
  var emojiCount = 1;
@@ -7224,17 +6625,17 @@ var getStartingPoints = (isMobile) => {
7224
6625
  return arr;
7225
6626
  };
7226
6627
  function FlyingEmoji() {
7227
- const localPeerId = useHMSStore27(selectLocalPeerID6);
6628
+ const localPeerId = useHMSStore23(selectLocalPeerID4);
7228
6629
  const vanillaStore = useHMSVanillaStore7();
7229
- const [emojis, setEmojis] = useState21([]);
7230
- const isMobile = useMedia11(config.media.md);
7231
- const startingPoints = useMemo4(() => getStartingPoints(isMobile), [isMobile]);
7232
- const showFlyingEmoji = useCallback18(
6630
+ const [emojis, setEmojis] = useState18([]);
6631
+ const isMobile = useMedia7(config.media.md);
6632
+ const startingPoints = useMemo3(() => getStartingPoints(isMobile), [isMobile]);
6633
+ const showFlyingEmoji = useCallback17(
7233
6634
  ({ emojiId, senderId }) => {
7234
6635
  if (!emojiId || !senderId || document.hidden) {
7235
6636
  return;
7236
6637
  }
7237
- const senderPeerName = vanillaStore.getState(selectPeerNameByID2(senderId));
6638
+ const senderPeerName = vanillaStore.getState(selectPeerNameByID(senderId));
7238
6639
  const nameToShow = localPeerId === senderId ? "You" : senderPeerName;
7239
6640
  const startingPoint = startingPoints[emojiCount % startingPoints.length];
7240
6641
  const id = emojiCount++;
@@ -7253,14 +6654,14 @@ function FlyingEmoji() {
7253
6654
  },
7254
6655
  [localPeerId, vanillaStore, startingPoints]
7255
6656
  );
7256
- useCustomEvent3({
6657
+ useCustomEvent2({
7257
6658
  type: EMOJI_REACTION_TYPE,
7258
6659
  onEvent: showFlyingEmoji
7259
6660
  });
7260
6661
  useEffect26(() => {
7261
6662
  window.showFlyingEmoji = showFlyingEmoji;
7262
6663
  }, [showFlyingEmoji]);
7263
- return /* @__PURE__ */ React59.createElement(
6664
+ return /* @__PURE__ */ React57.createElement(
7264
6665
  Box,
7265
6666
  {
7266
6667
  css: {
@@ -7276,7 +6677,7 @@ function FlyingEmoji() {
7276
6677
  }
7277
6678
  },
7278
6679
  emojis.map((emoji) => {
7279
- return /* @__PURE__ */ React59.createElement(
6680
+ return /* @__PURE__ */ React57.createElement(
7280
6681
  Flex,
7281
6682
  {
7282
6683
  key: emoji.id,
@@ -7292,8 +6693,8 @@ function FlyingEmoji() {
7292
6693
  setEmojis(emojis.filter((item) => item.id !== emoji.id));
7293
6694
  }
7294
6695
  },
7295
- /* @__PURE__ */ React59.createElement(Box, null, /* @__PURE__ */ React59.createElement("em-emoji", { id: emoji.emojiId, size: "48px", set: "apple" })),
7296
- /* @__PURE__ */ React59.createElement(
6696
+ /* @__PURE__ */ React57.createElement(Box, null, /* @__PURE__ */ React57.createElement("em-emoji", { id: emoji.emojiId, size: "48px", set: "apple" })),
6697
+ /* @__PURE__ */ React57.createElement(
7297
6698
  Box,
7298
6699
  {
7299
6700
  css: {
@@ -7303,7 +6704,7 @@ function FlyingEmoji() {
7303
6704
  borderRadius: "$1"
7304
6705
  }
7305
6706
  },
7306
- /* @__PURE__ */ React59.createElement(
6707
+ /* @__PURE__ */ React57.createElement(
7307
6708
  Text,
7308
6709
  {
7309
6710
  css: {
@@ -7321,45 +6722,45 @@ function FlyingEmoji() {
7321
6722
  }
7322
6723
 
7323
6724
  // src/Prebuilt/plugins/RemoteStopScreenshare.jsx
7324
- import React60, { useCallback as useCallback19 } from "react";
7325
- import { useCustomEvent as useCustomEvent4, useHMSActions as useHMSActions18 } from "@100mslive/react-sdk";
6725
+ import React58, { useCallback as useCallback18 } from "react";
6726
+ import { useCustomEvent as useCustomEvent3, useHMSActions as useHMSActions16 } from "@100mslive/react-sdk";
7326
6727
  function RemoteStopScreenshare() {
7327
- const actions = useHMSActions18();
7328
- const onRemoteStopScreenshare = useCallback19(() => __async(this, null, function* () {
6728
+ const actions = useHMSActions16();
6729
+ const onRemoteStopScreenshare = useCallback18(() => __async(this, null, function* () {
7329
6730
  yield actions.setScreenShareEnabled(false);
7330
6731
  }), [actions]);
7331
- useCustomEvent4({
6732
+ useCustomEvent3({
7332
6733
  type: REMOTE_STOP_SCREENSHARE_TYPE,
7333
6734
  onEvent: onRemoteStopScreenshare
7334
6735
  });
7335
- return /* @__PURE__ */ React60.createElement(React60.Fragment, null);
6736
+ return /* @__PURE__ */ React58.createElement(React58.Fragment, null);
7336
6737
  }
7337
6738
 
7338
6739
  // src/Prebuilt/components/hooks/useAutoStartStreaming.tsx
7339
- import { useCallback as useCallback20, useEffect as useEffect28, useRef as useRef9 } from "react";
6740
+ import { useCallback as useCallback19, useEffect as useEffect28, useRef as useRef9 } from "react";
7340
6741
  import {
7341
6742
  selectIsConnectedToRoom as selectIsConnectedToRoom5,
7342
- selectPermissions as selectPermissions4,
7343
- useHMSActions as useHMSActions19,
7344
- useHMSStore as useHMSStore29,
6743
+ selectPermissions as selectPermissions2,
6744
+ useHMSActions as useHMSActions17,
6745
+ useHMSStore as useHMSStore25,
7345
6746
  useRecordingStreaming as useRecordingStreaming5
7346
6747
  } from "@100mslive/react-sdk";
7347
6748
 
7348
6749
  // src/Prebuilt/common/hooks.js
7349
- import { useEffect as useEffect27, useRef as useRef8, useState as useState22 } from "react";
6750
+ import { useEffect as useEffect27, useRef as useRef8, useState as useState19 } from "react";
7350
6751
  import { JoinForm_JoinBtnType as JoinForm_JoinBtnType3 } from "@100mslive/types-prebuilt/elements/join_form";
7351
6752
  import {
7352
6753
  selectAvailableRoleNames as selectAvailableRoleNames2,
7353
6754
  selectIsConnectedToRoom as selectIsConnectedToRoom4,
7354
6755
  selectPeerCount,
7355
- selectPeerMetadata as selectPeerMetadata3,
6756
+ selectPeerMetadata as selectPeerMetadata2,
7356
6757
  selectPeers,
7357
6758
  selectRemotePeers,
7358
- useHMSStore as useHMSStore28,
6759
+ useHMSStore as useHMSStore24,
7359
6760
  useHMSVanillaStore as useHMSVanillaStore8
7360
6761
  } from "@100mslive/react-sdk";
7361
6762
  var useFilteredRoles = () => {
7362
- const roles = useHMSStore28(selectAvailableRoleNames2);
6763
+ const roles = useHMSStore24(selectAvailableRoleNames2);
7363
6764
  return roles;
7364
6765
  };
7365
6766
  var useShowStreamingUI = () => {
@@ -7370,15 +6771,15 @@ var useShowStreamingUI = () => {
7370
6771
  };
7371
6772
  var useParticipants2 = (params) => {
7372
6773
  var _a7;
7373
- const isConnected = useHMSStore28(selectIsConnectedToRoom4);
7374
- const peerCount = useHMSStore28(selectPeerCount);
7375
- const availableRoles = useHMSStore28(selectAvailableRoleNames2);
7376
- let participantList = useHMSStore28(isConnected ? selectPeers : selectRemotePeers);
6774
+ const isConnected = useHMSStore24(selectIsConnectedToRoom4);
6775
+ const peerCount = useHMSStore24(selectPeerCount);
6776
+ const availableRoles = useHMSStore24(selectAvailableRoleNames2);
6777
+ let participantList = useHMSStore24(isConnected ? selectPeers : selectRemotePeers);
7377
6778
  const rolesWithParticipants = Array.from(new Set(participantList.map((peer) => peer.roleName)));
7378
6779
  const vanillaStore = useHMSVanillaStore8();
7379
6780
  if ((_a7 = params == null ? void 0 : params.metadata) == null ? void 0 : _a7.isHandRaised) {
7380
6781
  participantList = participantList.filter((peer) => {
7381
- return vanillaStore.getState(selectPeerMetadata3(peer.id)).isHandRaised;
6782
+ return vanillaStore.getState(selectPeerMetadata2(peer.id)).isHandRaised;
7382
6783
  });
7383
6784
  }
7384
6785
  if ((params == null ? void 0 : params.role) && availableRoles.includes(params.role)) {
@@ -7394,13 +6795,13 @@ var useParticipants2 = (params) => {
7394
6795
  // src/Prebuilt/components/hooks/useAutoStartStreaming.tsx
7395
6796
  var useAutoStartStreaming = () => {
7396
6797
  const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
7397
- const permissions = useHMSStore29(selectPermissions4);
6798
+ const permissions = useHMSStore25(selectPermissions2);
7398
6799
  const showStreamingUI = useShowStreamingUI();
7399
- const hmsActions = useHMSActions19();
7400
- const isConnected = useHMSStore29(selectIsConnectedToRoom5);
6800
+ const hmsActions = useHMSActions17();
6801
+ const isConnected = useHMSStore25(selectIsConnectedToRoom5);
7401
6802
  const { isHLSRunning } = useRecordingStreaming5();
7402
6803
  const streamStartedRef = useRef9(false);
7403
- const startHLS = useCallback20(() => __async(void 0, null, function* () {
6804
+ const startHLS = useCallback19(() => __async(void 0, null, function* () {
7404
6805
  var _a7;
7405
6806
  try {
7406
6807
  if (isHLSStarted || !showStreamingUI || isHLSRunning) {
@@ -7431,8 +6832,8 @@ var useAutoStartStreaming = () => {
7431
6832
  };
7432
6833
 
7433
6834
  // src/Prebuilt/App.tsx
7434
- var Conference = React61.lazy(() => import("./conference-JNABIZBG.js"));
7435
- var HMSPrebuilt = React61.forwardRef(
6835
+ var Conference = React59.lazy(() => import("./conference-N7S47TDK.js"));
6836
+ var HMSPrebuilt = React59.forwardRef(
7436
6837
  ({
7437
6838
  roomCode = "",
7438
6839
  authToken = "",
@@ -7443,12 +6844,13 @@ var HMSPrebuilt = React61.forwardRef(
7443
6844
  themes,
7444
6845
  options: { userName = "", userId = "", endpoints } = {},
7445
6846
  screens,
7446
- onLeave
6847
+ onLeave,
6848
+ onJoin
7447
6849
  }, ref) => {
7448
6850
  var _a7, _b7, _c, _d;
7449
6851
  const metadata = "";
7450
6852
  const reactiveStore = useRef10();
7451
- const [hydrated, setHydrated] = React61.useState(false);
6853
+ const [hydrated, setHydrated] = React59.useState(false);
7452
6854
  useEffect29(() => {
7453
6855
  setHydrated(true);
7454
6856
  const hms = new HMSReactiveStore();
@@ -7500,7 +6902,7 @@ var HMSPrebuilt = React61.forwardRef(
7500
6902
  return null;
7501
6903
  }
7502
6904
  globalStyles();
7503
- return /* @__PURE__ */ React61.createElement(ErrorBoundary, null, /* @__PURE__ */ React61.createElement(
6905
+ return /* @__PURE__ */ React59.createElement(ErrorBoundary, null, /* @__PURE__ */ React59.createElement(
7504
6906
  HMSPrebuiltContext.Provider,
7505
6907
  {
7506
6908
  value: {
@@ -7508,6 +6910,7 @@ var HMSPrebuilt = React61.forwardRef(
7508
6910
  roomId,
7509
6911
  role,
7510
6912
  onLeave,
6913
+ onJoin,
7511
6914
  userName,
7512
6915
  userId,
7513
6916
  endpoints: {
@@ -7518,7 +6921,7 @@ var HMSPrebuilt = React61.forwardRef(
7518
6921
  }
7519
6922
  }
7520
6923
  },
7521
- /* @__PURE__ */ React61.createElement(
6924
+ /* @__PURE__ */ React59.createElement(
7522
6925
  HMSRoomProvider,
7523
6926
  {
7524
6927
  isHMSStatsOn: FeatureFlags.enableStatsForNerds,
@@ -7527,7 +6930,7 @@ var HMSPrebuilt = React61.forwardRef(
7527
6930
  notifications: (_c = reactiveStore.current) == null ? void 0 : _c.hmsNotifications,
7528
6931
  stats: (_d = reactiveStore.current) == null ? void 0 : _d.hmsStats
7529
6932
  },
7530
- /* @__PURE__ */ React61.createElement(RoomLayoutProvider, { roomLayoutEndpoint, overrideLayout }, /* @__PURE__ */ React61.createElement(RoomLayoutContext.Consumer, null, (data) => {
6933
+ /* @__PURE__ */ React59.createElement(RoomLayoutProvider, { roomLayoutEndpoint, overrideLayout }, /* @__PURE__ */ React59.createElement(RoomLayoutContext.Consumer, null, (data) => {
7531
6934
  var _a8;
7532
6935
  const layout = data == null ? void 0 : data.layout;
7533
6936
  const theme2 = ((_a8 = layout == null ? void 0 : layout.themes) == null ? void 0 : _a8[0]) || {};
@@ -7536,7 +6939,7 @@ var HMSPrebuilt = React61.forwardRef(
7536
6939
  if (typography2 == null ? void 0 : typography2.font_family) {
7537
6940
  fontFamily = [`${typography2 == null ? void 0 : typography2.font_family}`, ...fontFamily];
7538
6941
  }
7539
- return /* @__PURE__ */ React61.createElement(
6942
+ return /* @__PURE__ */ React59.createElement(
7540
6943
  HMSThemeProvider,
7541
6944
  {
7542
6945
  themeType: `${theme2.name}-${Date.now()}`,
@@ -7549,11 +6952,12 @@ var HMSPrebuilt = React61.forwardRef(
7549
6952
  }
7550
6953
  }
7551
6954
  },
7552
- /* @__PURE__ */ React61.createElement(AppData, { appDetails: metadata, tokenEndpoint: tokenByRoomIdRoleEndpoint }),
7553
- /* @__PURE__ */ React61.createElement(Init, null),
7554
- /* @__PURE__ */ React61.createElement(
6955
+ /* @__PURE__ */ React59.createElement(AppData, { appDetails: metadata, tokenEndpoint: tokenByRoomIdRoleEndpoint }),
6956
+ /* @__PURE__ */ React59.createElement(Init, null),
6957
+ /* @__PURE__ */ React59.createElement(
7555
6958
  Box,
7556
6959
  {
6960
+ id: "prebuilt-container",
7557
6961
  css: {
7558
6962
  bg: "$background_dim",
7559
6963
  size: "100%",
@@ -7561,7 +6965,7 @@ var HMSPrebuilt = React61.forwardRef(
7561
6965
  "-webkit-text-size-adjust": "100%"
7562
6966
  }
7563
6967
  },
7564
- /* @__PURE__ */ React61.createElement(AppRoutes, { authTokenByRoomCodeEndpoint: tokenByRoomCodeEndpoint, defaultAuthToken: authToken })
6968
+ /* @__PURE__ */ React59.createElement(AppRoutes, { authTokenByRoomCodeEndpoint: tokenByRoomCodeEndpoint, defaultAuthToken: authToken })
7565
6969
  )
7566
6970
  );
7567
6971
  }))
@@ -7572,41 +6976,41 @@ var HMSPrebuilt = React61.forwardRef(
7572
6976
  HMSPrebuilt.displayName = "HMSPrebuilt";
7573
6977
  var Redirector = ({ showPreview }) => {
7574
6978
  const { roomId, role } = useParams5();
7575
- return /* @__PURE__ */ React61.createElement(Navigate, { to: `/${showPreview ? "preview" : "meeting"}/${roomId}/${role || ""}` });
6979
+ return /* @__PURE__ */ React59.createElement(Navigate, { to: `/${showPreview ? "preview" : "meeting"}/${roomId}/${role || ""}` });
7576
6980
  };
7577
6981
  var RouteList = () => {
7578
6982
  const { isPreviewScreenEnabled } = useRoomLayoutPreviewScreen();
7579
6983
  const { isLeaveScreenEnabled } = useRoomLayoutLeaveScreen();
7580
6984
  useAutoStartStreaming();
7581
- return /* @__PURE__ */ React61.createElement(Routes, null, isPreviewScreenEnabled ? /* @__PURE__ */ React61.createElement(Route, { path: "preview" }, /* @__PURE__ */ React61.createElement(
6985
+ return /* @__PURE__ */ React59.createElement(Routes, null, isPreviewScreenEnabled ? /* @__PURE__ */ React59.createElement(Route, { path: "preview" }, /* @__PURE__ */ React59.createElement(
7582
6986
  Route,
7583
6987
  {
7584
6988
  path: ":roomId/:role",
7585
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React61.createElement(PreviewContainer_default, null))
6989
+ element: /* @__PURE__ */ React59.createElement(Suspense2, { fallback: /* @__PURE__ */ React59.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React59.createElement(PreviewContainer_default, null))
7586
6990
  }
7587
- ), /* @__PURE__ */ React61.createElement(
6991
+ ), /* @__PURE__ */ React59.createElement(
7588
6992
  Route,
7589
6993
  {
7590
6994
  path: ":roomId",
7591
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React61.createElement(PreviewContainer_default, null))
6995
+ element: /* @__PURE__ */ React59.createElement(Suspense2, { fallback: /* @__PURE__ */ React59.createElement(FullPageProgress_default, { text: "Loading preview..." }) }, /* @__PURE__ */ React59.createElement(PreviewContainer_default, null))
7592
6996
  }
7593
- )) : null, /* @__PURE__ */ React61.createElement(Route, { path: "meeting" }, /* @__PURE__ */ React61.createElement(
6997
+ )) : null, /* @__PURE__ */ React59.createElement(Route, { path: "meeting" }, /* @__PURE__ */ React59.createElement(
7594
6998
  Route,
7595
6999
  {
7596
7000
  path: ":roomId/:role",
7597
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React61.createElement(Conference, null))
7001
+ element: /* @__PURE__ */ React59.createElement(Suspense2, { fallback: /* @__PURE__ */ React59.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React59.createElement(Conference, null))
7598
7002
  }
7599
- ), /* @__PURE__ */ React61.createElement(
7003
+ ), /* @__PURE__ */ React59.createElement(
7600
7004
  Route,
7601
7005
  {
7602
7006
  path: ":roomId",
7603
- element: /* @__PURE__ */ React61.createElement(Suspense2, { fallback: /* @__PURE__ */ React61.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React61.createElement(Conference, null))
7007
+ element: /* @__PURE__ */ React59.createElement(Suspense2, { fallback: /* @__PURE__ */ React59.createElement(FullPageProgress_default, { text: "Joining..." }) }, /* @__PURE__ */ React59.createElement(Conference, null))
7604
7008
  }
7605
- )), 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 }) }));
7009
+ )), isLeaveScreenEnabled ? /* @__PURE__ */ React59.createElement(Route, { path: "leave" }, /* @__PURE__ */ React59.createElement(Route, { path: ":roomId/:role", element: /* @__PURE__ */ React59.createElement(PostLeave_default, null) }), /* @__PURE__ */ React59.createElement(Route, { path: ":roomId", element: /* @__PURE__ */ React59.createElement(PostLeave_default, null) })) : null, /* @__PURE__ */ React59.createElement(Route, { path: "/:roomId/:role", element: /* @__PURE__ */ React59.createElement(Redirector, { showPreview: isPreviewScreenEnabled }) }), /* @__PURE__ */ React59.createElement(Route, { path: "/:roomId/", element: /* @__PURE__ */ React59.createElement(Redirector, { showPreview: isPreviewScreenEnabled }) }));
7606
7010
  };
7607
7011
  var BackSwipe = () => {
7608
- const isConnectedToRoom = useHMSStore30(selectIsConnectedToRoom6);
7609
- const hmsActions = useHMSActions20();
7012
+ const isConnectedToRoom = useHMSStore26(selectIsConnectedToRoom6);
7013
+ const hmsActions = useHMSActions18();
7610
7014
  useEffect29(() => {
7611
7015
  const onRouteLeave = () => __async(void 0, null, function* () {
7612
7016
  if (isConnectedToRoom) {
@@ -7622,7 +7026,7 @@ var BackSwipe = () => {
7622
7026
  };
7623
7027
  var Router = ({ children }) => {
7624
7028
  const { roomId, role, roomCode } = useHMSPrebuiltContext();
7625
- 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);
7029
+ return [roomId, role, roomCode].every((value) => !value) ? /* @__PURE__ */ React59.createElement(BrowserRouter, null, children) : /* @__PURE__ */ React59.createElement(MemoryRouter, { initialEntries: [`/${roomCode ? roomCode : `${roomId}/${role || ""}`}`], initialIndex: 0 }, children);
7626
7030
  };
7627
7031
  function AppRoutes({
7628
7032
  authTokenByRoomCodeEndpoint,
@@ -7630,7 +7034,7 @@ function AppRoutes({
7630
7034
  }) {
7631
7035
  const roomLayout = useRoomLayout();
7632
7036
  const isNotificationsDisabled = useIsNotificationDisabled();
7633
- 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) }))));
7037
+ return /* @__PURE__ */ React59.createElement(Router, null, /* @__PURE__ */ React59.createElement(React59.Fragment, null, /* @__PURE__ */ React59.createElement(ToastContainer, null), /* @__PURE__ */ React59.createElement(Notifications, null), /* @__PURE__ */ React59.createElement(BackSwipe, null), !isNotificationsDisabled && /* @__PURE__ */ React59.createElement(FlyingEmoji, null), /* @__PURE__ */ React59.createElement(RemoteStopScreenshare, null), /* @__PURE__ */ React59.createElement(HeadlessEndRoomListener, null), /* @__PURE__ */ React59.createElement(KeyboardHandler, null), /* @__PURE__ */ React59.createElement(AuthToken_default, { authTokenByRoomCodeEndpoint, defaultAuthToken }), roomLayout && /* @__PURE__ */ React59.createElement(Routes, null, /* @__PURE__ */ React59.createElement(Route, { path: "/*", element: /* @__PURE__ */ React59.createElement(RouteList, null) }))));
7634
7038
  }
7635
7039
 
7636
7040
  // src/Progress/index.tsx
@@ -7673,6 +7077,7 @@ export {
7673
7077
  Video,
7674
7078
  StyledMenuTile,
7675
7079
  useBorderAudioLevel,
7080
+ AudioLevel,
7676
7081
  Popover2 as Popover,
7677
7082
  VideoTileStats,
7678
7083
  Checkbox,
@@ -7697,6 +7102,7 @@ export {
7697
7102
  APP_DATA,
7698
7103
  UI_SETTINGS,
7699
7104
  SIDE_PANE_OPTIONS,
7105
+ REMOTE_STOP_SCREENSHARE_TYPE,
7700
7106
  isChrome,
7701
7107
  isIOS,
7702
7108
  isMacOS,
@@ -7717,6 +7123,7 @@ export {
7717
7123
  useSetSubscribedChatSelector,
7718
7124
  useSetAppDataByKey,
7719
7125
  useHMSPrebuiltContext,
7126
+ PrebuiltDialogPortal,
7720
7127
  DialogContent,
7721
7128
  DialogRow,
7722
7129
  DialogCol,
@@ -7737,14 +7144,12 @@ export {
7737
7144
  Header2 as Header,
7738
7145
  AudioVideoToggle,
7739
7146
  ConnectionIndicator,
7147
+ TileConnection_default,
7148
+ PrebuiltAudioIndicator,
7149
+ PrebuiltAttributeBox,
7740
7150
  DialogDropdownTrigger,
7741
7151
  useDropdownSelection,
7742
7152
  SettingsModal_default,
7743
- ChangeNameModal,
7744
- useDropdownList,
7745
- TileMenu_default,
7746
- getVideoTileLabel,
7747
- VideoTile_default,
7748
7153
  PreviewTile,
7749
7154
  PreviewControls,
7750
7155
  useFilteredRoles,
@@ -7752,4 +7157,4 @@ export {
7752
7157
  HMSPrebuilt,
7753
7158
  Progress
7754
7159
  };
7755
- //# sourceMappingURL=chunk-Z7P5WITU.js.map
7160
+ //# sourceMappingURL=chunk-PRM33R4R.js.map