@norskvideo/norsk-studio-built-ins 1.27.0-2025-07-06-336ac6c6 → 1.27.0-2025-07-09-f9b24945

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 (135) hide show
  1. package/client/info.js +665 -284
  2. package/client/style.css +46 -0
  3. package/lib/info.js +3 -1
  4. package/lib/info.js.map +1 -1
  5. package/lib/input.rtmp/info.d.ts +20 -1
  6. package/lib/input.rtmp/runtime.d.ts +20 -1
  7. package/lib/input.rtmp/types.d.ts +47 -27
  8. package/lib/input.rtmp/types.source.yaml +319 -0
  9. package/lib/input.rtmp/types.yaml +206 -131
  10. package/lib/input.silence/info.d.ts +4 -2
  11. package/lib/input.silence/types.d.ts +4 -7
  12. package/lib/input.silence/types.source.yaml +27 -0
  13. package/lib/input.silence/types.yaml +82 -4
  14. package/lib/input.srt-caller/info.d.ts +41 -4
  15. package/lib/input.srt-caller/types.d.ts +51 -43
  16. package/lib/input.srt-caller/types.source.yaml +70 -0
  17. package/lib/input.srt-caller/types.yaml +138 -24
  18. package/lib/input.srt-listener/info.d.ts +41 -4
  19. package/lib/input.srt-listener/runtime.d.ts +34 -3
  20. package/lib/input.srt-listener/types.d.ts +74 -44
  21. package/lib/input.srt-listener/types.source.yaml +329 -0
  22. package/lib/input.srt-listener/types.yaml +259 -132
  23. package/lib/input.udp-ts/info.d.ts +20 -1
  24. package/lib/input.udp-ts/types.d.ts +20 -25
  25. package/lib/input.udp-ts/types.source.yaml +40 -0
  26. package/lib/input.udp-ts/types.yaml +81 -3
  27. package/lib/input.videoTestCard/info.d.ts +8 -2
  28. package/lib/input.videoTestCard/types.d.ts +8 -10
  29. package/lib/input.videoTestCard/types.source.yaml +32 -0
  30. package/lib/input.videoTestCard/types.yaml +30 -6
  31. package/lib/input.whip/info.d.ts +7 -1
  32. package/lib/input.whip/types.d.ts +44 -28
  33. package/lib/input.whip/types.source.yaml +190 -0
  34. package/lib/input.whip/types.yaml +179 -104
  35. package/lib/output.autoCmaf/fullscreen.js +46 -1
  36. package/lib/output.autoCmaf/fullscreen.js.map +1 -1
  37. package/lib/output.autoCmaf/info.js +20 -0
  38. package/lib/output.autoCmaf/info.js.map +1 -1
  39. package/lib/output.autoCmaf/inline-view.d.ts +3 -2
  40. package/lib/output.autoCmaf/inline-view.js +72 -2
  41. package/lib/output.autoCmaf/inline-view.js.map +1 -1
  42. package/lib/output.autoCmaf/runtime.d.ts +2 -1
  43. package/lib/output.autoCmaf/runtime.js +41 -11
  44. package/lib/output.autoCmaf/runtime.js.map +1 -1
  45. package/lib/output.autoCmaf/types.d.ts +2 -0
  46. package/lib/output.autoCmaf/types.yaml +6 -0
  47. package/lib/output.cmafMultiVariant/runtime.js +2 -2
  48. package/lib/output.cmafMultiVariant/runtime.js.map +1 -1
  49. package/lib/output.cmafPlaylist/info.js +19 -0
  50. package/lib/output.cmafPlaylist/info.js.map +1 -1
  51. package/lib/output.cmafPlaylist/runtime.js +6 -3
  52. package/lib/output.cmafPlaylist/runtime.js.map +1 -1
  53. package/lib/output.cmafPlaylist/types.d.ts +1 -0
  54. package/lib/output.cmafPlaylist/types.yaml +3 -0
  55. package/lib/output.preview/inline-view.js +1 -1
  56. package/lib/output.preview/inline-view.js.map +1 -1
  57. package/lib/output.preview/runtime.js +2 -2
  58. package/lib/output.preview/runtime.js.map +1 -1
  59. package/lib/output.statistics/info.d.ts +172 -2
  60. package/lib/output.statistics/types.d.ts +400 -72
  61. package/lib/output.statistics/types.source.yaml +119 -0
  62. package/lib/output.statistics/types.yaml +333 -91
  63. package/lib/output.tsMediaPlaylist/runtime.js +2 -2
  64. package/lib/output.tsMediaPlaylist/runtime.js.map +1 -1
  65. package/lib/output.tsMultiVariant/runtime.js +1 -1
  66. package/lib/output.tsMultiVariant/runtime.js.map +1 -1
  67. package/lib/output.whep/runtime.js +3 -1
  68. package/lib/output.whep/runtime.js.map +1 -1
  69. package/lib/processor.audioEncoder/info.d.ts +10 -2
  70. package/lib/processor.audioEncoder/types.d.ts +23 -12
  71. package/lib/processor.audioEncoder/types.source.yaml +78 -0
  72. package/lib/processor.audioEncoder/types.yaml +103 -29
  73. package/lib/processor.browserOverlay/info.js +5 -3
  74. package/lib/processor.browserOverlay/info.js.map +1 -1
  75. package/lib/processor.browserOverlay/runtime.d.ts +2 -1
  76. package/lib/processor.browserOverlay/runtime.js +16 -2
  77. package/lib/processor.browserOverlay/runtime.js.map +1 -1
  78. package/lib/processor.fixedLadder/info.d.ts +182 -7
  79. package/lib/processor.fixedLadder/types.d.ts +619 -19
  80. package/lib/processor.fixedLadder/types.source.yaml +462 -0
  81. package/lib/processor.fixedLadder/types.yaml +336 -115
  82. package/lib/processor.makeProgram/info.d.ts +1 -0
  83. package/lib/processor.makeProgram/info.js +9 -0
  84. package/lib/processor.makeProgram/info.js.map +1 -1
  85. package/lib/processor.makeProgram/runtime.d.ts +2 -1
  86. package/lib/processor.makeProgram/runtime.js +14 -1
  87. package/lib/processor.makeProgram/runtime.js.map +1 -1
  88. package/lib/processor.makeProgram/types.d.ts +1 -0
  89. package/lib/processor.makeProgram/types.yaml +3 -1
  90. package/lib/processor.smartSingleMediaSwitch/info.d.ts +12 -4
  91. package/lib/processor.smartSingleMediaSwitch/types.d.ts +22 -18
  92. package/lib/processor.smartSingleMediaSwitch/types.source.yaml +115 -0
  93. package/lib/processor.smartSingleMediaSwitch/types.yaml +147 -50
  94. package/lib/processor.smartSourceSwitch/form-views.d.ts +6 -0
  95. package/lib/processor.smartSourceSwitch/form-views.js +11 -0
  96. package/lib/processor.smartSourceSwitch/form-views.js.map +1 -0
  97. package/lib/processor.smartSourceSwitch/info.d.ts +18 -4
  98. package/lib/processor.smartSourceSwitch/info.js +30 -0
  99. package/lib/processor.smartSourceSwitch/info.js.map +1 -1
  100. package/lib/processor.smartSourceSwitch/inline-view.js +9 -8
  101. package/lib/processor.smartSourceSwitch/inline-view.js.map +1 -1
  102. package/lib/processor.smartSourceSwitch/runtime.d.ts +4 -1
  103. package/lib/processor.smartSourceSwitch/runtime.js +56 -27
  104. package/lib/processor.smartSourceSwitch/runtime.js.map +1 -1
  105. package/lib/processor.smartSourceSwitch/types.d.ts +41 -18
  106. package/lib/processor.smartSourceSwitch/types.source.yaml +129 -0
  107. package/lib/processor.smartSourceSwitch/types.yaml +177 -48
  108. package/lib/processor.syncExternalAudio/info.d.ts +1 -0
  109. package/lib/processor.syncExternalAudio/types.d.ts +1 -0
  110. package/lib/processor.videoDecoder/info.js +4 -2
  111. package/lib/processor.videoDecoder/info.js.map +1 -1
  112. package/lib/processor.zoomTo/info.d.ts +54 -0
  113. package/lib/processor.zoomTo/info.js +174 -0
  114. package/lib/processor.zoomTo/info.js.map +1 -0
  115. package/lib/processor.zoomTo/runtime-types.d.ts +11 -0
  116. package/lib/processor.zoomTo/runtime-types.js +3 -0
  117. package/lib/processor.zoomTo/runtime-types.js.map +1 -0
  118. package/lib/processor.zoomTo/runtime.d.ts +45 -0
  119. package/lib/processor.zoomTo/runtime.js +323 -0
  120. package/lib/processor.zoomTo/runtime.js.map +1 -0
  121. package/lib/processor.zoomTo/types.d.ts +182 -0
  122. package/lib/processor.zoomTo/types.js +3 -0
  123. package/lib/processor.zoomTo/types.js.map +1 -0
  124. package/lib/processor.zoomTo/types.yaml +356 -0
  125. package/lib/test/auto-cmaf.js +7 -4
  126. package/lib/test/auto-cmaf.js.map +1 -1
  127. package/lib/test/smart-source-switch.js +117 -2
  128. package/lib/test/smart-source-switch.js.map +1 -1
  129. package/lib/test/zoom-to.d.ts +1 -0
  130. package/lib/test/zoom-to.js +345 -0
  131. package/lib/test/zoom-to.js.map +1 -0
  132. package/package.json +5 -5
  133. package/lib/output.autoCmaf/summary.d.ts +0 -6
  134. package/lib/output.autoCmaf/summary.js +0 -57
  135. package/lib/output.autoCmaf/summary.js.map +0 -1
package/client/info.js CHANGED
@@ -346,7 +346,7 @@ var require_util = __commonJS({
346
346
  exports.getObjectByType = getObjectByType;
347
347
  exports.getObjectByPath = getObjectByPath;
348
348
  exports.displayNodeId = displayNodeId;
349
- exports.assertUnreachable = assertUnreachable27;
349
+ exports.assertUnreachable = assertUnreachable28;
350
350
  exports.waitForCondition = waitForCondition;
351
351
  exports.streamMatchesExpected = streamMatchesExpected;
352
352
  exports.shortStreamNameFromDefinition = shortStreamNameFromDefinition;
@@ -419,7 +419,7 @@ var require_util = __commonJS({
419
419
  }
420
420
  return document2.components[id]?.config?.displayName ?? id;
421
421
  }
422
- function assertUnreachable27(_) {
422
+ function assertUnreachable28(_) {
423
423
  throw new Error("Didn't expect to get here");
424
424
  }
425
425
  async function waitForCondition(condition, timeout, interval, name) {
@@ -590,7 +590,7 @@ var require_config = __commonJS({
590
590
  exports.GlobalEzDrmConfig = GlobalEzDrmConfig2;
591
591
  exports.GlobalAxinomConfig = GlobalAxinomConfig2;
592
592
  exports.contractHardwareAcceleration = contractHardwareAcceleration;
593
- exports.HardwareSelection = HardwareSelection5;
593
+ exports.HardwareSelection = HardwareSelection6;
594
594
  exports.RootDataDir = RootDataDir;
595
595
  var shared_views_1 = require_shared_views();
596
596
  var shared_views_2 = require_shared_views();
@@ -728,7 +728,7 @@ var require_config = __commonJS({
728
728
  }
729
729
  return void 0;
730
730
  }
731
- function HardwareSelection5() {
731
+ function HardwareSelection6() {
732
732
  return {
733
733
  id: "hardware-acceleration",
734
734
  form: {
@@ -47149,13 +47149,13 @@ var require_dist3 = __commonJS({
47149
47149
  });
47150
47150
  module.exports = __toCommonJS2(src_exports);
47151
47151
  var React3 = __toESM2(require_react());
47152
- var import_jsx_runtime51 = require_jsx_runtime();
47152
+ var import_jsx_runtime52 = require_jsx_runtime();
47153
47153
  function createContext2(rootComponentName, defaultContext) {
47154
47154
  const Context = React3.createContext(defaultContext);
47155
47155
  const Provider = (props) => {
47156
47156
  const { children, ...context } = props;
47157
47157
  const value = React3.useMemo(() => context, Object.values(context));
47158
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Context.Provider, { value, children });
47158
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
47159
47159
  };
47160
47160
  Provider.displayName = rootComponentName + "Provider";
47161
47161
  function useContext2(consumerName) {
@@ -47178,7 +47178,7 @@ var require_dist3 = __commonJS({
47178
47178
  const { scope, children, ...context } = props;
47179
47179
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
47180
47180
  const value = React3.useMemo(() => context, Object.values(context));
47181
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Context.Provider, { value, children });
47181
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
47182
47182
  };
47183
47183
  Provider.displayName = rootComponentName + "Provider";
47184
47184
  function useContext2(consumerName, scope) {
@@ -47346,7 +47346,7 @@ var require_dist5 = __commonJS({
47346
47346
  module.exports = __toCommonJS2(src_exports);
47347
47347
  var React3 = __toESM2(require_react());
47348
47348
  var import_react_compose_refs = require_dist4();
47349
- var import_jsx_runtime51 = require_jsx_runtime();
47349
+ var import_jsx_runtime52 = require_jsx_runtime();
47350
47350
  var Slot = React3.forwardRef((props, forwardedRef) => {
47351
47351
  const { children, ...slotProps } = props;
47352
47352
  const childrenArray = React3.Children.toArray(children);
@@ -47362,9 +47362,9 @@ var require_dist5 = __commonJS({
47362
47362
  return child;
47363
47363
  }
47364
47364
  });
47365
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
47365
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
47366
47366
  }
47367
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
47367
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
47368
47368
  });
47369
47369
  Slot.displayName = "Slot";
47370
47370
  var SlotClone = React3.forwardRef((props, forwardedRef) => {
@@ -47381,7 +47381,7 @@ var require_dist5 = __commonJS({
47381
47381
  });
47382
47382
  SlotClone.displayName = "SlotClone";
47383
47383
  var Slottable = ({ children }) => {
47384
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children });
47384
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children });
47385
47385
  };
47386
47386
  function isSlottable(child) {
47387
47387
  return React3.isValidElement(child) && child.type === Slottable;
@@ -47463,11 +47463,11 @@ var require_dist6 = __commonJS({
47463
47463
  createCollection: () => createCollection
47464
47464
  });
47465
47465
  module.exports = __toCommonJS2(src_exports);
47466
- var import_react17 = __toESM2(require_react());
47466
+ var import_react18 = __toESM2(require_react());
47467
47467
  var import_react_context = require_dist3();
47468
47468
  var import_react_compose_refs = require_dist4();
47469
47469
  var import_react_slot = require_dist5();
47470
- var import_jsx_runtime51 = require_jsx_runtime();
47470
+ var import_jsx_runtime52 = require_jsx_runtime();
47471
47471
  function createCollection(name) {
47472
47472
  const PROVIDER_NAME = name + "CollectionProvider";
47473
47473
  const [createCollectionContext, createCollectionScope] = (0, import_react_context.createContextScope)(PROVIDER_NAME);
@@ -47477,40 +47477,40 @@ var require_dist6 = __commonJS({
47477
47477
  );
47478
47478
  const CollectionProvider = (props) => {
47479
47479
  const { scope, children } = props;
47480
- const ref = import_react17.default.useRef(null);
47481
- const itemMap = import_react17.default.useRef(/* @__PURE__ */ new Map()).current;
47482
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
47480
+ const ref = import_react18.default.useRef(null);
47481
+ const itemMap = import_react18.default.useRef(/* @__PURE__ */ new Map()).current;
47482
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
47483
47483
  };
47484
47484
  CollectionProvider.displayName = PROVIDER_NAME;
47485
47485
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
47486
- const CollectionSlot = import_react17.default.forwardRef(
47486
+ const CollectionSlot = import_react18.default.forwardRef(
47487
47487
  (props, forwardedRef) => {
47488
47488
  const { scope, children } = props;
47489
47489
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
47490
47490
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.collectionRef);
47491
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_slot.Slot, { ref: composedRefs, children });
47491
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_slot.Slot, { ref: composedRefs, children });
47492
47492
  }
47493
47493
  );
47494
47494
  CollectionSlot.displayName = COLLECTION_SLOT_NAME;
47495
47495
  const ITEM_SLOT_NAME = name + "CollectionItemSlot";
47496
47496
  const ITEM_DATA_ATTR = "data-radix-collection-item";
47497
- const CollectionItemSlot = import_react17.default.forwardRef(
47497
+ const CollectionItemSlot = import_react18.default.forwardRef(
47498
47498
  (props, forwardedRef) => {
47499
47499
  const { scope, children, ...itemData } = props;
47500
- const ref = import_react17.default.useRef(null);
47500
+ const ref = import_react18.default.useRef(null);
47501
47501
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
47502
47502
  const context = useCollectionContext(ITEM_SLOT_NAME, scope);
47503
- import_react17.default.useEffect(() => {
47503
+ import_react18.default.useEffect(() => {
47504
47504
  context.itemMap.set(ref, { ref, ...itemData });
47505
47505
  return () => void context.itemMap.delete(ref);
47506
47506
  });
47507
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_slot.Slot, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
47507
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_slot.Slot, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
47508
47508
  }
47509
47509
  );
47510
47510
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
47511
47511
  function useCollection(scope) {
47512
47512
  const context = useCollectionContext(name + "CollectionConsumer", scope);
47513
- const getItems = import_react17.default.useCallback(() => {
47513
+ const getItems = import_react18.default.useCallback(() => {
47514
47514
  const collectionNode = context.collectionRef.current;
47515
47515
  if (!collectionNode)
47516
47516
  return [];
@@ -47571,11 +47571,11 @@ var require_dist7 = __commonJS({
47571
47571
  });
47572
47572
  module.exports = __toCommonJS2(src_exports);
47573
47573
  var React3 = __toESM2(require_react());
47574
- var import_jsx_runtime51 = require_jsx_runtime();
47574
+ var import_jsx_runtime52 = require_jsx_runtime();
47575
47575
  var DirectionContext = React3.createContext(void 0);
47576
47576
  var DirectionProvider = (props) => {
47577
47577
  const { dir, children } = props;
47578
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DirectionContext.Provider, { value: dir, children });
47578
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DirectionContext.Provider, { value: dir, children });
47579
47579
  };
47580
47580
  function useDirection(localDir) {
47581
47581
  const globalDir = React3.useContext(DirectionContext);
@@ -47626,7 +47626,7 @@ var require_dist8 = __commonJS({
47626
47626
  var React3 = __toESM2(require_react());
47627
47627
  var ReactDOM2 = __toESM2(require_react_dom());
47628
47628
  var import_react_slot = require_dist5();
47629
- var import_jsx_runtime51 = require_jsx_runtime();
47629
+ var import_jsx_runtime52 = require_jsx_runtime();
47630
47630
  var NODES = [
47631
47631
  "a",
47632
47632
  "button",
@@ -47652,7 +47652,7 @@ var require_dist8 = __commonJS({
47652
47652
  if (typeof window !== "undefined") {
47653
47653
  window[Symbol.for("radix-ui")] = true;
47654
47654
  }
47655
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
47655
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
47656
47656
  });
47657
47657
  Node2.displayName = `Primitive.${node}`;
47658
47658
  return { ...primitive, [node]: Node2 };
@@ -47811,7 +47811,7 @@ var require_dist11 = __commonJS({
47811
47811
  var import_react_compose_refs = require_dist4();
47812
47812
  var import_react_use_callback_ref = require_dist9();
47813
47813
  var import_react_use_escape_keydown = require_dist10();
47814
- var import_jsx_runtime51 = require_jsx_runtime();
47814
+ var import_jsx_runtime52 = require_jsx_runtime();
47815
47815
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
47816
47816
  var CONTEXT_UPDATE = "dismissableLayer.update";
47817
47817
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -47906,7 +47906,7 @@ var require_dist11 = __commonJS({
47906
47906
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
47907
47907
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
47908
47908
  }, []);
47909
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
47909
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
47910
47910
  import_react_primitive.Primitive.div,
47911
47911
  {
47912
47912
  ...layerProps,
@@ -47940,7 +47940,7 @@ var require_dist11 = __commonJS({
47940
47940
  };
47941
47941
  }
47942
47942
  }, [context.branches]);
47943
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
47943
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
47944
47944
  });
47945
47945
  DismissableLayerBranch.displayName = BRANCH_NAME;
47946
47946
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -48142,7 +48142,7 @@ var require_dist13 = __commonJS({
48142
48142
  var import_react_compose_refs = require_dist4();
48143
48143
  var import_react_primitive = require_dist8();
48144
48144
  var import_react_use_callback_ref = require_dist9();
48145
- var import_jsx_runtime51 = require_jsx_runtime();
48145
+ var import_jsx_runtime52 = require_jsx_runtime();
48146
48146
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
48147
48147
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
48148
48148
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -48272,7 +48272,7 @@ var require_dist13 = __commonJS({
48272
48272
  },
48273
48273
  [loop, trapped, focusScope.paused]
48274
48274
  );
48275
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
48275
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
48276
48276
  });
48277
48277
  FocusScope.displayName = FOCUS_SCOPE_NAME;
48278
48278
  function focusFirst(candidates, { select = false } = {}) {
@@ -50514,15 +50514,15 @@ function useFloating(options) {
50514
50514
  floatingStyles
50515
50515
  }), [data, update, refs, elements2, floatingStyles]);
50516
50516
  }
50517
- var React2, import_react4, ReactDOM, index2, arrow$1, offset3, shift3, limitShift3, flip3, size3, autoPlacement3, hide3, inline3, arrow3;
50517
+ var React2, import_react5, ReactDOM, index2, arrow$1, offset3, shift3, limitShift3, flip3, size3, autoPlacement3, hide3, inline3, arrow3;
50518
50518
  var init_floating_ui_react_dom_esm = __esm({
50519
50519
  "../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js"() {
50520
50520
  init_floating_ui_dom();
50521
50521
  init_floating_ui_dom();
50522
50522
  React2 = __toESM(require_react());
50523
- import_react4 = __toESM(require_react());
50523
+ import_react5 = __toESM(require_react());
50524
50524
  ReactDOM = __toESM(require_react_dom());
50525
- index2 = typeof document !== "undefined" ? import_react4.useLayoutEffect : import_react4.useEffect;
50525
+ index2 = typeof document !== "undefined" ? import_react5.useLayoutEffect : import_react5.useEffect;
50526
50526
  arrow$1 = (options) => {
50527
50527
  function isRef(value) {
50528
50528
  return {}.hasOwnProperty.call(value, "current");
@@ -50632,11 +50632,11 @@ var require_dist16 = __commonJS({
50632
50632
  module.exports = __toCommonJS2(src_exports);
50633
50633
  var React3 = __toESM2(require_react());
50634
50634
  var import_react_primitive = require_dist8();
50635
- var import_jsx_runtime51 = require_jsx_runtime();
50635
+ var import_jsx_runtime52 = require_jsx_runtime();
50636
50636
  var NAME = "Arrow";
50637
50637
  var Arrow = React3.forwardRef((props, forwardedRef) => {
50638
50638
  const { children, width = 10, height = 5, ...arrowProps } = props;
50639
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
50639
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50640
50640
  import_react_primitive.Primitive.svg,
50641
50641
  {
50642
50642
  ...arrowProps,
@@ -50645,7 +50645,7 @@ var require_dist16 = __commonJS({
50645
50645
  height,
50646
50646
  viewBox: "0 0 30 10",
50647
50647
  preserveAspectRatio: "none",
50648
- children: props.asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("polygon", { points: "0,0 30,0 15,10" })
50648
+ children: props.asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("polygon", { points: "0,0 30,0 15,10" })
50649
50649
  }
50650
50650
  );
50651
50651
  });
@@ -50785,7 +50785,7 @@ var require_dist18 = __commonJS({
50785
50785
  var import_react_use_callback_ref = require_dist9();
50786
50786
  var import_react_use_layout_effect = require_dist14();
50787
50787
  var import_react_use_size = require_dist17();
50788
- var import_jsx_runtime51 = require_jsx_runtime();
50788
+ var import_jsx_runtime52 = require_jsx_runtime();
50789
50789
  var SIDE_OPTIONS = ["top", "right", "bottom", "left"];
50790
50790
  var ALIGN_OPTIONS = ["start", "center", "end"];
50791
50791
  var POPPER_NAME = "Popper";
@@ -50794,7 +50794,7 @@ var require_dist18 = __commonJS({
50794
50794
  var Popper = (props) => {
50795
50795
  const { __scopePopper, children } = props;
50796
50796
  const [anchor, setAnchor] = React3.useState(null);
50797
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
50797
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
50798
50798
  };
50799
50799
  Popper.displayName = POPPER_NAME;
50800
50800
  var ANCHOR_NAME = "PopperAnchor";
@@ -50807,7 +50807,7 @@ var require_dist18 = __commonJS({
50807
50807
  React3.useEffect(() => {
50808
50808
  context.onAnchorChange(virtualRef?.current || ref.current);
50809
50809
  });
50810
- return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
50810
+ return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
50811
50811
  }
50812
50812
  );
50813
50813
  PopperAnchor.displayName = ANCHOR_NAME;
@@ -50901,7 +50901,7 @@ var require_dist18 = __commonJS({
50901
50901
  if (content)
50902
50902
  setContentZIndex(window.getComputedStyle(content).zIndex);
50903
50903
  }, [content]);
50904
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
50904
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50905
50905
  "div",
50906
50906
  {
50907
50907
  ref: refs.setFloating,
@@ -50925,7 +50925,7 @@ var require_dist18 = __commonJS({
50925
50925
  }
50926
50926
  },
50927
50927
  dir: props.dir,
50928
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
50928
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50929
50929
  PopperContentProvider,
50930
50930
  {
50931
50931
  scope: __scopePopper,
@@ -50934,7 +50934,7 @@ var require_dist18 = __commonJS({
50934
50934
  arrowX,
50935
50935
  arrowY,
50936
50936
  shouldHideArrow: cannotCenterArrow,
50937
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
50937
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50938
50938
  import_react_primitive.Primitive.div,
50939
50939
  {
50940
50940
  "data-side": placedSide,
@@ -50971,7 +50971,7 @@ var require_dist18 = __commonJS({
50971
50971
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
50972
50972
  // doesn't report size as we'd expect on SVG elements.
50973
50973
  // it reports their bounding box which is effectively the largest path inside the SVG.
50974
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
50974
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50975
50975
  "span",
50976
50976
  {
50977
50977
  ref: contentContext.onArrowChange,
@@ -50994,7 +50994,7 @@ var require_dist18 = __commonJS({
50994
50994
  }[contentContext.placedSide],
50995
50995
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
50996
50996
  },
50997
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
50997
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50998
50998
  ArrowPrimitive.Root,
50999
50999
  {
51000
51000
  ...arrowProps,
@@ -51098,14 +51098,14 @@ var require_dist19 = __commonJS({
51098
51098
  var import_react_dom = __toESM2(require_react_dom());
51099
51099
  var import_react_primitive = require_dist8();
51100
51100
  var import_react_use_layout_effect = require_dist14();
51101
- var import_jsx_runtime51 = require_jsx_runtime();
51101
+ var import_jsx_runtime52 = require_jsx_runtime();
51102
51102
  var PORTAL_NAME = "Portal";
51103
51103
  var Portal = React3.forwardRef((props, forwardedRef) => {
51104
51104
  const { container: containerProp, ...portalProps } = props;
51105
51105
  const [mounted, setMounted] = React3.useState(false);
51106
51106
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
51107
51107
  const container = containerProp || mounted && globalThis?.document?.body;
51108
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
51108
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
51109
51109
  });
51110
51110
  Portal.displayName = PORTAL_NAME;
51111
51111
  var Root = Portal;
@@ -51283,11 +51283,11 @@ var require_dist22 = __commonJS({
51283
51283
  module.exports = __toCommonJS2(src_exports);
51284
51284
  var React3 = __toESM2(require_react());
51285
51285
  var import_react_primitive = require_dist8();
51286
- var import_jsx_runtime51 = require_jsx_runtime();
51286
+ var import_jsx_runtime52 = require_jsx_runtime();
51287
51287
  var NAME = "VisuallyHidden";
51288
51288
  var VisuallyHidden = React3.forwardRef(
51289
51289
  (props, forwardedRef) => {
51290
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
51290
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
51291
51291
  import_react_primitive.Primitive.span,
51292
51292
  {
51293
51293
  ...props,
@@ -53446,7 +53446,7 @@ var require_dist23 = __commonJS({
53446
53446
  var import_react_visually_hidden = require_dist22();
53447
53447
  var import_aria_hidden = require_es5();
53448
53448
  var import_react_remove_scroll = require_es57();
53449
- var import_jsx_runtime51 = require_jsx_runtime();
53449
+ var import_jsx_runtime52 = require_jsx_runtime();
53450
53450
  var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
53451
53451
  var SELECTION_KEYS = [" ", "Enter"];
53452
53452
  var SELECT_NAME = "Select";
@@ -53494,7 +53494,7 @@ var require_dist23 = __commonJS({
53494
53494
  const isFormControl = trigger ? form || !!trigger.closest("form") : true;
53495
53495
  const [nativeOptionsSet, setNativeOptionsSet] = React3.useState(/* @__PURE__ */ new Set());
53496
53496
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
53497
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
53497
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
53498
53498
  SelectProvider,
53499
53499
  {
53500
53500
  required,
@@ -53514,7 +53514,7 @@ var require_dist23 = __commonJS({
53514
53514
  triggerPointerDownPosRef,
53515
53515
  disabled,
53516
53516
  children: [
53517
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53517
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53518
53518
  SelectNativeOptionsProvider,
53519
53519
  {
53520
53520
  scope: props.__scopeSelect,
@@ -53531,7 +53531,7 @@ var require_dist23 = __commonJS({
53531
53531
  children
53532
53532
  }
53533
53533
  ) }),
53534
- isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
53534
+ isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
53535
53535
  BubbleSelect,
53536
53536
  {
53537
53537
  "aria-hidden": true,
@@ -53544,7 +53544,7 @@ var require_dist23 = __commonJS({
53544
53544
  disabled,
53545
53545
  form,
53546
53546
  children: [
53547
- value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("option", { value: "" }) : null,
53547
+ value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("option", { value: "" }) : null,
53548
53548
  Array.from(nativeOptionsSet)
53549
53549
  ]
53550
53550
  },
@@ -53585,7 +53585,7 @@ var require_dist23 = __commonJS({
53585
53585
  };
53586
53586
  }
53587
53587
  };
53588
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53588
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53589
53589
  import_react_primitive.Primitive.button,
53590
53590
  {
53591
53591
  type: "button",
@@ -53646,13 +53646,13 @@ var require_dist23 = __commonJS({
53646
53646
  (0, import_react_use_layout_effect.useLayoutEffect)(() => {
53647
53647
  onValueNodeHasChildrenChange(hasChildren);
53648
53648
  }, [onValueNodeHasChildrenChange, hasChildren]);
53649
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53649
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53650
53650
  import_react_primitive.Primitive.span,
53651
53651
  {
53652
53652
  ...valueProps,
53653
53653
  ref: composedRefs,
53654
53654
  style: { pointerEvents: "none" },
53655
- children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: placeholder }) : children
53655
+ children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children: placeholder }) : children
53656
53656
  }
53657
53657
  );
53658
53658
  }
@@ -53662,13 +53662,13 @@ var require_dist23 = __commonJS({
53662
53662
  var SelectIcon = React3.forwardRef(
53663
53663
  (props, forwardedRef) => {
53664
53664
  const { __scopeSelect, children, ...iconProps } = props;
53665
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "\u25BC" });
53665
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "\u25BC" });
53666
53666
  }
53667
53667
  );
53668
53668
  SelectIcon.displayName = ICON_NAME;
53669
53669
  var PORTAL_NAME = "SelectPortal";
53670
53670
  var SelectPortal = (props) => {
53671
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_portal.Portal, { asChild: true, ...props });
53671
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_portal.Portal, { asChild: true, ...props });
53672
53672
  };
53673
53673
  SelectPortal.displayName = PORTAL_NAME;
53674
53674
  var CONTENT_NAME = "SelectContent";
@@ -53682,11 +53682,11 @@ var require_dist23 = __commonJS({
53682
53682
  if (!context.open) {
53683
53683
  const frag = fragment;
53684
53684
  return frag ? ReactDOM2.createPortal(
53685
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { children: props.children }) }) }),
53685
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { children: props.children }) }) }),
53686
53686
  frag
53687
53687
  ) : null;
53688
53688
  }
53689
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
53689
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
53690
53690
  }
53691
53691
  );
53692
53692
  SelectContent.displayName = CONTENT_NAME;
@@ -53845,7 +53845,7 @@ var require_dist23 = __commonJS({
53845
53845
  hideWhenDetached,
53846
53846
  avoidCollisions
53847
53847
  } : {};
53848
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53848
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53849
53849
  SelectContentProvider,
53850
53850
  {
53851
53851
  scope: __scopeSelect,
@@ -53861,7 +53861,7 @@ var require_dist23 = __commonJS({
53861
53861
  position,
53862
53862
  isPositioned,
53863
53863
  searchRef,
53864
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53864
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53865
53865
  import_react_focus_scope.FocusScope,
53866
53866
  {
53867
53867
  asChild: true,
@@ -53873,7 +53873,7 @@ var require_dist23 = __commonJS({
53873
53873
  context.trigger?.focus({ preventScroll: true });
53874
53874
  event.preventDefault();
53875
53875
  }),
53876
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53876
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53877
53877
  import_react_dismissable_layer.DismissableLayer,
53878
53878
  {
53879
53879
  asChild: true,
@@ -53882,7 +53882,7 @@ var require_dist23 = __commonJS({
53882
53882
  onPointerDownOutside,
53883
53883
  onFocusOutside: (event) => event.preventDefault(),
53884
53884
  onDismiss: () => context.onOpenChange(false),
53885
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
53885
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53886
53886
  SelectPosition,
53887
53887
  {
53888
53888
  role: "listbox",
@@ -54061,14 +54061,14 @@ var require_dist23 = __commonJS({
54061
54061
  },
54062
54062
  [position, focusSelectedItem]
54063
54063
  );
54064
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54064
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54065
54065
  SelectViewportProvider,
54066
54066
  {
54067
54067
  scope: __scopeSelect,
54068
54068
  contentWrapper,
54069
54069
  shouldExpandOnScrollRef,
54070
54070
  onScrollButtonChange: handleScrollButtonChange,
54071
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54071
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54072
54072
  "div",
54073
54073
  {
54074
54074
  ref: setContentWrapper,
@@ -54078,7 +54078,7 @@ var require_dist23 = __commonJS({
54078
54078
  position: "fixed",
54079
54079
  zIndex: contentZIndex
54080
54080
  },
54081
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54081
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54082
54082
  import_react_primitive.Primitive.div,
54083
54083
  {
54084
54084
  ...popperProps,
@@ -54108,7 +54108,7 @@ var require_dist23 = __commonJS({
54108
54108
  ...popperProps
54109
54109
  } = props;
54110
54110
  const popperScope = usePopperScope(__scopeSelect);
54111
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54111
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54112
54112
  PopperPrimitive.Content,
54113
54113
  {
54114
54114
  ...popperScope,
@@ -54142,8 +54142,8 @@ var require_dist23 = __commonJS({
54142
54142
  const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
54143
54143
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentContext.onViewportChange);
54144
54144
  const prevScrollTopRef = React3.useRef(0);
54145
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
54146
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54145
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
54146
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54147
54147
  "style",
54148
54148
  {
54149
54149
  dangerouslySetInnerHTML: {
@@ -54152,7 +54152,7 @@ var require_dist23 = __commonJS({
54152
54152
  nonce
54153
54153
  }
54154
54154
  ),
54155
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54155
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54156
54156
  import_react_primitive.Primitive.div,
54157
54157
  {
54158
54158
  "data-radix-select-viewport": "",
@@ -54208,7 +54208,7 @@ var require_dist23 = __commonJS({
54208
54208
  (props, forwardedRef) => {
54209
54209
  const { __scopeSelect, ...groupProps } = props;
54210
54210
  const groupId = (0, import_react_id.useId)();
54211
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
54211
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
54212
54212
  }
54213
54213
  );
54214
54214
  SelectGroup.displayName = GROUP_NAME;
@@ -54217,7 +54217,7 @@ var require_dist23 = __commonJS({
54217
54217
  (props, forwardedRef) => {
54218
54218
  const { __scopeSelect, ...labelProps } = props;
54219
54219
  const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
54220
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
54220
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
54221
54221
  }
54222
54222
  );
54223
54223
  SelectLabel.displayName = LABEL_NAME;
@@ -54254,7 +54254,7 @@ var require_dist23 = __commonJS({
54254
54254
  "A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder."
54255
54255
  );
54256
54256
  }
54257
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54257
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54258
54258
  SelectItemContextProvider,
54259
54259
  {
54260
54260
  scope: __scopeSelect,
@@ -54265,14 +54265,14 @@ var require_dist23 = __commonJS({
54265
54265
  onItemTextChange: React3.useCallback((node) => {
54266
54266
  setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
54267
54267
  }, []),
54268
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54268
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54269
54269
  Collection.ItemSlot,
54270
54270
  {
54271
54271
  scope: __scopeSelect,
54272
54272
  value,
54273
54273
  disabled,
54274
54274
  textValue,
54275
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54275
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54276
54276
  import_react_primitive.Primitive.div,
54277
54277
  {
54278
54278
  role: "option",
@@ -54346,7 +54346,7 @@ var require_dist23 = __commonJS({
54346
54346
  );
54347
54347
  const textContent = itemTextNode?.textContent;
54348
54348
  const nativeOption = React3.useMemo(
54349
- () => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
54349
+ () => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
54350
54350
  [itemContext.disabled, itemContext.value, textContent]
54351
54351
  );
54352
54352
  const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
@@ -54354,8 +54354,8 @@ var require_dist23 = __commonJS({
54354
54354
  onNativeOptionAdd(nativeOption);
54355
54355
  return () => onNativeOptionRemove(nativeOption);
54356
54356
  }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
54357
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
54358
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
54357
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
54358
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
54359
54359
  itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM2.createPortal(itemTextProps.children, context.valueNode) : null
54360
54360
  ] });
54361
54361
  }
@@ -54366,7 +54366,7 @@ var require_dist23 = __commonJS({
54366
54366
  (props, forwardedRef) => {
54367
54367
  const { __scopeSelect, ...itemIndicatorProps } = props;
54368
54368
  const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
54369
- return itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
54369
+ return itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
54370
54370
  }
54371
54371
  );
54372
54372
  SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
@@ -54389,7 +54389,7 @@ var require_dist23 = __commonJS({
54389
54389
  return () => viewport.removeEventListener("scroll", handleScroll2);
54390
54390
  }
54391
54391
  }, [contentContext.viewport, contentContext.isPositioned]);
54392
- return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54392
+ return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54393
54393
  SelectScrollButtonImpl,
54394
54394
  {
54395
54395
  ...props,
@@ -54424,7 +54424,7 @@ var require_dist23 = __commonJS({
54424
54424
  return () => viewport.removeEventListener("scroll", handleScroll2);
54425
54425
  }
54426
54426
  }, [contentContext.viewport, contentContext.isPositioned]);
54427
- return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54427
+ return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54428
54428
  SelectScrollButtonImpl,
54429
54429
  {
54430
54430
  ...props,
@@ -54457,7 +54457,7 @@ var require_dist23 = __commonJS({
54457
54457
  const activeItem = getItems().find((item) => item.ref.current === document.activeElement);
54458
54458
  activeItem?.ref.current?.scrollIntoView({ block: "nearest" });
54459
54459
  }, [getItems]);
54460
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54460
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54461
54461
  import_react_primitive.Primitive.div,
54462
54462
  {
54463
54463
  "aria-hidden": true,
@@ -54485,7 +54485,7 @@ var require_dist23 = __commonJS({
54485
54485
  var SelectSeparator = React3.forwardRef(
54486
54486
  (props, forwardedRef) => {
54487
54487
  const { __scopeSelect, ...separatorProps } = props;
54488
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
54488
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
54489
54489
  }
54490
54490
  );
54491
54491
  SelectSeparator.displayName = SEPARATOR_NAME;
@@ -54496,7 +54496,7 @@ var require_dist23 = __commonJS({
54496
54496
  const popperScope = usePopperScope(__scopeSelect);
54497
54497
  const context = useSelectContext(ARROW_NAME, __scopeSelect);
54498
54498
  const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
54499
- return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
54499
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
54500
54500
  }
54501
54501
  );
54502
54502
  SelectArrow.displayName = ARROW_NAME;
@@ -54523,7 +54523,7 @@ var require_dist23 = __commonJS({
54523
54523
  select.dispatchEvent(event);
54524
54524
  }
54525
54525
  }, [prevValue, value]);
54526
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_visually_hidden.VisuallyHidden, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("select", { ...selectProps, ref: composedRefs, defaultValue: value }) });
54526
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_visually_hidden.VisuallyHidden, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("select", { ...selectProps, ref: composedRefs, defaultValue: value }) });
54527
54527
  }
54528
54528
  );
54529
54529
  BubbleSelect.displayName = "BubbleSelect";
@@ -54907,7 +54907,7 @@ var require_dist25 = __commonJS({
54907
54907
  var import_react_use_controllable_state = require_dist20();
54908
54908
  var import_aria_hidden = require_es5();
54909
54909
  var import_react_remove_scroll = require_es57();
54910
- var import_jsx_runtime51 = require_jsx_runtime();
54910
+ var import_jsx_runtime52 = require_jsx_runtime();
54911
54911
  var POPOVER_NAME = "Popover";
54912
54912
  var [createPopoverContext, createPopoverScope] = (0, import_react_context.createContextScope)(POPOVER_NAME, [
54913
54913
  import_react_popper.createPopperScope
@@ -54931,7 +54931,7 @@ var require_dist25 = __commonJS({
54931
54931
  defaultProp: defaultOpen,
54932
54932
  onChange: onOpenChange
54933
54933
  });
54934
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54934
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54935
54935
  PopoverProvider,
54936
54936
  {
54937
54937
  scope: __scopePopover,
@@ -54960,7 +54960,7 @@ var require_dist25 = __commonJS({
54960
54960
  onCustomAnchorAdd();
54961
54961
  return () => onCustomAnchorRemove();
54962
54962
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
54963
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
54963
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
54964
54964
  }
54965
54965
  );
54966
54966
  PopoverAnchor.displayName = ANCHOR_NAME;
@@ -54971,7 +54971,7 @@ var require_dist25 = __commonJS({
54971
54971
  const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
54972
54972
  const popperScope = usePopperScope(__scopePopover);
54973
54973
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
54974
- const trigger = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
54974
+ const trigger = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54975
54975
  import_react_primitive.Primitive.button,
54976
54976
  {
54977
54977
  type: "button",
@@ -54984,7 +54984,7 @@ var require_dist25 = __commonJS({
54984
54984
  onClick: (0, import_primitive.composeEventHandlers)(props.onClick, context.onOpenToggle)
54985
54985
  }
54986
54986
  );
54987
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });
54987
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });
54988
54988
  }
54989
54989
  );
54990
54990
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -54995,7 +54995,7 @@ var require_dist25 = __commonJS({
54995
54995
  var PopoverPortal = (props) => {
54996
54996
  const { __scopePopover, forceMount, children, container } = props;
54997
54997
  const context = usePopoverContext(PORTAL_NAME, __scopePopover);
54998
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
54998
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
54999
54999
  };
55000
55000
  PopoverPortal.displayName = PORTAL_NAME;
55001
55001
  var CONTENT_NAME = "PopoverContent";
@@ -55004,7 +55004,7 @@ var require_dist25 = __commonJS({
55004
55004
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
55005
55005
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
55006
55006
  const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
55007
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
55007
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
55008
55008
  }
55009
55009
  );
55010
55010
  PopoverContent.displayName = CONTENT_NAME;
@@ -55019,7 +55019,7 @@ var require_dist25 = __commonJS({
55019
55019
  if (content)
55020
55020
  return (0, import_aria_hidden.hideOthers)(content);
55021
55021
  }, []);
55022
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
55022
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55023
55023
  PopoverContentImpl,
55024
55024
  {
55025
55025
  ...props,
@@ -55055,7 +55055,7 @@ var require_dist25 = __commonJS({
55055
55055
  const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
55056
55056
  const hasInteractedOutsideRef = React3.useRef(false);
55057
55057
  const hasPointerDownOutsideRef = React3.useRef(false);
55058
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
55058
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55059
55059
  PopoverContentImpl,
55060
55060
  {
55061
55061
  ...props,
@@ -55109,7 +55109,7 @@ var require_dist25 = __commonJS({
55109
55109
  const context = usePopoverContext(CONTENT_NAME, __scopePopover);
55110
55110
  const popperScope = usePopperScope(__scopePopover);
55111
55111
  (0, import_react_focus_guards.useFocusGuards)();
55112
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
55112
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55113
55113
  import_react_focus_scope.FocusScope,
55114
55114
  {
55115
55115
  asChild: true,
@@ -55117,7 +55117,7 @@ var require_dist25 = __commonJS({
55117
55117
  trapped: trapFocus,
55118
55118
  onMountAutoFocus: onOpenAutoFocus,
55119
55119
  onUnmountAutoFocus: onCloseAutoFocus,
55120
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
55120
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55121
55121
  import_react_dismissable_layer.DismissableLayer,
55122
55122
  {
55123
55123
  asChild: true,
@@ -55127,7 +55127,7 @@ var require_dist25 = __commonJS({
55127
55127
  onPointerDownOutside,
55128
55128
  onFocusOutside,
55129
55129
  onDismiss: () => context.onOpenChange(false),
55130
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
55130
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55131
55131
  PopperPrimitive.Content,
55132
55132
  {
55133
55133
  "data-state": getState(context.open),
@@ -55160,7 +55160,7 @@ var require_dist25 = __commonJS({
55160
55160
  (props, forwardedRef) => {
55161
55161
  const { __scopePopover, ...closeProps } = props;
55162
55162
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
55163
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
55163
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55164
55164
  import_react_primitive.Primitive.button,
55165
55165
  {
55166
55166
  type: "button",
@@ -55177,7 +55177,7 @@ var require_dist25 = __commonJS({
55177
55177
  (props, forwardedRef) => {
55178
55178
  const { __scopePopover, ...arrowProps } = props;
55179
55179
  const popperScope = usePopperScope(__scopePopover);
55180
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
55180
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
55181
55181
  }
55182
55182
  );
55183
55183
  PopoverArrow.displayName = ARROW_NAME;
@@ -55403,13 +55403,13 @@ var require_dist28 = __commonJS({
55403
55403
  });
55404
55404
  module.exports = __toCommonJS2(index_exports);
55405
55405
  var React3 = __toESM2(require_react());
55406
- var import_jsx_runtime51 = require_jsx_runtime();
55406
+ var import_jsx_runtime52 = require_jsx_runtime();
55407
55407
  function createContext2(rootComponentName, defaultContext) {
55408
55408
  const Context = React3.createContext(defaultContext);
55409
55409
  const Provider = (props) => {
55410
55410
  const { children, ...context } = props;
55411
55411
  const value = React3.useMemo(() => context, Object.values(context));
55412
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Context.Provider, { value, children });
55412
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
55413
55413
  };
55414
55414
  Provider.displayName = rootComponentName + "Provider";
55415
55415
  function useContext2(consumerName) {
@@ -55432,7 +55432,7 @@ var require_dist28 = __commonJS({
55432
55432
  const { scope, children, ...context } = props;
55433
55433
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
55434
55434
  const value = React3.useMemo(() => context, Object.values(context));
55435
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Context.Provider, { value, children });
55435
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
55436
55436
  };
55437
55437
  Provider.displayName = rootComponentName + "Provider";
55438
55438
  function useContext2(consumerName, scope) {
@@ -55891,7 +55891,7 @@ var require_dist34 = __commonJS({
55891
55891
  module.exports = __toCommonJS2(index_exports);
55892
55892
  var React3 = __toESM2(require_react());
55893
55893
  var import_react_compose_refs = require_dist27();
55894
- var import_jsx_runtime51 = require_jsx_runtime();
55894
+ var import_jsx_runtime52 = require_jsx_runtime();
55895
55895
  // @__NO_SIDE_EFFECTS__
55896
55896
  function createSlot(ownerName) {
55897
55897
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -55910,9 +55910,9 @@ var require_dist34 = __commonJS({
55910
55910
  return child;
55911
55911
  }
55912
55912
  });
55913
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
55913
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
55914
55914
  }
55915
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
55915
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
55916
55916
  });
55917
55917
  Slot2.displayName = `${ownerName}.Slot`;
55918
55918
  return Slot2;
@@ -55939,7 +55939,7 @@ var require_dist34 = __commonJS({
55939
55939
  // @__NO_SIDE_EFFECTS__
55940
55940
  function createSlottable(ownerName) {
55941
55941
  const Slottable2 = ({ children }) => {
55942
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children });
55942
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children });
55943
55943
  };
55944
55944
  Slottable2.displayName = `${ownerName}.Slottable`;
55945
55945
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -56029,7 +56029,7 @@ var require_dist35 = __commonJS({
56029
56029
  var React3 = __toESM2(require_react());
56030
56030
  var ReactDOM2 = __toESM2(require_react_dom());
56031
56031
  var import_react_slot = require_dist34();
56032
- var import_jsx_runtime51 = require_jsx_runtime();
56032
+ var import_jsx_runtime52 = require_jsx_runtime();
56033
56033
  var NODES = [
56034
56034
  "a",
56035
56035
  "button",
@@ -56057,7 +56057,7 @@ var require_dist35 = __commonJS({
56057
56057
  if (typeof window !== "undefined") {
56058
56058
  window[Symbol.for("radix-ui")] = true;
56059
56059
  }
56060
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
56060
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
56061
56061
  });
56062
56062
  Node2.displayName = `Primitive.${node}`;
56063
56063
  return { ...primitive, [node]: Node2 };
@@ -56216,7 +56216,7 @@ var require_dist38 = __commonJS({
56216
56216
  var import_react_compose_refs = require_dist27();
56217
56217
  var import_react_use_callback_ref = require_dist36();
56218
56218
  var import_react_use_escape_keydown = require_dist37();
56219
- var import_jsx_runtime51 = require_jsx_runtime();
56219
+ var import_jsx_runtime52 = require_jsx_runtime();
56220
56220
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
56221
56221
  var CONTEXT_UPDATE = "dismissableLayer.update";
56222
56222
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -56311,7 +56311,7 @@ var require_dist38 = __commonJS({
56311
56311
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
56312
56312
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
56313
56313
  }, []);
56314
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
56314
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
56315
56315
  import_react_primitive.Primitive.div,
56316
56316
  {
56317
56317
  ...layerProps,
@@ -56345,7 +56345,7 @@ var require_dist38 = __commonJS({
56345
56345
  };
56346
56346
  }
56347
56347
  }, [context.branches]);
56348
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
56348
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
56349
56349
  });
56350
56350
  DismissableLayerBranch.displayName = BRANCH_NAME;
56351
56351
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -56474,7 +56474,7 @@ var require_dist39 = __commonJS({
56474
56474
  var import_react_compose_refs = require_dist27();
56475
56475
  var import_react_primitive = require_dist35();
56476
56476
  var import_react_use_callback_ref = require_dist36();
56477
- var import_jsx_runtime51 = require_jsx_runtime();
56477
+ var import_jsx_runtime52 = require_jsx_runtime();
56478
56478
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
56479
56479
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
56480
56480
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -56604,7 +56604,7 @@ var require_dist39 = __commonJS({
56604
56604
  },
56605
56605
  [loop, trapped, focusScope.paused]
56606
56606
  );
56607
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
56607
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
56608
56608
  });
56609
56609
  FocusScope.displayName = FOCUS_SCOPE_NAME;
56610
56610
  function focusFirst(candidates, { select = false } = {}) {
@@ -56739,14 +56739,14 @@ var require_dist40 = __commonJS({
56739
56739
  var import_react_dom = __toESM2(require_react_dom());
56740
56740
  var import_react_primitive = require_dist35();
56741
56741
  var import_react_use_layout_effect = require_dist29();
56742
- var import_jsx_runtime51 = require_jsx_runtime();
56742
+ var import_jsx_runtime52 = require_jsx_runtime();
56743
56743
  var PORTAL_NAME = "Portal";
56744
56744
  var Portal = React3.forwardRef((props, forwardedRef) => {
56745
56745
  const { container: containerProp, ...portalProps } = props;
56746
56746
  const [mounted, setMounted] = React3.useState(false);
56747
56747
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
56748
56748
  const container = containerProp || mounted && globalThis?.document?.body;
56749
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
56749
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
56750
56750
  });
56751
56751
  Portal.displayName = PORTAL_NAME;
56752
56752
  var Root = Portal;
@@ -57063,7 +57063,7 @@ var require_dist43 = __commonJS({
57063
57063
  var import_react_remove_scroll = require_es57();
57064
57064
  var import_aria_hidden = require_es5();
57065
57065
  var import_react_slot = require_dist34();
57066
- var import_jsx_runtime51 = require_jsx_runtime();
57066
+ var import_jsx_runtime52 = require_jsx_runtime();
57067
57067
  var DIALOG_NAME = "Dialog";
57068
57068
  var [createDialogContext, createDialogScope] = (0, import_react_context.createContextScope)(DIALOG_NAME);
57069
57069
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -57084,7 +57084,7 @@ var require_dist43 = __commonJS({
57084
57084
  onChange: onOpenChange,
57085
57085
  caller: DIALOG_NAME
57086
57086
  });
57087
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57087
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57088
57088
  DialogProvider,
57089
57089
  {
57090
57090
  scope: __scopeDialog,
@@ -57108,7 +57108,7 @@ var require_dist43 = __commonJS({
57108
57108
  const { __scopeDialog, ...triggerProps } = props;
57109
57109
  const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
57110
57110
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
57111
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57111
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57112
57112
  import_react_primitive.Primitive.button,
57113
57113
  {
57114
57114
  type: "button",
@@ -57131,7 +57131,7 @@ var require_dist43 = __commonJS({
57131
57131
  var DialogPortal = (props) => {
57132
57132
  const { __scopeDialog, forceMount, children, container } = props;
57133
57133
  const context = useDialogContext(PORTAL_NAME, __scopeDialog);
57134
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
57134
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
57135
57135
  };
57136
57136
  DialogPortal.displayName = PORTAL_NAME;
57137
57137
  var OVERLAY_NAME = "DialogOverlay";
@@ -57140,7 +57140,7 @@ var require_dist43 = __commonJS({
57140
57140
  const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
57141
57141
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
57142
57142
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
57143
- return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
57143
+ return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
57144
57144
  }
57145
57145
  );
57146
57146
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -57152,7 +57152,7 @@ var require_dist43 = __commonJS({
57152
57152
  return (
57153
57153
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
57154
57154
  // ie. when `Overlay` and `Content` are siblings
57155
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57155
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57156
57156
  import_react_primitive.Primitive.div,
57157
57157
  {
57158
57158
  "data-state": getState(context.open),
@@ -57170,7 +57170,7 @@ var require_dist43 = __commonJS({
57170
57170
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
57171
57171
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
57172
57172
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
57173
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
57173
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
57174
57174
  }
57175
57175
  );
57176
57176
  DialogContent.displayName = CONTENT_NAME;
@@ -57184,7 +57184,7 @@ var require_dist43 = __commonJS({
57184
57184
  if (content)
57185
57185
  return (0, import_aria_hidden.hideOthers)(content);
57186
57186
  }, []);
57187
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57187
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57188
57188
  DialogContentImpl,
57189
57189
  {
57190
57190
  ...props,
@@ -57215,7 +57215,7 @@ var require_dist43 = __commonJS({
57215
57215
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
57216
57216
  const hasInteractedOutsideRef = React3.useRef(false);
57217
57217
  const hasPointerDownOutsideRef = React3.useRef(false);
57218
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57218
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57219
57219
  DialogContentImpl,
57220
57220
  {
57221
57221
  ...props,
@@ -57259,8 +57259,8 @@ var require_dist43 = __commonJS({
57259
57259
  const contentRef = React3.useRef(null);
57260
57260
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentRef);
57261
57261
  (0, import_react_focus_guards.useFocusGuards)();
57262
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
57263
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57262
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
57263
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57264
57264
  import_react_focus_scope.FocusScope,
57265
57265
  {
57266
57266
  asChild: true,
@@ -57268,7 +57268,7 @@ var require_dist43 = __commonJS({
57268
57268
  trapped: trapFocus,
57269
57269
  onMountAutoFocus: onOpenAutoFocus,
57270
57270
  onUnmountAutoFocus: onCloseAutoFocus,
57271
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57271
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57272
57272
  import_react_dismissable_layer.DismissableLayer,
57273
57273
  {
57274
57274
  role: "dialog",
@@ -57283,9 +57283,9 @@ var require_dist43 = __commonJS({
57283
57283
  )
57284
57284
  }
57285
57285
  ),
57286
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
57287
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TitleWarning, { titleId: context.titleId }),
57288
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
57286
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
57287
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TitleWarning, { titleId: context.titleId }),
57288
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
57289
57289
  ] })
57290
57290
  ] });
57291
57291
  }
@@ -57295,7 +57295,7 @@ var require_dist43 = __commonJS({
57295
57295
  (props, forwardedRef) => {
57296
57296
  const { __scopeDialog, ...titleProps } = props;
57297
57297
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
57298
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
57298
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
57299
57299
  }
57300
57300
  );
57301
57301
  DialogTitle.displayName = TITLE_NAME;
@@ -57304,7 +57304,7 @@ var require_dist43 = __commonJS({
57304
57304
  (props, forwardedRef) => {
57305
57305
  const { __scopeDialog, ...descriptionProps } = props;
57306
57306
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
57307
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
57307
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
57308
57308
  }
57309
57309
  );
57310
57310
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -57313,7 +57313,7 @@ var require_dist43 = __commonJS({
57313
57313
  (props, forwardedRef) => {
57314
57314
  const { __scopeDialog, ...closeProps } = props;
57315
57315
  const context = useDialogContext(CLOSE_NAME, __scopeDialog);
57316
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
57316
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57317
57317
  import_react_primitive.Primitive.button,
57318
57318
  {
57319
57319
  type: "button",
@@ -57913,13 +57913,13 @@ var require_dist47 = __commonJS({
57913
57913
  });
57914
57914
  module.exports = __toCommonJS2(index_exports);
57915
57915
  var React3 = __toESM2(require_react());
57916
- var import_jsx_runtime51 = require_jsx_runtime();
57916
+ var import_jsx_runtime52 = require_jsx_runtime();
57917
57917
  function createContext2(rootComponentName, defaultContext) {
57918
57918
  const Context = React3.createContext(defaultContext);
57919
57919
  const Provider = (props) => {
57920
57920
  const { children, ...context } = props;
57921
57921
  const value = React3.useMemo(() => context, Object.values(context));
57922
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Context.Provider, { value, children });
57922
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
57923
57923
  };
57924
57924
  Provider.displayName = rootComponentName + "Provider";
57925
57925
  function useContext2(consumerName) {
@@ -57942,7 +57942,7 @@ var require_dist47 = __commonJS({
57942
57942
  const { scope, children, ...context } = props;
57943
57943
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
57944
57944
  const value = React3.useMemo(() => context, Object.values(context));
57945
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Context.Provider, { value, children });
57945
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
57946
57946
  };
57947
57947
  Provider.displayName = rootComponentName + "Provider";
57948
57948
  function useContext2(consumerName, scope) {
@@ -58416,7 +58416,7 @@ var require_dist53 = __commonJS({
58416
58416
  module.exports = __toCommonJS2(index_exports);
58417
58417
  var React3 = __toESM2(require_react());
58418
58418
  var import_react_compose_refs = require_dist52();
58419
- var import_jsx_runtime51 = require_jsx_runtime();
58419
+ var import_jsx_runtime52 = require_jsx_runtime();
58420
58420
  // @__NO_SIDE_EFFECTS__
58421
58421
  function createSlot(ownerName) {
58422
58422
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -58435,9 +58435,9 @@ var require_dist53 = __commonJS({
58435
58435
  return child;
58436
58436
  }
58437
58437
  });
58438
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
58438
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
58439
58439
  }
58440
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
58440
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
58441
58441
  });
58442
58442
  Slot2.displayName = `${ownerName}.Slot`;
58443
58443
  return Slot2;
@@ -58465,7 +58465,7 @@ var require_dist53 = __commonJS({
58465
58465
  // @__NO_SIDE_EFFECTS__
58466
58466
  function createSlottable(ownerName) {
58467
58467
  const Slottable2 = ({ children }) => {
58468
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children });
58468
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children });
58469
58469
  };
58470
58470
  Slottable2.displayName = `${ownerName}.Slottable`;
58471
58471
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -58556,7 +58556,7 @@ var require_dist54 = __commonJS({
58556
58556
  var React3 = __toESM2(require_react());
58557
58557
  var ReactDOM2 = __toESM2(require_react_dom());
58558
58558
  var import_react_slot = require_dist53();
58559
- var import_jsx_runtime51 = require_jsx_runtime();
58559
+ var import_jsx_runtime52 = require_jsx_runtime();
58560
58560
  var NODES = [
58561
58561
  "a",
58562
58562
  "button",
@@ -58584,7 +58584,7 @@ var require_dist54 = __commonJS({
58584
58584
  if (typeof window !== "undefined") {
58585
58585
  window[Symbol.for("radix-ui")] = true;
58586
58586
  }
58587
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
58587
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
58588
58588
  });
58589
58589
  Node2.displayName = `Primitive.${node}`;
58590
58590
  return { ...primitive, [node]: Node2 };
@@ -58743,7 +58743,7 @@ var require_dist57 = __commonJS({
58743
58743
  var import_react_compose_refs = require_dist46();
58744
58744
  var import_react_use_callback_ref = require_dist55();
58745
58745
  var import_react_use_escape_keydown = require_dist56();
58746
- var import_jsx_runtime51 = require_jsx_runtime();
58746
+ var import_jsx_runtime52 = require_jsx_runtime();
58747
58747
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
58748
58748
  var CONTEXT_UPDATE = "dismissableLayer.update";
58749
58749
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -58838,7 +58838,7 @@ var require_dist57 = __commonJS({
58838
58838
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
58839
58839
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
58840
58840
  }, []);
58841
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
58841
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
58842
58842
  import_react_primitive.Primitive.div,
58843
58843
  {
58844
58844
  ...layerProps,
@@ -58872,7 +58872,7 @@ var require_dist57 = __commonJS({
58872
58872
  };
58873
58873
  }
58874
58874
  }, [context.branches]);
58875
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
58875
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
58876
58876
  });
58877
58877
  DismissableLayerBranch.displayName = BRANCH_NAME;
58878
58878
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -59048,7 +59048,7 @@ var require_dist59 = __commonJS({
59048
59048
  var import_react_compose_refs = require_dist46();
59049
59049
  var import_react_primitive = require_dist54();
59050
59050
  var import_react_use_callback_ref = require_dist58();
59051
- var import_jsx_runtime51 = require_jsx_runtime();
59051
+ var import_jsx_runtime52 = require_jsx_runtime();
59052
59052
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
59053
59053
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
59054
59054
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -59178,7 +59178,7 @@ var require_dist59 = __commonJS({
59178
59178
  },
59179
59179
  [loop, trapped, focusScope.paused]
59180
59180
  );
59181
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
59181
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
59182
59182
  });
59183
59183
  FocusScope.displayName = FOCUS_SCOPE_NAME;
59184
59184
  function focusFirst(candidates, { select = false } = {}) {
@@ -59355,14 +59355,14 @@ var require_dist61 = __commonJS({
59355
59355
  var import_react_dom = __toESM2(require_react_dom());
59356
59356
  var import_react_primitive = require_dist54();
59357
59357
  var import_react_use_layout_effect = require_dist60();
59358
- var import_jsx_runtime51 = require_jsx_runtime();
59358
+ var import_jsx_runtime52 = require_jsx_runtime();
59359
59359
  var PORTAL_NAME = "Portal";
59360
59360
  var Portal = React3.forwardRef((props, forwardedRef) => {
59361
59361
  const { container: containerProp, ...portalProps } = props;
59362
59362
  const [mounted, setMounted] = React3.useState(false);
59363
59363
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
59364
59364
  const container = containerProp || mounted && globalThis?.document?.body;
59365
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
59365
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
59366
59366
  });
59367
59367
  Portal.displayName = PORTAL_NAME;
59368
59368
  var Root = Portal;
@@ -59721,7 +59721,7 @@ var require_dist65 = __commonJS({
59721
59721
  var import_react_remove_scroll = require_es57();
59722
59722
  var import_aria_hidden = require_es5();
59723
59723
  var import_react_slot = require_dist53();
59724
- var import_jsx_runtime51 = require_jsx_runtime();
59724
+ var import_jsx_runtime52 = require_jsx_runtime();
59725
59725
  var DIALOG_NAME = "Dialog";
59726
59726
  var [createDialogContext, createDialogScope] = (0, import_react_context.createContextScope)(DIALOG_NAME);
59727
59727
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -59742,7 +59742,7 @@ var require_dist65 = __commonJS({
59742
59742
  onChange: onOpenChange,
59743
59743
  caller: DIALOG_NAME
59744
59744
  });
59745
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59745
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59746
59746
  DialogProvider,
59747
59747
  {
59748
59748
  scope: __scopeDialog,
@@ -59766,7 +59766,7 @@ var require_dist65 = __commonJS({
59766
59766
  const { __scopeDialog, ...triggerProps } = props;
59767
59767
  const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
59768
59768
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
59769
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59769
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59770
59770
  import_react_primitive.Primitive.button,
59771
59771
  {
59772
59772
  type: "button",
@@ -59789,7 +59789,7 @@ var require_dist65 = __commonJS({
59789
59789
  var DialogPortal = (props) => {
59790
59790
  const { __scopeDialog, forceMount, children, container } = props;
59791
59791
  const context = useDialogContext(PORTAL_NAME, __scopeDialog);
59792
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
59792
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
59793
59793
  };
59794
59794
  DialogPortal.displayName = PORTAL_NAME;
59795
59795
  var OVERLAY_NAME = "DialogOverlay";
@@ -59798,7 +59798,7 @@ var require_dist65 = __commonJS({
59798
59798
  const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
59799
59799
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
59800
59800
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
59801
- return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
59801
+ return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
59802
59802
  }
59803
59803
  );
59804
59804
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -59810,7 +59810,7 @@ var require_dist65 = __commonJS({
59810
59810
  return (
59811
59811
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
59812
59812
  // ie. when `Overlay` and `Content` are siblings
59813
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59813
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59814
59814
  import_react_primitive.Primitive.div,
59815
59815
  {
59816
59816
  "data-state": getState(context.open),
@@ -59828,7 +59828,7 @@ var require_dist65 = __commonJS({
59828
59828
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
59829
59829
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
59830
59830
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
59831
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
59831
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
59832
59832
  }
59833
59833
  );
59834
59834
  DialogContent.displayName = CONTENT_NAME;
@@ -59842,7 +59842,7 @@ var require_dist65 = __commonJS({
59842
59842
  if (content)
59843
59843
  return (0, import_aria_hidden.hideOthers)(content);
59844
59844
  }, []);
59845
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59845
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59846
59846
  DialogContentImpl,
59847
59847
  {
59848
59848
  ...props,
@@ -59873,7 +59873,7 @@ var require_dist65 = __commonJS({
59873
59873
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
59874
59874
  const hasInteractedOutsideRef = React3.useRef(false);
59875
59875
  const hasPointerDownOutsideRef = React3.useRef(false);
59876
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59876
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59877
59877
  DialogContentImpl,
59878
59878
  {
59879
59879
  ...props,
@@ -59917,8 +59917,8 @@ var require_dist65 = __commonJS({
59917
59917
  const contentRef = React3.useRef(null);
59918
59918
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentRef);
59919
59919
  (0, import_react_focus_guards.useFocusGuards)();
59920
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
59921
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59920
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
59921
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59922
59922
  import_react_focus_scope.FocusScope,
59923
59923
  {
59924
59924
  asChild: true,
@@ -59926,7 +59926,7 @@ var require_dist65 = __commonJS({
59926
59926
  trapped: trapFocus,
59927
59927
  onMountAutoFocus: onOpenAutoFocus,
59928
59928
  onUnmountAutoFocus: onCloseAutoFocus,
59929
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59929
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59930
59930
  import_react_dismissable_layer.DismissableLayer,
59931
59931
  {
59932
59932
  role: "dialog",
@@ -59941,9 +59941,9 @@ var require_dist65 = __commonJS({
59941
59941
  )
59942
59942
  }
59943
59943
  ),
59944
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_jsx_runtime51.Fragment, { children: [
59945
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TitleWarning, { titleId: context.titleId }),
59946
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
59944
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
59945
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TitleWarning, { titleId: context.titleId }),
59946
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
59947
59947
  ] })
59948
59948
  ] });
59949
59949
  }
@@ -59953,7 +59953,7 @@ var require_dist65 = __commonJS({
59953
59953
  (props, forwardedRef) => {
59954
59954
  const { __scopeDialog, ...titleProps } = props;
59955
59955
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
59956
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
59956
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
59957
59957
  }
59958
59958
  );
59959
59959
  DialogTitle.displayName = TITLE_NAME;
@@ -59962,7 +59962,7 @@ var require_dist65 = __commonJS({
59962
59962
  (props, forwardedRef) => {
59963
59963
  const { __scopeDialog, ...descriptionProps } = props;
59964
59964
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
59965
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
59965
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
59966
59966
  }
59967
59967
  );
59968
59968
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -59971,7 +59971,7 @@ var require_dist65 = __commonJS({
59971
59971
  (props, forwardedRef) => {
59972
59972
  const { __scopeDialog, ...closeProps } = props;
59973
59973
  const context = useDialogContext(CLOSE_NAME, __scopeDialog);
59974
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
59974
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59975
59975
  import_react_primitive.Primitive.button,
59976
59976
  {
59977
59977
  type: "button",
@@ -69721,7 +69721,7 @@ var require_client_types = __commonJS({
69721
69721
  exports.simpleToMedia = simpleToMedia;
69722
69722
  exports.outputStreamComponents = outputStreamComponents;
69723
69723
  exports.inputMedia = inputMedia;
69724
- exports.discriminatedForm = discriminatedForm4;
69724
+ exports.discriminatedForm = discriminatedForm5;
69725
69725
  exports.mappingsToStreams = mappingsToStreams;
69726
69726
  exports.singleAvStreamMapping = singleAvStreamMapping;
69727
69727
  var document_1 = require_document();
@@ -69813,7 +69813,7 @@ var require_client_types = __commonJS({
69813
69813
  tooltip: "rgba(255, 255, 255, 0.9)"
69814
69814
  }
69815
69815
  };
69816
- function discriminatedForm4(setup) {
69816
+ function discriminatedForm5(setup) {
69817
69817
  const options = Object.keys(setup).map((k) => ({
69818
69818
  key: k,
69819
69819
  display: setup[k].display
@@ -69833,7 +69833,7 @@ var require_client_types = __commonJS({
69833
69833
  }
69834
69834
  };
69835
69835
  }
69836
- discriminatedForm4.kind = function(setup) {
69836
+ discriminatedForm5.kind = function(setup) {
69837
69837
  const options = Object.keys(setup).map((k) => ({
69838
69838
  key: k,
69839
69839
  display: setup[k].display
@@ -85603,9 +85603,54 @@ function FullscreenView({ state, config }) {
85603
85603
  return;
85604
85604
  const element = document.getElementById(`${id}-video`);
85605
85605
  if (import_hls.default.isSupported()) {
85606
- const hls = new import_hls.default();
85606
+ let widevineLicenseUrl;
85607
+ const headers = {};
85608
+ if (config.drmProvider === "ezdrm") {
85609
+ if (config.__global?.ezdrmConfig?.pX || state.drmToken) {
85610
+ widevineLicenseUrl = `https://widevine-dash.ezdrm.com/widevine-php/widevine-foreignkey.php?pX=${config.__global?.ezdrmConfig?.pX || state.drmToken}`;
85611
+ }
85612
+ }
85613
+ if (config.drmProvider === "axinom") {
85614
+ widevineLicenseUrl = `https://drm-widevine-licensing.axprod.net/AcquireLicense`;
85615
+ headers["X-AxDrm-Message"] = state.drmToken;
85616
+ }
85617
+ const hls = new import_hls.default({
85618
+ widevineLicenseUrl,
85619
+ emeEnabled: !!widevineLicenseUrl,
85620
+ licenseXhrSetup: (xhr) => {
85621
+ for (const k in headers) {
85622
+ const v = headers[k];
85623
+ if (v !== void 0) {
85624
+ xhr.setRequestHeader(k, v);
85625
+ }
85626
+ }
85627
+ }
85628
+ });
85607
85629
  hls.loadSource(url);
85608
85630
  hls.attachMedia(element);
85631
+ let errors = 0;
85632
+ hls.on(import_hls.default.Events.ERROR, function(_event, data) {
85633
+ if (data.fatal) {
85634
+ if (errors++ > 10)
85635
+ return hls.destroy();
85636
+ switch (data.type) {
85637
+ case import_hls.default.ErrorTypes.NETWORK_ERROR:
85638
+ console.error("HLS network error", data);
85639
+ setTimeout(() => hls.loadSource(url), 1e3);
85640
+ break;
85641
+ case import_hls.default.ErrorTypes.MEDIA_ERROR:
85642
+ console.error("HLS media error", data);
85643
+ setTimeout(() => hls.recoverMediaError(), 1e3);
85644
+ break;
85645
+ default:
85646
+ hls.destroy();
85647
+ break;
85648
+ }
85649
+ }
85650
+ });
85651
+ return () => {
85652
+ hls.destroy();
85653
+ };
85609
85654
  } else if (element.canPlayType("application/vnd.apple.mpegurl")) {
85610
85655
  element.src = url;
85611
85656
  }
@@ -85620,8 +85665,74 @@ var fullscreen_default = FullscreenView;
85620
85665
 
85621
85666
  // build/output.autoCmaf/inline-view.js
85622
85667
  var import_jsx_runtime13 = __toESM(require_jsx_runtime());
85623
- function InlineView5({ state }) {
85624
- return (0, import_jsx_runtime13.jsx)("div", { className: "-output", children: state.enabled ? (0, import_jsx_runtime13.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Output enabled" }) : (0, import_jsx_runtime13.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
85668
+ var import_hls2 = __toESM(require_hls());
85669
+ var import_react4 = __toESM(require_react());
85670
+ function InlineView5({ state, config }) {
85671
+ const url = state.url;
85672
+ const id = config.id;
85673
+ const previewVideo = (0, import_react4.useRef)(null);
85674
+ const [showPreview, setShowPreview] = (0, import_react4.useState)(config.showPreview ?? true);
85675
+ (0, import_react4.useEffect)(() => {
85676
+ if (!url)
85677
+ return;
85678
+ if (!previewVideo.current)
85679
+ return;
85680
+ if (!showPreview)
85681
+ return;
85682
+ if (import_hls2.default.isSupported()) {
85683
+ let widevineLicenseUrl;
85684
+ const headers = {};
85685
+ if (config.drmProvider === "ezdrm") {
85686
+ if (config.__global?.ezdrmConfig?.pX || state.drmToken) {
85687
+ widevineLicenseUrl = `https://widevine-dash.ezdrm.com/widevine-php/widevine-foreignkey.php?pX=${config.__global?.ezdrmConfig?.pX || state.drmToken}`;
85688
+ }
85689
+ }
85690
+ if (config.drmProvider === "axinom") {
85691
+ widevineLicenseUrl = `https://drm-widevine-licensing.axprod.net/AcquireLicense`;
85692
+ headers["X-AxDrm-Message"] = state.drmToken;
85693
+ }
85694
+ const hls = new import_hls2.default({
85695
+ widevineLicenseUrl,
85696
+ emeEnabled: !!widevineLicenseUrl,
85697
+ licenseXhrSetup: (xhr) => {
85698
+ for (const k in headers) {
85699
+ const v = headers[k];
85700
+ if (v !== void 0) {
85701
+ xhr.setRequestHeader(k, v);
85702
+ }
85703
+ }
85704
+ }
85705
+ });
85706
+ hls.loadSource(url);
85707
+ hls.attachMedia(previewVideo.current);
85708
+ let errors = 0;
85709
+ hls.on(import_hls2.default.Events.ERROR, function(_event, data) {
85710
+ if (data.fatal) {
85711
+ if (errors++ > 10)
85712
+ return hls.destroy();
85713
+ switch (data.type) {
85714
+ case import_hls2.default.ErrorTypes.NETWORK_ERROR:
85715
+ console.error("HLS network error", data);
85716
+ setTimeout(() => hls.loadSource(url), 1e3);
85717
+ break;
85718
+ case import_hls2.default.ErrorTypes.MEDIA_ERROR:
85719
+ console.error("HLS media error", data);
85720
+ setTimeout(() => hls.recoverMediaError(), 1e3);
85721
+ break;
85722
+ default:
85723
+ hls.destroy();
85724
+ break;
85725
+ }
85726
+ }
85727
+ });
85728
+ return () => {
85729
+ hls.destroy();
85730
+ };
85731
+ } else if (previewVideo.current.canPlayType("application/vnd.apple.mpegurl")) {
85732
+ previewVideo.current.src = url;
85733
+ }
85734
+ }, [config.__global?.ezdrmConfig?.pX, config.drmProvider, state.drmToken, url, showPreview]);
85735
+ return (0, import_jsx_runtime13.jsxs)("div", { className: "cmaf-output", children: [state.enabled ? (0, import_jsx_runtime13.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Output enabled" }) : (0, import_jsx_runtime13.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }), (0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime13.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime13.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), !url ? (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, {}) : (0, import_jsx_runtime13.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime13.jsx)("video", { ref: previewVideo, autoPlay: true, muted: true, id: `${id}-video` }) })] });
85625
85736
  }
85626
85737
  var inline_view_default5 = InlineView5;
85627
85738
 
@@ -90007,12 +90118,32 @@ function info_default8(R) {
90007
90118
  },
90008
90119
  multiplePrograms: {
90009
90120
  help: "Produce multiple multivariants if more than one program is present",
90121
+ advanced: true,
90010
90122
  hint: {
90011
90123
  type: "boolean",
90012
90124
  optional: true,
90013
90125
  defaultValue: false
90014
90126
  }
90015
90127
  },
90128
+ discontinuityHandling: {
90129
+ help: "What to do when a gap or discontinuity is encountered",
90130
+ advanced: true,
90131
+ hint: {
90132
+ type: "select",
90133
+ defaultValue: "discontinuity",
90134
+ optional: true,
90135
+ options: [
90136
+ {
90137
+ display: "Prefer Discontinuity",
90138
+ value: "discontinuity"
90139
+ },
90140
+ {
90141
+ display: "Prefer Gaps",
90142
+ value: "gap"
90143
+ }
90144
+ ]
90145
+ }
90146
+ },
90016
90147
  drmProvider: {
90017
90148
  help: "Encrypt with a DRM provider (if configured globally)",
90018
90149
  hint: {
@@ -90237,6 +90368,25 @@ function info_default11(registration) {
90237
90368
  optional: true
90238
90369
  }
90239
90370
  },
90371
+ discontinuityHandling: {
90372
+ help: "What to do when a gap or discontinuity is encountered",
90373
+ advanced: true,
90374
+ hint: {
90375
+ type: "select",
90376
+ defaultValue: "gap",
90377
+ optional: true,
90378
+ options: [
90379
+ {
90380
+ display: "Prefer Discontinuity",
90381
+ value: "discontinuity"
90382
+ },
90383
+ {
90384
+ display: "Prefer Gaps",
90385
+ value: "gap"
90386
+ }
90387
+ ]
90388
+ }
90389
+ },
90240
90390
  segments: SegmentFormEntry,
90241
90391
  destinations: DestinationsFormEntry,
90242
90392
  pushMode: {
@@ -90483,7 +90633,7 @@ var import_config3 = __toESM(require_config());
90483
90633
 
90484
90634
  // build/output.preview/inline-view.js
90485
90635
  var import_jsx_runtime18 = __toESM(require_jsx_runtime());
90486
- var import_react5 = __toESM(require_react());
90636
+ var import_react6 = __toESM(require_react());
90487
90637
 
90488
90638
  // build/shared/whep.js
90489
90639
  var import_webrtc_client = __toESM(require_webrtc_client());
@@ -90533,9 +90683,9 @@ function createPlayerElement(stream, container) {
90533
90683
  function InlineView7({ state, config, raise }) {
90534
90684
  const url = state.url;
90535
90685
  const id = config.id;
90536
- const [showPreview, setShowPreview] = (0, import_react5.useState)(config.showPreview ?? true);
90537
- const [_existing, setClient] = (0, import_react5.useState)(null);
90538
- const createClient = (0, import_react5.useCallback)((url2) => {
90686
+ const [showPreview, setShowPreview] = (0, import_react6.useState)(config.showPreview ?? true);
90687
+ const [_existing, setClient] = (0, import_react6.useState)(null);
90688
+ const createClient = (0, import_react6.useCallback)((url2) => {
90539
90689
  const client = new NorskWhepClient({
90540
90690
  url: url2,
90541
90691
  container: document.getElementById(`preview-${id}`) ?? void 0
@@ -90543,11 +90693,11 @@ function InlineView7({ state, config, raise }) {
90543
90693
  client.start().catch(console.error);
90544
90694
  return client;
90545
90695
  }, [id]);
90546
- const cleanupClient = (0, import_react5.useCallback)(() => {
90547
- console.log("CLEANING UP CLIENT");
90696
+ const cleanupClient = (0, import_react6.useCallback)(() => {
90548
90697
  setClient((client) => {
90549
90698
  if (!client)
90550
90699
  return null;
90700
+ console.log("CLEANING UP CLIENT");
90551
90701
  client.outputVideoTracks.forEach((track) => track.stop());
90552
90702
  if (client.outputAudioTrack) {
90553
90703
  client.outputAudioTrack.stop();
@@ -90559,8 +90709,8 @@ function InlineView7({ state, config, raise }) {
90559
90709
  return null;
90560
90710
  });
90561
90711
  }, []);
90562
- const [imageUrl, setImageUrl] = (0, import_react5.useState)(null);
90563
- (0, import_react5.useEffect)(() => {
90712
+ const [imageUrl, setImageUrl] = (0, import_react6.useState)(null);
90713
+ (0, import_react6.useEffect)(() => {
90564
90714
  if (!url || !showPreview) {
90565
90715
  setImageUrl(null);
90566
90716
  return;
@@ -90571,7 +90721,7 @@ function InlineView7({ state, config, raise }) {
90571
90721
  }
90572
90722
  setImageUrl(url);
90573
90723
  }, [url, showPreview, config.previewMode]);
90574
- (0, import_react5.useEffect)(() => {
90724
+ (0, import_react6.useEffect)(() => {
90575
90725
  cleanupClient();
90576
90726
  if (config.previewMode === "image") {
90577
90727
  return;
@@ -90590,10 +90740,10 @@ function InlineView7({ state, config, raise }) {
90590
90740
  id,
90591
90741
  createClient
90592
90742
  ]);
90593
- (0, import_react5.useEffect)(() => {
90743
+ (0, import_react6.useEffect)(() => {
90594
90744
  setShowPreview(config.showPreview ?? true);
90595
90745
  }, [config.showPreview]);
90596
- (0, import_react5.useEffect)(() => raise?.(), [raise]);
90746
+ (0, import_react6.useEffect)(() => raise?.(), [raise]);
90597
90747
  if (!url)
90598
90748
  return (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children: "..." });
90599
90749
  function percentage(levels) {
@@ -91330,13 +91480,13 @@ var import_config4 = __toESM(require_config());
91330
91480
 
91331
91481
  // build/output.whep/inline-view.js
91332
91482
  var import_jsx_runtime25 = __toESM(require_jsx_runtime());
91333
- var import_react6 = __toESM(require_react());
91483
+ var import_react7 = __toESM(require_react());
91334
91484
  function InlineView12({ state, config, raise }) {
91335
91485
  const url = state.url;
91336
91486
  const id = config.id;
91337
- const [showPreview, setShowPreview] = (0, import_react6.useState)(config.showPreview ?? true);
91338
- const [_existing, setClient] = (0, import_react6.useState)(null);
91339
- const createClient = (0, import_react6.useCallback)((url2) => {
91487
+ const [showPreview, setShowPreview] = (0, import_react7.useState)(config.showPreview ?? true);
91488
+ const [_existing, setClient] = (0, import_react7.useState)(null);
91489
+ const createClient = (0, import_react7.useCallback)((url2) => {
91340
91490
  const newClient = new NorskWhepClient({
91341
91491
  url: url2,
91342
91492
  container: document.getElementById(`whep-${id}`) ?? void 0
@@ -91344,7 +91494,7 @@ function InlineView12({ state, config, raise }) {
91344
91494
  newClient.start().catch(console.error);
91345
91495
  return newClient;
91346
91496
  }, [id]);
91347
- const cleanupClient = (0, import_react6.useCallback)((client) => {
91497
+ const cleanupClient = (0, import_react7.useCallback)((client) => {
91348
91498
  client.outputVideoTracks.forEach((track) => track.stop());
91349
91499
  if (client.outputAudioTrack) {
91350
91500
  client.outputAudioTrack.stop();
@@ -91354,7 +91504,7 @@ function InlineView12({ state, config, raise }) {
91354
91504
  video.remove();
91355
91505
  });
91356
91506
  }, []);
91357
- (0, import_react6.useEffect)(() => {
91507
+ (0, import_react7.useEffect)(() => {
91358
91508
  setClient((existing) => {
91359
91509
  if (existing)
91360
91510
  cleanupClient(existing);
@@ -91368,10 +91518,10 @@ function InlineView12({ state, config, raise }) {
91368
91518
  cleanupClient(newClient);
91369
91519
  };
91370
91520
  }, [url, showPreview, createClient, id, cleanupClient]);
91371
- (0, import_react6.useEffect)(() => {
91521
+ (0, import_react7.useEffect)(() => {
91372
91522
  setShowPreview(config.showPreview ?? true);
91373
91523
  }, [config.showPreview]);
91374
- (0, import_react6.useEffect)(() => raise && raise(), [raise]);
91524
+ (0, import_react7.useEffect)(() => raise && raise(), [raise]);
91375
91525
  if (!url)
91376
91526
  return (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children: "..." });
91377
91527
  const videoStyles = `
@@ -91677,7 +91827,7 @@ var inline_view_default13 = InlineView13;
91677
91827
 
91678
91828
  // build/processor.audioMixer/fullscreen-view.js
91679
91829
  var import_jsx_runtime29 = __toESM(require_jsx_runtime());
91680
- var import_react7 = __toESM(require_react());
91830
+ var import_react8 = __toESM(require_react());
91681
91831
  function FullScreen({ state, sendCommand }) {
91682
91832
  const initialSliders = [];
91683
91833
  const initialPreMuteSliders = [];
@@ -91690,9 +91840,9 @@ function FullScreen({ state, sendCommand }) {
91690
91840
  initialSliders.push(state.output.configuredGain || 0);
91691
91841
  initialPreMuteSliders.push(state.output.configuredGain || 0);
91692
91842
  initialCanSetVolume.push(true);
91693
- const [canSetVolume, setCanSetVolume] = (0, import_react7.useState)(initialCanSetVolume);
91694
- const [sliderValues, setSliderValue] = (0, import_react7.useState)(initialSliders);
91695
- const [preMuteValues, setPreMuteValues] = (0, import_react7.useState)(initialPreMuteSliders);
91843
+ const [canSetVolume, setCanSetVolume] = (0, import_react8.useState)(initialCanSetVolume);
91844
+ const [sliderValues, setSliderValue] = (0, import_react8.useState)(initialSliders);
91845
+ const [preMuteValues, setPreMuteValues] = (0, import_react8.useState)(initialPreMuteSliders);
91696
91846
  const throttleDelay = 100;
91697
91847
  function percentage(levels) {
91698
91848
  if (!levels) {
@@ -91913,11 +92063,11 @@ var import_FaWindowRestore = __toESM(require_FaWindowRestore());
91913
92063
 
91914
92064
  // build/processor.browserOverlay/summary-view.js
91915
92065
  var import_jsx_runtime30 = __toESM(require_jsx_runtime());
91916
- var import_react8 = __toESM(require_react());
92066
+ var import_react9 = __toESM(require_react());
91917
92067
  function SummaryView8({ state, sendCommand }) {
91918
- const [url, setUrl] = (0, import_react8.useState)(state.currentUrl);
91919
- const [enabled, setEnabled] = (0, import_react8.useState)(state.enabled);
91920
- const stateChanged = (0, import_react8.useMemo)(() => {
92068
+ const [url, setUrl] = (0, import_react9.useState)(state.currentUrl);
92069
+ const [enabled, setEnabled] = (0, import_react9.useState)(state.enabled);
92070
+ const stateChanged = (0, import_react9.useMemo)(() => {
91921
92071
  return url !== state.currentUrl || enabled !== state.enabled;
91922
92072
  }, [url, enabled, state.currentUrl, state.enabled]);
91923
92073
  const buttonClass = "mt-2 mb-5 text-white w-full justify-center bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800";
@@ -91958,8 +92108,10 @@ function info_default27({ defineComponent, validation: { Z } }) {
91958
92108
  video: true
91959
92109
  },
91960
92110
  produces: {
91961
- type: "simple-stream",
91962
- video: true
92111
+ type: "dynamic-streams",
92112
+ streams: (_, input) => {
92113
+ return input;
92114
+ }
91963
92115
  }
91964
92116
  },
91965
92117
  extraValidation: function(ctx) {
@@ -93601,6 +93753,7 @@ function info_default30({ defineComponent, All, validation: { Z } }) {
93601
93753
  },
93602
93754
  startingStreamId: {
93603
93755
  help: "The initial stream id to assign, all streams will then increment from this",
93756
+ advanced: true,
93604
93757
  hint: {
93605
93758
  type: "numeric",
93606
93759
  optional: true,
@@ -93617,6 +93770,14 @@ function info_default30({ defineComponent, All, validation: { Z } }) {
93617
93770
  optional: true
93618
93771
  }
93619
93772
  },
93773
+ sync: {
93774
+ help: "Synchronise the streams that are involved (except subtitles), this will also condition the streams with discontinuities if needed",
93775
+ advanced: true,
93776
+ hint: {
93777
+ type: "boolean",
93778
+ defaultValue: true
93779
+ }
93780
+ },
93620
93781
  notes: { help: "Notes about this component", hint: { type: "text", optional: true } }
93621
93782
  }
93622
93783
  }
@@ -93766,15 +93927,15 @@ var import_config7 = __toESM(require_config());
93766
93927
 
93767
93928
  // build/processor.onscreenGraphic/image-selection.js
93768
93929
  var import_jsx_runtime40 = __toESM(require_jsx_runtime());
93769
- var import_react9 = __toESM(require_react());
93930
+ var import_react10 = __toESM(require_react());
93770
93931
  function GraphicSelection(props) {
93771
- const [loading, setLoading] = (0, import_react9.useState)(true);
93932
+ const [loading, setLoading] = (0, import_react10.useState)(true);
93772
93933
  const staticUrl = props.urls?.staticUrl.toString();
93773
93934
  const { onChanged, defaultValue } = props;
93774
- const myOnChange = (0, import_react9.useCallback)((e) => {
93935
+ const myOnChange = (0, import_react10.useCallback)((e) => {
93775
93936
  onChanged(e.target.value);
93776
93937
  }, [onChanged]);
93777
- (0, import_react9.useEffect)(() => {
93938
+ (0, import_react10.useEffect)(() => {
93778
93939
  const fn = async () => {
93779
93940
  if (!staticUrl)
93780
93941
  return;
@@ -93792,7 +93953,7 @@ function GraphicSelection(props) {
93792
93953
  };
93793
93954
  fn().catch(console.error);
93794
93955
  }, [staticUrl, defaultValue, onChanged]);
93795
- const [graphcs, setGraphics] = (0, import_react9.useState)([]);
93956
+ const [graphcs, setGraphics] = (0, import_react10.useState)([]);
93796
93957
  if (loading) {
93797
93958
  return (0, import_jsx_runtime40.jsx)("div", { children: "Loading.." });
93798
93959
  }
@@ -93807,19 +93968,19 @@ var image_selection_default = GraphicSelection;
93807
93968
 
93808
93969
  // build/processor.onscreenGraphic/summary-view.js
93809
93970
  var import_jsx_runtime41 = __toESM(require_jsx_runtime());
93810
- var import_react10 = __toESM(require_react());
93971
+ var import_react11 = __toESM(require_react());
93811
93972
  function SummaryView9({ state, sendCommand, urls }) {
93812
- const [graphic, setGraphic] = (0, import_react10.useState)(state.activeGraphic?.file);
93813
- const [position, setPosition] = (0, import_react10.useState)(state.activeGraphic?.position ?? { type: "named", position: "topleft" });
93814
- const [graphics, setGraphics] = (0, import_react10.useState)([]);
93815
- const [fileToUpload, setFileToUpload] = (0, import_react10.useState)(void 0);
93816
- const [showFileInput, setShowFileInput] = (0, import_react10.useState)(false);
93817
- const [showUploadButton, setShowUploadButton] = (0, import_react10.useState)(false);
93818
- const [uploadStatus, setUploadStatus] = (0, import_react10.useState)({ success: false, message: null });
93819
- const [showDeleteDropdown, setShowDeleteDropdown] = (0, import_react10.useState)(false);
93820
- const [graphicToDelete, setGraphicToDelete] = (0, import_react10.useState)("");
93973
+ const [graphic, setGraphic] = (0, import_react11.useState)(state.activeGraphic?.file);
93974
+ const [position, setPosition] = (0, import_react11.useState)(state.activeGraphic?.position ?? { type: "named", position: "topleft" });
93975
+ const [graphics, setGraphics] = (0, import_react11.useState)([]);
93976
+ const [fileToUpload, setFileToUpload] = (0, import_react11.useState)(void 0);
93977
+ const [showFileInput, setShowFileInput] = (0, import_react11.useState)(false);
93978
+ const [showUploadButton, setShowUploadButton] = (0, import_react11.useState)(false);
93979
+ const [uploadStatus, setUploadStatus] = (0, import_react11.useState)({ success: false, message: null });
93980
+ const [showDeleteDropdown, setShowDeleteDropdown] = (0, import_react11.useState)(false);
93981
+ const [graphicToDelete, setGraphicToDelete] = (0, import_react11.useState)("");
93821
93982
  const staticUrl = urls.staticUrl.toString();
93822
- const updateGraphics = (0, import_react10.useCallback)(async () => {
93983
+ const updateGraphics = (0, import_react11.useCallback)(async () => {
93823
93984
  try {
93824
93985
  const result2 = await fetch(`${staticUrl}/graphics`);
93825
93986
  if (result2.ok) {
@@ -93836,7 +93997,7 @@ function SummaryView9({ state, sendCommand, urls }) {
93836
93997
  });
93837
93998
  }
93838
93999
  }, [staticUrl]);
93839
- (0, import_react10.useEffect)(() => {
94000
+ (0, import_react11.useEffect)(() => {
93840
94001
  updateGraphics().catch(console.error);
93841
94002
  }, [updateGraphics]);
93842
94003
  const onFileChange = (e) => {
@@ -93996,16 +94157,16 @@ function convertPosition(givenPosition, currentVideo, currentGraphic) {
93996
94157
  var PositionSelector = ({ initialPosition: givenPosition = { type: "named", position: "topleft" }, onChange, currentVideo, currentGraphic, graphicChanged }) => {
93997
94158
  const convertPos = (pos) => convertPosition(pos, currentVideo, currentGraphic);
93998
94159
  const initialPosition = convertPos(givenPosition);
93999
- const [position, setLocalPosition] = (0, import_react10.useState)(initialPosition);
94000
- const setPosition = (0, import_react10.useCallback)((v) => {
94160
+ const [position, setLocalPosition] = (0, import_react11.useState)(initialPosition);
94161
+ const setPosition = (0, import_react11.useCallback)((v) => {
94001
94162
  setLocalPosition(v);
94002
94163
  onChange(fromLocalPosition(v));
94003
94164
  }, [onChange]);
94004
- const [positionUnit, setPositionUnit] = (0, import_react10.useState)(position.type === "coordinate" ? "px" : "%");
94005
- const [isDragging, setIsDragging] = (0, import_react10.useState)(false);
94006
- const [dragStart, setDragStart] = (0, import_react10.useState)({ xPct: 0, yPct: 0, cx: 0, cy: 0 });
94007
- const previewAreaRef = (0, import_react10.useRef)(null);
94008
- const previewTargetRef = (0, import_react10.useRef)(null);
94165
+ const [positionUnit, setPositionUnit] = (0, import_react11.useState)(position.type === "coordinate" ? "px" : "%");
94166
+ const [isDragging, setIsDragging] = (0, import_react11.useState)(false);
94167
+ const [dragStart, setDragStart] = (0, import_react11.useState)({ xPct: 0, yPct: 0, cx: 0, cy: 0 });
94168
+ const previewAreaRef = (0, import_react11.useRef)(null);
94169
+ const previewTargetRef = (0, import_react11.useRef)(null);
94009
94170
  const handleMouseDown = (e) => {
94010
94171
  setIsDragging(true);
94011
94172
  setDragStart({
@@ -94015,7 +94176,7 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94015
94176
  });
94016
94177
  handleMouseMove(e);
94017
94178
  };
94018
- const handleMouseMove = (0, import_react10.useCallback)((e) => {
94179
+ const handleMouseMove = (0, import_react11.useCallback)((e) => {
94019
94180
  if (!isDragging)
94020
94181
  return;
94021
94182
  const boundingBox = previewAreaRef.current?.getBoundingClientRect() ?? { width: 0, height: 0 };
@@ -94056,10 +94217,10 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94056
94217
  positionUnit,
94057
94218
  setPosition
94058
94219
  ]);
94059
- const handleMouseUp = (0, import_react10.useCallback)(() => {
94220
+ const handleMouseUp = (0, import_react11.useCallback)(() => {
94060
94221
  setIsDragging(false);
94061
94222
  }, []);
94062
- (0, import_react10.useEffect)(() => {
94223
+ (0, import_react11.useEffect)(() => {
94063
94224
  const previous = { handleMouseMove, handleMouseUp };
94064
94225
  if (isDragging) {
94065
94226
  window.addEventListener("mousemove", handleMouseMove);
@@ -94230,11 +94391,11 @@ function assertUnreachable22(_) {
94230
94391
 
94231
94392
  // build/processor.smartSingleMediaSwitch/source-selection.js
94232
94393
  var import_jsx_runtime42 = __toESM(require_jsx_runtime());
94233
- var import_react11 = __toESM(require_react());
94394
+ var import_react12 = __toESM(require_react());
94234
94395
  function OrderInput(props) {
94235
94396
  const { onChanged } = props;
94236
- const [value, setValue] = (0, import_react11.useState)(props.defaultValue ?? []);
94237
- (0, import_react11.useEffect)(() => {
94397
+ const [value, setValue] = (0, import_react12.useState)(props.defaultValue ?? []);
94398
+ (0, import_react12.useEffect)(() => {
94238
94399
  onChanged(value);
94239
94400
  }, [value, onChanged]);
94240
94401
  if (value.length == 0) {
@@ -94418,11 +94579,11 @@ function assertUnreachable23(_) {
94418
94579
 
94419
94580
  // build/processor.smartSourceSwitch/source-selection.js
94420
94581
  var import_jsx_runtime44 = __toESM(require_jsx_runtime());
94421
- var import_react12 = __toESM(require_react());
94582
+ var import_react13 = __toESM(require_react());
94422
94583
  function OrderInput2(props) {
94423
94584
  const { onChanged } = props;
94424
- const [value, setValue] = (0, import_react12.useState)(props.defaultValue ?? []);
94425
- (0, import_react12.useEffect)(() => {
94585
+ const [value, setValue] = (0, import_react13.useState)(props.defaultValue ?? []);
94586
+ (0, import_react13.useEffect)(() => {
94426
94587
  onChanged(value);
94427
94588
  }, [value, onChanged]);
94428
94589
  if (value.length == 0) {
@@ -94453,16 +94614,33 @@ var source_selection_default2 = OrderInput2;
94453
94614
 
94454
94615
  // build/processor.smartSourceSwitch/inline-view.js
94455
94616
  var import_jsx_runtime45 = __toESM(require_jsx_runtime());
94456
- var activeClasses2 = "active text-green-500 dark:text-green-300";
94457
- var availableClasses2 = "available text-green-500 dark:text-green-300";
94458
- var inactiveClasses2 = "inactive text-orange-500 dark:text-orange-300";
94617
+ function cn(...classes) {
94618
+ return classes.filter(Boolean).join(" ");
94619
+ }
94459
94620
  function InlineView17({ state, config }) {
94460
- return (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [(0, import_jsx_runtime45.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime45.jsxs)("ul", { children: [config.sources.map((s, i) => state.activeSource == s ? (0, import_jsx_runtime45.jsxs)("li", { className: activeClasses2, children: [s, " <--"] }, i) : state.availableSources.includes(s) ? (0, import_jsx_runtime45.jsxs)("li", { className: availableClasses2, children: [s, " (available)"] }, i) : (0, import_jsx_runtime45.jsxs)("li", { className: inactiveClasses2, children: [s, " (inactive)"] }, i)), (0, import_jsx_runtime45.jsx)("li", { className: state.activeSource == "fallback" ? activeClasses2 : availableClasses2, children: "fallback" }, "fallback")] })] });
94621
+ return (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [(0, import_jsx_runtime45.jsx)("h5", { className: "text-gray-900 dark:text-white font-medium", children: "Sources:" }), (0, import_jsx_runtime45.jsxs)("ul", { className: "space-y-2 mt-2", children: [config.sources.map((s, i) => {
94622
+ const isActive = state.activeSource === s;
94623
+ const isAvailable = state.availableSources.includes(s);
94624
+ const indicatorClasses = cn("w-3 h-3 rounded-full", isActive ? "bg-live" : isAvailable ? "bg-standby" : "bg-offline");
94625
+ return (0, import_jsx_runtime45.jsxs)("li", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime45.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime45.jsx)("div", { className: indicatorClasses }), isActive && (0, import_jsx_runtime45.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: (0, import_jsx_runtime45.jsx)("div", { className: "w-3 h-3 rounded-full bg-live animate-ping duration-150" }) })] }), (0, import_jsx_runtime45.jsx)("span", { className: "text-gray-900 dark:text-white", children: s })] }, i);
94626
+ }), (0, import_jsx_runtime45.jsxs)("li", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime45.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime45.jsx)("div", { className: cn("w-3 h-3 rounded-full", state.activeSource === "fallback" ? "bg-live" : "bg-standby") }), state.activeSource === "fallback" && (0, import_jsx_runtime45.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: (0, import_jsx_runtime45.jsx)("div", { className: "w-3 h-3 rounded-full bg-live animate-ping duration-150" }) })] }), (0, import_jsx_runtime45.jsx)("span", { className: "text-gray-900 dark:text-white", children: "fallback" })] }, "fallback")] })] });
94461
94627
  }
94462
94628
  var inline_view_default17 = InlineView17;
94463
94629
 
94464
94630
  // build/processor.smartSourceSwitch/info.js
94465
94631
  var import_FaSlidersH2 = __toESM(require_FaSlidersH());
94632
+ var import_client_types4 = __toESM(require_client_types());
94633
+
94634
+ // build/processor.smartSourceSwitch/form-views.js
94635
+ var import_jsx_runtime46 = __toESM(require_jsx_runtime());
94636
+ function FallbackConfiguration(cfg) {
94637
+ if (cfg.kind === "file") {
94638
+ return (0, import_jsx_runtime46.jsx)("div", { className: "text-sm", children: cfg.filePath || "No file specified" });
94639
+ }
94640
+ return (0, import_jsx_runtime46.jsx)("div", { className: "text-sm", children: "Test Card" });
94641
+ }
94642
+
94643
+ // build/processor.smartSourceSwitch/info.js
94466
94644
  function info_default34({ defineComponent, Av, common: { Resolutions, FrameRates } }) {
94467
94645
  function patchConfigFromSubscription(cfg, sub) {
94468
94646
  const potentiallyNewSources = sub.expectedStreams.map((s) => s.sourceName).filter((s) => !!s);
@@ -94607,6 +94785,34 @@ function info_default34({ defineComponent, Av, common: { Resolutions, FrameRates
94607
94785
  defaultValue: []
94608
94786
  }
94609
94787
  },
94788
+ fallback: {
94789
+ help: "Configuration for fallback source when no inputs are available",
94790
+ advanced: true,
94791
+ hint: {
94792
+ type: "form-pick",
94793
+ envOverride: true,
94794
+ defaultValue: { kind: "testcard" },
94795
+ form: import_client_types4.discriminatedForm.kind({
94796
+ testcard: {
94797
+ display: "Test Card",
94798
+ form: {}
94799
+ },
94800
+ file: {
94801
+ display: "MP4 File",
94802
+ form: {
94803
+ filePath: {
94804
+ help: "Path to MP4 file to use as fallback",
94805
+ hint: {
94806
+ type: "text",
94807
+ envOverride: true
94808
+ }
94809
+ }
94810
+ }
94811
+ }
94812
+ }),
94813
+ view: FallbackConfiguration
94814
+ }
94815
+ },
94610
94816
  notes: { help: "Notes about this component", hint: { type: "text", optional: true } }
94611
94817
  }
94612
94818
  }
@@ -94714,21 +94920,21 @@ function info_default35({ defineComponent, All, validation: { Z } }) {
94714
94920
  var import_config8 = __toESM(require_config());
94715
94921
 
94716
94922
  // build/processor.syncExternalAudio/inline-view.js
94717
- var import_jsx_runtime46 = __toESM(require_jsx_runtime());
94718
- var import_react13 = __toESM(require_react());
94923
+ var import_jsx_runtime47 = __toESM(require_jsx_runtime());
94924
+ var import_react14 = __toESM(require_react());
94719
94925
  function InlineView18({ state, raise }) {
94720
- (0, import_react13.useEffect)(() => {
94926
+ (0, import_react14.useEffect)(() => {
94721
94927
  if (raise) {
94722
94928
  raise();
94723
94929
  }
94724
94930
  }, [raise]);
94725
- return (0, import_jsx_runtime46.jsx)("div", { className: "processor-syncExternalAudio", children: (0, import_jsx_runtime46.jsx)("div", { className: "sync-status-inline", children: (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime46.jsx)("div", { className: `w-2 h-2 rounded-full ${state.isConnected ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime46.jsx)("span", { className: "text-sm", children: state.isConnected ? "Connected" : "Disconnected" }), state.currentSyncMs !== void 0 && (0, import_jsx_runtime46.jsxs)("span", { className: "text-xs text-gray-500", children: ["(", state.currentSyncMs, "ms)"] })] }) }) });
94931
+ return (0, import_jsx_runtime47.jsx)("div", { className: "processor-syncExternalAudio", children: (0, import_jsx_runtime47.jsx)("div", { className: "sync-status-inline", children: (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime47.jsx)("div", { className: `w-2 h-2 rounded-full ${state.isConnected ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime47.jsx)("span", { className: "text-sm", children: state.isConnected ? "Connected" : "Disconnected" }), state.currentSyncMs !== void 0 && (0, import_jsx_runtime47.jsxs)("span", { className: "text-xs text-gray-500", children: ["(", state.currentSyncMs, "ms)"] })] }) }) });
94726
94932
  }
94727
94933
  var inline_view_default18 = InlineView18;
94728
94934
 
94729
94935
  // build/processor.syncExternalAudio/fullscreen-view.js
94730
- var import_jsx_runtime47 = __toESM(require_jsx_runtime());
94731
- var import_react14 = __toESM(require_react());
94936
+ var import_jsx_runtime48 = __toESM(require_jsx_runtime());
94937
+ var import_react15 = __toESM(require_react());
94732
94938
  var CommentaryWhepClient = class extends NorskWhepClient {
94733
94939
  audio;
94734
94940
  constructor(settings) {
@@ -94871,15 +95077,15 @@ var DualWhepPreview = class {
94871
95077
  }
94872
95078
  };
94873
95079
  function SyncExternalAudioFullscreenView({ state, config, sendCommand }) {
94874
- const videoContainerRef = (0, import_react14.useRef)(null);
94875
- const [preview, setPreview] = (0, import_react14.useState)(null);
94876
- const [isReady, setIsReady] = (0, import_react14.useState)(false);
94877
- const [primaryVolume, setPrimaryVolume] = (0, import_react14.useState)(50);
94878
- const [commentaryVolume, setCommentaryVolume] = (0, import_react14.useState)(100);
94879
- const [primaryMuted, setPrimaryMuted] = (0, import_react14.useState)(false);
94880
- const [commentaryMuted, setCommentaryMuted] = (0, import_react14.useState)(false);
94881
- const [audioStarted, setAudioStarted] = (0, import_react14.useState)(false);
94882
- (0, import_react14.useEffect)(() => {
95080
+ const videoContainerRef = (0, import_react15.useRef)(null);
95081
+ const [preview, setPreview] = (0, import_react15.useState)(null);
95082
+ const [isReady, setIsReady] = (0, import_react15.useState)(false);
95083
+ const [primaryVolume, setPrimaryVolume] = (0, import_react15.useState)(50);
95084
+ const [commentaryVolume, setCommentaryVolume] = (0, import_react15.useState)(100);
95085
+ const [primaryMuted, setPrimaryMuted] = (0, import_react15.useState)(false);
95086
+ const [commentaryMuted, setCommentaryMuted] = (0, import_react15.useState)(false);
95087
+ const [audioStarted, setAudioStarted] = (0, import_react15.useState)(false);
95088
+ (0, import_react15.useEffect)(() => {
94883
95089
  if (state.primaryWhepUrl && state.commentaryWhepUrl && videoContainerRef.current) {
94884
95090
  const newPreview = new DualWhepPreview(videoContainerRef.current, state.primaryWhepUrl, state.commentaryWhepUrl, () => {
94885
95091
  setIsReady(true);
@@ -94891,7 +95097,7 @@ function SyncExternalAudioFullscreenView({ state, config, sendCommand }) {
94891
95097
  };
94892
95098
  }
94893
95099
  }, [state.primaryWhepUrl, state.commentaryWhepUrl]);
94894
- (0, import_react14.useEffect)(() => {
95100
+ (0, import_react15.useEffect)(() => {
94895
95101
  if (preview && isReady) {
94896
95102
  preview.setPrimaryVolume(primaryVolume / 100);
94897
95103
  preview.setPrimaryMuted(primaryMuted);
@@ -94916,7 +95122,7 @@ function SyncExternalAudioFullscreenView({ state, config, sendCommand }) {
94916
95122
  setAudioStarted(true);
94917
95123
  }
94918
95124
  };
94919
- return (0, import_jsx_runtime47.jsxs)("div", { className: "w-full h-full flex flex-col bg-gray-900 text-white", children: [(0, import_jsx_runtime47.jsxs)("div", { className: "flex justify-between items-center p-4 bg-gray-800 border-b border-gray-700", children: [(0, import_jsx_runtime47.jsxs)("h1", { className: "text-xl font-semibold", children: ["Sync External Audio - ", config.displayName] }), (0, import_jsx_runtime47.jsx)("div", { className: "flex items-center space-x-4", children: (0, import_jsx_runtime47.jsxs)("div", { className: `flex items-center space-x-2 ${state.isConnected ? "text-green-400" : "text-red-400"}`, children: [(0, import_jsx_runtime47.jsx)("div", { className: `w-2 h-2 rounded-full ${state.isConnected ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime47.jsx)("span", { className: "text-sm", children: state.isConnected ? "Connected" : "Disconnected" })] }) })] }), (0, import_jsx_runtime47.jsxs)("div", { className: "flex-1 flex", children: [(0, import_jsx_runtime47.jsx)("div", { className: "flex-1 flex flex-col", children: (0, import_jsx_runtime47.jsx)("div", { className: "flex-1 bg-black flex items-center justify-center", children: state.primaryWhepUrl && state.commentaryWhepUrl ? (0, import_jsx_runtime47.jsx)("div", { ref: videoContainerRef, className: "max-w-full max-h-full" }) : (0, import_jsx_runtime47.jsxs)("div", { className: "text-gray-500 text-center", children: [(0, import_jsx_runtime47.jsx)("div", { className: "text-6xl mb-4", children: "\u{1F4FA}" }), (0, import_jsx_runtime47.jsx)("div", { children: "Waiting for video preview..." }), state.primaryWhepUrl && !state.commentaryWhepUrl && (0, import_jsx_runtime47.jsx)("div", { className: "text-sm mt-2", children: "Primary stream ready, waiting for commentary..." }), !state.primaryWhepUrl && state.commentaryWhepUrl && (0, import_jsx_runtime47.jsx)("div", { className: "text-sm mt-2", children: "Commentary stream ready, waiting for primary..." })] }) }) }), (0, import_jsx_runtime47.jsxs)("div", { className: "w-80 bg-gray-800 border-l border-gray-700 flex flex-col", children: [(0, import_jsx_runtime47.jsxs)("div", { className: "p-4 border-b border-gray-700", children: [(0, import_jsx_runtime47.jsx)("h3", { className: "text-lg font-medium mb-4", children: "Commentary Sync Control" }), (0, import_jsx_runtime47.jsxs)("div", { className: "mb-4 p-3 bg-gray-700 rounded-lg text-center", children: [(0, import_jsx_runtime47.jsx)("div", { className: "text-sm text-gray-300", children: "Current Offset" }), (0, import_jsx_runtime47.jsxs)("div", { className: "text-2xl font-mono", children: [state.currentSyncMs, "ms"] })] }), (0, import_jsx_runtime47.jsxs)("div", { className: "mb-4", children: [(0, import_jsx_runtime47.jsx)("div", { className: "text-sm text-gray-300 mb-2", children: "Fine Adjustment (\xB1200ms)" }), (0, import_jsx_runtime47.jsxs)("div", { className: "flex space-x-2", children: [(0, import_jsx_runtime47.jsx)("button", { onClick: () => handleSyncAdjust(-200), className: "flex-1 px-3 py-2 bg-red-600 hover:bg-red-700 rounded text-sm font-medium", children: "-200ms" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => handleSyncAdjust(200), className: "flex-1 px-3 py-2 bg-green-600 hover:bg-green-700 rounded text-sm font-medium", children: "+200ms" })] })] }), (0, import_jsx_runtime47.jsxs)("div", { className: "mb-4", children: [(0, import_jsx_runtime47.jsx)("div", { className: "text-sm text-gray-300 mb-2", children: "Coarse Adjustment" }), (0, import_jsx_runtime47.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [(0, import_jsx_runtime47.jsx)("button", { onClick: () => handleSyncAdjust(-1e3), className: "px-3 py-2 bg-red-700 hover:bg-red-800 rounded text-sm", children: "-1000ms" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => handleSyncAdjust(1e3), className: "px-3 py-2 bg-green-700 hover:bg-green-800 rounded text-sm", children: "+1000ms" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => handleSyncAdjust(-500), className: "px-3 py-2 bg-red-600 hover:bg-red-700 rounded text-sm", children: "-500ms" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => handleSyncAdjust(500), className: "px-3 py-2 bg-green-600 hover:bg-green-700 rounded text-sm", children: "+500ms" })] })] }), (0, import_jsx_runtime47.jsxs)("button", { onClick: handleResetSync, className: "w-full px-3 py-2 bg-blue-600 hover:bg-blue-700 rounded text-sm font-medium", children: ["Reset to Initial (", config.initialSyncMs, "ms)"] })] }), (0, import_jsx_runtime47.jsxs)("div", { className: "p-4 flex-1", children: [(0, import_jsx_runtime47.jsx)("h3", { className: "text-lg font-medium mb-4", children: "Audio Monitor Controls" }), !audioStarted && isReady && (0, import_jsx_runtime47.jsxs)("div", { className: "mb-6 p-4 bg-yellow-900 border border-yellow-600 rounded-lg", children: [(0, import_jsx_runtime47.jsx)("div", { className: "text-sm text-yellow-200 mb-2", children: "Click to enable commentary audio (required by browser policy):" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => void handleStartAudio(), className: "w-full px-3 py-2 bg-yellow-600 hover:bg-yellow-700 rounded text-sm font-medium", children: "\u{1F50A} Start Commentary Audio" })] }), (0, import_jsx_runtime47.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [(0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-medium", children: "Primary Audio" }), (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center space-x-2", children: [isReady ? (0, import_jsx_runtime47.jsx)("span", { className: "text-xs text-green-400", children: "\u2713 Ready" }) : (0, import_jsx_runtime47.jsx)("span", { className: "text-xs text-yellow-400", children: "\u23F3 Loading" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => setPrimaryMuted(!primaryMuted), disabled: !isReady, className: `px-2 py-1 rounded text-xs ${!isReady ? "bg-gray-500 cursor-not-allowed" : primaryMuted ? "bg-red-600 hover:bg-red-700" : "bg-gray-600 hover:bg-gray-700"}`, children: primaryMuted ? "Unmute" : "Mute" })] })] }), (0, import_jsx_runtime47.jsx)("input", { type: "range", min: "0", max: "100", value: primaryVolume, onChange: (e) => setPrimaryVolume(parseInt(e.target.value)), className: "w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer", disabled: primaryMuted || !isReady }), (0, import_jsx_runtime47.jsxs)("div", { className: "text-xs text-gray-400 mt-1", children: [primaryVolume, "%"] })] }), (0, import_jsx_runtime47.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [(0, import_jsx_runtime47.jsx)("span", { className: "text-sm font-medium", children: "Commentary Audio" }), (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center space-x-2", children: [isReady ? (0, import_jsx_runtime47.jsx)("span", { className: "text-xs text-green-400", children: "\u2713 Ready" }) : (0, import_jsx_runtime47.jsx)("span", { className: "text-xs text-yellow-400", children: "\u23F3 Loading" }), (0, import_jsx_runtime47.jsx)("button", { onClick: () => setCommentaryMuted(!commentaryMuted), disabled: !isReady, className: `px-2 py-1 rounded text-xs ${!isReady ? "bg-gray-500 cursor-not-allowed" : commentaryMuted ? "bg-red-600 hover:bg-red-700" : "bg-gray-600 hover:bg-gray-700"}`, children: commentaryMuted ? "Unmute" : "Mute" })] })] }), (0, import_jsx_runtime47.jsx)("input", { type: "range", min: "0", max: "100", value: commentaryVolume, onChange: (e) => setCommentaryVolume(parseInt(e.target.value)), className: "w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer", disabled: commentaryMuted || !isReady }), (0, import_jsx_runtime47.jsxs)("div", { className: "text-xs text-gray-400 mt-1", children: [commentaryVolume, "%"] })] }), (0, import_jsx_runtime47.jsx)("div", { className: "mt-auto pt-4 border-t border-gray-700", children: (0, import_jsx_runtime47.jsxs)("div", { className: "text-xs text-gray-400 space-y-1", children: [(0, import_jsx_runtime47.jsxs)("div", { children: ["Primary Delay: ", config.delayMs, "ms"] }), (0, import_jsx_runtime47.jsxs)("div", { children: ["Primary WHEP: ", state.primaryWhepUrl ? "\u2713 Available" : "\u2717 Not ready"] }), (0, import_jsx_runtime47.jsxs)("div", { children: ["Commentary WHEP: ", state.commentaryWhepUrl ? "\u2713 Available" : "\u2717 Not ready"] }), (0, import_jsx_runtime47.jsxs)("div", { children: ["Dual Streams: ", isReady ? "\u2713 Connected" : "\u23F3 Connecting"] }), (0, import_jsx_runtime47.jsxs)("div", { children: ["Audio Started: ", audioStarted ? "\u2713 Yes" : "\u2717 No"] }), isReady && (0, import_jsx_runtime47.jsx)("div", { className: "text-green-400", children: "\u2713 Dual WHEP ready" }), isReady && (0, import_jsx_runtime47.jsx)("div", { className: "text-xs text-gray-500 mt-1", children: "Check browser console for audio debug logs" })] }) })] })] })] })] });
95125
+ return (0, import_jsx_runtime48.jsxs)("div", { className: "w-full h-full flex flex-col bg-gray-900 text-white", children: [(0, import_jsx_runtime48.jsxs)("div", { className: "flex justify-between items-center p-4 bg-gray-800 border-b border-gray-700", children: [(0, import_jsx_runtime48.jsxs)("h1", { className: "text-xl font-semibold", children: ["Sync External Audio - ", config.displayName] }), (0, import_jsx_runtime48.jsx)("div", { className: "flex items-center space-x-4", children: (0, import_jsx_runtime48.jsxs)("div", { className: `flex items-center space-x-2 ${state.isConnected ? "text-green-400" : "text-red-400"}`, children: [(0, import_jsx_runtime48.jsx)("div", { className: `w-2 h-2 rounded-full ${state.isConnected ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime48.jsx)("span", { className: "text-sm", children: state.isConnected ? "Connected" : "Disconnected" })] }) })] }), (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1 flex", children: [(0, import_jsx_runtime48.jsx)("div", { className: "flex-1 flex flex-col", children: (0, import_jsx_runtime48.jsx)("div", { className: "flex-1 bg-black flex items-center justify-center", children: state.primaryWhepUrl && state.commentaryWhepUrl ? (0, import_jsx_runtime48.jsx)("div", { ref: videoContainerRef, className: "max-w-full max-h-full" }) : (0, import_jsx_runtime48.jsxs)("div", { className: "text-gray-500 text-center", children: [(0, import_jsx_runtime48.jsx)("div", { className: "text-6xl mb-4", children: "\u{1F4FA}" }), (0, import_jsx_runtime48.jsx)("div", { children: "Waiting for video preview..." }), state.primaryWhepUrl && !state.commentaryWhepUrl && (0, import_jsx_runtime48.jsx)("div", { className: "text-sm mt-2", children: "Primary stream ready, waiting for commentary..." }), !state.primaryWhepUrl && state.commentaryWhepUrl && (0, import_jsx_runtime48.jsx)("div", { className: "text-sm mt-2", children: "Commentary stream ready, waiting for primary..." })] }) }) }), (0, import_jsx_runtime48.jsxs)("div", { className: "w-80 bg-gray-800 border-l border-gray-700 flex flex-col", children: [(0, import_jsx_runtime48.jsxs)("div", { className: "p-4 border-b border-gray-700", children: [(0, import_jsx_runtime48.jsx)("h3", { className: "text-lg font-medium mb-4", children: "Commentary Sync Control" }), (0, import_jsx_runtime48.jsxs)("div", { className: "mb-4 p-3 bg-gray-700 rounded-lg text-center", children: [(0, import_jsx_runtime48.jsx)("div", { className: "text-sm text-gray-300", children: "Current Offset" }), (0, import_jsx_runtime48.jsxs)("div", { className: "text-2xl font-mono", children: [state.currentSyncMs, "ms"] })] }), (0, import_jsx_runtime48.jsxs)("div", { className: "mb-4", children: [(0, import_jsx_runtime48.jsx)("div", { className: "text-sm text-gray-300 mb-2", children: "Fine Adjustment (\xB1200ms)" }), (0, import_jsx_runtime48.jsxs)("div", { className: "flex space-x-2", children: [(0, import_jsx_runtime48.jsx)("button", { onClick: () => handleSyncAdjust(-200), className: "flex-1 px-3 py-2 bg-red-600 hover:bg-red-700 rounded text-sm font-medium", children: "-200ms" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => handleSyncAdjust(200), className: "flex-1 px-3 py-2 bg-green-600 hover:bg-green-700 rounded text-sm font-medium", children: "+200ms" })] })] }), (0, import_jsx_runtime48.jsxs)("div", { className: "mb-4", children: [(0, import_jsx_runtime48.jsx)("div", { className: "text-sm text-gray-300 mb-2", children: "Coarse Adjustment" }), (0, import_jsx_runtime48.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [(0, import_jsx_runtime48.jsx)("button", { onClick: () => handleSyncAdjust(-1e3), className: "px-3 py-2 bg-red-700 hover:bg-red-800 rounded text-sm", children: "-1000ms" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => handleSyncAdjust(1e3), className: "px-3 py-2 bg-green-700 hover:bg-green-800 rounded text-sm", children: "+1000ms" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => handleSyncAdjust(-500), className: "px-3 py-2 bg-red-600 hover:bg-red-700 rounded text-sm", children: "-500ms" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => handleSyncAdjust(500), className: "px-3 py-2 bg-green-600 hover:bg-green-700 rounded text-sm", children: "+500ms" })] })] }), (0, import_jsx_runtime48.jsxs)("button", { onClick: handleResetSync, className: "w-full px-3 py-2 bg-blue-600 hover:bg-blue-700 rounded text-sm font-medium", children: ["Reset to Initial (", config.initialSyncMs, "ms)"] })] }), (0, import_jsx_runtime48.jsxs)("div", { className: "p-4 flex-1", children: [(0, import_jsx_runtime48.jsx)("h3", { className: "text-lg font-medium mb-4", children: "Audio Monitor Controls" }), !audioStarted && isReady && (0, import_jsx_runtime48.jsxs)("div", { className: "mb-6 p-4 bg-yellow-900 border border-yellow-600 rounded-lg", children: [(0, import_jsx_runtime48.jsx)("div", { className: "text-sm text-yellow-200 mb-2", children: "Click to enable commentary audio (required by browser policy):" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => void handleStartAudio(), className: "w-full px-3 py-2 bg-yellow-600 hover:bg-yellow-700 rounded text-sm font-medium", children: "\u{1F50A} Start Commentary Audio" })] }), (0, import_jsx_runtime48.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [(0, import_jsx_runtime48.jsx)("span", { className: "text-sm font-medium", children: "Primary Audio" }), (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center space-x-2", children: [isReady ? (0, import_jsx_runtime48.jsx)("span", { className: "text-xs text-green-400", children: "\u2713 Ready" }) : (0, import_jsx_runtime48.jsx)("span", { className: "text-xs text-yellow-400", children: "\u23F3 Loading" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => setPrimaryMuted(!primaryMuted), disabled: !isReady, className: `px-2 py-1 rounded text-xs ${!isReady ? "bg-gray-500 cursor-not-allowed" : primaryMuted ? "bg-red-600 hover:bg-red-700" : "bg-gray-600 hover:bg-gray-700"}`, children: primaryMuted ? "Unmute" : "Mute" })] })] }), (0, import_jsx_runtime48.jsx)("input", { type: "range", min: "0", max: "100", value: primaryVolume, onChange: (e) => setPrimaryVolume(parseInt(e.target.value)), className: "w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer", disabled: primaryMuted || !isReady }), (0, import_jsx_runtime48.jsxs)("div", { className: "text-xs text-gray-400 mt-1", children: [primaryVolume, "%"] })] }), (0, import_jsx_runtime48.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [(0, import_jsx_runtime48.jsx)("span", { className: "text-sm font-medium", children: "Commentary Audio" }), (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center space-x-2", children: [isReady ? (0, import_jsx_runtime48.jsx)("span", { className: "text-xs text-green-400", children: "\u2713 Ready" }) : (0, import_jsx_runtime48.jsx)("span", { className: "text-xs text-yellow-400", children: "\u23F3 Loading" }), (0, import_jsx_runtime48.jsx)("button", { onClick: () => setCommentaryMuted(!commentaryMuted), disabled: !isReady, className: `px-2 py-1 rounded text-xs ${!isReady ? "bg-gray-500 cursor-not-allowed" : commentaryMuted ? "bg-red-600 hover:bg-red-700" : "bg-gray-600 hover:bg-gray-700"}`, children: commentaryMuted ? "Unmute" : "Mute" })] })] }), (0, import_jsx_runtime48.jsx)("input", { type: "range", min: "0", max: "100", value: commentaryVolume, onChange: (e) => setCommentaryVolume(parseInt(e.target.value)), className: "w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer", disabled: commentaryMuted || !isReady }), (0, import_jsx_runtime48.jsxs)("div", { className: "text-xs text-gray-400 mt-1", children: [commentaryVolume, "%"] })] }), (0, import_jsx_runtime48.jsx)("div", { className: "mt-auto pt-4 border-t border-gray-700", children: (0, import_jsx_runtime48.jsxs)("div", { className: "text-xs text-gray-400 space-y-1", children: [(0, import_jsx_runtime48.jsxs)("div", { children: ["Primary Delay: ", config.delayMs, "ms"] }), (0, import_jsx_runtime48.jsxs)("div", { children: ["Primary WHEP: ", state.primaryWhepUrl ? "\u2713 Available" : "\u2717 Not ready"] }), (0, import_jsx_runtime48.jsxs)("div", { children: ["Commentary WHEP: ", state.commentaryWhepUrl ? "\u2713 Available" : "\u2717 Not ready"] }), (0, import_jsx_runtime48.jsxs)("div", { children: ["Dual Streams: ", isReady ? "\u2713 Connected" : "\u23F3 Connecting"] }), (0, import_jsx_runtime48.jsxs)("div", { children: ["Audio Started: ", audioStarted ? "\u2713 Yes" : "\u2717 No"] }), isReady && (0, import_jsx_runtime48.jsx)("div", { className: "text-green-400", children: "\u2713 Dual WHEP ready" }), isReady && (0, import_jsx_runtime48.jsx)("div", { className: "text-xs text-gray-500 mt-1", children: "Check browser console for audio debug logs" })] }) })] })] })] })] });
94920
95126
  }
94921
95127
 
94922
95128
  // build/processor.syncExternalAudio/info.js
@@ -95045,8 +95251,10 @@ function info_default37({ defineComponent }) {
95045
95251
  video: true
95046
95252
  },
95047
95253
  produces: {
95048
- type: "simple-stream",
95049
- video: true
95254
+ type: "dynamic-streams",
95255
+ streams: (_, input) => {
95256
+ return input;
95257
+ }
95050
95258
  }
95051
95259
  },
95052
95260
  display: ({ config }) => {
@@ -95083,8 +95291,8 @@ var import_config9 = __toESM(require_config());
95083
95291
  var import_util10 = __toESM(require_util());
95084
95292
 
95085
95293
  // build/processor.webRtcDuplex/fullscreen.js
95086
- var import_jsx_runtime48 = __toESM(require_jsx_runtime());
95087
- var import_react15 = __toESM(require_react());
95294
+ var import_jsx_runtime49 = __toESM(require_jsx_runtime());
95295
+ var import_react16 = __toESM(require_react());
95088
95296
  var import_webrtc_client2 = __toESM(require_webrtc_client());
95089
95297
  var DuplexWhepClient = class extends NorskWhepClient {
95090
95298
  showVideo;
@@ -95125,11 +95333,11 @@ var DuplexWhipClient = class extends import_webrtc_client2.WhipClient {
95125
95333
  }
95126
95334
  };
95127
95335
  function FullscreenView2({ state, config }) {
95128
- const [client, setClient] = (0, import_react15.useState)(void 0);
95129
- const [sender, setSender] = (0, import_react15.useState)(void 0);
95130
- const container = (0, import_react15.useRef)(null);
95131
- const button = (0, import_react15.useRef)(null);
95132
- const go = (0, import_react15.useCallback)(async () => {
95336
+ const [client, setClient] = (0, import_react16.useState)(void 0);
95337
+ const [sender, setSender] = (0, import_react16.useState)(void 0);
95338
+ const container = (0, import_react16.useRef)(null);
95339
+ const button = (0, import_react16.useRef)(null);
95340
+ const go = (0, import_react16.useCallback)(async () => {
95133
95341
  if (!state.publishUrl)
95134
95342
  return;
95135
95343
  if (!client && state.outputUrl && container.current) {
@@ -95156,7 +95364,7 @@ function FullscreenView2({ state, config }) {
95156
95364
  }
95157
95365
  }
95158
95366
  }, [state.publishUrl, state.outputUrl, container, button, client, sender, config, state.videoAvailable]);
95159
- return (0, import_jsx_runtime48.jsxs)("div", { children: [(0, import_jsx_runtime48.jsx)("div", { id: "buttons", children: (0, import_jsx_runtime48.jsx)("button", { ref: button, type: "button", className: "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800", onClick: () => void go(), id: "go", children: "Send/Receive" }) }), (0, import_jsx_runtime48.jsx)("div", { id: "error" }), (0, import_jsx_runtime48.jsx)("div", { id: "container", ref: container, className: "p-4 absolute h-full w-full" })] });
95367
+ return (0, import_jsx_runtime49.jsxs)("div", { children: [(0, import_jsx_runtime49.jsx)("div", { id: "buttons", children: (0, import_jsx_runtime49.jsx)("button", { ref: button, type: "button", className: "text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800", onClick: () => void go(), id: "go", children: "Send/Receive" }) }), (0, import_jsx_runtime49.jsx)("div", { id: "error" }), (0, import_jsx_runtime49.jsx)("div", { id: "container", ref: container, className: "p-4 absolute h-full w-full" })] });
95160
95368
  }
95161
95369
 
95162
95370
  // build/processor.webRtcDuplex/info.js
@@ -95237,9 +95445,181 @@ function info_default38(R) {
95237
95445
  });
95238
95446
  }
95239
95447
 
95448
+ // build/processor.zoomTo/info.js
95449
+ var import_config10 = __toESM(require_config());
95450
+ function info_default39({ defineComponent, validation: { Z } }) {
95451
+ return defineComponent({
95452
+ identifier: "processor.zoomTo",
95453
+ name: "Zoom To",
95454
+ category: "processor",
95455
+ description: "Crop and scale video with percentage or pixel-based zoom controls",
95456
+ subscription: {
95457
+ accepts: {
95458
+ type: "simple-stream",
95459
+ video: true
95460
+ },
95461
+ produces: {
95462
+ type: "dynamic-streams",
95463
+ streams: (_, input) => {
95464
+ return input;
95465
+ }
95466
+ }
95467
+ },
95468
+ extraValidation: function(ctx) {
95469
+ ctx.requireVideo(1);
95470
+ const { offsetX, offsetY, width, height } = ctx.config;
95471
+ if (offsetX + width > 100) {
95472
+ ctx.addError("Crop region extends beyond right edge (offsetX + width > 100%)");
95473
+ }
95474
+ if (offsetY + height > 100) {
95475
+ ctx.addError("Crop region extends beyond bottom edge (offsetY + height > 100%)");
95476
+ }
95477
+ },
95478
+ display: (desc) => {
95479
+ const { offsetX, offsetY, width, height } = desc.config;
95480
+ return {
95481
+ default: `${width}\xD7${height}% @ ${offsetX},${offsetY}%`
95482
+ };
95483
+ },
95484
+ runtime: {
95485
+ initialState: () => ({
95486
+ currentOffsetX: 0,
95487
+ currentOffsetY: 0,
95488
+ currentWidth: 100,
95489
+ currentHeight: 100,
95490
+ targetOffsetX: 0,
95491
+ targetOffsetY: 0,
95492
+ targetWidth: 100,
95493
+ targetHeight: 100,
95494
+ transitioning: false,
95495
+ hasInputVideo: false,
95496
+ inputVideoResolution: void 0,
95497
+ inputVideoFrameRate: void 0,
95498
+ inputVideoAspectRatio: void 0
95499
+ }),
95500
+ handleEvent: (ev, state) => {
95501
+ const evType = ev.type;
95502
+ switch (evType) {
95503
+ case "zoom-updated":
95504
+ return {
95505
+ ...state,
95506
+ currentOffsetX: ev.currentOffsetX,
95507
+ currentOffsetY: ev.currentOffsetY,
95508
+ currentWidth: ev.currentWidth,
95509
+ currentHeight: ev.currentHeight,
95510
+ targetOffsetX: ev.targetOffsetX,
95511
+ targetOffsetY: ev.targetOffsetY,
95512
+ targetWidth: ev.targetWidth,
95513
+ targetHeight: ev.targetHeight,
95514
+ transitioning: ev.transitioning
95515
+ };
95516
+ case "transition-complete":
95517
+ return { ...state, transitioning: false };
95518
+ case "input-video-changed":
95519
+ return {
95520
+ ...state,
95521
+ hasInputVideo: ev.hasInputVideo,
95522
+ inputVideoResolution: ev.inputVideoResolution,
95523
+ inputVideoFrameRate: ev.inputVideoFrameRate,
95524
+ inputVideoAspectRatio: ev.inputVideoAspectRatio
95525
+ };
95526
+ default:
95527
+ assertUnreachable26(evType);
95528
+ }
95529
+ }
95530
+ },
95531
+ configForm: {
95532
+ global: {
95533
+ hardware: (0, import_config10.HardwareSelection)()
95534
+ },
95535
+ form: {
95536
+ offsetX: {
95537
+ help: "Horizontal offset of crop region as percentage (0-100)",
95538
+ hint: {
95539
+ type: "numeric",
95540
+ validation: Z.number().min(0).max(100),
95541
+ defaultValue: 0
95542
+ }
95543
+ },
95544
+ offsetY: {
95545
+ help: "Vertical offset of crop region as percentage (0-100)",
95546
+ hint: {
95547
+ type: "numeric",
95548
+ validation: Z.number().min(0).max(100),
95549
+ defaultValue: 0
95550
+ }
95551
+ },
95552
+ width: {
95553
+ help: "Width of crop region as percentage (1-100)",
95554
+ hint: {
95555
+ type: "numeric",
95556
+ validation: Z.number().min(1).max(100),
95557
+ defaultValue: 100
95558
+ }
95559
+ },
95560
+ height: {
95561
+ help: "Height of crop region as percentage (1-100)",
95562
+ hint: {
95563
+ type: "numeric",
95564
+ validation: Z.number().min(1).max(100),
95565
+ defaultValue: 100
95566
+ }
95567
+ },
95568
+ outputResolution: {
95569
+ help: "Output resolution (fixed after initialization)",
95570
+ hint: {
95571
+ type: "select",
95572
+ defaultValue: { width: 1920, height: 1080 },
95573
+ options: [
95574
+ { value: { width: 1280, height: 720 }, display: "1280\xD7720 (HD)" },
95575
+ { value: { width: 1920, height: 1080 }, display: "1920\xD71080 (Full HD)" },
95576
+ { value: { width: 3840, height: 2160 }, display: "3840\xD72160 (4K)" },
95577
+ { value: { width: 1920, height: 1200 }, display: "1920\xD71200 (WUXGA)" },
95578
+ { value: { width: 2560, height: 1440 }, display: "2560\xD71440 (QHD)" }
95579
+ ]
95580
+ }
95581
+ },
95582
+ transitionDurationMs: {
95583
+ help: "Duration for zoom transitions in milliseconds",
95584
+ hint: {
95585
+ type: "numeric",
95586
+ validation: Z.number().min(0).max(5e3),
95587
+ defaultValue: 300,
95588
+ optional: true
95589
+ }
95590
+ },
95591
+ transitionEasing: {
95592
+ help: "Easing function for smooth transitions",
95593
+ hint: {
95594
+ type: "select",
95595
+ defaultValue: "ease_in_out",
95596
+ options: [
95597
+ { value: "linear", display: "Linear" },
95598
+ { value: "ease_in", display: "Ease In" },
95599
+ { value: "ease_out", display: "Ease Out" },
95600
+ { value: "ease_in_out", display: "Ease In-Out" }
95601
+ ],
95602
+ optional: true
95603
+ }
95604
+ },
95605
+ notes: {
95606
+ help: "Notes about this component",
95607
+ hint: {
95608
+ type: "text",
95609
+ optional: true
95610
+ }
95611
+ }
95612
+ }
95613
+ }
95614
+ });
95615
+ }
95616
+ function assertUnreachable26(_) {
95617
+ throw new Error("Didn't expect to get here");
95618
+ }
95619
+
95240
95620
  // build/util.stats.latency/inline-view.js
95241
- var import_jsx_runtime49 = __toESM(require_jsx_runtime());
95242
- var import_react16 = __toESM(require_react());
95621
+ var import_jsx_runtime50 = __toESM(require_jsx_runtime());
95622
+ var import_react17 = __toESM(require_react());
95243
95623
 
95244
95624
  // ../../node_modules/chart.js/auto/auto.js
95245
95625
  Chart.register(...registerables);
@@ -95247,8 +95627,8 @@ var auto_default = Chart;
95247
95627
 
95248
95628
  // build/util.stats.latency/inline-view.js
95249
95629
  function InlineView19({ state, config: _2 }) {
95250
- const chartContainer = (0, import_react16.useRef)(null);
95251
- const [chartControl, setChartControl] = (0, import_react16.useState)(void 0);
95630
+ const chartContainer = (0, import_react17.useRef)(null);
95631
+ const [chartControl, setChartControl] = (0, import_react17.useState)(void 0);
95252
95632
  function makeDataSet(key, color2, values) {
95253
95633
  return {
95254
95634
  label: key,
@@ -95259,13 +95639,13 @@ function InlineView19({ state, config: _2 }) {
95259
95639
  data: values
95260
95640
  };
95261
95641
  }
95262
- const makeData = (0, import_react16.useCallback)((state2) => {
95642
+ const makeData = (0, import_react17.useCallback)((state2) => {
95263
95643
  return {
95264
95644
  labels: new Array(state2.values.length).fill(0).map((_, i) => i).map((_) => ""),
95265
95645
  datasets: [makeDataSet("latency", "rgba(255, 0, 0, 255)", state2.values)]
95266
95646
  };
95267
95647
  }, []);
95268
- (0, import_react16.useEffect)(() => {
95648
+ (0, import_react17.useEffect)(() => {
95269
95649
  if (!chartContainer.current)
95270
95650
  return;
95271
95651
  auto_default.defaults.color = "#FFF";
@@ -95303,24 +95683,24 @@ function InlineView19({ state, config: _2 }) {
95303
95683
  chart.update();
95304
95684
  }, 100);
95305
95685
  }, [chartContainer, makeData, state]);
95306
- (0, import_react16.useEffect)(() => {
95686
+ (0, import_react17.useEffect)(() => {
95307
95687
  if (!chartControl)
95308
95688
  return;
95309
95689
  chartControl.data = makeData(state);
95310
95690
  }, [chartControl, makeData, state]);
95311
- return (0, import_jsx_runtime49.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime49.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) });
95691
+ return (0, import_jsx_runtime50.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime50.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) });
95312
95692
  }
95313
95693
  var inline_view_default19 = InlineView19;
95314
95694
 
95315
95695
  // build/util.stats.latency/source-node-selection.js
95316
- var import_jsx_runtime50 = __toESM(require_jsx_runtime());
95696
+ var import_jsx_runtime51 = __toESM(require_jsx_runtime());
95317
95697
  function SourceNodeSelection(props) {
95318
- return (0, import_jsx_runtime50.jsx)("div", { children: (0, import_jsx_runtime50.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime50.jsx)("option", { value: "", children: "---" }, "empty"), Object.values(props.latestDocument.components).map((o, i) => {
95698
+ return (0, import_jsx_runtime51.jsx)("div", { children: (0, import_jsx_runtime51.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime51.jsx)("option", { value: "", children: "---" }, "empty"), Object.values(props.latestDocument.components).map((o, i) => {
95319
95699
  if (o.id == props.id)
95320
- return (0, import_jsx_runtime50.jsx)(import_jsx_runtime50.Fragment, {});
95700
+ return (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, {});
95321
95701
  if (o.info.category === "output")
95322
95702
  return;
95323
- return (0, import_jsx_runtime50.jsx)("option", { value: o.id, children: o.config.displayName }, i);
95703
+ return (0, import_jsx_runtime51.jsx)("option", { value: o.id, children: o.config.displayName }, i);
95324
95704
  })] }) });
95325
95705
  function myOnChange(e) {
95326
95706
  props.onChanged(e.target.value);
@@ -95330,7 +95710,7 @@ var source_node_selection_default = SourceNodeSelection;
95330
95710
 
95331
95711
  // build/util.stats.latency/info.js
95332
95712
  var import_FaClock = __toESM(require_FaClock());
95333
- function info_default39(R) {
95713
+ function info_default40(R) {
95334
95714
  const { defineComponent } = R;
95335
95715
  return defineComponent({
95336
95716
  identifier: "util.stats.latency",
@@ -95360,7 +95740,7 @@ function info_default39(R) {
95360
95740
  break;
95361
95741
  }
95362
95742
  default:
95363
- assertUnreachable26(evType);
95743
+ assertUnreachable27(evType);
95364
95744
  }
95365
95745
  return { ...state };
95366
95746
  },
@@ -95415,7 +95795,7 @@ function info_default39(R) {
95415
95795
  }
95416
95796
  });
95417
95797
  }
95418
- function assertUnreachable26(_) {
95798
+ function assertUnreachable27(_) {
95419
95799
  throw new Error("Didn't expect to get here");
95420
95800
  }
95421
95801
 
@@ -95472,6 +95852,7 @@ AllComponents.push((r) => info_default36(r));
95472
95852
  AllComponents.push((r) => info_default37(r));
95473
95853
  AllComponents.push((r) => info_default38(r));
95474
95854
  AllComponents.push((r) => info_default39(r));
95855
+ AllComponents.push((r) => info_default40(r));
95475
95856
  export {
95476
95857
  getNodeInfo as default
95477
95858
  };