@norskvideo/norsk-studio-alpha 1.27.0-2026-01-08-2828c8f7 → 1.27.0-2026-01-10-23683704

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/client/info.js +304 -221
  2. package/client/style.css +51 -0
  3. package/lib/output.fileMp4/_gen/types.d.ts +1 -0
  4. package/lib/output.fileMp4/_gen/zod.js +3 -0
  5. package/lib/output.fileMp4/_gen/zod.js.map +1 -1
  6. package/lib/output.fileMp4/info.d.ts +5 -4
  7. package/lib/output.fileMp4/info.js +20 -9
  8. package/lib/output.fileMp4/info.js.map +1 -1
  9. package/lib/output.fileMp4/runtime.js +24 -6
  10. package/lib/output.fileMp4/runtime.js.map +1 -1
  11. package/lib/output.fileMp4/types.yaml +6 -0
  12. package/lib/output.tams/info.js +2 -0
  13. package/lib/output.tams/info.js.map +1 -1
  14. package/lib/output.tams/inline-view.js +5 -5
  15. package/lib/output.tams/inline-view.js.map +1 -1
  16. package/lib/output.tams/runtime.d.ts +2 -0
  17. package/lib/output.tams/runtime.js +9 -3
  18. package/lib/output.tams/runtime.js.map +1 -1
  19. package/lib/processor.hardSourceSwitch/_gen/types.d.ts +9 -0
  20. package/lib/processor.hardSourceSwitch/_gen/zod.js +12 -3
  21. package/lib/processor.hardSourceSwitch/_gen/zod.js.map +1 -1
  22. package/lib/processor.hardSourceSwitch/fullscreen.js +18 -1
  23. package/lib/processor.hardSourceSwitch/fullscreen.js.map +1 -1
  24. package/lib/processor.hardSourceSwitch/info.d.ts +9 -0
  25. package/lib/processor.hardSourceSwitch/info.js +23 -2
  26. package/lib/processor.hardSourceSwitch/info.js.map +1 -1
  27. package/lib/processor.hardSourceSwitch/inline-view.d.ts +1 -1
  28. package/lib/processor.hardSourceSwitch/inline-view.js +12 -2
  29. package/lib/processor.hardSourceSwitch/inline-view.js.map +1 -1
  30. package/lib/processor.hardSourceSwitch/runtime.d.ts +5 -1
  31. package/lib/processor.hardSourceSwitch/runtime.js +133 -15
  32. package/lib/processor.hardSourceSwitch/runtime.js.map +1 -1
  33. package/lib/processor.hardSourceSwitch/types.yaml +41 -0
  34. package/lib/test/output.fileMp4.d.ts +1 -0
  35. package/lib/test/output.fileMp4.js +104 -0
  36. package/lib/test/output.fileMp4.js.map +1 -0
  37. package/package.json +4 -4
package/client/info.js CHANGED
@@ -41393,13 +41393,13 @@ var require_dist3 = __commonJS({
41393
41393
  });
41394
41394
  module.exports = __toCommonJS2(index_exports);
41395
41395
  var React3 = __toESM2(require_react());
41396
- var import_jsx_runtime15 = require_jsx_runtime();
41396
+ var import_jsx_runtime14 = require_jsx_runtime();
41397
41397
  function createContext2(rootComponentName, defaultContext) {
41398
41398
  const Context = React3.createContext(defaultContext);
41399
41399
  const Provider = (props) => {
41400
41400
  const { children, ...context } = props;
41401
41401
  const value = React3.useMemo(() => context, Object.values(context));
41402
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Context.Provider, { value, children });
41402
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Context.Provider, { value, children });
41403
41403
  };
41404
41404
  Provider.displayName = rootComponentName + "Provider";
41405
41405
  function useContext2(consumerName) {
@@ -41420,7 +41420,7 @@ var require_dist3 = __commonJS({
41420
41420
  const { scope, children, ...context } = props;
41421
41421
  const Context = scope?.[scopeName]?.[index3] || BaseContext;
41422
41422
  const value = React3.useMemo(() => context, Object.values(context));
41423
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Context.Provider, { value, children });
41423
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Context.Provider, { value, children });
41424
41424
  };
41425
41425
  Provider.displayName = rootComponentName + "Provider";
41426
41426
  function useContext2(consumerName, scope) {
@@ -41587,7 +41587,7 @@ var require_dist5 = __commonJS({
41587
41587
  module.exports = __toCommonJS2(index_exports);
41588
41588
  var React3 = __toESM2(require_react());
41589
41589
  var import_react_compose_refs = require_dist4();
41590
- var import_jsx_runtime15 = require_jsx_runtime();
41590
+ var import_jsx_runtime14 = require_jsx_runtime();
41591
41591
  // @__NO_SIDE_EFFECTS__
41592
41592
  function createSlot(ownerName) {
41593
41593
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -41605,9 +41605,9 @@ var require_dist5 = __commonJS({
41605
41605
  return child;
41606
41606
  }
41607
41607
  });
41608
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
41608
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
41609
41609
  }
41610
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
41610
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
41611
41611
  });
41612
41612
  Slot2.displayName = `${ownerName}.Slot`;
41613
41613
  return Slot2;
@@ -41634,7 +41634,7 @@ var require_dist5 = __commonJS({
41634
41634
  // @__NO_SIDE_EFFECTS__
41635
41635
  function createSlottable(ownerName) {
41636
41636
  const Slottable2 = ({ children }) => {
41637
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
41637
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
41638
41638
  };
41639
41639
  Slottable2.displayName = `${ownerName}.Slottable`;
41640
41640
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -41726,7 +41726,7 @@ var require_dist6 = __commonJS({
41726
41726
  var import_react_context = require_dist3();
41727
41727
  var import_react_compose_refs = require_dist4();
41728
41728
  var import_react_slot = require_dist5();
41729
- var import_jsx_runtime15 = require_jsx_runtime();
41729
+ var import_jsx_runtime14 = require_jsx_runtime();
41730
41730
  function createCollection(name) {
41731
41731
  const PROVIDER_NAME = name + "CollectionProvider";
41732
41732
  const [createCollectionContext, createCollectionScope] = (0, import_react_context.createContextScope)(PROVIDER_NAME);
@@ -41738,7 +41738,7 @@ var require_dist6 = __commonJS({
41738
41738
  const { scope, children } = props;
41739
41739
  const ref = import_react12.default.useRef(null);
41740
41740
  const itemMap = import_react12.default.useRef(/* @__PURE__ */ new Map()).current;
41741
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
41741
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
41742
41742
  };
41743
41743
  CollectionProvider.displayName = PROVIDER_NAME;
41744
41744
  const COLLECTION_SLOT_NAME = name + "CollectionSlot";
@@ -41748,7 +41748,7 @@ var require_dist6 = __commonJS({
41748
41748
  const { scope, children } = props;
41749
41749
  const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
41750
41750
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.collectionRef);
41751
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CollectionSlotImpl, { ref: composedRefs, children });
41751
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CollectionSlotImpl, { ref: composedRefs, children });
41752
41752
  }
41753
41753
  );
41754
41754
  CollectionSlot.displayName = COLLECTION_SLOT_NAME;
@@ -41765,7 +41765,7 @@ var require_dist6 = __commonJS({
41765
41765
  context.itemMap.set(ref, { ref, ...itemData });
41766
41766
  return () => void context.itemMap.delete(ref);
41767
41767
  });
41768
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
41768
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
41769
41769
  }
41770
41770
  );
41771
41771
  CollectionItemSlot.displayName = ITEM_SLOT_NAME;
@@ -42295,11 +42295,11 @@ var require_dist7 = __commonJS({
42295
42295
  });
42296
42296
  module.exports = __toCommonJS2(index_exports);
42297
42297
  var React3 = __toESM2(require_react());
42298
- var import_jsx_runtime15 = require_jsx_runtime();
42298
+ var import_jsx_runtime14 = require_jsx_runtime();
42299
42299
  var DirectionContext = React3.createContext(void 0);
42300
42300
  var DirectionProvider = (props) => {
42301
42301
  const { dir, children } = props;
42302
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DirectionContext.Provider, { value: dir, children });
42302
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DirectionContext.Provider, { value: dir, children });
42303
42303
  };
42304
42304
  function useDirection(localDir) {
42305
42305
  const globalDir = React3.useContext(DirectionContext);
@@ -42351,7 +42351,7 @@ var require_dist8 = __commonJS({
42351
42351
  module.exports = __toCommonJS2(index_exports);
42352
42352
  var React3 = __toESM2(require_react());
42353
42353
  var import_react_compose_refs = require_dist4();
42354
- var import_jsx_runtime15 = require_jsx_runtime();
42354
+ var import_jsx_runtime14 = require_jsx_runtime();
42355
42355
  // @__NO_SIDE_EFFECTS__
42356
42356
  function createSlot(ownerName) {
42357
42357
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -42369,9 +42369,9 @@ var require_dist8 = __commonJS({
42369
42369
  return child;
42370
42370
  }
42371
42371
  });
42372
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
42372
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
42373
42373
  }
42374
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
42374
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
42375
42375
  });
42376
42376
  Slot2.displayName = `${ownerName}.Slot`;
42377
42377
  return Slot2;
@@ -42398,7 +42398,7 @@ var require_dist8 = __commonJS({
42398
42398
  // @__NO_SIDE_EFFECTS__
42399
42399
  function createSlottable(ownerName) {
42400
42400
  const Slottable2 = ({ children }) => {
42401
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
42401
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
42402
42402
  };
42403
42403
  Slottable2.displayName = `${ownerName}.Slottable`;
42404
42404
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -42489,7 +42489,7 @@ var require_dist9 = __commonJS({
42489
42489
  var React3 = __toESM2(require_react());
42490
42490
  var ReactDOM2 = __toESM2(require_react_dom());
42491
42491
  var import_react_slot = require_dist8();
42492
- var import_jsx_runtime15 = require_jsx_runtime();
42492
+ var import_jsx_runtime14 = require_jsx_runtime();
42493
42493
  var NODES = [
42494
42494
  "a",
42495
42495
  "button",
@@ -42517,7 +42517,7 @@ var require_dist9 = __commonJS({
42517
42517
  if (typeof window !== "undefined") {
42518
42518
  window[Symbol.for("radix-ui")] = true;
42519
42519
  }
42520
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
42520
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
42521
42521
  });
42522
42522
  Node2.displayName = `Primitive.${node}`;
42523
42523
  return { ...primitive, [node]: Node2 };
@@ -42675,7 +42675,7 @@ var require_dist12 = __commonJS({
42675
42675
  var import_react_compose_refs = require_dist4();
42676
42676
  var import_react_use_callback_ref = require_dist10();
42677
42677
  var import_react_use_escape_keydown = require_dist11();
42678
- var import_jsx_runtime15 = require_jsx_runtime();
42678
+ var import_jsx_runtime14 = require_jsx_runtime();
42679
42679
  var DISMISSABLE_LAYER_NAME = "DismissableLayer";
42680
42680
  var CONTEXT_UPDATE = "dismissableLayer.update";
42681
42681
  var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
@@ -42763,7 +42763,7 @@ var require_dist12 = __commonJS({
42763
42763
  document.addEventListener(CONTEXT_UPDATE, handleUpdate);
42764
42764
  return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
42765
42765
  }, []);
42766
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
42766
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
42767
42767
  import_react_primitive.Primitive.div,
42768
42768
  {
42769
42769
  ...layerProps,
@@ -42797,7 +42797,7 @@ var require_dist12 = __commonJS({
42797
42797
  };
42798
42798
  }
42799
42799
  }, [context.branches]);
42800
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
42800
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { ...props, ref: composedRefs });
42801
42801
  });
42802
42802
  DismissableLayerBranch.displayName = BRANCH_NAME;
42803
42803
  function usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {
@@ -42997,7 +42997,7 @@ var require_dist14 = __commonJS({
42997
42997
  var import_react_compose_refs = require_dist4();
42998
42998
  var import_react_primitive = require_dist9();
42999
42999
  var import_react_use_callback_ref = require_dist10();
43000
- var import_jsx_runtime15 = require_jsx_runtime();
43000
+ var import_jsx_runtime14 = require_jsx_runtime();
43001
43001
  var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
43002
43002
  var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
43003
43003
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
@@ -43116,7 +43116,7 @@ var require_dist14 = __commonJS({
43116
43116
  },
43117
43117
  [loop, trapped, focusScope.paused]
43118
43118
  );
43119
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
43119
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });
43120
43120
  });
43121
43121
  FocusScope.displayName = FOCUS_SCOPE_NAME;
43122
43122
  function focusFirst(candidates, { select = false } = {}) {
@@ -45501,11 +45501,11 @@ var require_dist17 = __commonJS({
45501
45501
  module.exports = __toCommonJS2(index_exports);
45502
45502
  var React3 = __toESM2(require_react());
45503
45503
  var import_react_primitive = require_dist9();
45504
- var import_jsx_runtime15 = require_jsx_runtime();
45504
+ var import_jsx_runtime14 = require_jsx_runtime();
45505
45505
  var NAME = "Arrow";
45506
45506
  var Arrow = React3.forwardRef((props, forwardedRef) => {
45507
45507
  const { children, width = 10, height = 5, ...arrowProps } = props;
45508
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
45508
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
45509
45509
  import_react_primitive.Primitive.svg,
45510
45510
  {
45511
45511
  ...arrowProps,
@@ -45514,7 +45514,7 @@ var require_dist17 = __commonJS({
45514
45514
  height,
45515
45515
  viewBox: "0 0 30 10",
45516
45516
  preserveAspectRatio: "none",
45517
- children: props.asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("polygon", { points: "0,0 30,0 15,10" })
45517
+ children: props.asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("polygon", { points: "0,0 30,0 15,10" })
45518
45518
  }
45519
45519
  );
45520
45520
  });
@@ -45654,7 +45654,7 @@ var require_dist19 = __commonJS({
45654
45654
  var import_react_use_callback_ref = require_dist10();
45655
45655
  var import_react_use_layout_effect = require_dist15();
45656
45656
  var import_react_use_size = require_dist18();
45657
- var import_jsx_runtime15 = require_jsx_runtime();
45657
+ var import_jsx_runtime14 = require_jsx_runtime();
45658
45658
  var SIDE_OPTIONS = ["top", "right", "bottom", "left"];
45659
45659
  var ALIGN_OPTIONS = ["start", "center", "end"];
45660
45660
  var POPPER_NAME = "Popper";
@@ -45663,7 +45663,7 @@ var require_dist19 = __commonJS({
45663
45663
  var Popper = (props) => {
45664
45664
  const { __scopePopper, children } = props;
45665
45665
  const [anchor, setAnchor] = React3.useState(null);
45666
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
45666
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
45667
45667
  };
45668
45668
  Popper.displayName = POPPER_NAME;
45669
45669
  var ANCHOR_NAME = "PopperAnchor";
@@ -45681,7 +45681,7 @@ var require_dist19 = __commonJS({
45681
45681
  context.onAnchorChange(anchorRef.current);
45682
45682
  }
45683
45683
  });
45684
- return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
45684
+ return virtualRef ? null : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { ...anchorProps, ref: composedRefs });
45685
45685
  }
45686
45686
  );
45687
45687
  PopperAnchor.displayName = ANCHOR_NAME;
@@ -45774,7 +45774,7 @@ var require_dist19 = __commonJS({
45774
45774
  (0, import_react_use_layout_effect.useLayoutEffect)(() => {
45775
45775
  if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
45776
45776
  }, [content]);
45777
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
45777
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
45778
45778
  "div",
45779
45779
  {
45780
45780
  ref: refs.setFloating,
@@ -45798,7 +45798,7 @@ var require_dist19 = __commonJS({
45798
45798
  }
45799
45799
  },
45800
45800
  dir: props.dir,
45801
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
45801
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
45802
45802
  PopperContentProvider,
45803
45803
  {
45804
45804
  scope: __scopePopper,
@@ -45807,7 +45807,7 @@ var require_dist19 = __commonJS({
45807
45807
  arrowX,
45808
45808
  arrowY,
45809
45809
  shouldHideArrow: cannotCenterArrow,
45810
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
45810
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
45811
45811
  import_react_primitive.Primitive.div,
45812
45812
  {
45813
45813
  "data-side": placedSide,
@@ -45844,7 +45844,7 @@ var require_dist19 = __commonJS({
45844
45844
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
45845
45845
  // doesn't report size as we'd expect on SVG elements.
45846
45846
  // it reports their bounding box which is effectively the largest path inside the SVG.
45847
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
45847
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
45848
45848
  "span",
45849
45849
  {
45850
45850
  ref: contentContext.onArrowChange,
@@ -45867,7 +45867,7 @@ var require_dist19 = __commonJS({
45867
45867
  }[contentContext.placedSide],
45868
45868
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
45869
45869
  },
45870
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
45870
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
45871
45871
  ArrowPrimitive.Root,
45872
45872
  {
45873
45873
  ...arrowProps,
@@ -45971,14 +45971,14 @@ var require_dist20 = __commonJS({
45971
45971
  var import_react_dom = __toESM2(require_react_dom());
45972
45972
  var import_react_primitive = require_dist9();
45973
45973
  var import_react_use_layout_effect = require_dist15();
45974
- var import_jsx_runtime15 = require_jsx_runtime();
45974
+ var import_jsx_runtime14 = require_jsx_runtime();
45975
45975
  var PORTAL_NAME = "Portal";
45976
45976
  var Portal = React3.forwardRef((props, forwardedRef) => {
45977
45977
  const { container: containerProp, ...portalProps } = props;
45978
45978
  const [mounted, setMounted] = React3.useState(false);
45979
45979
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
45980
45980
  const container = containerProp || mounted && globalThis?.document?.body;
45981
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
45981
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
45982
45982
  });
45983
45983
  Portal.displayName = PORTAL_NAME;
45984
45984
  var Root = Portal;
@@ -46027,7 +46027,7 @@ var require_dist21 = __commonJS({
46027
46027
  module.exports = __toCommonJS2(index_exports);
46028
46028
  var React3 = __toESM2(require_react());
46029
46029
  var import_react_compose_refs = require_dist4();
46030
- var import_jsx_runtime15 = require_jsx_runtime();
46030
+ var import_jsx_runtime14 = require_jsx_runtime();
46031
46031
  // @__NO_SIDE_EFFECTS__
46032
46032
  function createSlot(ownerName) {
46033
46033
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -46045,9 +46045,9 @@ var require_dist21 = __commonJS({
46045
46045
  return child;
46046
46046
  }
46047
46047
  });
46048
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
46048
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
46049
46049
  }
46050
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
46050
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
46051
46051
  });
46052
46052
  Slot2.displayName = `${ownerName}.Slot`;
46053
46053
  return Slot2;
@@ -46074,7 +46074,7 @@ var require_dist21 = __commonJS({
46074
46074
  // @__NO_SIDE_EFFECTS__
46075
46075
  function createSlottable(ownerName) {
46076
46076
  const Slottable2 = ({ children }) => {
46077
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
46077
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
46078
46078
  };
46079
46079
  Slottable2.displayName = `${ownerName}.Slottable`;
46080
46080
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -46443,7 +46443,7 @@ var require_dist25 = __commonJS({
46443
46443
  module.exports = __toCommonJS2(index_exports);
46444
46444
  var React3 = __toESM2(require_react());
46445
46445
  var import_react_primitive = require_dist9();
46446
- var import_jsx_runtime15 = require_jsx_runtime();
46446
+ var import_jsx_runtime14 = require_jsx_runtime();
46447
46447
  var VISUALLY_HIDDEN_STYLES = Object.freeze({
46448
46448
  // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
46449
46449
  position: "absolute",
@@ -46460,7 +46460,7 @@ var require_dist25 = __commonJS({
46460
46460
  var NAME = "VisuallyHidden";
46461
46461
  var VisuallyHidden = React3.forwardRef(
46462
46462
  (props, forwardedRef) => {
46463
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
46463
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
46464
46464
  import_react_primitive.Primitive.span,
46465
46465
  {
46466
46466
  ...props,
@@ -48542,7 +48542,7 @@ var require_dist26 = __commonJS({
48542
48542
  var import_react_visually_hidden = require_dist25();
48543
48543
  var import_aria_hidden = require_es5();
48544
48544
  var import_react_remove_scroll = require_es57();
48545
- var import_jsx_runtime15 = require_jsx_runtime();
48545
+ var import_jsx_runtime14 = require_jsx_runtime();
48546
48546
  var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
48547
48547
  var SELECTION_KEYS = [" ", "Enter"];
48548
48548
  var SELECT_NAME = "Select";
@@ -48592,7 +48592,7 @@ var require_dist26 = __commonJS({
48592
48592
  const isFormControl = trigger ? form || !!trigger.closest("form") : true;
48593
48593
  const [nativeOptionsSet, setNativeOptionsSet] = React3.useState(/* @__PURE__ */ new Set());
48594
48594
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
48595
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
48595
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
48596
48596
  SelectProvider,
48597
48597
  {
48598
48598
  required,
@@ -48612,7 +48612,7 @@ var require_dist26 = __commonJS({
48612
48612
  triggerPointerDownPosRef,
48613
48613
  disabled,
48614
48614
  children: [
48615
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48615
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48616
48616
  SelectNativeOptionsProvider,
48617
48617
  {
48618
48618
  scope: props.__scopeSelect,
@@ -48629,7 +48629,7 @@ var require_dist26 = __commonJS({
48629
48629
  children
48630
48630
  }
48631
48631
  ) }),
48632
- isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
48632
+ isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
48633
48633
  SelectBubbleInput,
48634
48634
  {
48635
48635
  "aria-hidden": true,
@@ -48642,7 +48642,7 @@ var require_dist26 = __commonJS({
48642
48642
  disabled,
48643
48643
  form,
48644
48644
  children: [
48645
- value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "" }) : null,
48645
+ value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("option", { value: "" }) : null,
48646
48646
  Array.from(nativeOptionsSet)
48647
48647
  ]
48648
48648
  },
@@ -48683,7 +48683,7 @@ var require_dist26 = __commonJS({
48683
48683
  };
48684
48684
  }
48685
48685
  };
48686
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48686
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48687
48687
  import_react_primitive.Primitive.button,
48688
48688
  {
48689
48689
  type: "button",
@@ -48742,13 +48742,13 @@ var require_dist26 = __commonJS({
48742
48742
  (0, import_react_use_layout_effect.useLayoutEffect)(() => {
48743
48743
  onValueNodeHasChildrenChange(hasChildren);
48744
48744
  }, [onValueNodeHasChildrenChange, hasChildren]);
48745
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48745
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48746
48746
  import_react_primitive.Primitive.span,
48747
48747
  {
48748
48748
  ...valueProps,
48749
48749
  ref: composedRefs,
48750
48750
  style: { pointerEvents: "none" },
48751
- children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: placeholder }) : children
48751
+ children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children: placeholder }) : children
48752
48752
  }
48753
48753
  );
48754
48754
  }
@@ -48758,13 +48758,13 @@ var require_dist26 = __commonJS({
48758
48758
  var SelectIcon = React3.forwardRef(
48759
48759
  (props, forwardedRef) => {
48760
48760
  const { __scopeSelect, children, ...iconProps } = props;
48761
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "\u25BC" });
48761
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...iconProps, ref: forwardedRef, children: children || "\u25BC" });
48762
48762
  }
48763
48763
  );
48764
48764
  SelectIcon.displayName = ICON_NAME;
48765
48765
  var PORTAL_NAME = "SelectPortal";
48766
48766
  var SelectPortal = (props) => {
48767
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_portal.Portal, { asChild: true, ...props });
48767
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_portal.Portal, { asChild: true, ...props });
48768
48768
  };
48769
48769
  SelectPortal.displayName = PORTAL_NAME;
48770
48770
  var CONTENT_NAME = "SelectContent";
@@ -48778,11 +48778,11 @@ var require_dist26 = __commonJS({
48778
48778
  if (!context.open) {
48779
48779
  const frag = fragment;
48780
48780
  return frag ? ReactDOM2.createPortal(
48781
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: props.children }) }) }),
48781
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { children: props.children }) }) }),
48782
48782
  frag
48783
48783
  ) : null;
48784
48784
  }
48785
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
48785
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SelectContentImpl, { ...props, ref: forwardedRef });
48786
48786
  }
48787
48787
  );
48788
48788
  SelectContent.displayName = CONTENT_NAME;
@@ -48936,7 +48936,7 @@ var require_dist26 = __commonJS({
48936
48936
  hideWhenDetached,
48937
48937
  avoidCollisions
48938
48938
  } : {};
48939
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48939
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48940
48940
  SelectContentProvider,
48941
48941
  {
48942
48942
  scope: __scopeSelect,
@@ -48952,7 +48952,7 @@ var require_dist26 = __commonJS({
48952
48952
  position,
48953
48953
  isPositioned,
48954
48954
  searchRef,
48955
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48955
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48956
48956
  import_react_focus_scope.FocusScope,
48957
48957
  {
48958
48958
  asChild: true,
@@ -48964,7 +48964,7 @@ var require_dist26 = __commonJS({
48964
48964
  context.trigger?.focus({ preventScroll: true });
48965
48965
  event.preventDefault();
48966
48966
  }),
48967
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48967
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48968
48968
  import_react_dismissable_layer.DismissableLayer,
48969
48969
  {
48970
48970
  asChild: true,
@@ -48973,7 +48973,7 @@ var require_dist26 = __commonJS({
48973
48973
  onPointerDownOutside,
48974
48974
  onFocusOutside: (event) => event.preventDefault(),
48975
48975
  onDismiss: () => context.onOpenChange(false),
48976
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
48976
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
48977
48977
  SelectPosition,
48978
48978
  {
48979
48979
  role: "listbox",
@@ -49149,14 +49149,14 @@ var require_dist26 = __commonJS({
49149
49149
  },
49150
49150
  [position, focusSelectedItem]
49151
49151
  );
49152
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49152
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49153
49153
  SelectViewportProvider,
49154
49154
  {
49155
49155
  scope: __scopeSelect,
49156
49156
  contentWrapper,
49157
49157
  shouldExpandOnScrollRef,
49158
49158
  onScrollButtonChange: handleScrollButtonChange,
49159
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49159
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49160
49160
  "div",
49161
49161
  {
49162
49162
  ref: setContentWrapper,
@@ -49166,7 +49166,7 @@ var require_dist26 = __commonJS({
49166
49166
  position: "fixed",
49167
49167
  zIndex: contentZIndex
49168
49168
  },
49169
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49169
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49170
49170
  import_react_primitive.Primitive.div,
49171
49171
  {
49172
49172
  ...popperProps,
@@ -49196,7 +49196,7 @@ var require_dist26 = __commonJS({
49196
49196
  ...popperProps
49197
49197
  } = props;
49198
49198
  const popperScope = usePopperScope(__scopeSelect);
49199
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49199
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49200
49200
  PopperPrimitive.Content,
49201
49201
  {
49202
49202
  ...popperScope,
@@ -49230,8 +49230,8 @@ var require_dist26 = __commonJS({
49230
49230
  const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
49231
49231
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentContext.onViewportChange);
49232
49232
  const prevScrollTopRef = React3.useRef(0);
49233
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
49234
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49233
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
49234
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49235
49235
  "style",
49236
49236
  {
49237
49237
  dangerouslySetInnerHTML: {
@@ -49240,7 +49240,7 @@ var require_dist26 = __commonJS({
49240
49240
  nonce
49241
49241
  }
49242
49242
  ),
49243
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49243
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49244
49244
  import_react_primitive.Primitive.div,
49245
49245
  {
49246
49246
  "data-radix-select-viewport": "",
@@ -49296,7 +49296,7 @@ var require_dist26 = __commonJS({
49296
49296
  (props, forwardedRef) => {
49297
49297
  const { __scopeSelect, ...groupProps } = props;
49298
49298
  const groupId = (0, import_react_id.useId)();
49299
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
49299
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { role: "group", "aria-labelledby": groupId, ...groupProps, ref: forwardedRef }) });
49300
49300
  }
49301
49301
  );
49302
49302
  SelectGroup.displayName = GROUP_NAME;
@@ -49305,7 +49305,7 @@ var require_dist26 = __commonJS({
49305
49305
  (props, forwardedRef) => {
49306
49306
  const { __scopeSelect, ...labelProps } = props;
49307
49307
  const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
49308
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
49308
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });
49309
49309
  }
49310
49310
  );
49311
49311
  SelectLabel.displayName = LABEL_NAME;
@@ -49342,7 +49342,7 @@ var require_dist26 = __commonJS({
49342
49342
  "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."
49343
49343
  );
49344
49344
  }
49345
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49345
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49346
49346
  SelectItemContextProvider,
49347
49347
  {
49348
49348
  scope: __scopeSelect,
@@ -49353,14 +49353,14 @@ var require_dist26 = __commonJS({
49353
49353
  onItemTextChange: React3.useCallback((node) => {
49354
49354
  setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
49355
49355
  }, []),
49356
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49356
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49357
49357
  Collection.ItemSlot,
49358
49358
  {
49359
49359
  scope: __scopeSelect,
49360
49360
  value,
49361
49361
  disabled,
49362
49362
  textValue,
49363
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49363
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49364
49364
  import_react_primitive.Primitive.div,
49365
49365
  {
49366
49366
  role: "option",
@@ -49429,7 +49429,7 @@ var require_dist26 = __commonJS({
49429
49429
  );
49430
49430
  const textContent = itemTextNode?.textContent;
49431
49431
  const nativeOption = React3.useMemo(
49432
- () => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
49432
+ () => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("option", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),
49433
49433
  [itemContext.disabled, itemContext.value, textContent]
49434
49434
  );
49435
49435
  const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
@@ -49437,8 +49437,8 @@ var require_dist26 = __commonJS({
49437
49437
  onNativeOptionAdd(nativeOption);
49438
49438
  return () => onNativeOptionRemove(nativeOption);
49439
49439
  }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);
49440
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
49441
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
49440
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
49441
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),
49442
49442
  itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM2.createPortal(itemTextProps.children, context.valueNode) : null
49443
49443
  ] });
49444
49444
  }
@@ -49449,7 +49449,7 @@ var require_dist26 = __commonJS({
49449
49449
  (props, forwardedRef) => {
49450
49450
  const { __scopeSelect, ...itemIndicatorProps } = props;
49451
49451
  const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
49452
- return itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
49452
+ return itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.span, { "aria-hidden": true, ...itemIndicatorProps, ref: forwardedRef }) : null;
49453
49453
  }
49454
49454
  );
49455
49455
  SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
@@ -49472,7 +49472,7 @@ var require_dist26 = __commonJS({
49472
49472
  return () => viewport.removeEventListener("scroll", handleScroll2);
49473
49473
  }
49474
49474
  }, [contentContext.viewport, contentContext.isPositioned]);
49475
- return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49475
+ return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49476
49476
  SelectScrollButtonImpl,
49477
49477
  {
49478
49478
  ...props,
@@ -49507,7 +49507,7 @@ var require_dist26 = __commonJS({
49507
49507
  return () => viewport.removeEventListener("scroll", handleScroll2);
49508
49508
  }
49509
49509
  }, [contentContext.viewport, contentContext.isPositioned]);
49510
- return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49510
+ return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49511
49511
  SelectScrollButtonImpl,
49512
49512
  {
49513
49513
  ...props,
@@ -49540,7 +49540,7 @@ var require_dist26 = __commonJS({
49540
49540
  const activeItem = getItems().find((item) => item.ref.current === document.activeElement);
49541
49541
  activeItem?.ref.current?.scrollIntoView({ block: "nearest" });
49542
49542
  }, [getItems]);
49543
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49543
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49544
49544
  import_react_primitive.Primitive.div,
49545
49545
  {
49546
49546
  "aria-hidden": true,
@@ -49568,7 +49568,7 @@ var require_dist26 = __commonJS({
49568
49568
  var SelectSeparator = React3.forwardRef(
49569
49569
  (props, forwardedRef) => {
49570
49570
  const { __scopeSelect, ...separatorProps } = props;
49571
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
49571
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { "aria-hidden": true, ...separatorProps, ref: forwardedRef });
49572
49572
  }
49573
49573
  );
49574
49574
  SelectSeparator.displayName = SEPARATOR_NAME;
@@ -49579,7 +49579,7 @@ var require_dist26 = __commonJS({
49579
49579
  const popperScope = usePopperScope(__scopeSelect);
49580
49580
  const context = useSelectContext(ARROW_NAME, __scopeSelect);
49581
49581
  const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
49582
- return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
49582
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
49583
49583
  }
49584
49584
  );
49585
49585
  SelectArrow.displayName = ARROW_NAME;
@@ -49604,7 +49604,7 @@ var require_dist26 = __commonJS({
49604
49604
  select.dispatchEvent(event);
49605
49605
  }
49606
49606
  }, [prevValue, value]);
49607
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
49607
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
49608
49608
  import_react_primitive.Primitive.select,
49609
49609
  {
49610
49610
  ...props,
@@ -49809,14 +49809,14 @@ var require_dist27 = __commonJS({
49809
49809
  var import_react_dom = __toESM2(require_react_dom());
49810
49810
  var import_react_primitive = require_dist9();
49811
49811
  var import_react_use_layout_effect = require_dist15();
49812
- var import_jsx_runtime15 = require_jsx_runtime();
49812
+ var import_jsx_runtime14 = require_jsx_runtime();
49813
49813
  var PORTAL_NAME = "Portal";
49814
49814
  var Portal = React3.forwardRef((props, forwardedRef) => {
49815
49815
  const { container: containerProp, ...portalProps } = props;
49816
49816
  const [mounted, setMounted] = React3.useState(false);
49817
49817
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
49818
49818
  const container = containerProp || mounted && globalThis?.document?.body;
49819
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
49819
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
49820
49820
  });
49821
49821
  Portal.displayName = PORTAL_NAME;
49822
49822
  var Root = Portal;
@@ -50033,7 +50033,7 @@ var require_dist29 = __commonJS({
50033
50033
  module.exports = __toCommonJS2(index_exports);
50034
50034
  var React3 = __toESM2(require_react());
50035
50035
  var import_react_compose_refs = require_dist4();
50036
- var import_jsx_runtime15 = require_jsx_runtime();
50036
+ var import_jsx_runtime14 = require_jsx_runtime();
50037
50037
  // @__NO_SIDE_EFFECTS__
50038
50038
  function createSlot(ownerName) {
50039
50039
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -50051,9 +50051,9 @@ var require_dist29 = __commonJS({
50051
50051
  return child;
50052
50052
  }
50053
50053
  });
50054
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
50054
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
50055
50055
  }
50056
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
50056
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
50057
50057
  });
50058
50058
  Slot2.displayName = `${ownerName}.Slot`;
50059
50059
  return Slot2;
@@ -50080,7 +50080,7 @@ var require_dist29 = __commonJS({
50080
50080
  // @__NO_SIDE_EFFECTS__
50081
50081
  function createSlottable(ownerName) {
50082
50082
  const Slottable2 = ({ children }) => {
50083
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
50083
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
50084
50084
  };
50085
50085
  Slottable2.displayName = `${ownerName}.Slottable`;
50086
50086
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -50198,7 +50198,7 @@ var require_dist30 = __commonJS({
50198
50198
  var import_react_use_controllable_state = require_dist23();
50199
50199
  var import_aria_hidden = require_es5();
50200
50200
  var import_react_remove_scroll = require_es57();
50201
- var import_jsx_runtime15 = require_jsx_runtime();
50201
+ var import_jsx_runtime14 = require_jsx_runtime();
50202
50202
  var POPOVER_NAME = "Popover";
50203
50203
  var [createPopoverContext, createPopoverScope] = (0, import_react_context.createContextScope)(POPOVER_NAME, [
50204
50204
  import_react_popper.createPopperScope
@@ -50223,7 +50223,7 @@ var require_dist30 = __commonJS({
50223
50223
  onChange: onOpenChange,
50224
50224
  caller: POPOVER_NAME
50225
50225
  });
50226
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50226
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50227
50227
  PopoverProvider,
50228
50228
  {
50229
50229
  scope: __scopePopover,
@@ -50252,7 +50252,7 @@ var require_dist30 = __commonJS({
50252
50252
  onCustomAnchorAdd();
50253
50253
  return () => onCustomAnchorRemove();
50254
50254
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
50255
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
50255
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
50256
50256
  }
50257
50257
  );
50258
50258
  PopoverAnchor.displayName = ANCHOR_NAME;
@@ -50263,7 +50263,7 @@ var require_dist30 = __commonJS({
50263
50263
  const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
50264
50264
  const popperScope = usePopperScope(__scopePopover);
50265
50265
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
50266
- const trigger = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50266
+ const trigger = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50267
50267
  import_react_primitive.Primitive.button,
50268
50268
  {
50269
50269
  type: "button",
@@ -50276,7 +50276,7 @@ var require_dist30 = __commonJS({
50276
50276
  onClick: (0, import_primitive.composeEventHandlers)(props.onClick, context.onOpenToggle)
50277
50277
  }
50278
50278
  );
50279
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });
50279
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });
50280
50280
  }
50281
50281
  );
50282
50282
  PopoverTrigger.displayName = TRIGGER_NAME;
@@ -50287,7 +50287,7 @@ var require_dist30 = __commonJS({
50287
50287
  var PopoverPortal = (props) => {
50288
50288
  const { __scopePopover, forceMount, children, container } = props;
50289
50289
  const context = usePopoverContext(PORTAL_NAME, __scopePopover);
50290
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
50290
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
50291
50291
  };
50292
50292
  PopoverPortal.displayName = PORTAL_NAME;
50293
50293
  var CONTENT_NAME = "PopoverContent";
@@ -50296,7 +50296,7 @@ var require_dist30 = __commonJS({
50296
50296
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
50297
50297
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
50298
50298
  const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
50299
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
50299
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
50300
50300
  }
50301
50301
  );
50302
50302
  PopoverContent.displayName = CONTENT_NAME;
@@ -50311,7 +50311,7 @@ var require_dist30 = __commonJS({
50311
50311
  const content = contentRef.current;
50312
50312
  if (content) return (0, import_aria_hidden.hideOthers)(content);
50313
50313
  }, []);
50314
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50314
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50315
50315
  PopoverContentImpl,
50316
50316
  {
50317
50317
  ...props,
@@ -50346,7 +50346,7 @@ var require_dist30 = __commonJS({
50346
50346
  const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
50347
50347
  const hasInteractedOutsideRef = React3.useRef(false);
50348
50348
  const hasPointerDownOutsideRef = React3.useRef(false);
50349
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50349
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50350
50350
  PopoverContentImpl,
50351
50351
  {
50352
50352
  ...props,
@@ -50398,7 +50398,7 @@ var require_dist30 = __commonJS({
50398
50398
  const context = usePopoverContext(CONTENT_NAME, __scopePopover);
50399
50399
  const popperScope = usePopperScope(__scopePopover);
50400
50400
  (0, import_react_focus_guards.useFocusGuards)();
50401
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50401
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50402
50402
  import_react_focus_scope.FocusScope,
50403
50403
  {
50404
50404
  asChild: true,
@@ -50406,7 +50406,7 @@ var require_dist30 = __commonJS({
50406
50406
  trapped: trapFocus,
50407
50407
  onMountAutoFocus: onOpenAutoFocus,
50408
50408
  onUnmountAutoFocus: onCloseAutoFocus,
50409
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50409
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50410
50410
  import_react_dismissable_layer.DismissableLayer,
50411
50411
  {
50412
50412
  asChild: true,
@@ -50416,7 +50416,7 @@ var require_dist30 = __commonJS({
50416
50416
  onPointerDownOutside,
50417
50417
  onFocusOutside,
50418
50418
  onDismiss: () => context.onOpenChange(false),
50419
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50419
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50420
50420
  PopperPrimitive.Content,
50421
50421
  {
50422
50422
  "data-state": getState(context.open),
@@ -50449,7 +50449,7 @@ var require_dist30 = __commonJS({
50449
50449
  (props, forwardedRef) => {
50450
50450
  const { __scopePopover, ...closeProps } = props;
50451
50451
  const context = usePopoverContext(CLOSE_NAME, __scopePopover);
50452
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50452
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50453
50453
  import_react_primitive.Primitive.button,
50454
50454
  {
50455
50455
  type: "button",
@@ -50466,7 +50466,7 @@ var require_dist30 = __commonJS({
50466
50466
  (props, forwardedRef) => {
50467
50467
  const { __scopePopover, ...arrowProps } = props;
50468
50468
  const popperScope = usePopperScope(__scopePopover);
50469
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
50469
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
50470
50470
  }
50471
50471
  );
50472
50472
  PopoverArrow.displayName = ARROW_NAME;
@@ -50589,14 +50589,14 @@ var require_dist31 = __commonJS({
50589
50589
  var import_react_dom = __toESM2(require_react_dom());
50590
50590
  var import_react_primitive = require_dist9();
50591
50591
  var import_react_use_layout_effect = require_dist15();
50592
- var import_jsx_runtime15 = require_jsx_runtime();
50592
+ var import_jsx_runtime14 = require_jsx_runtime();
50593
50593
  var PORTAL_NAME = "Portal";
50594
50594
  var Portal = React3.forwardRef((props, forwardedRef) => {
50595
50595
  const { container: containerProp, ...portalProps } = props;
50596
50596
  const [mounted, setMounted] = React3.useState(false);
50597
50597
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
50598
50598
  const container = containerProp || mounted && globalThis?.document?.body;
50599
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
50599
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
50600
50600
  });
50601
50601
  Portal.displayName = PORTAL_NAME;
50602
50602
  var Root = Portal;
@@ -50645,7 +50645,7 @@ var require_dist32 = __commonJS({
50645
50645
  module.exports = __toCommonJS2(index_exports);
50646
50646
  var React3 = __toESM2(require_react());
50647
50647
  var import_react_compose_refs = require_dist4();
50648
- var import_jsx_runtime15 = require_jsx_runtime();
50648
+ var import_jsx_runtime14 = require_jsx_runtime();
50649
50649
  // @__NO_SIDE_EFFECTS__
50650
50650
  function createSlot(ownerName) {
50651
50651
  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
@@ -50663,9 +50663,9 @@ var require_dist32 = __commonJS({
50663
50663
  return child;
50664
50664
  }
50665
50665
  });
50666
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
50666
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
50667
50667
  }
50668
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
50668
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
50669
50669
  });
50670
50670
  Slot2.displayName = `${ownerName}.Slot`;
50671
50671
  return Slot2;
@@ -50692,7 +50692,7 @@ var require_dist32 = __commonJS({
50692
50692
  // @__NO_SIDE_EFFECTS__
50693
50693
  function createSlottable(ownerName) {
50694
50694
  const Slottable2 = ({ children }) => {
50695
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
50695
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
50696
50696
  };
50697
50697
  Slottable2.displayName = `${ownerName}.Slottable`;
50698
50698
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -50811,7 +50811,7 @@ var require_dist33 = __commonJS({
50811
50811
  var import_react_remove_scroll = require_es57();
50812
50812
  var import_aria_hidden = require_es5();
50813
50813
  var import_react_slot = require_dist32();
50814
- var import_jsx_runtime15 = require_jsx_runtime();
50814
+ var import_jsx_runtime14 = require_jsx_runtime();
50815
50815
  var DIALOG_NAME = "Dialog";
50816
50816
  var [createDialogContext, createDialogScope] = (0, import_react_context.createContextScope)(DIALOG_NAME);
50817
50817
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -50832,7 +50832,7 @@ var require_dist33 = __commonJS({
50832
50832
  onChange: onOpenChange,
50833
50833
  caller: DIALOG_NAME
50834
50834
  });
50835
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50835
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50836
50836
  DialogProvider,
50837
50837
  {
50838
50838
  scope: __scopeDialog,
@@ -50856,7 +50856,7 @@ var require_dist33 = __commonJS({
50856
50856
  const { __scopeDialog, ...triggerProps } = props;
50857
50857
  const context = useDialogContext(TRIGGER_NAME, __scopeDialog);
50858
50858
  const composedTriggerRef = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
50859
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50859
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50860
50860
  import_react_primitive.Primitive.button,
50861
50861
  {
50862
50862
  type: "button",
@@ -50879,7 +50879,7 @@ var require_dist33 = __commonJS({
50879
50879
  var DialogPortal = (props) => {
50880
50880
  const { __scopeDialog, forceMount, children, container } = props;
50881
50881
  const context = useDialogContext(PORTAL_NAME, __scopeDialog);
50882
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
50882
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PortalProvider, { scope: __scopeDialog, forceMount, children: React3.Children.map(children, (child) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_portal.Portal, { asChild: true, container, children: child }) })) });
50883
50883
  };
50884
50884
  DialogPortal.displayName = PORTAL_NAME;
50885
50885
  var OVERLAY_NAME = "DialogOverlay";
@@ -50888,7 +50888,7 @@ var require_dist33 = __commonJS({
50888
50888
  const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);
50889
50889
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
50890
50890
  const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);
50891
- return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
50891
+ return context.modal ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
50892
50892
  }
50893
50893
  );
50894
50894
  DialogOverlay.displayName = OVERLAY_NAME;
@@ -50900,7 +50900,7 @@ var require_dist33 = __commonJS({
50900
50900
  return (
50901
50901
  // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
50902
50902
  // ie. when `Overlay` and `Content` are siblings
50903
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50903
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_remove_scroll.RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50904
50904
  import_react_primitive.Primitive.div,
50905
50905
  {
50906
50906
  "data-state": getState(context.open),
@@ -50918,7 +50918,7 @@ var require_dist33 = __commonJS({
50918
50918
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);
50919
50919
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
50920
50920
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
50921
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
50921
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });
50922
50922
  }
50923
50923
  );
50924
50924
  DialogContent.displayName = CONTENT_NAME;
@@ -50931,7 +50931,7 @@ var require_dist33 = __commonJS({
50931
50931
  const content = contentRef.current;
50932
50932
  if (content) return (0, import_aria_hidden.hideOthers)(content);
50933
50933
  }, []);
50934
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50934
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50935
50935
  DialogContentImpl,
50936
50936
  {
50937
50937
  ...props,
@@ -50961,7 +50961,7 @@ var require_dist33 = __commonJS({
50961
50961
  const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);
50962
50962
  const hasInteractedOutsideRef = React3.useRef(false);
50963
50963
  const hasPointerDownOutsideRef = React3.useRef(false);
50964
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
50964
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
50965
50965
  DialogContentImpl,
50966
50966
  {
50967
50967
  ...props,
@@ -51003,8 +51003,8 @@ var require_dist33 = __commonJS({
51003
51003
  const contentRef = React3.useRef(null);
51004
51004
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentRef);
51005
51005
  (0, import_react_focus_guards.useFocusGuards)();
51006
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
51007
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
51006
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
51007
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
51008
51008
  import_react_focus_scope.FocusScope,
51009
51009
  {
51010
51010
  asChild: true,
@@ -51012,7 +51012,7 @@ var require_dist33 = __commonJS({
51012
51012
  trapped: trapFocus,
51013
51013
  onMountAutoFocus: onOpenAutoFocus,
51014
51014
  onUnmountAutoFocus: onCloseAutoFocus,
51015
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
51015
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
51016
51016
  import_react_dismissable_layer.DismissableLayer,
51017
51017
  {
51018
51018
  role: "dialog",
@@ -51027,9 +51027,9 @@ var require_dist33 = __commonJS({
51027
51027
  )
51028
51028
  }
51029
51029
  ),
51030
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
51031
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TitleWarning, { titleId: context.titleId }),
51032
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
51030
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
51031
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(TitleWarning, { titleId: context.titleId }),
51032
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })
51033
51033
  ] })
51034
51034
  ] });
51035
51035
  }
@@ -51039,7 +51039,7 @@ var require_dist33 = __commonJS({
51039
51039
  (props, forwardedRef) => {
51040
51040
  const { __scopeDialog, ...titleProps } = props;
51041
51041
  const context = useDialogContext(TITLE_NAME, __scopeDialog);
51042
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
51042
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });
51043
51043
  }
51044
51044
  );
51045
51045
  DialogTitle.displayName = TITLE_NAME;
@@ -51048,7 +51048,7 @@ var require_dist33 = __commonJS({
51048
51048
  (props, forwardedRef) => {
51049
51049
  const { __scopeDialog, ...descriptionProps } = props;
51050
51050
  const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
51051
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
51051
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });
51052
51052
  }
51053
51053
  );
51054
51054
  DialogDescription.displayName = DESCRIPTION_NAME;
@@ -51057,7 +51057,7 @@ var require_dist33 = __commonJS({
51057
51057
  (props, forwardedRef) => {
51058
51058
  const { __scopeDialog, ...closeProps } = props;
51059
51059
  const context = useDialogContext(CLOSE_NAME, __scopeDialog);
51060
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
51060
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
51061
51061
  import_react_primitive.Primitive.button,
51062
51062
  {
51063
51063
  type: "button",
@@ -56590,7 +56590,7 @@ var require_dist39 = __commonJS({
56590
56590
  module.exports = __toCommonJS2(index_exports);
56591
56591
  var React3 = __toESM2(require_react());
56592
56592
  var import_react_compose_refs = require_dist4();
56593
- var import_jsx_runtime15 = require_jsx_runtime();
56593
+ var import_jsx_runtime14 = require_jsx_runtime();
56594
56594
  var REACT_LAZY_TYPE = Symbol.for("react.lazy");
56595
56595
  var use = React3[" use ".trim().toString()];
56596
56596
  function isPromiseLike(value) {
@@ -56619,9 +56619,9 @@ var require_dist39 = __commonJS({
56619
56619
  return child;
56620
56620
  }
56621
56621
  });
56622
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
56622
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React3.isValidElement(newElement) ? React3.cloneElement(newElement, void 0, newChildren) : null });
56623
56623
  }
56624
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
56624
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
56625
56625
  });
56626
56626
  Slot2.displayName = `${ownerName}.Slot`;
56627
56627
  return Slot2;
@@ -56651,7 +56651,7 @@ var require_dist39 = __commonJS({
56651
56651
  // @__NO_SIDE_EFFECTS__
56652
56652
  function createSlottable(ownerName) {
56653
56653
  const Slottable2 = ({ children }) => {
56654
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children });
56654
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jsx_runtime14.Fragment, { children });
56655
56655
  };
56656
56656
  Slottable2.displayName = `${ownerName}.Slottable`;
56657
56657
  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
@@ -56742,7 +56742,7 @@ var require_dist40 = __commonJS({
56742
56742
  var React3 = __toESM2(require_react());
56743
56743
  var ReactDOM2 = __toESM2(require_react_dom());
56744
56744
  var import_react_slot = require_dist39();
56745
- var import_jsx_runtime15 = require_jsx_runtime();
56745
+ var import_jsx_runtime14 = require_jsx_runtime();
56746
56746
  var NODES = [
56747
56747
  "a",
56748
56748
  "button",
@@ -56770,7 +56770,7 @@ var require_dist40 = __commonJS({
56770
56770
  if (typeof window !== "undefined") {
56771
56771
  window[Symbol.for("radix-ui")] = true;
56772
56772
  }
56773
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
56773
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
56774
56774
  });
56775
56775
  Node2.displayName = `Primitive.${node}`;
56776
56776
  return { ...primitive, [node]: Node2 };
@@ -56824,14 +56824,14 @@ var require_dist41 = __commonJS({
56824
56824
  var import_react_dom = __toESM2(require_react_dom());
56825
56825
  var import_react_primitive = require_dist40();
56826
56826
  var import_react_use_layout_effect = require_dist15();
56827
- var import_jsx_runtime15 = require_jsx_runtime();
56827
+ var import_jsx_runtime14 = require_jsx_runtime();
56828
56828
  var PORTAL_NAME = "Portal";
56829
56829
  var Portal = React3.forwardRef((props, forwardedRef) => {
56830
56830
  const { container: containerProp, ...portalProps } = props;
56831
56831
  const [mounted, setMounted] = React3.useState(false);
56832
56832
  (0, import_react_use_layout_effect.useLayoutEffect)(() => setMounted(true), []);
56833
56833
  const container = containerProp || mounted && globalThis?.document?.body;
56834
- return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
56834
+ return container ? import_react_dom.default.createPortal(/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive.Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;
56835
56835
  });
56836
56836
  Portal.displayName = PORTAL_NAME;
56837
56837
  var Root = Portal;
@@ -61747,18 +61747,41 @@ var require_FaSlidersH = __commonJS({
61747
61747
  }
61748
61748
  });
61749
61749
 
61750
+ // ../../node_modules/@react-icons/all-files/fa/FaTimes.js
61751
+ var require_FaTimes = __commonJS({
61752
+ "../../node_modules/@react-icons/all-files/fa/FaTimes.js"(exports, module) {
61753
+ var GenIcon = require_cjs().GenIcon;
61754
+ module.exports.FaTimes = function FaTimes2(props) {
61755
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 352 512" }, "child": [{ "tag": "path", "attr": { "d": "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z" } }] })(props);
61756
+ };
61757
+ }
61758
+ });
61759
+
61760
+ // ../../node_modules/@react-icons/all-files/fa/FaPlay.js
61761
+ var require_FaPlay = __commonJS({
61762
+ "../../node_modules/@react-icons/all-files/fa/FaPlay.js"(exports, module) {
61763
+ var GenIcon = require_cjs().GenIcon;
61764
+ module.exports.FaPlay = function FaPlay2(props) {
61765
+ 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);
61766
+ };
61767
+ }
61768
+ });
61769
+
61770
+ // ../../node_modules/@react-icons/all-files/fa/FaCircle.js
61771
+ var require_FaCircle = __commonJS({
61772
+ "../../node_modules/@react-icons/all-files/fa/FaCircle.js"(exports, module) {
61773
+ var GenIcon = require_cjs().GenIcon;
61774
+ module.exports.FaCircle = function FaCircle2(props) {
61775
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 512 512" }, "child": [{ "tag": "path", "attr": { "d": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z" } }] })(props);
61776
+ };
61777
+ }
61778
+ });
61779
+
61750
61780
  // build/client/output.fileMp4/info.js
61751
61781
  var import_FaFileVideo = __toESM(require_FaFileVideo());
61752
61782
 
61753
- // build/client/output.fileMp4/inline-view.js
61754
- var import_jsx_runtime = __toESM(require_jsx_runtime());
61755
- function InlineView({ state: _, config }) {
61756
- return (0, import_jsx_runtime.jsx)("div", { className: "file-output", id: `file-output-${config.id}` });
61757
- }
61758
- var inline_view_default = InlineView;
61759
-
61760
61783
  // build/client/output.fileMp4/summary-view.js
61761
- var import_jsx_runtime2 = __toESM(require_jsx_runtime());
61784
+ var import_jsx_runtime = __toESM(require_jsx_runtime());
61762
61785
  function SummaryView({ state: _, sendCommand }) {
61763
61786
  const handleWriteFile = () => {
61764
61787
  void writeFile();
@@ -61768,7 +61791,7 @@ function SummaryView({ state: _, sendCommand }) {
61768
61791
  type: "write-file"
61769
61792
  });
61770
61793
  };
61771
- return (0, import_jsx_runtime2.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime2.jsx)("div", { className: "flex items-center justify-between mb-3", children: (0, import_jsx_runtime2.jsx)("div", { children: (0, import_jsx_runtime2.jsx)("button", { onClick: handleWriteFile, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Write Mp4 File" }) }) }) });
61794
+ return (0, import_jsx_runtime.jsx)("div", { className: "mb-5", children: (0, import_jsx_runtime.jsx)("div", { className: "flex items-center justify-between mb-3", children: (0, import_jsx_runtime.jsx)("div", { children: (0, import_jsx_runtime.jsx)("button", { onClick: handleWriteFile, className: "px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white rounded", children: "Write Mp4 File" }) }) }) });
61772
61795
  }
61773
61796
  var summary_view_default = SummaryView;
61774
61797
 
@@ -61778,18 +61801,30 @@ function info_default(r) {
61778
61801
  return defineFileOutputComponent(r, {
61779
61802
  identifier: "output.fileMp4",
61780
61803
  name: "MP4 File",
61781
- description: "Sends audio and video streams to one or more remote RTMP servers simultaneously",
61804
+ description: "Write an MP4 output file. A streaming output file (e.g. fragmented MP4) is created continuously, with finalised MP4 files available on demand.",
61782
61805
  searchTags: ["mp4", "egest"],
61783
61806
  icon: import_FaFileVideo.FaFileVideo,
61784
61807
  configForm: {
61785
61808
  form: {
61786
61809
  fileName: {
61787
- help: "The base filename to write (without extension/path)",
61810
+ help: "The filename to write",
61788
61811
  hint: {
61789
61812
  type: "text",
61790
61813
  defaultValue: "output",
61791
61814
  envOverride: true,
61792
- validation: Z3.string().min(1).max(256).regex(/^[^./]+/, "Filename should not contain a path or extension")
61815
+ validation: Z3.string().min(1).max(256)
61816
+ }
61817
+ },
61818
+ writeMode: {
61819
+ help: "File write mode for the continuous output",
61820
+ hint: {
61821
+ type: "select",
61822
+ options: [
61823
+ { value: "non-fragmented", display: "Non-fragmented MP4" },
61824
+ { value: "fragmented", display: "Fragmented MP4" },
61825
+ { value: "incremental", display: "Incremental non-fragmented MP4" }
61826
+ ],
61827
+ defaultValue: "fragmented"
61793
61828
  }
61794
61829
  },
61795
61830
  notes: {
@@ -61808,8 +61843,7 @@ function defineFileOutputComponent({ defineComponent }, settings) {
61808
61843
  accepts: {
61809
61844
  type: "simple-stream",
61810
61845
  audio: true,
61811
- video: true,
61812
- subtitle: true
61846
+ video: true
61813
61847
  }
61814
61848
  },
61815
61849
  extraValidation: function(ctx) {
@@ -61819,9 +61853,9 @@ function defineFileOutputComponent({ defineComponent }, settings) {
61819
61853
  settings.extraValidation(ctx);
61820
61854
  }
61821
61855
  },
61822
- display: (_desc) => {
61856
+ display: (desc) => {
61823
61857
  return {
61824
- // url: desc.config.url
61858
+ fileName: desc.config.fileName
61825
61859
  };
61826
61860
  },
61827
61861
  runtime: {
@@ -61829,7 +61863,6 @@ function defineFileOutputComponent({ defineComponent }, settings) {
61829
61863
  handleEvent: (ev2, state) => {
61830
61864
  return { ...state };
61831
61865
  },
61832
- inline: inline_view_default,
61833
61866
  summary: summary_view_default
61834
61867
  }
61835
61868
  });
@@ -61839,7 +61872,7 @@ function defineFileOutputComponent({ defineComponent }, settings) {
61839
61872
  var import_util = __toESM(require_util());
61840
61873
 
61841
61874
  // build/client/output.tams/inline-view.js
61842
- var import_jsx_runtime3 = __toESM(require_jsx_runtime());
61875
+ var import_jsx_runtime2 = __toESM(require_jsx_runtime());
61843
61876
 
61844
61877
  // ../norsk-player-react/dist/norsk-player-react.es.js
61845
61878
  var import_react = __toESM(require_react());
@@ -69729,11 +69762,11 @@ var hc2 = ({
69729
69762
 
69730
69763
  // build/client/output.tams/inline-view.js
69731
69764
  var import_react2 = __toESM(require_react());
69732
- function InlineView2({ state }) {
69765
+ function InlineView({ state }) {
69733
69766
  const [playing, setPlaying] = (0, import_react2.useState)();
69734
69767
  const [hovered, setHovered] = (0, import_react2.useState)(false);
69735
69768
  if (playing) {
69736
- return (0, import_jsx_runtime3.jsx)("div", { className: "flex flex-col gap-2", children: (0, import_jsx_runtime3.jsxs)("div", { style: { width: 420, height: 280 }, className: "relative", children: [(0, import_jsx_runtime3.jsx)("button", { onClick: () => setPlaying(void 0), onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), className: `
69769
+ return (0, import_jsx_runtime2.jsx)("div", { className: "flex flex-col gap-2", children: (0, import_jsx_runtime2.jsxs)("div", { style: { width: 420, height: 280 }, className: "relative", children: [(0, import_jsx_runtime2.jsx)("button", { onClick: () => setPlaying(void 0), onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), className: `
69737
69770
  absolute top-1 right-1
69738
69771
  z-50 pointer-events-auto
69739
69772
  flex items-center justify-center
@@ -69746,30 +69779,30 @@ function InlineView2({ state }) {
69746
69779
  !p-0 leading-none
69747
69780
  transition-transform transition-colors duration-150 ease-out
69748
69781
  ${hovered ? "opacity-50" : "opacity-20"}
69749
- `, children: (0, import_jsx_runtime3.jsxs)("svg", { viewBox: "0 0 20 20", className: "w-4 h-4", stroke: "currentColor", strokeWidth: "2", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, import_jsx_runtime3.jsx)("line", { x1: "4", y1: "4", x2: "16", y2: "16" }), (0, import_jsx_runtime3.jsx)("line", { x1: "16", y1: "4", x2: "4", y2: "16" })] }) }), (0, import_jsx_runtime3.jsx)(hc2, { src: playing, className: "w-full h-full", fillContainer: true }, playing)] }) });
69782
+ `, children: (0, import_jsx_runtime2.jsxs)("svg", { viewBox: "0 0 20 20", className: "w-4 h-4", stroke: "currentColor", strokeWidth: "2", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", children: [(0, import_jsx_runtime2.jsx)("line", { x1: "4", y1: "4", x2: "16", y2: "16" }), (0, import_jsx_runtime2.jsx)("line", { x1: "16", y1: "4", x2: "4", y2: "16" })] }) }), (0, import_jsx_runtime2.jsx)(hc2, { src: playing, className: "w-full h-full", fillContainer: true }, playing)] }) });
69750
69783
  }
69751
69784
  const hasSessions = state.active || state.sessions.length > 0;
69752
- return (0, import_jsx_runtime3.jsxs)("div", { className: "bg-slate-950 p-6 overflow-auto", style: { maxHeight: "600px", maxWidth: "450px" }, children: [!hasSessions && (0, import_jsx_runtime3.jsx)("div", { className: "text-slate-400 text-center py-8", children: "No active or recorded sessions" }), displaySessions("Active Sessions", state.active ? [state.active] : [], setPlaying), displaySessions("Past Sessions", state.sessions, setPlaying)] });
69785
+ return (0, import_jsx_runtime2.jsxs)("div", { className: "bg-slate-950 p-6 overflow-auto", style: { maxHeight: "600px", maxWidth: "450px" }, children: [!hasSessions && (0, import_jsx_runtime2.jsx)("div", { className: "text-slate-400 text-center py-8", children: "No active or recorded sessions" }), displaySessions("Active Sessions", state.active ? [state.active] : [], state.tamsUrl, setPlaying), displaySessions("Past Sessions", state.sessions, state.tamsUrl, setPlaying)] });
69753
69786
  }
69754
- var sessionLink = ({ audio, video }) => {
69787
+ var sessionLink = (baseUrl, { audio, video }) => {
69755
69788
  if (!audio.tamsId || !video.tamsId)
69756
69789
  return;
69757
- const tamsUrl = ({ tamsId }) => `http://localhost:6791/x-tams/flows/${tamsId}`;
69790
+ const tamsUrl = ({ tamsId }) => `${baseUrl}/flows/${tamsId}`;
69758
69791
  return `${tamsUrl(audio)},${tamsUrl(video)}`;
69759
69792
  };
69760
- var displaySessions = (name, sessions, setPlaying) => {
69793
+ var displaySessions = (name, sessions, tamsUrl, setPlaying) => {
69761
69794
  if (!sessions.length)
69762
69795
  return null;
69763
- return (0, import_jsx_runtime3.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime3.jsx)("h3", { className: "text-lg font-semibold mb-3 text-slate-300", children: name }), (0, import_jsx_runtime3.jsx)("div", { className: "space-y-2", children: sessions.slice().reverse().map((session) => {
69764
- const url = sessionLink(session);
69796
+ return (0, import_jsx_runtime2.jsxs)("div", { className: "mb-6", children: [(0, import_jsx_runtime2.jsx)("h3", { className: "text-lg font-semibold mb-3 text-slate-300", children: name }), (0, import_jsx_runtime2.jsx)("div", { className: "space-y-2", children: sessions.slice().reverse().map((session) => {
69797
+ const url = sessionLink(tamsUrl, session);
69765
69798
  if (!url)
69766
69799
  return null;
69767
69800
  const duration = (session.video.durationMs / 6e4).toFixed(0);
69768
69801
  const time = new Date(session.video.startIso).toLocaleTimeString();
69769
- return (0, import_jsx_runtime3.jsxs)("button", { onClick: () => setPlaying(url), className: "w-full px-4 py-3 bg-slate-800 hover:bg-slate-700 text-slate-200 rounded-lg transition-colors text-left", children: ["Play session ", time, " (", duration, " minutes)"] }, session.video.startIso);
69802
+ return (0, import_jsx_runtime2.jsxs)("button", { onClick: () => setPlaying(url), className: "w-full px-4 py-3 bg-slate-800 hover:bg-slate-700 text-slate-200 rounded-lg transition-colors text-left", children: ["Play session ", time, " (", duration, " minutes)"] }, session.video.startIso);
69770
69803
  }) })] });
69771
69804
  };
69772
- var inline_view_default2 = InlineView2;
69805
+ var inline_view_default = InlineView;
69773
69806
 
69774
69807
  // build/client/output.tams/info.js
69775
69808
  function info_default2(R) {
@@ -69794,7 +69827,8 @@ function info_default2(R) {
69794
69827
  initialState: () => ({
69795
69828
  active: void 0,
69796
69829
  sessions: [],
69797
- cuts: []
69830
+ cuts: [],
69831
+ tamsUrl: ""
69798
69832
  }),
69799
69833
  handleEvent: (ev2, s) => {
69800
69834
  const evt = ev2.type;
@@ -69802,6 +69836,7 @@ function info_default2(R) {
69802
69836
  case "updated":
69803
69837
  s.active = ev2.active;
69804
69838
  s.sessions = ev2.sessions;
69839
+ s.tamsUrl = ev2.tamsUrl;
69805
69840
  break;
69806
69841
  case "cut-started":
69807
69842
  s.cuts.push({ id: ev2.id, percent: 0, createdMs: ev2.createdMs });
@@ -69820,7 +69855,7 @@ function info_default2(R) {
69820
69855
  }
69821
69856
  return { ...s };
69822
69857
  },
69823
- inline: inline_view_default2
69858
+ inline: inline_view_default
69824
69859
  },
69825
69860
  configForm: {
69826
69861
  form: {
@@ -69857,7 +69892,7 @@ function info_default2(R) {
69857
69892
  var import_config = __toESM(require_config());
69858
69893
 
69859
69894
  // build/client/processor.actionReplay/summary.js
69860
- var import_jsx_runtime4 = __toESM(require_jsx_runtime());
69895
+ var import_jsx_runtime3 = __toESM(require_jsx_runtime());
69861
69896
  var import_react3 = __toESM(require_react());
69862
69897
  var import_hls = __toESM(require_hls());
69863
69898
  var changingDuration = false;
@@ -69881,8 +69916,8 @@ function SummaryView2({ state, config, sendCommand }) {
69881
69916
  }
69882
69917
  }, [state.contentPlayerUrl]);
69883
69918
  if (!url)
69884
- return (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: "..." });
69885
- return (0, import_jsx_runtime4.jsxs)("div", { className: "mb-5", children: [(0, import_jsx_runtime4.jsx)("h5", { children: "Preview" }), (0, import_jsx_runtime4.jsx)("video", { ref: previewVideo, controls: true, onSeeked, autoPlay: true, muted: true, className: state.replaying ? "hidden" : "", id: `${id3}-video` }), state.replaying ? (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: "Current Performing Replay" }) : (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [lastSeek ? (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [(0, import_jsx_runtime4.jsxs)("p", { children: ["Replay from ", lastSeek.time.toFixed(1), "(s) "] }), (0, import_jsx_runtime4.jsxs)("p", { className: "block mb-2 text-sm font-medium text-gray-900 dark:text-white", children: ["Duration: ", playbackDuration, "s"] }), (0, import_jsx_runtime4.jsx)("input", { id: "duration-range", type: "range", min: currentMinDuration(), max: currentMaxDuration(), defaultValue: playbackDuration, className: "w-full h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer dark:bg-gray-700", onChange: onDurationChange, onInput: onDurationChange })] }) : (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, {}), (0, import_jsx_runtime4.jsx)("button", { onClick: sendReplayCommand, type: "button", className: "mt-2 mb-2 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", children: "Replay" })] })] });
69919
+ return (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: "..." });
69920
+ return (0, import_jsx_runtime3.jsxs)("div", { className: "mb-5", children: [(0, import_jsx_runtime3.jsx)("h5", { children: "Preview" }), (0, import_jsx_runtime3.jsx)("video", { ref: previewVideo, controls: true, onSeeked, autoPlay: true, muted: true, className: state.replaying ? "hidden" : "", id: `${id3}-video` }), state.replaying ? (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: "Current Performing Replay" }) : (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [lastSeek ? (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [(0, import_jsx_runtime3.jsxs)("p", { children: ["Replay from ", lastSeek.time.toFixed(1), "(s) "] }), (0, import_jsx_runtime3.jsxs)("p", { className: "block mb-2 text-sm font-medium text-gray-900 dark:text-white", children: ["Duration: ", playbackDuration, "s"] }), (0, import_jsx_runtime3.jsx)("input", { id: "duration-range", type: "range", min: currentMinDuration(), max: currentMaxDuration(), defaultValue: playbackDuration, className: "w-full h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer dark:bg-gray-700", onChange: onDurationChange, onInput: onDurationChange })] }) : (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}), (0, import_jsx_runtime3.jsx)("button", { onClick: sendReplayCommand, type: "button", className: "mt-2 mb-2 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", children: "Replay" })] })] });
69886
69921
  function sendReplayCommand() {
69887
69922
  if (!previewVideo.current)
69888
69923
  return;
@@ -69989,9 +70024,9 @@ function info_default3({ defineComponent, assertUnreachable: assertUnreachable7
69989
70024
  }
69990
70025
 
69991
70026
  // build/client/processor.audioLevel/inline-view.js
69992
- var import_jsx_runtime5 = __toESM(require_jsx_runtime());
70027
+ var import_jsx_runtime4 = __toESM(require_jsx_runtime());
69993
70028
  var import_react4 = __toESM(require_react());
69994
- function InlineView3({ state, raise }) {
70029
+ function InlineView2({ state, raise }) {
69995
70030
  (0, import_react4.useEffect)(() => {
69996
70031
  if (raise) {
69997
70032
  raise();
@@ -70010,16 +70045,16 @@ function InlineView3({ state, raise }) {
70010
70045
  return Math.max(0, 100 - snapped);
70011
70046
  }
70012
70047
  if (!state.levels) {
70013
- return (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, {});
70048
+ return (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, {});
70014
70049
  }
70015
70050
  {
70016
70051
  }
70017
- return (0, import_jsx_runtime5.jsx)("div", { className: "processor-audioLevel", children: (0, import_jsx_runtime5.jsx)("div", { className: "audio-level-container-inline", children: (0, import_jsx_runtime5.jsx)("div", { className: "preview-levels-inline", children: (0, import_jsx_runtime5.jsx)("div", { className: `preview-level clip-${percentage(state.levels)}` }) }) }) });
70052
+ return (0, import_jsx_runtime4.jsx)("div", { className: "processor-audioLevel", children: (0, import_jsx_runtime4.jsx)("div", { className: "audio-level-container-inline", children: (0, import_jsx_runtime4.jsx)("div", { className: "preview-levels-inline", children: (0, import_jsx_runtime4.jsx)("div", { className: `preview-level clip-${percentage(state.levels)}` }) }) }) });
70018
70053
  }
70019
- var inline_view_default3 = InlineView3;
70054
+ var inline_view_default2 = InlineView2;
70020
70055
 
70021
70056
  // build/client/processor.audioLevel/summary-view.js
70022
- var import_jsx_runtime6 = __toESM(require_jsx_runtime());
70057
+ var import_jsx_runtime5 = __toESM(require_jsx_runtime());
70023
70058
  var import_react5 = __toESM(require_react());
70024
70059
  function SummaryView3({ state, sendCommand }) {
70025
70060
  const [sliderValue, setSliderValue] = (0, import_react5.useState)(state.sliderGain || "0");
@@ -70040,7 +70075,7 @@ function SummaryView3({ state, sendCommand }) {
70040
70075
  const gainClasses = state.levels ? "col-start-2 self-end" : "col-start-1 col-end-3 self-end justify-self-start";
70041
70076
  {
70042
70077
  }
70043
- return (0, import_jsx_runtime6.jsx)("div", { className: "processor-audioLevel", children: (0, import_jsx_runtime6.jsxs)("div", { className: "audio-level-container grid mb-6 relative justify-items-center", children: [(0, import_jsx_runtime6.jsxs)("div", { className: `preview-levels-summary ${state.levels ? "" : "opacity-30"}`, children: [(0, import_jsx_runtime6.jsx)("div", { className: "relative w-full h-full", children: (0, import_jsx_runtime6.jsx)("div", { className: `preview-level absolute h-full w-4/6 clip-${percentage(state.levels)}` }) }), (0, import_jsx_runtime6.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime6.jsx)("div", { className: "text-sm absolute -top-1", children: "0dB" }), (0, import_jsx_runtime6.jsx)("div", { className: "text-sm absolute top-14", children: "-50dB" }), (0, import_jsx_runtime6.jsx)("div", { className: "text-sm absolute -bottom-2", children: "-100dB" })] })] }), (0, import_jsx_runtime6.jsx)("div", { className: "h-full flex items-center", children: (0, import_jsx_runtime6.jsx)("input", { id: "audio-slider", className: `-rotate-90 h-2.5 ${state.levels ? "" : "opacity-20"}`, type: "range", name: "gain", min: "-40", max: "40", step: "1", defaultValue: state.sliderGain || "0", disabled: !state.levels, onChange: (e) => {
70078
+ return (0, import_jsx_runtime5.jsx)("div", { className: "processor-audioLevel", children: (0, import_jsx_runtime5.jsxs)("div", { className: "audio-level-container grid mb-6 relative justify-items-center", children: [(0, import_jsx_runtime5.jsxs)("div", { className: `preview-levels-summary ${state.levels ? "" : "opacity-30"}`, children: [(0, import_jsx_runtime5.jsx)("div", { className: "relative w-full h-full", children: (0, import_jsx_runtime5.jsx)("div", { className: `preview-level absolute h-full w-4/6 clip-${percentage(state.levels)}` }) }), (0, import_jsx_runtime5.jsxs)("div", { className: "relative", children: [(0, import_jsx_runtime5.jsx)("div", { className: "text-sm absolute -top-1", children: "0dB" }), (0, import_jsx_runtime5.jsx)("div", { className: "text-sm absolute top-14", children: "-50dB" }), (0, import_jsx_runtime5.jsx)("div", { className: "text-sm absolute -bottom-2", children: "-100dB" })] })] }), (0, import_jsx_runtime5.jsx)("div", { className: "h-full flex items-center", children: (0, import_jsx_runtime5.jsx)("input", { id: "audio-slider", className: `-rotate-90 h-2.5 ${state.levels ? "" : "opacity-20"}`, type: "range", name: "gain", min: "-40", max: "40", step: "1", defaultValue: state.sliderGain || "0", disabled: !state.levels, onChange: (e) => {
70044
70079
  setSliderValue(e.target.value);
70045
70080
  if (canSetVolume) {
70046
70081
  setCanSetVolume(false);
@@ -70051,7 +70086,7 @@ function SummaryView3({ state, sendCommand }) {
70051
70086
  }
70052
70087
  }, onMouseUp: (_e3) => {
70053
70088
  sendCommand({ type: "set-gain", value: Number(sliderValue) });
70054
- } }) }), (0, import_jsx_runtime6.jsx)("div", { className: gainClasses, children: state.levels ? "Gain:" : "No incoming audio" }), (0, import_jsx_runtime6.jsx)("div", { className: "col-start-2", children: state.levels ? `${Number(sliderValue) > 0 ? "+" : ""} ${sliderValue} dB` : "" })] }) });
70089
+ } }) }), (0, import_jsx_runtime5.jsx)("div", { className: gainClasses, children: state.levels ? "Gain:" : "No incoming audio" }), (0, import_jsx_runtime5.jsx)("div", { className: "col-start-2", children: state.levels ? `${Number(sliderValue) > 0 ? "+" : ""} ${sliderValue} dB` : "" })] }) });
70055
70090
  }
70056
70091
  var summary_view_default2 = SummaryView3;
70057
70092
 
@@ -70103,7 +70138,7 @@ function info_default4({ defineComponent, validation: { Z: Z3 } }) {
70103
70138
  }
70104
70139
  return { ...state };
70105
70140
  },
70106
- inline: inline_view_default3,
70141
+ inline: inline_view_default2,
70107
70142
  summary: summary_view_default2
70108
70143
  },
70109
70144
  configForm: {
@@ -70122,12 +70157,12 @@ function assertUnreachable2(_) {
70122
70157
  var import_client_types = __toESM(require_client_types());
70123
70158
 
70124
70159
  // build/client/processor.chaos/form-views.js
70125
- var import_jsx_runtime7 = __toESM(require_jsx_runtime());
70160
+ var import_jsx_runtime6 = __toESM(require_jsx_runtime());
70126
70161
  function FrameDrop(cfg) {
70127
70162
  if (cfg) {
70128
- return (0, import_jsx_runtime7.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime7.jsx)("div", { className: "col-span-1", children: "Frame Drop" }), (0, import_jsx_runtime7.jsx)("div", { className: "col-span-2", children: cfg.kind })] });
70163
+ return (0, import_jsx_runtime6.jsxs)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm", children: [(0, import_jsx_runtime6.jsx)("div", { className: "col-span-1", children: "Frame Drop" }), (0, import_jsx_runtime6.jsx)("div", { className: "col-span-2", children: cfg.kind })] });
70129
70164
  } else {
70130
- return (0, import_jsx_runtime7.jsx)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm" });
70165
+ return (0, import_jsx_runtime6.jsx)("div", { className: "grid grid-flow-row-dense grid-cols-3 text-sm" });
70131
70166
  }
70132
70167
  }
70133
70168
 
@@ -70248,30 +70283,57 @@ function info_default6({ defineComponent }) {
70248
70283
  var import_FaSlidersH = __toESM(require_FaSlidersH());
70249
70284
 
70250
70285
  // build/client/processor.hardSourceSwitch/inline-view.js
70251
- var import_jsx_runtime8 = __toESM(require_jsx_runtime());
70252
- function InlineView4({ state }) {
70253
- return (0, import_jsx_runtime8.jsx)("div", { className: "flex flex-col h-full justify-between p-2 text-gray-900 dark:text-white", children: (0, import_jsx_runtime8.jsxs)("div", { children: [(0, import_jsx_runtime8.jsxs)("p", { className: "text-sm font-medium", children: ["Active: ", (0, import_jsx_runtime8.jsx)("span", { className: "font-normal", children: state.activeSource || "None" })] }), (0, import_jsx_runtime8.jsxs)("p", { className: "text-sm font-medium", children: ["Available: ", (0, import_jsx_runtime8.jsx)("span", { className: "font-normal", children: state.availableSources.length })] })] }) });
70286
+ var import_jsx_runtime7 = __toESM(require_jsx_runtime());
70287
+ var import_FaTimes = __toESM(require_FaTimes());
70288
+ var import_FaPlay = __toESM(require_FaPlay());
70289
+ var import_FaCircle = __toESM(require_FaCircle());
70290
+ function InlineView3({ state, config }) {
70291
+ const sourcePriority = state.sourcePriority || [];
70292
+ const availableSourceNames = state.availableSources.map((s) => s.sourceName);
70293
+ return (0, import_jsx_runtime7.jsx)("div", { className: "flex flex-col h-full justify-between p-2 text-gray-900 dark:text-white", children: (0, import_jsx_runtime7.jsxs)("div", { children: [(0, import_jsx_runtime7.jsxs)("p", { className: "text-sm font-medium", children: ["Active: ", (0, import_jsx_runtime7.jsx)("span", { className: "font-normal", children: state.activeSource || "None" })] }), (0, import_jsx_runtime7.jsxs)("p", { className: "text-sm font-medium", children: ["Available: ", (0, import_jsx_runtime7.jsx)("span", { className: "font-normal", children: state.availableSources.length })] }), sourcePriority.length > 0 && (0, import_jsx_runtime7.jsxs)("div", { className: "mt-2 space-y-2", children: [sourcePriority.map((sourceName, index3) => {
70294
+ const isActive = state.activeSource === sourceName;
70295
+ const isAvailable = availableSourceNames.includes(sourceName);
70296
+ const priorityRank = index3 + 1;
70297
+ return (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime7.jsx)("div", { className: "relative w-4 h-4 flex items-center justify-center flex-shrink-0", children: !isAvailable ? (0, import_jsx_runtime7.jsx)(import_FaTimes.FaTimes, { className: "w-4 h-4 text-red-500" }) : isActive ? (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [(0, import_jsx_runtime7.jsx)(import_FaPlay.FaPlay, { className: "w-3 h-3 text-green-500" }), (0, import_jsx_runtime7.jsx)("div", { className: "absolute inset-0 flex items-center justify-center opacity-30", children: (0, import_jsx_runtime7.jsx)("div", { className: "w-4 h-4 bg-green-500 animate-ping duration-150" }) })] }) : (0, import_jsx_runtime7.jsx)(import_FaCircle.FaCircle, { className: "w-2 h-2 text-green-500" }) }), (0, import_jsx_runtime7.jsx)("span", { className: "text-gray-900 dark:text-white flex-1 text-xs", children: sourceName }), (0, import_jsx_runtime7.jsx)("span", { className: "text-gray-500 dark:text-gray-400 text-sm", children: priorityRank })] }, sourceName);
70298
+ }), config.fallbackFilePath && (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-2", children: [(0, import_jsx_runtime7.jsx)("div", { className: "relative w-4 h-4 flex items-center justify-center flex-shrink-0", children: state.activeSource === "fallback" ? (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [(0, import_jsx_runtime7.jsx)(import_FaPlay.FaPlay, { className: "w-3 h-3 text-green-500" }), (0, import_jsx_runtime7.jsx)("div", { className: "absolute inset-0 flex items-center justify-center opacity-30", children: (0, import_jsx_runtime7.jsx)("div", { className: "w-4 h-4 bg-green-500 animate-ping duration-150" }) })] }) : (0, import_jsx_runtime7.jsx)(import_FaCircle.FaCircle, { className: "w-2 h-2 text-green-500" }) }), (0, import_jsx_runtime7.jsx)("span", { className: "text-gray-900 dark:text-white flex-1 text-xs", children: "fallback" }), (0, import_jsx_runtime7.jsx)("span", { className: "text-gray-500 dark:text-gray-400 text-sm", children: "-" })] })] })] }) });
70254
70299
  }
70255
70300
 
70256
70301
  // build/client/processor.hardSourceSwitch/fullscreen.js
70257
- var import_jsx_runtime9 = __toESM(require_jsx_runtime());
70302
+ var import_jsx_runtime8 = __toESM(require_jsx_runtime());
70258
70303
  var import_react7 = __toESM(require_react());
70259
70304
  function FullscreenView({ state, config: _config, sendCommand }) {
70260
70305
  const handleSwitch = (0, import_react7.useCallback)((sourceName) => {
70261
70306
  sendCommand({ type: "switch-to-source", source: sourceName });
70262
70307
  }, [sendCommand]);
70263
- return (0, import_jsx_runtime9.jsxs)("div", { className: "h-full w-full flex flex-col p-4 bg-gray-900 text-white", children: [(0, import_jsx_runtime9.jsxs)("div", { className: "flex-1 flex gap-4", children: [(0, import_jsx_runtime9.jsxs)("div", { className: "flex-1", children: [(0, import_jsx_runtime9.jsx)("h3", { className: "text-lg font-semibold mb-3", children: "Sources" }), (0, import_jsx_runtime9.jsx)("div", { className: "grid grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4", children: state.availableSources.map((source) => {
70308
+ const handlePriorityChange = (0, import_react7.useCallback)((newOrder) => {
70309
+ sendCommand({ type: "set-priority-order", sources: newOrder });
70310
+ }, [sendCommand]);
70311
+ return (0, import_jsx_runtime8.jsxs)("div", { className: "h-full w-full flex flex-col p-4 bg-gray-900 text-white", children: [(0, import_jsx_runtime8.jsxs)("div", { className: "flex-1 flex gap-4", children: [(0, import_jsx_runtime8.jsxs)("div", { className: "flex-1", children: [(0, import_jsx_runtime8.jsx)("h3", { className: "text-lg font-semibold mb-3", children: "Sources" }), (0, import_jsx_runtime8.jsx)("div", { className: "grid grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4", children: state.availableSources.map((source) => {
70264
70312
  if (!source.sourceName) {
70265
70313
  return null;
70266
70314
  }
70267
70315
  const sourceName = source.sourceName;
70268
70316
  const isActive = state.activeSource === sourceName;
70269
70317
  const previewUrl = state.sourcePreviews?.[sourceName];
70270
- return (0, import_jsx_runtime9.jsxs)("div", { className: `
70318
+ return (0, import_jsx_runtime8.jsxs)("div", { className: `
70271
70319
  relative border-2 rounded-lg overflow-hidden
70272
70320
  ${isActive ? "border-green-500" : "border-gray-600"}
70273
- `, children: [(0, import_jsx_runtime9.jsxs)("div", { className: "aspect-video bg-gray-800 relative", children: [previewUrl ? (0, import_jsx_runtime9.jsx)("img", { src: previewUrl, alt: `${sourceName} preview`, className: "w-full h-full object-cover" }) : (0, import_jsx_runtime9.jsx)("div", { className: "flex items-center justify-center h-full text-gray-500", children: "Loading..." }), isActive && (0, import_jsx_runtime9.jsx)("div", { className: "absolute top-2 right-2 bg-green-500 text-white px-2 py-1 rounded text-xs font-bold", children: "ACTIVE" })] }), (0, import_jsx_runtime9.jsxs)("div", { className: "p-3", children: [(0, import_jsx_runtime9.jsx)("h4", { className: "font-medium mb-2", children: sourceName }), (0, import_jsx_runtime9.jsx)("div", { className: "flex items-center justify-end", children: !isActive && (0, import_jsx_runtime9.jsx)("button", { onClick: () => handleSwitch(sourceName), className: "px-3 py-1 bg-blue-600 hover:bg-blue-700 rounded text-sm transition", children: "Make Active" }) })] })] }, sourceName);
70274
- }) })] }), (0, import_jsx_runtime9.jsxs)("div", { className: "w-96", children: [(0, import_jsx_runtime9.jsx)("h3", { className: "text-lg font-semibold mb-3", children: "Output" }), (0, import_jsx_runtime9.jsxs)("div", { className: "border-2 border-blue-500 rounded-lg overflow-hidden", children: [(0, import_jsx_runtime9.jsx)("div", { className: "aspect-video bg-gray-800", children: state.outputPreview ? (0, import_jsx_runtime9.jsx)("img", { src: state.outputPreview, alt: "Output preview", className: "w-full h-full object-cover" }) : (0, import_jsx_runtime9.jsx)("div", { className: "flex items-center justify-center h-full text-gray-500", children: "No output" }) }), (0, import_jsx_runtime9.jsx)("div", { className: "p-3 bg-gray-800", children: (0, import_jsx_runtime9.jsxs)("p", { className: "text-sm text-gray-400", children: ["Active Source:", " ", (0, import_jsx_runtime9.jsx)("span", { className: "font-semibold text-white", children: state.activeSource || "None" })] }) })] })] })] }), state.formatWarnings && state.formatWarnings.length > 0 && (0, import_jsx_runtime9.jsxs)("div", { className: "mt-4 bg-yellow-900/50 border border-yellow-600 rounded-lg p-3", children: [(0, import_jsx_runtime9.jsxs)("h4", { className: "text-yellow-400 font-semibold mb-2 flex items-center gap-2", children: [(0, import_jsx_runtime9.jsx)("span", { children: "\u26A0\uFE0F" }), "Format Warnings"] }), (0, import_jsx_runtime9.jsx)("div", { className: "space-y-1 max-h-32 overflow-y-auto", children: state.formatWarnings.map((warning, idx) => (0, import_jsx_runtime9.jsxs)("div", { className: "text-sm text-yellow-200", children: ["\u2022 ", warning] }, idx)) })] })] });
70321
+ `, children: [(0, import_jsx_runtime8.jsxs)("div", { className: "aspect-video bg-gray-800 relative", children: [previewUrl ? (0, import_jsx_runtime8.jsx)("img", { src: previewUrl, alt: `${sourceName} preview`, className: "w-full h-full object-cover" }) : (0, import_jsx_runtime8.jsx)("div", { className: "flex items-center justify-center h-full text-gray-500", children: "Loading..." }), isActive && (0, import_jsx_runtime8.jsx)("div", { className: "absolute top-2 right-2 bg-green-500 text-white px-2 py-1 rounded text-xs font-bold", children: "ACTIVE" })] }), (0, import_jsx_runtime8.jsxs)("div", { className: "p-3", children: [(0, import_jsx_runtime8.jsx)("h4", { className: "font-medium mb-2", children: sourceName }), (0, import_jsx_runtime8.jsx)("div", { className: "flex items-center justify-end", children: !isActive && (0, import_jsx_runtime8.jsx)("button", { onClick: () => handleSwitch(sourceName), className: "px-3 py-1 bg-blue-600 hover:bg-blue-700 rounded text-sm transition", children: "Make Active" }) })] })] }, sourceName);
70322
+ }) })] }), (0, import_jsx_runtime8.jsxs)("div", { className: "w-96 flex flex-col gap-4", children: [(0, import_jsx_runtime8.jsxs)("div", { children: [(0, import_jsx_runtime8.jsx)("h3", { className: "text-lg font-semibold mb-3", children: "Output" }), (0, import_jsx_runtime8.jsxs)("div", { className: "border-2 border-blue-500 rounded-lg overflow-hidden", children: [(0, import_jsx_runtime8.jsx)("div", { className: "aspect-video bg-gray-800", children: state.outputPreview ? (0, import_jsx_runtime8.jsx)("img", { src: state.outputPreview, alt: "Output preview", className: "w-full h-full object-cover" }) : (0, import_jsx_runtime8.jsx)("div", { className: "flex items-center justify-center h-full text-gray-500", children: "No output" }) }), (0, import_jsx_runtime8.jsx)("div", { className: "p-3 bg-gray-800", children: (0, import_jsx_runtime8.jsxs)("p", { className: "text-sm text-gray-400", children: ["Active Source:", " ", (0, import_jsx_runtime8.jsx)("span", { className: "font-semibold text-white", children: state.activeSource || "None" })] }) })] })] }), (0, import_jsx_runtime8.jsxs)("div", { children: [(0, import_jsx_runtime8.jsx)("h3", { className: "text-lg font-semibold mb-3", children: "Priority Order" }), (0, import_jsx_runtime8.jsx)("div", { className: "space-y-2", children: (state.sourcePriority || []).map((source, index3) => (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center justify-between bg-gray-800 p-2 rounded", children: [(0, import_jsx_runtime8.jsxs)("span", { className: "text-sm", children: [index3 + 1, ": ", source] }), (0, import_jsx_runtime8.jsxs)("div", { className: "flex gap-1", children: [index3 > 0 && (0, import_jsx_runtime8.jsx)("button", { onClick: () => {
70323
+ const newOrder = [...state.sourcePriority || []];
70324
+ [newOrder[index3], newOrder[index3 - 1]] = [
70325
+ newOrder[index3 - 1],
70326
+ newOrder[index3]
70327
+ ];
70328
+ handlePriorityChange(newOrder);
70329
+ }, className: "px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-xs", title: "Move up", children: "\u2191" }), index3 < (state.sourcePriority?.length || 0) - 1 && (0, import_jsx_runtime8.jsx)("button", { onClick: () => {
70330
+ const newOrder = [...state.sourcePriority || []];
70331
+ [newOrder[index3], newOrder[index3 + 1]] = [
70332
+ newOrder[index3 + 1],
70333
+ newOrder[index3]
70334
+ ];
70335
+ handlePriorityChange(newOrder);
70336
+ }, className: "px-2 py-1 bg-gray-700 hover:bg-gray-600 rounded text-xs", title: "Move down", children: "\u2193" })] })] }, source)) })] })] })] }), state.formatWarnings && state.formatWarnings.length > 0 && (0, import_jsx_runtime8.jsxs)("div", { className: "mt-4 bg-yellow-900/50 border border-yellow-600 rounded-lg p-3", children: [(0, import_jsx_runtime8.jsxs)("h4", { className: "text-yellow-400 font-semibold mb-2 flex items-center gap-2", children: [(0, import_jsx_runtime8.jsx)("span", { children: "\u26A0\uFE0F" }), "Format Warnings"] }), (0, import_jsx_runtime8.jsx)("div", { className: "space-y-1 max-h-32 overflow-y-auto", children: state.formatWarnings.map((warning, idx) => (0, import_jsx_runtime8.jsxs)("div", { className: "text-sm text-yellow-200", children: ["\u2022 ", warning] }, idx)) })] })] });
70275
70337
  }
70276
70338
 
70277
70339
  // build/client/processor.hardSourceSwitch/info.js
@@ -70311,7 +70373,8 @@ function info_default7({ defineComponent, Av: Av2, validation: { Z: Z3, SourceNa
70311
70373
  display: (desc) => {
70312
70374
  return {
70313
70375
  activeSource: desc.config.activeSource || "(auto)",
70314
- outputSource: desc.config.outputSource
70376
+ outputSource: desc.config.outputSource,
70377
+ fallback: desc.config.fallbackFilePath ? "MP4 File" : "None"
70315
70378
  };
70316
70379
  },
70317
70380
  runtime: {
@@ -70319,7 +70382,8 @@ function info_default7({ defineComponent, Av: Av2, validation: { Z: Z3, SourceNa
70319
70382
  activeSource: "",
70320
70383
  availableSources: [],
70321
70384
  sourcePreviews: {},
70322
- formatWarnings: []
70385
+ formatWarnings: [],
70386
+ sourcePriority: []
70323
70387
  }),
70324
70388
  handleEvent: (ev2, state) => {
70325
70389
  const evType = ev2.type;
@@ -70358,6 +70422,8 @@ function info_default7({ defineComponent, Av: Av2, validation: { Z: Z3, SourceNa
70358
70422
  const newWarnings = [ev2.message, ...currentWarnings].slice(0, 10);
70359
70423
  return { ...state, formatWarnings: newWarnings };
70360
70424
  }
70425
+ case "priority-order-changed":
70426
+ return { ...state, sourcePriority: ev2.sourcePriority };
70361
70427
  case "error":
70362
70428
  case "automatic-failover":
70363
70429
  return state;
@@ -70365,8 +70431,8 @@ function info_default7({ defineComponent, Av: Av2, validation: { Z: Z3, SourceNa
70365
70431
  assertUnreachable3(evType);
70366
70432
  }
70367
70433
  },
70368
- inline: InlineView4,
70369
- summary: InlineView4,
70434
+ inline: InlineView3,
70435
+ summary: InlineView3,
70370
70436
  fullscreen: FullscreenView
70371
70437
  },
70372
70438
  extraValidation: function(ctx) {
@@ -70417,6 +70483,23 @@ function info_default7({ defineComponent, Av: Av2, validation: { Z: Z3, SourceNa
70417
70483
  optional: true
70418
70484
  }
70419
70485
  },
70486
+ fallbackFilePath: {
70487
+ help: "Optional MP4 file to use as fallback",
70488
+ advanced: true,
70489
+ hint: {
70490
+ type: "text",
70491
+ optional: true,
70492
+ envOverride: true
70493
+ }
70494
+ },
70495
+ sourcePriority: {
70496
+ help: "Initial priority order for sources (first = highest priority)",
70497
+ advanced: true,
70498
+ hint: {
70499
+ type: "list",
70500
+ defaultValue: []
70501
+ }
70502
+ },
70420
70503
  notes: {
70421
70504
  help: "Optional notes",
70422
70505
  hint: {
@@ -70477,7 +70560,7 @@ function info_default8({ defineComponent, validation: { Z: Z3 } }) {
70477
70560
  }
70478
70561
 
70479
70562
  // build/client/util.agent/summary-view.js
70480
- var import_jsx_runtime10 = __toESM(require_jsx_runtime());
70563
+ var import_jsx_runtime9 = __toESM(require_jsx_runtime());
70481
70564
  var import_react8 = __toESM(require_react());
70482
70565
  function SummaryView4({ state, config, sendCommand }) {
70483
70566
  const [showDetailedActions, setShowDetailedActions] = (0, import_react8.useState)(false);
@@ -70535,24 +70618,24 @@ function SummaryView4({ state, config, sendCommand }) {
70535
70618
  return structured?.decision;
70536
70619
  });
70537
70620
  const buttonClass = "mt-2 mb-3 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-4 py-2 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800";
70538
- return (0, import_jsx_runtime10.jsxs)("div", { className: "space-y-4 mb-5", children: [(0, import_jsx_runtime10.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Agent Status" }), (0, import_jsx_runtime10.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime10.jsxs)("div", { className: `flex items-center gap-2 ${getStatusColor(state.status, state.isRunning)}`, children: [(0, import_jsx_runtime10.jsx)("span", { className: "text-lg", children: getStatusIcon(state.status, state.isRunning) }), (0, import_jsx_runtime10.jsx)("span", { className: "font-medium capitalize", children: state.isRunning ? state.status : "stopped" })] }), (0, import_jsx_runtime10.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: [(0, import_jsx_runtime10.jsxs)("div", { children: ["Cycles: ", state.cyclesThisMinute, "/min \u2022 ", state.totalCycles, " total"] }), (0, import_jsx_runtime10.jsxs)("div", { children: ["Components: ", state.discoveredComponents.length, " discovered"] })] })] }), (0, import_jsx_runtime10.jsxs)("div", { children: [(0, import_jsx_runtime10.jsx)("label", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Goal:" }), (0, import_jsx_runtime10.jsx)("div", { className: "text-sm text-gray-700 dark:text-gray-300 mt-1 p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: config.goal })] }), recentDecision && (0, import_jsx_runtime10.jsxs)("div", { children: [(0, import_jsx_runtime10.jsx)("label", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Recent Decision:" }), (0, import_jsx_runtime10.jsx)("div", { className: "text-sm text-gray-700 dark:text-gray-300 mt-1 p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: parseStructuredResponse(recentDecision)?.decision || recentDecision.description })] }), state.currentTask && (0, import_jsx_runtime10.jsxs)("div", { children: [(0, import_jsx_runtime10.jsx)("label", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Current Task:" }), (0, import_jsx_runtime10.jsxs)("div", { className: "mt-1 p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: [(0, import_jsx_runtime10.jsx)("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: state.currentTask.description }), (0, import_jsx_runtime10.jsx)("div", { className: `inline-flex px-2 py-1 mt-1 text-xs font-semibold rounded-full ${state.currentTask.status === "completed" ? "bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300" : state.currentTask.status === "failed" ? "bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300" : state.currentTask.status === "in_progress" ? "bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300" : "bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-300"}`, children: state.currentTask.status.replace("_", " ") })] })] }), state.lastError && (0, import_jsx_runtime10.jsxs)("div", { className: "p-2 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded", children: [(0, import_jsx_runtime10.jsx)("div", { className: "text-sm font-medium text-red-800 dark:text-red-200", children: "Error:" }), (0, import_jsx_runtime10.jsx)("div", { className: "text-sm text-red-700 dark:text-red-300", children: state.lastError })] }), (0, import_jsx_runtime10.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime10.jsx)("button", { type: "button", className: buttonClass, onClick: () => {
70621
+ return (0, import_jsx_runtime9.jsxs)("div", { className: "space-y-4 mb-5", children: [(0, import_jsx_runtime9.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Agent Status" }), (0, import_jsx_runtime9.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime9.jsxs)("div", { className: `flex items-center gap-2 ${getStatusColor(state.status, state.isRunning)}`, children: [(0, import_jsx_runtime9.jsx)("span", { className: "text-lg", children: getStatusIcon(state.status, state.isRunning) }), (0, import_jsx_runtime9.jsx)("span", { className: "font-medium capitalize", children: state.isRunning ? state.status : "stopped" })] }), (0, import_jsx_runtime9.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: [(0, import_jsx_runtime9.jsxs)("div", { children: ["Cycles: ", state.cyclesThisMinute, "/min \u2022 ", state.totalCycles, " total"] }), (0, import_jsx_runtime9.jsxs)("div", { children: ["Components: ", state.discoveredComponents.length, " discovered"] })] })] }), (0, import_jsx_runtime9.jsxs)("div", { children: [(0, import_jsx_runtime9.jsx)("label", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Goal:" }), (0, import_jsx_runtime9.jsx)("div", { className: "text-sm text-gray-700 dark:text-gray-300 mt-1 p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: config.goal })] }), recentDecision && (0, import_jsx_runtime9.jsxs)("div", { children: [(0, import_jsx_runtime9.jsx)("label", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Recent Decision:" }), (0, import_jsx_runtime9.jsx)("div", { className: "text-sm text-gray-700 dark:text-gray-300 mt-1 p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: parseStructuredResponse(recentDecision)?.decision || recentDecision.description })] }), state.currentTask && (0, import_jsx_runtime9.jsxs)("div", { children: [(0, import_jsx_runtime9.jsx)("label", { className: "text-sm font-medium text-gray-900 dark:text-white", children: "Current Task:" }), (0, import_jsx_runtime9.jsxs)("div", { className: "mt-1 p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: [(0, import_jsx_runtime9.jsx)("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: state.currentTask.description }), (0, import_jsx_runtime9.jsx)("div", { className: `inline-flex px-2 py-1 mt-1 text-xs font-semibold rounded-full ${state.currentTask.status === "completed" ? "bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300" : state.currentTask.status === "failed" ? "bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300" : state.currentTask.status === "in_progress" ? "bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300" : "bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-300"}`, children: state.currentTask.status.replace("_", " ") })] })] }), state.lastError && (0, import_jsx_runtime9.jsxs)("div", { className: "p-2 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded", children: [(0, import_jsx_runtime9.jsx)("div", { className: "text-sm font-medium text-red-800 dark:text-red-200", children: "Error:" }), (0, import_jsx_runtime9.jsx)("div", { className: "text-sm text-red-700 dark:text-red-300", children: state.lastError })] }), (0, import_jsx_runtime9.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime9.jsx)("button", { type: "button", className: buttonClass, onClick: () => {
70539
70622
  if (state.isRunning) {
70540
70623
  sendCommand({ type: "stop_agent" });
70541
70624
  } else {
70542
70625
  sendCommand({ type: "start_agent" });
70543
70626
  }
70544
- }, children: state.isRunning ? "Stop Agent" : "Start Agent" }), state.isRunning && (0, import_jsx_runtime10.jsx)("button", { type: "button", className: "text-gray-900 dark:text-white w-full bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 font-medium rounded-lg text-sm px-4 py-2 dark:bg-gray-800 dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700", onClick: () => {
70627
+ }, children: state.isRunning ? "Stop Agent" : "Start Agent" }), state.isRunning && (0, import_jsx_runtime9.jsx)("button", { type: "button", className: "text-gray-900 dark:text-white w-full bg-white border border-gray-300 focus:outline-none hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 font-medium rounded-lg text-sm px-4 py-2 dark:bg-gray-800 dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 dark:focus:ring-gray-700", onClick: () => {
70545
70628
  sendCommand({ type: "pause_agent" });
70546
- }, children: "Pause Agent" })] }), (0, import_jsx_runtime10.jsxs)("div", { children: [(0, import_jsx_runtime10.jsxs)("button", { type: "button", className: "text-sm text-blue-600 dark:text-blue-400 hover:underline", onClick: () => setShowDetailedActions(!showDetailedActions), children: [showDetailedActions ? "Hide" : "Show", " Recent Actions (", state.recentActions.length, ")"] }), showDetailedActions && (0, import_jsx_runtime10.jsx)("div", { className: "mt-2 space-y-2 max-h-60 overflow-y-auto", children: state.recentActions.slice(0, 10).map((action, index3) => {
70629
+ }, children: "Pause Agent" })] }), (0, import_jsx_runtime9.jsxs)("div", { children: [(0, import_jsx_runtime9.jsxs)("button", { type: "button", className: "text-sm text-blue-600 dark:text-blue-400 hover:underline", onClick: () => setShowDetailedActions(!showDetailedActions), children: [showDetailedActions ? "Hide" : "Show", " Recent Actions (", state.recentActions.length, ")"] }), showDetailedActions && (0, import_jsx_runtime9.jsx)("div", { className: "mt-2 space-y-2 max-h-60 overflow-y-auto", children: state.recentActions.slice(0, 10).map((action, index3) => {
70547
70630
  const structured = parseStructuredResponse(action);
70548
- return (0, import_jsx_runtime10.jsxs)("div", { className: "text-xs p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: [(0, import_jsx_runtime10.jsx)("div", { className: `font-medium ${action.success ? "text-green-700 dark:text-green-300" : "text-red-700 dark:text-red-300"}`, children: structured?.decision || action.description }), (0, import_jsx_runtime10.jsx)("div", { className: "text-gray-600 dark:text-gray-400 mt-1", children: new Date(action.timestamp).toLocaleTimeString() }), action.error && (0, import_jsx_runtime10.jsx)("div", { className: "text-red-600 dark:text-red-400 mt-1", children: action.error })] }, `${action.id}-${index3}`);
70631
+ return (0, import_jsx_runtime9.jsxs)("div", { className: "text-xs p-2 bg-gray-50 dark:bg-gray-800 rounded border", children: [(0, import_jsx_runtime9.jsx)("div", { className: `font-medium ${action.success ? "text-green-700 dark:text-green-300" : "text-red-700 dark:text-red-300"}`, children: structured?.decision || action.description }), (0, import_jsx_runtime9.jsx)("div", { className: "text-gray-600 dark:text-gray-400 mt-1", children: new Date(action.timestamp).toLocaleTimeString() }), action.error && (0, import_jsx_runtime9.jsx)("div", { className: "text-red-600 dark:text-red-400 mt-1", children: action.error })] }, `${action.id}-${index3}`);
70549
70632
  }) })] })] });
70550
70633
  }
70551
70634
  var summary_view_default3 = SummaryView4;
70552
70635
 
70553
70636
  // build/client/util.agent/inline-view.js
70554
- var import_jsx_runtime11 = __toESM(require_jsx_runtime());
70555
- function InlineView5({ state, config }) {
70637
+ var import_jsx_runtime10 = __toESM(require_jsx_runtime());
70638
+ function InlineView4({ state, config }) {
70556
70639
  const recentDecision = state.recentActions.find((action) => {
70557
70640
  if (action.type === "analysis" && action.result && typeof action.result === "object") {
70558
70641
  const result = action.result;
@@ -70596,12 +70679,12 @@ function InlineView5({ state, config }) {
70596
70679
  return "\u{1F916}";
70597
70680
  }
70598
70681
  };
70599
- return (0, import_jsx_runtime11.jsx)("div", { id: `agent-${config.id}`, className: "p-3 space-y-2", children: (0, import_jsx_runtime11.jsxs)("div", { className: "w-80 grid grid-cols-[min-content,1fr] gap-x-3 gap-y-1 text-sm", children: [(0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: "Status:" }), (0, import_jsx_runtime11.jsxs)("div", { className: `flex items-center gap-2 ${getStatusColor(state.status, state.isRunning)}`, children: [(0, import_jsx_runtime11.jsx)("span", { children: getStatusIcon(state.status, state.isRunning) }), (0, import_jsx_runtime11.jsx)("span", { className: "capitalize", children: state.isRunning ? state.status : "stopped" })] }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: "Cycles:" }), (0, import_jsx_runtime11.jsxs)("div", { className: "text-slate-700 dark:text-slate-300", children: [state.cyclesThisMinute, "/min \u2022 ", state.totalCycles, " total"] }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: "Goal:" }), (0, import_jsx_runtime11.jsx)("div", { className: "text-slate-700 dark:text-slate-300 truncate", title: config.goal, children: config.goal }), recentDecision && (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [(0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: "Recent:" }), (0, import_jsx_runtime11.jsx)("div", { className: "text-slate-700 dark:text-slate-300 truncate", title: recentDecision.result && typeof recentDecision.result === "object" ? recentDecision.result.structured_response?.decision : recentDecision.description, children: recentDecision.result && typeof recentDecision.result === "object" ? recentDecision.result.structured_response?.decision : recentDecision.description })] }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: "Components:" }), (0, import_jsx_runtime11.jsxs)("div", { className: "text-slate-700 dark:text-slate-300", children: [state.discoveredComponents.length, " discovered"] }), state.lastError && (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [(0, import_jsx_runtime11.jsx)("div", { className: "font-medium text-red-600", children: "Error:" }), (0, import_jsx_runtime11.jsx)("div", { className: "text-red-600 dark:text-red-400 truncate text-xs", title: state.lastError, children: state.lastError })] })] }) });
70682
+ return (0, import_jsx_runtime10.jsx)("div", { id: `agent-${config.id}`, className: "p-3 space-y-2", children: (0, import_jsx_runtime10.jsxs)("div", { className: "w-80 grid grid-cols-[min-content,1fr] gap-x-3 gap-y-1 text-sm", children: [(0, import_jsx_runtime10.jsx)("div", { className: "font-medium", children: "Status:" }), (0, import_jsx_runtime10.jsxs)("div", { className: `flex items-center gap-2 ${getStatusColor(state.status, state.isRunning)}`, children: [(0, import_jsx_runtime10.jsx)("span", { children: getStatusIcon(state.status, state.isRunning) }), (0, import_jsx_runtime10.jsx)("span", { className: "capitalize", children: state.isRunning ? state.status : "stopped" })] }), (0, import_jsx_runtime10.jsx)("div", { className: "font-medium", children: "Cycles:" }), (0, import_jsx_runtime10.jsxs)("div", { className: "text-slate-700 dark:text-slate-300", children: [state.cyclesThisMinute, "/min \u2022 ", state.totalCycles, " total"] }), (0, import_jsx_runtime10.jsx)("div", { className: "font-medium", children: "Goal:" }), (0, import_jsx_runtime10.jsx)("div", { className: "text-slate-700 dark:text-slate-300 truncate", title: config.goal, children: config.goal }), recentDecision && (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [(0, import_jsx_runtime10.jsx)("div", { className: "font-medium", children: "Recent:" }), (0, import_jsx_runtime10.jsx)("div", { className: "text-slate-700 dark:text-slate-300 truncate", title: recentDecision.result && typeof recentDecision.result === "object" ? recentDecision.result.structured_response?.decision : recentDecision.description, children: recentDecision.result && typeof recentDecision.result === "object" ? recentDecision.result.structured_response?.decision : recentDecision.description })] }), (0, import_jsx_runtime10.jsx)("div", { className: "font-medium", children: "Components:" }), (0, import_jsx_runtime10.jsxs)("div", { className: "text-slate-700 dark:text-slate-300", children: [state.discoveredComponents.length, " discovered"] }), state.lastError && (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [(0, import_jsx_runtime10.jsx)("div", { className: "font-medium text-red-600", children: "Error:" }), (0, import_jsx_runtime10.jsx)("div", { className: "text-red-600 dark:text-red-400 truncate text-xs", title: state.lastError, children: state.lastError })] })] }) });
70600
70683
  }
70601
- var inline_view_default4 = InlineView5;
70684
+ var inline_view_default3 = InlineView4;
70602
70685
 
70603
70686
  // build/client/util.agent/fullscreen-view.js
70604
- var import_jsx_runtime12 = __toESM(require_jsx_runtime());
70687
+ var import_jsx_runtime11 = __toESM(require_jsx_runtime());
70605
70688
  var React2 = __toESM(require_react());
70606
70689
  var import_react9 = __toESM(require_react());
70607
70690
  function FullscreenView2({ state, config, sendCommand, urls }) {
@@ -70661,43 +70744,43 @@ function FullscreenView2({ state, config, sendCommand, urls }) {
70661
70744
  };
70662
70745
  const formatValue = (value) => {
70663
70746
  if (value === null || value === void 0) {
70664
- return (0, import_jsx_runtime12.jsx)("div", { className: "text-sm text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 p-2 rounded border", children: value === null ? "null" : "undefined" });
70747
+ return (0, import_jsx_runtime11.jsx)("div", { className: "text-sm text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 p-2 rounded border", children: value === null ? "null" : "undefined" });
70665
70748
  }
70666
70749
  if (typeof value === "object") {
70667
- return (0, import_jsx_runtime12.jsx)("pre", { className: "whitespace-pre-wrap text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: JSON.stringify(value, null, 2) });
70750
+ return (0, import_jsx_runtime11.jsx)("pre", { className: "whitespace-pre-wrap text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: JSON.stringify(value, null, 2) });
70668
70751
  }
70669
70752
  if (typeof value === "string") {
70670
70753
  const trimmed = value.trim();
70671
70754
  if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
70672
70755
  try {
70673
70756
  const parsed = JSON.parse(trimmed);
70674
- return (0, import_jsx_runtime12.jsx)("pre", { className: "whitespace-pre-wrap text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: JSON.stringify(parsed, null, 2) });
70757
+ return (0, import_jsx_runtime11.jsx)("pre", { className: "whitespace-pre-wrap text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: JSON.stringify(parsed, null, 2) });
70675
70758
  } catch {
70676
70759
  }
70677
70760
  }
70678
- return (0, import_jsx_runtime12.jsx)("div", { className: "text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border whitespace-pre-wrap", children: value });
70761
+ return (0, import_jsx_runtime11.jsx)("div", { className: "text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border whitespace-pre-wrap", children: value });
70679
70762
  }
70680
- return (0, import_jsx_runtime12.jsx)("div", { className: "text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: typeof value === "object" && value !== null ? JSON.stringify(value) : String(value) });
70763
+ return (0, import_jsx_runtime11.jsx)("div", { className: "text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: typeof value === "object" && value !== null ? JSON.stringify(value) : String(value) });
70681
70764
  };
70682
70765
  const renderMemoryData = (memoryObject) => {
70683
70766
  if (!memoryObject || Object.keys(memoryObject).length === 0) {
70684
- return (0, import_jsx_runtime12.jsx)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: "No memory data" });
70767
+ return (0, import_jsx_runtime11.jsx)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: "No memory data" });
70685
70768
  }
70686
- return (0, import_jsx_runtime12.jsx)("div", { className: "space-y-3", children: Object.entries(memoryObject).map(([key, value]) => (0, import_jsx_runtime12.jsxs)("div", { className: "border-b border-gray-200 dark:border-gray-700 pb-3", children: [(0, import_jsx_runtime12.jsx)("div", { className: "text-xs font-medium text-gray-600 dark:text-gray-400 mb-2", children: key }), (0, import_jsx_runtime12.jsx)("div", { className: "pl-2", children: formatValue(value) })] }, key)) });
70769
+ return (0, import_jsx_runtime11.jsx)("div", { className: "space-y-3", children: Object.entries(memoryObject).map(([key, value]) => (0, import_jsx_runtime11.jsxs)("div", { className: "border-b border-gray-200 dark:border-gray-700 pb-3", children: [(0, import_jsx_runtime11.jsx)("div", { className: "text-xs font-medium text-gray-600 dark:text-gray-400 mb-2", children: key }), (0, import_jsx_runtime11.jsx)("div", { className: "pl-2", children: formatValue(value) })] }, key)) });
70687
70770
  };
70688
- return (0, import_jsx_runtime12.jsxs)("div", { className: "h-full w-full bg-gray-50 dark:bg-gray-900 overflow-hidden flex flex-col", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700 p-6", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between", children: [(0, import_jsx_runtime12.jsxs)("div", { children: [(0, import_jsx_runtime12.jsxs)("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: ["Agent: ", config.displayName] }), (0, import_jsx_runtime12.jsx)("p", { className: "text-gray-600 dark:text-gray-400 mt-1", children: config.goal })] }), (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-4", children: [(0, import_jsx_runtime12.jsx)("div", { className: `px-4 py-2 rounded-lg font-medium ${getStatusColor(state.status, state.isRunning)}`, children: state.isRunning ? state.status : "stopped" }), (0, import_jsx_runtime12.jsxs)("div", { className: "flex gap-2", children: [(0, import_jsx_runtime12.jsx)("button", { onClick: () => {
70771
+ return (0, import_jsx_runtime11.jsxs)("div", { className: "h-full w-full bg-gray-50 dark:bg-gray-900 overflow-hidden flex flex-col", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700 p-6", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between", children: [(0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsxs)("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: ["Agent: ", config.displayName] }), (0, import_jsx_runtime11.jsx)("p", { className: "text-gray-600 dark:text-gray-400 mt-1", children: config.goal })] }), (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center gap-4", children: [(0, import_jsx_runtime11.jsx)("div", { className: `px-4 py-2 rounded-lg font-medium ${getStatusColor(state.status, state.isRunning)}`, children: state.isRunning ? state.status : "stopped" }), (0, import_jsx_runtime11.jsxs)("div", { className: "flex gap-2", children: [(0, import_jsx_runtime11.jsx)("button", { onClick: () => {
70689
70772
  if (state.isRunning) {
70690
70773
  sendCommand({ type: "stop_agent" });
70691
70774
  } else {
70692
70775
  sendCommand({ type: "start_agent" });
70693
70776
  }
70694
- }, className: `px-4 py-2 rounded-lg font-medium text-white ${state.isRunning ? "bg-red-600 hover:bg-red-700" : "bg-green-600 hover:bg-green-700"}`, children: state.isRunning ? "Stop Agent" : "Start Agent" }), state.isRunning && (0, import_jsx_runtime12.jsx)("button", { onClick: () => sendCommand({ type: "pause_agent" }), className: "px-4 py-2 bg-yellow-600 hover:bg-yellow-700 text-white rounded-lg font-medium", children: "Pause" })] })] })] }), (0, import_jsx_runtime12.jsx)("div", { className: "mt-6 border-b border-gray-200 dark:border-gray-700", children: (0, import_jsx_runtime12.jsx)("nav", { className: "-mb-px flex space-x-8", children: ["status", "memory", "actions", "components"].map((tab) => (0, import_jsx_runtime12.jsx)("button", { onClick: () => setActiveTab(tab), className: `py-2 px-1 border-b-2 font-medium text-sm capitalize ${activeTab === tab ? "border-blue-500 text-blue-600 dark:text-blue-400" : "border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300"}`, children: tab }, tab)) }) })] }), (0, import_jsx_runtime12.jsxs)("div", { className: "flex-1 overflow-auto p-6", children: [activeTab === "status" && (0, import_jsx_runtime12.jsx)("div", { className: "max-w-6xl mx-auto", children: (0, import_jsx_runtime12.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime12.jsx)("h3", { className: "font-semibold text-lg mb-4 text-gray-900 dark:text-gray-100", children: "Agent Status" }), (0, import_jsx_runtime12.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [(0, import_jsx_runtime12.jsxs)("div", { children: [(0, import_jsx_runtime12.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Running:" }), (0, import_jsx_runtime12.jsx)("div", { className: "font-medium", children: state.isRunning ? "\u2705 Yes" : "\u274C No" })] }), (0, import_jsx_runtime12.jsxs)("div", { children: [(0, import_jsx_runtime12.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Status:" }), (0, import_jsx_runtime12.jsx)("div", { className: "font-medium capitalize", children: state.status })] }), (0, import_jsx_runtime12.jsxs)("div", { children: [(0, import_jsx_runtime12.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Cycles/Min:" }), (0, import_jsx_runtime12.jsx)("div", { className: "font-medium", children: state.cyclesThisMinute })] }), (0, import_jsx_runtime12.jsxs)("div", { children: [(0, import_jsx_runtime12.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Total Cycles:" }), (0, import_jsx_runtime12.jsx)("div", { className: "font-medium", children: state.totalCycles })] })] }), state.lastError && (0, import_jsx_runtime12.jsxs)("div", { className: "mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded", children: [(0, import_jsx_runtime12.jsx)("span", { className: "text-sm font-medium text-red-800 dark:text-red-200", children: "Last Error:" }), (0, import_jsx_runtime12.jsx)("div", { className: "text-sm text-red-700 dark:text-red-300 mt-1", children: state.lastError })] })] })] }), (0, import_jsx_runtime12.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime12.jsx)("h3", { className: "font-semibold text-lg mb-4 text-gray-900 dark:text-gray-100", children: "Current Task" }), state.currentTask ? (0, import_jsx_runtime12.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime12.jsx)("div", { className: "font-medium text-gray-900 dark:text-gray-100", children: state.currentTask.description }), (0, import_jsx_runtime12.jsx)("div", { className: `inline-flex px-2 py-1 text-xs font-semibold rounded-full ${state.currentTask.status === "completed" ? "bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300" : state.currentTask.status === "failed" ? "bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300" : state.currentTask.status === "in_progress" ? "bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300" : "bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-300"}`, children: state.currentTask.status.replace("_", " ") }), (0, import_jsx_runtime12.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Created: ", new Date(state.currentTask.createdAt).toLocaleString()] })] }) : (0, import_jsx_runtime12.jsx)("div", { className: "text-gray-600 dark:text-gray-400", children: "No active task" })] })] }) }), activeTab === "memory" && (0, import_jsx_runtime12.jsxs)("div", { className: "max-w-6xl mx-auto space-y-6", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between", children: [(0, import_jsx_runtime12.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Memory State" }), (0, import_jsx_runtime12.jsx)("button", { onClick: () => void fetchMemoryData(), disabled: loading, className: "px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg disabled:opacity-50", children: loading ? "Loading..." : "Refresh Memory" })] }), (0, import_jsx_runtime12.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime12.jsx)("h4", { className: "font-medium text-lg mb-3 text-gray-900 dark:text-gray-100", children: "Working Memory" }), (0, import_jsx_runtime12.jsx)("div", { className: "bg-gray-50 dark:bg-gray-900 p-4 rounded border max-h-96 overflow-y-auto", children: renderMemoryData(memoryData.working) })] }), (0, import_jsx_runtime12.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime12.jsx)("h4", { className: "font-medium text-lg mb-3 text-gray-900 dark:text-gray-100", children: "Persistent Memory" }), (0, import_jsx_runtime12.jsx)("div", { className: "bg-gray-50 dark:bg-gray-900 p-4 rounded border max-h-96 overflow-y-auto", children: renderMemoryData(memoryData.persistent) })] })] })] }), activeTab === "actions" && (0, import_jsx_runtime12.jsxs)("div", { className: "max-w-6xl mx-auto space-y-4", children: [(0, import_jsx_runtime12.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Recent Actions" }), (0, import_jsx_runtime12.jsx)("div", { className: "space-y-3", children: state.recentActions.slice(0, 20).map((action, index3) => {
70777
+ }, className: `px-4 py-2 rounded-lg font-medium text-white ${state.isRunning ? "bg-red-600 hover:bg-red-700" : "bg-green-600 hover:bg-green-700"}`, children: state.isRunning ? "Stop Agent" : "Start Agent" }), state.isRunning && (0, import_jsx_runtime11.jsx)("button", { onClick: () => sendCommand({ type: "pause_agent" }), className: "px-4 py-2 bg-yellow-600 hover:bg-yellow-700 text-white rounded-lg font-medium", children: "Pause" })] })] })] }), (0, import_jsx_runtime11.jsx)("div", { className: "mt-6 border-b border-gray-200 dark:border-gray-700", children: (0, import_jsx_runtime11.jsx)("nav", { className: "-mb-px flex space-x-8", children: ["status", "memory", "actions", "components"].map((tab) => (0, import_jsx_runtime11.jsx)("button", { onClick: () => setActiveTab(tab), className: `py-2 px-1 border-b-2 font-medium text-sm capitalize ${activeTab === tab ? "border-blue-500 text-blue-600 dark:text-blue-400" : "border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300"}`, children: tab }, tab)) }) })] }), (0, import_jsx_runtime11.jsxs)("div", { className: "flex-1 overflow-auto p-6", children: [activeTab === "status" && (0, import_jsx_runtime11.jsx)("div", { className: "max-w-6xl mx-auto", children: (0, import_jsx_runtime11.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime11.jsx)("h3", { className: "font-semibold text-lg mb-4 text-gray-900 dark:text-gray-100", children: "Agent Status" }), (0, import_jsx_runtime11.jsxs)("div", { className: "space-y-3", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [(0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Running:" }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: state.isRunning ? "\u2705 Yes" : "\u274C No" })] }), (0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Status:" }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium capitalize", children: state.status })] }), (0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Cycles/Min:" }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: state.cyclesThisMinute })] }), (0, import_jsx_runtime11.jsxs)("div", { children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Total Cycles:" }), (0, import_jsx_runtime11.jsx)("div", { className: "font-medium", children: state.totalCycles })] })] }), state.lastError && (0, import_jsx_runtime11.jsxs)("div", { className: "mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded", children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-sm font-medium text-red-800 dark:text-red-200", children: "Last Error:" }), (0, import_jsx_runtime11.jsx)("div", { className: "text-sm text-red-700 dark:text-red-300 mt-1", children: state.lastError })] })] })] }), (0, import_jsx_runtime11.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime11.jsx)("h3", { className: "font-semibold text-lg mb-4 text-gray-900 dark:text-gray-100", children: "Current Task" }), state.currentTask ? (0, import_jsx_runtime11.jsxs)("div", { className: "space-y-2", children: [(0, import_jsx_runtime11.jsx)("div", { className: "font-medium text-gray-900 dark:text-gray-100", children: state.currentTask.description }), (0, import_jsx_runtime11.jsx)("div", { className: `inline-flex px-2 py-1 text-xs font-semibold rounded-full ${state.currentTask.status === "completed" ? "bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300" : state.currentTask.status === "failed" ? "bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300" : state.currentTask.status === "in_progress" ? "bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300" : "bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-300"}`, children: state.currentTask.status.replace("_", " ") }), (0, import_jsx_runtime11.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Created: ", new Date(state.currentTask.createdAt).toLocaleString()] })] }) : (0, import_jsx_runtime11.jsx)("div", { className: "text-gray-600 dark:text-gray-400", children: "No active task" })] })] }) }), activeTab === "memory" && (0, import_jsx_runtime11.jsxs)("div", { className: "max-w-6xl mx-auto space-y-6", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center justify-between", children: [(0, import_jsx_runtime11.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Memory State" }), (0, import_jsx_runtime11.jsx)("button", { onClick: () => void fetchMemoryData(), disabled: loading, className: "px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg disabled:opacity-50", children: loading ? "Loading..." : "Refresh Memory" })] }), (0, import_jsx_runtime11.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [(0, import_jsx_runtime11.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime11.jsx)("h4", { className: "font-medium text-lg mb-3 text-gray-900 dark:text-gray-100", children: "Working Memory" }), (0, import_jsx_runtime11.jsx)("div", { className: "bg-gray-50 dark:bg-gray-900 p-4 rounded border max-h-96 overflow-y-auto", children: renderMemoryData(memoryData.working) })] }), (0, import_jsx_runtime11.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime11.jsx)("h4", { className: "font-medium text-lg mb-3 text-gray-900 dark:text-gray-100", children: "Persistent Memory" }), (0, import_jsx_runtime11.jsx)("div", { className: "bg-gray-50 dark:bg-gray-900 p-4 rounded border max-h-96 overflow-y-auto", children: renderMemoryData(memoryData.persistent) })] })] })] }), activeTab === "actions" && (0, import_jsx_runtime11.jsxs)("div", { className: "max-w-6xl mx-auto space-y-4", children: [(0, import_jsx_runtime11.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Recent Actions" }), (0, import_jsx_runtime11.jsx)("div", { className: "space-y-3", children: state.recentActions.slice(0, 20).map((action, index3) => {
70695
70778
  const structured = parseStructuredResponse(action);
70696
70779
  const isCycleStart = action.type === "analysis" && (action.description?.includes("cycle") || action.description?.includes("Initialization"));
70697
70780
  const prevAction = index3 > 0 ? state.recentActions[index3 - 1] : null;
70698
70781
  const showCycleBoundary = isCycleStart && prevAction;
70699
- return (0, import_jsx_runtime12.jsxs)("div", { children: [showCycleBoundary && (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center my-6", children: [(0, import_jsx_runtime12.jsx)("div", { className: "flex-1 border-t border-gray-300 dark:border-gray-600" }), (0, import_jsx_runtime12.jsx)("div", { className: "px-4 text-sm font-medium text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 rounded-full border border-gray-300 dark:border-gray-600", children: action.description?.includes("Initialization") ? "INITIALIZATION CYCLE" : "NEW DECISION CYCLE" }), (0, import_jsx_runtime12.jsx)("div", { className: "flex-1 border-t border-gray-300 dark:border-gray-600" })] }), (0, import_jsx_runtime12.jsxs)("div", { className: `bg-white dark:bg-gray-800 rounded-lg p-4 shadow-sm border border-gray-200 dark:border-gray-700 ${isCycleStart ? "border-l-4 border-l-blue-500 dark:border-l-blue-400" : ""}`, children: [(0, import_jsx_runtime12.jsx)("div", { className: "flex items-start justify-between mb-2", children: (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-3", children: [(0, import_jsx_runtime12.jsx)("span", { className: `inline-flex px-2 py-1 text-xs font-semibold rounded-full ${action.success ? "bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300" : "bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`, children: action.type.replace("_", " ") }), (0, import_jsx_runtime12.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: new Date(action.timestamp).toLocaleString() }), isCycleStart && (0, import_jsx_runtime12.jsx)("span", { className: "inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300", children: "CYCLE START" })] }) }), (0, import_jsx_runtime12.jsx)("div", { className: "text-gray-900 dark:text-gray-100 font-medium mb-1", children: structured?.decision || action.description }), structured?.why && (0, import_jsx_runtime12.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, import_jsx_runtime12.jsx)("strong", { children: "Why:" }), " ", structured.why] }), action.parameters && Object.keys(action.parameters).length > 0 && (0, import_jsx_runtime12.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, import_jsx_runtime12.jsx)("strong", { children: "Parameters:" }), (0, import_jsx_runtime12.jsx)("div", { className: "mt-1 pl-2", children: formatValue(action.parameters) })] }), action.result && (0, import_jsx_runtime12.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, import_jsx_runtime12.jsx)("strong", { children: "Result:" }), (0, import_jsx_runtime12.jsx)("div", { className: "mt-1 pl-2", children: formatValue(action.result) })] }), action.error && (0, import_jsx_runtime12.jsxs)("div", { className: "text-sm text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 p-2 rounded mt-2", children: [(0, import_jsx_runtime12.jsx)("strong", { children: "Error:" }), " ", action.error] })] })] }, `${action.id}-${index3}`);
70700
- }) })] }), activeTab === "components" && (0, import_jsx_runtime12.jsxs)("div", { className: "max-w-6xl mx-auto space-y-4", children: [(0, import_jsx_runtime12.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Discovered Components" }), (0, import_jsx_runtime12.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4", children: [state.discoveredComponents.map((component) => (0, import_jsx_runtime12.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-4 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime12.jsx)("div", { className: "font-medium text-gray-900 dark:text-gray-100", children: component.id }), (0, import_jsx_runtime12.jsx)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: component.type }), (0, import_jsx_runtime12.jsxs)("div", { className: "text-xs", children: [(0, import_jsx_runtime12.jsx)("span", { className: "text-gray-600 dark:text-gray-400", children: "Capabilities:" }), (0, import_jsx_runtime12.jsx)("div", { className: "flex flex-wrap gap-1 mt-1", children: component.capabilities.map((capability, index3) => (0, import_jsx_runtime12.jsx)("span", { className: "inline-flex px-1 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 rounded text-xs", children: capability }, index3)) })] })] }, component.id)), state.discoveredComponents.length === 0 && (0, import_jsx_runtime12.jsx)("div", { className: "col-span-full text-center text-gray-600 dark:text-gray-400 py-8", children: "No components discovered yet" })] })] })] })] });
70782
+ return (0, import_jsx_runtime11.jsxs)("div", { children: [showCycleBoundary && (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center my-6", children: [(0, import_jsx_runtime11.jsx)("div", { className: "flex-1 border-t border-gray-300 dark:border-gray-600" }), (0, import_jsx_runtime11.jsx)("div", { className: "px-4 text-sm font-medium text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 rounded-full border border-gray-300 dark:border-gray-600", children: action.description?.includes("Initialization") ? "INITIALIZATION CYCLE" : "NEW DECISION CYCLE" }), (0, import_jsx_runtime11.jsx)("div", { className: "flex-1 border-t border-gray-300 dark:border-gray-600" })] }), (0, import_jsx_runtime11.jsxs)("div", { className: `bg-white dark:bg-gray-800 rounded-lg p-4 shadow-sm border border-gray-200 dark:border-gray-700 ${isCycleStart ? "border-l-4 border-l-blue-500 dark:border-l-blue-400" : ""}`, children: [(0, import_jsx_runtime11.jsx)("div", { className: "flex items-start justify-between mb-2", children: (0, import_jsx_runtime11.jsxs)("div", { className: "flex items-center gap-3", children: [(0, import_jsx_runtime11.jsx)("span", { className: `inline-flex px-2 py-1 text-xs font-semibold rounded-full ${action.success ? "bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300" : "bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`, children: action.type.replace("_", " ") }), (0, import_jsx_runtime11.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: new Date(action.timestamp).toLocaleString() }), isCycleStart && (0, import_jsx_runtime11.jsx)("span", { className: "inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300", children: "CYCLE START" })] }) }), (0, import_jsx_runtime11.jsx)("div", { className: "text-gray-900 dark:text-gray-100 font-medium mb-1", children: structured?.decision || action.description }), structured?.why && (0, import_jsx_runtime11.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, import_jsx_runtime11.jsx)("strong", { children: "Why:" }), " ", structured.why] }), action.parameters && Object.keys(action.parameters).length > 0 && (0, import_jsx_runtime11.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, import_jsx_runtime11.jsx)("strong", { children: "Parameters:" }), (0, import_jsx_runtime11.jsx)("div", { className: "mt-1 pl-2", children: formatValue(action.parameters) })] }), action.result && (0, import_jsx_runtime11.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, import_jsx_runtime11.jsx)("strong", { children: "Result:" }), (0, import_jsx_runtime11.jsx)("div", { className: "mt-1 pl-2", children: formatValue(action.result) })] }), action.error && (0, import_jsx_runtime11.jsxs)("div", { className: "text-sm text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 p-2 rounded mt-2", children: [(0, import_jsx_runtime11.jsx)("strong", { children: "Error:" }), " ", action.error] })] })] }, `${action.id}-${index3}`);
70783
+ }) })] }), activeTab === "components" && (0, import_jsx_runtime11.jsxs)("div", { className: "max-w-6xl mx-auto space-y-4", children: [(0, import_jsx_runtime11.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Discovered Components" }), (0, import_jsx_runtime11.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4", children: [state.discoveredComponents.map((component) => (0, import_jsx_runtime11.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-4 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, import_jsx_runtime11.jsx)("div", { className: "font-medium text-gray-900 dark:text-gray-100", children: component.id }), (0, import_jsx_runtime11.jsx)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: component.type }), (0, import_jsx_runtime11.jsxs)("div", { className: "text-xs", children: [(0, import_jsx_runtime11.jsx)("span", { className: "text-gray-600 dark:text-gray-400", children: "Capabilities:" }), (0, import_jsx_runtime11.jsx)("div", { className: "flex flex-wrap gap-1 mt-1", children: component.capabilities.map((capability, index3) => (0, import_jsx_runtime11.jsx)("span", { className: "inline-flex px-1 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 rounded text-xs", children: capability }, index3)) })] })] }, component.id)), state.discoveredComponents.length === 0 && (0, import_jsx_runtime11.jsx)("div", { className: "col-span-full text-center text-gray-600 dark:text-gray-400 py-8", children: "No components discovered yet" })] })] })] })] });
70701
70784
  }
70702
70785
  var fullscreen_view_default = FullscreenView2;
70703
70786
 
@@ -70716,7 +70799,7 @@ function info_default9({ defineComponent, validation: { Z: Z3 } }) {
70716
70799
  },
70717
70800
  runtime: {
70718
70801
  summary: summary_view_default3,
70719
- inline: inline_view_default4,
70802
+ inline: inline_view_default3,
70720
70803
  fullscreen: fullscreen_view_default,
70721
70804
  initialState: () => ({
70722
70805
  status: "analyzing",
@@ -70839,7 +70922,7 @@ function assertUnreachable4(_) {
70839
70922
  }
70840
70923
 
70841
70924
  // build/client/util.aiChat/summary-view.js
70842
- var import_jsx_runtime13 = __toESM(require_jsx_runtime());
70925
+ var import_jsx_runtime12 = __toESM(require_jsx_runtime());
70843
70926
  var import_react10 = __toESM(require_react());
70844
70927
  function SummaryView5({ state, config: _config, sendCommand }) {
70845
70928
  const [inputMessage, setInputMessage] = (0, import_react10.useState)("");
@@ -70878,10 +70961,10 @@ function SummaryView5({ state, config: _config, sendCommand }) {
70878
70961
  const isUser = message.role === "user";
70879
70962
  const isSystem = message.role === "system";
70880
70963
  const hasError = !!message.error;
70881
- return (0, import_jsx_runtime13.jsxs)("div", { className: `message ${isUser ? "user" : isSystem ? "system" : "assistant"} ${hasError ? "error" : ""}`, children: [(0, import_jsx_runtime13.jsxs)("div", { className: "message-header", children: [(0, import_jsx_runtime13.jsx)("span", { className: "message-role", children: message.role }), (0, import_jsx_runtime13.jsx)("span", { className: "message-time", children: formatTimestamp(message.timestamp) })] }), (0, import_jsx_runtime13.jsx)("div", { className: "message-content", children: message.content }), message.toolCalls && message.toolCalls.length > 0 && (0, import_jsx_runtime13.jsxs)("div", { className: "tool-calls", children: [(0, import_jsx_runtime13.jsx)("div", { className: "tool-calls-header", children: "Tool Calls:" }), message.toolCalls.map((call, index3) => (0, import_jsx_runtime13.jsxs)("div", { className: "tool-call", children: [(0, import_jsx_runtime13.jsx)("span", { className: "tool-name", children: call.name }), (0, import_jsx_runtime13.jsx)("pre", { className: "tool-args", children: JSON.stringify(call.arguments, null, 2) })] }, index3))] }), hasError && (0, import_jsx_runtime13.jsxs)("div", { className: "message-error", children: ["Error: ", message.error] })] }, message.id);
70964
+ return (0, import_jsx_runtime12.jsxs)("div", { className: `message ${isUser ? "user" : isSystem ? "system" : "assistant"} ${hasError ? "error" : ""}`, children: [(0, import_jsx_runtime12.jsxs)("div", { className: "message-header", children: [(0, import_jsx_runtime12.jsx)("span", { className: "message-role", children: message.role }), (0, import_jsx_runtime12.jsx)("span", { className: "message-time", children: formatTimestamp(message.timestamp) })] }), (0, import_jsx_runtime12.jsx)("div", { className: "message-content", children: message.content }), message.toolCalls && message.toolCalls.length > 0 && (0, import_jsx_runtime12.jsxs)("div", { className: "tool-calls", children: [(0, import_jsx_runtime12.jsx)("div", { className: "tool-calls-header", children: "Tool Calls:" }), message.toolCalls.map((call, index3) => (0, import_jsx_runtime12.jsxs)("div", { className: "tool-call", children: [(0, import_jsx_runtime12.jsx)("span", { className: "tool-name", children: call.name }), (0, import_jsx_runtime12.jsx)("pre", { className: "tool-args", children: JSON.stringify(call.arguments, null, 2) })] }, index3))] }), hasError && (0, import_jsx_runtime12.jsxs)("div", { className: "message-error", children: ["Error: ", message.error] })] }, message.id);
70882
70965
  };
70883
70966
  const visibleMessages = state.messages?.filter((msg) => msg.role !== "system") || [];
70884
- return (0, import_jsx_runtime13.jsx)("div", { className: "util-aiChat", children: (0, import_jsx_runtime13.jsxs)("div", { className: "chat-container", children: [(0, import_jsx_runtime13.jsxs)("div", { className: "chat-header", children: [(0, import_jsx_runtime13.jsxs)("div", { className: "provider-info", children: [(0, import_jsx_runtime13.jsxs)("span", { className: `provider-status ${state.providerAvailable ? "available" : "unavailable"}`, children: [state.currentProvider, " ", state.providerAvailable ? "\u25CF" : "\u25CB"] }), state.lastError && (0, import_jsx_runtime13.jsx)("span", { className: "error-indicator", title: state.lastError, children: "\u26A0\uFE0F" })] }), (0, import_jsx_runtime13.jsx)("div", { className: "chat-controls", children: (0, import_jsx_runtime13.jsx)("button", { className: "reset-button", onClick: () => void handleReset(), disabled: state.isThinking || visibleMessages.length === 0, children: "Reset" }) })] }), (0, import_jsx_runtime13.jsxs)("div", { className: "messages-container", children: [!state.providerAvailable && (0, import_jsx_runtime13.jsx)("div", { className: "system-notice", children: (0, import_jsx_runtime13.jsxs)("div", { className: "notice-content", children: [(0, import_jsx_runtime13.jsx)("h3", { children: "LLM Service Unavailable" }), (0, import_jsx_runtime13.jsx)("p", { children: "The AI chat service is not configured or unavailable." }), (0, import_jsx_runtime13.jsxs)("p", { children: ["Provider: ", (0, import_jsx_runtime13.jsx)("code", { children: state.currentProvider })] }), (0, import_jsx_runtime13.jsx)("p", { children: "Please check your LLM configuration." })] }) }), visibleMessages.length === 0 && state.providerAvailable && (0, import_jsx_runtime13.jsx)("div", { className: "empty-state", children: (0, import_jsx_runtime13.jsx)("p", { children: "No messages yet. Start a conversation below!" }) }), visibleMessages.map(renderMessage), state.isThinking && (0, import_jsx_runtime13.jsx)("div", { className: "thinking-indicator", children: (0, import_jsx_runtime13.jsxs)("div", { className: "message assistant thinking", children: [(0, import_jsx_runtime13.jsx)("div", { className: "message-header", children: (0, import_jsx_runtime13.jsx)("span", { className: "message-role", children: "assistant" }) }), (0, import_jsx_runtime13.jsx)("div", { className: "message-content", children: (0, import_jsx_runtime13.jsxs)("div", { className: "typing-dots", children: [(0, import_jsx_runtime13.jsx)("span", {}), (0, import_jsx_runtime13.jsx)("span", {}), (0, import_jsx_runtime13.jsx)("span", {})] }) })] }) }), (0, import_jsx_runtime13.jsx)("div", { ref: messagesEndRef })] }), (0, import_jsx_runtime13.jsx)("div", { className: "chat-input-container", children: (0, import_jsx_runtime13.jsxs)("div", { className: "input-wrapper", children: [(0, import_jsx_runtime13.jsx)("textarea", { ref: inputRef, className: "message-input", value: inputMessage, onChange: (e) => setInputMessage(e.target.value), onKeyDown: handleKeyDown, placeholder: state.providerAvailable ? "Type your message... (Enter to send, Shift+Enter for new line)" : "LLM service unavailable", disabled: !state.providerAvailable || state.isThinking || isSubmitting, rows: 1 }), (0, import_jsx_runtime13.jsx)("button", { className: "send-button", onClick: handleSendMessage, disabled: !inputMessage.trim() || !state.providerAvailable || state.isThinking || isSubmitting, children: "Send" })] }) })] }) });
70967
+ return (0, import_jsx_runtime12.jsx)("div", { className: "util-aiChat", children: (0, import_jsx_runtime12.jsxs)("div", { className: "chat-container", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "chat-header", children: [(0, import_jsx_runtime12.jsxs)("div", { className: "provider-info", children: [(0, import_jsx_runtime12.jsxs)("span", { className: `provider-status ${state.providerAvailable ? "available" : "unavailable"}`, children: [state.currentProvider, " ", state.providerAvailable ? "\u25CF" : "\u25CB"] }), state.lastError && (0, import_jsx_runtime12.jsx)("span", { className: "error-indicator", title: state.lastError, children: "\u26A0\uFE0F" })] }), (0, import_jsx_runtime12.jsx)("div", { className: "chat-controls", children: (0, import_jsx_runtime12.jsx)("button", { className: "reset-button", onClick: () => void handleReset(), disabled: state.isThinking || visibleMessages.length === 0, children: "Reset" }) })] }), (0, import_jsx_runtime12.jsxs)("div", { className: "messages-container", children: [!state.providerAvailable && (0, import_jsx_runtime12.jsx)("div", { className: "system-notice", children: (0, import_jsx_runtime12.jsxs)("div", { className: "notice-content", children: [(0, import_jsx_runtime12.jsx)("h3", { children: "LLM Service Unavailable" }), (0, import_jsx_runtime12.jsx)("p", { children: "The AI chat service is not configured or unavailable." }), (0, import_jsx_runtime12.jsxs)("p", { children: ["Provider: ", (0, import_jsx_runtime12.jsx)("code", { children: state.currentProvider })] }), (0, import_jsx_runtime12.jsx)("p", { children: "Please check your LLM configuration." })] }) }), visibleMessages.length === 0 && state.providerAvailable && (0, import_jsx_runtime12.jsx)("div", { className: "empty-state", children: (0, import_jsx_runtime12.jsx)("p", { children: "No messages yet. Start a conversation below!" }) }), visibleMessages.map(renderMessage), state.isThinking && (0, import_jsx_runtime12.jsx)("div", { className: "thinking-indicator", children: (0, import_jsx_runtime12.jsxs)("div", { className: "message assistant thinking", children: [(0, import_jsx_runtime12.jsx)("div", { className: "message-header", children: (0, import_jsx_runtime12.jsx)("span", { className: "message-role", children: "assistant" }) }), (0, import_jsx_runtime12.jsx)("div", { className: "message-content", children: (0, import_jsx_runtime12.jsxs)("div", { className: "typing-dots", children: [(0, import_jsx_runtime12.jsx)("span", {}), (0, import_jsx_runtime12.jsx)("span", {}), (0, import_jsx_runtime12.jsx)("span", {})] }) })] }) }), (0, import_jsx_runtime12.jsx)("div", { ref: messagesEndRef })] }), (0, import_jsx_runtime12.jsx)("div", { className: "chat-input-container", children: (0, import_jsx_runtime12.jsxs)("div", { className: "input-wrapper", children: [(0, import_jsx_runtime12.jsx)("textarea", { ref: inputRef, className: "message-input", value: inputMessage, onChange: (e) => setInputMessage(e.target.value), onKeyDown: handleKeyDown, placeholder: state.providerAvailable ? "Type your message... (Enter to send, Shift+Enter for new line)" : "LLM service unavailable", disabled: !state.providerAvailable || state.isThinking || isSubmitting, rows: 1 }), (0, import_jsx_runtime12.jsx)("button", { className: "send-button", onClick: handleSendMessage, disabled: !inputMessage.trim() || !state.providerAvailable || state.isThinking || isSubmitting, children: "Send" })] }) })] }) });
70885
70968
  }
70886
70969
  var summary_view_default4 = SummaryView5;
70887
70970
 
@@ -70974,7 +71057,7 @@ function assertUnreachable5(_) {
70974
71057
  }
70975
71058
 
70976
71059
  // build/client/util.timestamps/inline-view.js
70977
- var import_jsx_runtime14 = __toESM(require_jsx_runtime());
71060
+ var import_jsx_runtime13 = __toESM(require_jsx_runtime());
70978
71061
  var import_react11 = __toESM(require_react());
70979
71062
 
70980
71063
  // ../../node_modules/@kurkle/color/dist/color.esm.js
@@ -85448,7 +85531,7 @@ Chart.register(...registerables);
85448
85531
  var auto_default = Chart;
85449
85532
 
85450
85533
  // build/client/util.timestamps/inline-view.js
85451
- function InlineView6({ state, config: _2 }) {
85534
+ function InlineView5({ state, config: _2 }) {
85452
85535
  const chartContainer = (0, import_react11.useRef)(null);
85453
85536
  const [chartControl, setChartControl] = (0, import_react11.useState)(void 0);
85454
85537
  (0, import_react11.useEffect)(() => {
@@ -85538,9 +85621,9 @@ function InlineView6({ state, config: _2 }) {
85538
85621
  }, [state]);
85539
85622
  {
85540
85623
  }
85541
- return (0, import_jsx_runtime14.jsx)("div", { className: "util-timestamp", children: (0, import_jsx_runtime14.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime14.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) }) });
85624
+ return (0, import_jsx_runtime13.jsx)("div", { className: "util-timestamp", children: (0, import_jsx_runtime13.jsx)("div", { className: "bg-gray-50 dark:bg-gray-700 rounded", style: { width: "360px", height: "200px", padding: "10px" }, children: (0, import_jsx_runtime13.jsx)("canvas", { className: "bg-gray-50 dark:bg-gray-700 rounded", ref: chartContainer }) }) });
85542
85625
  }
85543
- var inline_view_default5 = InlineView6;
85626
+ var inline_view_default4 = InlineView5;
85544
85627
 
85545
85628
  // build/client/util.timestamps/info.js
85546
85629
  function info_default11(R) {
@@ -85585,7 +85668,7 @@ function info_default11(R) {
85585
85668
  }
85586
85669
  return { ...state };
85587
85670
  },
85588
- inline: inline_view_default5
85671
+ inline: inline_view_default4
85589
85672
  },
85590
85673
  configForm: {
85591
85674
  form: {}