@snapcall/stream-ui 1.11.1 → 1.11.3

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.
@@ -1110,6 +1110,16 @@ const $15ddac3121cc3a5d$export$4a210166cc9cb64b = async (src)=>{
1110
1110
 
1111
1111
 
1112
1112
  const $a2f0e3c29b11c88e$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)("StreamerMediasoup");
1113
+ const $a2f0e3c29b11c88e$var$SCREEN_SHARING_SIMULCAST_ENCODINGS = [
1114
+ {
1115
+ dtx: true,
1116
+ maxBitrate: 1500000
1117
+ },
1118
+ {
1119
+ dtx: true,
1120
+ maxBitrate: 6000000
1121
+ }
1122
+ ];
1113
1123
  function $a2f0e3c29b11c88e$var$deviceAutoDetection() {
1114
1124
  try {
1115
1125
  const ua = navigator.userAgent;
@@ -1226,6 +1236,30 @@ class $a2f0e3c29b11c88e$export$2e2bcd8739ae039 {
1226
1236
  if (direction === "send") return await this.createSendTransport(server);
1227
1237
  else return await this.createRecvTransport(server);
1228
1238
  }
1239
+ async produceAudio(transport, track, appData) {
1240
+ const producer = await transport.produce({
1241
+ track: track,
1242
+ codecOptions: {
1243
+ opusStereo: true,
1244
+ opusDtx: true
1245
+ },
1246
+ appData: appData
1247
+ });
1248
+ return producer;
1249
+ }
1250
+ async produceVideo(transport, track, appData) {
1251
+ const encodings = undefined;
1252
+ const codecOptions = {
1253
+ videoGoogleStartBitrate: 1000
1254
+ };
1255
+ const producer = await transport.produce({
1256
+ track: track,
1257
+ encodings: encodings,
1258
+ codecOptions: codecOptions,
1259
+ appData: appData
1260
+ });
1261
+ return producer;
1262
+ }
1229
1263
  }
1230
1264
 
1231
1265
 
@@ -1432,16 +1466,6 @@ const $c31e3fb4360572af$var$WEBCAM_SIMULCAST_ENCODINGS = [
1432
1466
  maxBitrate: 5000000
1433
1467
  }
1434
1468
  ];
1435
- const $c31e3fb4360572af$var$SCREEN_SHARING_SIMULCAST_ENCODINGS = [
1436
- {
1437
- dtx: true,
1438
- maxBitrate: 1500000
1439
- },
1440
- {
1441
- dtx: true,
1442
- maxBitrate: 6000000
1443
- }
1444
- ];
1445
1469
  class $c31e3fb4360572af$var$SnapcallEvent extends CustomEvent {
1446
1470
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
1447
1471
  constructor(name, data){
@@ -1498,7 +1522,6 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1498
1522
  this.roomId = "";
1499
1523
  this.peerId = "";
1500
1524
  this.webcamProducer = null;
1501
- this.screenshareProducer = null;
1502
1525
  this.customMessages = new Map();
1503
1526
  this.audioRenderers = {};
1504
1527
  this.profile = {};
@@ -1960,7 +1983,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
1960
1983
  detail: {}
1961
1984
  });
1962
1985
  this.dispatchEvent(event);
1963
- await this.protoo.request("closeProducer", {
1986
+ if (this.protoo.connected) await this.protoo.request("closeProducer", {
1964
1987
  producerId: producerId
1965
1988
  });
1966
1989
  }
@@ -2103,7 +2126,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2103
2126
  this.protooTransport.close();
2104
2127
  this.protoo.close();
2105
2128
  this.micProducer?.close();
2106
- this.screenshareProducer?.close();
2129
+ this.screenshareVideoProducer?.close();
2107
2130
  this.webcamProducer?.close();
2108
2131
  this.consumers.forEach((consumer)=>{
2109
2132
  consumer.mediaSoupConsumer.close();
@@ -2205,7 +2228,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2205
2228
  this.consumers.forEach((consumer)=>{
2206
2229
  if (consumer.mediaSoupConsumer.kind === "video") videoCount++;
2207
2230
  });
2208
- if (this.screenshareProducer && !this.screenshareProducer.closed) videoCount++;
2231
+ if (this.screenshareVideoProducer && !this.screenshareVideoProducer.closed) videoCount++;
2209
2232
  let scale = {
2210
2233
  scaleResolutionDownBy: 1
2211
2234
  };
@@ -2437,7 +2460,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2437
2460
  async disableVideo() {
2438
2461
  if (!this.webcamProducer) return;
2439
2462
  this.webcamProducer.close();
2440
- await this.protoo.request("closeProducer", {
2463
+ if (this.protoo.connected) await this.protoo.request("closeProducer", {
2441
2464
  producerId: this.webcamProducer.id
2442
2465
  });
2443
2466
  this.webcamProducer = null;
@@ -2449,7 +2472,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2449
2472
  async enableScreenshare() {
2450
2473
  if (!this.permissions.find((permission)=>permission === "screen_sharing")) throw new Error("feature not allowed");
2451
2474
  const stream = await this.handleGetUserMediaError("screen", navigator.mediaDevices.getDisplayMedia({
2452
- audio: false,
2475
+ audio: true,
2453
2476
  video: {
2454
2477
  displaySurface: "monitor",
2455
2478
  logicalSurface: true,
@@ -2465,26 +2488,28 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2465
2488
  }
2466
2489
  }));
2467
2490
  if (!stream) return;
2468
- const transport = await this.getTransport("video", "send");
2469
- const track = stream.getVideoTracks()[0];
2470
- const encodings = undefined;
2471
- const codecOptions = {
2472
- videoGoogleStartBitrate: 1000
2473
- };
2474
- let deviceType = "screen";
2475
- this.screenshareProducer = await transport.produce({
2476
- track: track,
2477
- encodings: encodings,
2478
- codecOptions: codecOptions,
2479
- appData: {
2491
+ const deviceType = "screen";
2492
+ const audioTransport = await this.getTransport("audio", "send");
2493
+ const audioTrack = stream.getAudioTracks()[0];
2494
+ if (audioTrack) {
2495
+ this.screenshareAudioProducer = await this.streamerMediasoup?.produceAudio(audioTransport, audioTrack, {
2480
2496
  deviceType: deviceType,
2481
2497
  share: true
2482
- }
2498
+ });
2499
+ this.screenshareVideoProducer?.on("transportclose", ()=>{
2500
+ this.screenshareVideoProducer = undefined;
2501
+ });
2502
+ }
2503
+ const track = stream.getVideoTracks()[0];
2504
+ const videoTransport = await this.getTransport("video", "send");
2505
+ this.screenshareVideoProducer = await this.streamerMediasoup?.produceVideo(videoTransport, track, {
2506
+ deviceType: deviceType,
2507
+ share: true
2483
2508
  });
2484
- this.screenshareProducer.on("transportclose", ()=>{
2485
- this.screenshareProducer = null;
2509
+ this.screenshareVideoProducer?.on("transportclose", ()=>{
2510
+ this.screenshareVideoProducer = undefined;
2486
2511
  });
2487
- this.screenshareProducer.on("trackended", ()=>{
2512
+ this.screenshareVideoProducer?.on("trackended", ()=>{
2488
2513
  this.disableScreenshare().catch(()=>{});
2489
2514
  });
2490
2515
  const event = new $c31e3fb4360572af$var$SnapcallEvent("screenshareEnabled", {
@@ -2493,12 +2518,19 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2493
2518
  this.dispatchEvent(event);
2494
2519
  }
2495
2520
  async disableScreenshare() {
2496
- if (this.screenshareProducer) {
2497
- this.screenshareProducer.close();
2498
- await this.protoo.request("closeProducer", {
2499
- producerId: this.screenshareProducer.id
2521
+ if (this.screenshareVideoProducer) {
2522
+ this.screenshareVideoProducer.close();
2523
+ if (this.protoo.connected) await this.protoo.request("closeProducer", {
2524
+ producerId: this.screenshareVideoProducer.id
2525
+ });
2526
+ this.screenshareVideoProducer = undefined;
2527
+ }
2528
+ if (this.screenshareAudioProducer) {
2529
+ this.screenshareAudioProducer.close();
2530
+ if (this.protoo.connected) await this.protoo.request("closeProducer", {
2531
+ producerId: this.screenshareAudioProducer.id
2500
2532
  });
2501
- this.screenshareProducer = null;
2533
+ this.screenshareAudioProducer = undefined;
2502
2534
  }
2503
2535
  const event = new $c31e3fb4360572af$var$SnapcallEvent("screenshareDisabled", {
2504
2536
  detail: {}
@@ -2582,9 +2614,9 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2582
2614
  } else throw new Error("webcam producer not available yet");
2583
2615
  }
2584
2616
  requestLocalScreenshare(element) {
2585
- if (this.screenshareProducer) {
2617
+ if (this.screenshareVideoProducer) {
2586
2618
  const mediaStream = new MediaStream();
2587
- mediaStream.addTrack(this.screenshareProducer.track);
2619
+ mediaStream.addTrack(this.screenshareVideoProducer.track);
2588
2620
  element.srcObject = mediaStream;
2589
2621
  } else $c31e3fb4360572af$var$log.log("requestLocalScreenshare", "screenshare producer not available yet");
2590
2622
  }
@@ -2710,7 +2742,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2710
2742
  getDevicesState() {
2711
2743
  const microphoneEnabled = this.micProducer ? !this.micProducer.closed : false;
2712
2744
  const cameraEnabled = this.webcamProducer ? !this.webcamProducer.closed : false;
2713
- const screenshareEnabled = this.screenshareProducer ? !this.screenshareProducer.closed : false;
2745
+ const screenshareEnabled = this.screenshareVideoProducer ? !this.screenshareVideoProducer.closed : false;
2714
2746
  return {
2715
2747
  microphone: {
2716
2748
  enabled: microphoneEnabled,
@@ -10586,29 +10618,34 @@ function $c0bb66c3d546ed81$export$2b77a92f1a5ad772(props) {
10586
10618
  children: /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
10587
10619
  ...modalProps,
10588
10620
  ref: ref,
10589
- className: (0, $3Sbms$classnames)("bg-white rounded-[10px] z-[1] overflow-auto focus:outline-none", modalSize[size]),
10621
+ className: (0, $3Sbms$classnames)("bg-white rounded-[10px] z-[1] overflow-x-auto focus:outline-none", modalSize[size]),
10590
10622
  style: {
10591
10623
  maxHeight: `${maxHeight}px`
10592
10624
  },
10593
10625
  children: /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10594
- className: "flex flex-col gap-5 px-5 py-[25px]",
10626
+ className: "flex flex-col gap-5 px-5 py-[25px] max-h-[inherit]",
10595
10627
  children: [
10596
10628
  /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10597
- className: (0, $3Sbms$classnames)("flex flex-col gap-[5px]", {
10598
- "text-center": centered
10599
- }),
10629
+ className: "flex flex-col gap-5 overflow-auto",
10600
10630
  children: [
10601
- /*#__PURE__*/ (0, $3Sbms$jsx)("h2", {
10602
- className: "text-xl font-medium",
10603
- children: title
10631
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10632
+ className: (0, $3Sbms$classnames)("flex flex-col gap-[5px]", {
10633
+ "text-center": centered
10634
+ }),
10635
+ children: [
10636
+ /*#__PURE__*/ (0, $3Sbms$jsx)("h2", {
10637
+ className: "text-xl font-medium",
10638
+ children: title
10639
+ }),
10640
+ description && /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
10641
+ className: "text-sm text-secondary",
10642
+ children: description
10643
+ })
10644
+ ]
10604
10645
  }),
10605
- description && /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
10606
- className: "text-sm text-secondary",
10607
- children: description
10608
- })
10646
+ children
10609
10647
  ]
10610
10648
  }),
10611
- children,
10612
10649
  (primaryAction || secondaryAction) && /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10613
10650
  className: (0, $3Sbms$classnames)("flex justify-end gap-2.5", centered ? "justify-center" : "justify-end"),
10614
10651
  children: [
@@ -10766,6 +10803,44 @@ const $96999d2514f71e51$export$788cb893d96254c8 = ({ state: state , type: type
10766
10803
  state: state,
10767
10804
  centered: permissionsState !== "refused",
10768
10805
  isDismissable: false,
10806
+ primaryAction: ()=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
10807
+ children: permissionsState === "refused" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
10808
+ fullWidth: true,
10809
+ onPress: ()=>window.location.reload(),
10810
+ children: "Allow access"
10811
+ }) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
10812
+ children: permissionsState === "granted" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
10813
+ fullWidth: true,
10814
+ onPress: state.close,
10815
+ children: "Okay"
10816
+ }) : /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
10817
+ fullWidth: true,
10818
+ isDisabled: permissionsState === "requesting" || isRoomReady === false,
10819
+ onPress: async ()=>{
10820
+ setPermissionsState("requesting");
10821
+ try {
10822
+ const mediaResult = await navigator.mediaDevices.getUserMedia({
10823
+ audio: true,
10824
+ video: true
10825
+ });
10826
+ mediaResult.getTracks().forEach((track)=>track.stop());
10827
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
10828
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo({
10829
+ resolution: "vga",
10830
+ frameRate: 20,
10831
+ facingMode: "environment"
10832
+ });
10833
+ } catch {
10834
+ setPermissionsState("refused");
10835
+ }
10836
+ },
10837
+ children: [
10838
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $910dd7d7d872a463$export$2e2bcd8739ae039), {}),
10839
+ "Allow access to cam/mic"
10840
+ ]
10841
+ })
10842
+ })
10843
+ }),
10769
10844
  children: /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10770
10845
  className: "flex flex-col gap-[20px]",
10771
10846
  children: [
@@ -10888,39 +10963,6 @@ const $96999d2514f71e51$export$788cb893d96254c8 = ({ state: state , type: type
10888
10963
  muted: true,
10889
10964
  loop: true
10890
10965
  })
10891
- }),
10892
- permissionsState === "refused" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
10893
- onPress: ()=>window.location.reload(),
10894
- children: "Allow access"
10895
- }) : /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Fragment), {
10896
- children: permissionsState === "granted" ? /*#__PURE__*/ (0, $3Sbms$jsx)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
10897
- onPress: state.close,
10898
- children: "Okay"
10899
- }) : /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
10900
- isDisabled: permissionsState === "requesting" || isRoomReady === false,
10901
- onPress: async ()=>{
10902
- setPermissionsState("requesting");
10903
- try {
10904
- const mediaResult = await navigator.mediaDevices.getUserMedia({
10905
- audio: true,
10906
- video: true
10907
- });
10908
- mediaResult.getTracks().forEach((track)=>track.stop());
10909
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableMicrophone();
10910
- await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo({
10911
- resolution: "vga",
10912
- frameRate: 20,
10913
- facingMode: "environment"
10914
- });
10915
- } catch {
10916
- setPermissionsState("refused");
10917
- }
10918
- },
10919
- children: [
10920
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $910dd7d7d872a463$export$2e2bcd8739ae039), {}),
10921
- "Allow access to cam/mic"
10922
- ]
10923
- })
10924
10966
  })
10925
10967
  ]
10926
10968
  })
@@ -10934,48 +10976,59 @@ const $96999d2514f71e51$export$788cb893d96254c8 = ({ state: state , type: type
10934
10976
 
10935
10977
 
10936
10978
 
10979
+
10980
+
10937
10981
  const $1c8fc500105e5c78$export$f9d8408fefd786da = ({ state: state , setReady: setReady })=>{
10938
10982
  const QRCodeRef = (0, $3Sbms$useRef)(null);
10983
+ const { options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
10984
+ const [QRCodeContainerRef, { width: QRCodeContainerWidth }] = (0, $af23c74942bdcae7$export$e295b0c537d32d7d)();
10939
10985
  (0, $3Sbms$useEffect)(()=>{
10940
- $3Sbms$toCanvas(QRCodeRef.current, window.location.href, {
10941
- errorCorrectionLevel: "M"
10986
+ const url = options.sharedURL || window.location.href;
10987
+ $3Sbms$toCanvas(QRCodeRef.current, url, {
10988
+ width: QRCodeContainerWidth > 300 ? 300 : QRCodeContainerWidth,
10989
+ errorCorrectionLevel: "Q",
10990
+ margin: 0
10942
10991
  });
10943
- }, []);
10944
- return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $c0bb66c3d546ed81$export$2b77a92f1a5ad772), {
10992
+ }, [
10993
+ QRCodeContainerWidth,
10994
+ options.sharedURL
10995
+ ]);
10996
+ return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c0bb66c3d546ed81$export$2b77a92f1a5ad772), {
10945
10997
  centered: true,
10946
10998
  title: "Switch to your mobile",
10947
10999
  description: "Enjoy an even more convenient experience by using your phone to take photos and record videos.",
11000
+ isDismissable: false,
10948
11001
  state: state,
10949
- children: [
10950
- /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10951
- className: "pb-[20px]",
10952
- children: [
10953
- /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
10954
- className: "flex flex-1 items-center justify-center relative",
10955
- children: [
10956
- /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
10957
- className: "absolute w-[70px] h-[70px]",
10958
- children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $16d11fc0880587fd$export$2e2bcd8739ae039), {})
10959
- }),
10960
- /*#__PURE__*/ (0, $3Sbms$jsx)("canvas", {
10961
- ref: QRCodeRef
10962
- })
10963
- ]
10964
- }),
10965
- /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
10966
- className: "flex items-center justify-center text-xs text-primaryLight",
10967
- children: "Scan this QR code with a compatible device."
10968
- })
10969
- ]
10970
- }),
10971
- /*#__PURE__*/ (0, $3Sbms$jsx)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
11002
+ primaryAction: ()=>/*#__PURE__*/ (0, $3Sbms$jsx)((0, $0590ee3141e14968$export$353f5b6fc5456de1), {
11003
+ fullWidth: true,
10972
11004
  onPress: ()=>{
10973
11005
  setReady(true);
10974
11006
  state.close();
10975
11007
  },
10976
11008
  children: "Use desktop version"
10977
- })
10978
- ]
11009
+ }),
11010
+ children: /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11011
+ className: "flex flex-col gap-[20px]",
11012
+ children: [
11013
+ /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
11014
+ ref: QRCodeContainerRef,
11015
+ className: "flex flex-1 items-center justify-center relative",
11016
+ children: [
11017
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11018
+ className: "absolute w-1/3 h-1/3 max-w-[70px] max-h-[70px] flex items-center justify-center",
11019
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $16d11fc0880587fd$export$2e2bcd8739ae039), {})
11020
+ }),
11021
+ /*#__PURE__*/ (0, $3Sbms$jsx)("canvas", {
11022
+ ref: QRCodeRef
11023
+ })
11024
+ ]
11025
+ }),
11026
+ /*#__PURE__*/ (0, $3Sbms$jsx)("p", {
11027
+ className: "flex items-center justify-center text-xs text-primaryLight text-center",
11028
+ children: "Scan this QR code with a compatible device."
11029
+ })
11030
+ ]
11031
+ })
10979
11032
  });
10980
11033
  };
10981
11034
 
@@ -11536,6 +11589,7 @@ const $db82628e5503d51b$export$53819c0e58f98d49 = (props)=>{
11536
11589
  };
11537
11590
 
11538
11591
 
11592
+
11539
11593
  const $92672d57809ea9d3$var$timerText = (delta)=>{
11540
11594
  const d = [
11541
11595
  Math.floor(delta / 60),
@@ -11544,6 +11598,7 @@ const $92672d57809ea9d3$var$timerText = (delta)=>{
11544
11598
  return d.join(":");
11545
11599
  };
11546
11600
  const $92672d57809ea9d3$export$336a011955157f9a = ()=>{
11601
+ const { options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
11547
11602
  const [startRecordTime, setStartRecordTime] = (0, $3Sbms$useState)(undefined);
11548
11603
  const [timer, setTimer] = (0, $3Sbms$useState)(0);
11549
11604
  const [countdownVisible, setCountdownVisible] = (0, $3Sbms$useState)(false);
@@ -11558,7 +11613,9 @@ const $92672d57809ea9d3$export$336a011955157f9a = ()=>{
11558
11613
  });
11559
11614
  const sendAssetsModalState = (0, $3Sbms$useOverlayTriggerState)({});
11560
11615
  const [flashAnimation, setFlashAnimation] = (0, $3Sbms$useState)(false);
11561
- const menuBarState = (0, $a94f21ef9007b90a$export$bd7b6af6aa16550c)({});
11616
+ const menuBarState = (0, $a94f21ef9007b90a$export$bd7b6af6aa16550c)({
11617
+ photo: options?.recorder?.defaultState !== "video"
11618
+ });
11562
11619
  const exitStreaming = (0, $3Sbms$useCallback)(()=>{
11563
11620
  menuBarState.setStreaming(false);
11564
11621
  setStartRecordTime(undefined);
@@ -11805,7 +11862,7 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options })=>{
11805
11862
  const streamUIContainerRef = (0, $3Sbms$useRef)(null);
11806
11863
  const videosContainerRef = (0, $3Sbms$useRef)(null);
11807
11864
  const remoteTilesContainerRef = (0, $3Sbms$useRef)(null);
11808
- const [streamState, setStreamState] = (0, $3Sbms$useState)(options.recorder ? "recorder" : "streaming");
11865
+ const [streamState, setStreamState] = (0, $3Sbms$useState)(options.recorder?.enabled ? "recorder" : "streaming");
11809
11866
  const [isQuickConnectPopupVisible, setIsQuickConnectPopupVisible] = (0, $3Sbms$useState)(false);
11810
11867
  const [isSettingsMenuVisible, setIsSettingsMenuVisible] = (0, $3Sbms$useState)(false);
11811
11868
  const [isYoutubePopupVisible, setIsYoutubePopupVisible] = (0, $3Sbms$useState)(false);
@@ -11957,7 +12014,7 @@ const $26ed036cbc17809a$var$StreamUI = ({ options: options })=>{
11957
12014
  setPermissions(event.detail.permissions);
11958
12015
  console.log(event.detail.permissions);
11959
12016
  setSelfPeerId(peerId);
11960
- if (!options.recorder) try {
12017
+ if (!options.recorder?.enabled) try {
11961
12018
  await (0, $15a01b611391c1e7$export$494039379563c94d)(options);
11962
12019
  setUserInteractionTriggered(true);
11963
12020
  } catch (userInteractionError) {
@@ -12473,18 +12530,18 @@ var $f8d57e3d223f5089$export$2e2bcd8739ae039 = $f8d57e3d223f5089$var$GreetingVie
12473
12530
 
12474
12531
 
12475
12532
  var $1e2747ca72d0ab49$exports = {};
12476
- $1e2747ca72d0ab49$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #3b82f680;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n.visible {\n visibility: visible;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.inset-0 {\n inset: 0;\n}\n\n.left-0 {\n left: 0;\n}\n\n.top-0 {\n top: 0;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.z-\\[100\\] {\n z-index: 100;\n}\n\n.z-\\[1\\] {\n z-index: 1;\n}\n\n.m-\\[10px\\] {\n margin: 10px;\n}\n\n.mx-\\[20px\\] {\n margin-left: 20px;\n margin-right: 20px;\n}\n\n.ml-\\[10px\\] {\n margin-left: 10px;\n}\n\n.mt-\\[10px\\] {\n margin-top: 10px;\n}\n\n.mt-\\[50px\\] {\n margin-top: 50px;\n}\n\n.block {\n display: block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.hidden {\n display: none;\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-\\[150px\\] {\n height: 150px;\n}\n\n.h-\\[60px\\] {\n height: 60px;\n}\n\n.h-\\[72px\\] {\n height: 72px;\n}\n\n.h-\\[56px\\] {\n height: 56px;\n}\n\n.h-\\[40px\\] {\n height: 40px;\n}\n\n.h-\\[235px\\] {\n height: 235px;\n}\n\n.h-\\[93px\\] {\n height: 93px;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n\n.h-\\[24px\\] {\n height: 24px;\n}\n\n.h-\\[30px\\] {\n height: 30px;\n}\n\n.h-\\[70px\\] {\n height: 70px;\n}\n\n.min-h-0 {\n min-height: 0;\n}\n\n.min-h-\\[100\\%\\] {\n min-height: 100%;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-\\[60px\\] {\n width: 60px;\n}\n\n.w-\\[72px\\] {\n width: 72px;\n}\n\n.w-\\[56px\\] {\n width: 56px;\n}\n\n.w-\\[76px\\] {\n width: 76px;\n}\n\n.w-screen {\n width: 100vw;\n}\n\n.w-\\[360px\\] {\n width: 360px;\n}\n\n.w-\\[400px\\] {\n width: 400px;\n}\n\n.w-\\[320px\\] {\n width: 320px;\n}\n\n.w-\\[24px\\] {\n width: 24px;\n}\n\n.w-\\[30px\\] {\n width: 30px;\n}\n\n.w-\\[70px\\] {\n width: 70px;\n}\n\n.min-w-\\[100\\%\\] {\n min-width: 100%;\n}\n\n.min-w-\\[24px\\] {\n min-width: 24px;\n}\n\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n\n.max-w-\\[600px\\] {\n max-width: 600px;\n}\n\n.max-w-\\[800px\\] {\n max-width: 800px;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-auto {\n flex: auto;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.translate-y-2 {\n --tw-translate-y: .5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-\\[200\\%\\] {\n --tw-translate-y: 200%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-full {\n --tw-translate-y: 100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-\\[0\\.4\\] {\n --tw-scale-x: .4;\n --tw-scale-y: .4;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-x-\\[-1\\] {\n --tw-scale-x: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.resize {\n resize: both;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-\\[5px\\] {\n gap: 5px;\n}\n\n.gap-2\\.5 {\n gap: .625rem;\n}\n\n.gap-2 {\n gap: .5rem;\n}\n\n.gap-\\[10px\\] {\n gap: 10px;\n}\n\n.gap-5 {\n gap: 1.25rem;\n}\n\n.gap-\\[20px\\] {\n gap: 20px;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.rounded-lg {\n border-radius: .5rem;\n}\n\n.rounded-md {\n border-radius: .375rem;\n}\n\n.rounded-\\[15px\\] {\n border-radius: 15px;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-\\[5px\\] {\n border-radius: 5px;\n}\n\n.rounded-\\[60px\\] {\n border-radius: 60px;\n}\n\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n\n.rounded-\\[8px\\] {\n border-radius: 8px;\n}\n\n.rounded-\\[50\\%\\] {\n border-radius: 50%;\n}\n\n.rounded-t-\\[15px\\] {\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-secondaryLight {\n --tw-border-opacity: 1;\n border-color: rgb(179 179 179 / var(--tw-border-opacity));\n}\n\n.border-primaryLight {\n --tw-border-opacity: 1;\n border-color: rgb(86 86 86 / var(--tw-border-opacity));\n}\n\n.bg-primaryLight {\n --tw-bg-opacity: 1;\n background-color: rgb(86 86 86 / var(--tw-bg-opacity));\n}\n\n.bg-primary {\n --tw-bg-opacity: 1;\n background-color: rgb(29 28 32 / var(--tw-bg-opacity));\n}\n\n.bg-graySelected {\n --tw-bg-opacity: 1;\n background-color: rgb(245 245 245 / var(--tw-bg-opacity));\n}\n\n.bg-transparent {\n background-color: #0000;\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.bg-black\\/\\[\\.6\\] {\n background-color: #0009;\n}\n\n.bg-\\[\\#f12828\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(241 40 40 / var(--tw-bg-opacity));\n}\n\n.bg-\\[\\#565656\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(86 86 86 / var(--tw-bg-opacity));\n}\n\n.bg-black, .bg-\\[\\#000\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n\n.bg-\\[\\#FFFFFF\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.bg-underlay {\n background-color: #00000040;\n}\n\n.bg-\\[\\#f3f3f3\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(243 243 243 / var(--tw-bg-opacity));\n}\n\n.bg-secondaryVLight {\n --tw-bg-opacity: 1;\n background-color: rgb(235 235 235 / var(--tw-bg-opacity));\n}\n\n.bg-opacity-90 {\n --tw-bg-opacity: .9;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-2\\.5 {\n padding: .625rem;\n}\n\n.p-2 {\n padding: .5rem;\n}\n\n.p-\\[3px\\] {\n padding: 3px;\n}\n\n.p-\\[12px\\] {\n padding: 12px;\n}\n\n.py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-\\[9px\\] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n\n.px-3\\.5 {\n padding-left: .875rem;\n padding-right: .875rem;\n}\n\n.px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.py-1\\.5 {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.px-2\\.5 {\n padding-left: .625rem;\n padding-right: .625rem;\n}\n\n.py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.px-\\[10px\\] {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n\n.py-\\[25px\\] {\n padding-top: 25px;\n padding-bottom: 25px;\n}\n\n.px-\\[20px\\] {\n padding-left: 20px;\n padding-right: 20px;\n}\n\n.pt-2\\.5 {\n padding-top: .625rem;\n}\n\n.pt-2 {\n padding-top: .5rem;\n}\n\n.pb-2\\.5 {\n padding-bottom: .625rem;\n}\n\n.pb-2 {\n padding-bottom: .5rem;\n}\n\n.pb-\\[25px\\] {\n padding-bottom: 25px;\n}\n\n.pb-\\[20px\\] {\n padding-bottom: 20px;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-base {\n letter-spacing: -.02em;\n font-size: 16px;\n line-height: 19px;\n}\n\n.text-sm {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 17px;\n}\n\n.text-xs {\n letter-spacing: -.02em;\n font-size: 12px;\n line-height: 14px;\n}\n\n.text-\\[112px\\] {\n font-size: 112px;\n}\n\n.text-xl {\n letter-spacing: -.02em;\n font-size: 20px;\n line-height: 24px;\n}\n\n.text-lg {\n letter-spacing: -.02em;\n font-size: 18px;\n line-height: 22px;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-normal {\n font-weight: 400;\n}\n\n.leading-\\[20px\\] {\n line-height: 20px;\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.text-primary {\n --tw-text-opacity: 1;\n color: rgb(29 28 32 / var(--tw-text-opacity));\n}\n\n.text-white\\/80 {\n color: #fffc;\n}\n\n.text-secondary {\n --tw-text-opacity: 1;\n color: rgb(134 134 134 / var(--tw-text-opacity));\n}\n\n.text-primaryLight {\n --tw-text-opacity: 1;\n color: rgb(86 86 86 / var(--tw-text-opacity));\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-50 {\n opacity: .5;\n}\n\n.opacity-\\[0\\.4\\] {\n opacity: .4;\n}\n\n.opacity-90 {\n opacity: .9;\n}\n\n.outline {\n outline-style: solid;\n}\n\n.ring-\\[3px\\] {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ring-cta {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(38 138 250 / var(--tw-ring-opacity));\n}\n\n.blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-\\[transform\\,border-radius\\] {\n transition-property: transform, border-radius;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.duration-300 {\n transition-duration: .3s;\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-in {\n transition-timing-function: cubic-bezier(.4, 0, 1, 1);\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.first-letter\\:capitalize:first-letter {\n text-transform: capitalize;\n}\n\n.focus\\:outline-none:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.disabled\\:bg-secondaryLight:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(179 179 179 / var(--tw-bg-opacity));\n}\n\n.disabled\\:bg-graySelected:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(245 245 245 / var(--tw-bg-opacity));\n}\n\n.disabled\\:text-secondaryLight:disabled {\n --tw-text-opacity: 1;\n color: rgb(179 179 179 / var(--tw-text-opacity));\n}\n\n";
12533
+ $1e2747ca72d0ab49$exports = "*, :before, :after, ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #3b82f680;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n.visible {\n visibility: visible;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.inset-0 {\n inset: 0;\n}\n\n.left-0 {\n left: 0;\n}\n\n.top-0 {\n top: 0;\n}\n\n.z-50 {\n z-index: 50;\n}\n\n.z-\\[100\\] {\n z-index: 100;\n}\n\n.z-\\[1\\] {\n z-index: 1;\n}\n\n.m-\\[10px\\] {\n margin: 10px;\n}\n\n.mx-\\[20px\\] {\n margin-left: 20px;\n margin-right: 20px;\n}\n\n.ml-\\[10px\\] {\n margin-left: 10px;\n}\n\n.mt-\\[10px\\] {\n margin-top: 10px;\n}\n\n.mt-\\[50px\\] {\n margin-top: 50px;\n}\n\n.block {\n display: block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.hidden {\n display: none;\n}\n\n.h-full {\n height: 100%;\n}\n\n.h-\\[150px\\] {\n height: 150px;\n}\n\n.h-\\[60px\\] {\n height: 60px;\n}\n\n.h-\\[72px\\] {\n height: 72px;\n}\n\n.h-\\[56px\\] {\n height: 56px;\n}\n\n.h-\\[40px\\] {\n height: 40px;\n}\n\n.h-\\[235px\\] {\n height: 235px;\n}\n\n.h-\\[93px\\] {\n height: 93px;\n}\n\n.h-screen {\n height: 100vh;\n}\n\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n\n.h-\\[24px\\] {\n height: 24px;\n}\n\n.h-\\[30px\\] {\n height: 30px;\n}\n\n.h-1\\/3 {\n height: 33.3333%;\n}\n\n.max-h-\\[inherit\\] {\n max-height: inherit;\n}\n\n.max-h-\\[70px\\] {\n max-height: 70px;\n}\n\n.min-h-0 {\n min-height: 0;\n}\n\n.min-h-\\[100\\%\\] {\n min-height: 100%;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-\\[60px\\] {\n width: 60px;\n}\n\n.w-\\[72px\\] {\n width: 72px;\n}\n\n.w-\\[56px\\] {\n width: 56px;\n}\n\n.w-\\[76px\\] {\n width: 76px;\n}\n\n.w-screen {\n width: 100vw;\n}\n\n.w-\\[360px\\] {\n width: 360px;\n}\n\n.w-\\[400px\\] {\n width: 400px;\n}\n\n.w-\\[320px\\] {\n width: 320px;\n}\n\n.w-\\[24px\\] {\n width: 24px;\n}\n\n.w-\\[30px\\] {\n width: 30px;\n}\n\n.w-1\\/3 {\n width: 33.3333%;\n}\n\n.min-w-\\[100\\%\\] {\n min-width: 100%;\n}\n\n.min-w-\\[24px\\] {\n min-width: 24px;\n}\n\n.max-w-\\[400px\\] {\n max-width: 400px;\n}\n\n.max-w-\\[600px\\] {\n max-width: 600px;\n}\n\n.max-w-\\[800px\\] {\n max-width: 800px;\n}\n\n.max-w-\\[70px\\] {\n max-width: 70px;\n}\n\n.flex-1 {\n flex: 1;\n}\n\n.flex-auto {\n flex: auto;\n}\n\n.flex-grow {\n flex-grow: 1;\n}\n\n.translate-y-2 {\n --tw-translate-y: .5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-0 {\n --tw-translate-y: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-\\[200\\%\\] {\n --tw-translate-y: 200%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.translate-y-full {\n --tw-translate-y: 100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-\\[0\\.4\\] {\n --tw-scale-x: .4;\n --tw-scale-y: .4;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.scale-x-\\[-1\\] {\n --tw-scale-x: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.resize {\n resize: both;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-end {\n align-items: flex-end;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-end {\n justify-content: flex-end;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-\\[5px\\] {\n gap: 5px;\n}\n\n.gap-2\\.5 {\n gap: .625rem;\n}\n\n.gap-2 {\n gap: .5rem;\n}\n\n.gap-\\[10px\\] {\n gap: 10px;\n}\n\n.gap-5 {\n gap: 1.25rem;\n}\n\n.gap-\\[20px\\] {\n gap: 20px;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-x-auto {\n overflow-x: auto;\n}\n\n.rounded-lg {\n border-radius: .5rem;\n}\n\n.rounded-md {\n border-radius: .375rem;\n}\n\n.rounded-\\[15px\\] {\n border-radius: 15px;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-\\[5px\\] {\n border-radius: 5px;\n}\n\n.rounded-\\[60px\\] {\n border-radius: 60px;\n}\n\n.rounded-\\[10px\\] {\n border-radius: 10px;\n}\n\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n\n.rounded-\\[8px\\] {\n border-radius: 8px;\n}\n\n.rounded-\\[50\\%\\] {\n border-radius: 50%;\n}\n\n.rounded-t-\\[15px\\] {\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-secondaryLight {\n --tw-border-opacity: 1;\n border-color: rgb(179 179 179 / var(--tw-border-opacity));\n}\n\n.border-primaryLight {\n --tw-border-opacity: 1;\n border-color: rgb(86 86 86 / var(--tw-border-opacity));\n}\n\n.bg-primaryLight {\n --tw-bg-opacity: 1;\n background-color: rgb(86 86 86 / var(--tw-bg-opacity));\n}\n\n.bg-primary {\n --tw-bg-opacity: 1;\n background-color: rgb(29 28 32 / var(--tw-bg-opacity));\n}\n\n.bg-graySelected {\n --tw-bg-opacity: 1;\n background-color: rgb(245 245 245 / var(--tw-bg-opacity));\n}\n\n.bg-transparent {\n background-color: #0000;\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.bg-black\\/\\[\\.6\\] {\n background-color: #0009;\n}\n\n.bg-\\[\\#f12828\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(241 40 40 / var(--tw-bg-opacity));\n}\n\n.bg-\\[\\#565656\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(86 86 86 / var(--tw-bg-opacity));\n}\n\n.bg-black, .bg-\\[\\#000\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n\n.bg-\\[\\#FFFFFF\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.bg-underlay {\n background-color: #00000040;\n}\n\n.bg-\\[\\#f3f3f3\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(243 243 243 / var(--tw-bg-opacity));\n}\n\n.bg-secondaryVLight {\n --tw-bg-opacity: 1;\n background-color: rgb(235 235 235 / var(--tw-bg-opacity));\n}\n\n.bg-opacity-90 {\n --tw-bg-opacity: .9;\n}\n\n.object-cover {\n object-fit: cover;\n}\n\n.p-2\\.5 {\n padding: .625rem;\n}\n\n.p-2 {\n padding: .5rem;\n}\n\n.p-\\[3px\\] {\n padding: 3px;\n}\n\n.p-\\[12px\\] {\n padding: 12px;\n}\n\n.py-3 {\n padding-top: .75rem;\n padding-bottom: .75rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-\\[9px\\] {\n padding-top: 9px;\n padding-bottom: 9px;\n}\n\n.px-3\\.5 {\n padding-left: .875rem;\n padding-right: .875rem;\n}\n\n.px-3 {\n padding-left: .75rem;\n padding-right: .75rem;\n}\n\n.py-2 {\n padding-top: .5rem;\n padding-bottom: .5rem;\n}\n\n.py-1\\.5 {\n padding-top: .375rem;\n padding-bottom: .375rem;\n}\n\n.px-2\\.5 {\n padding-left: .625rem;\n padding-right: .625rem;\n}\n\n.py-1 {\n padding-top: .25rem;\n padding-bottom: .25rem;\n}\n\n.px-2 {\n padding-left: .5rem;\n padding-right: .5rem;\n}\n\n.px-\\[10px\\] {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n\n.py-\\[25px\\] {\n padding-top: 25px;\n padding-bottom: 25px;\n}\n\n.px-\\[20px\\] {\n padding-left: 20px;\n padding-right: 20px;\n}\n\n.pt-2\\.5 {\n padding-top: .625rem;\n}\n\n.pt-2 {\n padding-top: .5rem;\n}\n\n.pb-2\\.5 {\n padding-bottom: .625rem;\n}\n\n.pb-2 {\n padding-bottom: .5rem;\n}\n\n.pb-\\[25px\\] {\n padding-bottom: 25px;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-base {\n letter-spacing: -.02em;\n font-size: 16px;\n line-height: 19px;\n}\n\n.text-sm {\n letter-spacing: -.02em;\n font-size: 14px;\n line-height: 17px;\n}\n\n.text-xs {\n letter-spacing: -.02em;\n font-size: 12px;\n line-height: 14px;\n}\n\n.text-\\[112px\\] {\n font-size: 112px;\n}\n\n.text-xl {\n letter-spacing: -.02em;\n font-size: 20px;\n line-height: 24px;\n}\n\n.text-lg {\n letter-spacing: -.02em;\n font-size: 18px;\n line-height: 22px;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-normal {\n font-weight: 400;\n}\n\n.leading-\\[20px\\] {\n line-height: 20px;\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.text-primary {\n --tw-text-opacity: 1;\n color: rgb(29 28 32 / var(--tw-text-opacity));\n}\n\n.text-white\\/80 {\n color: #fffc;\n}\n\n.text-secondary {\n --tw-text-opacity: 1;\n color: rgb(134 134 134 / var(--tw-text-opacity));\n}\n\n.text-primaryLight {\n --tw-text-opacity: 1;\n color: rgb(86 86 86 / var(--tw-text-opacity));\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.underline {\n text-decoration-line: underline;\n}\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-50 {\n opacity: .5;\n}\n\n.opacity-\\[0\\.4\\] {\n opacity: .4;\n}\n\n.opacity-90 {\n opacity: .9;\n}\n\n.outline {\n outline-style: solid;\n}\n\n.ring-\\[3px\\] {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ring-cta {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(38 138 250 / var(--tw-ring-opacity));\n}\n\n.blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter, backdrop-filter;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.transition-\\[transform\\,border-radius\\] {\n transition-property: transform, border-radius;\n transition-duration: .15s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.duration-300 {\n transition-duration: .3s;\n}\n\n.ease-in-out {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n.ease-in {\n transition-timing-function: cubic-bezier(.4, 0, 1, 1);\n}\n\n.ease-out {\n transition-timing-function: cubic-bezier(0, 0, .2, 1);\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.first-letter\\:capitalize:first-letter {\n text-transform: capitalize;\n}\n\n.focus\\:outline-none:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n}\n\n.disabled\\:bg-secondaryLight:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(179 179 179 / var(--tw-bg-opacity));\n}\n\n.disabled\\:bg-graySelected:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(245 245 245 / var(--tw-bg-opacity));\n}\n\n.disabled\\:text-secondaryLight:disabled {\n --tw-text-opacity: 1;\n color: rgb(179 179 179 / var(--tw-text-opacity));\n}\n\n";
12477
12534
 
12478
12535
 
12479
12536
  var $e02c50a47b475960$exports = {};
12480
12537
  $e02c50a47b475960$exports = "*, :before, :after {\n box-sizing: border-box;\n border: 0 solid #e5e7eb;\n}\n\n:before, :after {\n --tw-content: \"\";\n}\n\nhtml {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-feature-settings: normal;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n line-height: 1.5;\n}\n\nbody {\n line-height: inherit;\n margin: 0;\n}\n\nhr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\nb, strong {\n font-weight: bolder;\n}\n\ncode, kbd, samp, pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;\n font-size: 1em;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\ntable {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n\nbutton, input, optgroup, select, textarea {\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\nbutton, select {\n text-transform: none;\n}\n\nbutton, [type=\"button\"], [type=\"reset\"], [type=\"submit\"] {\n -webkit-appearance: button;\n background-color: #0000;\n background-image: none;\n}\n\n:-moz-focusring {\n outline: auto;\n}\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n\nsummary {\n display: list-item;\n}\n\nblockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol, ul, menu {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\ninput::placeholder, textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n\nbutton, [role=\"button\"] {\n cursor: pointer;\n}\n\n:disabled {\n cursor: default;\n}\n\nimg, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n}\n\nimg, video {\n max-width: 100%;\n height: auto;\n}\n\n[hidden] {\n display: none;\n}\n\n";
12481
12538
 
12482
12539
 
12483
- const $24075a5d702d64b3$var$currentURL = new URL(window.location.href);
12484
- const $24075a5d702d64b3$var$microphoneEnabled = $24075a5d702d64b3$var$currentURL.searchParams.get("microphone-enabled") !== "0";
12485
- const $24075a5d702d64b3$var$cameraEnabled = $24075a5d702d64b3$var$currentURL.searchParams.get("camera-enabled") === "1";
12486
12540
  const $24075a5d702d64b3$var$defaultOptions = {
12487
- recorder: false,
12541
+ recorder: {
12542
+ enabled: false,
12543
+ defaultState: "photo"
12544
+ },
12488
12545
  sharedURL: window.location.href,
12489
12546
  showMenuButton: true,
12490
12547
  settingsShortcuts: [
@@ -12496,11 +12553,11 @@ const $24075a5d702d64b3$var$defaultOptions = {
12496
12553
  controls: {
12497
12554
  microphone: {
12498
12555
  available: true,
12499
- enabled: $24075a5d702d64b3$var$microphoneEnabled
12556
+ enabled: true
12500
12557
  },
12501
12558
  camera: {
12502
12559
  available: true,
12503
- enabled: $24075a5d702d64b3$var$cameraEnabled
12560
+ enabled: false
12504
12561
  },
12505
12562
  screenshare: {
12506
12563
  available: true