@flamingo-stack/openframe-frontend-core 0.0.176 → 0.0.177-snapshot.20260514141929

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 (44) hide show
  1. package/dist/{chunk-VY6SYM2L.js → chunk-AAX27BCR.js} +311 -467
  2. package/dist/chunk-AAX27BCR.js.map +1 -0
  3. package/dist/{chunk-WX7PT5C7.cjs → chunk-ALW3D72O.cjs} +61 -2
  4. package/dist/chunk-ALW3D72O.cjs.map +1 -0
  5. package/dist/{chunk-KB2N44BY.js → chunk-FMWHOUFE.js} +61 -2
  6. package/dist/chunk-FMWHOUFE.js.map +1 -0
  7. package/dist/{chunk-SVF4YOGM.cjs → chunk-L4T24AN4.cjs} +482 -638
  8. package/dist/chunk-L4T24AN4.cjs.map +1 -0
  9. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  10. package/dist/components/features/index.cjs +3 -5
  11. package/dist/components/features/index.cjs.map +1 -1
  12. package/dist/components/features/index.js +2 -4
  13. package/dist/components/features/video-player.d.ts +17 -20
  14. package/dist/components/features/video-player.d.ts.map +1 -1
  15. package/dist/components/features/youtube-embed.d.ts +18 -4
  16. package/dist/components/features/youtube-embed.d.ts.map +1 -1
  17. package/dist/components/index.cjs +3 -5
  18. package/dist/components/index.cjs.map +1 -1
  19. package/dist/components/index.js +2 -4
  20. package/dist/components/navigation/index.cjs +3 -3
  21. package/dist/components/navigation/index.js +2 -2
  22. package/dist/components/ui/index.cjs +3 -3
  23. package/dist/components/ui/index.js +2 -2
  24. package/dist/hooks/index.cjs +4 -2
  25. package/dist/hooks/index.cjs.map +1 -1
  26. package/dist/hooks/index.d.ts +1 -0
  27. package/dist/hooks/index.d.ts.map +1 -1
  28. package/dist/hooks/index.js +3 -1
  29. package/dist/hooks/use-near-viewport.d.ts +42 -0
  30. package/dist/hooks/use-near-viewport.d.ts.map +1 -0
  31. package/dist/index.cjs +3 -3
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.js +4 -4
  34. package/package.json +1 -1
  35. package/src/components/chat/chat-message-list.tsx +48 -27
  36. package/src/components/features/video-player.tsx +39 -176
  37. package/src/components/features/youtube-embed.tsx +107 -224
  38. package/src/hooks/index.ts +3 -0
  39. package/src/hooks/use-near-viewport.ts +118 -0
  40. package/dist/chunk-KB2N44BY.js.map +0 -1
  41. package/dist/chunk-SVF4YOGM.cjs.map +0 -1
  42. package/dist/chunk-VY6SYM2L.js.map +0 -1
  43. package/dist/chunk-WX7PT5C7.cjs.map +0 -1
  44. package/src/components/features/__tests__/video-player.test.tsx +0 -142
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- var _chunkWX7PT5C7cjs = require('./chunk-WX7PT5C7.cjs');
19
+ var _chunkALW3D72Ocjs = require('./chunk-ALW3D72O.cjs');
20
20
 
21
21
 
22
22
 
@@ -790,7 +790,7 @@ function AutocompleteInner(props, ref) {
790
790
  }, [valueArray, options]);
791
791
  const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
792
792
  const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
793
- const autoLimitTags = _chunkWX7PT5C7cjs.useAutoLimitTags.call(void 0, {
793
+ const autoLimitTags = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
794
794
  count: multiple ? selectedOptions.length : 0,
795
795
  limitTags: multiple ? limitTagsProp : 0,
796
796
  placeholder: inputPlaceholder
@@ -2737,7 +2737,7 @@ function toToolLabel(input) {
2737
2737
  if (!input) return "";
2738
2738
  const toolType = normalizeToolType(input);
2739
2739
  if (toolType) {
2740
- return _chunkWX7PT5C7cjs.toolLabels[toolType];
2740
+ return _chunkALW3D72Ocjs.toolLabels[toolType];
2741
2741
  }
2742
2742
  return input;
2743
2743
  }
@@ -2748,7 +2748,7 @@ function getToolTypeAliases(toolType) {
2748
2748
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
2749
2749
  }
2750
2750
  function getToolLabel(toolType) {
2751
- return _chunkWX7PT5C7cjs.toolLabels[toolType] || toolType;
2751
+ return _chunkALW3D72Ocjs.toolLabels[toolType] || toolType;
2752
2752
  }
2753
2753
 
2754
2754
  // src/types/shell.types.ts
@@ -3338,7 +3338,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
3338
3338
  onClick: onToggle,
3339
3339
  className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
3340
3340
  children: [
3341
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType, size: 16 }) }),
3341
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType, size: 16 }) }),
3342
3342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3343
3343
  "div",
3344
3344
  {
@@ -5047,7 +5047,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5047
5047
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
5048
5048
  onClick: () => setExpanded((prev) => !prev),
5049
5049
  children: [
5050
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5050
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5051
5051
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5052
5052
  "div",
5053
5053
  {
@@ -5432,10 +5432,13 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5432
5432
  return;
5433
5433
  }
5434
5434
  if (newCount > prevCount) {
5435
- const newSlice = messages.slice(prevCount);
5436
- const hasNewUser = newSlice.some((m) => m.role === "user");
5437
- if (hasNewUser) {
5438
- void scrollToBottom({ animation: "instant", ignoreEscapes: true });
5435
+ const isPrepend = prependRef.current.firstMessageId !== void 0 && _optionalChain([messages, 'access', _110 => _110[0], 'optionalAccess', _111 => _111.id]) !== prependRef.current.firstMessageId;
5436
+ if (!isPrepend) {
5437
+ const newSlice = messages.slice(prevCount);
5438
+ const hasNewUser = newSlice.some((m) => m.role === "user");
5439
+ if (hasNewUser) {
5440
+ void scrollToBottom({ animation: "instant", ignoreEscapes: true });
5441
+ }
5439
5442
  }
5440
5443
  }
5441
5444
  }, [autoScroll, messages, dialogId, scrollToBottom, scrollEl]);
@@ -5445,8 +5448,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5445
5448
  prependRef.current = { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 };
5446
5449
  return;
5447
5450
  }
5448
- const currentFirstId = _optionalChain([messages, 'access', _110 => _110[0], 'optionalAccess', _111 => _111.id]);
5449
- const currentFirstContent = _optionalChain([messages, 'access', _112 => _112[0], 'optionalAccess', _113 => _113.content]);
5451
+ const currentFirstId = _optionalChain([messages, 'access', _112 => _112[0], 'optionalAccess', _113 => _113.id]);
5452
+ const currentFirstContent = _optionalChain([messages, 'access', _114 => _114[0], 'optionalAccess', _115 => _115.content]);
5450
5453
  const prevFirstId = prependRef.current.firstMessageId;
5451
5454
  const prevHeight = prependRef.current.scrollHeight;
5452
5455
  if (currentFirstId !== prevFirstId) {
@@ -5475,14 +5478,14 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5475
5478
  if (!scrollContainer || !hasNextPage) return;
5476
5479
  const tryLoad = () => {
5477
5480
  if (isFetchingRef.current) return;
5478
- _optionalChain([onLoadMoreRef, 'access', _114 => _114.current, 'optionalCall', _115 => _115()]);
5481
+ _optionalChain([onLoadMoreRef, 'access', _116 => _116.current, 'optionalCall', _117 => _117()]);
5479
5482
  };
5480
5483
  let observer;
5481
5484
  if (sentinelElement) {
5482
5485
  observer = new IntersectionObserver(
5483
5486
  (entries) => {
5484
5487
  const entry = entries[0];
5485
- if (_optionalChain([entry, 'optionalAccess', _116 => _116.isIntersecting])) tryLoad();
5488
+ if (_optionalChain([entry, 'optionalAccess', _118 => _118.isIntersecting])) tryLoad();
5486
5489
  },
5487
5490
  { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
5488
5491
  );
@@ -5493,12 +5496,19 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5493
5496
  };
5494
5497
  scrollContainer.addEventListener("scroll", onScroll, { passive: true });
5495
5498
  return () => {
5496
- _optionalChain([observer, 'optionalAccess', _117 => _117.disconnect, 'call', _118 => _118()]);
5499
+ _optionalChain([observer, 'optionalAccess', _119 => _119.disconnect, 'call', _120 => _120()]);
5497
5500
  scrollContainer.removeEventListener("scroll", onScroll);
5498
5501
  };
5499
5502
  }, [hasNextPage, scrollEl, sentinelEl, messages.length]);
5500
5503
  _react.useImperativeHandle.call(void 0, ref, () => scrollRef.current, [scrollRef]);
5501
5504
  const showLoader = useDelayedFlag(isLoading, { delay: 200, minDuration: 400 });
5505
+ const setScrollRef = _react.useCallback.call(void 0, (el) => {
5506
+ scrollRef(el);
5507
+ setScrollEl(el);
5508
+ }, [scrollRef]);
5509
+ const setContentRef = _react.useCallback.call(void 0, (el) => {
5510
+ contentRef(el);
5511
+ }, [contentRef]);
5502
5512
  if (showLoader) {
5503
5513
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5504
5514
  ChatMessageListLoader,
@@ -5509,13 +5519,6 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5509
5519
  }
5510
5520
  );
5511
5521
  }
5512
- const setScrollRef = (el) => {
5513
- scrollRef(el);
5514
- setScrollEl(el);
5515
- };
5516
- const setContentRef = (el) => {
5517
- contentRef(el);
5518
- };
5519
5522
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex-1 min-h-0 flex flex-col", children: [
5520
5523
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5521
5524
  "div",
@@ -5656,7 +5659,7 @@ var ChatTicketItem = React15.forwardRef(
5656
5659
  {
5657
5660
  ref,
5658
5661
  type: "button",
5659
- onClick: () => _optionalChain([onClick, 'optionalCall', _119 => _119(ticket.id)]),
5662
+ onClick: () => _optionalChain([onClick, 'optionalCall', _121 => _121(ticket.id)]),
5660
5663
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5661
5664
  "flex items-center gap-4 w-full h-20 px-4",
5662
5665
  "bg-ods-card border-b border-ods-border",
@@ -6004,8 +6007,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
6004
6007
  var DialogListItem = _react.forwardRef.call(void 0,
6005
6008
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
6006
6009
  const handleClick = (e) => {
6007
- _optionalChain([onDialogSelect, 'optionalCall', _120 => _120(dialog.id)]);
6008
- _optionalChain([onClick, 'optionalCall', _121 => _121(e)]);
6010
+ _optionalChain([onDialogSelect, 'optionalCall', _122 => _122(dialog.id)]);
6011
+ _optionalChain([onClick, 'optionalCall', _123 => _123(e)]);
6009
6012
  };
6010
6013
  const formatTimestamp2 = (timestamp) => {
6011
6014
  if (!timestamp) return "";
@@ -6064,7 +6067,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6064
6067
  (entries) => {
6065
6068
  const [entry] = entries;
6066
6069
  if (entry.isIntersecting && !isFetchingRef.current) {
6067
- _optionalChain([onLoadMoreRef, 'access', _122 => _122.current, 'optionalCall', _123 => _123()]);
6070
+ _optionalChain([onLoadMoreRef, 'access', _124 => _124.current, 'optionalCall', _125 => _125()]);
6068
6071
  }
6069
6072
  },
6070
6073
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -6482,7 +6485,7 @@ function useNatsDialogSubscription({
6482
6485
  reconnectionBackoffRef.current = reconnectionBackoff;
6483
6486
  }, [reconnectionBackoff]);
6484
6487
  const acquireClient = _react.useCallback.call(void 0, (url) => {
6485
- if (_optionalChain([shared, 'optionalAccess', _124 => _124.wsUrl]) !== url) {
6488
+ if (_optionalChain([shared, 'optionalAccess', _126 => _126.wsUrl]) !== url) {
6486
6489
  if (shared) {
6487
6490
  shared.closeTimer && clearTimeout(shared.closeTimer);
6488
6491
  const old = shared;
@@ -6491,7 +6494,7 @@ function useNatsDialogSubscription({
6491
6494
  });
6492
6495
  }
6493
6496
  const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
6494
- const client = _chunkWX7PT5C7cjs.createNatsClient.call(void 0, {
6497
+ const client = _chunkALW3D72Ocjs.createNatsClient.call(void 0, {
6495
6498
  servers: url,
6496
6499
  name,
6497
6500
  user,
@@ -6573,7 +6576,7 @@ function useNatsDialogSubscription({
6573
6576
  if (closed) return;
6574
6577
  if (shared !== sharedConn) return;
6575
6578
  try {
6576
- await _optionalChain([onBeforeReconnectRef, 'access', _125 => _125.current, 'optionalCall', _126 => _126()]);
6579
+ await _optionalChain([onBeforeReconnectRef, 'access', _127 => _127.current, 'optionalCall', _128 => _128()]);
6577
6580
  } catch (e7) {
6578
6581
  }
6579
6582
  if (closed) return;
@@ -6606,22 +6609,22 @@ function useNatsDialogSubscription({
6606
6609
  }
6607
6610
  hadConnectionBeforeRef.current = true;
6608
6611
  retryAttempt = 0;
6609
- _optionalChain([onConnectRef, 'access', _127 => _127.current, 'optionalCall', _128 => _128()]);
6612
+ _optionalChain([onConnectRef, 'access', _129 => _129.current, 'optionalCall', _130 => _130()]);
6610
6613
  }
6611
6614
  if (disconnected) {
6612
6615
  setIsConnected(false);
6613
6616
  setIsSubscribed(false);
6614
6617
  subscriptionRefs.current.forEach((sub) => {
6615
6618
  try {
6616
- _optionalChain([sub, 'optionalAccess', _129 => _129.unsubscribe, 'call', _130 => _130()]);
6619
+ _optionalChain([sub, 'optionalAccess', _131 => _131.unsubscribe, 'call', _132 => _132()]);
6617
6620
  } catch (e9) {
6618
6621
  }
6619
6622
  });
6620
6623
  subscriptionRefs.current.clear();
6621
6624
  lastSubscribedDialogIdRef.current = null;
6622
- _optionalChain([abortControllerRef, 'access', _131 => _131.current, 'optionalAccess', _132 => _132.abort, 'call', _133 => _133()]);
6625
+ _optionalChain([abortControllerRef, 'access', _133 => _133.current, 'optionalAccess', _134 => _134.abort, 'call', _135 => _135()]);
6623
6626
  abortControllerRef.current = null;
6624
- _optionalChain([onDisconnectRef, 'access', _134 => _134.current, 'optionalCall', _135 => _135()]);
6627
+ _optionalChain([onDisconnectRef, 'access', _136 => _136.current, 'optionalCall', _137 => _137()]);
6625
6628
  scheduleRetry();
6626
6629
  }
6627
6630
  });
@@ -6637,7 +6640,7 @@ function useNatsDialogSubscription({
6637
6640
  sharedConn.connectPromise = null;
6638
6641
  if (!closed) {
6639
6642
  setIsConnected(false);
6640
- _optionalChain([onDisconnectRef, 'access', _136 => _136.current, 'optionalCall', _137 => _137()]);
6643
+ _optionalChain([onDisconnectRef, 'access', _138 => _138.current, 'optionalCall', _139 => _139()]);
6641
6644
  scheduleRetry();
6642
6645
  }
6643
6646
  }
@@ -6653,7 +6656,7 @@ function useNatsDialogSubscription({
6653
6656
  }
6654
6657
  subscriptionRefs.current.forEach((sub) => {
6655
6658
  try {
6656
- _optionalChain([sub, 'optionalAccess', _138 => _138.unsubscribe, 'call', _139 => _139()]);
6659
+ _optionalChain([sub, 'optionalAccess', _140 => _140.unsubscribe, 'call', _141 => _141()]);
6657
6660
  } catch (e11) {
6658
6661
  }
6659
6662
  });
@@ -6681,13 +6684,13 @@ function useNatsDialogSubscription({
6681
6684
  setIsSubscribed(false);
6682
6685
  subscriptionRefs.current.forEach((sub) => {
6683
6686
  try {
6684
- _optionalChain([sub, 'optionalAccess', _140 => _140.unsubscribe, 'call', _141 => _141()]);
6687
+ _optionalChain([sub, 'optionalAccess', _142 => _142.unsubscribe, 'call', _143 => _143()]);
6685
6688
  } catch (e12) {
6686
6689
  }
6687
6690
  });
6688
6691
  subscriptionRefs.current.clear();
6689
6692
  lastSubscribedDialogIdRef.current = null;
6690
- _optionalChain([abortControllerRef, 'access', _142 => _142.current, 'optionalAccess', _143 => _143.abort, 'call', _144 => _144()]);
6693
+ _optionalChain([abortControllerRef, 'access', _144 => _144.current, 'optionalAccess', _145 => _145.abort, 'call', _146 => _146()]);
6691
6694
  abortControllerRef.current = null;
6692
6695
  }
6693
6696
  return;
@@ -6699,12 +6702,12 @@ function useNatsDialogSubscription({
6699
6702
  if (subscriptionRefs.current.size > 0) {
6700
6703
  subscriptionRefs.current.forEach((sub) => {
6701
6704
  try {
6702
- _optionalChain([sub, 'optionalAccess', _145 => _145.unsubscribe, 'call', _146 => _146()]);
6705
+ _optionalChain([sub, 'optionalAccess', _147 => _147.unsubscribe, 'call', _148 => _148()]);
6703
6706
  } catch (e13) {
6704
6707
  }
6705
6708
  });
6706
6709
  subscriptionRefs.current.clear();
6707
- _optionalChain([abortControllerRef, 'access', _147 => _147.current, 'optionalAccess', _148 => _148.abort, 'call', _149 => _149()]);
6710
+ _optionalChain([abortControllerRef, 'access', _149 => _149.current, 'optionalAccess', _150 => _150.abort, 'call', _151 => _151()]);
6708
6711
  }
6709
6712
  abortControllerRef.current = new AbortController();
6710
6713
  const abort = abortControllerRef.current;
@@ -6736,7 +6739,7 @@ function useNatsDialogSubscription({
6736
6739
  });
6737
6740
  lastSubscribedDialogIdRef.current = dialogId;
6738
6741
  setIsSubscribed(true);
6739
- _optionalChain([onSubscribedRef, 'access', _150 => _150.current, 'optionalCall', _151 => _151()]);
6742
+ _optionalChain([onSubscribedRef, 'access', _152 => _152.current, 'optionalCall', _153 => _153()]);
6740
6743
  };
6741
6744
  if (isConnectedRef.current) {
6742
6745
  createSubscriptions();
@@ -6746,7 +6749,7 @@ function useNatsDialogSubscription({
6746
6749
  abort.abort();
6747
6750
  subscriptionRefs.current.forEach((sub) => {
6748
6751
  try {
6749
- _optionalChain([sub, 'optionalAccess', _152 => _152.unsubscribe, 'call', _153 => _153()]);
6752
+ _optionalChain([sub, 'optionalAccess', _154 => _154.unsubscribe, 'call', _155 => _155()]);
6750
6753
  } catch (e15) {
6751
6754
  }
6752
6755
  });
@@ -6787,7 +6790,7 @@ function useNatsDialogSubscription({
6787
6790
  });
6788
6791
  lastSubscribedDialogIdRef.current = dialogId2;
6789
6792
  setIsSubscribed(true);
6790
- _optionalChain([onSubscribedRef, 'access', _154 => _154.current, 'optionalCall', _155 => _155()]);
6793
+ _optionalChain([onSubscribedRef, 'access', _156 => _156.current, 'optionalCall', _157 => _157()]);
6791
6794
  } else if (subscriptionRefs.current.size > 0) {
6792
6795
  setIsSubscribed(true);
6793
6796
  }
@@ -6795,10 +6798,10 @@ function useNatsDialogSubscription({
6795
6798
  return { isConnected, isSubscribed, reconnectionCount };
6796
6799
  }
6797
6800
  function buildNatsWsUrl(apiBaseUrl, options) {
6798
- const path = _optionalChain([options, 'optionalAccess', _156 => _156.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
6801
+ const path = _optionalChain([options, 'optionalAccess', _158 => _158.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
6799
6802
  const u = new URL(path, apiBaseUrl);
6800
6803
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
6801
- if (_optionalChain([options, 'optionalAccess', _157 => _157.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _158 => _158.token])) {
6804
+ if (_optionalChain([options, 'optionalAccess', _159 => _159.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _160 => _160.token])) {
6802
6805
  u.searchParams.set("authorization", options.token);
6803
6806
  }
6804
6807
  return u.toString();
@@ -7109,7 +7112,7 @@ var MessageSegmentAccumulator = class {
7109
7112
  type: "tool_execution",
7110
7113
  data: {
7111
7114
  ...toolData,
7112
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _159 => _159.parameters])
7115
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _161 => _161.parameters])
7113
7116
  }
7114
7117
  };
7115
7118
  if (existingIndex !== -1) {
@@ -7133,8 +7136,8 @@ var MessageSegmentAccumulator = class {
7133
7136
  if (seg.type !== "approval_batch") return seg;
7134
7137
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
7135
7138
  if (!hasCall) return seg;
7136
- const prev = _optionalChain([seg, 'access', _160 => _160.data, 'access', _161 => _161.executions, 'optionalAccess', _162 => _162[execId]]);
7137
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _163 => _163.result]), success: _optionalChain([prev, 'optionalAccess', _164 => _164.success]) };
7139
+ const prev = _optionalChain([seg, 'access', _162 => _162.data, 'access', _163 => _163.executions, 'optionalAccess', _164 => _164[execId]]);
7140
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _165 => _165.result]), success: _optionalChain([prev, 'optionalAccess', _166 => _166.success]) };
7138
7141
  matched = true;
7139
7142
  return {
7140
7143
  ...seg,
@@ -7230,10 +7233,10 @@ var MessageSegmentAccumulator = class {
7230
7233
  const segment = {
7231
7234
  type: "approval_request",
7232
7235
  data: {
7233
- command: _optionalChain([pendingApproval, 'optionalAccess', _165 => _165.command]) || "",
7234
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _166 => _166.explanation]),
7236
+ command: _optionalChain([pendingApproval, 'optionalAccess', _167 => _167.command]) || "",
7237
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _168 => _168.explanation]),
7235
7238
  requestId,
7236
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _167 => _167.approvalType]) || approvalType
7239
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _169 => _169.approvalType]) || approvalType
7237
7240
  },
7238
7241
  status,
7239
7242
  onApprove: this.callbacks.onApprove,
@@ -7421,7 +7424,7 @@ function useRealtimeChunkProcessor(options) {
7421
7424
  if (initialState.escalatedApprovals) {
7422
7425
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
7423
7426
  initialState.escalatedApprovals.forEach((data, requestId) => {
7424
- _optionalChain([callbacks, 'access', _168 => _168.onEscalatedApproval, 'optionalCall', _169 => _169(requestId, data)]);
7427
+ _optionalChain([callbacks, 'access', _170 => _170.onEscalatedApproval, 'optionalCall', _171 => _171(requestId, data)]);
7425
7428
  });
7426
7429
  }
7427
7430
  hasInitializedWithData.current = true;
@@ -7440,30 +7443,30 @@ function useRealtimeChunkProcessor(options) {
7440
7443
  switch (action.action) {
7441
7444
  case "message_start":
7442
7445
  isInStreamRef.current = true;
7443
- _optionalChain([callbacks, 'access', _170 => _170.onStreamStart, 'optionalCall', _171 => _171()]);
7446
+ _optionalChain([callbacks, 'access', _172 => _172.onStreamStart, 'optionalCall', _173 => _173()]);
7444
7447
  accumulator.resetSegments();
7445
7448
  break;
7446
7449
  case "message_end":
7447
7450
  isInStreamRef.current = false;
7448
- _optionalChain([callbacks, 'access', _172 => _172.onStreamEnd, 'optionalCall', _173 => _173()]);
7451
+ _optionalChain([callbacks, 'access', _174 => _174.onStreamEnd, 'optionalCall', _175 => _175()]);
7449
7452
  accumulator.resetSegments();
7450
7453
  break;
7451
7454
  case "metadata":
7452
- _optionalChain([callbacks, 'access', _174 => _174.onMetadata, 'optionalCall', _175 => _175(action)]);
7455
+ _optionalChain([callbacks, 'access', _176 => _176.onMetadata, 'optionalCall', _177 => _177(action)]);
7453
7456
  break;
7454
7457
  case "text": {
7455
7458
  const segments = accumulator.appendText(action.text);
7456
- _optionalChain([callbacks, 'access', _176 => _176.onSegmentsUpdate, 'optionalCall', _177 => _177(segments)]);
7459
+ _optionalChain([callbacks, 'access', _178 => _178.onSegmentsUpdate, 'optionalCall', _179 => _179(segments)]);
7457
7460
  break;
7458
7461
  }
7459
7462
  case "thinking": {
7460
7463
  const segments = accumulator.appendThinking(action.text);
7461
- _optionalChain([callbacks, 'access', _178 => _178.onSegmentsUpdate, 'optionalCall', _179 => _179(segments)]);
7464
+ _optionalChain([callbacks, 'access', _180 => _180.onSegmentsUpdate, 'optionalCall', _181 => _181(segments)]);
7462
7465
  break;
7463
7466
  }
7464
7467
  case "tool_execution": {
7465
7468
  const segments = accumulator.addToolExecution(action.segment);
7466
- _optionalChain([callbacks, 'access', _180 => _180.onSegmentsUpdate, 'optionalCall', _181 => _181(segments)]);
7469
+ _optionalChain([callbacks, 'access', _182 => _182.onSegmentsUpdate, 'optionalCall', _183 => _183(segments)]);
7467
7470
  break;
7468
7471
  }
7469
7472
  case "approval_request": {
@@ -7477,10 +7480,10 @@ function useRealtimeChunkProcessor(options) {
7477
7480
  approvalType,
7478
7481
  status
7479
7482
  );
7480
- _optionalChain([callbacks, 'access', _182 => _182.onSegmentsUpdate, 'optionalCall', _183 => _183(segments)]);
7483
+ _optionalChain([callbacks, 'access', _184 => _184.onSegmentsUpdate, 'optionalCall', _185 => _185(segments)]);
7481
7484
  } else {
7482
7485
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
7483
- _optionalChain([callbacks, 'access', _184 => _184.onEscalatedApproval, 'optionalCall', _185 => _185(requestId, { command, explanation, approvalType })]);
7486
+ _optionalChain([callbacks, 'access', _186 => _186.onEscalatedApproval, 'optionalCall', _187 => _187(requestId, { command, explanation, approvalType })]);
7484
7487
  }
7485
7488
  break;
7486
7489
  }
@@ -7492,20 +7495,20 @@ function useRealtimeChunkProcessor(options) {
7492
7495
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
7493
7496
  pendingEscalatedRef.current.set(requestId, {
7494
7497
  command: summary,
7495
- explanation: _optionalChain([required, 'optionalAccess', _186 => _186.toolExplanation]),
7498
+ explanation: _optionalChain([required, 'optionalAccess', _188 => _188.toolExplanation]),
7496
7499
  approvalType,
7497
7500
  toolCalls
7498
7501
  });
7499
- _optionalChain([callbacks, 'access', _187 => _187.onEscalatedApproval, 'optionalCall', _188 => _188(requestId, {
7502
+ _optionalChain([callbacks, 'access', _189 => _189.onEscalatedApproval, 'optionalCall', _190 => _190(requestId, {
7500
7503
  command: summary,
7501
- explanation: _optionalChain([required, 'optionalAccess', _189 => _189.toolExplanation]),
7504
+ explanation: _optionalChain([required, 'optionalAccess', _191 => _191.toolExplanation]),
7502
7505
  approvalType
7503
7506
  })]);
7504
7507
  break;
7505
7508
  }
7506
7509
  if (batchApprovalsEnabled) {
7507
7510
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
7508
- _optionalChain([callbacks, 'access', _190 => _190.onSegmentsUpdate, 'optionalCall', _191 => _191(segments2)]);
7511
+ _optionalChain([callbacks, 'access', _192 => _192.onSegmentsUpdate, 'optionalCall', _193 => _193(segments2)]);
7509
7512
  break;
7510
7513
  }
7511
7514
  let segments = accumulator.getSegments();
@@ -7519,7 +7522,7 @@ function useRealtimeChunkProcessor(options) {
7519
7522
  status
7520
7523
  );
7521
7524
  }
7522
- _optionalChain([callbacks, 'access', _192 => _192.onSegmentsUpdate, 'optionalCall', _193 => _193(segments)]);
7525
+ _optionalChain([callbacks, 'access', _194 => _194.onSegmentsUpdate, 'optionalCall', _195 => _195(segments)]);
7523
7526
  break;
7524
7527
  }
7525
7528
  case "approval_result": {
@@ -7528,7 +7531,7 @@ function useRealtimeChunkProcessor(options) {
7528
7531
  const status = approved ? "approved" : "rejected";
7529
7532
  if (escalatedData) {
7530
7533
  pendingEscalatedRef.current.delete(requestId);
7531
- _optionalChain([callbacks, 'access', _194 => _194.onEscalatedApprovalResult, 'optionalCall', _195 => _195(requestId, approved, {
7534
+ _optionalChain([callbacks, 'access', _196 => _196.onEscalatedApprovalResult, 'optionalCall', _197 => _197(requestId, approved, {
7532
7535
  command: escalatedData.command,
7533
7536
  explanation: escalatedData.explanation,
7534
7537
  approvalType: escalatedData.approvalType
@@ -7541,7 +7544,7 @@ function useRealtimeChunkProcessor(options) {
7541
7544
  escalatedData.toolCalls,
7542
7545
  status
7543
7546
  );
7544
- _optionalChain([callbacks, 'access', _196 => _196.onSegmentsUpdate, 'optionalCall', _197 => _197(segments)]);
7547
+ _optionalChain([callbacks, 'access', _198 => _198.onSegmentsUpdate, 'optionalCall', _199 => _199(segments)]);
7545
7548
  } else {
7546
7549
  let segments = accumulator.getSegments();
7547
7550
  for (const call of escalatedData.toolCalls) {
@@ -7554,7 +7557,7 @@ function useRealtimeChunkProcessor(options) {
7554
7557
  status
7555
7558
  );
7556
7559
  }
7557
- _optionalChain([callbacks, 'access', _198 => _198.onSegmentsUpdate, 'optionalCall', _199 => _199(segments)]);
7560
+ _optionalChain([callbacks, 'access', _200 => _200.onSegmentsUpdate, 'optionalCall', _201 => _201(segments)]);
7558
7561
  }
7559
7562
  } else {
7560
7563
  const segments = accumulator.addApprovalRequest(
@@ -7564,63 +7567,63 @@ function useRealtimeChunkProcessor(options) {
7564
7567
  escalatedData.approvalType,
7565
7568
  status
7566
7569
  );
7567
- _optionalChain([callbacks, 'access', _200 => _200.onSegmentsUpdate, 'optionalCall', _201 => _201(segments)]);
7570
+ _optionalChain([callbacks, 'access', _202 => _202.onSegmentsUpdate, 'optionalCall', _203 => _203(segments)]);
7568
7571
  }
7569
7572
  } else {
7570
7573
  const segments = accumulator.updateApprovalStatus(requestId, status);
7571
- _optionalChain([callbacks, 'access', _202 => _202.onSegmentsUpdate, 'optionalCall', _203 => _203(segments)]);
7574
+ _optionalChain([callbacks, 'access', _204 => _204.onSegmentsUpdate, 'optionalCall', _205 => _205(segments)]);
7572
7575
  }
7573
7576
  void approvalType;
7574
7577
  break;
7575
7578
  }
7576
7579
  case "error": {
7577
7580
  let message;
7578
- if ("details" in action && _optionalChain([action, 'optionalAccess', _204 => _204.details])) {
7581
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _206 => _206.details])) {
7579
7582
  try {
7580
- message = _optionalChain([JSON, 'access', _205 => _205.parse, 'call', _206 => _206(action.details), 'optionalAccess', _207 => _207.error, 'optionalAccess', _208 => _208.message]);
7583
+ message = _optionalChain([JSON, 'access', _207 => _207.parse, 'call', _208 => _208(action.details), 'optionalAccess', _209 => _209.error, 'optionalAccess', _210 => _210.message]);
7581
7584
  } catch (e17) {
7582
7585
  message = action.details;
7583
7586
  }
7584
7587
  }
7585
7588
  const segments = accumulator.addError(action.error, message);
7586
- _optionalChain([callbacks, 'access', _209 => _209.onSegmentsUpdate, 'optionalCall', _210 => _210(segments)]);
7587
- _optionalChain([callbacks, 'access', _211 => _211.onError, 'optionalCall', _212 => _212(action.error, message)]);
7589
+ _optionalChain([callbacks, 'access', _211 => _211.onSegmentsUpdate, 'optionalCall', _212 => _212(segments)]);
7590
+ _optionalChain([callbacks, 'access', _213 => _213.onError, 'optionalCall', _214 => _214(action.error, message)]);
7588
7591
  break;
7589
7592
  }
7590
7593
  case "system": {
7591
- _optionalChain([callbacks, 'access', _213 => _213.onSystemMessage, 'optionalCall', _214 => _214(action.text)]);
7594
+ _optionalChain([callbacks, 'access', _215 => _215.onSystemMessage, 'optionalCall', _216 => _216(action.text)]);
7592
7595
  break;
7593
7596
  }
7594
7597
  case "direct_message": {
7595
- _optionalChain([callbacks, 'access', _215 => _215.onDirectMessage, 'optionalCall', _216 => _216(action.text, {
7598
+ _optionalChain([callbacks, 'access', _217 => _217.onDirectMessage, 'optionalCall', _218 => _218(action.text, {
7596
7599
  ownerType: action.ownerType,
7597
7600
  displayName: action.displayName
7598
7601
  })]);
7599
7602
  break;
7600
7603
  }
7601
7604
  case "message_request":
7602
- _optionalChain([callbacks, 'access', _217 => _217.onUserMessage, 'optionalCall', _218 => _218(action.text, {
7605
+ _optionalChain([callbacks, 'access', _219 => _219.onUserMessage, 'optionalCall', _220 => _220(action.text, {
7603
7606
  ownerType: action.ownerType,
7604
7607
  displayName: action.displayName
7605
7608
  })]);
7606
7609
  break;
7607
7610
  case "token_usage":
7608
- _optionalChain([callbacks, 'access', _219 => _219.onTokenUsage, 'optionalCall', _220 => _220(action.data)]);
7611
+ _optionalChain([callbacks, 'access', _221 => _221.onTokenUsage, 'optionalCall', _222 => _222(action.data)]);
7609
7612
  break;
7610
7613
  case "context_compaction_start": {
7611
7614
  const standalone = !isInStreamRef.current;
7612
7615
  const segments = accumulator.addContextCompaction();
7613
- _optionalChain([callbacks, 'access', _221 => _221.onSegmentsUpdate, 'optionalCall', _222 => _222(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7616
+ _optionalChain([callbacks, 'access', _223 => _223.onSegmentsUpdate, 'optionalCall', _224 => _224(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7614
7617
  break;
7615
7618
  }
7616
7619
  case "context_compaction_end": {
7617
7620
  const standalone = !isInStreamRef.current;
7618
7621
  const segments = accumulator.completeContextCompaction(action.summary);
7619
- _optionalChain([callbacks, 'access', _223 => _223.onSegmentsUpdate, 'optionalCall', _224 => _224(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7622
+ _optionalChain([callbacks, 'access', _225 => _225.onSegmentsUpdate, 'optionalCall', _226 => _226(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
7620
7623
  break;
7621
7624
  }
7622
7625
  case "dialog_closed":
7623
- _optionalChain([callbacks, 'access', _225 => _225.onDialogClosed, 'optionalCall', _226 => _226()]);
7626
+ _optionalChain([callbacks, 'access', _227 => _227.onDialogClosed, 'optionalCall', _228 => _228()]);
7624
7627
  break;
7625
7628
  default:
7626
7629
  break;
@@ -7656,12 +7659,12 @@ function useRealtimeChunkProcessor(options) {
7656
7659
 
7657
7660
  // src/components/chat/utils/process-historical-messages.ts
7658
7661
  function getOwnerDisplayName(owner) {
7659
- if (_optionalChain([owner, 'optionalAccess', _227 => _227.type]) === OWNER_TYPE.ADMIN && owner.user) {
7662
+ if (_optionalChain([owner, 'optionalAccess', _229 => _229.type]) === OWNER_TYPE.ADMIN && owner.user) {
7660
7663
  const { firstName, lastName } = owner.user;
7661
7664
  const name = [firstName, lastName].filter(Boolean).join(" ");
7662
7665
  if (name) return name;
7663
7666
  }
7664
- return _optionalChain([owner, 'optionalAccess', _228 => _228.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
7667
+ return _optionalChain([owner, 'optionalAccess', _230 => _230.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
7665
7668
  }
7666
7669
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
7667
7670
  messageDataArray.forEach((data) => {
@@ -7724,10 +7727,10 @@ function processHistoricalMessages(messages, options = {}) {
7724
7727
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
7725
7728
  return;
7726
7729
  }
7727
- const isUserMessage = _optionalChain([msg, 'access', _229 => _229.owner, 'optionalAccess', _230 => _230.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _231 => _231.owner, 'optionalAccess', _232 => _232.type]) === OWNER_TYPE.ADMIN;
7730
+ const isUserMessage = _optionalChain([msg, 'access', _231 => _231.owner, 'optionalAccess', _232 => _232.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _233 => _233.owner, 'optionalAccess', _234 => _234.type]) === OWNER_TYPE.ADMIN;
7728
7731
  if (isUserMessage) {
7729
7732
  flushAssistantMessage();
7730
- const userAuthorType = _optionalChain([msg, 'access', _233 => _233.owner, 'optionalAccess', _234 => _234.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7733
+ const userAuthorType = _optionalChain([msg, 'access', _235 => _235.owner, 'optionalAccess', _236 => _236.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7731
7734
  messageDataArray.forEach((data) => {
7732
7735
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
7733
7736
  processedMessages.push({
@@ -7751,7 +7754,7 @@ function processHistoricalMessages(messages, options = {}) {
7751
7754
  });
7752
7755
  const nextMsg = messages[index + 1];
7753
7756
  const isLastMessage = index === messages.length - 1;
7754
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _235 => _235.owner, 'optionalAccess', _236 => _236.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _237 => _237.owner, 'optionalAccess', _238 => _238.type]) === OWNER_TYPE.ADMIN);
7757
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _237 => _237.owner, 'optionalAccess', _238 => _238.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _239 => _239.owner, 'optionalAccess', _240 => _240.type]) === OWNER_TYPE.ADMIN);
7755
7758
  if (isLastMessage || nextIsFromUser) {
7756
7759
  flushAssistantMessage();
7757
7760
  }
@@ -7848,7 +7851,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7848
7851
  });
7849
7852
  }
7850
7853
  } else {
7851
- _optionalChain([escalatedApprovals, 'optionalAccess', _239 => _239.set, 'call', _240 => _240(data.approvalRequestId, {
7854
+ _optionalChain([escalatedApprovals, 'optionalAccess', _241 => _241.set, 'call', _242 => _242(data.approvalRequestId, {
7852
7855
  command: data.command || "",
7853
7856
  explanation: data.explanation,
7854
7857
  approvalType,
@@ -7861,8 +7864,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7861
7864
  if ("approvalRequestId" in data && data.approvalRequestId) {
7862
7865
  const existingStatus = approvalStatuses[data.approvalRequestId];
7863
7866
  const status = existingStatus || (data.approved ? "approved" : "rejected");
7864
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _241 => _241.get, 'call', _242 => _242(data.approvalRequestId)]);
7865
- if (_optionalChain([escalatedData, 'optionalAccess', _243 => _243.toolCalls]) && escalatedData.toolCalls.length > 0) {
7867
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _243 => _243.get, 'call', _244 => _244(data.approvalRequestId)]);
7868
+ if (_optionalChain([escalatedData, 'optionalAccess', _245 => _245.toolCalls]) && escalatedData.toolCalls.length > 0) {
7866
7869
  if (batchApprovalsEnabled) {
7867
7870
  accumulator.addApprovalBatch(
7868
7871
  data.approvalRequestId,
@@ -7882,7 +7885,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7882
7885
  );
7883
7886
  }
7884
7887
  }
7885
- _optionalChain([escalatedApprovals, 'optionalAccess', _244 => _244.delete, 'call', _245 => _245(data.approvalRequestId)]);
7888
+ _optionalChain([escalatedApprovals, 'optionalAccess', _246 => _246.delete, 'call', _247 => _247(data.approvalRequestId)]);
7886
7889
  break;
7887
7890
  }
7888
7891
  if (escalatedData) {
@@ -7891,7 +7894,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7891
7894
  explanation: escalatedData.explanation,
7892
7895
  approvalType: escalatedData.approvalType
7893
7896
  });
7894
- _optionalChain([escalatedApprovals, 'optionalAccess', _246 => _246.delete, 'call', _247 => _247(data.approvalRequestId)]);
7897
+ _optionalChain([escalatedApprovals, 'optionalAccess', _248 => _248.delete, 'call', _249 => _249(data.approvalRequestId)]);
7895
7898
  }
7896
7899
  const before = accumulator.getSegments();
7897
7900
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -7907,9 +7910,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
7907
7910
  case MESSAGE_TYPE.ERROR:
7908
7911
  if ("error" in data) {
7909
7912
  let message;
7910
- if ("details" in data && _optionalChain([data, 'optionalAccess', _248 => _248.details])) {
7913
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _250 => _250.details])) {
7911
7914
  try {
7912
- message = _optionalChain([JSON, 'access', _249 => _249.parse, 'call', _250 => _250(data.details), 'optionalAccess', _251 => _251.error, 'optionalAccess', _252 => _252.message]);
7915
+ message = _optionalChain([JSON, 'access', _251 => _251.parse, 'call', _252 => _252(data.details), 'optionalAccess', _253 => _253.error, 'optionalAccess', _254 => _254.message]);
7913
7916
  } catch (e18) {
7914
7917
  message = data.details;
7915
7918
  }
@@ -7992,10 +7995,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
7992
7995
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
7993
7996
  return;
7994
7997
  }
7995
- const isUserMessage = _optionalChain([msg, 'access', _253 => _253.owner, 'optionalAccess', _254 => _254.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _255 => _255.owner, 'optionalAccess', _256 => _256.type]) === OWNER_TYPE.ADMIN;
7998
+ const isUserMessage = _optionalChain([msg, 'access', _255 => _255.owner, 'optionalAccess', _256 => _256.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _257 => _257.owner, 'optionalAccess', _258 => _258.type]) === OWNER_TYPE.ADMIN;
7996
7999
  if (isUserMessage) {
7997
8000
  flushAssistantMessage();
7998
- const userAuthorType = _optionalChain([msg, 'access', _257 => _257.owner, 'optionalAccess', _258 => _258.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8001
+ const userAuthorType = _optionalChain([msg, 'access', _259 => _259.owner, 'optionalAccess', _260 => _260.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
7999
8002
  messageDataArray.forEach((data) => {
8000
8003
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8001
8004
  processedMessages.push({
@@ -8019,7 +8022,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8019
8022
  });
8020
8023
  const nextMsg = messages[index + 1];
8021
8024
  const isLastMessage = index === messages.length - 1;
8022
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _259 => _259.owner, 'optionalAccess', _260 => _260.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _261 => _261.owner, 'optionalAccess', _262 => _262.type]) === OWNER_TYPE.ADMIN);
8025
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _261 => _261.owner, 'optionalAccess', _262 => _262.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _263 => _263.owner, 'optionalAccess', _264 => _264.type]) === OWNER_TYPE.ADMIN);
8023
8026
  if (isLastMessage || nextIsFromUser) {
8024
8027
  flushAssistantMessage();
8025
8028
  }
@@ -8078,7 +8081,7 @@ function extractIncompleteMessageState(lastMessage) {
8078
8081
  break;
8079
8082
  case "approval_batch": {
8080
8083
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
8081
- (c) => _optionalChain([segment, 'access', _263 => _263.data, 'access', _264 => _264.executions, 'optionalAccess', _265 => _265[c.toolExecutionRequestId], 'optionalAccess', _266 => _266.status]) === "done"
8084
+ (c) => _optionalChain([segment, 'access', _265 => _265.data, 'access', _266 => _266.executions, 'optionalAccess', _267 => _267[c.toolExecutionRequestId], 'optionalAccess', _268 => _268.status]) === "done"
8082
8085
  );
8083
8086
  if (segment.status !== "rejected" && !allDone) {
8084
8087
  hasIncompleteState = true;
@@ -8240,7 +8243,7 @@ function Header({ config, platform }) {
8240
8243
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8241
8244
  "flex justify-start w-full",
8242
8245
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
8243
- index < (_nullishCoalesce(_optionalChain([item, 'access', _267 => _267.children, 'optionalAccess', _268 => _268.length]), () => ( 0))) - 1 && "mb-1",
8246
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _269 => _269.children, 'optionalAccess', _270 => _270.length]), () => ( 0))) - 1 && "mb-1",
8244
8247
  "text-ods-text-primary",
8245
8248
  // All dropdown items use primary text color
8246
8249
  child.isActive && "bg-ods-bg-hover"
@@ -8332,7 +8335,7 @@ function Header({ config, platform }) {
8332
8335
  style: config.style,
8333
8336
  children: [
8334
8337
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
8335
- _optionalChain([config, 'access', _269 => _269.actions, 'optionalAccess', _270 => _270.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
8338
+ _optionalChain([config, 'access', _271 => _271.actions, 'optionalAccess', _272 => _272.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
8336
8339
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
8337
8340
  ] }),
8338
8341
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8349,7 +8352,7 @@ function Header({ config, platform }) {
8349
8352
  }
8350
8353
  ),
8351
8354
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
8352
- _optionalChain([config, 'access', _271 => _271.actions, 'optionalAccess', _272 => _272.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
8355
+ _optionalChain([config, 'access', _273 => _273.actions, 'optionalAccess', _274 => _274.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
8353
8356
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8354
8357
  _chunkBJTOSUT4cjs.Button,
8355
8358
  {
@@ -8357,10 +8360,10 @@ function Header({ config, platform }) {
8357
8360
  size: "icon",
8358
8361
  className: "flex md:hidden",
8359
8362
  onClick: () => {
8360
- _optionalChain([config, 'access', _273 => _273.mobile, 'optionalAccess', _274 => _274.onToggle, 'optionalCall', _275 => _275()]);
8363
+ _optionalChain([config, 'access', _275 => _275.mobile, 'optionalAccess', _276 => _276.onToggle, 'optionalCall', _277 => _277()]);
8361
8364
  },
8362
- "aria-label": _optionalChain([config, 'access', _276 => _276.mobile, 'optionalAccess', _277 => _277.isOpen]) ? "Close menu" : "Open menu",
8363
- leftIcon: _optionalChain([config, 'access', _278 => _278.mobile, 'optionalAccess', _279 => _279.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
8365
+ "aria-label": _optionalChain([config, 'access', _278 => _278.mobile, 'optionalAccess', _279 => _279.isOpen]) ? "Close menu" : "Open menu",
8366
+ leftIcon: _optionalChain([config, 'access', _280 => _280.mobile, 'optionalAccess', _281 => _281.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
8364
8367
  }
8365
8368
  )
8366
8369
  ] })
@@ -8377,10 +8380,10 @@ function Header({ config, platform }) {
8377
8380
  // src/components/navigation/header-skeleton.tsx
8378
8381
 
8379
8382
  function HeaderSkeleton({ config }) {
8380
- const showNavigation = _optionalChain([config, 'optionalAccess', _280 => _280.navigation]) && config.navigation.items.length > 0;
8381
- const showActions = _optionalChain([config, 'optionalAccess', _281 => _281.actions, 'optionalAccess', _282 => _282.right]) && config.actions.right.length > 0;
8382
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _283 => _283.mobile, 'optionalAccess', _284 => _284.enabled]);
8383
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _285 => _285.className, 'optionalAccess', _286 => _286.includes, 'call', _287 => _287("admin")]);
8383
+ const showNavigation = _optionalChain([config, 'optionalAccess', _282 => _282.navigation]) && config.navigation.items.length > 0;
8384
+ const showActions = _optionalChain([config, 'optionalAccess', _283 => _283.actions, 'optionalAccess', _284 => _284.right]) && config.actions.right.length > 0;
8385
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _285 => _285.mobile, 'optionalAccess', _286 => _286.enabled]);
8386
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _287 => _287.className, 'optionalAccess', _288 => _288.includes, 'call', _289 => _289("admin")]);
8384
8387
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
8385
8388
  "header",
8386
8389
  {
@@ -8389,11 +8392,11 @@ function HeaderSkeleton({ config }) {
8389
8392
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
8390
8393
  "px-6 py-3",
8391
8394
  "transition-opacity duration-300 ease-in-out",
8392
- _optionalChain([config, 'optionalAccess', _288 => _288.className])
8395
+ _optionalChain([config, 'optionalAccess', _290 => _290.className])
8393
8396
  ),
8394
8397
  children: [
8395
8398
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
8396
- isAdminHeader && _optionalChain([config, 'optionalAccess', _289 => _289.actions, 'optionalAccess', _290 => _290.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
8399
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _291 => _291.actions, 'optionalAccess', _292 => _292.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
8397
8400
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
8398
8401
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
8399
8402
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -8401,8 +8404,8 @@ function HeaderSkeleton({ config }) {
8401
8404
  ] }),
8402
8405
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8403
8406
  "hidden md:flex items-center gap-2",
8404
- _optionalChain([config, 'optionalAccess', _291 => _291.navigation, 'optionalAccess', _292 => _292.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
8405
- _optionalChain([config, 'optionalAccess', _293 => _293.navigation, 'optionalAccess', _294 => _294.position]) === "right" && "ml-auto mr-4"
8407
+ _optionalChain([config, 'optionalAccess', _293 => _293.navigation, 'optionalAccess', _294 => _294.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
8408
+ _optionalChain([config, 'optionalAccess', _295 => _295.navigation, 'optionalAccess', _296 => _296.position]) === "right" && "ml-auto mr-4"
8406
8409
  ), children: [
8407
8410
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
8408
8411
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -8450,7 +8453,7 @@ function MobileNavPanel({ isOpen, config }) {
8450
8453
  _react.useEffect.call(void 0, () => {
8451
8454
  const handleKeyDown = (e) => {
8452
8455
  if (e.key === "Escape" && isOpen) {
8453
- _optionalChain([config, 'access', _295 => _295.onClose, 'optionalCall', _296 => _296()]);
8456
+ _optionalChain([config, 'access', _297 => _297.onClose, 'optionalCall', _298 => _298()]);
8454
8457
  }
8455
8458
  };
8456
8459
  if (isOpen) {
@@ -8467,7 +8470,7 @@ function MobileNavPanel({ isOpen, config }) {
8467
8470
  if (item.onClick) {
8468
8471
  item.onClick();
8469
8472
  }
8470
- _optionalChain([config, 'access', _297 => _297.onClose, 'optionalCall', _298 => _298()]);
8473
+ _optionalChain([config, 'access', _299 => _299.onClose, 'optionalCall', _300 => _300()]);
8471
8474
  };
8472
8475
  if (item.href) {
8473
8476
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8685,7 +8688,7 @@ function SlidingSidebar({ config }) {
8685
8688
  variant: "transparent",
8686
8689
  size: "default",
8687
8690
  onClick: () => {
8688
- _optionalChain([item, 'access', _299 => _299.onClick, 'optionalCall', _300 => _300()]);
8691
+ _optionalChain([item, 'access', _301 => _301.onClick, 'optionalCall', _302 => _302()]);
8689
8692
  config.onClose();
8690
8693
  },
8691
8694
  leftIcon: item.icon,
@@ -8708,7 +8711,7 @@ function SlidingSidebar({ config }) {
8708
8711
  variant: "transparent",
8709
8712
  size: "default",
8710
8713
  onClick: () => {
8711
- _optionalChain([item, 'access', _301 => _301.onClick, 'optionalCall', _302 => _302()]);
8714
+ _optionalChain([item, 'access', _303 => _303.onClick, 'optionalCall', _304 => _304()]);
8712
8715
  config.onClose();
8713
8716
  },
8714
8717
  leftIcon: item.icon,
@@ -8835,7 +8838,7 @@ function StickySectionNav({
8835
8838
  ] });
8836
8839
  }
8837
8840
  function useSectionNavigation(sections, options) {
8838
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _303 => _303[0], 'optionalAccess', _304 => _304.id]) || "");
8841
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _305 => _305[0], 'optionalAccess', _306 => _306.id]) || "");
8839
8842
  const isScrollingFromClick = _react.useRef.call(void 0, false);
8840
8843
  const { offset: offset2 = 100 } = options || {};
8841
8844
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -8860,7 +8863,7 @@ function useSectionNavigation(sections, options) {
8860
8863
  const handleScroll = () => {
8861
8864
  if (isScrollingFromClick.current) return;
8862
8865
  const scrollPosition = window.scrollY + offset2 + 50;
8863
- let currentSection = _optionalChain([sections, 'access', _305 => _305[0], 'optionalAccess', _306 => _306.id]) || "";
8866
+ let currentSection = _optionalChain([sections, 'access', _307 => _307[0], 'optionalAccess', _308 => _308.id]) || "";
8864
8867
  for (let i = sections.length - 1; i >= 0; i--) {
8865
8868
  const element = document.getElementById(sections[i].id);
8866
8869
  if (element && scrollPosition >= element.offsetTop) {
@@ -9034,8 +9037,8 @@ var MINIMIZED_WIDTH = 56;
9034
9037
  var EXPANDED_WIDTH = 224;
9035
9038
  var STORAGE_KEY = "of.navigationSidebar.minimized";
9036
9039
  function NavigationSidebar({ config, disabled = false }) {
9037
- const isLgUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useLgUp.call(void 0, ), () => ( false));
9038
- const [minimized, setMinimized] = _chunkWX7PT5C7cjs.useLocalStorage.call(void 0,
9040
+ const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
9041
+ const [minimized, setMinimized] = _chunkALW3D72Ocjs.useLocalStorage.call(void 0,
9039
9042
  STORAGE_KEY,
9040
9043
  !isLgUp || (_nullishCoalesce(config.minimized, () => ( false)))
9041
9044
  );
@@ -9044,14 +9047,14 @@ function NavigationSidebar({ config, disabled = false }) {
9044
9047
  const showLabel = isLgUp && !minimized;
9045
9048
  const handleToggle = _react.useCallback.call(void 0, () => {
9046
9049
  setMinimized((prev) => !prev);
9047
- _optionalChain([config, 'access', _307 => _307.onToggleMinimized, 'optionalCall', _308 => _308()]);
9050
+ _optionalChain([config, 'access', _309 => _309.onToggleMinimized, 'optionalCall', _310 => _310()]);
9048
9051
  }, [setMinimized, config]);
9049
9052
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
9050
- _optionalChain([event, 'optionalAccess', _309 => _309.stopPropagation, 'call', _310 => _310()]);
9053
+ _optionalChain([event, 'optionalAccess', _311 => _311.stopPropagation, 'call', _312 => _312()]);
9051
9054
  if (item.onClick) {
9052
9055
  item.onClick();
9053
9056
  } else if (item.path) {
9054
- _optionalChain([config, 'access', _311 => _311.onNavigate, 'optionalCall', _312 => _312(item.path)]);
9057
+ _optionalChain([config, 'access', _313 => _313.onNavigate, 'optionalCall', _314 => _314(item.path)]);
9055
9058
  }
9056
9059
  }, [config]);
9057
9060
  const { primaryItems, secondaryItems } = _react.useMemo.call(void 0, () => ({
@@ -9191,7 +9194,7 @@ function NotificationsProvider({
9191
9194
  const setShowPopups = React24.useCallback(
9192
9195
  (value2) => {
9193
9196
  setShowPopupsState(value2);
9194
- _optionalChain([onShowPopupsChange, 'optionalCall', _313 => _313(value2)]);
9197
+ _optionalChain([onShowPopupsChange, 'optionalCall', _315 => _315(value2)]);
9195
9198
  },
9196
9199
  [onShowPopupsChange]
9197
9200
  );
@@ -9296,11 +9299,11 @@ function HeaderGlobalSearch({
9296
9299
  };
9297
9300
  const handleSubmit = (e) => {
9298
9301
  e.preventDefault();
9299
- _optionalChain([onSubmit, 'optionalCall', _314 => _314(currentValue)]);
9302
+ _optionalChain([onSubmit, 'optionalCall', _316 => _316(currentValue)]);
9300
9303
  };
9301
9304
  const handleKeyDown = (e) => {
9302
9305
  if (e.key === "Enter") {
9303
- _optionalChain([onSubmit, 'optionalCall', _315 => _315(currentValue)]);
9306
+ _optionalChain([onSubmit, 'optionalCall', _317 => _317(currentValue)]);
9304
9307
  }
9305
9308
  };
9306
9309
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -9346,8 +9349,8 @@ function HeaderOrganizationFilter({
9346
9349
  className
9347
9350
  }) {
9348
9351
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
9349
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _316 => _316.name]) || "All Organizations";
9350
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _317 => _317.deviceCount]), () => ( totalDeviceCount));
9352
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _318 => _318.name]) || "All Organizations";
9353
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _319 => _319.deviceCount]), () => ( totalDeviceCount));
9351
9354
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenu, { children: [
9352
9355
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9353
9356
  "button",
@@ -9372,11 +9375,11 @@ function HeaderOrganizationFilter({
9372
9375
  }
9373
9376
  ) }),
9374
9377
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
9375
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _318 => _318("")]), children: "All Organizations" }),
9378
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _320 => _320("")]), children: "All Organizations" }),
9376
9379
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9377
9380
  _chunkBJTOSUT4cjs.DropdownMenuItem,
9378
9381
  {
9379
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _319 => _319(org.id)]),
9382
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _321 => _321(org.id)]),
9380
9383
  children: org.name
9381
9384
  },
9382
9385
  org.id
@@ -9407,7 +9410,7 @@ var AppHeader = React33.default.memo(function AppHeader2({
9407
9410
  onToggleMobileMenu,
9408
9411
  disabled = false
9409
9412
  }) {
9410
- const isMdUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useMdUp.call(void 0, ), () => ( false));
9413
+ const isMdUp = _nullishCoalesce(_chunkALW3D72Ocjs.useMdUp.call(void 0, ), () => ( false));
9411
9414
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
9412
9415
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9413
9416
  "header",
@@ -9548,9 +9551,9 @@ function NotificationsHeaderButton({
9548
9551
  dimmedClass
9549
9552
  }) {
9550
9553
  const ctx = useOptionalNotifications();
9551
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _320 => _320.unreadCount]), () => ( fallbackUnreadCount));
9552
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _321 => _321.isOpen]), () => ( false));
9553
- const onClick = _optionalChain([ctx, 'optionalAccess', _322 => _322.toggle]);
9554
+ const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _322 => _322.unreadCount]), () => ( fallbackUnreadCount));
9555
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _323 => _323.isOpen]), () => ( false));
9556
+ const onClick = _optionalChain([ctx, 'optionalAccess', _324 => _324.toggle]);
9554
9557
  const Icon2 = unreadCount > 0 ? _chunkTMD5LDX4cjs.BellRingingIcon : _chunkTMD5LDX4cjs.BellIcon;
9555
9558
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9556
9559
  HeaderButton,
@@ -9724,7 +9727,7 @@ var Switch = React28.forwardRef(({ className, checked, onCheckedChange, ...props
9724
9727
  }, [checked]);
9725
9728
  const handleCheckedChange = (newChecked) => {
9726
9729
  setIsChecked(newChecked);
9727
- _optionalChain([onCheckedChange, 'optionalCall', _323 => _323(newChecked)]);
9730
+ _optionalChain([onCheckedChange, 'optionalCall', _325 => _325(newChecked)]);
9728
9731
  };
9729
9732
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9730
9733
  SwitchPrimitives.Root,
@@ -9777,7 +9780,7 @@ function NotificationTile({
9777
9780
  if (!isLive) return;
9778
9781
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
9779
9782
  const timer = window.setTimeout(() => {
9780
- _optionalChain([onSettle, 'optionalCall', _324 => _324(id)]);
9783
+ _optionalChain([onSettle, 'optionalCall', _326 => _326(id)]);
9781
9784
  }, remaining);
9782
9785
  return () => window.clearTimeout(timer);
9783
9786
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -9790,7 +9793,7 @@ function NotificationTile({
9790
9793
  ),
9791
9794
  children: [
9792
9795
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
9793
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkWX7PT5C7cjs.dotColorByVariant[variant]) }) }),
9796
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkALW3D72Ocjs.dotColorByVariant[variant]) }) }),
9794
9797
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
9795
9798
  title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", children: title }) : null,
9796
9799
  description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", children: description }) : null
@@ -9815,7 +9818,7 @@ function NotificationTile({
9815
9818
  "button",
9816
9819
  {
9817
9820
  type: "button",
9818
- onClick: () => _optionalChain([onSettle, 'optionalCall', _325 => _325(id)]),
9821
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _327 => _327(id)]),
9819
9822
  "aria-label": "Dismiss notification",
9820
9823
  tabIndex: isLive ? 0 : -1,
9821
9824
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
@@ -9831,7 +9834,7 @@ function NotificationTile({
9831
9834
  "aria-hidden": true,
9832
9835
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
9833
9836
  "absolute inset-x-0 -bottom-px h-1 origin-left",
9834
- _chunkWX7PT5C7cjs.progressColorByVariant[variant]
9837
+ _chunkALW3D72Ocjs.progressColorByVariant[variant]
9835
9838
  ),
9836
9839
  style: {
9837
9840
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -9987,7 +9990,7 @@ var MobileBurgerMenu = React33.default.memo(function MobileBurgerMenu2({
9987
9990
  if (item.onClick) {
9988
9991
  item.onClick();
9989
9992
  } else if (item.path) {
9990
- _optionalChain([config, 'access', _326 => _326.onNavigate, 'optionalCall', _327 => _327(item.path)]);
9993
+ _optionalChain([config, 'access', _328 => _328.onNavigate, 'optionalCall', _329 => _329(item.path)]);
9991
9994
  }
9992
9995
  onClose();
9993
9996
  }, [config, onClose]);
@@ -10283,7 +10286,7 @@ var ToolBadge = ({
10283
10286
  }) => {
10284
10287
  const label = getToolLabel(toolType);
10285
10288
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
10286
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
10289
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
10287
10290
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
10288
10291
  ] });
10289
10292
  };
@@ -10331,7 +10334,7 @@ var ShellTypeBadge = ({
10331
10334
  className,
10332
10335
  iconClassName
10333
10336
  }) => {
10334
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _328 => _328.toUpperCase, 'call', _329 => _329()]);
10337
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _330 => _330.toUpperCase, 'call', _331 => _331()]);
10335
10338
  const label = getShellLabel(normalizedType);
10336
10339
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
10337
10340
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -10788,7 +10791,7 @@ function AnnouncementBar() {
10788
10791
  setIsVisible(false);
10789
10792
  };
10790
10793
  const handleCtaClick = () => {
10791
- if (!_optionalChain([announcement, 'optionalAccess', _330 => _330.cta_url])) return;
10794
+ if (!_optionalChain([announcement, 'optionalAccess', _332 => _332.cta_url])) return;
10792
10795
  announcement.cta_target === "_blank" ? window.open(announcement.cta_url, "_blank", "noopener,noreferrer") : window.location.href = announcement.cta_url;
10793
10796
  };
10794
10797
  const renderIcon = () => {
@@ -10914,8 +10917,8 @@ function getVendorLogo(vendor) {
10914
10917
  if (vendor.logo) {
10915
10918
  return fixSupabaseStorageUrl(vendor.logo);
10916
10919
  }
10917
- const logoMedia = _optionalChain([vendor, 'access', _331 => _331.vendor_media, 'optionalAccess', _332 => _332.find, 'call', _333 => _333((m) => m.media_type === "logo")]);
10918
- if (_optionalChain([logoMedia, 'optionalAccess', _334 => _334.media_url])) {
10920
+ const logoMedia = _optionalChain([vendor, 'access', _333 => _333.vendor_media, 'optionalAccess', _334 => _334.find, 'call', _335 => _335((m) => m.media_type === "logo")]);
10921
+ if (_optionalChain([logoMedia, 'optionalAccess', _336 => _336.media_url])) {
10919
10922
  return fixSupabaseStorageUrl(logoMedia.media_url);
10920
10923
  }
10921
10924
  return null;
@@ -10990,7 +10993,7 @@ function VendorIcon({
10990
10993
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
10991
10994
  "flex items-center justify-center text-xs font-medium uppercase",
10992
10995
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
10993
- ), children: _optionalChain([vendor, 'access', _335 => _335.title, 'optionalAccess', _336 => _336.substring, 'call', _337 => _337(0, 2)]) || "??" }) });
10996
+ ), children: _optionalChain([vendor, 'access', _337 => _337.title, 'optionalAccess', _338 => _338.substring, 'call', _339 => _339(0, 2)]) || "??" }) });
10994
10997
  }
10995
10998
 
10996
10999
  // src/components/categories-cart.tsx
@@ -11274,7 +11277,7 @@ function UserSummary({
11274
11277
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
11275
11278
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", children: [
11276
11279
  name,
11277
- _optionalChain([mspPreview, 'optionalAccess', _338 => _338.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
11280
+ _optionalChain([mspPreview, 'optionalAccess', _340 => _340.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
11278
11281
  " \u2022 ",
11279
11282
  mspPreview.name
11280
11283
  ] })
@@ -11296,7 +11299,7 @@ function UserSummary({
11296
11299
  height: 40,
11297
11300
  className: "object-cover"
11298
11301
  }
11299
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _339 => _339.name, 'optionalAccess', _340 => _340.charAt, 'call', _341 => _341(0), 'access', _342 => _342.toUpperCase, 'call', _343 => _343()]) || "?" }) })
11302
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _341 => _341.name, 'optionalAccess', _342 => _342.charAt, 'call', _343 => _343(0), 'access', _344 => _344.toUpperCase, 'call', _345 => _345()]) || "?" }) })
11300
11303
  ] }),
11301
11304
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
11302
11305
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
@@ -11309,7 +11312,7 @@ function UserSummary({
11309
11312
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber2(mspPreview.annualRevenue)}` : null
11310
11313
  ].filter(Boolean).flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: seg === " \u2022 " ? "text-ods-text-secondary" : "", children: seg }, idx)) })
11311
11314
  ] }),
11312
- (_optionalChain([authProviders, 'optionalAccess', _344 => _344.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
11315
+ (_optionalChain([authProviders, 'optionalAccess', _346 => _346.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
11313
11316
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
11314
11317
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
11315
11318
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -11318,7 +11321,7 @@ function UserSummary({
11318
11321
  ] })
11319
11322
  ] })
11320
11323
  ] }),
11321
- (_optionalChain([authProviders, 'optionalAccess', _345 => _345.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
11324
+ (_optionalChain([authProviders, 'optionalAccess', _347 => _347.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
11322
11325
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
11323
11326
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
11324
11327
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -12039,7 +12042,7 @@ function FilterChip({
12039
12042
  onClick: disabled ? void 0 : (e) => {
12040
12043
  e.preventDefault();
12041
12044
  e.stopPropagation();
12042
- _optionalChain([onClick, 'optionalCall', _346 => _346()]);
12045
+ _optionalChain([onClick, 'optionalCall', _348 => _348()]);
12043
12046
  },
12044
12047
  role: onClick ? "button" : void 0,
12045
12048
  tabIndex: onClick && !disabled ? 0 : void 0,
@@ -12226,13 +12229,13 @@ function useUnifiedFiltering(config) {
12226
12229
  const searchParams = _navigation.useSearchParams.call(void 0, );
12227
12230
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
12228
12231
  const getCurrentFilterState = () => {
12229
- const search = _optionalChain([searchParams, 'optionalAccess', _347 => _347.get, 'call', _348 => _348("search")]) || void 0;
12230
- const categories = _optionalChain([searchParams, 'optionalAccess', _349 => _349.get, 'call', _350 => _350("category"), 'optionalAccess', _351 => _351.split, 'call', _352 => _352(","), 'access', _353 => _353.filter, 'call', _354 => _354(Boolean)]) || [];
12231
- const subcategories = _optionalChain([searchParams, 'optionalAccess', _355 => _355.get, 'call', _356 => _356("subcategory"), 'optionalAccess', _357 => _357.split, 'call', _358 => _358(","), 'access', _359 => _359.filter, 'call', _360 => _360(Boolean)]) || [];
12232
- const tags = _optionalChain([searchParams, 'optionalAccess', _361 => _361.get, 'call', _362 => _362("tag"), 'optionalAccess', _363 => _363.split, 'call', _364 => _364(","), 'access', _365 => _365.filter, 'call', _366 => _366(Boolean)]) || [];
12233
- const filters = _optionalChain([searchParams, 'optionalAccess', _367 => _367.getAll, 'call', _368 => _368("filter")]) || [];
12234
- const pricing = _optionalChain([searchParams, 'optionalAccess', _369 => _369.get, 'call', _370 => _370("pricing")]) || void 0;
12235
- const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _371 => _371.get, 'call', _372 => _372("page")]) || "1");
12232
+ const search = _optionalChain([searchParams, 'optionalAccess', _349 => _349.get, 'call', _350 => _350("search")]) || void 0;
12233
+ const categories = _optionalChain([searchParams, 'optionalAccess', _351 => _351.get, 'call', _352 => _352("category"), 'optionalAccess', _353 => _353.split, 'call', _354 => _354(","), 'access', _355 => _355.filter, 'call', _356 => _356(Boolean)]) || [];
12234
+ const subcategories = _optionalChain([searchParams, 'optionalAccess', _357 => _357.get, 'call', _358 => _358("subcategory"), 'optionalAccess', _359 => _359.split, 'call', _360 => _360(","), 'access', _361 => _361.filter, 'call', _362 => _362(Boolean)]) || [];
12235
+ const tags = _optionalChain([searchParams, 'optionalAccess', _363 => _363.get, 'call', _364 => _364("tag"), 'optionalAccess', _365 => _365.split, 'call', _366 => _366(","), 'access', _367 => _367.filter, 'call', _368 => _368(Boolean)]) || [];
12236
+ const filters = _optionalChain([searchParams, 'optionalAccess', _369 => _369.getAll, 'call', _370 => _370("filter")]) || [];
12237
+ const pricing = _optionalChain([searchParams, 'optionalAccess', _371 => _371.get, 'call', _372 => _372("pricing")]) || void 0;
12238
+ const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _373 => _373.get, 'call', _374 => _374("page")]) || "1");
12236
12239
  return {
12237
12240
  search,
12238
12241
  categories,
@@ -12513,13 +12516,13 @@ function FooterWaitlistButton({ className }) {
12513
12516
  const router = _navigation.useRouter.call(void 0, );
12514
12517
  const pathname = _navigation.usePathname.call(void 0, );
12515
12518
  const handleClick = _react.useCallback.call(void 0, () => {
12516
- if (_optionalChain([pathname, 'optionalAccess', _373 => _373.startsWith, 'call', _374 => _374("/waitlist")])) {
12519
+ if (_optionalChain([pathname, 'optionalAccess', _375 => _375.startsWith, 'call', _376 => _376("/waitlist")])) {
12517
12520
  const anchor = document.getElementById("waitlist-form");
12518
12521
  if (anchor) {
12519
12522
  anchor.scrollIntoView({ behavior: "smooth", block: "center" });
12520
12523
  setTimeout(() => {
12521
12524
  const input = anchor.querySelector('input[type="email"]');
12522
- _optionalChain([input, 'optionalAccess', _375 => _375.focus, 'call', _376 => _376()]);
12525
+ _optionalChain([input, 'optionalAccess', _377 => _377.focus, 'call', _378 => _378()]);
12523
12526
  }, 400);
12524
12527
  return;
12525
12528
  }
@@ -12544,11 +12547,11 @@ _chunkBJTOSUT4cjs.init_button2.call(void 0, );
12544
12547
 
12545
12548
  function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
12546
12549
  const inputRef = _react.useRef.call(void 0, null);
12547
- const { toast } = _chunkWX7PT5C7cjs.useToast.call(void 0, );
12550
+ const { toast } = _chunkALW3D72Ocjs.useToast.call(void 0, );
12548
12551
  const [uploading, setUploading] = _react.useState.call(void 0, false);
12549
12552
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
12550
12553
  const MAX_SIZE = 5 * 1024 * 1024;
12551
- const openDialog = () => _optionalChain([inputRef, 'access', _377 => _377.current, 'optionalAccess', _378 => _378.click, 'call', _379 => _379()]);
12554
+ const openDialog = () => _optionalChain([inputRef, 'access', _379 => _379.current, 'optionalAccess', _380 => _380.click, 'call', _381 => _381()]);
12552
12555
  async function handleFile(file) {
12553
12556
  if (!file) return;
12554
12557
  if (!ALLOWED_TYPES.includes(file.type)) {
@@ -12604,7 +12607,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
12604
12607
  }
12605
12608
  }
12606
12609
  const handleSelect = (e) => {
12607
- handleFile(_optionalChain([e, 'access', _380 => _380.target, 'access', _381 => _381.files, 'optionalAccess', _382 => _382[0]]));
12610
+ handleFile(_optionalChain([e, 'access', _382 => _382.target, 'access', _383 => _383.files, 'optionalAccess', _384 => _384[0]]));
12608
12611
  };
12609
12612
  const handleRemove = async () => {
12610
12613
  if (onDelete) {
@@ -12741,7 +12744,7 @@ function ResponsiveIconsBlock({ loading = false }) {
12741
12744
  const getIconForIndex = (index) => {
12742
12745
  const col = index % displayColumns;
12743
12746
  const row = Math.floor(index / displayColumns);
12744
- return _optionalChain([iconGrid, 'access', _383 => _383[row], 'optionalAccess', _384 => _384[col]]) || availableIcons[0];
12747
+ return _optionalChain([iconGrid, 'access', _385 => _385[row], 'optionalAccess', _386 => _386[col]]) || availableIcons[0];
12745
12748
  };
12746
12749
  if (loading || iconGrid.length === 0) {
12747
12750
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -12827,7 +12830,7 @@ var Slider = React35.forwardRef(
12827
12830
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
12828
12831
  const handleChange = (e) => {
12829
12832
  const newValue = [Number(e.target.value)];
12830
- _optionalChain([onValueChange, 'optionalCall', _385 => _385(newValue)]);
12833
+ _optionalChain([onValueChange, 'optionalCall', _387 => _387(newValue)]);
12831
12834
  };
12832
12835
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12833
12836
  "input",
@@ -12940,7 +12943,7 @@ var ImageCropper = ({
12940
12943
  });
12941
12944
  } else if (e.key === "Escape") {
12942
12945
  e.preventDefault();
12943
- _optionalChain([onCancel, 'optionalCall', _386 => _386()]);
12946
+ _optionalChain([onCancel, 'optionalCall', _388 => _388()]);
12944
12947
  }
12945
12948
  };
12946
12949
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13134,7 +13137,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13134
13137
  const playPromise = video.play();
13135
13138
  if (playPromise !== void 0) {
13136
13139
  playPromise.then(() => {
13137
- const playButton = _optionalChain([video, 'access', _387 => _387.parentElement, 'optionalAccess', _388 => _388.querySelector, 'call', _389 => _389(".video-play-button")]);
13140
+ const playButton = _optionalChain([video, 'access', _389 => _389.parentElement, 'optionalAccess', _390 => _390.querySelector, 'call', _391 => _391(".video-play-button")]);
13138
13141
  if (playButton) {
13139
13142
  playButton.style.display = "none";
13140
13143
  }
@@ -13151,13 +13154,13 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13151
13154
  </a>
13152
13155
  </div>
13153
13156
  `;
13154
- _optionalChain([video, 'access', _390 => _390.parentElement, 'optionalAccess', _391 => _391.appendChild, 'call', _392 => _392(fallbackDiv)]);
13157
+ _optionalChain([video, 'access', _392 => _392.parentElement, 'optionalAccess', _393 => _393.appendChild, 'call', _394 => _394(fallbackDiv)]);
13155
13158
  }
13156
13159
  });
13157
13160
  }
13158
13161
  } else {
13159
13162
  video.pause();
13160
- const playButton = _optionalChain([video, 'access', _393 => _393.parentElement, 'optionalAccess', _394 => _394.querySelector, 'call', _395 => _395(".video-play-button")]);
13163
+ const playButton = _optionalChain([video, 'access', _395 => _395.parentElement, 'optionalAccess', _396 => _396.querySelector, 'call', _397 => _397(".video-play-button")]);
13161
13164
  if (playButton) {
13162
13165
  playButton.style.display = "flex";
13163
13166
  }
@@ -13241,13 +13244,13 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13241
13244
  "data-video-index": index,
13242
13245
  onClick: () => handleVideoClick(index),
13243
13246
  onPlay: () => {
13244
- const playButton = _optionalChain([document, 'access', _396 => _396.querySelector, 'call', _397 => _397(`[data-video-index="${index}"]`), 'optionalAccess', _398 => _398.parentElement, 'optionalAccess', _399 => _399.querySelector, 'call', _400 => _400(".video-play-button")]);
13247
+ const playButton = _optionalChain([document, 'access', _398 => _398.querySelector, 'call', _399 => _399(`[data-video-index="${index}"]`), 'optionalAccess', _400 => _400.parentElement, 'optionalAccess', _401 => _401.querySelector, 'call', _402 => _402(".video-play-button")]);
13245
13248
  if (playButton) {
13246
13249
  playButton.style.display = "none";
13247
13250
  }
13248
13251
  },
13249
13252
  onPause: () => {
13250
- const playButton = _optionalChain([document, 'access', _401 => _401.querySelector, 'call', _402 => _402(`[data-video-index="${index}"]`), 'optionalAccess', _403 => _403.parentElement, 'optionalAccess', _404 => _404.querySelector, 'call', _405 => _405(".video-play-button")]);
13253
+ const playButton = _optionalChain([document, 'access', _403 => _403.querySelector, 'call', _404 => _404(`[data-video-index="${index}"]`), 'optionalAccess', _405 => _405.parentElement, 'optionalAccess', _406 => _406.querySelector, 'call', _407 => _407(".video-play-button")]);
13251
13254
  if (playButton) {
13252
13255
  playButton.style.display = "flex";
13253
13256
  }
@@ -13274,7 +13277,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13274
13277
  </a>
13275
13278
  </div>
13276
13279
  `;
13277
- _optionalChain([target, 'access', _406 => _406.parentElement, 'optionalAccess', _407 => _407.appendChild, 'call', _408 => _408(fallbackDiv)]);
13280
+ _optionalChain([target, 'access', _408 => _408.parentElement, 'optionalAccess', _409 => _409.appendChild, 'call', _410 => _410(fallbackDiv)]);
13278
13281
  }
13279
13282
  },
13280
13283
  children: [
@@ -13802,8 +13805,8 @@ function PricingDisplay({
13802
13805
  }
13803
13806
  if (pricingArray.length === 1) {
13804
13807
  const item = pricingArray[0];
13805
- const price = _optionalChain([item, 'access', _409 => _409.ranges, 'optionalAccess', _410 => _410[0], 'optionalAccess', _411 => _411.min]) || 0;
13806
- const unit = _optionalChain([item, 'access', _412 => _412.ranges, 'optionalAccess', _413 => _413[0], 'optionalAccess', _414 => _414.unit]);
13808
+ const price = _optionalChain([item, 'access', _411 => _411.ranges, 'optionalAccess', _412 => _412[0], 'optionalAccess', _413 => _413.min]) || 0;
13809
+ const unit = _optionalChain([item, 'access', _414 => _414.ranges, 'optionalAccess', _415 => _415[0], 'optionalAccess', _416 => _416.unit]);
13807
13810
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13808
13811
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
13809
13812
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -13812,11 +13815,11 @@ function PricingDisplay({
13812
13815
  ] })
13813
13816
  ] });
13814
13817
  }
13815
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _415 => _415.ranges, 'optionalAccess', _416 => _416[0], 'optionalAccess', _417 => _417.min]) || 0, styleConfig.showTildePrefix));
13816
- const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _418 => _418.ranges, 'optionalAccess', _419 => _419[0], 'optionalAccess', _420 => _420.unit]));
13818
+ const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _417 => _417.ranges, 'optionalAccess', _418 => _418[0], 'optionalAccess', _419 => _419.min]) || 0, styleConfig.showTildePrefix));
13819
+ const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _420 => _420.ranges, 'optionalAccess', _421 => _421[0], 'optionalAccess', _422 => _422.unit]));
13817
13820
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13818
13821
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
13819
- itemWithUnit && _optionalChain([itemWithUnit, 'access', _421 => _421.ranges, 'optionalAccess', _422 => _422[0], 'optionalAccess', _423 => _423.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13822
+ itemWithUnit && _optionalChain([itemWithUnit, 'access', _423 => _423.ranges, 'optionalAccess', _424 => _424[0], 'optionalAccess', _425 => _425.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13820
13823
  "/",
13821
13824
  itemWithUnit.ranges[0].unit
13822
13825
  ] })
@@ -14014,7 +14017,7 @@ function VendorTag({
14014
14017
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
14015
14018
  };
14016
14019
  case "classification":
14017
- const classificationType = _optionalChain([text, 'optionalAccess', _424 => _424.toLowerCase, 'call', _425 => _425()]);
14020
+ const classificationType = _optionalChain([text, 'optionalAccess', _426 => _426.toLowerCase, 'call', _427 => _427()]);
14018
14021
  if (classificationType === "open_source") {
14019
14022
  return {
14020
14023
  text: "Open Source",
@@ -14068,7 +14071,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14068
14071
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14069
14072
  VendorTag,
14070
14073
  {
14071
- type: _optionalChain([source, 'optionalAccess', _426 => _426.toLowerCase, 'call', _427 => _427()]),
14074
+ type: _optionalChain([source, 'optionalAccess', _428 => _428.toLowerCase, 'call', _429 => _429()]),
14072
14075
  size: "sm",
14073
14076
  hidden
14074
14077
  },
@@ -16125,7 +16128,7 @@ function OnboardingWalkthrough({
16125
16128
  isStepSkipped,
16126
16129
  allStepsComplete,
16127
16130
  markMultipleComplete
16128
- } = _chunkWX7PT5C7cjs.useOnboardingState.call(void 0, storageKey);
16131
+ } = _chunkALW3D72Ocjs.useOnboardingState.call(void 0, storageKey);
16129
16132
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
16130
16133
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
16131
16134
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -16188,12 +16191,12 @@ function OnboardingWalkthrough({
16188
16191
  }
16189
16192
  }, [state.completedSteps, markComplete]);
16190
16193
  const handleStepSkip = (step) => {
16191
- _optionalChain([step, 'access', _428 => _428.onSkip, 'optionalCall', _429 => _429()]);
16194
+ _optionalChain([step, 'access', _430 => _430.onSkip, 'optionalCall', _431 => _431()]);
16192
16195
  markSkipped(step.id);
16193
16196
  };
16194
16197
  const handleDismiss = () => {
16195
16198
  dismissOnboarding();
16196
- _optionalChain([onDismiss, 'optionalCall', _430 => _430()]);
16199
+ _optionalChain([onDismiss, 'optionalCall', _432 => _432()]);
16197
16200
  };
16198
16201
  if (state.dismissed) {
16199
16202
  return null;
@@ -16614,57 +16617,19 @@ function ImageGalleryModal({
16614
16617
 
16615
16618
  // src/components/features/youtube-embed.tsx
16616
16619
 
16617
- var _youtube = require('react-player/youtube'); var _youtube2 = _interopRequireDefault(_youtube);
16618
-
16619
- var Play = ({ size = 16, className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: size, height: size, fill: "currentColor", viewBox: "0 0 24 24", className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polygon", { points: "5,3 19,12 5,21" }) });
16620
- var Loader = ({ size = 16, className }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: size, height: size, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className, children: [
16621
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "12", y1: "2", x2: "12", y2: "6" }),
16622
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "12", y1: "18", x2: "12", y2: "22" }),
16623
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }),
16624
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }),
16625
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "2", y1: "12", x2: "6", y2: "12" }),
16626
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "18", y1: "12", x2: "22", y2: "12" }),
16627
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }),
16628
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })
16629
- ] });
16620
+
16630
16621
  var YouTubeEmbed = ({
16631
16622
  videoId,
16632
16623
  title = "YouTube Video",
16633
16624
  className = "",
16634
16625
  showTitle = true,
16635
16626
  showMeta = true,
16636
- minimalControls = false
16627
+ minimalControls = false,
16628
+ aboveTheFold = false
16637
16629
  }) => {
16638
- const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
16639
- const [hasError, setHasError] = _react.useState.call(void 0, false);
16640
- const [isPlaying, setIsPlaying] = _react.useState.call(void 0, false);
16641
- const [useIframe, setUseIframe] = _react.useState.call(void 0, false);
16642
- const [mounted, setMounted] = _react.useState.call(void 0, false);
16643
- _react.useEffect.call(void 0, () => {
16644
- setMounted(true);
16645
- setUseIframe(true);
16646
- setIsLoading(false);
16647
- }, []);
16648
- const handleReady = () => {
16649
- setIsLoading(false);
16650
- };
16651
- const handleError = () => {
16652
- setIsLoading(false);
16653
- setHasError(true);
16654
- setUseIframe(true);
16655
- };
16656
- const handlePlay = () => {
16657
- setIsPlaying(true);
16658
- };
16659
- const handlePause = () => {
16660
- setIsPlaying(false);
16661
- };
16662
- const videoUrl = `https://www.youtube.com/watch?v=${videoId}`;
16663
- const embedParams = new URLSearchParams({
16664
- rel: "0",
16665
- modestbranding: "1",
16666
- playsinline: "1"
16667
- });
16630
+ const [activated, setActivated] = _react.useState.call(void 0, false);
16631
+ const iframeSlotRef = _react.useRef.call(void 0, null);
16632
+ const embedParams = new URLSearchParams({ autoplay: "1", rel: "0", modestbranding: "1", playsinline: "1" });
16668
16633
  if (minimalControls) {
16669
16634
  embedParams.set("controls", "0");
16670
16635
  embedParams.set("showinfo", "0");
@@ -16672,96 +16637,60 @@ var YouTubeEmbed = ({
16672
16637
  embedParams.set("iv_load_policy", "3");
16673
16638
  embedParams.set("cc_load_policy", "0");
16674
16639
  embedParams.set("disablekb", "1");
16675
- embedParams.set("rel", "0");
16676
- }
16677
- const embedUrl = `https://www.youtube.com/embed/${videoId}?${embedParams.toString()}`;
16678
- if (!mounted) {
16679
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `youtube-embed-container my-6 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-wrapper relative w-full", style: { paddingBottom: "56.25%" }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "loading-overlay absolute inset-0 bg-ods-card border border-ods-border rounded-lg flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "loading-content flex flex-col items-center gap-3", children: [
16680
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Loader, { className: "animate-spin text-ods-accent", size: 32 }),
16681
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-sans text-sm text-ods-text-secondary", children: "Loading video..." })
16682
- ] }) }) }) });
16683
- }
16684
- if (hasError) {
16685
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `youtube-embed-error ${className}`, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "error-state bg-ods-card border border-ods-error rounded-lg p-6 text-center my-6", children: [
16686
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: "48", height: "48", fill: "currentColor", viewBox: "0 0 24 24", className: "text-ods-error", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }) }),
16687
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-title font-sans font-semibold text-lg text-ods-error mb-2", children: "Video Unavailable" }),
16688
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-description font-sans text-sm text-ods-text-secondary mb-4", children: "Unable to load YouTube video. The video may be private or deleted." }),
16689
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16690
- "a",
16691
- {
16692
- href: videoUrl,
16693
- target: "_blank",
16694
- rel: "noopener noreferrer",
16695
- className: "error-retry-button bg-ods-error hover:bg-ods-error-hover text-ods-text-on-error border-none rounded px-4 py-2 font-sans font-medium text-sm cursor-pointer transition-colors duration-200",
16696
- children: "Watch on YouTube"
16697
- }
16698
- )
16699
- ] }) });
16700
16640
  }
16641
+ const embedUrl = `https://www.youtube-nocookie.com/embed/${videoId}?${embedParams.toString()}`;
16642
+ const watchUrl = `https://www.youtube.com/watch?v=${videoId}`;
16643
+ const posterJpg = `https://i.ytimg.com/vi/${videoId}/mqdefault.jpg`;
16644
+ const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/mqdefault.webp`;
16645
+ const handleActivate = () => {
16646
+ const slot = iframeSlotRef.current;
16647
+ if (!slot || activated) return;
16648
+ const iframe = document.createElement("iframe");
16649
+ iframe.setAttribute("allow", "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share");
16650
+ iframe.setAttribute("allowfullscreen", "");
16651
+ iframe.setAttribute("title", title);
16652
+ iframe.className = "absolute inset-0 w-full h-full border-0";
16653
+ iframe.src = embedUrl;
16654
+ slot.appendChild(iframe);
16655
+ setActivated(true);
16656
+ };
16701
16657
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `youtube-embed-container my-6 ${className}`, children: [
16702
16658
  title && showTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-title font-sans text-lg font-medium text-ods-text-primary mb-3", children: title }),
16703
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "video-wrapper relative w-full", style: { paddingBottom: "56.25%" }, children: [
16704
- isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "loading-overlay absolute inset-0 bg-ods-card border border-ods-border rounded-lg flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "loading-content flex flex-col items-center gap-3", children: [
16705
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Loader, { className: "animate-spin text-ods-accent", size: 32 }),
16706
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-sans text-sm text-ods-text-secondary", children: "Loading video..." })
16707
- ] }) }),
16708
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-player absolute inset-0 rounded-lg overflow-hidden border border-ods-border bg-ods-bg-inverse", children: useIframe ? (
16709
- // Iframe fallback for mobile and error cases
16710
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16711
- "iframe",
16712
- {
16713
- src: embedUrl,
16714
- title,
16715
- className: "w-full h-full border-0",
16716
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
16717
- allowFullScreen: true,
16718
- style: { border: "none" }
16719
- }
16720
- )
16721
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16722
- _youtube2.default,
16723
- {
16724
- url: videoUrl,
16725
- width: "100%",
16726
- height: "100%",
16727
- onReady: handleReady,
16728
- onError: handleError,
16729
- onPlay: handlePlay,
16730
- onPause: handlePause,
16731
- config: {
16732
- youtube: {
16733
- playerVars: {
16734
- autoplay: 0,
16735
- controls: 1,
16736
- rel: 0,
16737
- showinfo: 0,
16738
- modestbranding: 1,
16739
- iv_load_policy: 3,
16740
- cc_load_policy: 0,
16741
- playsinline: 1
16742
- }
16743
- }
16744
- },
16745
- light: false,
16746
- playing: false
16747
- }
16748
- ) }),
16749
- !useIframe && !isPlaying && !isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "play-overlay absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 rounded-lg transition-opacity duration-300 hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16659
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-wrapper relative w-full", style: { paddingBottom: "56.25%" }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute inset-0 rounded-lg overflow-hidden border border-ods-border bg-ods-card", children: [
16660
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: iframeSlotRef, className: "absolute inset-0", "aria-hidden": !activated }),
16661
+ !activated && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
16750
16662
  "button",
16751
16663
  {
16752
- onClick: () => setIsPlaying(true),
16753
- className: "play-button bg-ods-accent hover:bg-ods-accent-hover text-ods-text-on-accent w-16 h-16 rounded-full flex items-center justify-center transition-all duration-200 transform hover:scale-110 shadow-lg",
16754
- "aria-label": "Play video",
16755
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Play, { size: 24, className: "ml-1" })
16664
+ type: "button",
16665
+ "aria-label": `Play: ${title}`,
16666
+ onClick: handleActivate,
16667
+ className: "group absolute inset-0 p-0 m-0 border-0 cursor-pointer bg-transparent",
16668
+ children: [
16669
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "picture", { children: [
16670
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "source", { type: "image/webp", srcSet: posterWebp }),
16671
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16672
+ "img",
16673
+ {
16674
+ src: posterJpg,
16675
+ alt: title,
16676
+ loading: "lazy",
16677
+ fetchPriority: aboveTheFold ? "high" : "low",
16678
+ decoding: aboveTheFold ? "sync" : "async",
16679
+ className: "absolute inset-0 w-full h-full object-cover"
16680
+ }
16681
+ )
16682
+ ] }),
16683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center justify-center w-16 h-16 rounded-full bg-ods-accent text-ods-text-on-accent shadow-lg transition-transform duration-200 group-hover:scale-110", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: 24, height: 24, fill: "currentColor", viewBox: "0 0 24 24", className: "ml-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polygon", { points: "5,3 19,12 5,21" }) }) }) })
16684
+ ]
16756
16685
  }
16757
- ) })
16758
- ] }),
16686
+ )
16687
+ ] }) }),
16759
16688
  showMeta && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "video-meta flex items-center justify-between mt-3 text-sm text-ods-text-secondary", children: [
16760
16689
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-platform font-sans", children: "YouTube" }),
16761
16690
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16762
16691
  "a",
16763
16692
  {
16764
- href: videoUrl,
16693
+ href: watchUrl,
16765
16694
  target: "_blank",
16766
16695
  rel: "noopener noreferrer",
16767
16696
  className: "video-link font-sans text-ods-accent hover:text-ods-accent-hover transition-colors duration-200",
@@ -16771,35 +16700,30 @@ var YouTubeEmbed = ({
16771
16700
  ] })
16772
16701
  ] });
16773
16702
  };
16703
+ var YT_HOSTS = /* @__PURE__ */ new Set([
16704
+ "youtube.com",
16705
+ "www.youtube.com",
16706
+ "m.youtube.com",
16707
+ "youtu.be",
16708
+ "youtube-nocookie.com",
16709
+ "www.youtube-nocookie.com"
16710
+ ]);
16711
+ var YT_PATH_RE = /^\/(?:embed|v|shorts)\/([^/]+)\/?$/;
16774
16712
  var extractYouTubeId = (url) => {
16775
- const patterns = [
16776
- /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\n?#]+)/,
16777
- /youtube\.com\/v\/([^&\n?#]+)/,
16778
- /youtube\.com\/watch\?.*v=([^&\n?#]+)/
16779
- ];
16780
- for (const pattern of patterns) {
16781
- const match = url.match(pattern);
16782
- if (match) {
16783
- return match[1];
16784
- }
16713
+ let u;
16714
+ try {
16715
+ u = new URL(url);
16716
+ } catch (e22) {
16717
+ return null;
16785
16718
  }
16786
- return null;
16787
- };
16788
- var YouTubeLinkParser = ({ href, children }) => {
16789
- const videoId = extractYouTubeId(href);
16790
- if (videoId) {
16791
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, YouTubeEmbed, { videoId, title: typeof children === "string" ? children : void 0 });
16719
+ if (!YT_HOSTS.has(u.hostname.toLowerCase())) return null;
16720
+ if (u.hostname.toLowerCase().endsWith("youtu.be")) {
16721
+ return _nullishCoalesce(u.pathname.split("/").filter(Boolean)[0], () => ( null));
16792
16722
  }
16793
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16794
- "a",
16795
- {
16796
- href,
16797
- target: "_blank",
16798
- rel: "noopener noreferrer",
16799
- className: "text-ods-accent hover:text-ods-accent-hover transition-colors duration-200",
16800
- children
16801
- }
16802
- );
16723
+ const v = u.searchParams.get("v");
16724
+ if (v) return v;
16725
+ const m = u.pathname.match(YT_PATH_RE);
16726
+ return m ? m[1] : null;
16803
16727
  };
16804
16728
 
16805
16729
  // src/components/features/video-player.tsx
@@ -16807,75 +16731,6 @@ var YouTubeLinkParser = ({ href, children }) => {
16807
16731
  var _reactplayer = require('react-player'); var _reactplayer2 = _interopRequireDefault(_reactplayer);
16808
16732
  _chunkBJTOSUT4cjs.init_button2.call(void 0, );
16809
16733
 
16810
- function useVideoFirstFramePoster(url, enabled) {
16811
- const [poster, setPoster] = _react.useState.call(void 0, null);
16812
- _react.useEffect.call(void 0, () => {
16813
- if (!enabled || !url) {
16814
- setPoster(null);
16815
- return;
16816
- }
16817
- const isDirectFile = /\.(mp4|webm|mov|m4v)(\?|#|$)/i.test(url);
16818
- if (!isDirectFile) {
16819
- setPoster(null);
16820
- return;
16821
- }
16822
- let cancelled = false;
16823
- const video = document.createElement("video");
16824
- video.crossOrigin = "anonymous";
16825
- video.preload = "metadata";
16826
- video.muted = true;
16827
- video.playsInline = true;
16828
- video.setAttribute("data-poster-extractor", "true");
16829
- const cleanup = () => {
16830
- video.removeAttribute("src");
16831
- try {
16832
- video.load();
16833
- } catch (e22) {
16834
- }
16835
- };
16836
- const onLoadedMetadata = () => {
16837
- if (cancelled) return;
16838
- const dur = video.duration || 10;
16839
- const target = Math.max(2, Math.min(dur * 0.1, 30));
16840
- video.currentTime = target;
16841
- };
16842
- const onSeeked = () => {
16843
- if (cancelled) return;
16844
- try {
16845
- const canvas = document.createElement("canvas");
16846
- canvas.width = video.videoWidth;
16847
- canvas.height = video.videoHeight;
16848
- const ctx = canvas.getContext("2d");
16849
- if (!ctx || !canvas.width || !canvas.height) {
16850
- cleanup();
16851
- return;
16852
- }
16853
- ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
16854
- const dataUrl = canvas.toDataURL("image/jpeg", 0.82);
16855
- if (!cancelled) setPoster(dataUrl);
16856
- } catch (err) {
16857
- console.warn("[VideoPlayer] first-frame extraction failed", err);
16858
- } finally {
16859
- cleanup();
16860
- }
16861
- };
16862
- const onError = () => {
16863
- cleanup();
16864
- };
16865
- video.addEventListener("loadedmetadata", onLoadedMetadata);
16866
- video.addEventListener("seeked", onSeeked);
16867
- video.addEventListener("error", onError);
16868
- video.src = url;
16869
- return () => {
16870
- cancelled = true;
16871
- video.removeEventListener("loadedmetadata", onLoadedMetadata);
16872
- video.removeEventListener("seeked", onSeeked);
16873
- video.removeEventListener("error", onError);
16874
- cleanup();
16875
- };
16876
- }, [url, enabled]);
16877
- return poster;
16878
- }
16879
16734
  var webkitCaptionCSSInjected = false;
16880
16735
  function ensureWebkitCaptionCSS() {
16881
16736
  if (webkitCaptionCSSInjected || typeof document === "undefined") return;
@@ -16901,8 +16756,8 @@ function parseSrt(srt) {
16901
16756
  const tsIndex = lines.findIndex((l) => l.includes(" --> "));
16902
16757
  if (tsIndex === -1) continue;
16903
16758
  const [startStr, endStr] = lines[tsIndex].split(" --> ");
16904
- const from = parseSrtTimestamp(_optionalChain([startStr, 'optionalAccess', _431 => _431.trim, 'call', _432 => _432()]));
16905
- const to = parseSrtTimestamp(_optionalChain([endStr, 'optionalAccess', _433 => _433.trim, 'call', _434 => _434()]));
16759
+ const from = parseSrtTimestamp(_optionalChain([startStr, 'optionalAccess', _433 => _433.trim, 'call', _434 => _434()]));
16760
+ const to = parseSrtTimestamp(_optionalChain([endStr, 'optionalAccess', _435 => _435.trim, 'call', _436 => _436()]));
16906
16761
  if (from === null || to === null) continue;
16907
16762
  const text = lines.slice(tsIndex + 1).join("\n").trim();
16908
16763
  if (text) cues.push({ from, to, text });
@@ -16921,12 +16776,11 @@ function useSubtitleOverlay(srtContent) {
16921
16776
  const updateTime = _react.useCallback.call(void 0, (playedSeconds) => {
16922
16777
  const timeMs = playedSeconds * 1e3;
16923
16778
  const active = cues.find((c) => timeMs >= c.from && timeMs <= c.to);
16924
- setActiveText(_nullishCoalesce(_optionalChain([active, 'optionalAccess', _435 => _435.text]), () => ( null)));
16779
+ setActiveText(_nullishCoalesce(_optionalChain([active, 'optionalAccess', _437 => _437.text]), () => ( null)));
16925
16780
  }, [cues]);
16926
16781
  return { activeText, updateTime, hasCues: cues.length > 0 };
16927
16782
  }
16928
16783
  var SPEED_OPTIONS = [0.5, 0.75, 1, 1.25, 1.5, 2];
16929
- var LAZY_MOUNT_PLAY_FAILURE_GRACE_MS = 2e3;
16930
16784
  function formatTime(secs) {
16931
16785
  if (!secs || !isFinite(secs)) return "0:00";
16932
16786
  const h = Math.floor(secs / 3600);
@@ -16948,7 +16802,7 @@ var VideoPlayer = ({
16948
16802
  srtContent,
16949
16803
  captionsUrl,
16950
16804
  subtitleLabel,
16951
- lazyMount = false
16805
+ preloadStrategy = "metadata"
16952
16806
  }) => {
16953
16807
  const [hasError, setHasError] = _react.useState.call(void 0, false);
16954
16808
  const [isPlaying, setIsPlaying] = _react.useState.call(void 0, autoPlay);
@@ -16967,7 +16821,6 @@ var VideoPlayer = ({
16967
16821
  const hideTimeoutRef = _react.useRef.call(void 0, void 0);
16968
16822
  const clickTimerRef = _react.useRef.call(void 0, void 0);
16969
16823
  const iosFullscreenTimerRef = _react.useRef.call(void 0, void 0);
16970
- const lazyMountFailureTimerRef = _react.useRef.call(void 0, void 0);
16971
16824
  const [captionsEnabled, setCaptionsEnabled] = _react.useState.call(void 0, true);
16972
16825
  const [isFullscreen, setIsFullscreen] = _react.useState.call(void 0, false);
16973
16826
  const { activeText, updateTime, hasCues } = useSubtitleOverlay(srtContent);
@@ -16991,7 +16844,7 @@ var VideoPlayer = ({
16991
16844
  }
16992
16845
  }, []);
16993
16846
  const enterNativeVideoFullscreen = _react.useCallback.call(void 0, () => {
16994
- const video = _optionalChain([playerRef, 'access', _436 => _436.current, 'optionalAccess', _437 => _437.getInternalPlayer, 'call', _438 => _438()]);
16847
+ const video = _optionalChain([playerRef, 'access', _438 => _438.current, 'optionalAccess', _439 => _439.getInternalPlayer, 'call', _440 => _440()]);
16995
16848
  if (!video || !video.webkitEnterFullscreen) return;
16996
16849
  ensureWebkitCaptionCSS();
16997
16850
  const trackSrc = captionsUrl || null;
@@ -17099,11 +16952,11 @@ var VideoPlayer = ({
17099
16952
  break;
17100
16953
  case "ArrowLeft":
17101
16954
  e.preventDefault();
17102
- _optionalChain([playerRef, 'access', _439 => _439.current, 'optionalAccess', _440 => _440.seekTo, 'call', _441 => _441(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _442 => _442.current, 'optionalAccess', _443 => _443.getCurrentTime, 'call', _444 => _444()]), () => ( 0))) - 5), "seconds")]);
16955
+ _optionalChain([playerRef, 'access', _441 => _441.current, 'optionalAccess', _442 => _442.seekTo, 'call', _443 => _443(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _444 => _444.current, 'optionalAccess', _445 => _445.getCurrentTime, 'call', _446 => _446()]), () => ( 0))) - 5), "seconds")]);
17103
16956
  break;
17104
16957
  case "ArrowRight":
17105
16958
  e.preventDefault();
17106
- _optionalChain([playerRef, 'access', _445 => _445.current, 'optionalAccess', _446 => _446.seekTo, 'call', _447 => _447(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _448 => _448.current, 'optionalAccess', _449 => _449.getCurrentTime, 'call', _450 => _450()]), () => ( 0))) + 5), "seconds")]);
16959
+ _optionalChain([playerRef, 'access', _447 => _447.current, 'optionalAccess', _448 => _448.seekTo, 'call', _449 => _449(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _450 => _450.current, 'optionalAccess', _451 => _451.getCurrentTime, 'call', _452 => _452()]), () => ( 0))) + 5), "seconds")]);
17107
16960
  break;
17108
16961
  case "ArrowUp":
17109
16962
  e.preventDefault();
@@ -17153,11 +17006,11 @@ var VideoPlayer = ({
17153
17006
  const isDraggingRef = _react.useRef.call(void 0, false);
17154
17007
  const dragListenersRef = _react.useRef.call(void 0, null);
17155
17008
  const seekToClientX = _react.useCallback.call(void 0, (clientX) => {
17156
- const rect = _optionalChain([progressBarRef, 'access', _451 => _451.current, 'optionalAccess', _452 => _452.getBoundingClientRect, 'call', _453 => _453()]);
17009
+ const rect = _optionalChain([progressBarRef, 'access', _453 => _453.current, 'optionalAccess', _454 => _454.getBoundingClientRect, 'call', _455 => _455()]);
17157
17010
  if (!rect) return;
17158
17011
  const fraction = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
17159
17012
  setPlayed(fraction);
17160
- _optionalChain([playerRef, 'access', _454 => _454.current, 'optionalAccess', _455 => _455.seekTo, 'call', _456 => _456(fraction, "fraction")]);
17013
+ _optionalChain([playerRef, 'access', _456 => _456.current, 'optionalAccess', _457 => _457.seekTo, 'call', _458 => _458(fraction, "fraction")]);
17161
17014
  }, []);
17162
17015
  const handleProgressMouseDown = _react.useCallback.call(void 0, (e) => {
17163
17016
  e.stopPropagation();
@@ -17196,22 +17049,22 @@ var VideoPlayer = ({
17196
17049
  if (e.key === "ArrowRight") {
17197
17050
  e.preventDefault();
17198
17051
  e.stopPropagation();
17199
- _optionalChain([playerRef, 'access', _457 => _457.current, 'optionalAccess', _458 => _458.seekTo, 'call', _459 => _459(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _460 => _460.current, 'optionalAccess', _461 => _461.getCurrentTime, 'call', _462 => _462()]), () => ( 0))) + 5), "seconds")]);
17052
+ _optionalChain([playerRef, 'access', _459 => _459.current, 'optionalAccess', _460 => _460.seekTo, 'call', _461 => _461(Math.min(duration, (_nullishCoalesce(_optionalChain([playerRef, 'access', _462 => _462.current, 'optionalAccess', _463 => _463.getCurrentTime, 'call', _464 => _464()]), () => ( 0))) + 5), "seconds")]);
17200
17053
  }
17201
17054
  if (e.key === "ArrowLeft") {
17202
17055
  e.preventDefault();
17203
17056
  e.stopPropagation();
17204
- _optionalChain([playerRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.seekTo, 'call', _465 => _465(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.getCurrentTime, 'call', _468 => _468()]), () => ( 0))) - 5), "seconds")]);
17057
+ _optionalChain([playerRef, 'access', _465 => _465.current, 'optionalAccess', _466 => _466.seekTo, 'call', _467 => _467(Math.max(0, (_nullishCoalesce(_optionalChain([playerRef, 'access', _468 => _468.current, 'optionalAccess', _469 => _469.getCurrentTime, 'call', _470 => _470()]), () => ( 0))) - 5), "seconds")]);
17205
17058
  }
17206
17059
  if (e.key === "Home") {
17207
17060
  e.preventDefault();
17208
17061
  e.stopPropagation();
17209
- _optionalChain([playerRef, 'access', _469 => _469.current, 'optionalAccess', _470 => _470.seekTo, 'call', _471 => _471(0, "seconds")]);
17062
+ _optionalChain([playerRef, 'access', _471 => _471.current, 'optionalAccess', _472 => _472.seekTo, 'call', _473 => _473(0, "seconds")]);
17210
17063
  }
17211
17064
  if (e.key === "End") {
17212
17065
  e.preventDefault();
17213
17066
  e.stopPropagation();
17214
- _optionalChain([playerRef, 'access', _472 => _472.current, 'optionalAccess', _473 => _473.seekTo, 'call', _474 => _474(duration, "seconds")]);
17067
+ _optionalChain([playerRef, 'access', _474 => _474.current, 'optionalAccess', _475 => _475.seekTo, 'call', _476 => _476(duration, "seconds")]);
17215
17068
  }
17216
17069
  }, [duration]);
17217
17070
  const handleProgressHover = _react.useCallback.call(void 0, (e) => {
@@ -17246,16 +17099,14 @@ var VideoPlayer = ({
17246
17099
  if (!hasStarted) return;
17247
17100
  handleTouchToggle();
17248
17101
  }, [hasStarted, handleTouchToggle]);
17249
- const extractedPoster = useVideoFirstFramePoster(url, !lazyMount && !hasStarted && !poster);
17250
- const effectivePoster = poster || extractedPoster || void 0;
17251
- const posterBgColor = _chunkWX7PT5C7cjs.useImageEdgeColor.call(void 0, effectivePoster);
17102
+ const effectivePoster = poster || void 0;
17103
+ const posterBgColor = _chunkALW3D72Ocjs.useImageEdgeColor.call(void 0, effectivePoster);
17252
17104
  _react.useEffect.call(void 0, () => {
17253
17105
  setMounted(true);
17254
17106
  return () => {
17255
17107
  clearTimeout(clickTimerRef.current);
17256
17108
  clearTimeout(hideTimeoutRef.current);
17257
17109
  clearTimeout(iosFullscreenTimerRef.current);
17258
- clearTimeout(lazyMountFailureTimerRef.current);
17259
17110
  isDraggingRef.current = false;
17260
17111
  if (dragListenersRef.current) {
17261
17112
  document.removeEventListener("mousemove", dragListenersRef.current.move);
@@ -17266,7 +17117,7 @@ var VideoPlayer = ({
17266
17117
  }, []);
17267
17118
  _react.useEffect.call(void 0, () => {
17268
17119
  if (!hasStarted) return;
17269
- const video = _optionalChain([playerRef, 'access', _475 => _475.current, 'optionalAccess', _476 => _476.getInternalPlayer, 'call', _477 => _477()]);
17120
+ const video = _optionalChain([playerRef, 'access', _477 => _477.current, 'optionalAccess', _478 => _478.getInternalPlayer, 'call', _479 => _479()]);
17270
17121
  if (!video) return;
17271
17122
  const onBeginFS = () => activateCaptionTracks(video);
17272
17123
  video.addEventListener("webkitbeginfullscreen", onBeginFS);
@@ -17280,22 +17131,16 @@ var VideoPlayer = ({
17280
17131
  const handlePause = _react.useCallback.call(void 0, () => setIsPlaying(false), []);
17281
17132
  const handleEnded = _react.useCallback.call(void 0, () => setIsPlaying(false), []);
17282
17133
  const handlePlayClick = _react.useCallback.call(void 0, () => {
17283
- if (lazyMount) {
17284
- const native = _optionalChain([playerRef, 'access', _478 => _478.current, 'optionalAccess', _479 => _479.getInternalPlayer, 'call', _480 => _480()]);
17285
- if (native instanceof HTMLVideoElement) {
17286
- native.play().catch(() => {
17287
- clearTimeout(lazyMountFailureTimerRef.current);
17288
- lazyMountFailureTimerRef.current = setTimeout(() => {
17289
- if (native.paused && native.error) setHasError(true);
17290
- }, LAZY_MOUNT_PLAY_FAILURE_GRACE_MS);
17291
- });
17292
- } else if (process.env.NODE_ENV !== "production") {
17293
- console.warn("[VideoPlayer] lazyMount sync play(): no native HTMLVideoElement yet");
17294
- }
17134
+ const native = _optionalChain([playerRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.getInternalPlayer, 'call', _482 => _482()]);
17135
+ if (native instanceof HTMLVideoElement) {
17136
+ native.play().catch(() => {
17137
+ });
17138
+ } else if (process.env.NODE_ENV !== "production") {
17139
+ console.warn("[VideoPlayer] sync play(): no native HTMLVideoElement yet");
17295
17140
  }
17296
17141
  setHasStarted(true);
17297
17142
  setIsPlaying(true);
17298
- }, [lazyMount]);
17143
+ }, []);
17299
17144
  const handleProgress = _react.useCallback.call(void 0, ({ played: p, loaded: l, playedSeconds }) => {
17300
17145
  setPlayed(p);
17301
17146
  setLoaded(l);
@@ -17370,7 +17215,7 @@ var VideoPlayer = ({
17370
17215
  onBufferEnd: handleBufferEnd,
17371
17216
  onProgress: handleProgress,
17372
17217
  progressInterval: 200,
17373
- config: { file: { attributes: { controlsList: "nodownload", playsInline: true, preload: lazyMount && !hasStarted ? "none" : hasStarted ? "auto" : "metadata" } } },
17218
+ config: { file: { attributes: { controlsList: "nodownload", playsInline: true, preload: hasStarted ? "auto" : preloadStrategy } } },
17374
17219
  light: false,
17375
17220
  playsinline: true
17376
17221
  }
@@ -17600,7 +17445,7 @@ var SecondaryAction = ({ action }) => {
17600
17445
  e.preventDefault();
17601
17446
  return;
17602
17447
  }
17603
- _optionalChain([action, 'access', _481 => _481.onClick, 'optionalCall', _482 => _482()]);
17448
+ _optionalChain([action, 'access', _483 => _483.onClick, 'optionalCall', _484 => _484()]);
17604
17449
  },
17605
17450
  [action]
17606
17451
  );
@@ -17641,13 +17486,13 @@ var MenuItem = ({ item, onItemClick }) => {
17641
17486
  const activate = _react.useCallback.call(void 0, () => {
17642
17487
  if (item.disabled) return;
17643
17488
  if (item.type === "checkbox") {
17644
- _optionalChain([item, 'access', _483 => _483.onClick, 'optionalCall', _484 => _484()]);
17645
- _optionalChain([onItemClick, 'optionalCall', _485 => _485(item)]);
17489
+ _optionalChain([item, 'access', _485 => _485.onClick, 'optionalCall', _486 => _486()]);
17490
+ _optionalChain([onItemClick, 'optionalCall', _487 => _487(item)]);
17646
17491
  return;
17647
17492
  }
17648
17493
  if (item.type === "submenu") return;
17649
- _optionalChain([item, 'access', _486 => _486.onClick, 'optionalCall', _487 => _487()]);
17650
- _optionalChain([onItemClick, 'optionalCall', _488 => _488(item)]);
17494
+ _optionalChain([item, 'access', _488 => _488.onClick, 'optionalCall', _489 => _489()]);
17495
+ _optionalChain([onItemClick, 'optionalCall', _490 => _490(item)]);
17651
17496
  }, [item, onItemClick]);
17652
17497
  const handleClick = _react.useCallback.call(void 0,
17653
17498
  (e) => {
@@ -17673,8 +17518,8 @@ var MenuItem = ({ item, onItemClick }) => {
17673
17518
  e.stopPropagation();
17674
17519
  return;
17675
17520
  }
17676
- _optionalChain([item, 'access', _489 => _489.onClick, 'optionalCall', _490 => _490()]);
17677
- _optionalChain([onItemClick, 'optionalCall', _491 => _491(item)]);
17521
+ _optionalChain([item, 'access', _491 => _491.onClick, 'optionalCall', _492 => _492()]);
17522
+ _optionalChain([onItemClick, 'optionalCall', _493 => _493(item)]);
17678
17523
  },
17679
17524
  [item, onItemClick]
17680
17525
  );
@@ -17829,7 +17674,7 @@ var ActionsMenuDropdown = ({
17829
17674
  const [open, setOpen] = _react.useState.call(void 0, false);
17830
17675
  const handleItemClick = _react.useCallback.call(void 0,
17831
17676
  (item) => {
17832
- _optionalChain([onItemClick, 'optionalCall', _492 => _492(item)]);
17677
+ _optionalChain([onItemClick, 'optionalCall', _494 => _494(item)]);
17833
17678
  if (item.type !== "checkbox" && item.type !== "submenu") {
17834
17679
  setOpen(false);
17835
17680
  }
@@ -18000,7 +17845,7 @@ function IconButtonsVariant({
18000
17845
  }) {
18001
17846
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
18002
17847
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
18003
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _493 => _493[0], 'access', _494 => _494.submenu, 'optionalAccess', _495 => _495.length]);
17848
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _495 => _495[0], 'access', _496 => _496.submenu, 'optionalAccess', _497 => _497.length]);
18004
17849
  const singleAction = isSingleAction ? actions[0] : null;
18005
17850
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
18006
17851
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -18430,14 +18275,14 @@ function ReleaseDetailPage({
18430
18275
  releaseVersion
18431
18276
  ] })
18432
18277
  ] }) }),
18433
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _496 => _496.map, 'call', _497 => _497((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18278
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _498 => _498.map, 'call', _499 => _499((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18434
18279
  StatusBadge,
18435
18280
  {
18436
- text: (tag.name || _optionalChain([tag, 'access', _498 => _498.blog_tags, 'optionalAccess', _499 => _499.name]) || "").toUpperCase(),
18281
+ text: (tag.name || _optionalChain([tag, 'access', _500 => _500.blog_tags, 'optionalAccess', _501 => _501.name]) || "").toUpperCase(),
18437
18282
  variant: "card",
18438
18283
  className: "bg-ods-card border border-ods-border"
18439
18284
  },
18440
- tag.id || _optionalChain([tag, 'access', _500 => _500.blog_tags, 'optionalAccess', _501 => _501.id])
18285
+ tag.id || _optionalChain([tag, 'access', _502 => _502.blog_tags, 'optionalAccess', _503 => _503.id])
18441
18286
  ))]) }),
18442
18287
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
18443
18288
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
@@ -18456,15 +18301,15 @@ function ReleaseDetailPage({
18456
18301
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18457
18302
  SquareAvatar,
18458
18303
  {
18459
- src: _optionalChain([author, 'optionalAccess', _502 => _502.avatar_url]) || "",
18460
- alt: _optionalChain([author, 'optionalAccess', _503 => _503.full_name]) || "Author",
18461
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _504 => _504.full_name]) || "Unknown"),
18304
+ src: _optionalChain([author, 'optionalAccess', _504 => _504.avatar_url]) || "",
18305
+ alt: _optionalChain([author, 'optionalAccess', _505 => _505.full_name]) || "Author",
18306
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _506 => _506.full_name]) || "Unknown"),
18462
18307
  size: "md",
18463
18308
  variant: "round"
18464
18309
  }
18465
18310
  ),
18466
18311
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18467
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _505 => _505.full_name]) || "Unknown Author" }),
18312
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _507 => _507.full_name]) || "Unknown Author" }),
18468
18313
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18469
18314
  ] })
18470
18315
  ] })
@@ -18495,15 +18340,15 @@ function ReleaseDetailPage({
18495
18340
  videoBites,
18496
18341
  bitesTitle: "Video Clips",
18497
18342
  filterPublishedBites: true,
18498
- srtContent: _optionalChain([release, 'optionalAccess', _506 => _506.srt_content]),
18499
- captionsUrl: _optionalChain([release, 'optionalAccess', _507 => _507.captionsUrl])
18343
+ srtContent: _optionalChain([release, 'optionalAccess', _508 => _508.srt_content]),
18344
+ captionsUrl: _optionalChain([release, 'optionalAccess', _509 => _509.captionsUrl])
18500
18345
  }
18501
18346
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18502
18347
  youtubeUrl && (() => {
18503
18348
  const videoId = extractYouTubeId(youtubeUrl);
18504
18349
  return videoId ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, YouTubeEmbed, { videoId, title: `${releaseTitle} - Video`, showTitle: false, showMeta: true }) : null;
18505
18350
  })(),
18506
- !youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-3xl", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayer, { url: mainVideoUrl, srtContent: _optionalChain([release, 'optionalAccess', _508 => _508.srt_content]), captionsUrl: _optionalChain([release, 'optionalAccess', _509 => _509.captionsUrl]) }) }) }),
18351
+ !youtubeUrl && mainVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-3xl", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayer, { url: mainVideoUrl, srtContent: _optionalChain([release, 'optionalAccess', _510 => _510.srt_content]), captionsUrl: _optionalChain([release, 'optionalAccess', _511 => _511.captionsUrl]) }) }) }),
18507
18352
  highlightVideoUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full max-w-3xl", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VideoPlayer, { url: highlightVideoUrl, poster: highlightVideoThumbnail }) }) })
18508
18353
  ] }),
18509
18354
  releaseContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: releaseContent }) }),
@@ -18583,7 +18428,7 @@ function ReleaseDetailPage({
18583
18428
  }
18584
18429
  )
18585
18430
  ] }),
18586
- (_optionalChain([githubReleases, 'optionalAccess', _510 => _510.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _511 => _511.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18431
+ (_optionalChain([githubReleases, 'optionalAccess', _512 => _512.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _513 => _513.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18587
18432
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18588
18433
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
18589
18434
  githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
@@ -18612,7 +18457,7 @@ function ReleaseDetailPage({
18612
18457
  {
18613
18458
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18614
18459
  className: "text-h4 text-[#ffc008] hover:underline",
18615
- children: _optionalChain([path, 'access', _512 => _512.replace, 'call', _513 => _513(/^\//, ""), 'access', _514 => _514.split, 'call', _515 => _515("/"), 'access', _516 => _516.pop, 'call', _517 => _517(), 'optionalAccess', _518 => _518.replace, 'call', _519 => _519(/-/g, " ")]) || "View Article"
18460
+ children: _optionalChain([path, 'access', _514 => _514.replace, 'call', _515 => _515(/^\//, ""), 'access', _516 => _516.split, 'call', _517 => _517("/"), 'access', _518 => _518.pop, 'call', _519 => _519(), 'optionalAccess', _520 => _520.replace, 'call', _521 => _521(/-/g, " ")]) || "View Article"
18616
18461
  }
18617
18462
  ),
18618
18463
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -18711,7 +18556,7 @@ function InfoCard({ data, className = "" }) {
18711
18556
  );
18712
18557
  }
18713
18558
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
18714
- const { copy, copied } = _chunkWX7PT5C7cjs.useCopyToClipboard.call(void 0, );
18559
+ const { copy, copied } = _chunkALW3D72Ocjs.useCopyToClipboard.call(void 0, );
18715
18560
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
18716
18561
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
18717
18562
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -18923,7 +18768,7 @@ var ProgressBar = ({
18923
18768
  mobileHeight = 8,
18924
18769
  inverted = false
18925
18770
  }) => {
18926
- const isMdUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useMdUp.call(void 0, ), () => ( true));
18771
+ const isMdUp = _nullishCoalesce(_chunkALW3D72Ocjs.useMdUp.call(void 0, ), () => ( true));
18927
18772
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
18928
18773
  const effectiveHeight = isMdUp ? height : mobileHeight;
18929
18774
  const containerRef = _react.useRef.call(void 0, null);
@@ -19258,7 +19103,7 @@ function TagsManager({
19258
19103
  const name = search.trim();
19259
19104
  if (!name) return;
19260
19105
  const result = await onCreateTag(name);
19261
- if (_optionalChain([result, 'optionalAccess', _520 => _520.id])) {
19106
+ if (_optionalChain([result, 'optionalAccess', _522 => _522.id])) {
19262
19107
  onChange([...selectedIds, result.id]);
19263
19108
  setSearch("");
19264
19109
  }
@@ -19266,7 +19111,7 @@ function TagsManager({
19266
19111
  const startEdit = React53.useCallback((id, name) => {
19267
19112
  setEditingId(id);
19268
19113
  setEditingName(name);
19269
- setTimeout(() => _optionalChain([editInputRef, 'access', _521 => _521.current, 'optionalAccess', _522 => _522.focus, 'call', _523 => _523()]), 0);
19114
+ setTimeout(() => _optionalChain([editInputRef, 'access', _523 => _523.current, 'optionalAccess', _524 => _524.focus, 'call', _525 => _525()]), 0);
19270
19115
  }, []);
19271
19116
  const confirmEdit = React53.useCallback(async () => {
19272
19117
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -19293,7 +19138,7 @@ function TagsManager({
19293
19138
  e.stopPropagation();
19294
19139
  onChange([]);
19295
19140
  setSearch("");
19296
- _optionalChain([inputRef, 'access', _524 => _524.current, 'optionalAccess', _525 => _525.focus, 'call', _526 => _526()]);
19141
+ _optionalChain([inputRef, 'access', _526 => _526.current, 'optionalAccess', _527 => _527.focus, 'call', _528 => _528()]);
19297
19142
  },
19298
19143
  [onChange]
19299
19144
  );
@@ -19392,10 +19237,10 @@ function TagsManager({
19392
19237
  align: "start",
19393
19238
  onOpenAutoFocus: (e) => {
19394
19239
  e.preventDefault();
19395
- _optionalChain([inputRef, 'access', _527 => _527.current, 'optionalAccess', _528 => _528.focus, 'call', _529 => _529()]);
19240
+ _optionalChain([inputRef, 'access', _529 => _529.current, 'optionalAccess', _530 => _530.focus, 'call', _531 => _531()]);
19396
19241
  },
19397
19242
  onInteractOutside: (e) => {
19398
- if (_optionalChain([containerRef, 'access', _530 => _530.current, 'optionalAccess', _531 => _531.contains, 'call', _532 => _532(e.target)])) {
19243
+ if (_optionalChain([containerRef, 'access', _532 => _532.current, 'optionalAccess', _533 => _533.contains, 'call', _534 => _534(e.target)])) {
19399
19244
  e.preventDefault();
19400
19245
  }
19401
19246
  },
@@ -20542,19 +20387,19 @@ function TabNavigation({
20542
20387
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20543
20388
  const getInitialTab = () => {
20544
20389
  if (isUrlSyncEnabled) {
20545
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _533 => _533.get, 'call', _534 => _534(paramName)]) || "";
20390
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _535 => _535.get, 'call', _536 => _536(paramName)]) || "";
20546
20391
  if (validTabIds.has(fromUrl)) {
20547
20392
  return fromUrl;
20548
20393
  }
20549
20394
  }
20550
- return defaultTab || _optionalChain([tabs, 'access', _535 => _535[0], 'optionalAccess', _536 => _536.id]) || "";
20395
+ return defaultTab || _optionalChain([tabs, 'access', _537 => _537[0], 'optionalAccess', _538 => _538.id]) || "";
20551
20396
  };
20552
20397
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20553
20398
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20554
20399
  _react.useEffect.call(void 0, () => {
20555
20400
  if (!isUrlSyncEnabled) return;
20556
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _537 => _537.get, 'call', _538 => _538(paramName)]) || "";
20557
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _539 => _539[0], 'optionalAccess', _540 => _540.id]) || "";
20401
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _539 => _539.get, 'call', _540 => _540(paramName)]) || "";
20402
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _541 => _541[0], 'optionalAccess', _542 => _542.id]) || "";
20558
20403
  if (nextTab !== internalActiveTab) {
20559
20404
  setInternalActiveTab(nextTab);
20560
20405
  }
@@ -20562,13 +20407,13 @@ function TabNavigation({
20562
20407
  const handleTabChange = (tabId) => {
20563
20408
  if (isUrlSyncEnabled) {
20564
20409
  setInternalActiveTab(tabId);
20565
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _541 => _541.toString, 'call', _542 => _542()]));
20410
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _543 => _543.toString, 'call', _544 => _544()]));
20566
20411
  params.set(paramName, tabId);
20567
20412
  const method = replaceState ? "replace" : "push";
20568
20413
  router[method](`${pathname}?${params.toString()}`);
20569
- _optionalChain([controlledOnTabChange, 'optionalCall', _543 => _543(tabId)]);
20414
+ _optionalChain([controlledOnTabChange, 'optionalCall', _545 => _545(tabId)]);
20570
20415
  } else {
20571
- _optionalChain([controlledOnTabChange, 'optionalCall', _544 => _544(tabId)]);
20416
+ _optionalChain([controlledOnTabChange, 'optionalCall', _546 => _546(tabId)]);
20572
20417
  }
20573
20418
  };
20574
20419
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20656,7 +20501,7 @@ function TabNavigation({
20656
20501
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20657
20502
  var getTabComponent = (tabs, tabId) => {
20658
20503
  const tab = getTabById(tabs, tabId);
20659
- return _optionalChain([tab, 'optionalAccess', _545 => _545.component]) || null;
20504
+ return _optionalChain([tab, 'optionalAccess', _547 => _547.component]) || null;
20660
20505
  };
20661
20506
 
20662
20507
  // src/components/ui/alert.tsx
@@ -20993,16 +20838,16 @@ function FilterModal({
20993
20838
  };
20994
20839
  const handleReset = () => {
20995
20840
  onFilterChange({});
20996
- _optionalChain([onTagsChange, 'optionalCall', _546 => _546([])]);
20841
+ _optionalChain([onTagsChange, 'optionalCall', _548 => _548([])]);
20997
20842
  onClose();
20998
20843
  };
20999
20844
  const handleApply = () => {
21000
20845
  onFilterChange(selectedFilters);
21001
- _optionalChain([onTagsChange, 'optionalCall', _547 => _547(pendingTags)]);
20846
+ _optionalChain([onTagsChange, 'optionalCall', _549 => _549(pendingTags)]);
21002
20847
  onClose();
21003
20848
  };
21004
20849
  const getColumnDirection = (columnKey) => {
21005
- return _optionalChain([sortConfig, 'optionalAccess', _548 => _548.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20850
+ return _optionalChain([sortConfig, 'optionalAccess', _550 => _550.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21006
20851
  };
21007
20852
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
21008
20853
  const hasFilterGroups = filterGroups.length > 0;
@@ -21051,7 +20896,7 @@ function FilterModal({
21051
20896
  {
21052
20897
  column,
21053
20898
  currentDirection: getColumnDirection(column.key),
21054
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _549 => _549(column.key, direction)]),
20899
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _551 => _551(column.key, direction)]),
21055
20900
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
21056
20901
  },
21057
20902
  column.key
@@ -21118,7 +20963,7 @@ function ListPageLayout({
21118
20963
  }) {
21119
20964
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
21120
20965
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
21121
- const debouncedSearchValue = _chunkWX7PT5C7cjs.useDebounce.call(void 0, localSearchValue, 500);
20966
+ const debouncedSearchValue = _chunkALW3D72Ocjs.useDebounce.call(void 0, localSearchValue, 500);
21122
20967
  _react.useEffect.call(void 0, () => {
21123
20968
  setLocalSearchValue(searchValue);
21124
20969
  }, [searchValue]);
@@ -21217,9 +21062,9 @@ function TitleBlock({
21217
21062
  const [imageFailed, setImageFailed] = React33.default.useState(false);
21218
21063
  React33.default.useEffect(() => {
21219
21064
  setImageFailed(false);
21220
- }, [_optionalChain([image, 'optionalAccess', _550 => _550.src])]);
21065
+ }, [_optionalChain([image, 'optionalAccess', _552 => _552.src])]);
21221
21066
  const showImageFallback = !!image && (imageFailed || !image.src);
21222
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _551 => _551.alt]) || title);
21067
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _553 => _553.alt]) || title);
21223
21068
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21224
21069
  "div",
21225
21070
  {
@@ -22015,26 +21860,26 @@ function DeviceCard({
22015
21860
  ] }),
22016
21861
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", children: device.organization })
22017
21862
  ] }),
22018
- _optionalChain([actions, 'access', _552 => _552.moreButton, 'optionalAccess', _553 => _553.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21863
+ _optionalChain([actions, 'access', _554 => _554.moreButton, 'optionalAccess', _555 => _555.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22019
21864
  "div",
22020
21865
  {
22021
21866
  className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
22022
21867
  onClick: (e) => {
22023
21868
  e.stopPropagation();
22024
- _optionalChain([actions, 'access', _554 => _554.moreButton, 'optionalAccess', _555 => _555.onClick, 'optionalCall', _556 => _556()]);
21869
+ _optionalChain([actions, 'access', _556 => _556.moreButton, 'optionalAccess', _557 => _557.onClick, 'optionalCall', _558 => _558()]);
22025
21870
  },
22026
21871
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22027
21872
  }
22028
21873
  ),
22029
- _optionalChain([actions, 'access', _557 => _557.detailsButton, 'optionalAccess', _558 => _558.visible]) !== false && _optionalChain([actions, 'access', _559 => _559.detailsButton, 'optionalAccess', _560 => _560.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22030
- _optionalChain([actions, 'access', _561 => _561.customActions, 'optionalAccess', _562 => _562.map, 'call', _563 => _563(
21874
+ _optionalChain([actions, 'access', _559 => _559.detailsButton, 'optionalAccess', _560 => _560.visible]) !== false && _optionalChain([actions, 'access', _561 => _561.detailsButton, 'optionalAccess', _562 => _562.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21875
+ _optionalChain([actions, 'access', _563 => _563.customActions, 'optionalAccess', _564 => _564.map, 'call', _565 => _565(
22031
21876
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22032
21877
  "div",
22033
21878
  {
22034
21879
  className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
22035
21880
  onClick: (e) => {
22036
21881
  e.stopPropagation();
22037
- _optionalChain([action, 'access', _564 => _564.onClick, 'optionalCall', _565 => _565()]);
21882
+ _optionalChain([action, 'access', _566 => _566.onClick, 'optionalCall', _567 => _567()]);
22038
21883
  },
22039
21884
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22040
21885
  },
@@ -22393,7 +22238,7 @@ function MoreActionsMenu({
22393
22238
  ] });
22394
22239
  const handleActivate = (e) => {
22395
22240
  e.stopPropagation();
22396
- if (!item.disabled) _optionalChain([item, 'access', _566 => _566.onClick, 'optionalCall', _567 => _567()]);
22241
+ if (!item.disabled) _optionalChain([item, 'access', _568 => _568.onClick, 'optionalCall', _569 => _569()]);
22397
22242
  };
22398
22243
  if (item.href) {
22399
22244
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22543,7 +22388,7 @@ function OrganizationIcon({
22543
22388
  backgroundStyle = "dark"
22544
22389
  }) {
22545
22390
  const { width, height } = imageSizeMap2[size];
22546
- const initials = _optionalChain([organizationName, 'optionalAccess', _568 => _568.substring, 'call', _569 => _569(0, 2)]) || "??";
22391
+ const initials = _optionalChain([organizationName, 'optionalAccess', _570 => _570.substring, 'call', _571 => _571(0, 2)]) || "??";
22547
22392
  const containerClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
22548
22393
  sizeClasses3[size],
22549
22394
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22594,7 +22439,7 @@ function OrganizationCard({
22594
22439
  const handleActionClick = (e) => {
22595
22440
  e.preventDefault();
22596
22441
  e.stopPropagation();
22597
- _optionalChain([actionButton, 'optionalAccess', _570 => _570.onClick, 'call', _571 => _571(organization, e)]);
22442
+ _optionalChain([actionButton, 'optionalAccess', _572 => _572.onClick, 'call', _573 => _573(organization, e)]);
22598
22443
  };
22599
22444
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22600
22445
  "div",
@@ -22751,7 +22596,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22751
22596
  onKeyDown: (e) => {
22752
22597
  if (e.key === "Enter" || e.key === " ") {
22753
22598
  e.preventDefault();
22754
- _optionalChain([onClick, 'optionalCall', _572 => _572()]);
22599
+ _optionalChain([onClick, 'optionalCall', _574 => _574()]);
22755
22600
  }
22756
22601
  },
22757
22602
  children: [
@@ -22760,7 +22605,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22760
22605
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
22761
22606
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22762
22607
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['Azeret_Mono'] font-normal text-[13px] leading-4 text-[#888888] uppercase tracking-wider", children: formatTimestamp(log.timestamp) }),
22763
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType: log.toolType, size: 16 })
22608
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType: log.toolType, size: 16 })
22764
22609
  ] })
22765
22610
  ] })
22766
22611
  ]
@@ -22852,7 +22697,7 @@ var LogsList = React78.forwardRef(({
22852
22697
  log,
22853
22698
  isLast: index === logs.length - 1,
22854
22699
  showConnector,
22855
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _573 => _573(log)])
22700
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _575 => _575(log)])
22856
22701
  },
22857
22702
  log.id
22858
22703
  ))
@@ -22965,7 +22810,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
22965
22810
  }
22966
22811
  function ServiceCardRowItem({ row }) {
22967
22812
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
22968
- const { copy, copied } = _chunkWX7PT5C7cjs.useCopyToClipboard.call(void 0, );
22813
+ const { copy, copied } = _chunkALW3D72Ocjs.useCopyToClipboard.call(void 0, );
22969
22814
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
22970
22815
  const displayValue = row.isSecret ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MaskedValue, { value: row.value, isRevealed: revealed }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.value });
22971
22816
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -23441,7 +23286,7 @@ function CursorPaginationSimple({
23441
23286
  {
23442
23287
  variant: "transparent",
23443
23288
  size: "icon",
23444
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _574 => _574("")]),
23289
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _576 => _576("")]),
23445
23290
  disabled: !hasPreviousPage || loading,
23446
23291
  className: "h-8 w-8",
23447
23292
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23453,7 +23298,7 @@ function CursorPaginationSimple({
23453
23298
  {
23454
23299
  variant: "transparent",
23455
23300
  size: "icon",
23456
- onClick: () => _optionalChain([onNext, 'optionalCall', _575 => _575("")]),
23301
+ onClick: () => _optionalChain([onNext, 'optionalCall', _577 => _577("")]),
23457
23302
  disabled: !hasNextPage || loading,
23458
23303
  className: "h-8 w-8",
23459
23304
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23513,7 +23358,7 @@ function TableColumnFilterDropdown({
23513
23358
  placement = "bottom-start",
23514
23359
  dropdownClassName = "min-w-[240px]"
23515
23360
  }) {
23516
- const activeCount = _optionalChain([filters, 'optionalAccess', _576 => _576[columnKey], 'optionalAccess', _577 => _577.length]) || 0;
23361
+ const activeCount = _optionalChain([filters, 'optionalAccess', _578 => _578[columnKey], 'optionalAccess', _579 => _579.length]) || 0;
23517
23362
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23518
23363
  FiltersDropdown,
23519
23364
  {
@@ -23556,7 +23401,7 @@ function TableColumnFilterDropdown({
23556
23401
  delete newFilters[columnKey];
23557
23402
  onFilterChange(newFilters);
23558
23403
  },
23559
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _578 => _578[columnKey]]) || [] },
23404
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _580 => _580[columnKey]]) || [] },
23560
23405
  placement,
23561
23406
  dropdownClassName
23562
23407
  }
@@ -23631,7 +23476,7 @@ function TableHeader({
23631
23476
  }
23632
23477
  return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
23633
23478
  };
23634
- const isLgUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useLgUp.call(void 0, ), () => ( false));
23479
+ const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
23635
23480
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23636
23481
  "div",
23637
23482
  {
@@ -23853,7 +23698,7 @@ function TableRow({
23853
23698
  const keys = column.key.split(".");
23854
23699
  let value = item;
23855
23700
  for (const key of keys) {
23856
- value = _optionalChain([value, 'optionalAccess', _579 => _579[key]]);
23701
+ value = _optionalChain([value, 'optionalAccess', _581 => _581[key]]);
23857
23702
  }
23858
23703
  if (value === null || value === void 0) {
23859
23704
  return "-";
@@ -23923,7 +23768,7 @@ function TableRow({
23923
23768
  // src/components/ui/table/table.tsx
23924
23769
 
23925
23770
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23926
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _580 => _580.length])) || Boolean(renderRowActions);
23771
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _582 => _582.length])) || Boolean(renderRowActions);
23927
23772
  const result = [...columns];
23928
23773
  if (hasActions) {
23929
23774
  const actionsColumn = {
@@ -24017,7 +23862,7 @@ function Table({
24017
23862
  return rowKey(item);
24018
23863
  }
24019
23864
  const key = item[rowKey];
24020
- return _optionalChain([key, 'optionalAccess', _581 => _581.toString, 'call', _582 => _582()]) || index.toString();
23865
+ return _optionalChain([key, 'optionalAccess', _583 => _583.toString, 'call', _584 => _584()]) || index.toString();
24021
23866
  };
24022
23867
  const getRowClassName = (item, index) => {
24023
23868
  if (typeof rowClassName === "function") {
@@ -24051,23 +23896,23 @@ function Table({
24051
23896
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
24052
23897
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
24053
23898
  const sentinelRef = _react.useRef.call(void 0, null);
24054
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _583 => _583.onLoadMore]));
24055
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _584 => _584.onLoadMore]);
23899
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _585 => _585.onLoadMore]));
23900
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _586 => _586.onLoadMore]);
24056
23901
  _react.useEffect.call(void 0, () => {
24057
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _585 => _585.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23902
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _587 => _587.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24058
23903
  const sentinel = sentinelRef.current;
24059
23904
  if (!sentinel) return;
24060
23905
  const observer = new IntersectionObserver(
24061
23906
  (entries) => {
24062
- if (_optionalChain([entries, 'access', _586 => _586[0], 'optionalAccess', _587 => _587.isIntersecting])) {
24063
- _optionalChain([onLoadMoreRef, 'access', _588 => _588.current, 'optionalCall', _589 => _589()]);
23907
+ if (_optionalChain([entries, 'access', _588 => _588[0], 'optionalAccess', _589 => _589.isIntersecting])) {
23908
+ _optionalChain([onLoadMoreRef, 'access', _590 => _590.current, 'optionalCall', _591 => _591()]);
24064
23909
  }
24065
23910
  },
24066
23911
  { rootMargin: "200px" }
24067
23912
  );
24068
23913
  observer.observe(sentinel);
24069
23914
  return () => observer.disconnect();
24070
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _590 => _590.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _591 => _591.isFetchingNextPage])]);
23915
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _592 => _592.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _593 => _593.isFetchingNextPage])]);
24071
23916
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
24072
23917
  showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
24073
23918
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -24138,7 +23983,7 @@ function Table({
24138
23983
  },
24139
23984
  getRowKey(item, index)
24140
23985
  )),
24141
- _optionalChain([infiniteScroll, 'optionalAccess', _592 => _592.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23986
+ _optionalChain([infiniteScroll, 'optionalAccess', _594 => _594.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24142
23987
  TableCardSkeleton,
24143
23988
  {
24144
23989
  columns,
@@ -24147,7 +23992,7 @@ function Table({
24147
23992
  hasChevron: Boolean(rowHref)
24148
23993
  }
24149
23994
  ),
24150
- _optionalChain([infiniteScroll, 'optionalAccess', _593 => _593.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23995
+ _optionalChain([infiniteScroll, 'optionalAccess', _595 => _595.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24151
23996
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24152
23997
  "div",
24153
23998
  {
@@ -24505,7 +24350,7 @@ function QueryReportTable({
24505
24350
  );
24506
24351
  const handleExport = () => {
24507
24352
  exportToCSV(data, columns, exportFilename);
24508
- _optionalChain([onExport, 'optionalCall', _594 => _594()]);
24353
+ _optionalChain([onExport, 'optionalCall', _596 => _596()]);
24509
24354
  };
24510
24355
  const tableMinWidth = columns.length * (columnWidth + 16);
24511
24356
  const {
@@ -24521,7 +24366,7 @@ function QueryReportTable({
24521
24366
  onThumbPointerDown,
24522
24367
  onThumbPointerMove,
24523
24368
  onThumbPointerUp
24524
- } = _chunkWX7PT5C7cjs.useHorizontalScrollbar.call(void 0, );
24369
+ } = _chunkALW3D72Ocjs.useHorizontalScrollbar.call(void 0, );
24525
24370
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
24526
24371
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
24527
24372
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -24678,7 +24523,7 @@ function DataTableColumnFilter({
24678
24523
  align = "left"
24679
24524
  }) {
24680
24525
  const currentValue = column.getFilterValue();
24681
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _595 => _595.length]), () => ( 0));
24526
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _597 => _597.length]), () => ( 0));
24682
24527
  const sections = _react.useMemo.call(void 0,
24683
24528
  () => [
24684
24529
  {
@@ -24752,13 +24597,13 @@ function DataTableHeader({
24752
24597
  onSortChange
24753
24598
  }) {
24754
24599
  const table = useDataTableContext();
24755
- const isLgUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useLgUp.call(void 0, ), () => ( false));
24600
+ const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
24756
24601
  const headerGroup = table.getHeaderGroups()[0];
24757
24602
  if (!headerGroup) return null;
24758
24603
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24759
24604
  if (header.isPlaceholder) return false;
24760
24605
  if (isLgUp) return true;
24761
- return Boolean(_optionalChain([header, 'access', _596 => _596.column, 'access', _597 => _597.columnDef, 'access', _598 => _598.meta, 'optionalAccess', _599 => _599.filter]));
24606
+ return Boolean(_optionalChain([header, 'access', _598 => _598.column, 'access', _599 => _599.columnDef, 'access', _600 => _600.meta, 'optionalAccess', _601 => _601.filter]));
24762
24607
  });
24763
24608
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24764
24609
  "div",
@@ -24788,20 +24633,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24788
24633
  if (header.isPlaceholder) return null;
24789
24634
  const column = header.column;
24790
24635
  const meta = column.columnDef.meta;
24791
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _600 => _600.filter]));
24792
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _601 => _601.align]), () => ( "left"));
24793
- const canSort = _optionalChain([meta, 'optionalAccess', _602 => _602.sortable]) === true;
24794
- const sortDir = _optionalChain([sort, 'optionalAccess', _603 => _603.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24636
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _602 => _602.filter]));
24637
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _603 => _603.align]), () => ( "left"));
24638
+ const canSort = _optionalChain([meta, 'optionalAccess', _604 => _604.sortable]) === true;
24639
+ const sortDir = _optionalChain([sort, 'optionalAccess', _605 => _605.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24795
24640
  if (!isLgUp && !hasFilter) return null;
24796
24641
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24797
24642
  "div",
24798
24643
  {
24799
24644
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24800
24645
  "flex items-stretch",
24801
- isLgUp && (_optionalChain([meta, 'optionalAccess', _604 => _604.width]) || "flex-1 min-w-0"),
24802
- _optionalChain([meta, 'optionalAccess', _605 => _605.headerClassName]),
24646
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _606 => _606.width]) || "flex-1 min-w-0"),
24647
+ _optionalChain([meta, 'optionalAccess', _607 => _607.headerClassName]),
24803
24648
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24804
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _606 => _606.hideAt]))
24649
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _608 => _608.hideAt]))
24805
24650
  ),
24806
24651
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24807
24652
  DataTableColumnFilter,
@@ -24820,7 +24665,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24820
24665
  isLgUp && alignJustify(align),
24821
24666
  canSort && "group cursor-pointer"
24822
24667
  ),
24823
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _607 => _607(column.id)]) : void 0,
24668
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _609 => _609(column.id)]) : void 0,
24824
24669
  children: [
24825
24670
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24826
24671
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24904,7 +24749,7 @@ function DataTableSkeleton({
24904
24749
  }) {
24905
24750
  const table = useDataTableContext();
24906
24751
  const columns = table.getVisibleFlatColumns();
24907
- const firstColumnId = _optionalChain([columns, 'access', _608 => _608[0], 'optionalAccess', _609 => _609.id]);
24752
+ const firstColumnId = _optionalChain([columns, 'access', _610 => _610[0], 'optionalAccess', _611 => _611.id]);
24908
24753
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24909
24754
  "div",
24910
24755
  {
@@ -24928,7 +24773,7 @@ function DataTableSkeleton({
24928
24773
  {
24929
24774
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24930
24775
  "flex flex-col justify-center shrink-0",
24931
- _optionalChain([meta, 'optionalAccess', _610 => _610.width]) || "flex-1"
24776
+ _optionalChain([meta, 'optionalAccess', _612 => _612.width]) || "flex-1"
24932
24777
  ),
24933
24778
  children: [
24934
24779
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -24974,7 +24819,7 @@ function DataTableRowImpl({
24974
24819
  (e) => {
24975
24820
  const target = e.target;
24976
24821
  if (target.closest("[data-no-row-click]")) return;
24977
- _optionalChain([onClick, 'optionalCall', _611 => _611(row.original)]);
24822
+ _optionalChain([onClick, 'optionalCall', _613 => _613(row.original)]);
24978
24823
  },
24979
24824
  [onClick, row.original]
24980
24825
  );
@@ -25012,10 +24857,10 @@ function DataTableRowImpl({
25012
24857
  {
25013
24858
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
25014
24859
  "flex flex-col overflow-hidden",
25015
- alignJustify(_optionalChain([meta, 'optionalAccess', _612 => _612.align])),
25016
- _optionalChain([meta, 'optionalAccess', _613 => _613.width]) || "flex-1 min-w-0",
25017
- _optionalChain([meta, 'optionalAccess', _614 => _614.cellClassName]),
25018
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _615 => _615.hideAt]))
24860
+ alignJustify(_optionalChain([meta, 'optionalAccess', _614 => _614.align])),
24861
+ _optionalChain([meta, 'optionalAccess', _615 => _615.width]) || "flex-1 min-w-0",
24862
+ _optionalChain([meta, 'optionalAccess', _616 => _616.cellClassName]),
24863
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _617 => _617.hideAt]))
25019
24864
  ),
25020
24865
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
25021
24866
  },
@@ -25061,7 +24906,7 @@ function DataTableBody({
25061
24906
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
25062
24907
  rows.map((row, index) => {
25063
24908
  const item = row.original;
25064
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _616 => _616(item)]), () => ( void 0));
24909
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _618 => _618(item)]), () => ( void 0));
25065
24910
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
25066
24911
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25067
24912
  DataTableRow,
@@ -25125,7 +24970,7 @@ function DataTableInfiniteFooter({
25125
24970
  if (!sentinel) return;
25126
24971
  const observer = new IntersectionObserver(
25127
24972
  (entries) => {
25128
- if (_optionalChain([entries, 'access', _617 => _617[0], 'optionalAccess', _618 => _618.isIntersecting])) onLoadMoreRef.current();
24973
+ if (_optionalChain([entries, 'access', _619 => _619[0], 'optionalAccess', _620 => _620.isIntersecting])) onLoadMoreRef.current();
25129
24974
  },
25130
24975
  { rootMargin }
25131
24976
  );
@@ -25173,7 +25018,7 @@ function DataTableRowCount({
25173
25018
  const table = useDataTableContext();
25174
25019
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
25175
25020
  if (hideWhenEmpty && count === 0) return null;
25176
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _619 => _619(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25021
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _621 => _621(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25177
25022
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25178
25023
  "span",
25179
25024
  {
@@ -25267,12 +25112,12 @@ function PhoneInput({
25267
25112
  const runValidation = _react.useCallback.call(void 0, (phone) => {
25268
25113
  if (!phone || digitCount(phone) === 0) {
25269
25114
  setIsInvalid(false);
25270
- _optionalChain([onValidationChange, 'optionalCall', _620 => _620(false)]);
25115
+ _optionalChain([onValidationChange, 'optionalCall', _622 => _622(false)]);
25271
25116
  return;
25272
25117
  }
25273
25118
  const invalid = !validatePhoneNumber(phone, countryCode);
25274
25119
  setIsInvalid(invalid);
25275
- _optionalChain([onValidationChange, 'optionalCall', _621 => _621(invalid)]);
25120
+ _optionalChain([onValidationChange, 'optionalCall', _623 => _623(invalid)]);
25276
25121
  }, [countryCode, digitCount, onValidationChange]);
25277
25122
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
25278
25123
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -25321,7 +25166,7 @@ function PhoneInput({
25321
25166
  debouncedValidation(val);
25322
25167
  } else if (digitCount(val) === 0) {
25323
25168
  setIsInvalid(false);
25324
- _optionalChain([onValidationChange, 'optionalCall', _622 => _622(false)]);
25169
+ _optionalChain([onValidationChange, 'optionalCall', _624 => _624(false)]);
25325
25170
  }
25326
25171
  }
25327
25172
  },
@@ -25401,7 +25246,7 @@ function SearchInput({
25401
25246
  }) {
25402
25247
  const [internalValue, setInternalValue] = React82.useState(defaultValue);
25403
25248
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
25404
- const debouncedValue = _chunkWX7PT5C7cjs.useDebounce.call(void 0, currentValue, debounceMs);
25249
+ const debouncedValue = _chunkALW3D72Ocjs.useDebounce.call(void 0, currentValue, debounceMs);
25405
25250
  const [isOpen, setIsOpen] = React82.useState(false);
25406
25251
  const [highlightedIndex, setHighlightedIndex] = React82.useState(-1);
25407
25252
  const containerRef = React82.useRef(null);
@@ -25413,7 +25258,7 @@ function SearchInput({
25413
25258
  textMeasureRef,
25414
25259
  badgeRef,
25415
25260
  inputRef
25416
- } = _chunkWX7PT5C7cjs.useAutoLimitTags.call(void 0, {
25261
+ } = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
25417
25262
  count: filterChips.length,
25418
25263
  limitTags,
25419
25264
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -25428,7 +25273,7 @@ function SearchInput({
25428
25273
  if (!showHiddenTags) return;
25429
25274
  const handleClick = (e) => {
25430
25275
  const target = e.target;
25431
- if (!_optionalChain([hiddenTagsRef, 'access', _623 => _623.current, 'optionalAccess', _624 => _624.contains, 'call', _625 => _625(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.contains, 'call', _628 => _628(target)])) {
25276
+ if (!_optionalChain([hiddenTagsRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.contains, 'call', _627 => _627(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _628 => _628.current, 'optionalAccess', _629 => _629.contains, 'call', _630 => _630(target)])) {
25432
25277
  setShowHiddenTags(false);
25433
25278
  }
25434
25279
  };
@@ -25476,10 +25321,10 @@ function SearchInput({
25476
25321
  } else {
25477
25322
  setInternalValue("");
25478
25323
  }
25479
- _optionalChain([inputRef, 'access', _629 => _629.current, 'optionalAccess', _630 => _630.focus, 'call', _631 => _631()]);
25324
+ _optionalChain([inputRef, 'access', _631 => _631.current, 'optionalAccess', _632 => _632.focus, 'call', _633 => _633()]);
25480
25325
  };
25481
25326
  const handleResultClick = (result) => {
25482
- _optionalChain([onResultSelect, 'optionalCall', _632 => _632(result)]);
25327
+ _optionalChain([onResultSelect, 'optionalCall', _634 => _634(result)]);
25483
25328
  setIsOpen(false);
25484
25329
  };
25485
25330
  const handleKeyDown = (e) => {
@@ -25502,7 +25347,7 @@ function SearchInput({
25502
25347
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25503
25348
  handleResultClick(flatResults[highlightedIndex]);
25504
25349
  } else {
25505
- _optionalChain([onSubmit, 'optionalCall', _633 => _633(currentValue)]);
25350
+ _optionalChain([onSubmit, 'optionalCall', _635 => _635(currentValue)]);
25506
25351
  }
25507
25352
  break;
25508
25353
  case "Escape":
@@ -25580,7 +25425,7 @@ function SearchInput({
25580
25425
  dropdownVisible && "!border-ods-accent"
25581
25426
  ),
25582
25427
  onClick: () => {
25583
- _optionalChain([inputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.focus, 'call', _636 => _636()]);
25428
+ _optionalChain([inputRef, 'access', _636 => _636.current, 'optionalAccess', _637 => _637.focus, 'call', _638 => _638()]);
25584
25429
  setIsOpen(true);
25585
25430
  },
25586
25431
  children: [
@@ -25664,10 +25509,10 @@ function SearchInput({
25664
25509
  align: "start",
25665
25510
  onOpenAutoFocus: (e) => {
25666
25511
  e.preventDefault();
25667
- _optionalChain([inputRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.focus, 'call', _639 => _639()]);
25512
+ _optionalChain([inputRef, 'access', _639 => _639.current, 'optionalAccess', _640 => _640.focus, 'call', _641 => _641()]);
25668
25513
  },
25669
25514
  onInteractOutside: (e) => {
25670
- if (_optionalChain([containerRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.contains, 'call', _642 => _642(e.target)])) {
25515
+ if (_optionalChain([containerRef, 'access', _642 => _642.current, 'optionalAccess', _643 => _643.contains, 'call', _644 => _644(e.target)])) {
25671
25516
  e.preventDefault();
25672
25517
  }
25673
25518
  },
@@ -25684,10 +25529,10 @@ function SearchInput({
25684
25529
  ref: hiddenTagsPopupRef,
25685
25530
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25686
25531
  style: {
25687
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.getBoundingClientRect, 'call', _645 => _645(), 'access', _646 => _646.left]), () => ( 0))) : 0
25532
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _645 => _645.current, 'optionalAccess', _646 => _646.getBoundingClientRect, 'call', _647 => _647(), 'access', _648 => _648.left]), () => ( 0))) : 0
25688
25533
  },
25689
25534
  onRemove: (value2) => {
25690
- _optionalChain([onFilterRemove, 'optionalCall', _647 => _647(value2)]);
25535
+ _optionalChain([onFilterRemove, 'optionalCall', _649 => _649(value2)]);
25691
25536
  if (hiddenCount <= 1) setShowHiddenTags(false);
25692
25537
  }
25693
25538
  }
@@ -25738,7 +25583,7 @@ function FilterListItem({
25738
25583
  }) {
25739
25584
  const handleToggle = () => {
25740
25585
  if (disabled) return;
25741
- _optionalChain([onToggle, 'optionalCall', _648 => _648(!selected)]);
25586
+ _optionalChain([onToggle, 'optionalCall', _650 => _650(!selected)]);
25742
25587
  };
25743
25588
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25744
25589
  "div",
@@ -25785,7 +25630,7 @@ function FilterListItem({
25785
25630
  CheckboxPrimitive4.Root,
25786
25631
  {
25787
25632
  checked: selected,
25788
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _649 => _649(c === true)]),
25633
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _651 => _651(c === true)]),
25789
25634
  onClick: (e) => e.stopPropagation(),
25790
25635
  disabled,
25791
25636
  "aria-label": title,
@@ -25871,7 +25716,7 @@ function TagSearchInput({
25871
25716
  textMeasureRef,
25872
25717
  badgeRef,
25873
25718
  inputRef
25874
- } = _chunkWX7PT5C7cjs.useAutoLimitTags.call(void 0, {
25719
+ } = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
25875
25720
  count: tags.length,
25876
25721
  limitTags,
25877
25722
  placeholder: currentPlaceholder
@@ -25884,7 +25729,7 @@ function TagSearchInput({
25884
25729
  if (!showHiddenTags) return;
25885
25730
  const handleClick = (e) => {
25886
25731
  const target = e.target;
25887
- if (!_optionalChain([hiddenTagsRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.contains, 'call', _652 => _652(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _653 => _653.current, 'optionalAccess', _654 => _654.contains, 'call', _655 => _655(target)])) {
25732
+ if (!_optionalChain([hiddenTagsRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.contains, 'call', _654 => _654(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _655 => _655.current, 'optionalAccess', _656 => _656.contains, 'call', _657 => _657(target)])) {
25888
25733
  setShowHiddenTags(false);
25889
25734
  }
25890
25735
  };
@@ -25900,13 +25745,13 @@ function TagSearchInput({
25900
25745
  e.preventDefault();
25901
25746
  onSubmit(searchValue);
25902
25747
  }
25903
- _optionalChain([onKeyDown, 'optionalCall', _656 => _656(e)]);
25748
+ _optionalChain([onKeyDown, 'optionalCall', _658 => _658(e)]);
25904
25749
  };
25905
25750
  const handleClearAll = (e) => {
25906
25751
  e.stopPropagation();
25907
25752
  e.preventDefault();
25908
- _optionalChain([onClearAll, 'optionalCall', _657 => _657()]);
25909
- _optionalChain([inputRef, 'access', _658 => _658.current, 'optionalAccess', _659 => _659.focus, 'call', _660 => _660()]);
25753
+ _optionalChain([onClearAll, 'optionalCall', _659 => _659()]);
25754
+ _optionalChain([inputRef, 'access', _660 => _660.current, 'optionalAccess', _661 => _661.focus, 'call', _662 => _662()]);
25910
25755
  };
25911
25756
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25912
25757
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25923,7 +25768,7 @@ function TagSearchInput({
25923
25768
  className
25924
25769
  ),
25925
25770
  onClick: () => {
25926
- if (!disabled) _optionalChain([inputRef, 'access', _661 => _661.current, 'optionalAccess', _662 => _662.focus, 'call', _663 => _663()]);
25771
+ if (!disabled) _optionalChain([inputRef, 'access', _663 => _663.current, 'optionalAccess', _664 => _664.focus, 'call', _665 => _665()]);
25927
25772
  },
25928
25773
  children: [
25929
25774
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
@@ -25995,7 +25840,7 @@ function TagSearchInput({
25995
25840
  items: hiddenTags,
25996
25841
  disabled,
25997
25842
  style: {
25998
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _664 => _664.current, 'optionalAccess', _665 => _665.getBoundingClientRect, 'call', _666 => _666(), 'access', _667 => _667.left]), () => ( 0))) : 0
25843
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _666 => _666.current, 'optionalAccess', _667 => _667.getBoundingClientRect, 'call', _668 => _668(), 'access', _669 => _669.left]), () => ( 0))) : 0
25999
25844
  },
26000
25845
  onRemove: (value) => {
26001
25846
  onTagRemove(value);
@@ -26097,7 +25942,7 @@ function MarkdownEditor({
26097
25942
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
26098
25943
  _react.useEffect.call(void 0, () => {
26099
25944
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
26100
- if (_optionalChain([mod, 'access', _668 => _668.commands, 'optionalAccess', _669 => _669.getExtraCommands])) {
25945
+ if (_optionalChain([mod, 'access', _670 => _670.commands, 'optionalAccess', _671 => _671.getExtraCommands])) {
26101
25946
  setDefaultExtraCommands(mod.commands.getExtraCommands());
26102
25947
  }
26103
25948
  });
@@ -26131,7 +25976,7 @@ function MarkdownEditor({
26131
25976
  const isImage = file.type.startsWith("image/");
26132
25977
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
26133
25978
  insertTextAtCursor(markdown);
26134
- _optionalChain([onFileUploaded, 'optionalCall', _670 => _670(url, file.name)]);
25979
+ _optionalChain([onFileUploaded, 'optionalCall', _672 => _672(url, file.name)]);
26135
25980
  } catch (error) {
26136
25981
  console.error("File upload failed:", error);
26137
25982
  setUploadProgress("Upload failed. Please try again.");
@@ -26144,7 +25989,7 @@ function MarkdownEditor({
26144
25989
  );
26145
25990
  const handleFileInputChange = _react.useCallback.call(void 0,
26146
25991
  (e) => {
26147
- const file = _optionalChain([e, 'access', _671 => _671.target, 'access', _672 => _672.files, 'optionalAccess', _673 => _673[0]]);
25992
+ const file = _optionalChain([e, 'access', _673 => _673.target, 'access', _674 => _674.files, 'optionalAccess', _675 => _675[0]]);
26148
25993
  if (file) {
26149
25994
  handleFileUpload(file);
26150
25995
  e.target.value = "";
@@ -26155,7 +26000,7 @@ function MarkdownEditor({
26155
26000
  const handlePaste = _react.useCallback.call(void 0,
26156
26001
  (e) => {
26157
26002
  if (!onUploadFile) return;
26158
- const items = _optionalChain([e, 'access', _674 => _674.clipboardData, 'optionalAccess', _675 => _675.items]);
26003
+ const items = _optionalChain([e, 'access', _676 => _676.clipboardData, 'optionalAccess', _677 => _677.items]);
26159
26004
  if (!items) return;
26160
26005
  for (const item of items) {
26161
26006
  if (item.type.startsWith("image/")) {
@@ -26180,7 +26025,7 @@ function MarkdownEditor({
26180
26025
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
26181
26026
  icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
26182
26027
  execute: () => {
26183
- _optionalChain([fileInputRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.click, 'call', _678 => _678()]);
26028
+ _optionalChain([fileInputRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.click, 'call', _680 => _680()]);
26184
26029
  }
26185
26030
  } : null;
26186
26031
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -26192,7 +26037,7 @@ function MarkdownEditor({
26192
26037
  const EDGE_ZONE = 60;
26193
26038
  const MAX_SCROLL_SPEED = 15;
26194
26039
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
26195
- let node = _optionalChain([el, 'optionalAccess', _679 => _679.parentElement]);
26040
+ let node = _optionalChain([el, 'optionalAccess', _681 => _681.parentElement]);
26196
26041
  while (node && node !== document.documentElement) {
26197
26042
  const { overflowY } = window.getComputedStyle(node);
26198
26043
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -26335,7 +26180,7 @@ function matchesAccept(file, accept) {
26335
26180
  });
26336
26181
  }
26337
26182
  function dragHasFiles(e) {
26338
- const types = _optionalChain([e, 'access', _680 => _680.dataTransfer, 'optionalAccess', _681 => _681.types]);
26183
+ const types = _optionalChain([e, 'access', _682 => _682.dataTransfer, 'optionalAccess', _683 => _683.types]);
26339
26184
  if (!types) return false;
26340
26185
  for (let i = 0; i < types.length; i++) {
26341
26186
  if (types[i] === "Files") return true;
@@ -26430,7 +26275,7 @@ function FileUpload({
26430
26275
  e.stopPropagation();
26431
26276
  setDragActive(false);
26432
26277
  if (disabled) return;
26433
- if (_optionalChain([e, 'access', _682 => _682.dataTransfer, 'access', _683 => _683.files, 'optionalAccess', _684 => _684.length])) {
26278
+ if (_optionalChain([e, 'access', _684 => _684.dataTransfer, 'access', _685 => _685.files, 'optionalAccess', _686 => _686.length])) {
26434
26279
  handleFiles(e.dataTransfer.files);
26435
26280
  }
26436
26281
  };
@@ -26458,7 +26303,7 @@ function FileUpload({
26458
26303
  e.preventDefault();
26459
26304
  dragCounter = 0;
26460
26305
  setDragActive(false);
26461
- if (_optionalChain([e, 'access', _685 => _685.dataTransfer, 'optionalAccess', _686 => _686.files, 'optionalAccess', _687 => _687.length])) {
26306
+ if (_optionalChain([e, 'access', _687 => _687.dataTransfer, 'optionalAccess', _688 => _688.files, 'optionalAccess', _689 => _689.length])) {
26462
26307
  handleFilesRef.current(e.dataTransfer.files);
26463
26308
  }
26464
26309
  };
@@ -26480,7 +26325,7 @@ function FileUpload({
26480
26325
  };
26481
26326
  }, [acceptWindowDrops, disabled]);
26482
26327
  const handleFileSelect = (e) => {
26483
- if (_optionalChain([e, 'access', _688 => _688.target, 'access', _689 => _689.files, 'optionalAccess', _690 => _690.length])) {
26328
+ if (_optionalChain([e, 'access', _690 => _690.target, 'access', _691 => _691.files, 'optionalAccess', _692 => _692.length])) {
26484
26329
  handleFiles(e.target.files);
26485
26330
  }
26486
26331
  };
@@ -26497,7 +26342,7 @@ function FileUpload({
26497
26342
  };
26498
26343
  const openDialog = async () => {
26499
26344
  if (disabled) return;
26500
- _optionalChain([fileInputRef, 'access', _691 => _691.current, 'optionalAccess', _692 => _692.click, 'call', _693 => _693()]);
26345
+ _optionalChain([fileInputRef, 'access', _693 => _693.current, 'optionalAccess', _694 => _694.click, 'call', _695 => _695()]);
26501
26346
  };
26502
26347
  const displayError = error || validationError || void 0;
26503
26348
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26575,7 +26420,7 @@ function FileUpload({
26575
26420
  "button",
26576
26421
  {
26577
26422
  type: "button",
26578
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _694 => _694(entry.id)]),
26423
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _696 => _696(entry.id)]),
26579
26424
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26580
26425
  "aria-label": `Remove ${entry.fileName}`,
26581
26426
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26698,7 +26543,7 @@ function ImageUploader({
26698
26543
  onChange(file);
26699
26544
  };
26700
26545
  const handleFileSelect = (e) => {
26701
- validateAndEmit(_optionalChain([e, 'access', _695 => _695.target, 'access', _696 => _696.files, 'optionalAccess', _697 => _697[0]]));
26546
+ validateAndEmit(_optionalChain([e, 'access', _697 => _697.target, 'access', _698 => _698.files, 'optionalAccess', _699 => _699[0]]));
26702
26547
  if (inputRef.current) inputRef.current.value = "";
26703
26548
  };
26704
26549
  const handleDrag = (e) => {
@@ -26713,11 +26558,11 @@ function ImageUploader({
26713
26558
  e.stopPropagation();
26714
26559
  setDragActive(false);
26715
26560
  if (!interactive) return;
26716
- validateAndEmit(_optionalChain([e, 'access', _698 => _698.dataTransfer, 'access', _699 => _699.files, 'optionalAccess', _700 => _700[0]]));
26561
+ validateAndEmit(_optionalChain([e, 'access', _700 => _700.dataTransfer, 'access', _701 => _701.files, 'optionalAccess', _702 => _702[0]]));
26717
26562
  };
26718
26563
  const openDialog = () => {
26719
26564
  if (!interactive) return;
26720
- _optionalChain([inputRef, 'access', _701 => _701.current, 'optionalAccess', _702 => _702.click, 'call', _703 => _703()]);
26565
+ _optionalChain([inputRef, 'access', _703 => _703.current, 'optionalAccess', _704 => _704.click, 'call', _705 => _705()]);
26721
26566
  };
26722
26567
  const handleRootKeyDown = (e) => {
26723
26568
  if (hasImage || !interactive) return;
@@ -26874,7 +26719,7 @@ function CompactAssigneeDropdown({
26874
26719
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26875
26720
  }, [filtered, currentAssignee]);
26876
26721
  const handleSelect = (userId) => {
26877
- const next = _optionalChain([currentAssignee, 'optionalAccess', _704 => _704.id]) === userId ? null : userId;
26722
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _706 => _706.id]) === userId ? null : userId;
26878
26723
  onAssign(next);
26879
26724
  setIsOpen(false);
26880
26725
  };
@@ -26939,7 +26784,7 @@ function CompactAssigneeDropdown({
26939
26784
  }
26940
26785
  ) }),
26941
26786
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
26942
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _705 => _705.id]) === opt.value;
26787
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _707 => _707.id]) === opt.value;
26943
26788
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26944
26789
  "button",
26945
26790
  {
@@ -27008,7 +26853,7 @@ function DefaultAssigneeDropdown({
27008
26853
  Autocomplete,
27009
26854
  {
27010
26855
  options,
27011
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _706 => _706.id]), () => ( null)),
26856
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _708 => _708.id]), () => ( null)),
27012
26857
  onChange: (val) => {
27013
26858
  onAssign(val);
27014
26859
  setIsEditing(false);
@@ -27395,14 +27240,14 @@ function TicketInfoSection({
27395
27240
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27396
27241
  SquareAvatar,
27397
27242
  {
27398
- src: _optionalChain([organization, 'optionalAccess', _707 => _707.imageSrc]),
27399
- alt: _optionalChain([organization, 'optionalAccess', _708 => _708.name]),
27400
- fallback: _optionalChain([organization, 'optionalAccess', _709 => _709.name]) || "Org",
27243
+ src: _optionalChain([organization, 'optionalAccess', _709 => _709.imageSrc]),
27244
+ alt: _optionalChain([organization, 'optionalAccess', _710 => _710.name]),
27245
+ fallback: _optionalChain([organization, 'optionalAccess', _711 => _711.name]) || "Org",
27401
27246
  size: "md",
27402
27247
  className: "shrink-0"
27403
27248
  }
27404
27249
  ),
27405
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _710 => _710.name]) || "Unassigned", label: "Organization" })
27250
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _712 => _712.name]) || "Unassigned", label: "Organization" })
27406
27251
  ] }),
27407
27252
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27408
27253
  AssigneeDropdown,
@@ -27423,10 +27268,10 @@ function TicketInfoSection({
27423
27268
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27424
27269
  InfoCell2,
27425
27270
  {
27426
- value: _optionalChain([device, 'optionalAccess', _711 => _711.name]) || "Unassigned",
27271
+ value: _optionalChain([device, 'optionalAccess', _713 => _713.name]) || "Unassigned",
27427
27272
  label: "Device",
27428
- icon: _optionalChain([device, 'optionalAccess', _712 => _712.icon]),
27429
- onClick: _optionalChain([device, 'optionalAccess', _713 => _713.onClick])
27273
+ icon: _optionalChain([device, 'optionalAccess', _714 => _714.icon]),
27274
+ onClick: _optionalChain([device, 'optionalAccess', _715 => _715.onClick])
27430
27275
  }
27431
27276
  ),
27432
27277
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -28186,10 +28031,10 @@ var getContentDimensions = (config) => {
28186
28031
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
28187
28032
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
28188
28033
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
28189
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _714 => _714.mobileContentDimensions, 'optionalAccess', _715 => _715.width]))), () => ( defaultMobile.width));
28190
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _716 => _716.mobileContentDimensions, 'optionalAccess', _717 => _717.height]))), () => ( defaultMobile.height));
28191
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _718 => _718.desktopContentDimensions, 'optionalAccess', _719 => _719.width]))), () => ( defaultDesktop.width));
28192
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _720 => _720.desktopContentDimensions, 'optionalAccess', _721 => _721.height]))), () => ( defaultDesktop.height));
28034
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _716 => _716.mobileContentDimensions, 'optionalAccess', _717 => _717.width]))), () => ( defaultMobile.width));
28035
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _718 => _718.mobileContentDimensions, 'optionalAccess', _719 => _719.height]))), () => ( defaultMobile.height));
28036
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _720 => _720.desktopContentDimensions, 'optionalAccess', _721 => _721.width]))), () => ( defaultDesktop.width));
28037
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _722 => _722.desktopContentDimensions, 'optionalAccess', _723 => _723.height]))), () => ( defaultDesktop.height));
28193
28038
  return {
28194
28039
  mobile: { width: mobileWidth, height: mobileHeight },
28195
28040
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -28323,7 +28168,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
28323
28168
  const contentDimensions = getContentDimensions(config);
28324
28169
  const mobileHeight = contentDimensions.mobile.height;
28325
28170
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
28326
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _722 => _722.innerHeight]) * 0.85 || 650)}px`;
28171
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _724 => _724.innerHeight]) * 0.85 || 650)}px`;
28327
28172
  })(),
28328
28173
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
28329
28174
  const contentDimensions = getContentDimensions(config);
@@ -28428,7 +28273,7 @@ var FigmaPrototypeViewer = ({
28428
28273
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28429
28274
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28430
28275
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28431
- config.defaultSectionId || _optionalChain([config, 'access', _723 => _723.sections, 'access', _724 => _724[0], 'optionalAccess', _725 => _725.id]) || ""
28276
+ config.defaultSectionId || _optionalChain([config, 'access', _725 => _725.sections, 'access', _726 => _726[0], 'optionalAccess', _727 => _727.id]) || ""
28432
28277
  );
28433
28278
  const activeSection = externalActiveSection || internalActiveSection;
28434
28279
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28518,7 +28363,7 @@ var FigmaPrototypeViewer = ({
28518
28363
  const handleMessage = (event) => {
28519
28364
  if (event.origin !== "https://www.figma.com") return;
28520
28365
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28521
- if (_optionalChain([event, 'access', _726 => _726.data, 'optionalAccess', _727 => _727.type]) && validEvents.includes(event.data.type)) {
28366
+ if (_optionalChain([event, 'access', _728 => _728.data, 'optionalAccess', _729 => _729.type]) && validEvents.includes(event.data.type)) {
28522
28367
  const figmaEvent = event.data;
28523
28368
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28524
28369
  switch (figmaEvent.type) {
@@ -28528,19 +28373,19 @@ var FigmaPrototypeViewer = ({
28528
28373
  setIframeState("READY");
28529
28374
  break;
28530
28375
  case "PRESENTED_NODE_CHANGED":
28531
- if (_optionalChain([figmaEvent, 'access', _728 => _728.data, 'optionalAccess', _729 => _729.presentedNodeId])) {
28376
+ if (_optionalChain([figmaEvent, 'access', _730 => _730.data, 'optionalAccess', _731 => _731.presentedNodeId])) {
28532
28377
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28533
28378
  if (!isNavigating) {
28534
28379
  const matchingSection = config.sections.find((s) => {
28535
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _730 => _730.data, 'optionalAccess', _731 => _731.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _732 => _732.data, 'optionalAccess', _733 => _733.presentedNodeId]);
28536
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _734 => _734.data, 'optionalAccess', _735 => _735.presentedNodeId]) || _optionalChain([s, 'access', _736 => _736.mobileStartingNodeId, 'optionalAccess', _737 => _737.replace, 'call', _738 => _738(":", "-")]) === _optionalChain([figmaEvent, 'access', _739 => _739.data, 'optionalAccess', _740 => _740.presentedNodeId]);
28380
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _732 => _732.data, 'optionalAccess', _733 => _733.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _734 => _734.data, 'optionalAccess', _735 => _735.presentedNodeId]);
28381
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _736 => _736.data, 'optionalAccess', _737 => _737.presentedNodeId]) || _optionalChain([s, 'access', _738 => _738.mobileStartingNodeId, 'optionalAccess', _739 => _739.replace, 'call', _740 => _740(":", "-")]) === _optionalChain([figmaEvent, 'access', _741 => _741.data, 'optionalAccess', _742 => _742.presentedNodeId]);
28537
28382
  return desktopMatch || mobileMatch;
28538
28383
  });
28539
28384
  if (matchingSection && matchingSection.id !== activeSection) {
28540
28385
  if (!externalActiveSection) {
28541
28386
  setInternalActiveSection(matchingSection.id);
28542
28387
  }
28543
- _optionalChain([config, 'access', _741 => _741.onSectionChange, 'optionalCall', _742 => _742(matchingSection.id)]);
28388
+ _optionalChain([config, 'access', _743 => _743.onSectionChange, 'optionalCall', _744 => _744(matchingSection.id)]);
28544
28389
  }
28545
28390
  }
28546
28391
  }
@@ -28553,7 +28398,7 @@ var FigmaPrototypeViewer = ({
28553
28398
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28554
28399
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28555
28400
  const section = config.sections.find((s) => s.id === sectionId);
28556
- if (!section || !_optionalChain([iframeRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.contentWindow]) || !isInitialized) {
28401
+ if (!section || !_optionalChain([iframeRef, 'access', _745 => _745.current, 'optionalAccess', _746 => _746.contentWindow]) || !isInitialized) {
28557
28402
  return;
28558
28403
  }
28559
28404
  setIsNavigating(true);
@@ -28561,7 +28406,7 @@ var FigmaPrototypeViewer = ({
28561
28406
  if (!externalActiveSection) {
28562
28407
  setInternalActiveSection(sectionId);
28563
28408
  }
28564
- _optionalChain([config, 'access', _745 => _745.onSectionChange, 'optionalCall', _746 => _746(sectionId)]);
28409
+ _optionalChain([config, 'access', _747 => _747.onSectionChange, 'optionalCall', _748 => _748(sectionId)]);
28565
28410
  const command = {
28566
28411
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28567
28412
  data: { nodeId }
@@ -28881,7 +28726,7 @@ var FiltersDropdown = ({
28881
28726
  defaults[section.id] = section.defaultSelected || [];
28882
28727
  });
28883
28728
  setSelectedFilters(defaults);
28884
- _optionalChain([onReset, 'optionalCall', _747 => _747()]);
28729
+ _optionalChain([onReset, 'optionalCall', _749 => _749()]);
28885
28730
  setIsOpen(false);
28886
28731
  };
28887
28732
  const handleApply = () => {
@@ -29175,7 +29020,7 @@ function MediaGalleryManager({
29175
29020
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
29176
29021
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
29177
29022
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
29178
- const file = _optionalChain([event, 'access', _748 => _748.target, 'access', _749 => _749.files, 'optionalAccess', _750 => _750[0]]);
29023
+ const file = _optionalChain([event, 'access', _750 => _750.target, 'access', _751 => _751.files, 'optionalAccess', _752 => _752[0]]);
29179
29024
  if (!file) return;
29180
29025
  let mediaType;
29181
29026
  if (file.type.startsWith("image/")) {
@@ -29290,7 +29135,7 @@ function MediaGalleryManager({
29290
29135
  {
29291
29136
  type: "button",
29292
29137
  variant: "outline",
29293
- onClick: () => _optionalChain([fileInputRef, 'access', _751 => _751.current, 'optionalAccess', _752 => _752.click, 'call', _753 => _753()]),
29138
+ onClick: () => _optionalChain([fileInputRef, 'access', _753 => _753.current, 'optionalAccess', _754 => _754.click, 'call', _755 => _755()]),
29294
29139
  disabled: isUploading,
29295
29140
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29296
29141
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29900,7 +29745,7 @@ function PlatformFilterComponent({
29900
29745
  variant: selectedPlatform === platform.value ? "accent" : "outline",
29901
29746
  size,
29902
29747
  onClick: () => onPlatformChange(platform.value),
29903
- leftIcon: showIcons ? _chunkWX7PT5C7cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29748
+ leftIcon: showIcons ? _chunkALW3D72Ocjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29904
29749
  className: "text-h3",
29905
29750
  children: platform.label
29906
29751
  },
@@ -30075,7 +29920,7 @@ function ReleaseMediaManager({
30075
29920
  const fileInputRef = _react.useRef.call(void 0, null);
30076
29921
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
30077
29922
  const handleFileSelect = async (event) => {
30078
- const file = _optionalChain([event, 'access', _754 => _754.target, 'access', _755 => _755.files, 'optionalAccess', _756 => _756[0]]);
29923
+ const file = _optionalChain([event, 'access', _756 => _756.target, 'access', _757 => _757.files, 'optionalAccess', _758 => _758[0]]);
30079
29924
  if (!file) return;
30080
29925
  let mediaType;
30081
29926
  if (file.type.startsWith("image/")) {
@@ -30155,7 +30000,7 @@ function ReleaseMediaManager({
30155
30000
  {
30156
30001
  type: "button",
30157
30002
  variant: "outline",
30158
- onClick: () => _optionalChain([fileInputRef, 'access', _757 => _757.current, 'optionalAccess', _758 => _758.click, 'call', _759 => _759()]),
30003
+ onClick: () => _optionalChain([fileInputRef, 'access', _759 => _759.current, 'optionalAccess', _760 => _760.click, 'call', _761 => _761()]),
30159
30004
  disabled: uploadingIndex !== null,
30160
30005
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
30161
30006
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30368,7 +30213,7 @@ function SEOEditorPreview({
30368
30213
  const displayImage = hasOgImage || hasFeaturedImage;
30369
30214
  const handleImageUpload = async (event) => {
30370
30215
  if (!onOgImageUpload) return;
30371
- const file = _optionalChain([event, 'access', _760 => _760.target, 'access', _761 => _761.files, 'optionalAccess', _762 => _762[0]]);
30216
+ const file = _optionalChain([event, 'access', _762 => _762.target, 'access', _763 => _763.files, 'optionalAccess', _764 => _764[0]]);
30372
30217
  if (!file) return;
30373
30218
  setIsUploading(true);
30374
30219
  try {
@@ -30499,7 +30344,7 @@ function SEOEditorPreview({
30499
30344
  type: "button",
30500
30345
  variant: "outline",
30501
30346
  size: "icon",
30502
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _763 => _763.click, 'call', _764 => _764()]),
30347
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _765 => _765.click, 'call', _766 => _766()]),
30503
30348
  disabled: disabled || isUploading,
30504
30349
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30505
30350
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30522,7 +30367,7 @@ function SEOEditorPreview({
30522
30367
  "div",
30523
30368
  {
30524
30369
  className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
30525
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _765 => _765.click, 'call', _766 => _766()]),
30370
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _767 => _767.click, 'call', _768 => _768()]),
30526
30371
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
30527
30372
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30528
30373
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-ods-text-secondary font-['DM_Sans']", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -30607,7 +30452,7 @@ function SocialLinksManager({
30607
30452
  className = ""
30608
30453
  }) {
30609
30454
  const addLink = () => {
30610
- const firstPlatform = _optionalChain([platforms, 'access', _767 => _767[0], 'optionalAccess', _768 => _768.name]) || "website";
30455
+ const firstPlatform = _optionalChain([platforms, 'access', _769 => _769[0], 'optionalAccess', _770 => _770.name]) || "website";
30611
30456
  onChange([...links, { platform: firstPlatform, url: "" }]);
30612
30457
  };
30613
30458
  const removeLink = (index) => {
@@ -30619,7 +30464,7 @@ function SocialLinksManager({
30619
30464
  onChange(updated);
30620
30465
  };
30621
30466
  const getIcon = (link, platform) => {
30622
- const iconKey = _optionalChain([platform, 'optionalAccess', _769 => _769.icon_name]) || link.platform;
30467
+ const iconKey = _optionalChain([platform, 'optionalAccess', _771 => _771.icon_name]) || link.platform;
30623
30468
  const IconComponent = iconMap[iconKey];
30624
30469
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30625
30470
  };
@@ -30644,7 +30489,7 @@ function SocialLinksManager({
30644
30489
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30645
30490
  _chunkBJTOSUT4cjs.Input,
30646
30491
  {
30647
- placeholder: _optionalChain([platform, 'optionalAccess', _770 => _770.placeholder]) || "Profile URL",
30492
+ placeholder: _optionalChain([platform, 'optionalAccess', _772 => _772.placeholder]) || "Profile URL",
30648
30493
  value: link.url,
30649
30494
  onChange: (e) => updateLink(index, "url", e.target.value),
30650
30495
  onKeyDown: (e) => {
@@ -31021,7 +30866,7 @@ function VideoSourceSelector({
31021
30866
  input.accept = "video/*";
31022
30867
  input.onchange = async (e) => {
31023
30868
  const target = e.target;
31024
- const file = _optionalChain([target, 'access', _771 => _771.files, 'optionalAccess', _772 => _772[0]]);
30869
+ const file = _optionalChain([target, 'access', _773 => _773.files, 'optionalAccess', _774 => _774[0]]);
31025
30870
  if (!file) return;
31026
30871
  setIsUploading(true);
31027
30872
  setUploadProgress(0);
@@ -31351,7 +31196,7 @@ function TranscriptSummaryEditor({
31351
31196
  {
31352
31197
  id: "subtitles",
31353
31198
  value: subtitles || "",
31354
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _773 => _773(e.target.value)]),
31199
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _775 => _775(e.target.value)]),
31355
31200
  placeholder: subtitlesPlaceholder,
31356
31201
  disabled: disabled || !onSubtitlesChange,
31357
31202
  className: "h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm",
@@ -31504,7 +31349,7 @@ var AIEnrichSection = ({
31504
31349
  }) => {
31505
31350
  const hasResults = status === "success" || status === "error";
31506
31351
  const shouldDisable = disabled || !canEnrich;
31507
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _774 => _774.filter, 'call', _775 => _775((f) => !f.isFilled)]) || [];
31352
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _776 => _776.filter, 'call', _777 => _777((f) => !f.isFilled)]) || [];
31508
31353
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31509
31354
  "div",
31510
31355
  {
@@ -31542,7 +31387,7 @@ var AIEnrichSection = ({
31542
31387
  {
31543
31388
  id: "ai-enrich-custom-instructions",
31544
31389
  value: _nullishCoalesce(customInstructions, () => ( "")),
31545
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _776 => _776(e.target.value)]),
31390
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _778 => _778(e.target.value)]),
31546
31391
  placeholder: customInstructionsPlaceholder,
31547
31392
  disabled: loading,
31548
31393
  maxLength: customInstructionsMaxLength,
@@ -31671,7 +31516,7 @@ function HighlightVideoSection({
31671
31516
  input.accept = "video/*";
31672
31517
  input.onchange = async (e) => {
31673
31518
  const target = e.target;
31674
- const file = _optionalChain([target, 'access', _777 => _777.files, 'optionalAccess', _778 => _778[0]]);
31519
+ const file = _optionalChain([target, 'access', _779 => _779.files, 'optionalAccess', _780 => _780[0]]);
31675
31520
  if (!file) return;
31676
31521
  setUploadError(null);
31677
31522
  try {
@@ -32173,7 +32018,7 @@ function HighlightVideoPreview({
32173
32018
  input.accept = "video/*";
32174
32019
  input.onchange = async (e) => {
32175
32020
  const target = e.target;
32176
- const file = _optionalChain([target, 'access', _779 => _779.files, 'optionalAccess', _780 => _780[0]]);
32021
+ const file = _optionalChain([target, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]);
32177
32022
  if (!file) return;
32178
32023
  await onUpload(file);
32179
32024
  };
@@ -32360,7 +32205,7 @@ function HighlightVideoCombinedSection({
32360
32205
  input.accept = "video/*";
32361
32206
  input.onchange = async (e) => {
32362
32207
  const target = e.target;
32363
- const file = _optionalChain([target, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]);
32208
+ const file = _optionalChain([target, 'access', _783 => _783.files, 'optionalAccess', _784 => _784[0]]);
32364
32209
  if (!file) return;
32365
32210
  await onUpload(file);
32366
32211
  };
@@ -32657,11 +32502,11 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32657
32502
  return editMode ? "Set Global Permission" : "";
32658
32503
  }
32659
32504
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32660
- return _optionalChain([option, 'optionalAccess', _783 => _783.label]) || level;
32505
+ return _optionalChain([option, 'optionalAccess', _785 => _785.label]) || level;
32661
32506
  };
32662
32507
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32663
32508
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b border-ods-border flex gap-4 items-center px-4 py-3", children: [
32664
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32509
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32665
32510
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
32666
32511
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", children: policy.name }),
32667
32512
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -32870,7 +32715,7 @@ function WaitlistForm({
32870
32715
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
32871
32716
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
32872
32717
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
32873
- const { toast } = _chunkWX7PT5C7cjs.useToast.call(void 0, );
32718
+ const { toast } = _chunkALW3D72Ocjs.useToast.call(void 0, );
32874
32719
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
32875
32720
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
32876
32721
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -33189,15 +33034,15 @@ function TicketCard({
33189
33034
  transform: _utilities.CSS.Transform.toString(sortable.transform),
33190
33035
  transition: sortable.transition
33191
33036
  };
33192
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _784 => _784.deviceHostnames, 'optionalAccess', _785 => _785.length]) || ticket.organizationName);
33037
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _786 => _786.deviceHostnames, 'optionalAccess', _787 => _787.length]) || ticket.organizationName);
33193
33038
  const deviceText = [
33194
- _optionalChain([ticket, 'access', _786 => _786.deviceHostnames, 'optionalAccess', _787 => _787.join, 'call', _788 => _788(", ")]),
33039
+ _optionalChain([ticket, 'access', _788 => _788.deviceHostnames, 'optionalAccess', _789 => _789.join, 'call', _790 => _790(", ")]),
33195
33040
  ticket.organizationName
33196
33041
  ].filter(Boolean).join(", ");
33197
33042
  const handleClick = (e) => {
33198
33043
  if (sortable.isDragging) e.preventDefault();
33199
33044
  };
33200
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _789 => _789.assignees, 'optionalAccess', _790 => _790.length]) || renderAssignSlot);
33045
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _791 => _791.assignees, 'optionalAccess', _792 => _792.length]) || renderAssignSlot);
33201
33046
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33202
33047
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33203
33048
  _chunkTMD5LDX4cjs.Flag02Icon,
@@ -33206,7 +33051,7 @@ function TicketCard({
33206
33051
  "aria-label": `Priority: ${ticket.priority}`
33207
33052
  }
33208
33053
  ),
33209
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _791 => _791.assignees, 'optionalAccess', _792 => _792.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33054
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _793 => _793.assignees, 'optionalAccess', _794 => _794.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33210
33055
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33211
33056
  SquareAvatar,
33212
33057
  {
@@ -33235,7 +33080,7 @@ function TicketCard({
33235
33080
  ] }),
33236
33081
  rightSection
33237
33082
  ] }),
33238
- _optionalChain([ticket, 'access', _793 => _793.tags, 'optionalAccess', _794 => _794.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33083
+ _optionalChain([ticket, 'access', _795 => _795.tags, 'optionalAccess', _796 => _796.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33239
33084
  ] });
33240
33085
  const cardClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
33241
33086
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -33395,7 +33240,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33395
33240
  const observer = new IntersectionObserver(
33396
33241
  (entries) => {
33397
33242
  if (entries.some((e) => e.isIntersecting)) {
33398
- _optionalChain([loadMoreRef, 'access', _795 => _795.current, 'optionalCall', _796 => _796(columnIdRef.current)]);
33243
+ _optionalChain([loadMoreRef, 'access', _797 => _797.current, 'optionalCall', _798 => _798(columnIdRef.current)]);
33399
33244
  }
33400
33245
  },
33401
33246
  { root, rootMargin: loadMoreRootMargin }
@@ -33424,7 +33269,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33424
33269
  {
33425
33270
  ticket: t,
33426
33271
  columnId: column.id,
33427
- href: _optionalChain([getTicketHref, 'optionalCall', _797 => _797(t.id)]),
33272
+ href: _optionalChain([getTicketHref, 'optionalCall', _799 => _799(t.id)]),
33428
33273
  renderAssignSlot,
33429
33274
  dragDisabled: column.dragDisabled
33430
33275
  },
@@ -33456,7 +33301,7 @@ function EmptyState3() {
33456
33301
  // src/components/features/board/use-board-collapse.ts
33457
33302
 
33458
33303
  function useBoardCollapse(storageKey) {
33459
- const [persisted, setPersisted] = _chunkWX7PT5C7cjs.useLocalStorage.call(void 0,
33304
+ const [persisted, setPersisted] = _chunkALW3D72Ocjs.useLocalStorage.call(void 0,
33460
33305
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
33461
33306
  {}
33462
33307
  );
@@ -33507,17 +33352,17 @@ function Board({
33507
33352
  const pointer = _core.pointerWithin.call(void 0, args);
33508
33353
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33509
33354
  const ticketHit = intersections.find(
33510
- (c) => _optionalChain([c, 'access', _798 => _798.data, 'optionalAccess', _799 => _799.droppableContainer, 'optionalAccess', _800 => _800.data, 'optionalAccess', _801 => _801.current, 'optionalAccess', _802 => _802.type]) === "ticket"
33355
+ (c) => _optionalChain([c, 'access', _800 => _800.data, 'optionalAccess', _801 => _801.droppableContainer, 'optionalAccess', _802 => _802.data, 'optionalAccess', _803 => _803.current, 'optionalAccess', _804 => _804.type]) === "ticket"
33511
33356
  );
33512
33357
  if (ticketHit) return [ticketHit];
33513
33358
  const columnHit = intersections.find(
33514
- (c) => _optionalChain([c, 'access', _803 => _803.data, 'optionalAccess', _804 => _804.droppableContainer, 'optionalAccess', _805 => _805.data, 'optionalAccess', _806 => _806.current, 'optionalAccess', _807 => _807.type]) === "column"
33359
+ (c) => _optionalChain([c, 'access', _805 => _805.data, 'optionalAccess', _806 => _806.droppableContainer, 'optionalAccess', _807 => _807.data, 'optionalAccess', _808 => _808.current, 'optionalAccess', _809 => _809.type]) === "column"
33515
33360
  );
33516
33361
  if (columnHit) {
33517
- const columnId = _optionalChain([columnHit, 'access', _808 => _808.data, 'optionalAccess', _809 => _809.droppableContainer, 'optionalAccess', _810 => _810.data, 'optionalAccess', _811 => _811.current, 'optionalAccess', _812 => _812.columnId]);
33362
+ const columnId = _optionalChain([columnHit, 'access', _810 => _810.data, 'optionalAccess', _811 => _811.droppableContainer, 'optionalAccess', _812 => _812.data, 'optionalAccess', _813 => _813.current, 'optionalAccess', _814 => _814.columnId]);
33518
33363
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33519
33364
  const d = c.data.current;
33520
- return _optionalChain([d, 'optionalAccess', _813 => _813.type]) === "ticket" && d.columnId === columnId;
33365
+ return _optionalChain([d, 'optionalAccess', _815 => _815.type]) === "ticket" && d.columnId === columnId;
33521
33366
  });
33522
33367
  if (ticketsInColumn.length > 0) {
33523
33368
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33542,20 +33387,20 @@ function Board({
33542
33387
  const overId = String(over.id);
33543
33388
  if (activeId === overId) return;
33544
33389
  const overData = over.data.current;
33545
- const fromColumnId = _optionalChain([locate, 'call', _814 => _814(items, activeId), 'optionalAccess', _815 => _815.columnId]);
33546
- const toColumnId = _optionalChain([overData, 'optionalAccess', _816 => _816.columnId]);
33390
+ const fromColumnId = _optionalChain([locate, 'call', _816 => _816(items, activeId), 'optionalAccess', _817 => _817.columnId]);
33391
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _818 => _818.columnId]);
33547
33392
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33548
33393
  const origin = dragOriginRef.current;
33549
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _817 => _817.fromColumnId]) === toColumnId;
33394
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _819 => _819.fromColumnId]) === toColumnId;
33550
33395
  const targetCol = items.find((c) => c.id === toColumnId);
33551
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _818 => _818.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33552
- if (_optionalChain([targetCol, 'optionalAccess', _819 => _819.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33396
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _820 => _820.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33397
+ if (_optionalChain([targetCol, 'optionalAccess', _821 => _821.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33553
33398
  setItems((prev) => {
33554
33399
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33555
33400
  const toCol = prev.find((c) => c.id === toColumnId);
33556
33401
  if (fromIndex < 0 || !toCol) return prev;
33557
33402
  let toIndex;
33558
- if (_optionalChain([overData, 'optionalAccess', _820 => _820.type]) === "column") {
33403
+ if (_optionalChain([overData, 'optionalAccess', _822 => _822.type]) === "column") {
33559
33404
  toIndex = toCol.tickets.length;
33560
33405
  } else {
33561
33406
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33597,14 +33442,14 @@ function Board({
33597
33442
  const toColumnId = located.columnId;
33598
33443
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33599
33444
  const targetCol = items.find((c) => c.id === toColumnId);
33600
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _821 => _821.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _822 => _822.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33445
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _823 => _823.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _824 => _824.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33601
33446
  setItems(columns);
33602
33447
  return;
33603
33448
  }
33604
33449
  let finalIndex = located.index;
33605
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _823 => _823.find, 'call', _824 => _824((c) => c.id === toColumnId), 'optionalAccess', _825 => _825.tickets]), () => ( []));
33450
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _825 => _825.find, 'call', _826 => _826((c) => c.id === toColumnId), 'optionalAccess', _827 => _827.tickets]), () => ( []));
33606
33451
  const overData = over.data.current;
33607
- if (_optionalChain([overData, 'optionalAccess', _826 => _826.type]) === "ticket") {
33452
+ if (_optionalChain([overData, 'optionalAccess', _828 => _828.type]) === "ticket") {
33608
33453
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33609
33454
  if (overIndex >= 0 && overIndex !== located.index) {
33610
33455
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33624,8 +33469,8 @@ function Board({
33624
33469
  ticketId: origin.ticketId,
33625
33470
  fromColumnId: origin.fromColumnId,
33626
33471
  toColumnId,
33627
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _827 => _827[finalIndex - 1], 'optionalAccess', _828 => _828.id]), () => ( null)),
33628
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _829 => _829[finalIndex + 1], 'optionalAccess', _830 => _830.id]), () => ( null))
33472
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _829 => _829[finalIndex - 1], 'optionalAccess', _830 => _830.id]), () => ( null)),
33473
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _831 => _831[finalIndex + 1], 'optionalAccess', _832 => _832.id]), () => ( null))
33629
33474
  });
33630
33475
  };
33631
33476
  const handleDragCancel = () => {
@@ -33647,8 +33492,8 @@ function Board({
33647
33492
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex h-full overflow-x-auto", className), children: items.map((column, i) => {
33648
33493
  const prev = items[i - 1];
33649
33494
  const next = items[i + 1];
33650
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _831 => _831.system]));
33651
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _832 => _832.system]));
33495
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _833 => _833.system]));
33496
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _834 => _834.system]));
33652
33497
  const showGap = i > 0 && !joinLeft;
33653
33498
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React101.Fragment, { children: [
33654
33499
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33682,7 +33527,7 @@ function locate(cols, ticketId) {
33682
33527
  return null;
33683
33528
  }
33684
33529
  function findIndexInColumn(cols, columnId, ticketId) {
33685
- return _nullishCoalesce(_optionalChain([cols, 'access', _833 => _833.find, 'call', _834 => _834((c) => c.id === columnId), 'optionalAccess', _835 => _835.tickets, 'access', _836 => _836.findIndex, 'call', _837 => _837((t) => t.id === ticketId)]), () => ( -1));
33530
+ return _nullishCoalesce(_optionalChain([cols, 'access', _835 => _835.find, 'call', _836 => _836((c) => c.id === columnId), 'optionalAccess', _837 => _837.tickets, 'access', _838 => _838.findIndex, 'call', _839 => _839((t) => t.id === ticketId)]), () => ( -1));
33686
33531
  }
33687
33532
 
33688
33533
  // src/components/features/board/types.ts
@@ -34340,6 +34185,5 @@ function canonicalize(status) {
34340
34185
 
34341
34186
 
34342
34187
 
34343
-
34344
- exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageListLoader = ChatMessageListLoader; exports.useDelayedFlag = useDelayedFlag; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoPlayer = VideoPlayer; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.YouTubeEmbed = YouTubeEmbed; exports.extractYouTubeId = extractYouTubeId; exports.YouTubeLinkParser = YouTubeLinkParser; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketKnowledgeBaseList = TicketKnowledgeBaseList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
34345
- //# sourceMappingURL=chunk-SVF4YOGM.cjs.map
34188
+ exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageListLoader = ChatMessageListLoader; exports.useDelayedFlag = useDelayedFlag; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoPlayer = VideoPlayer; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.YouTubeEmbed = YouTubeEmbed; exports.extractYouTubeId = extractYouTubeId; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketKnowledgeBaseList = TicketKnowledgeBaseList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
34189
+ //# sourceMappingURL=chunk-L4T24AN4.cjs.map