@norskvideo/norsk-studio-built-ins 1.27.0-2025-07-09-1c530503 → 1.27.0-2025-07-10-5b6e3f99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client/info.js CHANGED
@@ -311,6 +311,16 @@ var require_cjs = __commonJS({
311
311
  }
312
312
  });
313
313
 
314
+ // ../../node_modules/@react-icons/all-files/fa/FaPlay.js
315
+ var require_FaPlay = __commonJS({
316
+ "../../node_modules/@react-icons/all-files/fa/FaPlay.js"(exports, module) {
317
+ var GenIcon = require_cjs().GenIcon;
318
+ module.exports.FaPlay = function FaPlay2(props) {
319
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z" } }] })(props);
320
+ };
321
+ }
322
+ });
323
+
314
324
  // ../../node_modules/@react-icons/all-files/fa/FaVideo.js
315
325
  var require_FaVideo = __commonJS({
316
326
  "../../node_modules/@react-icons/all-files/fa/FaVideo.js"(exports, module) {
@@ -346,7 +356,7 @@ var require_util = __commonJS({
346
356
  exports.getObjectByType = getObjectByType;
347
357
  exports.getObjectByPath = getObjectByPath;
348
358
  exports.displayNodeId = displayNodeId;
349
- exports.assertUnreachable = assertUnreachable28;
359
+ exports.assertUnreachable = assertUnreachable29;
350
360
  exports.waitForCondition = waitForCondition;
351
361
  exports.streamMatchesExpected = streamMatchesExpected;
352
362
  exports.shortStreamNameFromDefinition = shortStreamNameFromDefinition;
@@ -419,7 +429,7 @@ var require_util = __commonJS({
419
429
  }
420
430
  return document2.components[id]?.config?.displayName ?? id;
421
431
  }
422
- function assertUnreachable28(_) {
432
+ function assertUnreachable29(_) {
423
433
  throw new Error("Didn't expect to get here");
424
434
  }
425
435
  async function waitForCondition(condition, timeout, interval, name) {
@@ -47149,13 +47159,13 @@ var require_dist3 = __commonJS({
47149
47159
  });
47150
47160
  module.exports = __toCommonJS2(src_exports);
47151
47161
  var React3 = __toESM2(require_react());
47152
- var import_jsx_runtime52 = require_jsx_runtime();
47162
+ var import_jsx_runtime53 = require_jsx_runtime();
47153
47163
  function createContext2(rootComponentName, defaultContext) {
47154
47164
  const Context = React3.createContext(defaultContext);
47155
47165
  const Provider = (props) => {
47156
47166
  const { children, ...context } = props;
47157
47167
  const value = React3.useMemo(() => context, Object.values(context));
47158
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
47168
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Context.Provider, { value, children });
47159
47169
  };
47160
47170
  Provider.displayName = rootComponentName + "Provider";
47161
47171
  function useContext2(consumerName) {
@@ -47178,7 +47188,7 @@ var require_dist3 = __commonJS({
47178
47188
  const { scope, children, ...context } = props;
47179
47189
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
47180
47190
  const value = React3.useMemo(() => context, Object.values(context));
47181
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
47191
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Context.Provider, { value, children });
47182
47192
  };
47183
47193
  Provider.displayName = rootComponentName + "Provider";
47184
47194
  function useContext2(consumerName, scope) {
@@ -47346,7 +47356,7 @@ var require_dist5 = __commonJS({
47346
47356
  module.exports = __toCommonJS2(src_exports);
47347
47357
  var React3 = __toESM2(require_react());
47348
47358
  var import_react_compose_refs = require_dist4();
47349
- var import_jsx_runtime52 = require_jsx_runtime();
47359
+ var import_jsx_runtime53 = require_jsx_runtime();
47350
47360
  var Slot = React3.forwardRef((props, forwardedRef) => {
47351
47361
  const { children, ...slotProps } = props;
47352
47362
  const childrenArray = React3.Children.toArray(children);
@@ -47362,9 +47372,9 @@ var require_dist5 = __commonJS({
47362
47372
  return child;
47363
47373
  }
47364
47374
  });
47365
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
47375
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
47366
47376
  }
47367
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
47377
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
47368
47378
  });
47369
47379
  Slot.displayName = "Slot";
47370
47380
  var SlotClone = React3.forwardRef((props, forwardedRef) => {
@@ -47381,7 +47391,7 @@ var require_dist5 = __commonJS({
47381
47391
  });
47382
47392
  SlotClone.displayName = "SlotClone";
47383
47393
  var Slottable = ({ children }) => {
47384
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children });
47394
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_jsx_runtime53.Fragment, { children });
47385
47395
  };
47386
47396
  function isSlottable(child) {
47387
47397
  return React3.isValidElement(child) && child.type === Slottable;
@@ -47467,7 +47477,7 @@ var require_dist6 = __commonJS({
47467
47477
  var import_react_context = require_dist3();
47468
47478
  var import_react_compose_refs = require_dist4();
47469
47479
  var import_react_slot = require_dist5();
47470
- var import_jsx_runtime52 = require_jsx_runtime();
47480
+ var import_jsx_runtime53 = require_jsx_runtime();
47471
47481
  function createCollection(name) {
47472
47482
  const PROVIDER_NAME = name + "CollectionProvider";
47473
47483
  const [createCollectionContext, createCollectionScope] = (0, import_react_context.createContextScope)(PROVIDER_NAME);
@@ -47479,7 +47489,7 @@ var require_dist6 = __commonJS({
47479
47489
  const { scope, children } = props;
47480
47490
  const ref = import_react18.default.useRef(null);
47481
47491
  const itemMap = import_react18.default.useRef(/* @__PURE__ */ new Map()).current;
47482
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
47492
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
47483
47493
  };
47484
47494
  CollectionProvider.displayName = PROVIDER_NAME;
47485
47495
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
@@ -47488,7 +47498,7 @@ var require_dist6 = __commonJS({
47488
47498
  const { scope, children } = props;
47489
47499
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
47490
47500
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.collectionRef);
47491
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_slot.Slot, { ref: composedRefs, children });
47501
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_slot.Slot, { ref: composedRefs, children });
47492
47502
  }
47493
47503
  );
47494
47504
  CollectionSlot.displayName = COLLECTION_SLOT_NAME;
@@ -47504,7 +47514,7 @@ var require_dist6 = __commonJS({
47504
47514
  context.itemMap.set(ref, { ref, ...itemData });
47505
47515
  return () => void context.itemMap.delete(ref);
47506
47516
  });
47507
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_slot.Slot, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
47517
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_slot.Slot, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
47508
47518
  }
47509
47519
  );
47510
47520
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
@@ -47571,11 +47581,11 @@ var require_dist7 = __commonJS({
47571
47581
  });
47572
47582
  module.exports = __toCommonJS2(src_exports);
47573
47583
  var React3 = __toESM2(require_react());
47574
- var import_jsx_runtime52 = require_jsx_runtime();
47584
+ var import_jsx_runtime53 = require_jsx_runtime();
47575
47585
  var DirectionContext = React3.createContext(void 0);
47576
47586
  var DirectionProvider = (props) => {
47577
47587
  const { dir, children } = props;
47578
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DirectionContext.Provider, { value: dir, children });
47588
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DirectionContext.Provider, { value: dir, children });
47579
47589
  };
47580
47590
  function useDirection(localDir) {
47581
47591
  const globalDir = React3.useContext(DirectionContext);
@@ -47626,7 +47636,7 @@ var require_dist8 = __commonJS({
47626
47636
  var React3 = __toESM2(require_react());
47627
47637
  var ReactDOM2 = __toESM2(require_react_dom());
47628
47638
  var import_react_slot = require_dist5();
47629
- var import_jsx_runtime52 = require_jsx_runtime();
47639
+ var import_jsx_runtime53 = require_jsx_runtime();
47630
47640
  var NODES = [
47631
47641
  "a",
47632
47642
  "button",
@@ -47652,7 +47662,7 @@ var require_dist8 = __commonJS({
47652
47662
  if (typeof window !== "undefined") {
47653
47663
  window[Symbol.for("radix-ui")] = true;
47654
47664
  }
47655
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
47665
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
47656
47666
  });
47657
47667
  Node2.displayName = `Primitive.${node}`;
47658
47668
  return { ...primitive, [node]: Node2 };
@@ -47811,7 +47821,7 @@ var require_dist11 = __commonJS({
47811
47821
  var import_react_compose_refs = require_dist4();
47812
47822
  var import_react_use_callback_ref = require_dist9();
47813
47823
  var import_react_use_escape_keydown = require_dist10();
47814
- var import_jsx_runtime52 = require_jsx_runtime();
47824
+ var import_jsx_runtime53 = require_jsx_runtime();
47815
47825
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
47816
47826
  var CONTEXT_UPDATE = "dismissableLayer.update";
47817
47827
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -47906,7 +47916,7 @@ var require_dist11 = __commonJS({
47906
47916
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
47907
47917
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
47908
47918
  }, []);
47909
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
47919
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
47910
47920
  import_react_primitive.Primitive.div,
47911
47921
  {
47912
47922
  ...layerProps,
@@ -47940,7 +47950,7 @@ var require_dist11 = __commonJS({
47940
47950
  };
47941
47951
  }
47942
47952
  }, [context.branches]);
47943
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
47953
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
47944
47954
  });
47945
47955
  DismissableLayerBranch.displayName = BRANCH_NAME;
47946
47956
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -48142,7 +48152,7 @@ var require_dist13 = __commonJS({
48142
48152
  var import_react_compose_refs = require_dist4();
48143
48153
  var import_react_primitive = require_dist8();
48144
48154
  var import_react_use_callback_ref = require_dist9();
48145
- var import_jsx_runtime52 = require_jsx_runtime();
48155
+ var import_jsx_runtime53 = require_jsx_runtime();
48146
48156
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
48147
48157
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
48148
48158
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -48272,7 +48282,7 @@ var require_dist13 = __commonJS({
48272
48282
  },
48273
48283
  [loop, trapped, focusScope.paused]
48274
48284
  );
48275
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
48285
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
48276
48286
  });
48277
48287
  FocusScope.displayName = FOCUS_SCOPE_NAME;
48278
48288
  function focusFirst(candidates, { select = false } = {}) {
@@ -50632,11 +50642,11 @@ var require_dist16 = __commonJS({
50632
50642
  module.exports = __toCommonJS2(src_exports);
50633
50643
  var React3 = __toESM2(require_react());
50634
50644
  var import_react_primitive = require_dist8();
50635
- var import_jsx_runtime52 = require_jsx_runtime();
50645
+ var import_jsx_runtime53 = require_jsx_runtime();
50636
50646
  var NAME = "Arrow";
50637
50647
  var Arrow = React3.forwardRef((props, forwardedRef) => {
50638
50648
  const { children, width = 10, height = 5, ...arrowProps } = props;
50639
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50649
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
50640
50650
  import_react_primitive.Primitive.svg,
50641
50651
  {
50642
50652
  ...arrowProps,
@@ -50645,7 +50655,7 @@ var require_dist16 = __commonJS({
50645
50655
  height,
50646
50656
  viewBox: "0 0 30 10",
50647
50657
  preserveAspectRatio: "none",
50648
- children: props.asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("polygon", { points: "0,0 30,0 15,10" })
50658
+ children: props.asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("polygon", { points: "0,0 30,0 15,10" })
50649
50659
  }
50650
50660
  );
50651
50661
  });
@@ -50785,7 +50795,7 @@ var require_dist18 = __commonJS({
50785
50795
  var import_react_use_callback_ref = require_dist9();
50786
50796
  var import_react_use_layout_effect = require_dist14();
50787
50797
  var import_react_use_size = require_dist17();
50788
- var import_jsx_runtime52 = require_jsx_runtime();
50798
+ var import_jsx_runtime53 = require_jsx_runtime();
50789
50799
  var SIDE_OPTIONS = ["top", "right", "bottom", "left"];
50790
50800
  var ALIGN_OPTIONS = ["start", "center", "end"];
50791
50801
  var POPPER_NAME = "Popper";
@@ -50794,7 +50804,7 @@ var require_dist18 = __commonJS({
50794
50804
  var Popper = (props) => {
50795
50805
  const { __scopePopper, children } = props;
50796
50806
  const [anchor, setAnchor] = React3.useState(null);
50797
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
50807
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
50798
50808
  };
50799
50809
  Popper.displayName = POPPER_NAME;
50800
50810
  var ANCHOR_NAME = "PopperAnchor";
@@ -50807,7 +50817,7 @@ var require_dist18 = __commonJS({
50807
50817
  React3.useEffect(() => {
50808
50818
  context.onAnchorChange(virtualRef?.current || ref.current);
50809
50819
  });
50810
- return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
50820
+ return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
50811
50821
  }
50812
50822
  );
50813
50823
  PopperAnchor.displayName = ANCHOR_NAME;
@@ -50901,7 +50911,7 @@ var require_dist18 = __commonJS({
50901
50911
  if (content)
50902
50912
  setContentZIndex(window.getComputedStyle(content).zIndex);
50903
50913
  }, [content]);
50904
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50914
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
50905
50915
  "div",
50906
50916
  {
50907
50917
  ref: refs.setFloating,
@@ -50925,7 +50935,7 @@ var require_dist18 = __commonJS({
50925
50935
  }
50926
50936
  },
50927
50937
  dir: props.dir,
50928
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50938
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
50929
50939
  PopperContentProvider,
50930
50940
  {
50931
50941
  scope: __scopePopper,
@@ -50934,7 +50944,7 @@ var require_dist18 = __commonJS({
50934
50944
  arrowX,
50935
50945
  arrowY,
50936
50946
  shouldHideArrow: cannotCenterArrow,
50937
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50947
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
50938
50948
  import_react_primitive.Primitive.div,
50939
50949
  {
50940
50950
  "data-side": placedSide,
@@ -50971,7 +50981,7 @@ var require_dist18 = __commonJS({
50971
50981
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
50972
50982
  // doesn't report size as we'd expect on SVG elements.
50973
50983
  // it reports their bounding box which is effectively the largest path inside the SVG.
50974
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
50984
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
50975
50985
  "span",
50976
50986
  {
50977
50987
  ref: contentContext.onArrowChange,
@@ -50994,7 +51004,7 @@ var require_dist18 = __commonJS({
50994
51004
  }[contentContext.placedSide],
50995
51005
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
50996
51006
  },
50997
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
51007
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
50998
51008
  ArrowPrimitive.Root,
50999
51009
  {
51000
51010
  ...arrowProps,
@@ -51098,14 +51108,14 @@ var require_dist19 = __commonJS({
51098
51108
  var import_react_dom = __toESM2(require_react_dom());
51099
51109
  var import_react_primitive = require_dist8();
51100
51110
  var import_react_use_layout_effect = require_dist14();
51101
- var import_jsx_runtime52 = require_jsx_runtime();
51111
+ var import_jsx_runtime53 = require_jsx_runtime();
51102
51112
  var PORTAL_NAME = "Portal";
51103
51113
  var Portal = React3.forwardRef((props, forwardedRef) => {
51104
51114
  const { container: containerProp, ...portalProps } = props;
51105
51115
  const [mounted, setMounted] = React3.useState(false);
51106
51116
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
51107
51117
  const container = containerProp || mounted && globalThis?.document?.body;
51108
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
51118
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
51109
51119
  });
51110
51120
  Portal.displayName = PORTAL_NAME;
51111
51121
  var Root = Portal;
@@ -51283,11 +51293,11 @@ var require_dist22 = __commonJS({
51283
51293
  module.exports = __toCommonJS2(src_exports);
51284
51294
  var React3 = __toESM2(require_react());
51285
51295
  var import_react_primitive = require_dist8();
51286
- var import_jsx_runtime52 = require_jsx_runtime();
51296
+ var import_jsx_runtime53 = require_jsx_runtime();
51287
51297
  var NAME = "VisuallyHidden";
51288
51298
  var VisuallyHidden = React3.forwardRef(
51289
51299
  (props, forwardedRef) => {
51290
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
51300
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
51291
51301
  import_react_primitive.Primitive.span,
51292
51302
  {
51293
51303
  ...props,
@@ -53446,7 +53456,7 @@ var require_dist23 = __commonJS({
53446
53456
  var import_react_visually_hidden = require_dist22();
53447
53457
  var import_aria_hidden = require_es5();
53448
53458
  var import_react_remove_scroll = require_es57();
53449
- var import_jsx_runtime52 = require_jsx_runtime();
53459
+ var import_jsx_runtime53 = require_jsx_runtime();
53450
53460
  var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
53451
53461
  var SELECTION_KEYS = [" ", "Enter"];
53452
53462
  var SELECT_NAME = "Select";
@@ -53494,7 +53504,7 @@ var require_dist23 = __commonJS({
53494
53504
  const isFormControl = trigger ? form || !!trigger.closest("form") : true;
53495
53505
  const [nativeOptionsSet, setNativeOptionsSet] = React3.useState(/* @__PURE__ */ new Set());
53496
53506
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
53497
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
53507
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
53498
53508
  SelectProvider,
53499
53509
  {
53500
53510
  required,
@@ -53514,7 +53524,7 @@ var require_dist23 = __commonJS({
53514
53524
  triggerPointerDownPosRef,
53515
53525
  disabled,
53516
53526
  children: [
53517
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53527
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53518
53528
  SelectNativeOptionsProvider,
53519
53529
  {
53520
53530
  scope: props.__scopeSelect,
@@ -53531,7 +53541,7 @@ var require_dist23 = __commonJS({
53531
53541
  children
53532
53542
  }
53533
53543
  ) }),
53534
- isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
53544
+ isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
53535
53545
  BubbleSelect,
53536
53546
  {
53537
53547
  "aria-hidden": true,
@@ -53544,7 +53554,7 @@ var require_dist23 = __commonJS({
53544
53554
  disabled,
53545
53555
  form,
53546
53556
  children: [
53547
- value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("option", { value: "" }) : null,
53557
+ value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("option", { value: "" }) : null,
53548
53558
  Array.from(nativeOptionsSet)
53549
53559
  ]
53550
53560
  },
@@ -53585,7 +53595,7 @@ var require_dist23 = __commonJS({
53585
53595
  };
53586
53596
  }
53587
53597
  };
53588
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53598
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53589
53599
  import_react_primitive.Primitive.button,
53590
53600
  {
53591
53601
  type: "button",
@@ -53646,13 +53656,13 @@ var require_dist23 = __commonJS({
53646
53656
  (0, import_react_use_layout_effect.useLayoutEffect)(() => {
53647
53657
  onValueNodeHasChildrenChange(hasChildren);
53648
53658
  }, [onValueNodeHasChildrenChange, hasChildren]);
53649
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53659
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53650
53660
  import_react_primitive.Primitive.span,
53651
53661
  {
53652
53662
  ...valueProps,
53653
53663
  ref: composedRefs,
53654
53664
  style: { pointerEvents: "none" },
53655
- children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children: placeholder }) : children
53665
+ children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_jsx_runtime53.Fragment, { children: placeholder }) : children
53656
53666
  }
53657
53667
  );
53658
53668
  }
@@ -53662,13 +53672,13 @@ var require_dist23 = __commonJS({
53662
53672
  var SelectIcon = React3.forwardRef(
53663
53673
  (props, forwardedRef) => {
53664
53674
  const { __scopeSelect, children, ...iconProps } = props;
53665
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "\u25BC" });
53675
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "\u25BC" });
53666
53676
  }
53667
53677
  );
53668
53678
  SelectIcon.displayName = ICON_NAME;
53669
53679
  var PORTAL_NAME = "SelectPortal";
53670
53680
  var SelectPortal = (props) => {
53671
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_portal.Portal, { asChild: true, ...props });
53681
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_portal.Portal, { asChild: true, ...props });
53672
53682
  };
53673
53683
  SelectPortal.displayName = PORTAL_NAME;
53674
53684
  var CONTENT_NAME = "SelectContent";
@@ -53682,11 +53692,11 @@ var require_dist23 = __commonJS({
53682
53692
  if (!context.open) {
53683
53693
  const frag = fragment;
53684
53694
  return frag ? ReactDOM2.createPortal(
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 }) }) }),
53695
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { children: props.children }) }) }),
53686
53696
  frag
53687
53697
  ) : null;
53688
53698
  }
53689
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
53699
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
53690
53700
  }
53691
53701
  );
53692
53702
  SelectContent.displayName = CONTENT_NAME;
@@ -53845,7 +53855,7 @@ var require_dist23 = __commonJS({
53845
53855
  hideWhenDetached,
53846
53856
  avoidCollisions
53847
53857
  } : {};
53848
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53858
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53849
53859
  SelectContentProvider,
53850
53860
  {
53851
53861
  scope: __scopeSelect,
@@ -53861,7 +53871,7 @@ var require_dist23 = __commonJS({
53861
53871
  position,
53862
53872
  isPositioned,
53863
53873
  searchRef,
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)(
53874
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53865
53875
  import_react_focus_scope.FocusScope,
53866
53876
  {
53867
53877
  asChild: true,
@@ -53873,7 +53883,7 @@ var require_dist23 = __commonJS({
53873
53883
  context.trigger?.focus({ preventScroll: true });
53874
53884
  event.preventDefault();
53875
53885
  }),
53876
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53886
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53877
53887
  import_react_dismissable_layer.DismissableLayer,
53878
53888
  {
53879
53889
  asChild: true,
@@ -53882,7 +53892,7 @@ var require_dist23 = __commonJS({
53882
53892
  onPointerDownOutside,
53883
53893
  onFocusOutside: (event) => event.preventDefault(),
53884
53894
  onDismiss: () => context.onOpenChange(false),
53885
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
53895
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
53886
53896
  SelectPosition,
53887
53897
  {
53888
53898
  role: "listbox",
@@ -54061,14 +54071,14 @@ var require_dist23 = __commonJS({
54061
54071
  },
54062
54072
  [position, focusSelectedItem]
54063
54073
  );
54064
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54074
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54065
54075
  SelectViewportProvider,
54066
54076
  {
54067
54077
  scope: __scopeSelect,
54068
54078
  contentWrapper,
54069
54079
  shouldExpandOnScrollRef,
54070
54080
  onScrollButtonChange: handleScrollButtonChange,
54071
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54081
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54072
54082
  "div",
54073
54083
  {
54074
54084
  ref: setContentWrapper,
@@ -54078,7 +54088,7 @@ var require_dist23 = __commonJS({
54078
54088
  position: "fixed",
54079
54089
  zIndex: contentZIndex
54080
54090
  },
54081
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54091
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54082
54092
  import_react_primitive.Primitive.div,
54083
54093
  {
54084
54094
  ...popperProps,
@@ -54108,7 +54118,7 @@ var require_dist23 = __commonJS({
54108
54118
  ...popperProps
54109
54119
  } = props;
54110
54120
  const popperScope = usePopperScope(__scopeSelect);
54111
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54121
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54112
54122
  PopperPrimitive.Content,
54113
54123
  {
54114
54124
  ...popperScope,
@@ -54142,8 +54152,8 @@ var require_dist23 = __commonJS({
54142
54152
  const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
54143
54153
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentContext.onViewportChange);
54144
54154
  const prevScrollTopRef = React3.useRef(0);
54145
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
54146
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54155
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
54156
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54147
54157
  "style",
54148
54158
  {
54149
54159
  dangerouslySetInnerHTML: {
@@ -54152,7 +54162,7 @@ var require_dist23 = __commonJS({
54152
54162
  nonce
54153
54163
  }
54154
54164
  ),
54155
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54165
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54156
54166
  import_react_primitive.Primitive.div,
54157
54167
  {
54158
54168
  "data-radix-select-viewport": "",
@@ -54208,7 +54218,7 @@ var require_dist23 = __commonJS({
54208
54218
  (props, forwardedRef) => {
54209
54219
  const { __scopeSelect, ...groupProps } = props;
54210
54220
  const groupId = (0, import_react_id.useId)();
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 }) });
54221
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
54212
54222
  }
54213
54223
  );
54214
54224
  SelectGroup.displayName = GROUP_NAME;
@@ -54217,7 +54227,7 @@ var require_dist23 = __commonJS({
54217
54227
  (props, forwardedRef) => {
54218
54228
  const { __scopeSelect, ...labelProps } = props;
54219
54229
  const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
54220
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
54230
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
54221
54231
  }
54222
54232
  );
54223
54233
  SelectLabel.displayName = LABEL_NAME;
@@ -54254,7 +54264,7 @@ var require_dist23 = __commonJS({
54254
54264
  "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
54265
  );
54256
54266
  }
54257
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54267
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54258
54268
  SelectItemContextProvider,
54259
54269
  {
54260
54270
  scope: __scopeSelect,
@@ -54265,14 +54275,14 @@ var require_dist23 = __commonJS({
54265
54275
  onItemTextChange: React3.useCallback((node) => {
54266
54276
  setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
54267
54277
  }, []),
54268
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54278
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54269
54279
  Collection.ItemSlot,
54270
54280
  {
54271
54281
  scope: __scopeSelect,
54272
54282
  value,
54273
54283
  disabled,
54274
54284
  textValue,
54275
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54285
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54276
54286
  import_react_primitive.Primitive.div,
54277
54287
  {
54278
54288
  role: "option",
@@ -54346,7 +54356,7 @@ var require_dist23 = __commonJS({
54346
54356
  );
54347
54357
  const textContent = itemTextNode?.textContent;
54348
54358
  const nativeOption = React3.useMemo(
54349
- () => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
54359
+ () => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
54350
54360
  [itemContext.disabled, itemContext.value, textContent]
54351
54361
  );
54352
54362
  const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
@@ -54354,8 +54364,8 @@ var require_dist23 = __commonJS({
54354
54364
  onNativeOptionAdd(nativeOption);
54355
54365
  return () => onNativeOptionRemove(nativeOption);
54356
54366
  }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
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 }),
54367
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
54368
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
54359
54369
  itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM2.createPortal(itemTextProps.children, context.valueNode) : null
54360
54370
  ] });
54361
54371
  }
@@ -54366,7 +54376,7 @@ var require_dist23 = __commonJS({
54366
54376
  (props, forwardedRef) => {
54367
54377
  const { __scopeSelect, ...itemIndicatorProps } = props;
54368
54378
  const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
54369
- return itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
54379
+ return itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
54370
54380
  }
54371
54381
  );
54372
54382
  SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
@@ -54389,7 +54399,7 @@ var require_dist23 = __commonJS({
54389
54399
  return () => viewport.removeEventListener("scroll", handleScroll2);
54390
54400
  }
54391
54401
  }, [contentContext.viewport, contentContext.isPositioned]);
54392
- return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54402
+ return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54393
54403
  SelectScrollButtonImpl,
54394
54404
  {
54395
54405
  ...props,
@@ -54424,7 +54434,7 @@ var require_dist23 = __commonJS({
54424
54434
  return () => viewport.removeEventListener("scroll", handleScroll2);
54425
54435
  }
54426
54436
  }, [contentContext.viewport, contentContext.isPositioned]);
54427
- return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54437
+ return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54428
54438
  SelectScrollButtonImpl,
54429
54439
  {
54430
54440
  ...props,
@@ -54457,7 +54467,7 @@ var require_dist23 = __commonJS({
54457
54467
  const activeItem = getItems().find((item) => item.ref.current === document.activeElement);
54458
54468
  activeItem?.ref.current?.scrollIntoView({ block: "nearest" });
54459
54469
  }, [getItems]);
54460
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54470
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54461
54471
  import_react_primitive.Primitive.div,
54462
54472
  {
54463
54473
  "aria-hidden": true,
@@ -54485,7 +54495,7 @@ var require_dist23 = __commonJS({
54485
54495
  var SelectSeparator = React3.forwardRef(
54486
54496
  (props, forwardedRef) => {
54487
54497
  const { __scopeSelect, ...separatorProps } = props;
54488
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
54498
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
54489
54499
  }
54490
54500
  );
54491
54501
  SelectSeparator.displayName = SEPARATOR_NAME;
@@ -54496,7 +54506,7 @@ var require_dist23 = __commonJS({
54496
54506
  const popperScope = usePopperScope(__scopeSelect);
54497
54507
  const context = useSelectContext(ARROW_NAME, __scopeSelect);
54498
54508
  const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
54499
- return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
54509
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
54500
54510
  }
54501
54511
  );
54502
54512
  SelectArrow.displayName = ARROW_NAME;
@@ -54523,7 +54533,7 @@ var require_dist23 = __commonJS({
54523
54533
  select.dispatchEvent(event);
54524
54534
  }
54525
54535
  }, [prevValue, 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 }) });
54536
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_visually_hidden.VisuallyHidden, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("select", { ...selectProps, ref: composedRefs, defaultValue: value }) });
54527
54537
  }
54528
54538
  );
54529
54539
  BubbleSelect.displayName = "BubbleSelect";
@@ -54907,7 +54917,7 @@ var require_dist25 = __commonJS({
54907
54917
  var import_react_use_controllable_state = require_dist20();
54908
54918
  var import_aria_hidden = require_es5();
54909
54919
  var import_react_remove_scroll = require_es57();
54910
- var import_jsx_runtime52 = require_jsx_runtime();
54920
+ var import_jsx_runtime53 = require_jsx_runtime();
54911
54921
  var POPOVER_NAME = "Popover";
54912
54922
  var [createPopoverContext, createPopoverScope] = (0, import_react_context.createContextScope)(POPOVER_NAME, [
54913
54923
  import_react_popper.createPopperScope
@@ -54931,7 +54941,7 @@ var require_dist25 = __commonJS({
54931
54941
  defaultProp: defaultOpen,
54932
54942
  onChange: onOpenChange
54933
54943
  });
54934
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54944
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54935
54945
  PopoverProvider,
54936
54946
  {
54937
54947
  scope: __scopePopover,
@@ -54960,7 +54970,7 @@ var require_dist25 = __commonJS({
54960
54970
  onCustomAnchorAdd();
54961
54971
  return () => onCustomAnchorRemove();
54962
54972
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
54963
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
54973
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
54964
54974
  }
54965
54975
  );
54966
54976
  PopoverAnchor.displayName = ANCHOR_NAME;
@@ -54971,7 +54981,7 @@ var require_dist25 = __commonJS({
54971
54981
  const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
54972
54982
  const popperScope = usePopperScope(__scopePopover);
54973
54983
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
54974
- const trigger = /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
54984
+ const trigger = /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
54975
54985
  import_react_primitive.Primitive.button,
54976
54986
  {
54977
54987
  type: "button",
@@ -54984,7 +54994,7 @@ var require_dist25 = __commonJS({
54984
54994
  onClick: (0, import_primitive.composeEventHandlers)(props.onClick, context.onOpenToggle)
54985
54995
  }
54986
54996
  );
54987
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });
54997
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });
54988
54998
  }
54989
54999
  );
54990
55000
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -54995,7 +55005,7 @@ var require_dist25 = __commonJS({
54995
55005
  var PopoverPortal = (props) => {
54996
55006
  const { __scopePopover, forceMount, children, container } = props;
54997
55007
  const context = usePopoverContext(PORTAL_NAME, __scopePopover);
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 }) }) });
55008
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
54999
55009
  };
55000
55010
  PopoverPortal.displayName = PORTAL_NAME;
55001
55011
  var CONTENT_NAME = "PopoverContent";
@@ -55004,7 +55014,7 @@ var require_dist25 = __commonJS({
55004
55014
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
55005
55015
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
55006
55016
  const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
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 }) });
55017
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
55008
55018
  }
55009
55019
  );
55010
55020
  PopoverContent.displayName = CONTENT_NAME;
@@ -55019,7 +55029,7 @@ var require_dist25 = __commonJS({
55019
55029
  if (content)
55020
55030
  return (0, import_aria_hidden.hideOthers)(content);
55021
55031
  }, []);
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)(
55032
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
55023
55033
  PopoverContentImpl,
55024
55034
  {
55025
55035
  ...props,
@@ -55055,7 +55065,7 @@ var require_dist25 = __commonJS({
55055
55065
  const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
55056
55066
  const hasInteractedOutsideRef = React3.useRef(false);
55057
55067
  const hasPointerDownOutsideRef = React3.useRef(false);
55058
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55068
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
55059
55069
  PopoverContentImpl,
55060
55070
  {
55061
55071
  ...props,
@@ -55109,7 +55119,7 @@ var require_dist25 = __commonJS({
55109
55119
  const context = usePopoverContext(CONTENT_NAME, __scopePopover);
55110
55120
  const popperScope = usePopperScope(__scopePopover);
55111
55121
  (0, import_react_focus_guards.useFocusGuards)();
55112
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55122
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
55113
55123
  import_react_focus_scope.FocusScope,
55114
55124
  {
55115
55125
  asChild: true,
@@ -55117,7 +55127,7 @@ var require_dist25 = __commonJS({
55117
55127
  trapped: trapFocus,
55118
55128
  onMountAutoFocus: onOpenAutoFocus,
55119
55129
  onUnmountAutoFocus: onCloseAutoFocus,
55120
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55130
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
55121
55131
  import_react_dismissable_layer.DismissableLayer,
55122
55132
  {
55123
55133
  asChild: true,
@@ -55127,7 +55137,7 @@ var require_dist25 = __commonJS({
55127
55137
  onPointerDownOutside,
55128
55138
  onFocusOutside,
55129
55139
  onDismiss: () => context.onOpenChange(false),
55130
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55140
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
55131
55141
  PopperPrimitive.Content,
55132
55142
  {
55133
55143
  "data-state": getState(context.open),
@@ -55160,7 +55170,7 @@ var require_dist25 = __commonJS({
55160
55170
  (props, forwardedRef) => {
55161
55171
  const { __scopePopover, ...closeProps } = props;
55162
55172
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
55163
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
55173
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
55164
55174
  import_react_primitive.Primitive.button,
55165
55175
  {
55166
55176
  type: "button",
@@ -55177,7 +55187,7 @@ var require_dist25 = __commonJS({
55177
55187
  (props, forwardedRef) => {
55178
55188
  const { __scopePopover, ...arrowProps } = props;
55179
55189
  const popperScope = usePopperScope(__scopePopover);
55180
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
55190
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
55181
55191
  }
55182
55192
  );
55183
55193
  PopoverArrow.displayName = ARROW_NAME;
@@ -55403,13 +55413,13 @@ var require_dist28 = __commonJS({
55403
55413
  });
55404
55414
  module.exports = __toCommonJS2(index_exports);
55405
55415
  var React3 = __toESM2(require_react());
55406
- var import_jsx_runtime52 = require_jsx_runtime();
55416
+ var import_jsx_runtime53 = require_jsx_runtime();
55407
55417
  function createContext2(rootComponentName, defaultContext) {
55408
55418
  const Context = React3.createContext(defaultContext);
55409
55419
  const Provider = (props) => {
55410
55420
  const { children, ...context } = props;
55411
55421
  const value = React3.useMemo(() => context, Object.values(context));
55412
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
55422
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Context.Provider, { value, children });
55413
55423
  };
55414
55424
  Provider.displayName = rootComponentName + "Provider";
55415
55425
  function useContext2(consumerName) {
@@ -55432,7 +55442,7 @@ var require_dist28 = __commonJS({
55432
55442
  const { scope, children, ...context } = props;
55433
55443
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
55434
55444
  const value = React3.useMemo(() => context, Object.values(context));
55435
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
55445
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Context.Provider, { value, children });
55436
55446
  };
55437
55447
  Provider.displayName = rootComponentName + "Provider";
55438
55448
  function useContext2(consumerName, scope) {
@@ -55891,7 +55901,7 @@ var require_dist34 = __commonJS({
55891
55901
  module.exports = __toCommonJS2(index_exports);
55892
55902
  var React3 = __toESM2(require_react());
55893
55903
  var import_react_compose_refs = require_dist27();
55894
- var import_jsx_runtime52 = require_jsx_runtime();
55904
+ var import_jsx_runtime53 = require_jsx_runtime();
55895
55905
  // @__NO_SIDE_EFFECTS__
55896
55906
  function createSlot(ownerName) {
55897
55907
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -55910,9 +55920,9 @@ var require_dist34 = __commonJS({
55910
55920
  return child;
55911
55921
  }
55912
55922
  });
55913
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
55923
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
55914
55924
  }
55915
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
55925
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
55916
55926
  });
55917
55927
  Slot2.displayName = `${ownerName}.Slot`;
55918
55928
  return Slot2;
@@ -55939,7 +55949,7 @@ var require_dist34 = __commonJS({
55939
55949
  // @__NO_SIDE_EFFECTS__
55940
55950
  function createSlottable(ownerName) {
55941
55951
  const Slottable2 = ({ children }) => {
55942
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children });
55952
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_jsx_runtime53.Fragment, { children });
55943
55953
  };
55944
55954
  Slottable2.displayName = `${ownerName}.Slottable`;
55945
55955
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -56029,7 +56039,7 @@ var require_dist35 = __commonJS({
56029
56039
  var React3 = __toESM2(require_react());
56030
56040
  var ReactDOM2 = __toESM2(require_react_dom());
56031
56041
  var import_react_slot = require_dist34();
56032
- var import_jsx_runtime52 = require_jsx_runtime();
56042
+ var import_jsx_runtime53 = require_jsx_runtime();
56033
56043
  var NODES = [
56034
56044
  "a",
56035
56045
  "button",
@@ -56057,7 +56067,7 @@ var require_dist35 = __commonJS({
56057
56067
  if (typeof window !== "undefined") {
56058
56068
  window[Symbol.for("radix-ui")] = true;
56059
56069
  }
56060
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
56070
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
56061
56071
  });
56062
56072
  Node2.displayName = `Primitive.${node}`;
56063
56073
  return { ...primitive, [node]: Node2 };
@@ -56216,7 +56226,7 @@ var require_dist38 = __commonJS({
56216
56226
  var import_react_compose_refs = require_dist27();
56217
56227
  var import_react_use_callback_ref = require_dist36();
56218
56228
  var import_react_use_escape_keydown = require_dist37();
56219
- var import_jsx_runtime52 = require_jsx_runtime();
56229
+ var import_jsx_runtime53 = require_jsx_runtime();
56220
56230
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
56221
56231
  var CONTEXT_UPDATE = "dismissableLayer.update";
56222
56232
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -56311,7 +56321,7 @@ var require_dist38 = __commonJS({
56311
56321
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
56312
56322
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
56313
56323
  }, []);
56314
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
56324
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
56315
56325
  import_react_primitive.Primitive.div,
56316
56326
  {
56317
56327
  ...layerProps,
@@ -56345,7 +56355,7 @@ var require_dist38 = __commonJS({
56345
56355
  };
56346
56356
  }
56347
56357
  }, [context.branches]);
56348
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
56358
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
56349
56359
  });
56350
56360
  DismissableLayerBranch.displayName = BRANCH_NAME;
56351
56361
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -56474,7 +56484,7 @@ var require_dist39 = __commonJS({
56474
56484
  var import_react_compose_refs = require_dist27();
56475
56485
  var import_react_primitive = require_dist35();
56476
56486
  var import_react_use_callback_ref = require_dist36();
56477
- var import_jsx_runtime52 = require_jsx_runtime();
56487
+ var import_jsx_runtime53 = require_jsx_runtime();
56478
56488
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
56479
56489
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
56480
56490
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -56604,7 +56614,7 @@ var require_dist39 = __commonJS({
56604
56614
  },
56605
56615
  [loop, trapped, focusScope.paused]
56606
56616
  );
56607
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
56617
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
56608
56618
  });
56609
56619
  FocusScope.displayName = FOCUS_SCOPE_NAME;
56610
56620
  function focusFirst(candidates, { select = false } = {}) {
@@ -56739,14 +56749,14 @@ var require_dist40 = __commonJS({
56739
56749
  var import_react_dom = __toESM2(require_react_dom());
56740
56750
  var import_react_primitive = require_dist35();
56741
56751
  var import_react_use_layout_effect = require_dist29();
56742
- var import_jsx_runtime52 = require_jsx_runtime();
56752
+ var import_jsx_runtime53 = require_jsx_runtime();
56743
56753
  var PORTAL_NAME = "Portal";
56744
56754
  var Portal = React3.forwardRef((props, forwardedRef) => {
56745
56755
  const { container: containerProp, ...portalProps } = props;
56746
56756
  const [mounted, setMounted] = React3.useState(false);
56747
56757
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
56748
56758
  const container = containerProp || mounted && globalThis?.document?.body;
56749
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
56759
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
56750
56760
  });
56751
56761
  Portal.displayName = PORTAL_NAME;
56752
56762
  var Root = Portal;
@@ -57063,7 +57073,7 @@ var require_dist43 = __commonJS({
57063
57073
  var import_react_remove_scroll = require_es57();
57064
57074
  var import_aria_hidden = require_es5();
57065
57075
  var import_react_slot = require_dist34();
57066
- var import_jsx_runtime52 = require_jsx_runtime();
57076
+ var import_jsx_runtime53 = require_jsx_runtime();
57067
57077
  var DIALOG_NAME = "Dialog";
57068
57078
  var [createDialogContext, createDialogScope] = (0, import_react_context.createContextScope)(DIALOG_NAME);
57069
57079
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -57084,7 +57094,7 @@ var require_dist43 = __commonJS({
57084
57094
  onChange: onOpenChange,
57085
57095
  caller: DIALOG_NAME
57086
57096
  });
57087
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57097
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57088
57098
  DialogProvider,
57089
57099
  {
57090
57100
  scope: __scopeDialog,
@@ -57108,7 +57118,7 @@ var require_dist43 = __commonJS({
57108
57118
  const { __scopeDialog, ...triggerProps } = props;
57109
57119
  const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
57110
57120
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
57111
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57121
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57112
57122
  import_react_primitive.Primitive.button,
57113
57123
  {
57114
57124
  type: "button",
@@ -57131,7 +57141,7 @@ var require_dist43 = __commonJS({
57131
57141
  var DialogPortal = (props) => {
57132
57142
  const { __scopeDialog, forceMount, children, container } = props;
57133
57143
  const context = useDialogContext(PORTAL_NAME, __scopeDialog);
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 }) })) });
57144
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
57135
57145
  };
57136
57146
  DialogPortal.displayName = PORTAL_NAME;
57137
57147
  var OVERLAY_NAME = "DialogOverlay";
@@ -57140,7 +57150,7 @@ var require_dist43 = __commonJS({
57140
57150
  const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
57141
57151
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
57142
57152
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
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;
57153
+ return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
57144
57154
  }
57145
57155
  );
57146
57156
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -57152,7 +57162,7 @@ var require_dist43 = __commonJS({
57152
57162
  return (
57153
57163
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
57154
57164
  // ie. when `Overlay` and `Content` are siblings
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)(
57165
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57156
57166
  import_react_primitive.Primitive.div,
57157
57167
  {
57158
57168
  "data-state": getState(context.open),
@@ -57170,7 +57180,7 @@ var require_dist43 = __commonJS({
57170
57180
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
57171
57181
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
57172
57182
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
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 }) });
57183
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
57174
57184
  }
57175
57185
  );
57176
57186
  DialogContent.displayName = CONTENT_NAME;
@@ -57184,7 +57194,7 @@ var require_dist43 = __commonJS({
57184
57194
  if (content)
57185
57195
  return (0, import_aria_hidden.hideOthers)(content);
57186
57196
  }, []);
57187
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57197
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57188
57198
  DialogContentImpl,
57189
57199
  {
57190
57200
  ...props,
@@ -57215,7 +57225,7 @@ var require_dist43 = __commonJS({
57215
57225
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
57216
57226
  const hasInteractedOutsideRef = React3.useRef(false);
57217
57227
  const hasPointerDownOutsideRef = React3.useRef(false);
57218
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57228
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57219
57229
  DialogContentImpl,
57220
57230
  {
57221
57231
  ...props,
@@ -57259,8 +57269,8 @@ var require_dist43 = __commonJS({
57259
57269
  const contentRef = React3.useRef(null);
57260
57270
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentRef);
57261
57271
  (0, import_react_focus_guards.useFocusGuards)();
57262
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
57263
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57272
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
57273
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57264
57274
  import_react_focus_scope.FocusScope,
57265
57275
  {
57266
57276
  asChild: true,
@@ -57268,7 +57278,7 @@ var require_dist43 = __commonJS({
57268
57278
  trapped: trapFocus,
57269
57279
  onMountAutoFocus: onOpenAutoFocus,
57270
57280
  onUnmountAutoFocus: onCloseAutoFocus,
57271
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57281
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57272
57282
  import_react_dismissable_layer.DismissableLayer,
57273
57283
  {
57274
57284
  role: "dialog",
@@ -57283,9 +57293,9 @@ var require_dist43 = __commonJS({
57283
57293
  )
57284
57294
  }
57285
57295
  ),
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 })
57296
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
57297
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TitleWarning, { titleId: context.titleId }),
57298
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
57289
57299
  ] })
57290
57300
  ] });
57291
57301
  }
@@ -57295,7 +57305,7 @@ var require_dist43 = __commonJS({
57295
57305
  (props, forwardedRef) => {
57296
57306
  const { __scopeDialog, ...titleProps } = props;
57297
57307
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
57298
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
57308
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
57299
57309
  }
57300
57310
  );
57301
57311
  DialogTitle.displayName = TITLE_NAME;
@@ -57304,7 +57314,7 @@ var require_dist43 = __commonJS({
57304
57314
  (props, forwardedRef) => {
57305
57315
  const { __scopeDialog, ...descriptionProps } = props;
57306
57316
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
57307
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
57317
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
57308
57318
  }
57309
57319
  );
57310
57320
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -57313,7 +57323,7 @@ var require_dist43 = __commonJS({
57313
57323
  (props, forwardedRef) => {
57314
57324
  const { __scopeDialog, ...closeProps } = props;
57315
57325
  const context = useDialogContext(CLOSE_NAME, __scopeDialog);
57316
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
57326
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
57317
57327
  import_react_primitive.Primitive.button,
57318
57328
  {
57319
57329
  type: "button",
@@ -57913,13 +57923,13 @@ var require_dist47 = __commonJS({
57913
57923
  });
57914
57924
  module.exports = __toCommonJS2(index_exports);
57915
57925
  var React3 = __toESM2(require_react());
57916
- var import_jsx_runtime52 = require_jsx_runtime();
57926
+ var import_jsx_runtime53 = require_jsx_runtime();
57917
57927
  function createContext2(rootComponentName, defaultContext) {
57918
57928
  const Context = React3.createContext(defaultContext);
57919
57929
  const Provider = (props) => {
57920
57930
  const { children, ...context } = props;
57921
57931
  const value = React3.useMemo(() => context, Object.values(context));
57922
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
57932
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Context.Provider, { value, children });
57923
57933
  };
57924
57934
  Provider.displayName = rootComponentName + "Provider";
57925
57935
  function useContext2(consumerName) {
@@ -57942,7 +57952,7 @@ var require_dist47 = __commonJS({
57942
57952
  const { scope, children, ...context } = props;
57943
57953
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
57944
57954
  const value = React3.useMemo(() => context, Object.values(context));
57945
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Context.Provider, { value, children });
57955
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Context.Provider, { value, children });
57946
57956
  };
57947
57957
  Provider.displayName = rootComponentName + "Provider";
57948
57958
  function useContext2(consumerName, scope) {
@@ -58416,7 +58426,7 @@ var require_dist53 = __commonJS({
58416
58426
  module.exports = __toCommonJS2(index_exports);
58417
58427
  var React3 = __toESM2(require_react());
58418
58428
  var import_react_compose_refs = require_dist52();
58419
- var import_jsx_runtime52 = require_jsx_runtime();
58429
+ var import_jsx_runtime53 = require_jsx_runtime();
58420
58430
  // @__NO_SIDE_EFFECTS__
58421
58431
  function createSlot(ownerName) {
58422
58432
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -58435,9 +58445,9 @@ var require_dist53 = __commonJS({
58435
58445
  return child;
58436
58446
  }
58437
58447
  });
58438
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
58448
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
58439
58449
  }
58440
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
58450
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
58441
58451
  });
58442
58452
  Slot2.displayName = `${ownerName}.Slot`;
58443
58453
  return Slot2;
@@ -58465,7 +58475,7 @@ var require_dist53 = __commonJS({
58465
58475
  // @__NO_SIDE_EFFECTS__
58466
58476
  function createSlottable(ownerName) {
58467
58477
  const Slottable2 = ({ children }) => {
58468
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children });
58478
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_jsx_runtime53.Fragment, { children });
58469
58479
  };
58470
58480
  Slottable2.displayName = `${ownerName}.Slottable`;
58471
58481
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -58556,7 +58566,7 @@ var require_dist54 = __commonJS({
58556
58566
  var React3 = __toESM2(require_react());
58557
58567
  var ReactDOM2 = __toESM2(require_react_dom());
58558
58568
  var import_react_slot = require_dist53();
58559
- var import_jsx_runtime52 = require_jsx_runtime();
58569
+ var import_jsx_runtime53 = require_jsx_runtime();
58560
58570
  var NODES = [
58561
58571
  "a",
58562
58572
  "button",
@@ -58584,7 +58594,7 @@ var require_dist54 = __commonJS({
58584
58594
  if (typeof window !== "undefined") {
58585
58595
  window[Symbol.for("radix-ui")] = true;
58586
58596
  }
58587
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
58597
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
58588
58598
  });
58589
58599
  Node2.displayName = `Primitive.${node}`;
58590
58600
  return { ...primitive, [node]: Node2 };
@@ -58743,7 +58753,7 @@ var require_dist57 = __commonJS({
58743
58753
  var import_react_compose_refs = require_dist46();
58744
58754
  var import_react_use_callback_ref = require_dist55();
58745
58755
  var import_react_use_escape_keydown = require_dist56();
58746
- var import_jsx_runtime52 = require_jsx_runtime();
58756
+ var import_jsx_runtime53 = require_jsx_runtime();
58747
58757
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
58748
58758
  var CONTEXT_UPDATE = "dismissableLayer.update";
58749
58759
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -58838,7 +58848,7 @@ var require_dist57 = __commonJS({
58838
58848
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
58839
58849
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
58840
58850
  }, []);
58841
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
58851
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
58842
58852
  import_react_primitive.Primitive.div,
58843
58853
  {
58844
58854
  ...layerProps,
@@ -58872,7 +58882,7 @@ var require_dist57 = __commonJS({
58872
58882
  };
58873
58883
  }
58874
58884
  }, [context.branches]);
58875
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
58885
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
58876
58886
  });
58877
58887
  DismissableLayerBranch.displayName = BRANCH_NAME;
58878
58888
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -59048,7 +59058,7 @@ var require_dist59 = __commonJS({
59048
59058
  var import_react_compose_refs = require_dist46();
59049
59059
  var import_react_primitive = require_dist54();
59050
59060
  var import_react_use_callback_ref = require_dist58();
59051
- var import_jsx_runtime52 = require_jsx_runtime();
59061
+ var import_jsx_runtime53 = require_jsx_runtime();
59052
59062
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
59053
59063
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
59054
59064
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -59178,7 +59188,7 @@ var require_dist59 = __commonJS({
59178
59188
  },
59179
59189
  [loop, trapped, focusScope.paused]
59180
59190
  );
59181
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
59191
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
59182
59192
  });
59183
59193
  FocusScope.displayName = FOCUS_SCOPE_NAME;
59184
59194
  function focusFirst(candidates, { select = false } = {}) {
@@ -59355,14 +59365,14 @@ var require_dist61 = __commonJS({
59355
59365
  var import_react_dom = __toESM2(require_react_dom());
59356
59366
  var import_react_primitive = require_dist54();
59357
59367
  var import_react_use_layout_effect = require_dist60();
59358
- var import_jsx_runtime52 = require_jsx_runtime();
59368
+ var import_jsx_runtime53 = require_jsx_runtime();
59359
59369
  var PORTAL_NAME = "Portal";
59360
59370
  var Portal = React3.forwardRef((props, forwardedRef) => {
59361
59371
  const { container: containerProp, ...portalProps } = props;
59362
59372
  const [mounted, setMounted] = React3.useState(false);
59363
59373
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
59364
59374
  const container = containerProp || mounted && globalThis?.document?.body;
59365
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
59375
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
59366
59376
  });
59367
59377
  Portal.displayName = PORTAL_NAME;
59368
59378
  var Root = Portal;
@@ -59721,7 +59731,7 @@ var require_dist65 = __commonJS({
59721
59731
  var import_react_remove_scroll = require_es57();
59722
59732
  var import_aria_hidden = require_es5();
59723
59733
  var import_react_slot = require_dist53();
59724
- var import_jsx_runtime52 = require_jsx_runtime();
59734
+ var import_jsx_runtime53 = require_jsx_runtime();
59725
59735
  var DIALOG_NAME = "Dialog";
59726
59736
  var [createDialogContext, createDialogScope] = (0, import_react_context.createContextScope)(DIALOG_NAME);
59727
59737
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -59742,7 +59752,7 @@ var require_dist65 = __commonJS({
59742
59752
  onChange: onOpenChange,
59743
59753
  caller: DIALOG_NAME
59744
59754
  });
59745
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59755
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59746
59756
  DialogProvider,
59747
59757
  {
59748
59758
  scope: __scopeDialog,
@@ -59766,7 +59776,7 @@ var require_dist65 = __commonJS({
59766
59776
  const { __scopeDialog, ...triggerProps } = props;
59767
59777
  const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
59768
59778
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
59769
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59779
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59770
59780
  import_react_primitive.Primitive.button,
59771
59781
  {
59772
59782
  type: "button",
@@ -59789,7 +59799,7 @@ var require_dist65 = __commonJS({
59789
59799
  var DialogPortal = (props) => {
59790
59800
  const { __scopeDialog, forceMount, children, container } = props;
59791
59801
  const context = useDialogContext(PORTAL_NAME, __scopeDialog);
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 }) })) });
59802
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
59793
59803
  };
59794
59804
  DialogPortal.displayName = PORTAL_NAME;
59795
59805
  var OVERLAY_NAME = "DialogOverlay";
@@ -59798,7 +59808,7 @@ var require_dist65 = __commonJS({
59798
59808
  const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
59799
59809
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
59800
59810
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
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;
59811
+ return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
59802
59812
  }
59803
59813
  );
59804
59814
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -59810,7 +59820,7 @@ var require_dist65 = __commonJS({
59810
59820
  return (
59811
59821
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
59812
59822
  // ie. when `Overlay` and `Content` are siblings
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)(
59823
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59814
59824
  import_react_primitive.Primitive.div,
59815
59825
  {
59816
59826
  "data-state": getState(context.open),
@@ -59828,7 +59838,7 @@ var require_dist65 = __commonJS({
59828
59838
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
59829
59839
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
59830
59840
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
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 }) });
59841
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
59832
59842
  }
59833
59843
  );
59834
59844
  DialogContent.displayName = CONTENT_NAME;
@@ -59842,7 +59852,7 @@ var require_dist65 = __commonJS({
59842
59852
  if (content)
59843
59853
  return (0, import_aria_hidden.hideOthers)(content);
59844
59854
  }, []);
59845
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59855
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59846
59856
  DialogContentImpl,
59847
59857
  {
59848
59858
  ...props,
@@ -59873,7 +59883,7 @@ var require_dist65 = __commonJS({
59873
59883
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
59874
59884
  const hasInteractedOutsideRef = React3.useRef(false);
59875
59885
  const hasPointerDownOutsideRef = React3.useRef(false);
59876
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59886
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59877
59887
  DialogContentImpl,
59878
59888
  {
59879
59889
  ...props,
@@ -59917,8 +59927,8 @@ var require_dist65 = __commonJS({
59917
59927
  const contentRef = React3.useRef(null);
59918
59928
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentRef);
59919
59929
  (0, import_react_focus_guards.useFocusGuards)();
59920
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
59921
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59930
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
59931
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59922
59932
  import_react_focus_scope.FocusScope,
59923
59933
  {
59924
59934
  asChild: true,
@@ -59926,7 +59936,7 @@ var require_dist65 = __commonJS({
59926
59936
  trapped: trapFocus,
59927
59937
  onMountAutoFocus: onOpenAutoFocus,
59928
59938
  onUnmountAutoFocus: onCloseAutoFocus,
59929
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59939
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59930
59940
  import_react_dismissable_layer.DismissableLayer,
59931
59941
  {
59932
59942
  role: "dialog",
@@ -59941,9 +59951,9 @@ var require_dist65 = __commonJS({
59941
59951
  )
59942
59952
  }
59943
59953
  ),
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 })
59954
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
59955
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TitleWarning, { titleId: context.titleId }),
59956
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
59947
59957
  ] })
59948
59958
  ] });
59949
59959
  }
@@ -59953,7 +59963,7 @@ var require_dist65 = __commonJS({
59953
59963
  (props, forwardedRef) => {
59954
59964
  const { __scopeDialog, ...titleProps } = props;
59955
59965
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
59956
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
59966
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
59957
59967
  }
59958
59968
  );
59959
59969
  DialogTitle.displayName = TITLE_NAME;
@@ -59962,7 +59972,7 @@ var require_dist65 = __commonJS({
59962
59972
  (props, forwardedRef) => {
59963
59973
  const { __scopeDialog, ...descriptionProps } = props;
59964
59974
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
59965
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
59975
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
59966
59976
  }
59967
59977
  );
59968
59978
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -59971,7 +59981,7 @@ var require_dist65 = __commonJS({
59971
59981
  (props, forwardedRef) => {
59972
59982
  const { __scopeDialog, ...closeProps } = props;
59973
59983
  const context = useDialogContext(CLOSE_NAME, __scopeDialog);
59974
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
59984
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
59975
59985
  import_react_primitive.Primitive.button,
59976
59986
  {
59977
59987
  type: "button",
@@ -70115,23 +70125,180 @@ var require_FaClock = __commonJS({
70115
70125
  }
70116
70126
  });
70117
70127
 
70118
- // build/input.rtmp/inline-view.js
70128
+ // build/input.file/inline-view.js
70119
70129
  var import_jsx_runtime = __toESM(require_jsx_runtime());
70130
+ function cn(...classes) {
70131
+ return classes.filter(Boolean).join(" ");
70132
+ }
70133
+ function basename(filePath) {
70134
+ return filePath.split("/").pop() || filePath;
70135
+ }
70120
70136
  function InlineView({ state, config }) {
70137
+ const getStatusColor = (status) => {
70138
+ switch (status) {
70139
+ case "playing":
70140
+ return "text-green-500 dark:text-green-300";
70141
+ case "error":
70142
+ return "text-red-500 dark:text-red-300";
70143
+ default:
70144
+ return "text-gray-500 dark:text-gray-400";
70145
+ }
70146
+ };
70147
+ return (0, import_jsx_runtime.jsxs)("div", { className: "file-input space-y-2", id: `file-input-${config.id}`, children: [(0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime.jsx)("span", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Status:" }), (0, import_jsx_runtime.jsx)("span", { className: cn("text-sm font-medium", getStatusColor(state.status)), children: state.status.charAt(0).toUpperCase() + state.status.slice(1) })] }), state.currentFile && (0, import_jsx_runtime.jsxs)("div", { className: "text-sm text-gray-700 dark:text-gray-300", children: [(0, import_jsx_runtime.jsx)("span", { className: "font-medium", children: "File:" }), " ", basename(state.currentFile), state.isLooping && (0, import_jsx_runtime.jsx)("span", { className: "ml-2 text-xs text-blue-600 dark:text-blue-400", children: "(Looping)" })] }), state.error && (0, import_jsx_runtime.jsxs)("div", { className: "text-sm text-red-500 dark:text-red-400 bg-red-50 dark:bg-red-900/20 p-2 rounded", children: [(0, import_jsx_runtime.jsx)("span", { className: "font-medium", children: "Error:" }), " ", state.error] }), state.status === "idle" && !state.currentFile && (0, import_jsx_runtime.jsx)("div", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Ready to play files via API" })] });
70148
+ }
70149
+ var inline_view_default = InlineView;
70150
+
70151
+ // build/input.file/info.js
70152
+ var import_FaPlay = __toESM(require_FaPlay());
70153
+ function defaultStreamMapping(cfg) {
70154
+ return {
70155
+ streams: [{
70156
+ media: "video",
70157
+ displayName: "Video",
70158
+ outputKey: {
70159
+ sourceName: cfg.sourceName ?? "file-source",
70160
+ programNumber: 1,
70161
+ streamId: 256,
70162
+ renditionName: "default"
70163
+ }
70164
+ }, {
70165
+ media: "audio",
70166
+ displayName: "Audio",
70167
+ outputKey: {
70168
+ sourceName: cfg.sourceName ?? "file-source",
70169
+ programNumber: 1,
70170
+ streamId: 257,
70171
+ renditionName: "default"
70172
+ }
70173
+ }]
70174
+ };
70175
+ }
70176
+ function info_default({ defineComponent, mappingsToStreams, StreamMappingForm, validation }) {
70177
+ const { SourceName } = validation;
70178
+ return defineComponent({
70179
+ identifier: "input.file",
70180
+ category: "input",
70181
+ name: "File Input",
70182
+ description: "Dynamically play MP4 or TS files via API calls",
70183
+ icon: import_FaPlay.FaPlay,
70184
+ subscription: {
70185
+ accepts: void 0,
70186
+ produces: {
70187
+ type: "dynamic-streams",
70188
+ groupBy: "sourceName",
70189
+ streams: (cfg) => mappingsToStreams(cfg.streamMappings ?? defaultStreamMapping(cfg))
70190
+ }
70191
+ },
70192
+ display: (desc) => {
70193
+ return {
70194
+ source: desc.config.sourceName || "file-source"
70195
+ };
70196
+ },
70197
+ extraValidation: (_ctx) => {
70198
+ },
70199
+ runtime: {
70200
+ initialState: () => ({
70201
+ status: "idle",
70202
+ currentFile: null,
70203
+ error: null,
70204
+ isLooping: false
70205
+ }),
70206
+ handleEvent(ev, state) {
70207
+ const evType = ev.type;
70208
+ switch (evType) {
70209
+ case "playback-started":
70210
+ return {
70211
+ ...state,
70212
+ status: "playing",
70213
+ currentFile: ev.filePath,
70214
+ error: null,
70215
+ isLooping: ev.isLooping
70216
+ };
70217
+ case "playback-completed":
70218
+ return {
70219
+ ...state,
70220
+ status: "idle",
70221
+ currentFile: null,
70222
+ error: null
70223
+ };
70224
+ case "playback-stopped":
70225
+ return {
70226
+ ...state,
70227
+ status: "idle",
70228
+ currentFile: null,
70229
+ error: null
70230
+ };
70231
+ case "playback-error":
70232
+ return {
70233
+ ...state,
70234
+ status: "error",
70235
+ error: ev.error
70236
+ };
70237
+ default:
70238
+ assertUnreachable(evType);
70239
+ }
70240
+ },
70241
+ inline: inline_view_default
70242
+ },
70243
+ configForm: {
70244
+ form: {
70245
+ sourceName: {
70246
+ help: "Source name for the output streams",
70247
+ hint: {
70248
+ type: "text",
70249
+ validation: SourceName,
70250
+ defaultValue: "file-source"
70251
+ }
70252
+ },
70253
+ streamMappings: StreamMappingForm(defaultStreamMapping, {
70254
+ sourceNames: (cfg) => [cfg.sourceName ?? "file-source"]
70255
+ }),
70256
+ notes: {
70257
+ help: "Additional notes about this component",
70258
+ hint: {
70259
+ type: "text",
70260
+ optional: true
70261
+ }
70262
+ },
70263
+ initialFilename: {
70264
+ help: "File to start playing automatically on component startup",
70265
+ hint: {
70266
+ type: "text",
70267
+ optional: true
70268
+ }
70269
+ },
70270
+ initialLoop: {
70271
+ help: "Whether to loop the initial file continuously",
70272
+ hint: {
70273
+ type: "boolean",
70274
+ optional: true
70275
+ }
70276
+ }
70277
+ }
70278
+ }
70279
+ });
70280
+ }
70281
+ function assertUnreachable(_) {
70282
+ throw new Error("Didn't expect to get here");
70283
+ }
70284
+
70285
+ // build/input.rtmp/inline-view.js
70286
+ var import_jsx_runtime2 = __toESM(require_jsx_runtime());
70287
+ function InlineView2({ state, config }) {
70121
70288
  const maxSourceNum = 4;
70122
70289
  const sourcesToRender = state.connectedStreams.slice(0, maxSourceNum);
70123
70290
  if (state.connectedStreams.length > maxSourceNum) {
70124
70291
  sourcesToRender.push("...");
70125
70292
  }
70126
- const connectedSources = (0, import_jsx_runtime.jsxs)("div", { className: "mt-2", children: [state.connectedStreams.length > 0 ? (0, import_jsx_runtime.jsx)("span", { children: "Connected sources" }) : (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {}), (0, import_jsx_runtime.jsx)("ul", { className: "rtmp-input-connected-sources", children: sourcesToRender.map((sourceName) => {
70127
- return (0, import_jsx_runtime.jsx)("li", { className: "text-green-300", children: sourceName }, sourceName);
70293
+ const connectedSources = (0, import_jsx_runtime2.jsxs)("div", { className: "mt-2", children: [state.connectedStreams.length > 0 ? (0, import_jsx_runtime2.jsx)("span", { children: "Connected sources" }) : (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, {}), (0, import_jsx_runtime2.jsx)("ul", { className: "rtmp-input-connected-sources", children: sourcesToRender.map((sourceName) => {
70294
+ return (0, import_jsx_runtime2.jsx)("li", { className: "text-green-300", children: sourceName }, sourceName);
70128
70295
  }) })] });
70129
- return (0, import_jsx_runtime.jsx)("div", { className: "rtmp-input", id: `rtmp-input-${config.id}`, children: connectedSources });
70296
+ return (0, import_jsx_runtime2.jsx)("div", { className: "rtmp-input", id: `rtmp-input-${config.id}`, children: connectedSources });
70130
70297
  }
70131
- var inline_view_default = InlineView;
70298
+ var inline_view_default2 = InlineView2;
70132
70299
 
70133
70300
  // build/input.rtmp/summary-view.js
70134
- var import_jsx_runtime2 = __toESM(require_jsx_runtime());
70301
+ var import_jsx_runtime3 = __toESM(require_jsx_runtime());
70135
70302
  function SummaryView({ state, config, sendCommand }) {
70136
70303
  const connectedSources = [];
70137
70304
  const disconnectedSources = [];
@@ -70181,10 +70348,10 @@ function SummaryView({ state, config, sendCommand }) {
70181
70348
  disconnectedSources.push(streamName);
70182
70349
  }
70183
70350
  });
70184
- return (0, import_jsx_runtime2.jsxs)("div", { className: "dark:text-white text-black mb-3 w-60", children: [(0, import_jsx_runtime2.jsxs)("div", { id: "rtmp-sources-connected", children: [(0, import_jsx_runtime2.jsx)("span", { children: "Connected Sources" }), (0, import_jsx_runtime2.jsx)("ul", { children: connectedSources.map((streamName) => {
70185
- return (0, import_jsx_runtime2.jsxs)("li", { className: "text-green-300", children: [streamName, (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleResetStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Reset" }), (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
70186
- }) })] }), (0, import_jsx_runtime2.jsxs)("div", { id: "rtmp-sources-disconnected", className: "mt-3", children: [(0, import_jsx_runtime2.jsx)("span", { children: "Disconnected Sources" }), (0, import_jsx_runtime2.jsx)("ul", { children: disconnectedSources.map((streamName) => {
70187
- return (0, import_jsx_runtime2.jsxs)("li", { className: "text-orange-300", children: [streamName, state.disabledStreams.includes(streamName) ? (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleEnableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable" }) : (0, import_jsx_runtime2.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
70351
+ return (0, import_jsx_runtime3.jsxs)("div", { className: "dark:text-white text-black mb-3 w-60", children: [(0, import_jsx_runtime3.jsxs)("div", { id: "rtmp-sources-connected", children: [(0, import_jsx_runtime3.jsx)("span", { children: "Connected Sources" }), (0, import_jsx_runtime3.jsx)("ul", { children: connectedSources.map((streamName) => {
70352
+ return (0, import_jsx_runtime3.jsxs)("li", { className: "text-green-300", children: [streamName, (0, import_jsx_runtime3.jsx)("button", { onClick: () => handleResetStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Reset" }), (0, import_jsx_runtime3.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
70353
+ }) })] }), (0, import_jsx_runtime3.jsxs)("div", { id: "rtmp-sources-disconnected", className: "mt-3", children: [(0, import_jsx_runtime3.jsx)("span", { children: "Disconnected Sources" }), (0, import_jsx_runtime3.jsx)("ul", { children: disconnectedSources.map((streamName) => {
70354
+ return (0, import_jsx_runtime3.jsxs)("li", { className: "text-orange-300", children: [streamName, state.disabledStreams.includes(streamName) ? (0, import_jsx_runtime3.jsx)("button", { onClick: () => handleEnableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable" }) : (0, import_jsx_runtime3.jsx)("button", { onClick: () => handleDisableStream(streamName), className: "ml-2 px-2 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable" })] }, streamName);
70188
70355
  }) })] })] });
70189
70356
  }
70190
70357
  var summary_view_default = SummaryView;
@@ -70192,7 +70359,7 @@ var summary_view_default = SummaryView;
70192
70359
  // build/input.rtmp/info.js
70193
70360
  var import_FaVideo = __toESM(require_FaVideo());
70194
70361
  var defaultPort = 1935;
70195
- function defaultStreamMapping(cfg) {
70362
+ function defaultStreamMapping2(cfg) {
70196
70363
  return {
70197
70364
  streams: cfg.streamNames?.flatMap((s) => [{
70198
70365
  media: "video",
@@ -70221,7 +70388,7 @@ function defaultStreamMapping(cfg) {
70221
70388
  }]) ?? []
70222
70389
  };
70223
70390
  }
70224
- function info_default({ defineComponent, mappingsToStreams, StreamMappingForm, validation: { Z, Port, SourceName, unique } }) {
70391
+ function info_default2({ defineComponent, mappingsToStreams, StreamMappingForm, validation: { Z, Port, SourceName, unique } }) {
70225
70392
  return defineComponent({
70226
70393
  identifier: "input.rtmp",
70227
70394
  category: "input",
@@ -70233,7 +70400,7 @@ function info_default({ defineComponent, mappingsToStreams, StreamMappingForm, v
70233
70400
  produces: {
70234
70401
  type: "dynamic-streams",
70235
70402
  groupBy: "sourceName",
70236
- streams: (cfg) => mappingsToStreams(cfg.streamMappings ?? defaultStreamMapping(cfg))
70403
+ streams: (cfg) => mappingsToStreams(cfg.streamMappings ?? defaultStreamMapping2(cfg))
70237
70404
  }
70238
70405
  },
70239
70406
  display: (desc) => {
@@ -70259,11 +70426,11 @@ function info_default({ defineComponent, mappingsToStreams, StreamMappingForm, v
70259
70426
  state.disabledStreams.push(ev.streamName);
70260
70427
  break;
70261
70428
  default:
70262
- assertUnreachable(evType);
70429
+ assertUnreachable2(evType);
70263
70430
  }
70264
70431
  return { ...state };
70265
70432
  },
70266
- inline: inline_view_default,
70433
+ inline: inline_view_default2,
70267
70434
  summary: summary_view_default
70268
70435
  },
70269
70436
  configForm: {
@@ -70281,7 +70448,7 @@ function info_default({ defineComponent, mappingsToStreams, StreamMappingForm, v
70281
70448
  global: unique("sourceName")
70282
70449
  }
70283
70450
  },
70284
- streamMappings: StreamMappingForm(defaultStreamMapping, {
70451
+ streamMappings: StreamMappingForm(defaultStreamMapping2, {
70285
70452
  sourceNames: (cfg) => cfg.streamNames ?? []
70286
70453
  }),
70287
70454
  initialState: {
@@ -70313,13 +70480,13 @@ function info_default({ defineComponent, mappingsToStreams, StreamMappingForm, v
70313
70480
  }
70314
70481
  });
70315
70482
  }
70316
- function assertUnreachable(_) {
70483
+ function assertUnreachable2(_) {
70317
70484
  throw new Error("Didn't expect to get here");
70318
70485
  }
70319
70486
 
70320
70487
  // build/input.silence/info.js
70321
70488
  var import_FaVolumeMute = __toESM(require_FaVolumeMute());
70322
- function info_default2({ defineComponent }) {
70489
+ function info_default3({ defineComponent }) {
70323
70490
  return defineComponent({
70324
70491
  identifier: "input.silence",
70325
70492
  category: "input",
@@ -70427,23 +70594,23 @@ var srt_socket_options_default = result;
70427
70594
  var import_util = __toESM(require_util());
70428
70595
 
70429
70596
  // build/shared/srt-form-views.js
70430
- var import_jsx_runtime3 = __toESM(require_jsx_runtime());
70597
+ var import_jsx_runtime4 = __toESM(require_jsx_runtime());
70431
70598
  function SocketConfiguration(options) {
70432
70599
  const show = (n) => n !== void 0 && !Number.isNaN(n) ? n.toString() : "";
70433
- return (0, import_jsx_runtime3.jsxs)("div", { className: "space-y-1 w-full text-gray-500 dark:text-gray-400", children: [(0, import_jsx_runtime3.jsx)("div", { className: "flex w-full", children: (0, import_jsx_runtime3.jsx)("dd", { className: "flex-1 text-sm", children: options.maxBandwidth === void 0 && options.overheadBandwidth === void 0 && options.inputBandwidth === void 0 && options.peerLatency === void 0 && options.receiveLatency === void 0 ? "Using defaults" : "Manually configured" }) }), options.receiveLatency !== void 0 && (0, import_jsx_runtime3.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime3.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Receive Latency" }), (0, import_jsx_runtime3.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.receiveLatency) })] }), options.peerLatency !== void 0 && (0, import_jsx_runtime3.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime3.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Peer Latency" }), (0, import_jsx_runtime3.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.peerLatency) })] }), options.inputBandwidth !== void 0 && (0, import_jsx_runtime3.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime3.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Input Bandwidth" }), (0, import_jsx_runtime3.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.inputBandwidth) })] }), options.overheadBandwidth !== void 0 && (0, import_jsx_runtime3.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime3.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Overhead Bandwidth" }), (0, import_jsx_runtime3.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.overheadBandwidth) })] }), options.maxBandwidth !== void 0 && (0, import_jsx_runtime3.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime3.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Max Bandwidth" }), (0, import_jsx_runtime3.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.maxBandwidth) })] })] });
70600
+ return (0, import_jsx_runtime4.jsxs)("div", { className: "space-y-1 w-full text-gray-500 dark:text-gray-400", children: [(0, import_jsx_runtime4.jsx)("div", { className: "flex w-full", children: (0, import_jsx_runtime4.jsx)("dd", { className: "flex-1 text-sm", children: options.maxBandwidth === void 0 && options.overheadBandwidth === void 0 && options.inputBandwidth === void 0 && options.peerLatency === void 0 && options.receiveLatency === void 0 ? "Using defaults" : "Manually configured" }) }), options.receiveLatency !== void 0 && (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime4.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Receive Latency" }), (0, import_jsx_runtime4.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.receiveLatency) })] }), options.peerLatency !== void 0 && (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime4.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Peer Latency" }), (0, import_jsx_runtime4.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.peerLatency) })] }), options.inputBandwidth !== void 0 && (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime4.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Input Bandwidth" }), (0, import_jsx_runtime4.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.inputBandwidth) })] }), options.overheadBandwidth !== void 0 && (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime4.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Overhead Bandwidth" }), (0, import_jsx_runtime4.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.overheadBandwidth) })] }), options.maxBandwidth !== void 0 && (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full", children: [(0, import_jsx_runtime4.jsx)("dt", { className: "flex-1 text-sm font-bold", children: "Max Bandwidth" }), (0, import_jsx_runtime4.jsx)("dd", { className: "flex-1 text-sm font-medium", children: show(options.maxBandwidth) })] })] });
70434
70601
  }
70435
70602
 
70436
70603
  // build/input.srt-caller/info.js
70437
70604
  var import_FaPhone = __toESM(require_FaPhone());
70438
70605
 
70439
70606
  // build/shared/srt-caller-metrics.js
70440
- var import_jsx_runtime4 = __toESM(require_jsx_runtime());
70607
+ var import_jsx_runtime5 = __toESM(require_jsx_runtime());
70441
70608
  function MetricsView({ state }) {
70442
- return (0, import_jsx_runtime4.jsxs)("div", { className: "srt-output", children: [(0, import_jsx_runtime4.jsx)("h4", { className: "font-bold dark:text-white text-black", children: "SRT Packets" }), state.enabled || state.enabled === void 0 ? (0, import_jsx_runtime4.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime4.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [(0, import_jsx_runtime4.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Component Enabled" }), state.metrics.packetsSent >= 0 ? (0, import_jsx_runtime4.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }) : (0, import_jsx_runtime4.jsxs)("div", { children: ["Received: ", state.metrics.packetsReceived] }), (0, import_jsx_runtime4.jsxs)("div", { children: ["Lost/Retransmitted: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] })] }) }) : (0, import_jsx_runtime4.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Component disabled" })] });
70609
+ return (0, import_jsx_runtime5.jsxs)("div", { className: "srt-output", children: [(0, import_jsx_runtime5.jsx)("h4", { className: "font-bold dark:text-white text-black", children: "SRT Packets" }), state.enabled || state.enabled === void 0 ? (0, import_jsx_runtime5.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime5.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [(0, import_jsx_runtime5.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Component Enabled" }), state.metrics.packetsSent >= 0 ? (0, import_jsx_runtime5.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }) : (0, import_jsx_runtime5.jsxs)("div", { children: ["Received: ", state.metrics.packetsReceived] }), (0, import_jsx_runtime5.jsxs)("div", { children: ["Lost/Retransmitted: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] })] }) }) : (0, import_jsx_runtime5.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Component disabled" })] });
70443
70610
  }
70444
70611
 
70445
70612
  // build/shared/stream-statistics-view.js
70446
- var import_jsx_runtime5 = __toESM(require_jsx_runtime());
70613
+ var import_jsx_runtime6 = __toESM(require_jsx_runtime());
70447
70614
 
70448
70615
  // ../../node_modules/react-chartjs-2/dist/index.js
70449
70616
  var import_react = __toESM(require_react(), 1);
@@ -84977,7 +85144,7 @@ function MetricsView2({ metrics, config, global, charting }) {
84977
85144
  }
84978
85145
  };
84979
85146
  if (!metrics[config.id])
84980
- return (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, { children: "Loading statistics.." });
85147
+ return (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: "Loading statistics.." });
84981
85148
  const allBitrates = metrics[config.id].filter((v) => v.name == "norsk_measured_bitrate").sort((l, r) => displayStreamKey(l.streamKey).localeCompare(displayStreamKey(r.streamKey)));
84982
85149
  const createInitialDataset = (label, color2, initialValue) => ({
84983
85150
  label,
@@ -85005,18 +85172,18 @@ function MetricsView2({ metrics, config, global, charting }) {
85005
85172
  };
85006
85173
  });
85007
85174
  });
85008
- return (0, import_jsx_runtime5.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime5.jsx)("h4", { className: "font-bold dark:text-white text-black", children: "Measured Bitrates" }), (0, import_jsx_runtime5.jsx)("div", { className: "py-2 dark:px-2 dark:bg-gray-900 rounded-lg dark:border dark:border-gray-600 flex justify-center items-center", children: (0, import_jsx_runtime5.jsx)(Line, { className: "w-fit max-w-fit", width: 272, options: cpuChartOptions, data: bitrates }) })] });
85175
+ return (0, import_jsx_runtime6.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime6.jsx)("h4", { className: "font-bold dark:text-white text-black", children: "Measured Bitrates" }), (0, import_jsx_runtime6.jsx)("div", { className: "py-2 dark:px-2 dark:bg-gray-900 rounded-lg dark:border dark:border-gray-600 flex justify-center items-center", children: (0, import_jsx_runtime6.jsx)(Line, { className: "w-fit max-w-fit", width: 272, options: cpuChartOptions, data: bitrates }) })] });
85009
85176
  }
85010
85177
 
85011
85178
  // build/input.srt-caller/inline-view.js
85012
- var import_jsx_runtime6 = __toESM(require_jsx_runtime());
85013
- function InlineView2({ state }) {
85014
- return (0, import_jsx_runtime6.jsx)("div", { className: "srt-output", children: (0, import_jsx_runtime6.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime6.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [(0, import_jsx_runtime6.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected" }), (0, import_jsx_runtime6.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }), (0, import_jsx_runtime6.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] })] }) }) });
85179
+ var import_jsx_runtime7 = __toESM(require_jsx_runtime());
85180
+ function InlineView3({ state }) {
85181
+ return (0, import_jsx_runtime7.jsx)("div", { className: "srt-output", children: (0, import_jsx_runtime7.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime7.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [(0, import_jsx_runtime7.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected" }), (0, import_jsx_runtime7.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }), (0, import_jsx_runtime7.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] })] }) }) });
85015
85182
  }
85016
- var inline_view_default2 = InlineView2;
85183
+ var inline_view_default3 = InlineView3;
85017
85184
 
85018
85185
  // build/input.srt-caller/info.js
85019
- function info_default3({ defineComponent, singleAvStreamMapping, singleAvStreamMappingForm, mappingsToStreams, validation }) {
85186
+ function info_default4({ defineComponent, singleAvStreamMapping, singleAvStreamMappingForm, mappingsToStreams, validation }) {
85020
85187
  const { Port, Hostname: Hostname2, SrtPassphrase, SrtStreamId } = validation;
85021
85188
  return defineComponent({
85022
85189
  identifier: "input.srt-caller",
@@ -85052,7 +85219,7 @@ function info_default3({ defineComponent, singleAvStreamMapping, singleAvStreamM
85052
85219
  }
85053
85220
  return { ...state };
85054
85221
  },
85055
- inline: inline_view_default2,
85222
+ inline: inline_view_default3,
85056
85223
  metrics: [
85057
85224
  {
85058
85225
  title: "SRT Transmission",
@@ -85098,22 +85265,22 @@ function info_default3({ defineComponent, singleAvStreamMapping, singleAvStreamM
85098
85265
  }
85099
85266
 
85100
85267
  // build/input.srt-listener/inline-view.js
85101
- var import_jsx_runtime7 = __toESM(require_jsx_runtime());
85102
- function InlineView3({ state, config }) {
85268
+ var import_jsx_runtime8 = __toESM(require_jsx_runtime());
85269
+ function InlineView4({ state, config }) {
85103
85270
  const maxSourceNum = 4;
85104
85271
  const sourcesToRender = state.connectedStreams.slice(0, maxSourceNum);
85105
85272
  if (state.connectedStreams.length > maxSourceNum) {
85106
85273
  sourcesToRender.push("...");
85107
85274
  }
85108
- const connectedSources = (0, import_jsx_runtime7.jsxs)("div", { className: "mt-2", children: [" ", state.connectedStreams.length > 0 ? (0, import_jsx_runtime7.jsx)("span", { children: "Connected sources" }) : (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, {}), (0, import_jsx_runtime7.jsx)("ul", { className: "srt-input-connected-sources", children: sourcesToRender.map((sourceName) => {
85109
- return (0, import_jsx_runtime7.jsx)("li", { className: "text-green-300", children: sourceName }, sourceName);
85275
+ const connectedSources = (0, import_jsx_runtime8.jsxs)("div", { className: "mt-2", children: [" ", state.connectedStreams.length > 0 ? (0, import_jsx_runtime8.jsx)("span", { children: "Connected sources" }) : (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, {}), (0, import_jsx_runtime8.jsx)("ul", { className: "srt-input-connected-sources", children: sourcesToRender.map((sourceName) => {
85276
+ return (0, import_jsx_runtime8.jsx)("li", { className: "text-green-300", children: sourceName }, sourceName);
85110
85277
  }) })] });
85111
- return (0, import_jsx_runtime7.jsxs)("div", { className: "srt-input", id: `srt-input-${config.id}`, children: [connectedSources, (0, import_jsx_runtime7.jsxs)("div", { children: ["Received: ", state.metrics.packetsReceived.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime7.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost.reduce((a, i) => a + i, 0), "/", state.metrics.packetsResent.reduce((a, i) => a + i, 0)] })] });
85278
+ return (0, import_jsx_runtime8.jsxs)("div", { className: "srt-input", id: `srt-input-${config.id}`, children: [connectedSources, (0, import_jsx_runtime8.jsxs)("div", { children: ["Received: ", state.metrics.packetsReceived.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime8.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost.reduce((a, i) => a + i, 0), "/", state.metrics.packetsResent.reduce((a, i) => a + i, 0)] })] });
85112
85279
  }
85113
- var inline_view_default3 = InlineView3;
85280
+ var inline_view_default4 = InlineView4;
85114
85281
 
85115
85282
  // build/input.srt-listener/summary-view.js
85116
- var import_jsx_runtime8 = __toESM(require_jsx_runtime());
85283
+ var import_jsx_runtime9 = __toESM(require_jsx_runtime());
85117
85284
  function SummaryView2({ state, config, sendCommand }) {
85118
85285
  const connectedSources = [];
85119
85286
  const disconnectedSources = [];
@@ -85163,7 +85330,7 @@ function SummaryView2({ state, config, sendCommand }) {
85163
85330
  disconnectedSources.push(streamId);
85164
85331
  }
85165
85332
  });
85166
- return (0, import_jsx_runtime8.jsxs)("div", { className: "dark:text-white text-black w-60", children: [(0, import_jsx_runtime8.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime8.jsx)("h3", { className: "text-sm font-semibold mb-2 dark:text-gray-300", children: "Connected Sources" }), (0, import_jsx_runtime8.jsxs)("ul", { className: "space-y-2", children: [connectedSources.map((streamId) => (0, import_jsx_runtime8.jsxs)("li", { className: "flex items-center justify-between group", children: [(0, import_jsx_runtime8.jsx)("span", { className: "text-green-400 font-medium", children: streamId }), (0, import_jsx_runtime8.jsxs)("div", { className: "flex space-x-2", children: [(0, import_jsx_runtime8.jsx)("button", { onClick: () => handleResetStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Reset" }), (0, import_jsx_runtime8.jsx)("button", { onClick: () => handleDisableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Disable" })] })] }, streamId)), connectedSources.length === 0 && (0, import_jsx_runtime8.jsx)("li", { className: "text-sm text-gray-500 dark:text-gray-400 italic", children: "No connected sources" })] })] }), (0, import_jsx_runtime8.jsxs)("div", { children: [(0, import_jsx_runtime8.jsx)("h3", { className: "text-sm font-semibold mb-2 dark:text-gray-300", children: "Disconnected Sources" }), (0, import_jsx_runtime8.jsxs)("ul", { className: "space-y-2", children: [disconnectedSources.map((streamId) => (0, import_jsx_runtime8.jsxs)("li", { className: "flex items-center justify-between group", children: [(0, import_jsx_runtime8.jsx)("span", { className: "text-orange-300 font-medium", children: streamId }), state.disabledStreams.includes(streamId) ? (0, import_jsx_runtime8.jsx)("button", { onClick: () => handleEnableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded transition-colors", children: "Enable" }) : (0, import_jsx_runtime8.jsx)("button", { onClick: () => handleDisableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Disable" })] }, streamId)), disconnectedSources.length === 0 && (0, import_jsx_runtime8.jsx)("li", { className: "text-sm text-gray-500 dark:text-gray-400 italic", children: "No disconnected sources" })] })] })] });
85333
+ return (0, import_jsx_runtime9.jsxs)("div", { className: "dark:text-white text-black w-60", children: [(0, import_jsx_runtime9.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime9.jsx)("h3", { className: "text-sm font-semibold mb-2 dark:text-gray-300", children: "Connected Sources" }), (0, import_jsx_runtime9.jsxs)("ul", { className: "space-y-2", children: [connectedSources.map((streamId) => (0, import_jsx_runtime9.jsxs)("li", { className: "flex items-center justify-between group", children: [(0, import_jsx_runtime9.jsx)("span", { className: "text-green-400 font-medium", children: streamId }), (0, import_jsx_runtime9.jsxs)("div", { className: "flex space-x-2", children: [(0, import_jsx_runtime9.jsx)("button", { onClick: () => handleResetStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Reset" }), (0, import_jsx_runtime9.jsx)("button", { onClick: () => handleDisableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Disable" })] })] }, streamId)), connectedSources.length === 0 && (0, import_jsx_runtime9.jsx)("li", { className: "text-sm text-gray-500 dark:text-gray-400 italic", children: "No connected sources" })] })] }), (0, import_jsx_runtime9.jsxs)("div", { children: [(0, import_jsx_runtime9.jsx)("h3", { className: "text-sm font-semibold mb-2 dark:text-gray-300", children: "Disconnected Sources" }), (0, import_jsx_runtime9.jsxs)("ul", { className: "space-y-2", children: [disconnectedSources.map((streamId) => (0, import_jsx_runtime9.jsxs)("li", { className: "flex items-center justify-between group", children: [(0, import_jsx_runtime9.jsx)("span", { className: "text-orange-300 font-medium", children: streamId }), state.disabledStreams.includes(streamId) ? (0, import_jsx_runtime9.jsx)("button", { onClick: () => handleEnableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-blue-600 hover:bg-blue-700 text-white rounded transition-colors", children: "Enable" }) : (0, import_jsx_runtime9.jsx)("button", { onClick: () => handleDisableStream(streamId), className: "opacity-80 group-hover:opacity-100 px-3 py-1 text-xs bg-red-600 hover:bg-red-700 text-white rounded transition-colors", children: "Disable" })] }, streamId)), disconnectedSources.length === 0 && (0, import_jsx_runtime9.jsx)("li", { className: "text-sm text-gray-500 dark:text-gray-400 italic", children: "No disconnected sources" })] })] })] });
85167
85334
  }
85168
85335
  var summary_view_default2 = SummaryView2;
85169
85336
 
@@ -85171,15 +85338,15 @@ var summary_view_default2 = SummaryView2;
85171
85338
  var import_FaHeadphones = __toESM(require_FaHeadphones());
85172
85339
 
85173
85340
  // build/shared/srt-listener-metrics.js
85174
- var import_jsx_runtime9 = __toESM(require_jsx_runtime());
85341
+ var import_jsx_runtime10 = __toESM(require_jsx_runtime());
85175
85342
  function MetricsView3({ state }) {
85176
- return (0, import_jsx_runtime9.jsxs)("div", { className: "srt-output space-y-2", children: [(0, import_jsx_runtime9.jsx)("h4", { className: "font-bold dark:text-white text-black", children: "SRT Packets" }), state.enabled === void 0 || state.enabled ? state.metrics.connectionCount == 0 ? (0, import_jsx_runtime9.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "No connections" }) : (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: (0, import_jsx_runtime9.jsx)("div", { className: "p-2 flex flex-col gap-2 border border-gray-200 dark:border-gray-700", children: (state.metrics.packetsSent.length == 0 ? state.metrics.packetsReceived : state.metrics.packetsSent).map((p, i) => {
85177
- return (0, import_jsx_runtime9.jsxs)("div", { className: "grid grid-cols-2", children: [(0, import_jsx_runtime9.jsx)("dt", { className: "font-medium", children: "Connection" }), (0, import_jsx_runtime9.jsx)("dd", { className: "", children: state.names?.[i] ?? i }), (0, import_jsx_runtime9.jsx)("dt", { className: "font-medium", children: state.metrics.packetsSent.length == 0 ? "Received" : "Sent" }), (0, import_jsx_runtime9.jsx)("dd", { className: "", children: p }), (0, import_jsx_runtime9.jsx)("dt", { className: "font-medium", children: "Retransmitted" }), (0, import_jsx_runtime9.jsx)("dd", { className: "", children: state.metrics.packetsResent[i] }), (0, import_jsx_runtime9.jsx)("dt", { className: "font-medium", children: "Lost" }), (0, import_jsx_runtime9.jsx)("dd", { className: "", children: state.metrics.packetsLost[i] })] }, i);
85178
- }) }) }) : (0, import_jsx_runtime9.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Component disabled" })] });
85343
+ return (0, import_jsx_runtime10.jsxs)("div", { className: "srt-output space-y-2", children: [(0, import_jsx_runtime10.jsx)("h4", { className: "font-bold dark:text-white text-black", children: "SRT Packets" }), state.enabled === void 0 || state.enabled ? state.metrics.connectionCount == 0 ? (0, import_jsx_runtime10.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "No connections" }) : (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: (0, import_jsx_runtime10.jsx)("div", { className: "p-2 flex flex-col gap-2 border border-gray-200 dark:border-gray-700", children: (state.metrics.packetsSent.length == 0 ? state.metrics.packetsReceived : state.metrics.packetsSent).map((p, i) => {
85344
+ return (0, import_jsx_runtime10.jsxs)("div", { className: "grid grid-cols-2", children: [(0, import_jsx_runtime10.jsx)("dt", { className: "font-medium", children: "Connection" }), (0, import_jsx_runtime10.jsx)("dd", { className: "", children: state.names?.[i] ?? i }), (0, import_jsx_runtime10.jsx)("dt", { className: "font-medium", children: state.metrics.packetsSent.length == 0 ? "Received" : "Sent" }), (0, import_jsx_runtime10.jsx)("dd", { className: "", children: p }), (0, import_jsx_runtime10.jsx)("dt", { className: "font-medium", children: "Retransmitted" }), (0, import_jsx_runtime10.jsx)("dd", { className: "", children: state.metrics.packetsResent[i] }), (0, import_jsx_runtime10.jsx)("dt", { className: "font-medium", children: "Lost" }), (0, import_jsx_runtime10.jsx)("dd", { className: "", children: state.metrics.packetsLost[i] })] }, i);
85345
+ }) }) }) : (0, import_jsx_runtime10.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Component disabled" })] });
85179
85346
  }
85180
85347
 
85181
85348
  // build/input.srt-listener/info.js
85182
- function defaultStreamMapping2(cfg) {
85349
+ function defaultStreamMapping3(cfg) {
85183
85350
  return {
85184
85351
  streams: cfg.streamIds?.flatMap((s) => [{
85185
85352
  media: "video",
@@ -85208,7 +85375,7 @@ function defaultStreamMapping2(cfg) {
85208
85375
  }]) ?? []
85209
85376
  };
85210
85377
  }
85211
- function info_default4({ defineComponent, mappingsToStreams, StreamMappingForm, validation }) {
85378
+ function info_default5({ defineComponent, mappingsToStreams, StreamMappingForm, validation }) {
85212
85379
  const { Z, Port, Hostname: Hostname2, SourceName, SrtPassphrase, unique } = validation;
85213
85380
  return defineComponent({
85214
85381
  identifier: "input.srt-listener",
@@ -85221,7 +85388,7 @@ function info_default4({ defineComponent, mappingsToStreams, StreamMappingForm,
85221
85388
  produces: {
85222
85389
  type: "dynamic-streams",
85223
85390
  groupBy: "sourceName",
85224
- streams: (cfg) => mappingsToStreams(cfg.streamMappings ?? defaultStreamMapping2(cfg))
85391
+ streams: (cfg) => mappingsToStreams(cfg.streamMappings ?? defaultStreamMapping3(cfg))
85225
85392
  }
85226
85393
  },
85227
85394
  display: (desc) => {
@@ -85265,11 +85432,11 @@ function info_default4({ defineComponent, mappingsToStreams, StreamMappingForm,
85265
85432
  state.metrics = ev.metrics;
85266
85433
  break;
85267
85434
  default:
85268
- assertUnreachable3(evType);
85435
+ assertUnreachable4(evType);
85269
85436
  }
85270
85437
  return { ...state };
85271
85438
  },
85272
- inline: inline_view_default3,
85439
+ inline: inline_view_default4,
85273
85440
  summary: summary_view_default2,
85274
85441
  metrics: [
85275
85442
  { title: "SRT Transmission", view: MetricsView3 },
@@ -85337,7 +85504,7 @@ function info_default4({ defineComponent, mappingsToStreams, StreamMappingForm,
85337
85504
  global: unique("sourceName")
85338
85505
  }
85339
85506
  },
85340
- streamMappings: StreamMappingForm(defaultStreamMapping2, {
85507
+ streamMappings: StreamMappingForm(defaultStreamMapping3, {
85341
85508
  sourceNames: (cfg) => cfg.streamIds ?? []
85342
85509
  }),
85343
85510
  notes: {
@@ -85351,13 +85518,13 @@ function info_default4({ defineComponent, mappingsToStreams, StreamMappingForm,
85351
85518
  }
85352
85519
  });
85353
85520
  }
85354
- function assertUnreachable3(_) {
85521
+ function assertUnreachable4(_) {
85355
85522
  throw new Error("Didn't expect to get here");
85356
85523
  }
85357
85524
 
85358
85525
  // build/input.udp-ts/info.js
85359
85526
  var import_FaNetworkWired = __toESM(require_FaNetworkWired());
85360
- function info_default5({ defineComponent, singleAvStreamMapping, singleAvStreamMappingForm, mappingsToStreams, validation: { Z, Port, Hostname: Hostname2, unique } }) {
85527
+ function info_default6({ defineComponent, singleAvStreamMapping, singleAvStreamMappingForm, mappingsToStreams, validation: { Z, Port, Hostname: Hostname2, unique } }) {
85361
85528
  return defineComponent({
85362
85529
  identifier: "input.udp-ts",
85363
85530
  category: "input",
@@ -85393,7 +85560,7 @@ function info_default5({ defineComponent, singleAvStreamMapping, singleAvStreamM
85393
85560
 
85394
85561
  // build/input.videoTestCard/info.js
85395
85562
  var import_FaTv = __toESM(require_FaTv());
85396
- function info_default6({ defineComponent, common: { Resolutions, FrameRates } }) {
85563
+ function info_default7({ defineComponent, common: { Resolutions, FrameRates } }) {
85397
85564
  return defineComponent({
85398
85565
  identifier: "input.videoTestCard",
85399
85566
  category: "input",
@@ -85454,21 +85621,21 @@ var import_util2 = __toESM(require_util());
85454
85621
  var import_FaCloudUploadAlt = __toESM(require_FaCloudUploadAlt());
85455
85622
 
85456
85623
  // build/input.whip/inline-view.js
85457
- var import_jsx_runtime10 = __toESM(require_jsx_runtime());
85624
+ var import_jsx_runtime11 = __toESM(require_jsx_runtime());
85458
85625
  var import_react2 = __toESM(require_react());
85459
- function InlineView4({ state, raise }) {
85626
+ function InlineView5({ state, raise }) {
85460
85627
  (0, import_react2.useEffect)(() => {
85461
85628
  if (raise) {
85462
85629
  raise();
85463
85630
  }
85464
85631
  }, [raise]);
85465
- return (0, import_jsx_runtime10.jsx)("div", { className: "input-whip", children: (0, import_jsx_runtime10.jsxs)("div", { className: "whip-status-inline", children: [(0, import_jsx_runtime10.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime10.jsx)("div", { className: `w-2 h-2 rounded-full ${state.connectionCount > 0 ? "bg-green-400" : "bg-gray-400"}` }), (0, import_jsx_runtime10.jsx)("span", { className: "text-sm", children: state.connectionCount > 0 ? `${state.connectionCount} connected` : "No connections" })] }), state.endpointUrl && (0, import_jsx_runtime10.jsxs)("div", { className: "mt-1", children: [(0, import_jsx_runtime10.jsx)("span", { className: "text-xs text-gray-600", children: "Endpoint: " }), (0, import_jsx_runtime10.jsx)("code", { className: "text-xs bg-gray-100 px-1 rounded", children: state.endpointUrl })] }), state.activeSessions && state.activeSessions.length > 0 && (0, import_jsx_runtime10.jsxs)("div", { className: "mt-2", children: [(0, import_jsx_runtime10.jsx)("div", { className: "text-xs text-gray-600 mb-1", children: "Active Sessions:" }), state.activeSessions.slice(0, 3).map((session) => (0, import_jsx_runtime10.jsxs)("div", { className: "text-xs flex items-center space-x-1", children: [(0, import_jsx_runtime10.jsx)("div", { className: `w-1 h-1 rounded-full ${session.status === "connected" ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime10.jsx)("span", { children: session.sourceName }), (0, import_jsx_runtime10.jsxs)("span", { className: "text-gray-500", children: ["(", session.sessionId.slice(0, 8), "...)"] })] }, session.sessionId)), state.activeSessions.length > 3 && (0, import_jsx_runtime10.jsxs)("div", { className: "text-xs text-gray-500", children: ["+ ", state.activeSessions.length - 3, " more"] })] })] }) });
85632
+ return (0, import_jsx_runtime11.jsx)("div", { className: "input-whip", children: (0, import_jsx_runtime11.jsxs)("div", { className: "whip-status-inline", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime11.jsx)("div", { className: `w-2 h-2 rounded-full ${state.connectionCount > 0 ? "bg-green-400" : "bg-gray-400"}` }), (0, import_jsx_runtime11.jsx)("span", { className: "text-sm", children: state.connectionCount > 0 ? `${state.connectionCount} connected` : "No connections" })] }), state.endpointUrl && (0, import_jsx_runtime11.jsxs)("div", { className: "mt-1", children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-xs text-gray-600", children: "Endpoint: " }), (0, import_jsx_runtime11.jsx)("code", { className: "text-xs bg-gray-100 px-1 rounded", children: state.endpointUrl })] }), state.activeSessions && state.activeSessions.length > 0 && (0, import_jsx_runtime11.jsxs)("div", { className: "mt-2", children: [(0, import_jsx_runtime11.jsx)("div", { className: "text-xs text-gray-600 mb-1", children: "Active Sessions:" }), state.activeSessions.slice(0, 3).map((session) => (0, import_jsx_runtime11.jsxs)("div", { className: "text-xs flex items-center space-x-1", children: [(0, import_jsx_runtime11.jsx)("div", { className: `w-1 h-1 rounded-full ${session.status === "connected" ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime11.jsx)("span", { children: session.sourceName }), (0, import_jsx_runtime11.jsxs)("span", { className: "text-gray-500", children: ["(", session.sessionId.slice(0, 8), "...)"] })] }, session.sessionId)), state.activeSessions.length > 3 && (0, import_jsx_runtime11.jsxs)("div", { className: "text-xs text-gray-500", children: ["+ ", state.activeSessions.length - 3, " more"] })] })] }) });
85466
85633
  }
85467
- var inline_view_default4 = InlineView4;
85634
+ var inline_view_default5 = InlineView5;
85468
85635
 
85469
85636
  // build/input.whip/info.js
85470
85637
  var import_config = __toESM(require_config());
85471
- function info_default7({ defineComponent, singleAvStreamMapping, singleAvStreamMappingForm, mappingsToStreams, validation }) {
85638
+ function info_default8({ defineComponent, singleAvStreamMapping, singleAvStreamMappingForm, mappingsToStreams, validation }) {
85472
85639
  return defineComponent({
85473
85640
  identifier: "input.whip",
85474
85641
  category: "input",
@@ -85518,7 +85685,7 @@ function info_default7({ defineComponent, singleAvStreamMapping, singleAvStreamM
85518
85685
  }
85519
85686
  return { ...state };
85520
85687
  },
85521
- inline: inline_view_default4,
85688
+ inline: inline_view_default5,
85522
85689
  metrics: [
85523
85690
  {
85524
85691
  title: "Stream Statistics",
@@ -85569,7 +85736,7 @@ function info_default7({ defineComponent, singleAvStreamMapping, singleAvStreamM
85569
85736
  var import_config2 = __toESM(require_config());
85570
85737
 
85571
85738
  // build/output.autoCmaf/summary-view.js
85572
- var import_jsx_runtime11 = __toESM(require_jsx_runtime());
85739
+ var import_jsx_runtime12 = __toESM(require_jsx_runtime());
85573
85740
  function SummaryView3({ state, sendCommand }) {
85574
85741
  const handleEnableOutput = () => {
85575
85742
  void enableOutput();
@@ -85587,12 +85754,12 @@ function SummaryView3({ state, sendCommand }) {
85587
85754
  type: "disable-output"
85588
85755
  });
85589
85756
  };
85590
- return (0, import_jsx_runtime11.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime11.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime11.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime11.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime11.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime11.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
85757
+ return (0, import_jsx_runtime12.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime12.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime12.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime12.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime12.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime12.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
85591
85758
  }
85592
85759
  var summary_view_default3 = SummaryView3;
85593
85760
 
85594
85761
  // build/output.autoCmaf/fullscreen.js
85595
- var import_jsx_runtime12 = __toESM(require_jsx_runtime());
85762
+ var import_jsx_runtime13 = __toESM(require_jsx_runtime());
85596
85763
  var import_react3 = __toESM(require_react());
85597
85764
  var import_hls = __toESM(require_hls());
85598
85765
  function FullscreenView({ state, config }) {
@@ -85654,20 +85821,20 @@ function FullscreenView({ state, config }) {
85654
85821
  } else if (element.canPlayType("application/vnd.apple.mpegurl")) {
85655
85822
  element.src = url;
85656
85823
  }
85657
- }, [id, url]);
85824
+ }, [config.__global?.ezdrmConfig?.pX, config.drmProvider, id, state.drmToken, url]);
85658
85825
  if (!url)
85659
- return (0, import_jsx_runtime12.jsx)(import_jsx_runtime12.Fragment, { children: "..." });
85826
+ return (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: "..." });
85660
85827
  {
85661
85828
  }
85662
- return (0, import_jsx_runtime12.jsx)("div", { children: (0, import_jsx_runtime12.jsx)("video", { controls: true, autoPlay: true, muted: true, id: `${id}-video` }) });
85829
+ return (0, import_jsx_runtime13.jsx)("div", { children: (0, import_jsx_runtime13.jsx)("video", { controls: true, autoPlay: true, muted: true, id: `${id}-video` }) });
85663
85830
  }
85664
85831
  var fullscreen_default = FullscreenView;
85665
85832
 
85666
85833
  // build/output.autoCmaf/inline-view.js
85667
- var import_jsx_runtime13 = __toESM(require_jsx_runtime());
85834
+ var import_jsx_runtime14 = __toESM(require_jsx_runtime());
85668
85835
  var import_hls2 = __toESM(require_hls());
85669
85836
  var import_react4 = __toESM(require_react());
85670
- function InlineView5({ state, config }) {
85837
+ function InlineView6({ state, config }) {
85671
85838
  const url = state.url;
85672
85839
  const id = config.id;
85673
85840
  const previewVideo = (0, import_react4.useRef)(null);
@@ -85732,9 +85899,9 @@ function InlineView5({ state, config }) {
85732
85899
  previewVideo.current.src = url;
85733
85900
  }
85734
85901
  }, [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` }) })] });
85902
+ return (0, import_jsx_runtime14.jsxs)("div", { className: "cmaf-output", children: [state.enabled ? (0, import_jsx_runtime14.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Output enabled" }) : (0, import_jsx_runtime14.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }), (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime14.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime14.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), !url ? (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, {}) : (0, import_jsx_runtime14.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime14.jsx)("video", { ref: previewVideo, autoPlay: true, muted: true, id: `${id}-video` }) })] });
85736
85903
  }
85737
- var inline_view_default5 = InlineView5;
85904
+ var inline_view_default6 = InlineView6;
85738
85905
 
85739
85906
  // build/output.autoCmaf/info.js
85740
85907
  var import_FaCog = __toESM(require_FaCog());
@@ -85743,22 +85910,22 @@ var import_FaCog = __toESM(require_FaCog());
85743
85910
  var import_client_types = __toESM(require_client_types());
85744
85911
 
85745
85912
  // build/shared/playlist-form-views.js
85746
- var import_jsx_runtime14 = __toESM(require_jsx_runtime());
85913
+ var import_jsx_runtime15 = __toESM(require_jsx_runtime());
85747
85914
  function Destination(destination) {
85748
85915
  switch (destination.type) {
85749
85916
  case "s3":
85750
- return (0, import_jsx_runtime14.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Host" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: destination.host }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Path" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: destination.prefix }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Include Ads" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: destination.includeAdInsertions ? "yes" : "no" })] });
85917
+ return (0, import_jsx_runtime15.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Host" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: destination.host }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Path" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: destination.prefix }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Include Ads" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: destination.includeAdInsertions ? "yes" : "no" })] });
85751
85918
  case "akamai":
85752
- return (0, import_jsx_runtime14.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Ingest" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: destination.ingest }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Playback" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: destination.playback }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Include Ads" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: destination.includeAdInsertions ? "yes" : "no" })] });
85919
+ return (0, import_jsx_runtime15.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Ingest" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: destination.ingest }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Playback" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: destination.playback }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Include Ads" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: destination.includeAdInsertions ? "yes" : "no" })] });
85753
85920
  default: {
85754
85921
  const _ = destination;
85755
85922
  console.log("Unreachable");
85756
- return (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, {});
85923
+ return (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, {});
85757
85924
  }
85758
85925
  }
85759
85926
  }
85760
85927
  function SegmentConfiguration(cfg) {
85761
- return (0, import_jsx_runtime14.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Segments" }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-2", children: cfg.defaultSegmentCount == 0 ? "all" : cfg.defaultSegmentCount }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Segment Target" }), (0, import_jsx_runtime14.jsxs)("div", { className: "col-span-2", children: [cfg.targetSegmentDuration, "s"] }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Part Target" }), (0, import_jsx_runtime14.jsxs)("div", { className: "col-span-2", children: [cfg.targetPartDuration, "s"] }), (0, import_jsx_runtime14.jsx)("div", { className: "col-span-1", children: "Retention" }), (0, import_jsx_runtime14.jsxs)("div", { className: "col-span-2", children: [cfg.retentionPeriod, "s"] })] });
85928
+ return (0, import_jsx_runtime15.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Segments" }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-2", children: cfg.defaultSegmentCount == 0 ? "all" : cfg.defaultSegmentCount }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Segment Target" }), (0, import_jsx_runtime15.jsxs)("div", { className: "col-span-2", children: [cfg.targetSegmentDuration, "s"] }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Part Target" }), (0, import_jsx_runtime15.jsxs)("div", { className: "col-span-2", children: [cfg.targetPartDuration, "s"] }), (0, import_jsx_runtime15.jsx)("div", { className: "col-span-1", children: "Retention" }), (0, import_jsx_runtime15.jsxs)("div", { className: "col-span-2", children: [cfg.retentionPeriod, "s"] })] });
85762
85929
  }
85763
85930
 
85764
85931
  // ../../node_modules/zod/lib/index.mjs
@@ -89969,7 +90136,7 @@ var DestinationsFormEntry = {
89969
90136
  };
89970
90137
 
89971
90138
  // build/output.autoCmaf/info.js
89972
- function info_default8(R) {
90139
+ function info_default9(R) {
89973
90140
  const { defineComponent, All, validation: { Z } } = R;
89974
90141
  return defineComponent({
89975
90142
  identifier: "output.autoCmaf",
@@ -90040,13 +90207,13 @@ function info_default8(R) {
90040
90207
  state.enabled = false;
90041
90208
  break;
90042
90209
  default:
90043
- assertUnreachable5(evType);
90210
+ assertUnreachable6(evType);
90044
90211
  }
90045
90212
  return { ...state };
90046
90213
  },
90047
90214
  summary: summary_view_default3,
90048
90215
  fullscreen: fullscreen_default,
90049
- inline: inline_view_default5
90216
+ inline: inline_view_default6
90050
90217
  },
90051
90218
  configForm: {
90052
90219
  global: {
@@ -90172,14 +90339,14 @@ function info_default8(R) {
90172
90339
  }
90173
90340
  });
90174
90341
  }
90175
- function assertUnreachable5(_) {
90342
+ function assertUnreachable6(_) {
90176
90343
  throw new Error("Didn't expect to get here");
90177
90344
  }
90178
90345
 
90179
90346
  // build/output.autoHls/info.js
90180
90347
  var import_FaCogs = __toESM(require_FaCogs());
90181
- function info_default9(R) {
90182
- const autoCmaf = info_default8(R);
90348
+ function info_default10(R) {
90349
+ const autoCmaf = info_default9(R);
90183
90350
  const { drmProvider: _, ...NoCrypto } = autoCmaf.configForm.form;
90184
90351
  return {
90185
90352
  ...autoCmaf,
@@ -90197,7 +90364,7 @@ function info_default9(R) {
90197
90364
  // build/output.cmafMultiVariant/info.js
90198
90365
  var import_util3 = __toESM(require_util());
90199
90366
  var import_FaHeadphones2 = __toESM(require_FaHeadphones());
90200
- function info_default10(registration) {
90367
+ function info_default11(registration) {
90201
90368
  const { defineComponent, validation } = registration;
90202
90369
  const { Z } = validation;
90203
90370
  return defineComponent({
@@ -90288,7 +90455,7 @@ function info_default10(registration) {
90288
90455
  // build/output.cmafPlaylist/info.js
90289
90456
  var import_util4 = __toESM(require_util());
90290
90457
  var import_FaHeadphones3 = __toESM(require_FaHeadphones());
90291
- function info_default11(registration) {
90458
+ function info_default12(registration) {
90292
90459
  const { defineComponent, validation } = registration;
90293
90460
  const { Z } = validation;
90294
90461
  return defineComponent({
@@ -90440,7 +90607,7 @@ function info_default11(registration) {
90440
90607
  }
90441
90608
 
90442
90609
  // build/output.rtmp/summary-view.js
90443
- var import_jsx_runtime15 = __toESM(require_jsx_runtime());
90610
+ var import_jsx_runtime16 = __toESM(require_jsx_runtime());
90444
90611
  function SummaryView4({ state, sendCommand }) {
90445
90612
  const handleEnableOutput = () => {
90446
90613
  void enableOutput();
@@ -90458,36 +90625,36 @@ function SummaryView4({ state, sendCommand }) {
90458
90625
  type: "disable-output"
90459
90626
  });
90460
90627
  };
90461
- return (0, import_jsx_runtime15.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime15.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime15.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime15.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime15.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime15.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
90628
+ return (0, import_jsx_runtime16.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime16.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime16.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime16.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime16.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime16.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
90462
90629
  }
90463
90630
  var summary_view_default4 = SummaryView4;
90464
90631
 
90465
90632
  // build/output.rtmp/inline-view.js
90466
- var import_jsx_runtime17 = __toESM(require_jsx_runtime());
90633
+ var import_jsx_runtime18 = __toESM(require_jsx_runtime());
90467
90634
 
90468
90635
  // build/shared/jitter-buffer-inline.js
90469
- var import_jsx_runtime16 = __toESM(require_jsx_runtime());
90636
+ var import_jsx_runtime17 = __toESM(require_jsx_runtime());
90470
90637
  function initialJitterBufferState() {
90471
90638
  return { target: 0, value: 0, percentage: 0 };
90472
90639
  }
90473
90640
  function JitterBufferInline(jb) {
90474
- return (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, { children: (0, import_jsx_runtime16.jsxs)("div", { children: ["Buffer: ", (0, import_jsx_runtime16.jsx)("meter", { value: jb.percentage, max: 100, high: 50, low: 25 })] }) });
90641
+ return (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, { children: (0, import_jsx_runtime17.jsxs)("div", { children: ["Buffer: ", (0, import_jsx_runtime17.jsx)("meter", { value: jb.percentage, max: 100, high: 50, low: 25 })] }) });
90475
90642
  }
90476
90643
 
90477
90644
  // build/output.rtmp/inline-view.js
90478
- function InlineView6({ state, config }) {
90645
+ function InlineView7({ state, config }) {
90479
90646
  if (!state.enabled) {
90480
- return (0, import_jsx_runtime17.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" });
90647
+ return (0, import_jsx_runtime18.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" });
90481
90648
  }
90482
- const connected = (0, import_jsx_runtime17.jsxs)("div", { children: [(0, import_jsx_runtime17.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected and publishing" }), (0, import_jsx_runtime17.jsx)(JitterBufferInline, { ...state.jitterBuffer })] });
90483
- const disconnected = (0, import_jsx_runtime17.jsxs)("div", { className: "inactive text-orange-500 dark:text-orange-300", children: ["Disconnected ", state.connectRetries > 0 ? `- retrying(${state.connectRetries})` : ""] });
90484
- return (0, import_jsx_runtime17.jsx)("div", { className: "rtmp-output", id: `rtmp-output-${config.id}`, children: state.connected ? connected : disconnected });
90649
+ const connected = (0, import_jsx_runtime18.jsxs)("div", { children: [(0, import_jsx_runtime18.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected and publishing" }), (0, import_jsx_runtime18.jsx)(JitterBufferInline, { ...state.jitterBuffer })] });
90650
+ const disconnected = (0, import_jsx_runtime18.jsxs)("div", { className: "inactive text-orange-500 dark:text-orange-300", children: ["Disconnected ", state.connectRetries > 0 ? `- retrying(${state.connectRetries})` : ""] });
90651
+ return (0, import_jsx_runtime18.jsx)("div", { className: "rtmp-output", id: `rtmp-output-${config.id}`, children: state.connected ? connected : disconnected });
90485
90652
  }
90486
- var inline_view_default6 = InlineView6;
90653
+ var inline_view_default7 = InlineView7;
90487
90654
 
90488
90655
  // build/output.rtmp/info.js
90489
90656
  var import_FaVideoSlash = __toESM(require_FaVideoSlash());
90490
- function info_default12(r) {
90657
+ function info_default13(r) {
90491
90658
  const { validation: { JitterBuffer, Z } } = r;
90492
90659
  return defineRtmpOutputComponent(r, {
90493
90660
  identifier: "output.rtmp",
@@ -90555,22 +90722,22 @@ function defineRtmpOutputComponent({ defineComponent }, settings) {
90555
90722
  state.jitterBuffer = ev.buffer;
90556
90723
  break;
90557
90724
  default:
90558
- assertUnreachable8(evType);
90725
+ assertUnreachable9(evType);
90559
90726
  }
90560
90727
  return { ...state };
90561
90728
  },
90562
- inline: inline_view_default6,
90729
+ inline: inline_view_default7,
90563
90730
  summary: summary_view_default4
90564
90731
  }
90565
90732
  });
90566
90733
  }
90567
- function assertUnreachable8(_) {
90734
+ function assertUnreachable9(_) {
90568
90735
  throw new Error("Didn't expect to get here");
90569
90736
  }
90570
90737
 
90571
90738
  // build/output.facebook/info.js
90572
90739
  var import_FaFacebook = __toESM(require_FaFacebook());
90573
- function info_default13(r) {
90740
+ function info_default14(r) {
90574
90741
  const { validation: { Z } } = r;
90575
90742
  return defineRtmpOutputComponent(r, {
90576
90743
  identifier: "output.Facebook",
@@ -90600,7 +90767,7 @@ function info_default13(r) {
90600
90767
 
90601
90768
  // build/output.linkedin/info.js
90602
90769
  var import_FaLinkedin = __toESM(require_FaLinkedin());
90603
- function info_default14(r) {
90770
+ function info_default15(r) {
90604
90771
  const { validation: { Z } } = r;
90605
90772
  return defineRtmpOutputComponent(r, {
90606
90773
  identifier: "output.LinkedIn",
@@ -90632,7 +90799,7 @@ function info_default14(r) {
90632
90799
  var import_config3 = __toESM(require_config());
90633
90800
 
90634
90801
  // build/output.preview/inline-view.js
90635
- var import_jsx_runtime18 = __toESM(require_jsx_runtime());
90802
+ var import_jsx_runtime19 = __toESM(require_jsx_runtime());
90636
90803
  var import_react6 = __toESM(require_react());
90637
90804
 
90638
90805
  // build/shared/whep.js
@@ -90680,7 +90847,7 @@ function createPlayerElement(stream, container) {
90680
90847
  }
90681
90848
 
90682
90849
  // build/output.preview/inline-view.js
90683
- function InlineView7({ state, config, raise }) {
90850
+ function InlineView8({ state, config, raise }) {
90684
90851
  const url = state.url;
90685
90852
  const id = config.id;
90686
90853
  const [showPreview, setShowPreview] = (0, import_react6.useState)(config.showPreview ?? true);
@@ -90745,7 +90912,7 @@ function InlineView7({ state, config, raise }) {
90745
90912
  }, [config.showPreview]);
90746
90913
  (0, import_react6.useEffect)(() => raise?.(), [raise]);
90747
90914
  if (!url)
90748
- return (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children: "..." });
90915
+ return (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, { children: "..." });
90749
90916
  function percentage(levels) {
90750
90917
  if (!levels) {
90751
90918
  return 0;
@@ -90755,13 +90922,13 @@ function InlineView7({ state, config, raise }) {
90755
90922
  const snapped = Math.floor(capped * 10) * 10;
90756
90923
  return Math.max(0, 100 - snapped);
90757
90924
  }
90758
- return (0, import_jsx_runtime18.jsxs)("div", { className: "preview-outer-container", children: [(0, import_jsx_runtime18.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime18.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime18.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), (0, import_jsx_runtime18.jsxs)("div", { className: "flex items-stretch h-full", children: [showPreview ? (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children: (0, import_jsx_runtime18.jsxs)("div", { className: "preview-video", id: `preview-${id}`, children: [imageUrl && (0, import_jsx_runtime18.jsx)("img", { src: imageUrl, width: 420, height: 236, alt: "Preview" }), (0, import_jsx_runtime18.jsx)("style", { children: `#preview-${id} video::-webkit-media-controls-play-button { display: none; }` })] }) }) : (0, import_jsx_runtime18.jsx)("div", { className: "preview-video bg-black flex items-center justify-center text-white h-full py-4", children: "Preview turned off" }), (0, import_jsx_runtime18.jsx)("div", { className: "preview-levels", children: (0, import_jsx_runtime18.jsx)("div", { className: `preview-level clip-${percentage(state.levels)}-preview` }) })] })] });
90925
+ return (0, import_jsx_runtime19.jsxs)("div", { className: "preview-outer-container", children: [(0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime19.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime19.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-stretch h-full", children: [showPreview ? (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, { children: (0, import_jsx_runtime19.jsxs)("div", { className: "preview-video", id: `preview-${id}`, children: [imageUrl && (0, import_jsx_runtime19.jsx)("img", { src: imageUrl, width: 420, height: 236, alt: "Preview" }), (0, import_jsx_runtime19.jsx)("style", { children: `#preview-${id} video::-webkit-media-controls-play-button { display: none; }` })] }) }) : (0, import_jsx_runtime19.jsx)("div", { className: "preview-video bg-black flex items-center justify-center text-white h-full py-4", children: "Preview turned off" }), (0, import_jsx_runtime19.jsx)("div", { className: "preview-levels", children: (0, import_jsx_runtime19.jsx)("div", { className: `preview-level clip-${percentage(state.levels)}-preview` }) })] })] });
90759
90926
  }
90760
- var inline_view_default7 = InlineView7;
90927
+ var inline_view_default8 = InlineView8;
90761
90928
 
90762
90929
  // build/output.preview/info.js
90763
90930
  var import_FaEye = __toESM(require_FaEye());
90764
- function info_default15(R) {
90931
+ function info_default16(R) {
90765
90932
  const { defineComponent, validation: { JitterBuffer } } = R;
90766
90933
  return defineComponent({
90767
90934
  identifier: "output.preview",
@@ -90800,11 +90967,11 @@ function info_default15(R) {
90800
90967
  state = {};
90801
90968
  break;
90802
90969
  default:
90803
- assertUnreachable9(evType);
90970
+ assertUnreachable10(evType);
90804
90971
  }
90805
90972
  return { ...state };
90806
90973
  },
90807
- inline: inline_view_default7
90974
+ inline: inline_view_default8
90808
90975
  },
90809
90976
  configForm: {
90810
90977
  global: {
@@ -90834,7 +91001,7 @@ function info_default15(R) {
90834
91001
  }
90835
91002
  });
90836
91003
  }
90837
- function assertUnreachable9(_) {
91004
+ function assertUnreachable10(_) {
90838
91005
  throw new Error("Didn't expect to get here");
90839
91006
  }
90840
91007
 
@@ -90842,7 +91009,7 @@ function assertUnreachable9(_) {
90842
91009
  var import_util5 = __toESM(require_util());
90843
91010
 
90844
91011
  // build/output.srt-caller/summary-view.js
90845
- var import_jsx_runtime19 = __toESM(require_jsx_runtime());
91012
+ var import_jsx_runtime20 = __toESM(require_jsx_runtime());
90846
91013
  function SummaryView5({ state, sendCommand }) {
90847
91014
  const handleEnableOutput = () => {
90848
91015
  void enableOutput();
@@ -90860,20 +91027,20 @@ function SummaryView5({ state, sendCommand }) {
90860
91027
  type: "disable-output"
90861
91028
  });
90862
91029
  };
90863
- return (0, import_jsx_runtime19.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime19.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-green-500" : "bg-red-500"}` }), (0, import_jsx_runtime19.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime19.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime19.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime19.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-green-700 text-white rounded", children: "Enable Output" }) })] }) });
91030
+ return (0, import_jsx_runtime20.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime20.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-green-500" : "bg-red-500"}` }), (0, import_jsx_runtime20.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime20.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime20.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime20.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-green-700 text-white rounded", children: "Enable Output" }) })] }) });
90864
91031
  }
90865
91032
  var summary_view_default5 = SummaryView5;
90866
91033
 
90867
91034
  // build/output.srt-caller/inline-view.js
90868
- var import_jsx_runtime20 = __toESM(require_jsx_runtime());
90869
- function InlineView8({ state }) {
90870
- return (0, import_jsx_runtime20.jsx)("div", { className: "srt-output", children: state.enabled ? (0, import_jsx_runtime20.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime20.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [(0, import_jsx_runtime20.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected" }), (0, import_jsx_runtime20.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }), (0, import_jsx_runtime20.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] }), (0, import_jsx_runtime20.jsx)(JitterBufferInline, { ...state.jitterBuffer })] }) }) : (0, import_jsx_runtime20.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
91035
+ var import_jsx_runtime21 = __toESM(require_jsx_runtime());
91036
+ function InlineView9({ state }) {
91037
+ return (0, import_jsx_runtime21.jsx)("div", { className: "srt-output", children: state.enabled ? (0, import_jsx_runtime21.jsx)("div", { children: state.metrics.connectionCount == 0 ? (0, import_jsx_runtime21.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "Not Connected" }) : (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [(0, import_jsx_runtime21.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Connected" }), (0, import_jsx_runtime21.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent] }), (0, import_jsx_runtime21.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost, "/", state.metrics.packetsResent] }), (0, import_jsx_runtime21.jsx)(JitterBufferInline, { ...state.jitterBuffer })] }) }) : (0, import_jsx_runtime21.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
90871
91038
  }
90872
- var inline_view_default8 = InlineView8;
91039
+ var inline_view_default9 = InlineView9;
90873
91040
 
90874
91041
  // build/output.srt-caller/info.js
90875
91042
  var import_FaHeadphones4 = __toESM(require_FaHeadphones());
90876
- function info_default16(registration) {
91043
+ function info_default17(registration) {
90877
91044
  const { defineComponent, All, validation } = registration;
90878
91045
  const { Port, Hostname: Hostname2, JitterBuffer, SrtPassphrase, SrtStreamId } = validation;
90879
91046
  return defineComponent({
@@ -90929,7 +91096,7 @@ function info_default16(registration) {
90929
91096
  return { ...state };
90930
91097
  },
90931
91098
  summary: summary_view_default5,
90932
- inline: inline_view_default8,
91099
+ inline: inline_view_default9,
90933
91100
  metrics: [
90934
91101
  {
90935
91102
  title: "SRT Transmission",
@@ -90974,7 +91141,7 @@ function info_default16(registration) {
90974
91141
  var import_util6 = __toESM(require_util());
90975
91142
 
90976
91143
  // build/output.srt-listener/summary-view.js
90977
- var import_jsx_runtime21 = __toESM(require_jsx_runtime());
91144
+ var import_jsx_runtime22 = __toESM(require_jsx_runtime());
90978
91145
  function SummaryView6({ state, sendCommand }) {
90979
91146
  const handleEnableOutput = () => {
90980
91147
  void enableOutput();
@@ -90992,19 +91159,19 @@ function SummaryView6({ state, sendCommand }) {
90992
91159
  type: "disable-output"
90993
91160
  });
90994
91161
  };
90995
- return (0, import_jsx_runtime21.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime21.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-green-500" : "bg-red-500"}` }), (0, import_jsx_runtime21.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime21.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime21.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime21.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-green-700 text-white rounded", children: "Enable Output" }) })] }) });
91162
+ return (0, import_jsx_runtime22.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime22.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-green-500" : "bg-red-500"}` }), (0, import_jsx_runtime22.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime22.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime22.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime22.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-green-700 text-white rounded", children: "Enable Output" }) })] }) });
90996
91163
  }
90997
91164
  var summary_view_default6 = SummaryView6;
90998
91165
 
90999
91166
  // build/output.srt-listener/inline-view.js
91000
- var import_jsx_runtime22 = __toESM(require_jsx_runtime());
91001
- function InlineView9({ state }) {
91002
- return (0, import_jsx_runtime22.jsx)("div", { className: "srt-output", children: state.enabled ? state.metrics.connectionCount == 0 ? (0, import_jsx_runtime22.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "No connections" }) : (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [(0, import_jsx_runtime22.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Output enabled" }), (0, import_jsx_runtime22.jsxs)("div", { children: ["Connections: ", state.metrics.connectionCount] }), (0, import_jsx_runtime22.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime22.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost.reduce((a, i) => a + i, 0), "/", state.metrics.packetsResent.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime22.jsx)(JitterBufferInline, { ...state.jitterBuffer })] }) : (0, import_jsx_runtime22.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
91167
+ var import_jsx_runtime23 = __toESM(require_jsx_runtime());
91168
+ function InlineView10({ state }) {
91169
+ return (0, import_jsx_runtime23.jsx)("div", { className: "srt-output", children: state.enabled ? state.metrics.connectionCount == 0 ? (0, import_jsx_runtime23.jsx)("div", { className: "active text-red-300 dark:text-red-300", children: "No connections" }) : (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [(0, import_jsx_runtime23.jsx)("div", { className: "active text-green-500 dark:text-green-300", children: "Output enabled" }), (0, import_jsx_runtime23.jsxs)("div", { children: ["Connections: ", state.metrics.connectionCount] }), (0, import_jsx_runtime23.jsxs)("div", { children: ["Sent: ", state.metrics.packetsSent.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime23.jsxs)("div", { children: ["Lost/Resent: ", state.metrics.packetsLost.reduce((a, i) => a + i, 0), "/", state.metrics.packetsResent.reduce((a, i) => a + i, 0)] }), (0, import_jsx_runtime23.jsx)(JitterBufferInline, { ...state.jitterBuffer })] }) : (0, import_jsx_runtime23.jsx)("div", { className: "disabled text-gray-500 dark:text-gray-400", children: "Output disabled" }) });
91003
91170
  }
91004
- var inline_view_default9 = InlineView9;
91171
+ var inline_view_default10 = InlineView10;
91005
91172
 
91006
91173
  // build/output.srt-listener/info.js
91007
- function info_default17(registration) {
91174
+ function info_default18(registration) {
91008
91175
  const { defineComponent, All, validation } = registration;
91009
91176
  const { Port, Hostname: Hostname2, JitterBuffer, SrtPassphrase, SrtStreamId } = validation;
91010
91177
  return defineComponent({
@@ -91059,7 +91226,7 @@ function info_default17(registration) {
91059
91226
  return { ...state };
91060
91227
  },
91061
91228
  summary: summary_view_default6,
91062
- inline: inline_view_default9,
91229
+ inline: inline_view_default10,
91063
91230
  metrics: [
91064
91231
  { title: "SRT Transmission", view: MetricsView3 }
91065
91232
  ]
@@ -91101,39 +91268,39 @@ function info_default17(registration) {
91101
91268
  }
91102
91269
 
91103
91270
  // build/output.statistics/inline-view.js
91104
- var import_jsx_runtime23 = __toESM(require_jsx_runtime());
91105
- function InlineView10({ state }) {
91271
+ var import_jsx_runtime24 = __toESM(require_jsx_runtime());
91272
+ function InlineView11({ state }) {
91106
91273
  if (!state.previous)
91107
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, {});
91274
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
91108
91275
  const format = (stat) => Math.floor(stat).toLocaleString("en-US", { maximumFractionDigits: 0 });
91109
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: state.previous.allStreams.map((s, i) => {
91276
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children: state.previous.allStreams.map((s, i) => {
91110
91277
  const metaCase = s.metadata.case;
91111
91278
  switch (metaCase) {
91112
91279
  case "audio":
91113
- return (0, import_jsx_runtime23.jsxs)("div", { children: [(0, import_jsx_runtime23.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime23.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
91280
+ return (0, import_jsx_runtime24.jsxs)("div", { children: [(0, import_jsx_runtime24.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime24.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
91114
91281
  case "video":
91115
- return (0, import_jsx_runtime23.jsxs)("div", { children: [(0, import_jsx_runtime23.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime23.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
91282
+ return (0, import_jsx_runtime24.jsxs)("div", { children: [(0, import_jsx_runtime24.jsxs)("div", { children: ["StreamKey: ", streamKey(s.streamKey)] }), (0, import_jsx_runtime24.jsxs)("div", { children: ["Bitrate: ", format(s.bitrate), "bps"] })] }, i);
91116
91283
  case "ancillary":
91117
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, {});
91284
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
91118
91285
  case "subtitle":
91119
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, {});
91286
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
91120
91287
  case "playlist":
91121
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, {});
91288
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
91122
91289
  case void 0:
91123
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, {});
91290
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
91124
91291
  default:
91125
- return (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, {});
91292
+ return (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, {});
91126
91293
  }
91127
91294
  }) });
91128
91295
  }
91129
91296
  function streamKey(streamKey2) {
91130
91297
  return streamKey2.streamId.toString();
91131
91298
  }
91132
- var inline_view_default10 = InlineView10;
91299
+ var inline_view_default11 = InlineView11;
91133
91300
 
91134
91301
  // build/output.statistics/info.js
91135
91302
  var import_FaChartBar = __toESM(require_FaChartBar());
91136
- function info_default18({ defineComponent, All }) {
91303
+ function info_default19({ defineComponent, All }) {
91137
91304
  return defineComponent({
91138
91305
  identifier: "output.statistics",
91139
91306
  category: "output",
@@ -91158,11 +91325,11 @@ function info_default18({ defineComponent, All }) {
91158
91325
  state.previous = ev.summary;
91159
91326
  break;
91160
91327
  default:
91161
- assertUnreachable12(evType);
91328
+ assertUnreachable13(evType);
91162
91329
  }
91163
91330
  return { ...state };
91164
91331
  },
91165
- inline: inline_view_default10
91332
+ inline: inline_view_default11
91166
91333
  },
91167
91334
  configForm: {
91168
91335
  form: {
@@ -91171,14 +91338,14 @@ function info_default18({ defineComponent, All }) {
91171
91338
  }
91172
91339
  });
91173
91340
  }
91174
- function assertUnreachable12(_) {
91341
+ function assertUnreachable13(_) {
91175
91342
  throw new Error("Didn't expect to get here");
91176
91343
  }
91177
91344
 
91178
91345
  // build/output.tsMediaPlaylist/info.js
91179
91346
  var import_util7 = __toESM(require_util());
91180
91347
  var import_FaHeadphones5 = __toESM(require_FaHeadphones());
91181
- function info_default19(registration) {
91348
+ function info_default20(registration) {
91182
91349
  const { defineComponent, validation } = registration;
91183
91350
  const { Z } = validation;
91184
91351
  return defineComponent({
@@ -91290,7 +91457,7 @@ function info_default19(registration) {
91290
91457
  // build/output.tsMultiVariant/info.js
91291
91458
  var import_util8 = __toESM(require_util());
91292
91459
  var import_FaHeadphones6 = __toESM(require_FaHeadphones());
91293
- function info_default20(registration) {
91460
+ function info_default21(registration) {
91294
91461
  const { defineComponent, validation } = registration;
91295
91462
  const { Z } = validation;
91296
91463
  return defineComponent({
@@ -91380,7 +91547,7 @@ function info_default20(registration) {
91380
91547
 
91381
91548
  // build/output.twitch/info.js
91382
91549
  var import_FaTwitch = __toESM(require_FaTwitch());
91383
- function info_default21(r) {
91550
+ function info_default22(r) {
91384
91551
  const { validation: { Z } } = r;
91385
91552
  return defineRtmpOutputComponent(r, {
91386
91553
  identifier: "output.twitch",
@@ -91413,14 +91580,14 @@ var import_util9 = __toESM(require_util());
91413
91580
  var import_FaNetworkWired2 = __toESM(require_FaNetworkWired());
91414
91581
 
91415
91582
  // build/output.udpTs/inline-view.js
91416
- var import_jsx_runtime24 = __toESM(require_jsx_runtime());
91417
- function InlineView11({ state }) {
91418
- return (0, import_jsx_runtime24.jsx)("div", { className: "srt-output", children: (0, import_jsx_runtime24.jsx)("div", { children: (0, import_jsx_runtime24.jsx)(JitterBufferInline, { ...state.jitterBuffer }) }) });
91583
+ var import_jsx_runtime25 = __toESM(require_jsx_runtime());
91584
+ function InlineView12({ state }) {
91585
+ return (0, import_jsx_runtime25.jsx)("div", { className: "srt-output", children: (0, import_jsx_runtime25.jsx)("div", { children: (0, import_jsx_runtime25.jsx)(JitterBufferInline, { ...state.jitterBuffer }) }) });
91419
91586
  }
91420
- var inline_view_default11 = InlineView11;
91587
+ var inline_view_default12 = InlineView12;
91421
91588
 
91422
91589
  // build/output.udpTs/info.js
91423
- function info_default22({ defineComponent, All, validation: { Port, Hostname: Hostname2, JitterBuffer, Iface, Z } }) {
91590
+ function info_default23({ defineComponent, All, validation: { Port, Hostname: Hostname2, JitterBuffer, Iface, Z } }) {
91424
91591
  return defineComponent({
91425
91592
  identifier: "output.udpTs",
91426
91593
  category: "output",
@@ -91449,7 +91616,7 @@ function info_default22({ defineComponent, All, validation: { Port, Hostname: Ho
91449
91616
  }
91450
91617
  return { ...state };
91451
91618
  },
91452
- inline: inline_view_default11,
91619
+ inline: inline_view_default12,
91453
91620
  metrics: []
91454
91621
  },
91455
91622
  display: (desc) => {
@@ -91479,9 +91646,9 @@ function info_default22({ defineComponent, All, validation: { Port, Hostname: Ho
91479
91646
  var import_config4 = __toESM(require_config());
91480
91647
 
91481
91648
  // build/output.whep/inline-view.js
91482
- var import_jsx_runtime25 = __toESM(require_jsx_runtime());
91649
+ var import_jsx_runtime26 = __toESM(require_jsx_runtime());
91483
91650
  var import_react7 = __toESM(require_react());
91484
- function InlineView12({ state, config, raise }) {
91651
+ function InlineView13({ state, config, raise }) {
91485
91652
  const url = state.url;
91486
91653
  const id = config.id;
91487
91654
  const [showPreview, setShowPreview] = (0, import_react7.useState)(config.showPreview ?? true);
@@ -91523,18 +91690,18 @@ function InlineView12({ state, config, raise }) {
91523
91690
  }, [config.showPreview]);
91524
91691
  (0, import_react7.useEffect)(() => raise && raise(), [raise]);
91525
91692
  if (!url)
91526
- return (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, { children: "..." });
91693
+ return (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children: "..." });
91527
91694
  const videoStyles = `
91528
91695
  #whep-${id} video::-webkit-media-controls-play-button {
91529
91696
  display: none;
91530
91697
  }
91531
91698
  `;
91532
- return (0, import_jsx_runtime25.jsxs)("div", { className: "whep-container", children: [(0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime25.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime25.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), (0, import_jsx_runtime25.jsx)("div", { className: "flex items-stretch h-full", children: showPreview ? (0, import_jsx_runtime25.jsx)("div", { className: "whep-video", id: `whep-${id}`, children: (0, import_jsx_runtime25.jsx)("style", { children: videoStyles }) }) : (0, import_jsx_runtime25.jsx)("div", { className: "whep-video bg-black flex items-center justify-center text-white h-full py-4", children: "Preview turned off" }) })] });
91699
+ return (0, import_jsx_runtime26.jsxs)("div", { className: "whep-container", children: [(0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime26.jsx)("input", { type: "checkbox", id: `video-toggle-${id}`, checked: showPreview, onChange: (e) => setShowPreview(e.target.checked), className: "h-4 w-4" }), (0, import_jsx_runtime26.jsx)("label", { htmlFor: `video-toggle-${id}`, className: "text-sm", children: "Show Preview" })] }), (0, import_jsx_runtime26.jsx)("div", { className: "flex items-stretch h-full", children: showPreview ? (0, import_jsx_runtime26.jsx)("div", { className: "whep-video", id: `whep-${id}`, children: (0, import_jsx_runtime26.jsx)("style", { children: videoStyles }) }) : (0, import_jsx_runtime26.jsx)("div", { className: "whep-video bg-black flex items-center justify-center text-white h-full py-4", children: "Preview turned off" }) })] });
91533
91700
  }
91534
- var inline_view_default12 = InlineView12;
91701
+ var inline_view_default13 = InlineView13;
91535
91702
 
91536
91703
  // build/output.whep/summary-view.js
91537
- var import_jsx_runtime26 = __toESM(require_jsx_runtime());
91704
+ var import_jsx_runtime27 = __toESM(require_jsx_runtime());
91538
91705
  function SummaryView7({ state, sendCommand }) {
91539
91706
  const handleEnableOutput = () => {
91540
91707
  void enableOutput();
@@ -91552,13 +91719,13 @@ function SummaryView7({ state, sendCommand }) {
91552
91719
  type: "disable-output"
91553
91720
  });
91554
91721
  };
91555
- return (0, import_jsx_runtime26.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime26.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime26.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime26.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime26.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime26.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
91722
+ return (0, import_jsx_runtime27.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [(0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center space-x-2", children: [(0, import_jsx_runtime27.jsx)("span", { className: `inline-block w-2 h-2 rounded-full ${state.enabled ? "bg-blue-500" : "bg-red-500"}` }), (0, import_jsx_runtime27.jsxs)("span", { className: "text-sm", children: ["Status: ", state.enabled ? "Enabled" : "Disabled"] })] }), (0, import_jsx_runtime27.jsx)("div", { children: state.enabled ? (0, import_jsx_runtime27.jsx)("button", { onClick: handleDisableOutput, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Disable Output" }) : (0, import_jsx_runtime27.jsx)("button", { onClick: handleEnableOutput, className: "px-3 py-1 text-sm bg-blue-600 hover:bg-blue-700 text-white rounded", children: "Enable Output" }) })] }) });
91556
91723
  }
91557
91724
  var summary_view_default7 = SummaryView7;
91558
91725
 
91559
91726
  // build/output.whep/info.js
91560
91727
  var import_FaBroadcastTower = __toESM(require_FaBroadcastTower());
91561
- function info_default23(R) {
91728
+ function info_default24(R) {
91562
91729
  const { defineComponent, validation: { JitterBuffer } } = R;
91563
91730
  return defineComponent({
91564
91731
  identifier: "output.whep",
@@ -91599,11 +91766,11 @@ function info_default23(R) {
91599
91766
  state.enabled = false;
91600
91767
  break;
91601
91768
  default:
91602
- assertUnreachable16(evType);
91769
+ assertUnreachable17(evType);
91603
91770
  }
91604
91771
  return { ...state };
91605
91772
  },
91606
- inline: inline_view_default12,
91773
+ inline: inline_view_default13,
91607
91774
  summary: summary_view_default7
91608
91775
  },
91609
91776
  configForm: {
@@ -91621,13 +91788,13 @@ function info_default23(R) {
91621
91788
  }
91622
91789
  });
91623
91790
  }
91624
- function assertUnreachable16(_) {
91791
+ function assertUnreachable17(_) {
91625
91792
  throw new Error("Didn't expect to get here");
91626
91793
  }
91627
91794
 
91628
91795
  // build/output.youtube/info.js
91629
91796
  var import_FaYoutube = __toESM(require_FaYoutube());
91630
- function info_default24(r) {
91797
+ function info_default25(r) {
91631
91798
  const { validation: { Z } } = r;
91632
91799
  return defineRtmpOutputComponent(r, {
91633
91800
  identifier: "output.youtube",
@@ -91659,14 +91826,14 @@ function info_default24(r) {
91659
91826
  var import_client_types2 = __toESM(require_client_types());
91660
91827
 
91661
91828
  // build/processor.audioEncoder/form-views.js
91662
- var import_jsx_runtime27 = __toESM(require_jsx_runtime());
91829
+ var import_jsx_runtime28 = __toESM(require_jsx_runtime());
91663
91830
  function CodecConfiguration(cfg) {
91664
- return (0, import_jsx_runtime27.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime27.jsx)("div", { className: "col-span-1", children: "Codec" }), (0, import_jsx_runtime27.jsx)("div", { className: "col-span-2", children: cfg.kind }), cfg.kind === "aac" ? (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [(0, import_jsx_runtime27.jsx)("div", { className: "col-span-1", children: "Profile" }), (0, import_jsx_runtime27.jsx)("div", { className: "col-span-2", children: cfg.profile }), (0, import_jsx_runtime27.jsx)("div", { className: "col-span-1", children: "Sample Rate" }), (0, import_jsx_runtime27.jsx)("div", { className: "col-span-2", children: cfg.sampleRate })] }) : null] });
91831
+ return (0, import_jsx_runtime28.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime28.jsx)("div", { className: "col-span-1", children: "Codec" }), (0, import_jsx_runtime28.jsx)("div", { className: "col-span-2", children: cfg.kind }), cfg.kind === "aac" ? (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [(0, import_jsx_runtime28.jsx)("div", { className: "col-span-1", children: "Profile" }), (0, import_jsx_runtime28.jsx)("div", { className: "col-span-2", children: cfg.profile }), (0, import_jsx_runtime28.jsx)("div", { className: "col-span-1", children: "Sample Rate" }), (0, import_jsx_runtime28.jsx)("div", { className: "col-span-2", children: cfg.sampleRate })] }) : null] });
91665
91832
  }
91666
91833
 
91667
91834
  // build/processor.audioEncoder/info.js
91668
91835
  var import_FaMicrophone = __toESM(require_FaMicrophone());
91669
- function info_default25({ defineComponent, validation: { Z } }) {
91836
+ function info_default26({ defineComponent, validation: { Z } }) {
91670
91837
  const format = (stat) => Math.floor(stat).toLocaleString("en-US", { maximumFractionDigits: 0 });
91671
91838
  const Hz = (v) => ({ display: `${format(v)}Hz`, value: v });
91672
91839
  return defineComponent({
@@ -91797,8 +91964,8 @@ function info_default25({ defineComponent, validation: { Z } }) {
91797
91964
  }
91798
91965
 
91799
91966
  // build/processor.audioMixer/inline-view.js
91800
- var import_jsx_runtime28 = __toESM(require_jsx_runtime());
91801
- function InlineView13({ state }) {
91967
+ var import_jsx_runtime29 = __toESM(require_jsx_runtime());
91968
+ function InlineView14({ state }) {
91802
91969
  function percentage(levels) {
91803
91970
  if (!levels) {
91804
91971
  return 0;
@@ -91816,17 +91983,17 @@ function InlineView13({ state }) {
91816
91983
  if (mixerOutput) {
91817
91984
  sourcesOrdered.push({ ...mixerOutput });
91818
91985
  }
91819
- return (0, import_jsx_runtime28.jsx)("div", { className: "processor-audioMixer", children: (0, import_jsx_runtime28.jsx)("div", { className: "inline-mixer-console", children: sourcesOrdered.map((source, i) => {
91986
+ return (0, import_jsx_runtime29.jsx)("div", { className: "processor-audioMixer", children: (0, import_jsx_runtime29.jsx)("div", { className: "inline-mixer-console", children: sourcesOrdered.map((source, i) => {
91820
91987
  const isMasterOutput = i == sourcesOrdered.length - 1;
91821
- return (0, import_jsx_runtime28.jsxs)("div", { className: `inline-channel-strip ${isMasterOutput ? "inline-master-strip" : ""}`, children: [(0, import_jsx_runtime28.jsx)("div", { className: "inline-channel-label", children: isMasterOutput ? "Master" : source.displayName }), (0, import_jsx_runtime28.jsx)("div", { className: "inline-level-container", children: (0, import_jsx_runtime28.jsx)("div", { className: `inline-level-meter clip-${percentage(source.levels)}` }) }), (0, import_jsx_runtime28.jsx)("div", { className: "inline-fader-container", children: (0, import_jsx_runtime28.jsx)("div", { className: "inline-fader-track", children: (0, import_jsx_runtime28.jsx)("div", { className: "inline-fader-thumb", style: {
91988
+ return (0, import_jsx_runtime29.jsxs)("div", { className: `inline-channel-strip ${isMasterOutput ? "inline-master-strip" : ""}`, children: [(0, import_jsx_runtime29.jsx)("div", { className: "inline-channel-label", children: isMasterOutput ? "Master" : source.displayName }), (0, import_jsx_runtime29.jsx)("div", { className: "inline-level-container", children: (0, import_jsx_runtime29.jsx)("div", { className: `inline-level-meter clip-${percentage(source.levels)}` }) }), (0, import_jsx_runtime29.jsx)("div", { className: "inline-fader-container", children: (0, import_jsx_runtime29.jsx)("div", { className: "inline-fader-track", children: (0, import_jsx_runtime29.jsx)("div", { className: "inline-fader-thumb", style: {
91822
91989
  bottom: `${Math.max(10, Math.min(90, ((source.configuredGain || 0) + 60) / 84 * 80 + 10))}%`
91823
91990
  } }) }) })] }, i);
91824
91991
  }) }) });
91825
91992
  }
91826
- var inline_view_default13 = InlineView13;
91993
+ var inline_view_default14 = InlineView14;
91827
91994
 
91828
91995
  // build/processor.audioMixer/fullscreen-view.js
91829
- var import_jsx_runtime29 = __toESM(require_jsx_runtime());
91996
+ var import_jsx_runtime30 = __toESM(require_jsx_runtime());
91830
91997
  var import_react8 = __toESM(require_react());
91831
91998
  function FullScreen({ state, sendCommand }) {
91832
91999
  const initialSliders = [];
@@ -91859,7 +92026,7 @@ function FullScreen({ state, sendCommand }) {
91859
92026
  function mkFader(index3) {
91860
92027
  const levels = index3 == state.inputs.length ? state.output : state.inputs[index3];
91861
92028
  const internalSource = index3 == state.inputs.length ? { type: "mixer-output" } : { type: "input-gain", index: index3 };
91862
- return (0, import_jsx_runtime29.jsxs)("div", { id: `audio-slider-${index3}`, className: `${!levels?.levels ? "opacity-20" : ""} audio-mixer-fader-container grid content-center justify-center w-full relative`, children: [(0, import_jsx_runtime29.jsx)("input", { className: "-rotate-90 audio-mixer-fader", type: "range", name: "gain", min: state.gainRange.min - 0.1, max: state.gainRange.max, step: "0.1", value: levels?.configuredGain || 0, disabled: !levels?.levels, onChange: (e) => {
92029
+ return (0, import_jsx_runtime30.jsxs)("div", { id: `audio-slider-${index3}`, className: `${!levels?.levels ? "opacity-20" : ""} audio-mixer-fader-container grid content-center justify-center w-full relative`, children: [(0, import_jsx_runtime30.jsx)("input", { className: "-rotate-90 audio-mixer-fader", type: "range", name: "gain", min: state.gainRange.min - 0.1, max: state.gainRange.max, step: "0.1", value: levels?.configuredGain || 0, disabled: !levels?.levels, onChange: (e) => {
91863
92030
  sliderValues[index3] = Number(e.target.value);
91864
92031
  if (Number(e.target.value) < state.gainRange.min) {
91865
92032
  preMuteValues[index3] = state.gainRange.min;
@@ -91885,25 +92052,25 @@ function FullScreen({ state, sendCommand }) {
91885
92052
  }
91886
92053
  }, onMouseUp: (_e) => {
91887
92054
  sendCommand({ type: "set-gain", source: internalSource, value: sliderValues[index3] || 0 });
91888
- } }), (0, import_jsx_runtime29.jsxs)("div", { className: "grid mixer-gain-db ml-2.5 absolute self-center", children: [(0, import_jsx_runtime29.jsxs)("div", { className: "text-xs absolute border-t w-12", children: [state.gainRange.max, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.max * 0.75, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.max * 0.5, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.max * 0.25, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-12", children: "0dB" }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min * 0.25, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min * 0.5, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min * 0.75, "dB"] }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime29.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min, "dB"] })] })] });
92055
+ } }), (0, import_jsx_runtime30.jsxs)("div", { className: "grid mixer-gain-db ml-2.5 absolute self-center", children: [(0, import_jsx_runtime30.jsxs)("div", { className: "text-xs absolute border-t w-12", children: [state.gainRange.max, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.max * 0.75, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.max * 0.5, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.max * 0.25, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-12", children: "0dB" }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min * 0.25, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min * 0.5, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min * 0.75, "dB"] }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-4 h-4" }), (0, import_jsx_runtime30.jsxs)("div", { className: "text-xs self-end border-b w-12", children: [state.gainRange.min, "dB"] })] })] });
91889
92056
  }
91890
92057
  function mkLevels(index3) {
91891
92058
  const levels = index3 == state.inputs.length ? state.output : state.inputs[index3];
91892
92059
  const mutedClass = sliderValues[index3] < state.gainRange.min || levels.muted ? "level-muted" : "";
91893
- return (0, import_jsx_runtime29.jsxs)("div", { id: `level-${index3}`, className: `preview-levels-mixer ${!levels ? "opacity-30" : ""}`, children: [(0, import_jsx_runtime29.jsx)("div", { className: "relative w-full h-full", children: (0, import_jsx_runtime29.jsx)("div", { className: `preview-level-mixer absolute h-full w-4/6 clip-${percentage(levels?.levels)} ${mutedClass}` }) }), (0, import_jsx_runtime29.jsxs)("div", { className: "grid mixer-level-db ml-2.5 relative", children: [(0, import_jsx_runtime29.jsx)("div", { className: "text-xs absolute border-t w-12 -right-3.5", children: "0dB" }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-25dB" }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-50dB" }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-75dB" }), (0, import_jsx_runtime29.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-100dB" })] })] });
92060
+ return (0, import_jsx_runtime30.jsxs)("div", { id: `level-${index3}`, className: `preview-levels-mixer ${!levels ? "opacity-30" : ""}`, children: [(0, import_jsx_runtime30.jsx)("div", { className: "relative w-full h-full", children: (0, import_jsx_runtime30.jsx)("div", { className: `preview-level-mixer absolute h-full w-4/6 clip-${percentage(levels?.levels)} ${mutedClass}` }) }), (0, import_jsx_runtime30.jsxs)("div", { className: "grid mixer-level-db ml-2.5 relative", children: [(0, import_jsx_runtime30.jsx)("div", { className: "text-xs absolute border-t w-12 -right-3.5", children: "0dB" }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-25dB" }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-50dB" }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-75dB" }), (0, import_jsx_runtime30.jsx)("div", { className: "text-xs self-end border-b w-12", children: "-100dB" })] })] });
91894
92061
  }
91895
92062
  function mkGainValue(index3) {
91896
92063
  const levels = index3 == state.inputs.length ? state.output : state.inputs[index3];
91897
92064
  const sliderValue = sliderValues[index3];
91898
92065
  const sliderValueText = sliderValue === void 0 ? "- dB" : sliderValue < state.gainRange.min || levels.muted ? "muted" : sliderValue + "dB";
91899
- return (0, import_jsx_runtime29.jsx)("div", { id: `gain-value-${index3}`, className: `${!levels ? "opacity-20" : ""} text-m`, children: sliderValueText });
92066
+ return (0, import_jsx_runtime30.jsx)("div", { id: `gain-value-${index3}`, className: `${!levels ? "opacity-20" : ""} text-m`, children: sliderValueText });
91900
92067
  }
91901
92068
  function muteIcon(index3) {
91902
92069
  const levels = index3 == state.inputs.length ? state.output : state.inputs[index3];
91903
92070
  const internalSource = index3 == state.inputs.length ? { type: "mixer-output" } : { type: "input-gain", index: index3 };
91904
- const mute = (0, import_jsx_runtime29.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-6 h-6", children: (0, import_jsx_runtime29.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6 4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }) });
91905
- const unMute = (0, import_jsx_runtime29.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-6 h-6", children: (0, import_jsx_runtime29.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }) });
91906
- return (0, import_jsx_runtime29.jsx)("div", { className: `${!levels ? "opacity-20" : ""} mute-icon self-center`, onClick: (_e) => {
92071
+ const mute = (0, import_jsx_runtime30.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-6 h-6", children: (0, import_jsx_runtime30.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6 4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }) });
92072
+ const unMute = (0, import_jsx_runtime30.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "w-6 h-6", children: (0, import_jsx_runtime30.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19.114 5.636a9 9 0 0 1 0 12.728M16.463 8.288a5.25 5.25 0 0 1 0 7.424M6.75 8.25l4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z" }) });
92073
+ return (0, import_jsx_runtime30.jsx)("div", { className: `${!levels ? "opacity-20" : ""} mute-icon self-center`, onClick: (_e) => {
91907
92074
  if (levels) {
91908
92075
  if (levels.muted) {
91909
92076
  sendCommand({ type: "toggle-mute", source: internalSource, muted: false });
@@ -91929,16 +92096,16 @@ function FullScreen({ state, sendCommand }) {
91929
92096
  }
91930
92097
  {
91931
92098
  }
91932
- return (0, import_jsx_runtime29.jsx)("div", { className: "processor-audioMixer fullscreen", children: (0, import_jsx_runtime29.jsx)("div", { className: "audio-mixer grid gap-x-8 justify-items-center", style: mkGridColumns(), children: inputsOrdered.map((s, i) => {
92099
+ return (0, import_jsx_runtime30.jsx)("div", { className: "processor-audioMixer fullscreen", children: (0, import_jsx_runtime30.jsx)("div", { className: "audio-mixer grid gap-x-8 justify-items-center", style: mkGridColumns(), children: inputsOrdered.map((s, i) => {
91933
92100
  const isMasterOutput = i == inputsOrdered.length - 1;
91934
92101
  const divKey = `${i}`;
91935
- return (0, import_jsx_runtime29.jsxs)("div", { className: `channel-container grid justify-items-center ${isMasterOutput ? "master-channel-container ml-12" : ""} `, children: [(0, import_jsx_runtime29.jsx)("div", { id: `channel-title-${divKey}`, className: `channel-title ${isMasterOutput ? "master-title" : ""}`, children: isMasterOutput ? "Master" : s.displayName }), mkLevels(i), muteIcon(i), mkFader(i), mkGainValue(i)] }, divKey);
92102
+ return (0, import_jsx_runtime30.jsxs)("div", { className: `channel-container grid justify-items-center ${isMasterOutput ? "master-channel-container ml-12" : ""} `, children: [(0, import_jsx_runtime30.jsx)("div", { id: `channel-title-${divKey}`, className: `channel-title ${isMasterOutput ? "master-title" : ""}`, children: isMasterOutput ? "Master" : s.displayName }), mkLevels(i), muteIcon(i), mkFader(i), mkGainValue(i)] }, divKey);
91936
92103
  }) }) });
91937
92104
  }
91938
92105
  var fullscreen_view_default = FullScreen;
91939
92106
 
91940
92107
  // build/processor.audioMixer/info.js
91941
- function info_default26({ defineComponent, validation: { Z } }) {
92108
+ function info_default27({ defineComponent, validation: { Z } }) {
91942
92109
  return defineComponent({
91943
92110
  identifier: "processor.audioMixer",
91944
92111
  category: "processor",
@@ -92015,11 +92182,11 @@ function info_default26({ defineComponent, validation: { Z } }) {
92015
92182
  break;
92016
92183
  }
92017
92184
  default:
92018
- assertUnreachable17(evType);
92185
+ assertUnreachable18(evType);
92019
92186
  }
92020
92187
  return { ...state };
92021
92188
  },
92022
- inline: inline_view_default13,
92189
+ inline: inline_view_default14,
92023
92190
  fullscreen: fullscreen_view_default
92024
92191
  },
92025
92192
  configForm: {
@@ -92053,7 +92220,7 @@ var channelLayouts = () => {
92053
92220
  ];
92054
92221
  return ch;
92055
92222
  };
92056
- function assertUnreachable17(_) {
92223
+ function assertUnreachable18(_) {
92057
92224
  throw new Error("Didn't expect to get here");
92058
92225
  }
92059
92226
 
@@ -92062,7 +92229,7 @@ var import_config5 = __toESM(require_config());
92062
92229
  var import_FaWindowRestore = __toESM(require_FaWindowRestore());
92063
92230
 
92064
92231
  // build/processor.browserOverlay/summary-view.js
92065
- var import_jsx_runtime30 = __toESM(require_jsx_runtime());
92232
+ var import_jsx_runtime31 = __toESM(require_jsx_runtime());
92066
92233
  var import_react9 = __toESM(require_react());
92067
92234
  function SummaryView8({ state, sendCommand }) {
92068
92235
  const [url, setUrl] = (0, import_react9.useState)(state.currentUrl);
@@ -92071,7 +92238,7 @@ function SummaryView8({ state, sendCommand }) {
92071
92238
  return url !== state.currentUrl || enabled !== state.enabled;
92072
92239
  }, [url, enabled, state.currentUrl, state.enabled]);
92073
92240
  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";
92074
- return (0, import_jsx_runtime30.jsxs)("div", { className: "space-y-3 mb-5", children: [(0, import_jsx_runtime30.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime30.jsxs)("div", { className: "mb-5", children: [(0, import_jsx_runtime30.jsx)("label", { htmlFor: "url", className: "mb-2 mr-2 text-sm font-medium text-gray-900 dark:text-white", children: "URL" }), (0, import_jsx_runtime30.jsx)("input", { type: "email", id: "url", className: "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", value: url, onChange: (e) => setUrl(e.target.value), required: true })] }), (0, import_jsx_runtime30.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime30.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime30.jsx)("span", { className: "me-3 text-sm font-medium text-gray-900 dark:text-gray-300", children: "Enabled" }), (0, import_jsx_runtime30.jsx)("input", { type: "checkbox", checked: enabled, onChange: (e) => setEnabled(e.target.checked), className: "sr-only peer" }), (0, import_jsx_runtime30.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) }), (0, import_jsx_runtime30.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? "opacity-50 cursor-not-allowed" : ""}`, disabled: !stateChanged, onClick: () => {
92241
+ return (0, import_jsx_runtime31.jsxs)("div", { className: "space-y-3 mb-5", children: [(0, import_jsx_runtime31.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime31.jsxs)("div", { className: "mb-5", children: [(0, import_jsx_runtime31.jsx)("label", { htmlFor: "url", className: "mb-2 mr-2 text-sm font-medium text-gray-900 dark:text-white", children: "URL" }), (0, import_jsx_runtime31.jsx)("input", { type: "email", id: "url", className: "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", value: url, onChange: (e) => setUrl(e.target.value), required: true })] }), (0, import_jsx_runtime31.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime31.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime31.jsx)("span", { className: "me-3 text-sm font-medium text-gray-900 dark:text-gray-300", children: "Enabled" }), (0, import_jsx_runtime31.jsx)("input", { type: "checkbox", checked: enabled, onChange: (e) => setEnabled(e.target.checked), className: "sr-only peer" }), (0, import_jsx_runtime31.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) }), (0, import_jsx_runtime31.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? "opacity-50 cursor-not-allowed" : ""}`, disabled: !stateChanged, onClick: () => {
92075
92242
  if (url !== state.currentUrl) {
92076
92243
  sendCommand({ type: "change-url", url });
92077
92244
  }
@@ -92087,14 +92254,14 @@ function SummaryView8({ state, sendCommand }) {
92087
92254
  var summary_view_default8 = SummaryView8;
92088
92255
 
92089
92256
  // build/processor.browserOverlay/inline-view.js
92090
- var import_jsx_runtime31 = __toESM(require_jsx_runtime());
92091
- function InlineView14({ state, config }) {
92092
- return (0, import_jsx_runtime31.jsx)("div", { id: `browser-overlay-${config.id}`, children: (0, import_jsx_runtime31.jsxs)("div", { className: "w-64 grid grid-cols-[min-content,1fr] gap-2", children: [(0, import_jsx_runtime31.jsx)("div", { children: "URL:" }), (0, import_jsx_runtime31.jsx)("div", { className: "truncate", children: state.currentUrl }), (0, import_jsx_runtime31.jsx)("div", { children: "Enabled:" }), (0, import_jsx_runtime31.jsx)("div", { children: (0, import_jsx_runtime31.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime31.jsx)("input", { type: "checkbox", checked: state.enabled, disabled: true, className: "sr-only peer" }), (0, import_jsx_runtime31.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) })] }) });
92257
+ var import_jsx_runtime32 = __toESM(require_jsx_runtime());
92258
+ function InlineView15({ state, config }) {
92259
+ return (0, import_jsx_runtime32.jsx)("div", { id: `browser-overlay-${config.id}`, children: (0, import_jsx_runtime32.jsxs)("div", { className: "w-64 grid grid-cols-[min-content,1fr] gap-2", children: [(0, import_jsx_runtime32.jsx)("div", { children: "URL:" }), (0, import_jsx_runtime32.jsx)("div", { className: "truncate", children: state.currentUrl }), (0, import_jsx_runtime32.jsx)("div", { children: "Enabled:" }), (0, import_jsx_runtime32.jsx)("div", { children: (0, import_jsx_runtime32.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime32.jsx)("input", { type: "checkbox", checked: state.enabled, disabled: true, className: "sr-only peer" }), (0, import_jsx_runtime32.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) })] }) });
92093
92260
  }
92094
- var inline_view_default14 = InlineView14;
92261
+ var inline_view_default15 = InlineView15;
92095
92262
 
92096
92263
  // build/processor.browserOverlay/info.js
92097
- function info_default27({ defineComponent, validation: { Z } }) {
92264
+ function info_default28({ defineComponent, validation: { Z } }) {
92098
92265
  return defineComponent({
92099
92266
  identifier: "processor.browserOverlay",
92100
92267
  category: "processor",
@@ -92124,7 +92291,7 @@ function info_default27({ defineComponent, validation: { Z } }) {
92124
92291
  },
92125
92292
  runtime: {
92126
92293
  summary: summary_view_default8,
92127
- inline: inline_view_default14,
92294
+ inline: inline_view_default15,
92128
92295
  initialState: () => ({
92129
92296
  currentUrl: "",
92130
92297
  enabled: true
@@ -92139,7 +92306,7 @@ function info_default27({ defineComponent, validation: { Z } }) {
92139
92306
  case "disabled":
92140
92307
  return { ...state, enabled: false };
92141
92308
  default:
92142
- assertUnreachable18(evType);
92309
+ assertUnreachable19(evType);
92143
92310
  }
92144
92311
  }
92145
92312
  },
@@ -92154,7 +92321,7 @@ function info_default27({ defineComponent, validation: { Z } }) {
92154
92321
  }
92155
92322
  });
92156
92323
  }
92157
- function assertUnreachable18(_) {
92324
+ function assertUnreachable19(_) {
92158
92325
  throw new Error("Didn't expect to get here");
92159
92326
  }
92160
92327
 
@@ -92163,113 +92330,113 @@ var import_config6 = __toESM(require_config());
92163
92330
  var import_client_types3 = __toESM(require_client_types());
92164
92331
 
92165
92332
  // build/processor.fixedLadder/rung-view.js
92166
- var import_jsx_runtime32 = __toESM(require_jsx_runtime());
92333
+ var import_jsx_runtime33 = __toESM(require_jsx_runtime());
92167
92334
  function RungView(rung) {
92168
- return (0, import_jsx_runtime32.jsx)("div", { className: "text-gray-900 dark:text-white", children: rung.name });
92335
+ return (0, import_jsx_runtime33.jsx)("div", { className: "text-gray-900 dark:text-white", children: rung.name });
92169
92336
  }
92170
92337
 
92171
92338
  // build/processor.fixedLadder/x26x-bitrate-view.js
92172
- var import_jsx_runtime33 = __toESM(require_jsx_runtime());
92339
+ var import_jsx_runtime34 = __toESM(require_jsx_runtime());
92173
92340
  function X264XBitrateView(bitrate) {
92174
92341
  const value = (() => {
92175
92342
  if (bitrate) {
92176
92343
  switch (bitrate.mode) {
92177
92344
  case "abr":
92178
- return (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: ["ABR ", bitrate.value, "kbps "] });
92345
+ return (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: ["ABR ", bitrate.value, "kbps "] });
92179
92346
  case "cqp":
92180
- return (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: ["CQP ", bitrate.value] });
92347
+ return (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: ["CQP ", bitrate.value] });
92181
92348
  case "crf":
92182
- return (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: ["CRF ", bitrate.value] });
92349
+ return (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: ["CRF ", bitrate.value] });
92183
92350
  }
92184
92351
  } else {
92185
- return (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: "N/A" });
92352
+ return (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: "N/A" });
92186
92353
  }
92187
92354
  })();
92188
- return (0, import_jsx_runtime33.jsx)("div", { className: "text-gray-900 dark:text-white", children: value });
92355
+ return (0, import_jsx_runtime34.jsx)("div", { className: "text-gray-900 dark:text-white", children: value });
92189
92356
  }
92190
92357
 
92191
92358
  // build/processor.fixedLadder/nvidia-rate-control-view.js
92192
- var import_jsx_runtime34 = __toESM(require_jsx_runtime());
92359
+ var import_jsx_runtime35 = __toESM(require_jsx_runtime());
92193
92360
  function NvidiaRateControlView(rateControl) {
92194
92361
  const value = (() => {
92195
92362
  if (rateControl) {
92196
92363
  switch (rateControl.mode) {
92197
92364
  case "con_stqp":
92198
- return (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: "Constant QP" });
92365
+ return (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: "Constant QP" });
92199
92366
  case "vbr":
92200
- return (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: "VBR" });
92367
+ return (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: "VBR" });
92201
92368
  case "cbr":
92202
- return (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: "CBR" });
92369
+ return (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: "CBR" });
92203
92370
  }
92204
92371
  } else {
92205
- return (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: "N/A" });
92372
+ return (0, import_jsx_runtime35.jsx)(import_jsx_runtime35.Fragment, { children: "N/A" });
92206
92373
  }
92207
92374
  })();
92208
- return (0, import_jsx_runtime34.jsx)("div", { className: "text-gray-900 dark:text-white", children: value });
92375
+ return (0, import_jsx_runtime35.jsx)("div", { className: "text-gray-900 dark:text-white", children: value });
92209
92376
  }
92210
92377
 
92211
92378
  // build/processor.fixedLadder/software-view.js
92212
- var import_jsx_runtime35 = __toESM(require_jsx_runtime());
92379
+ var import_jsx_runtime36 = __toESM(require_jsx_runtime());
92213
92380
  function SoftwareView(codec) {
92214
92381
  if (codec == void 0) {
92215
- return (0, import_jsx_runtime35.jsx)("div", { className: "text-gray-900 dark:text-white", children: "N/A" });
92382
+ return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: "N/A" });
92216
92383
  } else {
92217
92384
  const type = codec.type;
92218
92385
  const undefinedToDefault = (val) => val ?? "[default]";
92219
92386
  switch (type) {
92220
92387
  case "x264":
92221
- return (0, import_jsx_runtime35.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime35.jsxs)("ul", { children: [(0, import_jsx_runtime35.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime35.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.keyFrameIntervalMin), "-", undefinedToDefault(codec.keyFrameIntervalMax)] }), (0, import_jsx_runtime35.jsxs)("li", { children: ["Ref-frames: ", undefinedToDefault(codec.frameReference)] }), (0, import_jsx_runtime35.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.bframes)] })] }) });
92388
+ return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime36.jsxs)("ul", { children: [(0, import_jsx_runtime36.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.keyFrameIntervalMin), "-", undefinedToDefault(codec.keyFrameIntervalMax)] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["Ref-frames: ", undefinedToDefault(codec.frameReference)] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.bframes)] })] }) });
92222
92389
  case "x265":
92223
- return (0, import_jsx_runtime35.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime35.jsxs)("ul", { children: [(0, import_jsx_runtime35.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime35.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.keyFrameIntervalMin), "-", undefinedToDefault(codec.keyFrameIntervalMax)] }), (0, import_jsx_runtime35.jsxs)("li", { children: ["Ref-frames: ", undefinedToDefault(codec.frameReference)] }), (0, import_jsx_runtime35.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.bframes)] })] }) });
92390
+ return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime36.jsxs)("ul", { children: [(0, import_jsx_runtime36.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.keyFrameIntervalMin), "-", undefinedToDefault(codec.keyFrameIntervalMax)] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["Ref-frames: ", undefinedToDefault(codec.frameReference)] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.bframes)] })] }) });
92224
92391
  }
92225
92392
  }
92226
92393
  }
92227
92394
 
92228
92395
  // build/processor.fixedLadder/quadra-view.js
92229
- var import_jsx_runtime36 = __toESM(require_jsx_runtime());
92396
+ var import_jsx_runtime37 = __toESM(require_jsx_runtime());
92230
92397
  function QuadraView(codec) {
92231
92398
  if (codec == void 0) {
92232
- return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: "N/A" });
92399
+ return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: "N/A" });
92233
92400
  } else {
92234
92401
  const type = codec.type;
92235
92402
  const undefinedToDefault = (val) => val ?? "[default]";
92236
92403
  switch (type) {
92237
92404
  case "quadra-h264":
92238
- return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime36.jsxs)("ul", { children: [(0, import_jsx_runtime36.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["Opts: ", undefinedToDefault(codec.extraOpts)] })] }) });
92405
+ return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime37.jsxs)("ul", { children: [(0, import_jsx_runtime37.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["Opts: ", undefinedToDefault(codec.extraOpts)] })] }) });
92239
92406
  case "quadra-hevc":
92240
- return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime36.jsxs)("ul", { children: [(0, import_jsx_runtime36.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["Opts: ", undefinedToDefault(codec.extraOpts)] })] }) });
92407
+ return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime37.jsxs)("ul", { children: [(0, import_jsx_runtime37.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["Opts: ", undefinedToDefault(codec.extraOpts)] })] }) });
92241
92408
  case "quadra-av1":
92242
- return (0, import_jsx_runtime36.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime36.jsxs)("ul", { children: [(0, import_jsx_runtime36.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime36.jsxs)("li", { children: ["Opts: ", undefinedToDefault(codec.extraOpts)] })] }) });
92409
+ return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime37.jsxs)("ul", { children: [(0, import_jsx_runtime37.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["Opts: ", undefinedToDefault(codec.extraOpts)] })] }) });
92243
92410
  }
92244
92411
  }
92245
92412
  }
92246
92413
 
92247
92414
  // build/processor.fixedLadder/nvidia-view.js
92248
- var import_jsx_runtime37 = __toESM(require_jsx_runtime());
92415
+ var import_jsx_runtime38 = __toESM(require_jsx_runtime());
92249
92416
  function NvidiaView(codec) {
92250
92417
  if (codec == void 0) {
92251
- return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: "N/A" });
92418
+ return (0, import_jsx_runtime38.jsx)("div", { className: "text-gray-900 dark:text-white", children: "N/A" });
92252
92419
  } else {
92253
92420
  const type = codec.type;
92254
92421
  const undefinedToDefault = (val) => val ?? "[default]";
92255
92422
  switch (type) {
92256
92423
  case "nv-h264":
92257
- return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime37.jsxs)("ul", { children: [(0, import_jsx_runtime37.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.idrPeriod)] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["Ref-frames: ", undefinedToDefault(codec.maxNumRefFrames)] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.useBFramesAsRef)] })] }) });
92424
+ return (0, import_jsx_runtime38.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime38.jsxs)("ul", { children: [(0, import_jsx_runtime38.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime38.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.idrPeriod)] }), (0, import_jsx_runtime38.jsxs)("li", { children: ["Ref-frames: ", undefinedToDefault(codec.maxNumRefFrames)] }), (0, import_jsx_runtime38.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.useBFramesAsRef)] })] }) });
92258
92425
  case "nv-hevc":
92259
- return (0, import_jsx_runtime37.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime37.jsxs)("ul", { children: [(0, import_jsx_runtime37.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.idrPeriod)] }), (0, import_jsx_runtime37.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.useBFramesAsRef)] })] }) });
92426
+ return (0, import_jsx_runtime38.jsx)("div", { className: "text-gray-900 dark:text-white", children: (0, import_jsx_runtime38.jsxs)("ul", { children: [(0, import_jsx_runtime38.jsxs)("li", { children: ["Codec: ", type] }), (0, import_jsx_runtime38.jsxs)("li", { children: ["GOP Size: ", undefinedToDefault(codec.idrPeriod)] }), (0, import_jsx_runtime38.jsxs)("li", { children: ["B-Frames: ", undefinedToDefault(codec.useBFramesAsRef)] })] }) });
92260
92427
  }
92261
92428
  }
92262
92429
  }
92263
92430
 
92264
92431
  // build/processor.fixedLadder/codec-view.js
92265
- var import_jsx_runtime38 = __toESM(require_jsx_runtime());
92432
+ var import_jsx_runtime39 = __toESM(require_jsx_runtime());
92266
92433
  function CodecEditor(props) {
92267
- return (0, import_jsx_runtime38.jsxs)("div", { className: "text-gray-900 dark:text-white", children: [props?.width, "x", props?.height] });
92434
+ return (0, import_jsx_runtime39.jsxs)("div", { className: "text-gray-900 dark:text-white", children: [props?.width, "x", props?.height] });
92268
92435
  }
92269
92436
 
92270
92437
  // build/processor.fixedLadder/info.js
92271
92438
  var import_FaLayerGroup = __toESM(require_FaLayerGroup());
92272
- function info_default28({ defineComponent, common: { FrameRates } }) {
92439
+ function info_default29({ defineComponent, common: { FrameRates } }) {
92273
92440
  function softwareHint() {
92274
92441
  return {
92275
92442
  type: "form-pick",
@@ -92315,6 +92482,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
92315
92482
  advanced: void 0,
92316
92483
  hint: {
92317
92484
  type: "select",
92485
+ optional: true,
92318
92486
  options: [
92319
92487
  { value: "baseline", display: "baseline" },
92320
92488
  { value: "main", display: "main" },
@@ -92439,6 +92607,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
92439
92607
  advanced: void 0,
92440
92608
  hint: {
92441
92609
  type: "select",
92610
+ optional: true,
92442
92611
  options: [
92443
92612
  { value: "none", display: "none" },
92444
92613
  { value: "vbr", display: "vbr" },
@@ -92492,6 +92661,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
92492
92661
  advanced: void 0,
92493
92662
  hint: {
92494
92663
  type: "select",
92664
+ optional: true,
92495
92665
  options: [
92496
92666
  { value: "main", display: "main" },
92497
92667
  { value: "main10", display: "main10" },
@@ -92680,6 +92850,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
92680
92850
  advanced: void 0,
92681
92851
  hint: {
92682
92852
  type: "select",
92853
+ optional: true,
92683
92854
  options: [
92684
92855
  { value: "baseline", display: "baseline" },
92685
92856
  { value: "main", display: "main" },
@@ -92815,6 +92986,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
92815
92986
  advanced: void 0,
92816
92987
  hint: {
92817
92988
  type: "select",
92989
+ optional: true,
92818
92990
  options: [
92819
92991
  { value: "main", display: "main" },
92820
92992
  { value: "main10", display: "main10" }
@@ -92973,6 +93145,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
92973
93145
  advanced: void 0,
92974
93146
  hint: {
92975
93147
  type: "select",
93148
+ optional: true,
92976
93149
  options: [
92977
93150
  { value: "main_420_8", display: "main_420_8" }
92978
93151
  ]
@@ -93194,6 +93367,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
93194
93367
  advanced: void 0,
93195
93368
  hint: {
93196
93369
  type: "select",
93370
+ optional: true,
93197
93371
  options: [
93198
93372
  { value: "baseline", display: "baseline" },
93199
93373
  { value: "main", display: "main" },
@@ -93303,6 +93477,7 @@ function info_default28({ defineComponent, common: { FrameRates } }) {
93303
93477
  advanced: void 0,
93304
93478
  hint: {
93305
93479
  type: "select",
93480
+ optional: true,
93306
93481
  options: [
93307
93482
  { value: "main", display: "main" },
93308
93483
  { value: "main10", display: "main10" }
@@ -93507,7 +93682,7 @@ function createSoftwareRung(rung) {
93507
93682
  case "h264_320x180":
93508
93683
  return createRungImpl({ name: rung, threads: 1, bitrate: 800 });
93509
93684
  default:
93510
- return assertUnreachable19(rung);
93685
+ return assertUnreachable20(rung);
93511
93686
  }
93512
93687
  }
93513
93688
  function createNvidiaRung(rung) {
@@ -93521,7 +93696,7 @@ function createNvidiaRung(rung) {
93521
93696
  case "h264_320x180":
93522
93697
  return createNvidiaRungImpl({ name: rung, bitrate: 8e5 });
93523
93698
  default:
93524
- return assertUnreachable19(rung);
93699
+ return assertUnreachable20(rung);
93525
93700
  }
93526
93701
  }
93527
93702
  function createQuadraRung(rung) {
@@ -93535,7 +93710,7 @@ function createQuadraRung(rung) {
93535
93710
  case "h264_320x180":
93536
93711
  return createQuadraRungImpl({ name: rung, bitrate: 8e5 });
93537
93712
  default:
93538
- return assertUnreachable19(rung);
93713
+ return assertUnreachable20(rung);
93539
93714
  }
93540
93715
  }
93541
93716
  function createRungImpl({ name, threads, bitrate }) {
@@ -93598,7 +93773,7 @@ function rungWidth(rungName) {
93598
93773
  function rungHeight(rungName) {
93599
93774
  return parseInt(rungName.split("_")[1].split(`x`)[1]);
93600
93775
  }
93601
- function assertUnreachable19(_) {
93776
+ function assertUnreachable20(_) {
93602
93777
  throw new Error("Didn't expect to get here");
93603
93778
  }
93604
93779
 
@@ -93606,8 +93781,8 @@ function assertUnreachable19(_) {
93606
93781
  var import_FaImage = __toESM(require_FaImage());
93607
93782
 
93608
93783
  // build/processor.gate/inline-view.js
93609
- var import_jsx_runtime39 = __toESM(require_jsx_runtime());
93610
- function InlineView15({ state, config, sendCommand }) {
93784
+ var import_jsx_runtime40 = __toESM(require_jsx_runtime());
93785
+ function InlineView16({ state, config, sendCommand }) {
93611
93786
  function onStatusChanged(selected) {
93612
93787
  if (selected) {
93613
93788
  sendCommand({ type: "open" });
@@ -93615,12 +93790,12 @@ function InlineView15({ state, config, sendCommand }) {
93615
93790
  sendCommand({ type: "close" });
93616
93791
  }
93617
93792
  }
93618
- return (0, import_jsx_runtime39.jsx)("div", { id: `browser-overlay-${config.id}`, children: (0, import_jsx_runtime39.jsxs)("div", { className: "w-64 grid grid-cols-[min-content,1fr] gap-2", children: [(0, import_jsx_runtime39.jsx)("div", { children: state.status == "open" ? "Open" : "Closed" }), (0, import_jsx_runtime39.jsx)("div", { children: (0, import_jsx_runtime39.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime39.jsx)("input", { type: "checkbox", checked: state.status == "open", onChange: (e) => onStatusChanged(e.target.checked), className: "sr-only peer" }), (0, import_jsx_runtime39.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) })] }) });
93793
+ return (0, import_jsx_runtime40.jsx)("div", { id: `browser-overlay-${config.id}`, children: (0, import_jsx_runtime40.jsxs)("div", { className: "w-64 grid grid-cols-[min-content,1fr] gap-2", children: [(0, import_jsx_runtime40.jsx)("div", { children: state.status == "open" ? "Open" : "Closed" }), (0, import_jsx_runtime40.jsx)("div", { children: (0, import_jsx_runtime40.jsxs)("label", { className: "inline-flex items-center cursor-pointer", children: [(0, import_jsx_runtime40.jsx)("input", { type: "checkbox", checked: state.status == "open", onChange: (e) => onStatusChanged(e.target.checked), className: "sr-only peer" }), (0, import_jsx_runtime40.jsx)("div", { className: "relative w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600" })] }) })] }) });
93619
93794
  }
93620
- var inline_view_default15 = InlineView15;
93795
+ var inline_view_default16 = InlineView16;
93621
93796
 
93622
93797
  // build/processor.gate/info.js
93623
- function info_default29({ defineComponent, All }) {
93798
+ function info_default30({ defineComponent, All }) {
93624
93799
  return defineComponent({
93625
93800
  identifier: "processor.gate",
93626
93801
  category: "processor",
@@ -93651,7 +93826,7 @@ function info_default29({ defineComponent, All }) {
93651
93826
  };
93652
93827
  },
93653
93828
  runtime: {
93654
- inline: inline_view_default15,
93829
+ inline: inline_view_default16,
93655
93830
  initialState: () => ({
93656
93831
  status: "closed"
93657
93832
  }),
@@ -93661,7 +93836,7 @@ function info_default29({ defineComponent, All }) {
93661
93836
  case "status-changed":
93662
93837
  return { ...state, status: ev.status };
93663
93838
  default:
93664
- assertUnreachable20(evType);
93839
+ assertUnreachable21(evType);
93665
93840
  }
93666
93841
  }
93667
93842
  },
@@ -93683,13 +93858,13 @@ function info_default29({ defineComponent, All }) {
93683
93858
  }
93684
93859
  });
93685
93860
  }
93686
- function assertUnreachable20(_) {
93861
+ function assertUnreachable21(_) {
93687
93862
  throw new Error("Didn't expect to get here");
93688
93863
  }
93689
93864
 
93690
93865
  // build/processor.makeProgram/info.js
93691
93866
  var import_FaPlayCircle = __toESM(require_FaPlayCircle());
93692
- function info_default30({ defineComponent, All, validation: { Z } }) {
93867
+ function info_default31({ defineComponent, All, validation: { Z } }) {
93693
93868
  return defineComponent({
93694
93869
  identifier: "processor.makeProgram",
93695
93870
  category: "processor",
@@ -93815,7 +93990,7 @@ function getStreamKeyMapping(componentId, rows, columns) {
93815
93990
  audioStreamKeys
93816
93991
  };
93817
93992
  }
93818
- function info_default31({ defineComponent, validation: { Z } }) {
93993
+ function info_default32({ defineComponent, validation: { Z } }) {
93819
93994
  return defineComponent({
93820
93995
  identifier: "processor.multiview",
93821
93996
  name: "Multiview",
@@ -93926,7 +94101,7 @@ function info_default31({ defineComponent, validation: { Z } }) {
93926
94101
  var import_config7 = __toESM(require_config());
93927
94102
 
93928
94103
  // build/processor.onscreenGraphic/image-selection.js
93929
- var import_jsx_runtime40 = __toESM(require_jsx_runtime());
94104
+ var import_jsx_runtime41 = __toESM(require_jsx_runtime());
93930
94105
  var import_react10 = __toESM(require_react());
93931
94106
  function GraphicSelection(props) {
93932
94107
  const [loading, setLoading] = (0, import_react10.useState)(true);
@@ -93955,19 +94130,19 @@ function GraphicSelection(props) {
93955
94130
  }, [staticUrl, defaultValue, onChanged]);
93956
94131
  const [graphcs, setGraphics] = (0, import_react10.useState)([]);
93957
94132
  if (loading) {
93958
- return (0, import_jsx_runtime40.jsx)("div", { children: "Loading.." });
94133
+ return (0, import_jsx_runtime41.jsx)("div", { children: "Loading.." });
93959
94134
  }
93960
94135
  if (graphcs.length == 0) {
93961
- return (0, import_jsx_runtime40.jsx)("div", { children: "No graphics loaded" });
94136
+ return (0, import_jsx_runtime41.jsx)("div", { children: "No graphics loaded" });
93962
94137
  }
93963
- return (0, import_jsx_runtime40.jsx)("div", { children: (0, import_jsx_runtime40.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime40.jsx)("option", { value: "", children: "---" }, "empty"), graphcs.map((o, i) => {
93964
- return (0, import_jsx_runtime40.jsx)("option", { value: o, children: o }, i);
94138
+ return (0, import_jsx_runtime41.jsx)("div", { children: (0, import_jsx_runtime41.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime41.jsx)("option", { value: "", children: "---" }, "empty"), graphcs.map((o, i) => {
94139
+ return (0, import_jsx_runtime41.jsx)("option", { value: o, children: o }, i);
93965
94140
  })] }) });
93966
94141
  }
93967
94142
  var image_selection_default = GraphicSelection;
93968
94143
 
93969
94144
  // build/processor.onscreenGraphic/summary-view.js
93970
- var import_jsx_runtime41 = __toESM(require_jsx_runtime());
94145
+ var import_jsx_runtime42 = __toESM(require_jsx_runtime());
93971
94146
  var import_react11 = __toESM(require_react());
93972
94147
  function SummaryView9({ state, sendCommand, urls }) {
93973
94148
  const [graphic, setGraphic] = (0, import_react11.useState)(state.activeGraphic?.file);
@@ -94105,7 +94280,7 @@ function SummaryView9({ state, sendCommand, urls }) {
94105
94280
  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";
94106
94281
  const deleteButtonClass = "mt-2 text-white w-full justify-center bg-red-600 hover:bg-red-700 focus:ring-4 focus:outline-none focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-700 dark:hover:bg-red-800 dark:focus:ring-red-900";
94107
94282
  const fileInputClass = "block w-full text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400";
94108
- return (0, import_jsx_runtime41.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime41.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime41.jsxs)("div", { children: [(0, import_jsx_runtime41.jsx)("label", { htmlFor: "select-graphic", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, import_jsx_runtime41.jsxs)("select", { id: "select-graphic", className: "w-full node-editor-select-input", value: graphic || "", onChange: (e) => setGraphic(e.target.value || void 0), children: [(0, import_jsx_runtime41.jsx)("option", { value: "", children: "---" }), graphics.map((s) => (0, import_jsx_runtime41.jsx)("option", { value: s, children: s }, s))] })] }), graphic && (0, import_jsx_runtime41.jsxs)("div", { children: [(0, import_jsx_runtime41.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Graphic position" }), (0, import_jsx_runtime41.jsx)(PositionSelector, { initialPosition: position, onChange: setPosition, graphicChanged, ...state })] }), (0, import_jsx_runtime41.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? "opacity-50 cursor-not-allowed" : ""}`, onClick: () => sendCommand({ type: "change-graphic", file: graphic, position }), disabled: !stateChanged, children: "Commit" }), !showFileInput && !uploadStatus.success && (0, import_jsx_runtime41.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Graphic" }), showFileInput && (0, import_jsx_runtime41.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, import_jsx_runtime41.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && (0, import_jsx_runtime41.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" })] }), (0, import_jsx_runtime41.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Graphics" }), showDeleteDropdown && (0, import_jsx_runtime41.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, import_jsx_runtime41.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Graphic to Delete" }), (0, import_jsx_runtime41.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: graphicToDelete, onChange: (e) => setGraphicToDelete(e.target.value), children: [(0, import_jsx_runtime41.jsx)("option", { value: "", children: " Select a graphic" }), graphics.map((graphicName) => (0, import_jsx_runtime41.jsx)("option", { value: graphicName, children: graphicName }, graphicName))] }), (0, import_jsx_runtime41.jsx)("button", { onClick: deleteBug, disabled: !graphicToDelete, className: `${deleteButtonClass} ${!graphicToDelete ? "opacity-50 cursor-not-allowed" : ""}`, children: "Delete Selected Graphic" })] }), uploadStatus.message && (0, import_jsx_runtime41.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message })] });
94283
+ return (0, import_jsx_runtime42.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime42.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, import_jsx_runtime42.jsxs)("div", { children: [(0, import_jsx_runtime42.jsx)("label", { htmlFor: "select-graphic", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, import_jsx_runtime42.jsxs)("select", { id: "select-graphic", className: "w-full node-editor-select-input", value: graphic || "", onChange: (e) => setGraphic(e.target.value || void 0), children: [(0, import_jsx_runtime42.jsx)("option", { value: "", children: "---" }), graphics.map((s) => (0, import_jsx_runtime42.jsx)("option", { value: s, children: s }, s))] })] }), graphic && (0, import_jsx_runtime42.jsxs)("div", { children: [(0, import_jsx_runtime42.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Graphic position" }), (0, import_jsx_runtime42.jsx)(PositionSelector, { initialPosition: position, onChange: setPosition, graphicChanged, ...state })] }), (0, import_jsx_runtime42.jsx)("button", { type: "button", className: `${buttonClass} ${!stateChanged ? "opacity-50 cursor-not-allowed" : ""}`, onClick: () => sendCommand({ type: "change-graphic", file: graphic, position }), disabled: !stateChanged, children: "Commit" }), !showFileInput && !uploadStatus.success && (0, import_jsx_runtime42.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Graphic" }), showFileInput && (0, import_jsx_runtime42.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, import_jsx_runtime42.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && (0, import_jsx_runtime42.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" })] }), (0, import_jsx_runtime42.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Graphics" }), showDeleteDropdown && (0, import_jsx_runtime42.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, import_jsx_runtime42.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Graphic to Delete" }), (0, import_jsx_runtime42.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: graphicToDelete, onChange: (e) => setGraphicToDelete(e.target.value), children: [(0, import_jsx_runtime42.jsx)("option", { value: "", children: " Select a graphic" }), graphics.map((graphicName) => (0, import_jsx_runtime42.jsx)("option", { value: graphicName, children: graphicName }, graphicName))] }), (0, import_jsx_runtime42.jsx)("button", { onClick: deleteBug, disabled: !graphicToDelete, className: `${deleteButtonClass} ${!graphicToDelete ? "opacity-50 cursor-not-allowed" : ""}`, children: "Delete Selected Graphic" })] }), uploadStatus.message && (0, import_jsx_runtime42.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message })] });
94109
94284
  }
94110
94285
  function fromLocalPosition(pos) {
94111
94286
  if (pos.type === "named")
@@ -94114,7 +94289,7 @@ function fromLocalPosition(pos) {
94114
94289
  return { type: pos.type, x: pos.x, y: pos.y };
94115
94290
  if (pos.type === "percentage")
94116
94291
  return { type: pos.type, x: pos.x, y: pos.y };
94117
- assertUnreachable21(pos);
94292
+ assertUnreachable22(pos);
94118
94293
  }
94119
94294
  function convertPosition(givenPosition, currentVideo, currentGraphic) {
94120
94295
  if (!givenPosition)
@@ -94132,7 +94307,7 @@ function convertPosition(givenPosition, currentVideo, currentGraphic) {
94132
94307
  } else if (givenPosition.position === "center") {
94133
94308
  xy = { x: 50, y: 50 };
94134
94309
  } else {
94135
- assertUnreachable21(givenPosition.position);
94310
+ assertUnreachable22(givenPosition.position);
94136
94311
  }
94137
94312
  return { ...givenPosition, ...xy, xPct: xy.x, yPct: xy.y };
94138
94313
  }
@@ -94231,7 +94406,7 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94231
94406
  window.removeEventListener("mouseup", previous.handleMouseUp);
94232
94407
  };
94233
94408
  }, [isDragging, handleMouseMove, handleMouseUp]);
94234
- return (0, import_jsx_runtime41.jsxs)("div", { className: "relative w-full max-w-lg mx-auto mt-4 mb-8", children: [(0, import_jsx_runtime41.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime41.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Type:" }), (0, import_jsx_runtime41.jsxs)("select", { value: position.type, onChange: (e) => {
94409
+ return (0, import_jsx_runtime42.jsxs)("div", { className: "relative w-full max-w-lg mx-auto mt-4 mb-8", children: [(0, import_jsx_runtime42.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime42.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Type:" }), (0, import_jsx_runtime42.jsxs)("select", { value: position.type, onChange: (e) => {
94235
94410
  const newType = e.target.value;
94236
94411
  if (newType === "named") {
94237
94412
  setPosition(convertPos({ type: "named", position: "topleft" }));
@@ -94239,12 +94414,12 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94239
94414
  setPositionUnit("%");
94240
94415
  setPosition({ ...convertPos(position), type: "percentage" });
94241
94416
  }
94242
- }, className: "node-editor-select-input", children: [(0, import_jsx_runtime41.jsx)("option", { value: "coordinate", children: "Custom Position" }), (0, import_jsx_runtime41.jsx)("option", { value: "named", children: "Preset Position" })] })] }), position.type === "named" ? (0, import_jsx_runtime41.jsx)("div", { className: "mb-4", children: (0, import_jsx_runtime41.jsxs)("select", { value: position.position, onChange: (e) => {
94417
+ }, className: "node-editor-select-input", children: [(0, import_jsx_runtime42.jsx)("option", { value: "coordinate", children: "Custom Position" }), (0, import_jsx_runtime42.jsx)("option", { value: "named", children: "Preset Position" })] })] }), position.type === "named" ? (0, import_jsx_runtime42.jsx)("div", { className: "mb-4", children: (0, import_jsx_runtime42.jsxs)("select", { value: position.position, onChange: (e) => {
94243
94418
  setPosition(convertPos({
94244
94419
  type: "named",
94245
94420
  position: e.target.value
94246
94421
  }));
94247
- }, className: "w-full node-editor-select-input", children: [(0, import_jsx_runtime41.jsx)("option", { value: "topleft", children: "Top Left" }), (0, import_jsx_runtime41.jsx)("option", { value: "topright", children: "Top Right" }), (0, import_jsx_runtime41.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, import_jsx_runtime41.jsx)("option", { value: "bottomright", children: "Bottom Right" }), (0, import_jsx_runtime41.jsx)("option", { value: "center", children: "Centered" })] }) }) : (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [(0, import_jsx_runtime41.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime41.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Unit:" }), (0, import_jsx_runtime41.jsxs)("select", { value: positionUnit, onChange: (e) => {
94422
+ }, className: "w-full node-editor-select-input", children: [(0, import_jsx_runtime42.jsx)("option", { value: "topleft", children: "Top Left" }), (0, import_jsx_runtime42.jsx)("option", { value: "topright", children: "Top Right" }), (0, import_jsx_runtime42.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, import_jsx_runtime42.jsx)("option", { value: "bottomright", children: "Bottom Right" }), (0, import_jsx_runtime42.jsx)("option", { value: "center", children: "Centered" })] }) }) : (0, import_jsx_runtime42.jsxs)(import_jsx_runtime42.Fragment, { children: [(0, import_jsx_runtime42.jsxs)("div", { className: "mb-4 flex items-center gap-2", children: [(0, import_jsx_runtime42.jsx)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: "Position Unit:" }), (0, import_jsx_runtime42.jsxs)("select", { value: positionUnit, onChange: (e) => {
94248
94423
  setPositionUnit(e.target.value);
94249
94424
  if (e.target.value === "px" && position.type !== "coordinate" && currentVideo && currentGraphic) {
94250
94425
  const { width: videoWidth, height: videoHeight } = currentVideo;
@@ -94269,18 +94444,18 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94269
94444
  yStr: void 0
94270
94445
  });
94271
94446
  }
94272
- }, className: "node-editor-select-input", children: [(0, import_jsx_runtime41.jsx)("option", { value: "px", children: "Pixels" }), (0, import_jsx_runtime41.jsx)("option", { value: "%", children: "Percentage" })] })] }), (0, import_jsx_runtime41.jsxs)("div", { className: "relative bg-gray-200 dark:bg-gray-700 rounded-lg", style: {
94447
+ }, className: "node-editor-select-input", children: [(0, import_jsx_runtime42.jsx)("option", { value: "px", children: "Pixels" }), (0, import_jsx_runtime42.jsx)("option", { value: "%", children: "Percentage" })] })] }), (0, import_jsx_runtime42.jsxs)("div", { className: "relative bg-gray-200 dark:bg-gray-700 rounded-lg", style: {
94273
94448
  width: "100%",
94274
94449
  userSelect: "none",
94275
94450
  aspectRatio: currentVideo ? `${currentVideo.width} / ${currentVideo.height}` : `3 / 2`
94276
- }, ref: previewAreaRef, children: [(0, import_jsx_runtime41.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-gray-500 dark:text-gray-400", children: [(0, import_jsx_runtime41.jsx)("span", { children: currentVideo ? "Video Preview Area" : "Video Dimensions Unknown" }), " ", currentVideo ? (0, import_jsx_runtime41.jsxs)("span", { children: [currentVideo.width, "x", currentVideo.height, "px"] }) : ""] }), (0, import_jsx_runtime41.jsx)("div", { className: `absolute cursor-move ${currentGraphic && !graphicChanged ? "" : "p-2"} rounded-lg bg-primary-500 bg-opacity-50 hover:bg-opacity-75 transition-colors
94451
+ }, ref: previewAreaRef, children: [(0, import_jsx_runtime42.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center text-gray-500 dark:text-gray-400", children: [(0, import_jsx_runtime42.jsx)("span", { children: currentVideo ? "Video Preview Area" : "Video Dimensions Unknown" }), " ", currentVideo ? (0, import_jsx_runtime42.jsxs)("span", { children: [currentVideo.width, "x", currentVideo.height, "px"] }) : ""] }), (0, import_jsx_runtime42.jsx)("div", { className: `absolute cursor-move ${currentGraphic && !graphicChanged ? "" : "p-2"} rounded-lg bg-primary-500 bg-opacity-50 hover:bg-opacity-75 transition-colors
94277
94452
  ${isDragging ? "bg-opacity-75" : ""}`, style: {
94278
94453
  left: `${position.xPct}%`,
94279
94454
  top: `${position.yPct}%`,
94280
94455
  transform: `translate(-${position.xPct}%, -${position.yPct}%)`,
94281
94456
  aspectRatio: currentGraphic && !graphicChanged ? `${currentGraphic.width} / ${currentGraphic.height}` : `1`,
94282
94457
  width: currentGraphic && currentVideo && !graphicChanged ? currentGraphic.width / currentVideo.width * 100 + "%" : void 0
94283
- }, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0, import_jsx_runtime41.jsx)("svg", { className: `${currentGraphic && !graphicChanged ? "w-full h-full" : "w-6 h-6"} text-white`, "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: (0, import_jsx_runtime41.jsx)("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 6v12m-6-6h12m-6-6 1.5 1.5M12 6l-1.5 1.5m1.5 10.5L10.5 16.5M12 18l1.5-1.5M6 12l1.5-1.5M7.5 13.5 6 12m12 0-1.5-1.5M16.5 13.5 18 12" }) }) })] }), (0, import_jsx_runtime41.jsxs)("div", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300 text-center", children: ["Position:", " ", position.type === "percentage" ? `${position.xPct.toFixed(1)}%, ${position.yPct.toFixed(1)}%` : `${Math.round(position.x)}px, ${Math.round(position.y)}px`] }), (0, import_jsx_runtime41.jsxs)("div", { className: "mt-2 flex gap-4", children: [(0, import_jsx_runtime41.jsxs)("div", { children: [(0, import_jsx_runtime41.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["X Position ", positionUnit] }), (0, import_jsx_runtime41.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.xStr ?? (positionUnit === "%" ? position.xPct.toFixed(1) : Math.round(position.x)), onChange: (e) => {
94458
+ }, onMouseDown: handleMouseDown, ref: previewTargetRef, children: (0, import_jsx_runtime42.jsx)("svg", { className: `${currentGraphic && !graphicChanged ? "w-full h-full" : "w-6 h-6"} text-white`, "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: (0, import_jsx_runtime42.jsx)("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M12 6v12m-6-6h12m-6-6 1.5 1.5M12 6l-1.5 1.5m1.5 10.5L10.5 16.5M12 18l1.5-1.5M6 12l1.5-1.5M7.5 13.5 6 12m12 0-1.5-1.5M16.5 13.5 18 12" }) }) })] }), (0, import_jsx_runtime42.jsxs)("div", { className: "mt-2 text-sm text-gray-600 dark:text-gray-300 text-center", children: ["Position:", " ", position.type === "percentage" ? `${position.xPct.toFixed(1)}%, ${position.yPct.toFixed(1)}%` : `${Math.round(position.x)}px, ${Math.round(position.y)}px`] }), (0, import_jsx_runtime42.jsxs)("div", { className: "mt-2 flex gap-4", children: [(0, import_jsx_runtime42.jsxs)("div", { children: [(0, import_jsx_runtime42.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["X Position ", positionUnit] }), (0, import_jsx_runtime42.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.xStr ?? (positionUnit === "%" ? position.xPct.toFixed(1) : Math.round(position.x)), onChange: (e) => {
94284
94459
  const newX = Number(e.target.value);
94285
94460
  setPosition(convertPos({
94286
94461
  type: positionUnit === "%" ? "percentage" : "coordinate",
@@ -94289,7 +94464,7 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94289
94464
  y: position.y,
94290
94465
  yStr: position.yStr
94291
94466
  }));
94292
- }, className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm dark:bg-gray-700 dark:border-gray-600" })] }), (0, import_jsx_runtime41.jsxs)("div", { children: [(0, import_jsx_runtime41.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["Y Position ", positionUnit] }), (0, import_jsx_runtime41.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.yStr ?? (positionUnit === "%" ? position.yPct.toFixed(1) : Math.round(position.y)), onChange: (e) => {
94467
+ }, className: "mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-primary-500 focus:ring-primary-500 sm:text-sm dark:bg-gray-700 dark:border-gray-600" })] }), (0, import_jsx_runtime42.jsxs)("div", { children: [(0, import_jsx_runtime42.jsxs)("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300", children: ["Y Position ", positionUnit] }), (0, import_jsx_runtime42.jsx)("input", { type: "number", step: positionUnit === "%" ? "0.1" : "1", value: position.yStr ?? (positionUnit === "%" ? position.yPct.toFixed(1) : Math.round(position.y)), onChange: (e) => {
94293
94468
  const newY = Number(e.target.value);
94294
94469
  setPosition(convertPos({
94295
94470
  type: positionUnit === "%" ? "percentage" : "coordinate",
@@ -94303,14 +94478,14 @@ var PositionSelector = ({ initialPosition: givenPosition = { type: "named", posi
94303
94478
  function clamp2(min2, num, max2) {
94304
94479
  return num < min2 ? min2 : num > max2 ? max2 : num;
94305
94480
  }
94306
- function assertUnreachable21(_) {
94481
+ function assertUnreachable22(_) {
94307
94482
  throw new Error("Didn't expect to get here");
94308
94483
  }
94309
94484
  var summary_view_default9 = SummaryView9;
94310
94485
 
94311
94486
  // build/processor.onscreenGraphic/info.js
94312
94487
  var import_FaImage2 = __toESM(require_FaImage());
94313
- function info_default32({ defineComponent }) {
94488
+ function info_default33({ defineComponent }) {
94314
94489
  return defineComponent({
94315
94490
  identifier: "processor.onscreenGraphic",
94316
94491
  category: "processor",
@@ -94349,7 +94524,7 @@ function info_default32({ defineComponent }) {
94349
94524
  case "graphic-loaded":
94350
94525
  return { ...state, currentGraphic: ev.currentGraphic };
94351
94526
  default:
94352
- assertUnreachable22(evType);
94527
+ assertUnreachable23(evType);
94353
94528
  }
94354
94529
  }
94355
94530
  },
@@ -94385,12 +94560,12 @@ function info_default32({ defineComponent }) {
94385
94560
  }
94386
94561
  });
94387
94562
  }
94388
- function assertUnreachable22(_) {
94563
+ function assertUnreachable23(_) {
94389
94564
  throw new Error("Didn't expect to get here");
94390
94565
  }
94391
94566
 
94392
94567
  // build/processor.smartSingleMediaSwitch/source-selection.js
94393
- var import_jsx_runtime42 = __toESM(require_jsx_runtime());
94568
+ var import_jsx_runtime43 = __toESM(require_jsx_runtime());
94394
94569
  var import_react12 = __toESM(require_react());
94395
94570
  function OrderInput(props) {
94396
94571
  const { onChanged } = props;
@@ -94399,10 +94574,10 @@ function OrderInput(props) {
94399
94574
  onChanged(value);
94400
94575
  }, [value, onChanged]);
94401
94576
  if (value.length == 0) {
94402
- return (0, import_jsx_runtime42.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
94577
+ return (0, import_jsx_runtime43.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
94403
94578
  } else {
94404
- return (0, import_jsx_runtime42.jsx)("div", { id: props.id, children: (0, import_jsx_runtime42.jsx)("ul", { children: value.map((v, ix) => {
94405
- return (0, import_jsx_runtime42.jsxs)("li", { className: "flex", children: [(0, import_jsx_runtime42.jsx)("span", { className: "node-editor-label flex-grow", children: v.displayName }), ix == 0 ? (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, {}) : (0, import_jsx_runtime42.jsx)("svg", { onClick: moveUp(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime42.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, {}) : (0, import_jsx_runtime42.jsx)("svg", { onClick: moveDown(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime42.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, ix);
94579
+ return (0, import_jsx_runtime43.jsx)("div", { id: props.id, children: (0, import_jsx_runtime43.jsx)("ul", { children: value.map((v, ix) => {
94580
+ return (0, import_jsx_runtime43.jsxs)("li", { className: "flex", children: [(0, import_jsx_runtime43.jsx)("span", { className: "node-editor-label flex-grow", children: v.displayName }), ix == 0 ? (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, {}) : (0, import_jsx_runtime43.jsx)("svg", { onClick: moveUp(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime43.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, {}) : (0, import_jsx_runtime43.jsx)("svg", { onClick: moveDown(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime43.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, ix);
94406
94581
  }) }) });
94407
94582
  }
94408
94583
  function moveUp(ix) {
@@ -94425,18 +94600,18 @@ function OrderInput(props) {
94425
94600
  var source_selection_default = OrderInput;
94426
94601
 
94427
94602
  // build/processor.smartSingleMediaSwitch/inline-view.js
94428
- var import_jsx_runtime43 = __toESM(require_jsx_runtime());
94603
+ var import_jsx_runtime44 = __toESM(require_jsx_runtime());
94429
94604
  var activeClasses = "active text-green-500 dark:text-green-300";
94430
94605
  var availableClasses = "available text-green-500 dark:text-green-300";
94431
94606
  var inactiveClasses = "inactive text-orange-500 dark:text-orange-300";
94432
- function InlineView16({ state, config }) {
94433
- return (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [(0, import_jsx_runtime43.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime43.jsxs)("ul", { children: [config.sources.map((s, i) => state.activeSource == i ? (0, import_jsx_runtime43.jsxs)("li", { className: activeClasses, children: [s.displayName, " <--"] }, i) : state.availableSources.includes(i) ? (0, import_jsx_runtime43.jsxs)("li", { className: availableClasses, children: [s.displayName, " (available)"] }, i) : (0, import_jsx_runtime43.jsxs)("li", { className: inactiveClasses, children: [s.displayName, " (inactive)"] }, i)), (0, import_jsx_runtime43.jsx)("li", { className: state.activeSource < 0 ? activeClasses : availableClasses, children: "fallback" }, "fallback")] })] });
94607
+ function InlineView17({ state, config }) {
94608
+ return (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [(0, import_jsx_runtime44.jsx)("h5", { children: "Sources" }), (0, import_jsx_runtime44.jsxs)("ul", { children: [config.sources.map((s, i) => state.activeSource == i ? (0, import_jsx_runtime44.jsxs)("li", { className: activeClasses, children: [s.displayName, " <--"] }, i) : state.availableSources.includes(i) ? (0, import_jsx_runtime44.jsxs)("li", { className: availableClasses, children: [s.displayName, " (available)"] }, i) : (0, import_jsx_runtime44.jsxs)("li", { className: inactiveClasses, children: [s.displayName, " (inactive)"] }, i)), (0, import_jsx_runtime44.jsx)("li", { className: state.activeSource < 0 ? activeClasses : availableClasses, children: "fallback" }, "fallback")] })] });
94434
94609
  }
94435
- var inline_view_default16 = InlineView16;
94610
+ var inline_view_default17 = InlineView17;
94436
94611
 
94437
94612
  // build/processor.smartSingleMediaSwitch/info.js
94438
94613
  var import_FaSlidersH = __toESM(require_FaSlidersH());
94439
- function info_default33({ defineComponent, All, common: { Resolutions, FrameRates }, streamMatchesFilter }) {
94614
+ function info_default34({ defineComponent, All, common: { Resolutions, FrameRates }, streamMatchesFilter }) {
94440
94615
  function patchConfigFromSubscription(cfg, sub) {
94441
94616
  const potentiallyNewSources = sub.expectedStreams;
94442
94617
  potentiallyNewSources.forEach((s) => {
@@ -94521,12 +94696,12 @@ function info_default33({ defineComponent, All, common: { Resolutions, FrameRate
94521
94696
  state.availableSources.splice(state.availableSources.indexOf(ev.sourceIndex), 1);
94522
94697
  return { ...state };
94523
94698
  default:
94524
- assertUnreachable23(evType);
94699
+ assertUnreachable24(evType);
94525
94700
  }
94526
94701
  },
94527
- inline: inline_view_default16,
94528
- summary: inline_view_default16,
94529
- fullscreen: inline_view_default16
94702
+ inline: inline_view_default17,
94703
+ summary: inline_view_default17,
94704
+ fullscreen: inline_view_default17
94530
94705
  },
94531
94706
  configForm: {
94532
94707
  form: {
@@ -94573,12 +94748,12 @@ function info_default33({ defineComponent, All, common: { Resolutions, FrameRate
94573
94748
  }
94574
94749
  });
94575
94750
  }
94576
- function assertUnreachable23(_) {
94751
+ function assertUnreachable24(_) {
94577
94752
  throw new Error("Didn't expect to get here");
94578
94753
  }
94579
94754
 
94580
94755
  // build/processor.smartSourceSwitch/source-selection.js
94581
- var import_jsx_runtime44 = __toESM(require_jsx_runtime());
94756
+ var import_jsx_runtime45 = __toESM(require_jsx_runtime());
94582
94757
  var import_react13 = __toESM(require_react());
94583
94758
  function OrderInput2(props) {
94584
94759
  const { onChanged } = props;
@@ -94587,10 +94762,10 @@ function OrderInput2(props) {
94587
94762
  onChanged(value);
94588
94763
  }, [value, onChanged]);
94589
94764
  if (value.length == 0) {
94590
- return (0, import_jsx_runtime44.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
94765
+ return (0, import_jsx_runtime45.jsx)("p", { className: "node-editor-helper-text", children: "Sources will appear here when subscriptions have been added to this node" });
94591
94766
  } else {
94592
- return (0, import_jsx_runtime44.jsx)("div", { id: props.id, children: (0, import_jsx_runtime44.jsx)("ul", { children: value.map((v, ix) => {
94593
- return (0, import_jsx_runtime44.jsxs)("li", { className: "flex", children: [(0, import_jsx_runtime44.jsx)("span", { className: "node-editor-label flex-grow", children: v }), ix == 0 ? (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, {}) : (0, import_jsx_runtime44.jsx)("svg", { onClick: moveUp(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime44.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, {}) : (0, import_jsx_runtime44.jsx)("svg", { onClick: moveDown(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime44.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, v);
94767
+ return (0, import_jsx_runtime45.jsx)("div", { id: props.id, children: (0, import_jsx_runtime45.jsx)("ul", { children: value.map((v, ix) => {
94768
+ return (0, import_jsx_runtime45.jsxs)("li", { className: "flex", children: [(0, import_jsx_runtime45.jsx)("span", { className: "node-editor-label flex-grow", children: v }), ix == 0 ? (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, {}) : (0, import_jsx_runtime45.jsx)("svg", { onClick: moveUp(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime45.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 6.75L12 3m0 0l3.75 3.75M12 3v18" }) }), ix == value.length - 1 ? (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, {}) : (0, import_jsx_runtime45.jsx)("svg", { onClick: moveDown(ix), xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, className: "w-4 h-6 shrink cursor-pointer stroke-gray-700 dark:stroke-gray-50", children: (0, import_jsx_runtime45.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 17.25L12 21m0 0l-3.75-3.75M12 21V3" }) })] }, v);
94594
94769
  }) }) });
94595
94770
  }
94596
94771
  function moveUp(ix) {
@@ -94613,35 +94788,35 @@ function OrderInput2(props) {
94613
94788
  var source_selection_default2 = OrderInput2;
94614
94789
 
94615
94790
  // build/processor.smartSourceSwitch/inline-view.js
94616
- var import_jsx_runtime45 = __toESM(require_jsx_runtime());
94617
- function cn(...classes) {
94791
+ var import_jsx_runtime46 = __toESM(require_jsx_runtime());
94792
+ function cn2(...classes) {
94618
94793
  return classes.filter(Boolean).join(" ");
94619
94794
  }
94620
- function InlineView17({ state, config }) {
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) => {
94795
+ function InlineView18({ state, config }) {
94796
+ return (0, import_jsx_runtime46.jsxs)(import_jsx_runtime46.Fragment, { children: [(0, import_jsx_runtime46.jsx)("h5", { className: "text-gray-900 dark:text-white font-medium", children: "Sources:" }), (0, import_jsx_runtime46.jsxs)("ul", { className: "space-y-2 mt-2", children: [config.sources.map((s, i) => {
94622
94797
  const isActive = state.activeSource === s;
94623
94798
  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")] })] });
94799
+ const indicatorClasses = cn2("w-3 h-3 rounded-full", isActive ? "bg-live" : isAvailable ? "bg-standby" : "bg-offline");
94800
+ return (0, import_jsx_runtime46.jsxs)("li", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime46.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime46.jsx)("div", { className: indicatorClasses }), isActive && (0, import_jsx_runtime46.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: (0, import_jsx_runtime46.jsx)("div", { className: "w-3 h-3 rounded-full bg-live animate-ping duration-150" }) })] }), (0, import_jsx_runtime46.jsx)("span", { className: "text-gray-900 dark:text-white", children: s })] }, i);
94801
+ }), (0, import_jsx_runtime46.jsxs)("li", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime46.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime46.jsx)("div", { className: cn2("w-3 h-3 rounded-full", state.activeSource === "fallback" ? "bg-live" : "bg-standby") }), state.activeSource === "fallback" && (0, import_jsx_runtime46.jsx)("div", { className: "absolute inset-0 flex items-center justify-center", children: (0, import_jsx_runtime46.jsx)("div", { className: "w-3 h-3 rounded-full bg-live animate-ping duration-150" }) })] }), (0, import_jsx_runtime46.jsx)("span", { className: "text-gray-900 dark:text-white", children: "fallback" })] }, "fallback")] })] });
94627
94802
  }
94628
- var inline_view_default17 = InlineView17;
94803
+ var inline_view_default18 = InlineView18;
94629
94804
 
94630
94805
  // build/processor.smartSourceSwitch/info.js
94631
94806
  var import_FaSlidersH2 = __toESM(require_FaSlidersH());
94632
94807
  var import_client_types4 = __toESM(require_client_types());
94633
94808
 
94634
94809
  // build/processor.smartSourceSwitch/form-views.js
94635
- var import_jsx_runtime46 = __toESM(require_jsx_runtime());
94810
+ var import_jsx_runtime47 = __toESM(require_jsx_runtime());
94636
94811
  function FallbackConfiguration(cfg) {
94637
94812
  if (cfg.kind === "file") {
94638
- return (0, import_jsx_runtime46.jsx)("div", { className: "text-sm", children: cfg.filePath || "No file specified" });
94813
+ return (0, import_jsx_runtime47.jsx)("div", { className: "text-sm", children: cfg.filePath || "No file specified" });
94639
94814
  }
94640
- return (0, import_jsx_runtime46.jsx)("div", { className: "text-sm", children: "Test Card" });
94815
+ return (0, import_jsx_runtime47.jsx)("div", { className: "text-sm", children: "Test Card" });
94641
94816
  }
94642
94817
 
94643
94818
  // build/processor.smartSourceSwitch/info.js
94644
- function info_default34({ defineComponent, Av, common: { Resolutions, FrameRates } }) {
94819
+ function info_default35({ defineComponent, Av, common: { Resolutions, FrameRates } }) {
94645
94820
  function patchConfigFromSubscription(cfg, sub) {
94646
94821
  const potentiallyNewSources = sub.expectedStreams.map((s) => s.sourceName).filter((s) => !!s);
94647
94822
  potentiallyNewSources.forEach((s) => {
@@ -94738,12 +94913,12 @@ function info_default34({ defineComponent, Av, common: { Resolutions, FrameRates
94738
94913
  state.availableSources.splice(state.availableSources.indexOf(ev.source), 1);
94739
94914
  return { ...state };
94740
94915
  default:
94741
- assertUnreachable24(evType);
94916
+ assertUnreachable25(evType);
94742
94917
  }
94743
94918
  },
94744
- inline: inline_view_default17,
94745
- summary: inline_view_default17,
94746
- fullscreen: inline_view_default17
94919
+ inline: inline_view_default18,
94920
+ summary: inline_view_default18,
94921
+ fullscreen: inline_view_default18
94747
94922
  },
94748
94923
  configForm: {
94749
94924
  form: {
@@ -94818,13 +94993,13 @@ function info_default34({ defineComponent, Av, common: { Resolutions, FrameRates
94818
94993
  }
94819
94994
  });
94820
94995
  }
94821
- function assertUnreachable24(_) {
94996
+ function assertUnreachable25(_) {
94822
94997
  throw new Error("Didn't expect to get here");
94823
94998
  }
94824
94999
 
94825
95000
  // build/processor.streamKeyOverride/info.js
94826
95001
  var import_FaKey = __toESM(require_FaKey());
94827
- function info_default35({ defineComponent, All, validation: { Z } }) {
95002
+ function info_default36({ defineComponent, All, validation: { Z } }) {
94828
95003
  return defineComponent({
94829
95004
  identifier: "processor.streamKeyOverride",
94830
95005
  category: "processor",
@@ -94920,20 +95095,20 @@ function info_default35({ defineComponent, All, validation: { Z } }) {
94920
95095
  var import_config8 = __toESM(require_config());
94921
95096
 
94922
95097
  // build/processor.syncExternalAudio/inline-view.js
94923
- var import_jsx_runtime47 = __toESM(require_jsx_runtime());
95098
+ var import_jsx_runtime48 = __toESM(require_jsx_runtime());
94924
95099
  var import_react14 = __toESM(require_react());
94925
- function InlineView18({ state, raise }) {
95100
+ function InlineView19({ state, raise }) {
94926
95101
  (0, import_react14.useEffect)(() => {
94927
95102
  if (raise) {
94928
95103
  raise();
94929
95104
  }
94930
95105
  }, [raise]);
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)"] })] }) }) });
95106
+ return (0, import_jsx_runtime48.jsx)("div", { className: "processor-syncExternalAudio", children: (0, import_jsx_runtime48.jsx)("div", { className: "sync-status-inline", children: (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center space-x-2", 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" }), state.currentSyncMs !== void 0 && (0, import_jsx_runtime48.jsxs)("span", { className: "text-xs text-gray-500", children: ["(", state.currentSyncMs, "ms)"] })] }) }) });
94932
95107
  }
94933
- var inline_view_default18 = InlineView18;
95108
+ var inline_view_default19 = InlineView19;
94934
95109
 
94935
95110
  // build/processor.syncExternalAudio/fullscreen-view.js
94936
- var import_jsx_runtime48 = __toESM(require_jsx_runtime());
95111
+ var import_jsx_runtime49 = __toESM(require_jsx_runtime());
94937
95112
  var import_react15 = __toESM(require_react());
94938
95113
  var CommentaryWhepClient = class extends NorskWhepClient {
94939
95114
  audio;
@@ -95122,11 +95297,11 @@ function SyncExternalAudioFullscreenView({ state, config, sendCommand }) {
95122
95297
  setAudioStarted(true);
95123
95298
  }
95124
95299
  };
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" })] }) })] })] })] })] });
95300
+ return (0, import_jsx_runtime49.jsxs)("div", { className: "w-full h-full flex flex-col bg-gray-900 text-white", children: [(0, import_jsx_runtime49.jsxs)("div", { className: "flex justify-between items-center p-4 bg-gray-800 border-b border-gray-700", children: [(0, import_jsx_runtime49.jsxs)("h1", { className: "text-xl font-semibold", children: ["Sync External Audio - ", config.displayName] }), (0, import_jsx_runtime49.jsx)("div", { className: "flex items-center space-x-4", children: (0, import_jsx_runtime49.jsxs)("div", { className: `flex items-center space-x-2 ${state.isConnected ? "text-green-400" : "text-red-400"}`, children: [(0, import_jsx_runtime49.jsx)("div", { className: `w-2 h-2 rounded-full ${state.isConnected ? "bg-green-400" : "bg-red-400"}` }), (0, import_jsx_runtime49.jsx)("span", { className: "text-sm", children: state.isConnected ? "Connected" : "Disconnected" })] }) })] }), (0, import_jsx_runtime49.jsxs)("div", { className: "flex-1 flex", children: [(0, import_jsx_runtime49.jsx)("div", { className: "flex-1 flex flex-col", children: (0, import_jsx_runtime49.jsx)("div", { className: "flex-1 bg-black flex items-center justify-center", children: state.primaryWhepUrl && state.commentaryWhepUrl ? (0, import_jsx_runtime49.jsx)("div", { ref: videoContainerRef, className: "max-w-full max-h-full" }) : (0, import_jsx_runtime49.jsxs)("div", { className: "text-gray-500 text-center", children: [(0, import_jsx_runtime49.jsx)("div", { className: "text-6xl mb-4", children: "\u{1F4FA}" }), (0, import_jsx_runtime49.jsx)("div", { children: "Waiting for video preview..." }), state.primaryWhepUrl && !state.commentaryWhepUrl && (0, import_jsx_runtime49.jsx)("div", { className: "text-sm mt-2", children: "Primary stream ready, waiting for commentary..." }), !state.primaryWhepUrl && state.commentaryWhepUrl && (0, import_jsx_runtime49.jsx)("div", { className: "text-sm mt-2", children: "Commentary stream ready, waiting for primary..." })] }) }) }), (0, import_jsx_runtime49.jsxs)("div", { className: "w-80 bg-gray-800 border-l border-gray-700 flex flex-col", children: [(0, import_jsx_runtime49.jsxs)("div", { className: "p-4 border-b border-gray-700", children: [(0, import_jsx_runtime49.jsx)("h3", { className: "text-lg font-medium mb-4", children: "Commentary Sync Control" }), (0, import_jsx_runtime49.jsxs)("div", { className: "mb-4 p-3 bg-gray-700 rounded-lg text-center", children: [(0, import_jsx_runtime49.jsx)("div", { className: "text-sm text-gray-300", children: "Current Offset" }), (0, import_jsx_runtime49.jsxs)("div", { className: "text-2xl font-mono", children: [state.currentSyncMs, "ms"] })] }), (0, import_jsx_runtime49.jsxs)("div", { className: "mb-4", children: [(0, import_jsx_runtime49.jsx)("div", { className: "text-sm text-gray-300 mb-2", children: "Fine Adjustment (\xB1200ms)" }), (0, import_jsx_runtime49.jsxs)("div", { className: "flex space-x-2", children: [(0, import_jsx_runtime49.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_runtime49.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_runtime49.jsxs)("div", { className: "mb-4", children: [(0, import_jsx_runtime49.jsx)("div", { className: "text-sm text-gray-300 mb-2", children: "Coarse Adjustment" }), (0, import_jsx_runtime49.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [(0, import_jsx_runtime49.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_runtime49.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_runtime49.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_runtime49.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_runtime49.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_runtime49.jsxs)("div", { className: "p-4 flex-1", children: [(0, import_jsx_runtime49.jsx)("h3", { className: "text-lg font-medium mb-4", children: "Audio Monitor Controls" }), !audioStarted && isReady && (0, import_jsx_runtime49.jsxs)("div", { className: "mb-6 p-4 bg-yellow-900 border border-yellow-600 rounded-lg", children: [(0, import_jsx_runtime49.jsx)("div", { className: "text-sm text-yellow-200 mb-2", children: "Click to enable commentary audio (required by browser policy):" }), (0, import_jsx_runtime49.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_runtime49.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [(0, import_jsx_runtime49.jsx)("span", { className: "text-sm font-medium", children: "Primary Audio" }), (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center space-x-2", children: [isReady ? (0, import_jsx_runtime49.jsx)("span", { className: "text-xs text-green-400", children: "\u2713 Ready" }) : (0, import_jsx_runtime49.jsx)("span", { className: "text-xs text-yellow-400", children: "\u23F3 Loading" }), (0, import_jsx_runtime49.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_runtime49.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_runtime49.jsxs)("div", { className: "text-xs text-gray-400 mt-1", children: [primaryVolume, "%"] })] }), (0, import_jsx_runtime49.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [(0, import_jsx_runtime49.jsx)("span", { className: "text-sm font-medium", children: "Commentary Audio" }), (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center space-x-2", children: [isReady ? (0, import_jsx_runtime49.jsx)("span", { className: "text-xs text-green-400", children: "\u2713 Ready" }) : (0, import_jsx_runtime49.jsx)("span", { className: "text-xs text-yellow-400", children: "\u23F3 Loading" }), (0, import_jsx_runtime49.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_runtime49.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_runtime49.jsxs)("div", { className: "text-xs text-gray-400 mt-1", children: [commentaryVolume, "%"] })] }), (0, import_jsx_runtime49.jsx)("div", { className: "mt-auto pt-4 border-t border-gray-700", children: (0, import_jsx_runtime49.jsxs)("div", { className: "text-xs text-gray-400 space-y-1", children: [(0, import_jsx_runtime49.jsxs)("div", { children: ["Primary Delay: ", config.delayMs, "ms"] }), (0, import_jsx_runtime49.jsxs)("div", { children: ["Primary WHEP: ", state.primaryWhepUrl ? "\u2713 Available" : "\u2717 Not ready"] }), (0, import_jsx_runtime49.jsxs)("div", { children: ["Commentary WHEP: ", state.commentaryWhepUrl ? "\u2713 Available" : "\u2717 Not ready"] }), (0, import_jsx_runtime49.jsxs)("div", { children: ["Dual Streams: ", isReady ? "\u2713 Connected" : "\u23F3 Connecting"] }), (0, import_jsx_runtime49.jsxs)("div", { children: ["Audio Started: ", audioStarted ? "\u2713 Yes" : "\u2717 No"] }), isReady && (0, import_jsx_runtime49.jsx)("div", { className: "text-green-400", children: "\u2713 Dual WHEP ready" }), isReady && (0, import_jsx_runtime49.jsx)("div", { className: "text-xs text-gray-500 mt-1", children: "Check browser console for audio debug logs" })] }) })] })] })] })] });
95126
95301
  }
95127
95302
 
95128
95303
  // build/processor.syncExternalAudio/info.js
95129
- function info_default36(R) {
95304
+ function info_default37(R) {
95130
95305
  const { defineComponent, validation: { Z } } = R;
95131
95306
  return defineComponent({
95132
95307
  identifier: "processor.syncExternalAudio",
@@ -95231,14 +95406,14 @@ function info_default36(R) {
95231
95406
  }
95232
95407
  },
95233
95408
  fullscreen: SyncExternalAudioFullscreenView,
95234
- inline: inline_view_default18
95409
+ inline: inline_view_default19
95235
95410
  }
95236
95411
  });
95237
95412
  }
95238
95413
 
95239
95414
  // build/processor.videoDecoder/info.js
95240
95415
  var import_FaFileVideo = __toESM(require_FaFileVideo());
95241
- function info_default37({ defineComponent }) {
95416
+ function info_default38({ defineComponent }) {
95242
95417
  return defineComponent({
95243
95418
  identifier: "processor.videoDecoder",
95244
95419
  category: "processor",
@@ -95291,7 +95466,7 @@ var import_config9 = __toESM(require_config());
95291
95466
  var import_util10 = __toESM(require_util());
95292
95467
 
95293
95468
  // build/processor.webRtcDuplex/fullscreen.js
95294
- var import_jsx_runtime49 = __toESM(require_jsx_runtime());
95469
+ var import_jsx_runtime50 = __toESM(require_jsx_runtime());
95295
95470
  var import_react16 = __toESM(require_react());
95296
95471
  var import_webrtc_client2 = __toESM(require_webrtc_client());
95297
95472
  var DuplexWhepClient = class extends NorskWhepClient {
@@ -95364,11 +95539,11 @@ function FullscreenView2({ state, config }) {
95364
95539
  }
95365
95540
  }
95366
95541
  }, [state.publishUrl, state.outputUrl, container, button, client, sender, config, state.videoAvailable]);
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" })] });
95542
+ return (0, import_jsx_runtime50.jsxs)("div", { children: [(0, import_jsx_runtime50.jsx)("div", { id: "buttons", children: (0, import_jsx_runtime50.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_runtime50.jsx)("div", { id: "error" }), (0, import_jsx_runtime50.jsx)("div", { id: "container", ref: container, className: "p-4 absolute h-full w-full" })] });
95368
95543
  }
95369
95544
 
95370
95545
  // build/processor.webRtcDuplex/info.js
95371
- function info_default38(R) {
95546
+ function info_default39(R) {
95372
95547
  const { defineComponent } = R;
95373
95548
  return defineComponent({
95374
95549
  identifier: "processor.webrtcDuplex",
@@ -95447,7 +95622,7 @@ function info_default38(R) {
95447
95622
 
95448
95623
  // build/processor.zoomTo/info.js
95449
95624
  var import_config10 = __toESM(require_config());
95450
- function info_default39({ defineComponent, validation: { Z } }) {
95625
+ function info_default40({ defineComponent, validation: { Z } }) {
95451
95626
  return defineComponent({
95452
95627
  identifier: "processor.zoomTo",
95453
95628
  name: "Zoom To",
@@ -95524,7 +95699,7 @@ function info_default39({ defineComponent, validation: { Z } }) {
95524
95699
  inputVideoAspectRatio: ev.inputVideoAspectRatio
95525
95700
  };
95526
95701
  default:
95527
- assertUnreachable26(evType);
95702
+ assertUnreachable27(evType);
95528
95703
  }
95529
95704
  }
95530
95705
  },
@@ -95613,12 +95788,12 @@ function info_default39({ defineComponent, validation: { Z } }) {
95613
95788
  }
95614
95789
  });
95615
95790
  }
95616
- function assertUnreachable26(_) {
95791
+ function assertUnreachable27(_) {
95617
95792
  throw new Error("Didn't expect to get here");
95618
95793
  }
95619
95794
 
95620
95795
  // build/util.stats.latency/inline-view.js
95621
- var import_jsx_runtime50 = __toESM(require_jsx_runtime());
95796
+ var import_jsx_runtime51 = __toESM(require_jsx_runtime());
95622
95797
  var import_react17 = __toESM(require_react());
95623
95798
 
95624
95799
  // ../../node_modules/chart.js/auto/auto.js
@@ -95626,7 +95801,7 @@ Chart.register(...registerables);
95626
95801
  var auto_default = Chart;
95627
95802
 
95628
95803
  // build/util.stats.latency/inline-view.js
95629
- function InlineView19({ state, config: _2 }) {
95804
+ function InlineView20({ state, config: _2 }) {
95630
95805
  const chartContainer = (0, import_react17.useRef)(null);
95631
95806
  const [chartControl, setChartControl] = (0, import_react17.useState)(void 0);
95632
95807
  function makeDataSet(key, color2, values) {
@@ -95688,19 +95863,19 @@ function InlineView19({ state, config: _2 }) {
95688
95863
  return;
95689
95864
  chartControl.data = makeData(state);
95690
95865
  }, [chartControl, makeData, state]);
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 }) });
95866
+ return (0, import_jsx_runtime51.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime51.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) });
95692
95867
  }
95693
- var inline_view_default19 = InlineView19;
95868
+ var inline_view_default20 = InlineView20;
95694
95869
 
95695
95870
  // build/util.stats.latency/source-node-selection.js
95696
- var import_jsx_runtime51 = __toESM(require_jsx_runtime());
95871
+ var import_jsx_runtime52 = __toESM(require_jsx_runtime());
95697
95872
  function SourceNodeSelection(props) {
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) => {
95873
+ return (0, import_jsx_runtime52.jsx)("div", { children: (0, import_jsx_runtime52.jsxs)("select", { defaultValue: props.defaultValue, className: `node-editor-select-input`, id: props.id, onChange: myOnChange, onBlur: myOnChange, children: [(0, import_jsx_runtime52.jsx)("option", { value: "", children: "---" }, "empty"), Object.values(props.latestDocument.components).map((o, i) => {
95699
95874
  if (o.id == props.id)
95700
- return (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, {});
95875
+ return (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, {});
95701
95876
  if (o.info.category === "output")
95702
95877
  return;
95703
- return (0, import_jsx_runtime51.jsx)("option", { value: o.id, children: o.config.displayName }, i);
95878
+ return (0, import_jsx_runtime52.jsx)("option", { value: o.id, children: o.config.displayName }, i);
95704
95879
  })] }) });
95705
95880
  function myOnChange(e) {
95706
95881
  props.onChanged(e.target.value);
@@ -95710,7 +95885,7 @@ var source_node_selection_default = SourceNodeSelection;
95710
95885
 
95711
95886
  // build/util.stats.latency/info.js
95712
95887
  var import_FaClock = __toESM(require_FaClock());
95713
- function info_default40(R) {
95888
+ function info_default41(R) {
95714
95889
  const { defineComponent } = R;
95715
95890
  return defineComponent({
95716
95891
  identifier: "util.stats.latency",
@@ -95740,11 +95915,11 @@ function info_default40(R) {
95740
95915
  break;
95741
95916
  }
95742
95917
  default:
95743
- assertUnreachable27(evType);
95918
+ assertUnreachable28(evType);
95744
95919
  }
95745
95920
  return { ...state };
95746
95921
  },
95747
- inline: inline_view_default19
95922
+ inline: inline_view_default20
95748
95923
  },
95749
95924
  configForm: {
95750
95925
  form: {
@@ -95795,7 +95970,7 @@ function info_default40(R) {
95795
95970
  }
95796
95971
  });
95797
95972
  }
95798
- function assertUnreachable27(_) {
95973
+ function assertUnreachable28(_) {
95799
95974
  throw new Error("Didn't expect to get here");
95800
95975
  }
95801
95976
 
@@ -95824,11 +95999,11 @@ AllComponents.push((r) => info_default8(r));
95824
95999
  AllComponents.push((r) => info_default9(r));
95825
96000
  AllComponents.push((r) => info_default10(r));
95826
96001
  AllComponents.push((r) => info_default11(r));
95827
- AllComponents.push((r) => info_default13(r));
96002
+ AllComponents.push((r) => info_default12(r));
95828
96003
  AllComponents.push((r) => info_default14(r));
95829
96004
  AllComponents.push((r) => info_default15(r));
95830
- AllComponents.push((r) => info_default12(r));
95831
96005
  AllComponents.push((r) => info_default16(r));
96006
+ AllComponents.push((r) => info_default13(r));
95832
96007
  AllComponents.push((r) => info_default17(r));
95833
96008
  AllComponents.push((r) => info_default18(r));
95834
96009
  AllComponents.push((r) => info_default19(r));
@@ -95853,6 +96028,7 @@ AllComponents.push((r) => info_default37(r));
95853
96028
  AllComponents.push((r) => info_default38(r));
95854
96029
  AllComponents.push((r) => info_default39(r));
95855
96030
  AllComponents.push((r) => info_default40(r));
96031
+ AllComponents.push((r) => info_default41(r));
95856
96032
  export {
95857
96033
  getNodeInfo as default
95858
96034
  };