@flamingo-stack/openframe-frontend-core 0.0.325 → 0.0.326-snapshot.20260626135722

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 (98) hide show
  1. package/dist/{chunk-U74OC6PM.cjs → chunk-3AXH7BDM.cjs} +26 -26
  2. package/dist/{chunk-U74OC6PM.cjs.map → chunk-3AXH7BDM.cjs.map} +1 -1
  3. package/dist/{chunk-VSUBZBG7.js → chunk-3UVR2JIB.js} +2 -2
  4. package/dist/{chunk-GYWMN4AK.js → chunk-46GJFN4V.js} +4 -4
  5. package/dist/{chunk-5GXMQPG7.cjs → chunk-4ZHA24HS.cjs} +37 -37
  6. package/dist/{chunk-5GXMQPG7.cjs.map → chunk-4ZHA24HS.cjs.map} +1 -1
  7. package/dist/{chunk-VUE2FSVD.js → chunk-5WDRXBM3.js} +2 -2
  8. package/dist/{chunk-HS2YU2NF.js → chunk-62O2VTR2.js} +2 -2
  9. package/dist/{chunk-XTV2EZHO.cjs → chunk-7FY2OM5W.cjs} +31 -31
  10. package/dist/{chunk-XTV2EZHO.cjs.map → chunk-7FY2OM5W.cjs.map} +1 -1
  11. package/dist/{chunk-5COLEZW6.cjs → chunk-BWWUHOE3.cjs} +62 -62
  12. package/dist/{chunk-5COLEZW6.cjs.map → chunk-BWWUHOE3.cjs.map} +1 -1
  13. package/dist/{chunk-5DXWGCTW.cjs → chunk-CRHOAKG5.cjs} +56 -56
  14. package/dist/{chunk-5DXWGCTW.cjs.map → chunk-CRHOAKG5.cjs.map} +1 -1
  15. package/dist/{chunk-P3IIAUCL.js → chunk-CWXO6VCD.js} +4253 -4172
  16. package/dist/chunk-CWXO6VCD.js.map +1 -0
  17. package/dist/{chunk-AYBSXRRC.cjs → chunk-GABTFTDE.cjs} +879 -798
  18. package/dist/chunk-GABTFTDE.cjs.map +1 -0
  19. package/dist/{chunk-4USOR7KK.cjs → chunk-HQ6BILVP.cjs} +25 -25
  20. package/dist/{chunk-4USOR7KK.cjs.map → chunk-HQ6BILVP.cjs.map} +1 -1
  21. package/dist/{chunk-WAYJ7VBD.cjs → chunk-I4OFXYJR.cjs} +12 -12
  22. package/dist/{chunk-WAYJ7VBD.cjs.map → chunk-I4OFXYJR.cjs.map} +1 -1
  23. package/dist/{chunk-XFRQUV5M.js → chunk-IDMM6DVL.js} +2 -2
  24. package/dist/{chunk-MIVP6B6P.js → chunk-J4HHXHMC.js} +4 -4
  25. package/dist/{chunk-6GSM6K5W.js → chunk-LESTX5DM.js} +2 -2
  26. package/dist/{chunk-EQSGC5WT.js → chunk-MJUYWNQB.js} +2 -2
  27. package/dist/{chunk-5HRCKYFX.cjs → chunk-MWAEG3XK.cjs} +9 -9
  28. package/dist/{chunk-5HRCKYFX.cjs.map → chunk-MWAEG3XK.cjs.map} +1 -1
  29. package/dist/{chunk-XQBK7IVF.cjs → chunk-NROSNR5J.cjs} +15 -15
  30. package/dist/{chunk-XQBK7IVF.cjs.map → chunk-NROSNR5J.cjs.map} +1 -1
  31. package/dist/{chunk-QLSUOQMU.cjs → chunk-PGFQ6WQR.cjs} +7 -7
  32. package/dist/{chunk-QLSUOQMU.cjs.map → chunk-PGFQ6WQR.cjs.map} +1 -1
  33. package/dist/{chunk-UJIDDEXD.js → chunk-QF4XERYJ.js} +2 -2
  34. package/dist/{chunk-5CWJGCOL.js → chunk-U7GDY7Y3.js} +4 -4
  35. package/dist/{chunk-5YGKK636.js → chunk-UHHJIHUZ.js} +4 -4
  36. package/dist/{chunk-K2PS5MJH.cjs → chunk-XDNQJQGP.cjs} +5 -5
  37. package/dist/{chunk-K2PS5MJH.cjs.map → chunk-XDNQJQGP.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/index.cjs +2 -2
  41. package/dist/components/chat/index.js +1 -1
  42. package/dist/components/contact/index.cjs +3 -3
  43. package/dist/components/contact/index.js +2 -2
  44. package/dist/components/docs/index.cjs +5 -5
  45. package/dist/components/docs/index.js +4 -4
  46. package/dist/components/embeds/index.cjs +3 -3
  47. package/dist/components/embeds/index.js +2 -2
  48. package/dist/components/faq/index.cjs +3 -3
  49. package/dist/components/faq/index.js +2 -2
  50. package/dist/components/features/index.cjs +2 -2
  51. package/dist/components/features/index.js +1 -1
  52. package/dist/components/help-center-pages/index.cjs +20 -20
  53. package/dist/components/help-center-pages/index.js +11 -11
  54. package/dist/components/index.cjs +122 -120
  55. package/dist/components/index.cjs.map +1 -1
  56. package/dist/components/index.js +11 -9
  57. package/dist/components/index.js.map +1 -1
  58. package/dist/components/navigation/index.cjs +2 -2
  59. package/dist/components/navigation/index.js +1 -1
  60. package/dist/components/onboarding-guides/index.cjs +5 -5
  61. package/dist/components/onboarding-guides/index.js +4 -4
  62. package/dist/components/related-content/index.cjs +3 -3
  63. package/dist/components/related-content/index.js +2 -2
  64. package/dist/components/tickets/index.cjs +5 -5
  65. package/dist/components/tickets/index.js +4 -4
  66. package/dist/components/ui/index.cjs +4 -2
  67. package/dist/components/ui/index.cjs.map +1 -1
  68. package/dist/components/ui/index.d.ts +1 -0
  69. package/dist/components/ui/index.d.ts.map +1 -1
  70. package/dist/components/ui/index.js +3 -1
  71. package/dist/components/ui/info-section.d.ts +63 -0
  72. package/dist/components/ui/info-section.d.ts.map +1 -0
  73. package/dist/components/ui/page-actions.d.ts +2 -0
  74. package/dist/components/ui/page-actions.d.ts.map +1 -1
  75. package/dist/components/ui/ticket-attachments-list.d.ts +2 -0
  76. package/dist/components/ui/ticket-attachments-list.d.ts.map +1 -1
  77. package/dist/index.cjs +4 -2
  78. package/dist/index.cjs.map +1 -1
  79. package/dist/index.js +3 -1
  80. package/package.json +1 -1
  81. package/src/components/ui/index.ts +1 -0
  82. package/src/components/ui/info-section.tsx +151 -0
  83. package/src/components/ui/page-actions.tsx +16 -0
  84. package/src/components/ui/ticket-attachments-list.tsx +14 -2
  85. package/src/stories/InfoSection.stories.tsx +110 -0
  86. package/dist/chunk-AYBSXRRC.cjs.map +0 -1
  87. package/dist/chunk-P3IIAUCL.js.map +0 -1
  88. /package/dist/{chunk-VSUBZBG7.js.map → chunk-3UVR2JIB.js.map} +0 -0
  89. /package/dist/{chunk-GYWMN4AK.js.map → chunk-46GJFN4V.js.map} +0 -0
  90. /package/dist/{chunk-VUE2FSVD.js.map → chunk-5WDRXBM3.js.map} +0 -0
  91. /package/dist/{chunk-HS2YU2NF.js.map → chunk-62O2VTR2.js.map} +0 -0
  92. /package/dist/{chunk-XFRQUV5M.js.map → chunk-IDMM6DVL.js.map} +0 -0
  93. /package/dist/{chunk-MIVP6B6P.js.map → chunk-J4HHXHMC.js.map} +0 -0
  94. /package/dist/{chunk-6GSM6K5W.js.map → chunk-LESTX5DM.js.map} +0 -0
  95. /package/dist/{chunk-EQSGC5WT.js.map → chunk-MJUYWNQB.js.map} +0 -0
  96. /package/dist/{chunk-UJIDDEXD.js.map → chunk-QF4XERYJ.js.map} +0 -0
  97. /package/dist/{chunk-5CWJGCOL.js.map → chunk-U7GDY7Y3.js.map} +0 -0
  98. /package/dist/{chunk-5YGKK636.js.map → chunk-UHHJIHUZ.js.map} +0 -0
@@ -243,7 +243,7 @@ var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');
243
243
 
244
244
  // src/components/pagination.tsx
245
245
  var _lucidereact = require('lucide-react');
246
- var _react = require('react'); var React112 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React3 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React13 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React24 = _interopRequireWildcard(_react); var React26 = _interopRequireWildcard(_react); var React29 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React35 = _interopRequireWildcard(_react); var React36 = _interopRequireWildcard(_react); var React38 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React41 = _interopRequireWildcard(_react); var React42 = _interopRequireWildcard(_react); var React46 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React51 = _interopRequireWildcard(_react); var React52 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React56 = _interopRequireWildcard(_react); var React57 = _interopRequireWildcard(_react); var React58 = _interopRequireWildcard(_react); var React59 = _interopRequireWildcard(_react); var React60 = _interopRequireWildcard(_react); var React62 = _interopRequireWildcard(_react); var React63 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React72 = _interopRequireWildcard(_react); var React76 = _interopRequireWildcard(_react); var React77 = _interopRequireWildcard(_react); var React79 = _interopRequireWildcard(_react); var React81 = _interopRequireWildcard(_react); var React86 = _interopRequireWildcard(_react); var React89 = _interopRequireWildcard(_react); var React90 = _interopRequireWildcard(_react); var React91 = _interopRequireWildcard(_react); var React96 = _interopRequireWildcard(_react); var React95 = _interopRequireWildcard(_react); var React93 = _interopRequireWildcard(_react); var React92 = _interopRequireWildcard(_react); var React94 = _interopRequireWildcard(_react); var React97 = _interopRequireWildcard(_react); var React105 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React108 = _interopRequireWildcard(_react); var React111 = _interopRequireWildcard(_react); var React114 = _interopRequireWildcard(_react); var React115 = _interopRequireWildcard(_react); var React117 = _interopRequireWildcard(_react); var React118 = _interopRequireWildcard(_react); var React121 = _interopRequireWildcard(_react); var React120 = _interopRequireWildcard(_react); var React119 = _interopRequireWildcard(_react); var React122 = _interopRequireWildcard(_react); var React124 = _interopRequireWildcard(_react); var React123 = _interopRequireWildcard(_react); var React132 = _interopRequireWildcard(_react); var React131 = _interopRequireWildcard(_react);
246
+ var _react = require('react'); var React113 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React3 = _interopRequireWildcard(_react); var React22 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react); var React12 = _interopRequireWildcard(_react); var React11 = _interopRequireWildcard(_react); var React14 = _interopRequireWildcard(_react); var React13 = _interopRequireWildcard(_react); var React15 = _interopRequireWildcard(_react); var React16 = _interopRequireWildcard(_react); var React18 = _interopRequireWildcard(_react); var React17 = _interopRequireWildcard(_react); var React19 = _interopRequireWildcard(_react); var React23 = _interopRequireWildcard(_react); var React20 = _interopRequireWildcard(_react); var React24 = _interopRequireWildcard(_react); var React26 = _interopRequireWildcard(_react); var React29 = _interopRequireWildcard(_react); var React34 = _interopRequireWildcard(_react); var React33 = _interopRequireWildcard(_react); var React35 = _interopRequireWildcard(_react); var React36 = _interopRequireWildcard(_react); var React38 = _interopRequireWildcard(_react); var React37 = _interopRequireWildcard(_react); var React41 = _interopRequireWildcard(_react); var React42 = _interopRequireWildcard(_react); var React43 = _interopRequireWildcard(_react); var React47 = _interopRequireWildcard(_react); var React48 = _interopRequireWildcard(_react); var React49 = _interopRequireWildcard(_react); var React50 = _interopRequireWildcard(_react); var React51 = _interopRequireWildcard(_react); var React52 = _interopRequireWildcard(_react); var React53 = _interopRequireWildcard(_react); var React54 = _interopRequireWildcard(_react); var React55 = _interopRequireWildcard(_react); var React56 = _interopRequireWildcard(_react); var React57 = _interopRequireWildcard(_react); var React58 = _interopRequireWildcard(_react); var React59 = _interopRequireWildcard(_react); var React60 = _interopRequireWildcard(_react); var React61 = _interopRequireWildcard(_react); var React63 = _interopRequireWildcard(_react); var React64 = _interopRequireWildcard(_react); var React74 = _interopRequireWildcard(_react); var React73 = _interopRequireWildcard(_react); var React77 = _interopRequireWildcard(_react); var React78 = _interopRequireWildcard(_react); var React80 = _interopRequireWildcard(_react); var React82 = _interopRequireWildcard(_react); var React87 = _interopRequireWildcard(_react); var React90 = _interopRequireWildcard(_react); var React91 = _interopRequireWildcard(_react); var React92 = _interopRequireWildcard(_react); var React97 = _interopRequireWildcard(_react); var React96 = _interopRequireWildcard(_react); var React94 = _interopRequireWildcard(_react); var React93 = _interopRequireWildcard(_react); var React95 = _interopRequireWildcard(_react); var React98 = _interopRequireWildcard(_react); var React106 = _interopRequireWildcard(_react); var React110 = _interopRequireWildcard(_react); var React109 = _interopRequireWildcard(_react); var React112 = _interopRequireWildcard(_react); var React115 = _interopRequireWildcard(_react); var React116 = _interopRequireWildcard(_react); var React118 = _interopRequireWildcard(_react); var React119 = _interopRequireWildcard(_react); var React122 = _interopRequireWildcard(_react); var React121 = _interopRequireWildcard(_react); var React120 = _interopRequireWildcard(_react); var React124 = _interopRequireWildcard(_react); var React123 = _interopRequireWildcard(_react); var React132 = _interopRequireWildcard(_react); var React131 = _interopRequireWildcard(_react);
247
247
  var _jsxruntime = require('react/jsx-runtime');
248
248
  var Pagination, PaginationContent, PaginationItem, PaginationLink, PaginationEllipsis, PaginationPrevious, PaginationNext;
249
249
  var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
@@ -335,19 +335,19 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
335
335
  ) })
336
336
  ] }) });
337
337
  };
338
- PaginationContent = exports.PaginationContent = React112.forwardRef(
338
+ PaginationContent = exports.PaginationContent = React113.forwardRef(
339
339
  ({ className, ...props }, ref) => {
340
340
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center justify-center", className), ...props });
341
341
  }
342
342
  );
343
343
  PaginationContent.displayName = "PaginationContent";
344
- PaginationItem = exports.PaginationItem = React112.forwardRef(
344
+ PaginationItem = exports.PaginationItem = React113.forwardRef(
345
345
  ({ className, ...props }, ref) => {
346
346
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "", className), ...props });
347
347
  }
348
348
  );
349
349
  PaginationItem.displayName = "PaginationItem";
350
- PaginationLink = exports.PaginationLink = React112.forwardRef(
350
+ PaginationLink = exports.PaginationLink = React113.forwardRef(
351
351
  ({ className, ...props }, ref) => {
352
352
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
353
353
  "button",
@@ -363,7 +363,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
363
363
  }
364
364
  );
365
365
  PaginationLink.displayName = "PaginationLink";
366
- PaginationEllipsis = exports.PaginationEllipsis = React112.forwardRef(
366
+ PaginationEllipsis = exports.PaginationEllipsis = React113.forwardRef(
367
367
  ({ className, ...props }, ref) => {
368
368
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
369
369
  "span",
@@ -380,7 +380,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
380
380
  }
381
381
  );
382
382
  PaginationEllipsis.displayName = "PaginationEllipsis";
383
- PaginationPrevious = exports.PaginationPrevious = React112.forwardRef(
383
+ PaginationPrevious = exports.PaginationPrevious = React113.forwardRef(
384
384
  ({ className, ...props }, ref) => {
385
385
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.Button, { ref, variant: "outline", size: "icon", className: _chunkFIG2RKZFcjs.cn.call(void 0, "h-10 w-10", className), ...props, children: [
386
386
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -389,7 +389,7 @@ var init_pagination = _chunkVRHGVLSLcjs.__esm.call(void 0, {
389
389
  }
390
390
  );
391
391
  PaginationPrevious.displayName = "PaginationPrevious";
392
- PaginationNext = exports.PaginationNext = React112.forwardRef(
392
+ PaginationNext = exports.PaginationNext = React113.forwardRef(
393
393
  ({ className, ...props }, ref) => {
394
394
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.Button, { ref, variant: "outline", size: "icon", className: _chunkFIG2RKZFcjs.cn.call(void 0, "h-10 w-10", className), ...props, children: [
395
395
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -2552,7 +2552,7 @@ var ActionsMenu = ({
2552
2552
  className: `relative min-w-[256px] max-h-[var(--radix-popper-available-height)] bg-ods-bg border border-ods-border rounded-md shadow-lg overflow-y-auto ${className}`,
2553
2553
  children: groups.map((group, groupIndex) => {
2554
2554
  const groupKey = group.id || group.items.map((i) => i.id).join("|");
2555
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React112.default.Fragment, { children: [
2555
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React113.default.Fragment, { children: [
2556
2556
  group.items.map((item, itemIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2557
2557
  MenuItem,
2558
2558
  {
@@ -4761,7 +4761,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
4761
4761
  cache.set(key, entry);
4762
4762
  }
4763
4763
  const rendered = entry.node;
4764
- if (React112.default.isValidElement(rendered) && rendered.type === BlockCard) {
4764
+ if (React113.default.isValidElement(rendered) && rendered.type === BlockCard) {
4765
4765
  const props2 = rendered.props;
4766
4766
  const markerEnd = match2.index + match2[0].length;
4767
4767
  parts.push({ kind: "text", text: text.slice(cursor, markerEnd) });
@@ -7505,7 +7505,7 @@ var formatTokenCount = (count) => {
7505
7505
  return String(count);
7506
7506
  };
7507
7507
  var hasAnyBreakdownRow = (breakdown) => !!breakdown && !!(breakdown.haikuRewriter || breakdown.haikuClassifier || breakdown.haikuSummarizer);
7508
- var ModelDisplay = React112.default.forwardRef(
7508
+ var ModelDisplay = React113.default.forwardRef(
7509
7509
  ({
7510
7510
  className,
7511
7511
  provider,
@@ -7627,7 +7627,7 @@ function BreakdownRow({
7627
7627
  ] });
7628
7628
  }
7629
7629
  ModelDisplay.displayName = "ModelDisplay";
7630
- var ModelDisplaySkeleton = React112.default.forwardRef(
7630
+ var ModelDisplaySkeleton = React113.default.forwardRef(
7631
7631
  ({ className, showTokens = false, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
7632
7632
  "div",
7633
7633
  {
@@ -8826,7 +8826,7 @@ var _muxplayerreact = require('@mux/mux-player-react'); var _muxplayerreact2 = _
8826
8826
 
8827
8827
  // src/utils/fetch-priority.ts
8828
8828
 
8829
- var REACT_MAJOR = parseInt((React112.default.version || "0").split(".")[0], 10);
8829
+ var REACT_MAJOR = parseInt((React113.default.version || "0").split(".")[0], 10);
8830
8830
  var USE_CAMEL_CASE_FETCH_PRIORITY = REACT_MAJOR >= 19;
8831
8831
  function fetchPriorityProp(priority) {
8832
8832
  const value = priority === void 0 ? "auto" : typeof priority === "boolean" ? priority ? "high" : "low" : priority;
@@ -9492,7 +9492,7 @@ function ChatVideoEntityCard({
9492
9492
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
9493
9493
 
9494
9494
 
9495
- var InteractiveCard = React112.default.forwardRef(
9495
+ var InteractiveCard = React113.default.forwardRef(
9496
9496
  ({
9497
9497
  children,
9498
9498
  onClick,
@@ -13062,7 +13062,7 @@ function InfoCard({ data, className = "" }) {
13062
13062
  data.subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-secondary truncate self-stretch", title: data.subtitle, children: data.subtitle }),
13063
13063
  data.items.map((item, index) => {
13064
13064
  const values = Array.isArray(item.value) ? item.value : [item.value];
13065
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13065
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: values.map((val, valIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13066
13066
  InfoCardValueRow,
13067
13067
  {
13068
13068
  label: item.label,
@@ -13154,11 +13154,316 @@ function InfoRow({ label, value, icon }) {
13154
13154
  ] });
13155
13155
  }
13156
13156
 
13157
+ // src/components/ui/info-section.tsx
13158
+ _chunkWBR7H6E3cjs.init_next_link.call(void 0, );
13159
+ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
13160
+
13161
+ // src/components/ui/assignee-dropdown.tsx
13162
+
13163
+
13164
+ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
13165
+
13166
+ function AssigneeDropdown(props) {
13167
+ if (props.variant === "compact") {
13168
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactAssigneeDropdown, { ...props });
13169
+ }
13170
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DefaultAssigneeDropdown, { ...props });
13171
+ }
13172
+ function CompactAssigneeDropdown({
13173
+ currentAssignee,
13174
+ options,
13175
+ isLoading,
13176
+ onAssign,
13177
+ className
13178
+ }) {
13179
+ const [isOpen, setIsOpen] = React41.useState(false);
13180
+ const [search, setSearch] = React41.useState("");
13181
+ const hasAssignee = !!currentAssignee;
13182
+ React41.useEffect(() => {
13183
+ if (!isOpen) setSearch("");
13184
+ }, [isOpen]);
13185
+ const filtered = React41.useMemo(() => {
13186
+ const q = search.trim().toLowerCase();
13187
+ if (!q) return options;
13188
+ return options.filter((o) => o.label.toLowerCase().includes(q));
13189
+ }, [options, search]);
13190
+ const orderedOptions = React41.useMemo(() => {
13191
+ if (!currentAssignee) return filtered;
13192
+ const current = filtered.find((o) => o.value === currentAssignee.id);
13193
+ if (!current) return filtered;
13194
+ return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
13195
+ }, [filtered, currentAssignee]);
13196
+ const handleSelect = (userId) => {
13197
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _258 => _258.id]) === userId ? null : userId;
13198
+ onAssign(next);
13199
+ setIsOpen(false);
13200
+ };
13201
+ const trigger = hasAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13202
+ "button",
13203
+ {
13204
+ type: "button",
13205
+ "aria-label": "Change assignee",
13206
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
13207
+ "shrink-0 rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
13208
+ className
13209
+ ),
13210
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13211
+ SquareAvatar,
13212
+ {
13213
+ src: currentAssignee.avatarSrc,
13214
+ alt: currentAssignee.name,
13215
+ fallback: currentAssignee.name || "User",
13216
+ size: "sm",
13217
+ variant: "round"
13218
+ }
13219
+ )
13220
+ }
13221
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13222
+ "button",
13223
+ {
13224
+ type: "button",
13225
+ "aria-label": "Assign user",
13226
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
13227
+ "size-8 rounded-full border border-ods-border flex items-center justify-center shrink-0",
13228
+ "text-ods-text-secondary hover:text-ods-accent hover:border-ods-accent transition-colors",
13229
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
13230
+ className
13231
+ ),
13232
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.UserPlusIcon, { className: "size-4" })
13233
+ }
13234
+ );
13235
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive2.Root, { open: isOpen, onOpenChange: setIsOpen, modal: false, children: [
13236
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive2.Trigger, { asChild: true, children: trigger }),
13237
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive2.Portal, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13238
+ PopoverPrimitive2.Content,
13239
+ {
13240
+ align: "end",
13241
+ sideOffset: 6,
13242
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
13243
+ "z-50 w-72 bg-ods-card border border-ods-border rounded-[6px] shadow-lg overflow-hidden",
13244
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
13245
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
13246
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
13247
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
13248
+ ),
13249
+ children: [
13250
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13251
+ _chunkQJGRP2YEcjs.Input,
13252
+ {
13253
+ autoFocus: true,
13254
+ value: search,
13255
+ onChange: (e) => setSearch(e.target.value),
13256
+ placeholder: "Search users...",
13257
+ startAdornment: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "size-4 text-ods-text-secondary" }),
13258
+ className: "rounded-none border-0"
13259
+ }
13260
+ ) }),
13261
+ /* @__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) => {
13262
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _259 => _259.id]) === opt.value;
13263
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13264
+ "button",
13265
+ {
13266
+ type: "button",
13267
+ role: "option",
13268
+ "aria-selected": isCurrent,
13269
+ onClick: () => handleSelect(opt.value),
13270
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
13271
+ "flex items-center gap-[var(--spacing-system-xs)] w-full px-[var(--spacing-system-sf)] py-[var(--spacing-system-xs)] text-left",
13272
+ "hover:bg-ods-bg-hover transition-colors",
13273
+ isCurrent && "bg-ods-bg-hover"
13274
+ ),
13275
+ children: [
13276
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13277
+ SquareAvatar,
13278
+ {
13279
+ src: opt.imageUrl,
13280
+ alt: opt.label,
13281
+ fallback: opt.label,
13282
+ size: "sm",
13283
+ variant: "round",
13284
+ className: "h-6 w-6 shrink-0"
13285
+ }
13286
+ ),
13287
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-1 truncate text-h4 text-ods-text-primary", title: opt.label, children: opt.label }),
13288
+ isCurrent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.CheckIcon, { className: "size-4 shrink-0 text-ods-accent" })
13289
+ ]
13290
+ },
13291
+ opt.value
13292
+ );
13293
+ }) })
13294
+ ]
13295
+ }
13296
+ ) })
13297
+ ] });
13298
+ }
13299
+ function DefaultAssigneeDropdown({
13300
+ currentAssignee,
13301
+ options,
13302
+ isLoading,
13303
+ onAssign,
13304
+ className
13305
+ }) {
13306
+ const [isEditing, setIsEditing] = React41.useState(false);
13307
+ const hasAssignee = !!currentAssignee;
13308
+ const renderOption = React41.useCallback((option) => {
13309
+ const opt = option;
13310
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-sf)] w-full min-w-0", children: [
13311
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13312
+ SquareAvatar,
13313
+ {
13314
+ src: opt.imageUrl,
13315
+ alt: opt.label,
13316
+ fallback: opt.label,
13317
+ size: "sm",
13318
+ variant: "round",
13319
+ className: "h-6 w-6 shrink-0"
13320
+ }
13321
+ ),
13322
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", title: opt.label, children: opt.label })
13323
+ ] });
13324
+ }, []);
13325
+ if (isEditing) {
13326
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "min-w-0", className), children: [
13327
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13328
+ Autocomplete,
13329
+ {
13330
+ options,
13331
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _260 => _260.id]), () => ( null)),
13332
+ onChange: (val) => {
13333
+ onAssign(val);
13334
+ setIsEditing(false);
13335
+ },
13336
+ placeholder: "Search users...",
13337
+ loading: isLoading,
13338
+ showChevron: false,
13339
+ startAdornment: hasAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13340
+ SquareAvatar,
13341
+ {
13342
+ src: currentAssignee.avatarSrc,
13343
+ alt: currentAssignee.name,
13344
+ fallback: currentAssignee.name || "User",
13345
+ size: "sm",
13346
+ variant: "round",
13347
+ className: "h-6 w-6"
13348
+ }
13349
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.UserIcon, { className: "size-5 text-ods-text-secondary" }),
13350
+ renderOption
13351
+ }
13352
+ ),
13353
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate block mt-0.5", children: "Assigned" })
13354
+ ] });
13355
+ }
13356
+ if (hasAssignee) {
13357
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center gap-[var(--spacing-system-xs)] min-w-0", className), children: [
13358
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13359
+ SquareAvatar,
13360
+ {
13361
+ src: currentAssignee.avatarSrc,
13362
+ alt: currentAssignee.name,
13363
+ fallback: currentAssignee.name || "User",
13364
+ size: "md",
13365
+ variant: "round",
13366
+ className: "shrink-0"
13367
+ }
13368
+ ),
13369
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col justify-center", children: [
13370
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full min-w-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13371
+ "button",
13372
+ {
13373
+ type: "button",
13374
+ onClick: () => setIsEditing(true),
13375
+ className: "flex items-center gap-[var(--spacing-system-xxs)] cursor-pointer group text-left",
13376
+ children: [
13377
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.PenEditIcon, { className: "size-4 shrink-0 text-ods-text-secondary group-hover:text-ods-accent transition-colors" }),
13378
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary truncate", title: currentAssignee.name, children: currentAssignee.name })
13379
+ ]
13380
+ }
13381
+ ) }),
13382
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate", children: "Assigned" })
13383
+ ] }) })
13384
+ ] });
13385
+ }
13386
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "min-w-0", className), children: [
13387
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13388
+ "button",
13389
+ {
13390
+ type: "button",
13391
+ onClick: () => setIsEditing(true),
13392
+ className: "flex items-center gap-[var(--spacing-system-xxs)] text-h4 text-ods-accent underline truncate cursor-pointer hover:opacity-80 transition-opacity text-left",
13393
+ children: [
13394
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.UserIcon, { className: "size-4 shrink-0" }),
13395
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Assign User" })
13396
+ ]
13397
+ }
13398
+ ),
13399
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate block", children: "Assigned" })
13400
+ ] });
13401
+ }
13402
+
13403
+ // src/components/ui/info-section.tsx
13404
+
13405
+ function TextValue({ value }) {
13406
+ const { text, imageSrc, imageFallback, imageVariant = "round", icon, onClick, href, openInNewTab } = value;
13407
+ const hasImage = imageSrc !== void 0 || imageFallback !== void 0;
13408
+ const interactiveClass = "truncate text-left text-h4 text-ods-text-primary transition-colors hover:text-ods-accent";
13409
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
13410
+ icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex size-4 shrink-0 items-center justify-center text-ods-text-secondary", children: icon }),
13411
+ href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13412
+ _chunkWBR7H6E3cjs.next_link_default,
13413
+ {
13414
+ href,
13415
+ target: openInNewTab ? "_blank" : void 0,
13416
+ rel: openInNewTab ? "noopener noreferrer" : void 0,
13417
+ title: text,
13418
+ className: interactiveClass,
13419
+ children: text
13420
+ }
13421
+ ) : onClick ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick, title: text, className: interactiveClass, children: text }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-h4 text-ods-text-primary", title: text, children: text }),
13422
+ hasImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13423
+ SquareAvatar,
13424
+ {
13425
+ src: imageSrc,
13426
+ alt: text,
13427
+ fallback: _nullishCoalesce(imageFallback, () => ( text)),
13428
+ size: "sm",
13429
+ variant: imageVariant,
13430
+ className: "h-4 w-4"
13431
+ }
13432
+ )
13433
+ ] });
13434
+ }
13435
+ function RowValue({ value }) {
13436
+ switch (value.type) {
13437
+ case "assignee": {
13438
+ const { type: _type, ...props } = value;
13439
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AssigneeDropdown, { ...props, variant: _nullishCoalesce(props.variant, () => ( "compact")) });
13440
+ }
13441
+ case "status": {
13442
+ const { type: _type, ...props } = value;
13443
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketStatusTag, { ...props });
13444
+ }
13445
+ case "custom":
13446
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
13447
+ default:
13448
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextValue, { value });
13449
+ }
13450
+ }
13451
+ function InfoSection({ title, rows, className }) {
13452
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xxs)]", className), children: [
13453
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 text-ods-text-secondary", children: title }),
13454
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xsf)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-mf)]", children: rows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
13455
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0 text-h4 text-ods-text-secondary", children: row.label }),
13456
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px min-w-4 flex-1 bg-ods-border" }),
13457
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowValue, { value: row.value }) })
13458
+ ] }, row.id)) })
13459
+ ] });
13460
+ }
13461
+
13157
13462
  // src/components/ui/input-trigger.tsx
13158
13463
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
13159
13464
 
13160
13465
 
13161
- var InputTrigger = React41.forwardRef(
13466
+ var InputTrigger = React42.forwardRef(
13162
13467
  ({ selectedLabel, placeholder, startIcon, endIcon, invalid, className, disabled, ...props }, ref) => {
13163
13468
  const isPlaceholder = selectedLabel === void 0 || selectedLabel === null || selectedLabel === "";
13164
13469
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13223,8 +13528,8 @@ function MediaTypeSelector({
13223
13528
  className,
13224
13529
  disabled
13225
13530
  }) {
13226
- const [key, setKey] = React42.useState(0);
13227
- React42.useEffect(() => {
13531
+ const [key, setKey] = React43.useState(0);
13532
+ React43.useEffect(() => {
13228
13533
  setKey((prev) => prev + 1);
13229
13534
  }, [value]);
13230
13535
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13269,7 +13574,7 @@ var noDataActionsVariants = _classvarianceauthority.cva.call(void 0, "overflow-h
13269
13574
 
13270
13575
  // src/components/ui/no-data/no-data-message.tsx
13271
13576
 
13272
- var NoDataMessage = React112.default.forwardRef(
13577
+ var NoDataMessage = React113.default.forwardRef(
13273
13578
  function NoDataMessage2({ icon, title, description, className, ...props }, ref) {
13274
13579
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13275
13580
  "div",
@@ -13296,7 +13601,7 @@ var NoDataMessage = React112.default.forwardRef(
13296
13601
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
13297
13602
 
13298
13603
 
13299
- var NoDataAction = React112.default.forwardRef(
13604
+ var NoDataAction = React113.default.forwardRef(
13300
13605
  function NoDataAction2({ icon, label, children, className, ...props }, ref) {
13301
13606
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13302
13607
  "div",
@@ -13316,16 +13621,16 @@ var NoDataAction = React112.default.forwardRef(
13316
13621
  );
13317
13622
  }
13318
13623
  );
13319
- var NoDataActions = React112.default.forwardRef(
13624
+ var NoDataActions = React113.default.forwardRef(
13320
13625
  function NoDataActions2({ actions, variant = "outline", className, children, ...props }, ref) {
13321
- const blocks = actions ? actions.map((action, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NoDataAction, { ...action }, index)) : React112.default.Children.toArray(children);
13626
+ const blocks = actions ? actions.map((action, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NoDataAction, { ...action }, index)) : React113.default.Children.toArray(children);
13322
13627
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13323
13628
  "div",
13324
13629
  {
13325
13630
  ref,
13326
13631
  className: _chunkFIG2RKZFcjs.cn.call(void 0, noDataActionsVariants({ variant }), "flex w-full flex-col md:w-auto md:flex-row", className),
13327
13632
  ...props,
13328
- children: blocks.map((block, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React112.default.Fragment, { children: [
13633
+ children: blocks.map((block, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React113.default.Fragment, { children: [
13329
13634
  index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13330
13635
  "div",
13331
13636
  {
@@ -13342,7 +13647,7 @@ var NoDataActions = React112.default.forwardRef(
13342
13647
 
13343
13648
  // src/components/ui/no-data/no-data.tsx
13344
13649
 
13345
- var NoData = React112.default.forwardRef(function NoData2({
13650
+ var NoData = React113.default.forwardRef(function NoData2({
13346
13651
  icon,
13347
13652
  title,
13348
13653
  description,
@@ -13356,7 +13661,7 @@ var NoData = React112.default.forwardRef(function NoData2({
13356
13661
  ...props
13357
13662
  }, ref) {
13358
13663
  const hasMessage = !!(icon || title || description);
13359
- const hasActions = !!_optionalChain([actions, 'optionalAccess', _258 => _258.length]);
13664
+ const hasActions = !!_optionalChain([actions, 'optionalAccess', _261 => _261.length]);
13360
13665
  const footerButton = _nullishCoalesce(button, () => ( (buttonLabel != null ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13361
13666
  _chunkQJGRP2YEcjs.Button,
13362
13667
  {
@@ -13364,7 +13669,7 @@ var NoData = React112.default.forwardRef(function NoData2({
13364
13669
  leftIcon: buttonIcon,
13365
13670
  onClick: onButtonClick,
13366
13671
  ...buttonProps,
13367
- className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-full md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _259 => _259.className])),
13672
+ className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-full md:w-auto", _optionalChain([buttonProps, 'optionalAccess', _262 => _262.className])),
13368
13673
  children: buttonLabel
13369
13674
  }
13370
13675
  ) : null)));
@@ -13455,7 +13760,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
13455
13760
 
13456
13761
  var _reactradiogroup = require('@radix-ui/react-radio-group'); var RadioGroupPrimitive = _interopRequireWildcard(_reactradiogroup);
13457
13762
 
13458
- var RadioGroup = React46.forwardRef(({ className, ...props }, ref) => {
13763
+ var RadioGroup = React47.forwardRef(({ className, ...props }, ref) => {
13459
13764
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13460
13765
  RadioGroupPrimitive.Root,
13461
13766
  {
@@ -13466,7 +13771,7 @@ var RadioGroup = React46.forwardRef(({ className, ...props }, ref) => {
13466
13771
  );
13467
13772
  });
13468
13773
  RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
13469
- var RadioGroupItem = React46.forwardRef(({ className, ...props }, ref) => {
13774
+ var RadioGroupItem = React47.forwardRef(({ className, ...props }, ref) => {
13470
13775
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13471
13776
  RadioGroupPrimitive.Item,
13472
13777
  {
@@ -13487,7 +13792,7 @@ var RadioGroupItem = React46.forwardRef(({ className, ...props }, ref) => {
13487
13792
  );
13488
13793
  });
13489
13794
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
13490
- var RadioGroupBlock = React46.forwardRef(
13795
+ var RadioGroupBlock = React47.forwardRef(
13491
13796
  ({ className, options, variant = "separated", error, itemClassName, disabled, ...props }, ref) => {
13492
13797
  const isGrouped = variant === "grouped";
13493
13798
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative flex w-full flex-col", className), children: [
@@ -13590,16 +13895,16 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
13590
13895
 
13591
13896
  var _reactswitch = require('@radix-ui/react-switch'); var SwitchPrimitives = _interopRequireWildcard(_reactswitch);
13592
13897
 
13593
- var Switch = React47.forwardRef(({ className, checked, onCheckedChange, ...props }, ref) => {
13594
- const [isChecked, setIsChecked] = React47.useState(checked || false);
13595
- React47.useEffect(() => {
13898
+ var Switch = React48.forwardRef(({ className, checked, onCheckedChange, ...props }, ref) => {
13899
+ const [isChecked, setIsChecked] = React48.useState(checked || false);
13900
+ React48.useEffect(() => {
13596
13901
  if (checked !== void 0) {
13597
13902
  setIsChecked(checked);
13598
13903
  }
13599
13904
  }, [checked]);
13600
13905
  const handleCheckedChange = (newChecked) => {
13601
13906
  setIsChecked(newChecked);
13602
- _optionalChain([onCheckedChange, 'optionalCall', _260 => _260(newChecked)]);
13907
+ _optionalChain([onCheckedChange, 'optionalCall', _263 => _263(newChecked)]);
13603
13908
  };
13604
13909
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13605
13910
  SwitchPrimitives.Root,
@@ -13675,7 +13980,7 @@ function TagsInput({
13675
13980
  badgeClassName,
13676
13981
  label
13677
13982
  }) {
13678
- const [inputValue, setInputValue] = React48.useState("");
13983
+ const [inputValue, setInputValue] = React49.useState("");
13679
13984
  const handleAddTag = () => {
13680
13985
  const trimmedValue = inputValue.trim();
13681
13986
  if (!trimmedValue) return;
@@ -13781,19 +14086,19 @@ function TagsManager({
13781
14086
  disabled = false,
13782
14087
  className
13783
14088
  }) {
13784
- const [open, setOpen] = React49.useState(false);
13785
- const [search, setSearch] = React49.useState("");
13786
- const [editingId, setEditingId] = React49.useState(null);
13787
- const [editingName, setEditingName] = React49.useState("");
13788
- const editInputRef = React49.useRef(null);
13789
- const inputRef = React49.useRef(null);
13790
- const containerRef = React49.useRef(null);
14089
+ const [open, setOpen] = React50.useState(false);
14090
+ const [search, setSearch] = React50.useState("");
14091
+ const [editingId, setEditingId] = React50.useState(null);
14092
+ const [editingName, setEditingName] = React50.useState("");
14093
+ const editInputRef = React50.useRef(null);
14094
+ const inputRef = React50.useRef(null);
14095
+ const containerRef = React50.useRef(null);
13791
14096
  const selectedTags = tags.filter((t) => selectedIds.includes(t.id));
13792
14097
  const filtered = tags.filter(
13793
14098
  (t) => t.name.toLowerCase().includes(search.toLowerCase())
13794
14099
  );
13795
14100
  const showCreateOption = onCreateTag && search.trim() && !tags.some((t) => t.name.toLowerCase() === search.trim().toLowerCase());
13796
- const toggleTag = React49.useCallback(
14101
+ const toggleTag = React50.useCallback(
13797
14102
  (id) => {
13798
14103
  if (selectedIds.includes(id)) {
13799
14104
  onChange(selectedIds.filter((i) => i !== id));
@@ -13803,32 +14108,32 @@ function TagsManager({
13803
14108
  },
13804
14109
  [selectedIds, onChange]
13805
14110
  );
13806
- const handleCreate = React49.useCallback(async () => {
14111
+ const handleCreate = React50.useCallback(async () => {
13807
14112
  if (!onCreateTag) return;
13808
14113
  const name = search.trim();
13809
14114
  if (!name) return;
13810
14115
  const result = await onCreateTag(name);
13811
- if (_optionalChain([result, 'optionalAccess', _261 => _261.id])) {
14116
+ if (_optionalChain([result, 'optionalAccess', _264 => _264.id])) {
13812
14117
  onChange([...selectedIds, result.id]);
13813
14118
  setSearch("");
13814
14119
  }
13815
14120
  }, [search, onCreateTag, selectedIds, onChange]);
13816
- const startEdit = React49.useCallback((id, name) => {
14121
+ const startEdit = React50.useCallback((id, name) => {
13817
14122
  setEditingId(id);
13818
14123
  setEditingName(name);
13819
- setTimeout(() => _optionalChain([editInputRef, 'access', _262 => _262.current, 'optionalAccess', _263 => _263.focus, 'call', _264 => _264()]), 0);
14124
+ setTimeout(() => _optionalChain([editInputRef, 'access', _265 => _265.current, 'optionalAccess', _266 => _266.focus, 'call', _267 => _267()]), 0);
13820
14125
  }, []);
13821
- const confirmEdit = React49.useCallback(async () => {
14126
+ const confirmEdit = React50.useCallback(async () => {
13822
14127
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
13823
14128
  await onUpdateTag(editingId, editingName.trim());
13824
14129
  setEditingId(null);
13825
14130
  setEditingName("");
13826
14131
  }, [editingId, editingName, onUpdateTag]);
13827
- const cancelEdit = React49.useCallback(() => {
14132
+ const cancelEdit = React50.useCallback(() => {
13828
14133
  setEditingId(null);
13829
14134
  setEditingName("");
13830
14135
  }, []);
13831
- const handleDelete = React49.useCallback(
14136
+ const handleDelete = React50.useCallback(
13832
14137
  async (id) => {
13833
14138
  if (!onDeleteTag) return;
13834
14139
  await onDeleteTag(id);
@@ -13838,17 +14143,17 @@ function TagsManager({
13838
14143
  },
13839
14144
  [onDeleteTag, selectedIds, onChange]
13840
14145
  );
13841
- const handleClearAll = React49.useCallback(
14146
+ const handleClearAll = React50.useCallback(
13842
14147
  (e) => {
13843
14148
  e.stopPropagation();
13844
14149
  onChange([]);
13845
14150
  setSearch("");
13846
- _optionalChain([inputRef, 'access', _265 => _265.current, 'optionalAccess', _266 => _266.focus, 'call', _267 => _267()]);
14151
+ _optionalChain([inputRef, 'access', _268 => _268.current, 'optionalAccess', _269 => _269.focus, 'call', _270 => _270()]);
13847
14152
  },
13848
14153
  [onChange]
13849
14154
  );
13850
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.FieldWrapper, { label, className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative", ref: containerRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive2.Root, { open, onOpenChange: setOpen, children: [
13851
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive2.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
14155
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.FieldWrapper, { label, className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative", ref: containerRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive3.Root, { open, onOpenChange: setOpen, children: [
14156
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive3.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13852
14157
  "label",
13853
14158
  {
13854
14159
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -13928,7 +14233,7 @@ function TagsManager({
13928
14233
  }
13929
14234
  ) }),
13930
14235
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13931
- PopoverPrimitive2.Content,
14236
+ PopoverPrimitive3.Content,
13932
14237
  {
13933
14238
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
13934
14239
  "z-50 w-[var(--radix-popover-trigger-width)] mt-1",
@@ -13942,10 +14247,10 @@ function TagsManager({
13942
14247
  align: "start",
13943
14248
  onOpenAutoFocus: (e) => {
13944
14249
  e.preventDefault();
13945
- _optionalChain([inputRef, 'access', _268 => _268.current, 'optionalAccess', _269 => _269.focus, 'call', _270 => _270()]);
14250
+ _optionalChain([inputRef, 'access', _271 => _271.current, 'optionalAccess', _272 => _272.focus, 'call', _273 => _273()]);
13946
14251
  },
13947
14252
  onInteractOutside: (e) => {
13948
- if (_optionalChain([containerRef, 'access', _271 => _271.current, 'optionalAccess', _272 => _272.contains, 'call', _273 => _273(e.target)])) {
14253
+ if (_optionalChain([containerRef, 'access', _274 => _274.current, 'optionalAccess', _275 => _275.contains, 'call', _276 => _276(e.target)])) {
13949
14254
  e.preventDefault();
13950
14255
  }
13951
14256
  },
@@ -14134,11 +14439,11 @@ function TagsManager({
14134
14439
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
14135
14440
 
14136
14441
 
14137
- var Textarea = React50.forwardRef(
14442
+ var Textarea = React51.forwardRef(
14138
14443
  ({ className, invalid = false, label, error, endIcon, endIconAsButton = false, endIconButtonProps, startIcon, hideBorder = false, ...props }, ref) => {
14139
14444
  const isInvalid = invalid || !!error;
14140
14445
  const hasAdornment = !!endIcon || !!startIcon;
14141
- const reactId = React50.useId();
14446
+ const reactId = React51.useId();
14142
14447
  const fieldId = _nullishCoalesce(props.id, () => ( reactId));
14143
14448
  if (!hasAdornment) {
14144
14449
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.FieldWrapper, { label, error, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -14230,7 +14535,7 @@ var Textarea = React50.forwardRef(
14230
14535
  "button",
14231
14536
  {
14232
14537
  type: "button",
14233
- "aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _274 => _274["aria-label"]]), () => ( "Submit")),
14538
+ "aria-label": _nullishCoalesce(_optionalChain([endIconButtonProps, 'optionalAccess', _277 => _277["aria-label"]]), () => ( "Submit")),
14234
14539
  ...endIconButtonProps,
14235
14540
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
14236
14541
  // `h-6` matches the textarea's `leading-6` line box so the icon's
@@ -14244,7 +14549,7 @@ var Textarea = React50.forwardRef(
14244
14549
  "cursor-pointer hover:text-ods-text-primary",
14245
14550
  "focus-visible:outline-none focus-visible:text-ods-accent",
14246
14551
  "disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:text-ods-text-secondary",
14247
- _optionalChain([endIconButtonProps, 'optionalAccess', _275 => _275.className])
14552
+ _optionalChain([endIconButtonProps, 'optionalAccess', _278 => _278.className])
14248
14553
  ),
14249
14554
  children: endIcon
14250
14555
  }
@@ -14277,7 +14582,7 @@ var _reactalertdialog = require('@radix-ui/react-alert-dialog'); var AlertDialog
14277
14582
  var AlertDialog = AlertDialogPrimitive.Root;
14278
14583
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
14279
14584
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
14280
- var AlertDialogOverlay = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14585
+ var AlertDialogOverlay = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14281
14586
  AlertDialogPrimitive.Overlay,
14282
14587
  {
14283
14588
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -14289,7 +14594,7 @@ var AlertDialogOverlay = React51.forwardRef(({ className, ...props }, ref) => /*
14289
14594
  }
14290
14595
  ));
14291
14596
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
14292
- var AlertDialogContent = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, AlertDialogPortal, { children: [
14597
+ var AlertDialogContent = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, AlertDialogPortal, { children: [
14293
14598
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AlertDialogOverlay, {}),
14294
14599
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14295
14600
  AlertDialogPrimitive.Content,
@@ -14332,7 +14637,7 @@ var AlertDialogFooter = ({
14332
14637
  }
14333
14638
  );
14334
14639
  AlertDialogFooter.displayName = "AlertDialogFooter";
14335
- var AlertDialogTitle = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14640
+ var AlertDialogTitle = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14336
14641
  AlertDialogPrimitive.Title,
14337
14642
  {
14338
14643
  ref,
@@ -14341,7 +14646,7 @@ var AlertDialogTitle = React51.forwardRef(({ className, ...props }, ref) => /* @
14341
14646
  }
14342
14647
  ));
14343
14648
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
14344
- var AlertDialogDescription = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14649
+ var AlertDialogDescription = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14345
14650
  AlertDialogPrimitive.Description,
14346
14651
  {
14347
14652
  ref,
@@ -14350,7 +14655,7 @@ var AlertDialogDescription = React51.forwardRef(({ className, ...props }, ref) =
14350
14655
  }
14351
14656
  ));
14352
14657
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
14353
- var AlertDialogAction = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14658
+ var AlertDialogAction = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14354
14659
  AlertDialogPrimitive.Action,
14355
14660
  {
14356
14661
  ref,
@@ -14359,7 +14664,7 @@ var AlertDialogAction = React51.forwardRef(({ className, ...props }, ref) => /*
14359
14664
  }
14360
14665
  ));
14361
14666
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
14362
- var AlertDialogCancel = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14667
+ var AlertDialogCancel = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14363
14668
  AlertDialogPrimitive.Cancel,
14364
14669
  {
14365
14670
  ref,
@@ -14387,7 +14692,7 @@ var Dialog = DialogPrimitive.Root;
14387
14692
  var DialogTrigger = DialogPrimitive.Trigger;
14388
14693
  var DialogPortal = DialogPrimitive.Portal;
14389
14694
  var DialogClose = DialogPrimitive.Close;
14390
- var DialogOverlay = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14695
+ var DialogOverlay = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14391
14696
  DialogPrimitive.Overlay,
14392
14697
  {
14393
14698
  ref,
@@ -14399,7 +14704,7 @@ var DialogOverlay = React52.forwardRef(({ className, ...props }, ref) => /* @__P
14399
14704
  }
14400
14705
  ));
14401
14706
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
14402
- var DialogContent = React52.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DialogPortal, { children: [
14707
+ var DialogContent = React53.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DialogPortal, { children: [
14403
14708
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogOverlay, {}),
14404
14709
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
14405
14710
  DialogPrimitive.Content,
@@ -14425,7 +14730,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.
14425
14730
  DialogHeader.displayName = "DialogHeader";
14426
14731
  var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col-reverse md:flex-row md:justify-end md:space-x-2", className), ...props });
14427
14732
  DialogFooter.displayName = "DialogFooter";
14428
- var DialogTitle = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14733
+ var DialogTitle = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14429
14734
  DialogPrimitive.Title,
14430
14735
  {
14431
14736
  ref,
@@ -14434,7 +14739,7 @@ var DialogTitle = React52.forwardRef(({ className, ...props }, ref) => /* @__PUR
14434
14739
  }
14435
14740
  ));
14436
14741
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
14437
- var DialogDescription = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive.Description, { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-sm text-muted-foreground", className), ...props }));
14742
+ var DialogDescription = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive.Description, { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-sm text-muted-foreground", className), ...props }));
14438
14743
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
14439
14744
 
14440
14745
  // src/components/ui/modal.tsx
@@ -14442,7 +14747,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
14442
14747
 
14443
14748
 
14444
14749
 
14445
- var Modal2 = React53.forwardRef(
14750
+ var Modal2 = React54.forwardRef(
14446
14751
  ({ isOpen, onClose, children, className }, ref) => {
14447
14752
  _react.useEffect.call(void 0, () => {
14448
14753
  const handleKeyDown = (event) => {
@@ -14486,11 +14791,11 @@ var Modal2 = React53.forwardRef(
14486
14791
  }
14487
14792
  );
14488
14793
  Modal2.displayName = "Modal";
14489
- var ModalContent2 = React53.forwardRef(
14794
+ var ModalContent2 = React54.forwardRef(
14490
14795
  ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "overflow-y-auto min-h-0 flex-1", className), children })
14491
14796
  );
14492
14797
  ModalContent2.displayName = "ModalContent";
14493
- var ModalHeader2 = React53.forwardRef(
14798
+ var ModalHeader2 = React54.forwardRef(
14494
14799
  ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14495
14800
  "div",
14496
14801
  {
@@ -14501,7 +14806,7 @@ var ModalHeader2 = React53.forwardRef(
14501
14806
  )
14502
14807
  );
14503
14808
  ModalHeader2.displayName = "ModalHeader";
14504
- var ModalTitle2 = React53.forwardRef(
14809
+ var ModalTitle2 = React54.forwardRef(
14505
14810
  ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14506
14811
  "h2",
14507
14812
  {
@@ -14512,7 +14817,7 @@ var ModalTitle2 = React53.forwardRef(
14512
14817
  )
14513
14818
  );
14514
14819
  ModalTitle2.displayName = "ModalTitle";
14515
- var ModalFooter2 = React53.forwardRef(
14820
+ var ModalFooter2 = React54.forwardRef(
14516
14821
  ({ children, className }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14517
14822
  "div",
14518
14823
  {
@@ -14529,7 +14834,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
14529
14834
 
14530
14835
  var _reactseparator = require('@radix-ui/react-separator'); var SeparatorPrimitive = _interopRequireWildcard(_reactseparator);
14531
14836
 
14532
- var Separator2 = React54.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14837
+ var Separator2 = React55.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14533
14838
  SeparatorPrimitive.Root,
14534
14839
  {
14535
14840
  ref,
@@ -14552,7 +14857,7 @@ var Sheet = SheetPrimitive.Root;
14552
14857
  var SheetTrigger = SheetPrimitive.Trigger;
14553
14858
  var SheetClose = SheetPrimitive.Close;
14554
14859
  var SheetPortal = SheetPrimitive.Portal;
14555
- var SheetOverlay = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14860
+ var SheetOverlay = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14556
14861
  SheetPrimitive.Overlay,
14557
14862
  {
14558
14863
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -14580,7 +14885,7 @@ var sheetVariants = _classvarianceauthority.cva.call(void 0,
14580
14885
  }
14581
14886
  }
14582
14887
  );
14583
- var SheetContent = React55.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, SheetPortal, { children: [
14888
+ var SheetContent = React56.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, SheetPortal, { children: [
14584
14889
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SheetOverlay, {}),
14585
14890
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
14586
14891
  SheetPrimitive.Content,
@@ -14627,7 +14932,7 @@ var SheetFooter = ({
14627
14932
  }
14628
14933
  );
14629
14934
  SheetFooter.displayName = "SheetFooter";
14630
- var SheetTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14935
+ var SheetTitle = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14631
14936
  SheetPrimitive.Title,
14632
14937
  {
14633
14938
  ref,
@@ -14636,7 +14941,7 @@ var SheetTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE
14636
14941
  }
14637
14942
  ));
14638
14943
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
14639
- var SheetDescription = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14944
+ var SheetDescription = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14640
14945
  SheetPrimitive.Description,
14641
14946
  {
14642
14947
  ref,
@@ -14657,7 +14962,7 @@ var Drawer = DialogPrimitive2.Root;
14657
14962
  var DrawerTrigger = DialogPrimitive2.Trigger;
14658
14963
  var DrawerClose = DialogPrimitive2.Close;
14659
14964
  var DrawerPortal = DialogPrimitive2.Portal;
14660
- var DrawerOverlay = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14965
+ var DrawerOverlay = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14661
14966
  DialogPrimitive2.Overlay,
14662
14967
  {
14663
14968
  ref,
@@ -14753,7 +15058,7 @@ function useResizableSize({
14753
15058
  defaultSize,
14754
15059
  storageKey
14755
15060
  }) {
14756
- const clampToViewport = React56.useCallback(
15061
+ const clampToViewport = React57.useCallback(
14757
15062
  (value) => {
14758
15063
  const vp = viewportSize(isHorizontal);
14759
15064
  const effectiveMax = vp > 0 ? Math.min(maxSize, vp - 80) : maxSize;
@@ -14761,7 +15066,7 @@ function useResizableSize({
14761
15066
  },
14762
15067
  [isHorizontal, minSize, maxSize]
14763
15068
  );
14764
- const readInitial = React56.useCallback(() => {
15069
+ const readInitial = React57.useCallback(() => {
14765
15070
  if (!enabled) return defaultSize;
14766
15071
  if (typeof window === "undefined") return defaultSize;
14767
15072
  if (!storageKey) return clampToViewport(defaultSize);
@@ -14775,19 +15080,19 @@ function useResizableSize({
14775
15080
  return clampToViewport(defaultSize);
14776
15081
  }
14777
15082
  }, [enabled, storageKey, defaultSize, clampToViewport]);
14778
- const [size, setSizeRaw] = React56.useState(readInitial);
14779
- const setSize = React56.useCallback(
15083
+ const [size, setSizeRaw] = React57.useState(readInitial);
15084
+ const setSize = React57.useCallback(
14780
15085
  (next) => setSizeRaw(clampToViewport(next)),
14781
15086
  [clampToViewport]
14782
15087
  );
14783
- React56.useEffect(() => {
15088
+ React57.useEffect(() => {
14784
15089
  if (!enabled || !storageKey || typeof window === "undefined") return;
14785
15090
  try {
14786
15091
  window.localStorage.setItem(storageKey, String(Math.round(size)));
14787
15092
  } catch (e17) {
14788
15093
  }
14789
15094
  }, [enabled, size, storageKey]);
14790
- React56.useEffect(() => {
15095
+ React57.useEffect(() => {
14791
15096
  if (!enabled || typeof window === "undefined") return;
14792
15097
  const onResize = () => setSizeRaw((prev) => clampToViewport(prev));
14793
15098
  window.addEventListener("resize", onResize);
@@ -14804,7 +15109,7 @@ function DrawerResizeHandle({
14804
15109
  ariaLabel
14805
15110
  }) {
14806
15111
  const isHorizontal = HORIZONTAL_SIDES.has(side);
14807
- const startRef = React56.useRef(
15112
+ const startRef = React57.useRef(
14808
15113
  null
14809
15114
  );
14810
15115
  const direction = side === "right" || side === "bottom" ? -1 : 1;
@@ -14896,7 +15201,7 @@ function DrawerResizeHandle({
14896
15201
  }
14897
15202
  );
14898
15203
  }
14899
- var DrawerContent = React56.forwardRef(
15204
+ var DrawerContent = React57.forwardRef(
14900
15205
  ({
14901
15206
  side = "right",
14902
15207
  flush = false,
@@ -14920,8 +15225,8 @@ var DrawerContent = React56.forwardRef(
14920
15225
  const isHorizontal = HORIZONTAL_SIDES.has(resolvedSide);
14921
15226
  const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
14922
15227
  const headerHeight = _chunk27IO7V3Pcjs.useHeaderHeight.call(void 0, );
14923
- const [isMobile, setIsMobile] = React56.useState(false);
14924
- React56.useEffect(() => {
15228
+ const [isMobile, setIsMobile] = React57.useState(false);
15229
+ React57.useEffect(() => {
14925
15230
  if (typeof window === "undefined") return;
14926
15231
  const mq = window.matchMedia(`(max-width: ${mobileBreakpoint - 1}px)`);
14927
15232
  const update = () => setIsMobile(mq.matches);
@@ -14992,7 +15297,7 @@ var DrawerHeader = ({
14992
15297
  }
14993
15298
  );
14994
15299
  DrawerHeader.displayName = "DrawerHeader";
14995
- var DrawerTitle = React56.forwardRef(({ className, children, actions, hideClose, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
15300
+ var DrawerTitle = React57.forwardRef(({ className, children, actions, hideClose, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
14996
15301
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14997
15302
  DialogPrimitive2.Title,
14998
15303
  {
@@ -15012,7 +15317,7 @@ var DrawerTitle = React56.forwardRef(({ className, children, actions, hideClose,
15012
15317
  ] })
15013
15318
  ] }));
15014
15319
  DrawerTitle.displayName = "DrawerTitle";
15015
- var DrawerDescription = React56.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15320
+ var DrawerDescription = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15016
15321
  DialogPrimitive2.Description,
15017
15322
  {
15018
15323
  ref,
@@ -15054,9 +15359,9 @@ var _reactaccordion = require('@radix-ui/react-accordion'); var AccordionPrimiti
15054
15359
 
15055
15360
 
15056
15361
  var Accordion = AccordionPrimitive.Root;
15057
- var AccordionItem = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AccordionPrimitive.Item, { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "border-b", className), ...props }));
15362
+ var AccordionItem = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AccordionPrimitive.Item, { ref, className: _chunkFIG2RKZFcjs.cn.call(void 0, "border-b", className), ...props }));
15058
15363
  AccordionItem.displayName = "AccordionItem";
15059
- var AccordionTrigger = React57.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15364
+ var AccordionTrigger = React58.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15060
15365
  AccordionPrimitive.Trigger,
15061
15366
  {
15062
15367
  ref,
@@ -15072,7 +15377,7 @@ var AccordionTrigger = React57.forwardRef(({ className, children, ...props }, re
15072
15377
  }
15073
15378
  ) }));
15074
15379
  AccordionTrigger.displayName = "AccordionTrigger";
15075
- var AccordionContent = React57.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15380
+ var AccordionContent = React58.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15076
15381
  AccordionPrimitive.Content,
15077
15382
  {
15078
15383
  ref,
@@ -15092,9 +15397,9 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
15092
15397
  var _reactslot = require('@radix-ui/react-slot');
15093
15398
 
15094
15399
 
15095
- var Breadcrumb = React58.forwardRef(({ ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { ref, "aria-label": "breadcrumb", ...props }));
15400
+ var Breadcrumb = React59.forwardRef(({ ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { ref, "aria-label": "breadcrumb", ...props }));
15096
15401
  Breadcrumb.displayName = "Breadcrumb";
15097
- var BreadcrumbList = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15402
+ var BreadcrumbList = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15098
15403
  "ol",
15099
15404
  {
15100
15405
  ref,
@@ -15106,7 +15411,7 @@ var BreadcrumbList = React58.forwardRef(({ className, ...props }, ref) => /* @__
15106
15411
  }
15107
15412
  ));
15108
15413
  BreadcrumbList.displayName = "BreadcrumbList";
15109
- var BreadcrumbItem = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15414
+ var BreadcrumbItem = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15110
15415
  "li",
15111
15416
  {
15112
15417
  ref,
@@ -15115,7 +15420,7 @@ var BreadcrumbItem = React58.forwardRef(({ className, ...props }, ref) => /* @__
15115
15420
  }
15116
15421
  ));
15117
15422
  BreadcrumbItem.displayName = "BreadcrumbItem";
15118
- var BreadcrumbLink = React58.forwardRef(({ asChild, className, ...props }, ref) => {
15423
+ var BreadcrumbLink = React59.forwardRef(({ asChild, className, ...props }, ref) => {
15119
15424
  const Comp = asChild ? _reactslot.Slot : "a";
15120
15425
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15121
15426
  Comp,
@@ -15127,7 +15432,7 @@ var BreadcrumbLink = React58.forwardRef(({ asChild, className, ...props }, ref)
15127
15432
  );
15128
15433
  });
15129
15434
  BreadcrumbLink.displayName = "BreadcrumbLink";
15130
- var BreadcrumbPage = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15435
+ var BreadcrumbPage = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15131
15436
  "span",
15132
15437
  {
15133
15438
  ref,
@@ -15183,7 +15488,7 @@ var MenubarGroup = MenubarPrimitive.Group;
15183
15488
  var MenubarPortal = MenubarPrimitive.Portal;
15184
15489
  var MenubarSub = MenubarPrimitive.Sub;
15185
15490
  var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
15186
- var Menubar = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15491
+ var Menubar = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15187
15492
  MenubarPrimitive.Root,
15188
15493
  {
15189
15494
  ref,
@@ -15195,7 +15500,7 @@ var Menubar = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__
15195
15500
  }
15196
15501
  ));
15197
15502
  Menubar.displayName = MenubarPrimitive.Root.displayName;
15198
- var MenubarTrigger = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15503
+ var MenubarTrigger = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15199
15504
  MenubarPrimitive.Trigger,
15200
15505
  {
15201
15506
  ref,
@@ -15207,7 +15512,7 @@ var MenubarTrigger = React59.forwardRef(({ className, ...props }, ref) => /* @__
15207
15512
  }
15208
15513
  ));
15209
15514
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
15210
- var MenubarSubTrigger = React59.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15515
+ var MenubarSubTrigger = React60.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15211
15516
  MenubarPrimitive.SubTrigger,
15212
15517
  {
15213
15518
  ref,
@@ -15224,7 +15529,7 @@ var MenubarSubTrigger = React59.forwardRef(({ className, inset, children, ...pro
15224
15529
  }
15225
15530
  ));
15226
15531
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
15227
- var MenubarSubContent = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15532
+ var MenubarSubContent = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15228
15533
  MenubarPrimitive.SubContent,
15229
15534
  {
15230
15535
  ref,
@@ -15236,7 +15541,7 @@ var MenubarSubContent = React59.forwardRef(({ className, ...props }, ref) => /*
15236
15541
  }
15237
15542
  ));
15238
15543
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
15239
- var MenubarContent = React59.forwardRef(
15544
+ var MenubarContent = React60.forwardRef(
15240
15545
  ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenubarPrimitive.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15241
15546
  MenubarPrimitive.Content,
15242
15547
  {
@@ -15253,7 +15558,7 @@ var MenubarContent = React59.forwardRef(
15253
15558
  ) })
15254
15559
  );
15255
15560
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
15256
- var MenubarItem = React59.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15561
+ var MenubarItem = React60.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15257
15562
  MenubarPrimitive.Item,
15258
15563
  {
15259
15564
  ref,
@@ -15266,7 +15571,7 @@ var MenubarItem = React59.forwardRef(({ className, inset, ...props }, ref) => /*
15266
15571
  }
15267
15572
  ));
15268
15573
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
15269
- var MenubarCheckboxItem = React59.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15574
+ var MenubarCheckboxItem = React60.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15270
15575
  MenubarPrimitive.CheckboxItem,
15271
15576
  {
15272
15577
  ref,
@@ -15283,7 +15588,7 @@ var MenubarCheckboxItem = React59.forwardRef(({ className, children, checked, ..
15283
15588
  }
15284
15589
  ));
15285
15590
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
15286
- var MenubarRadioItem = React59.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15591
+ var MenubarRadioItem = React60.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15287
15592
  MenubarPrimitive.RadioItem,
15288
15593
  {
15289
15594
  ref,
@@ -15299,7 +15604,7 @@ var MenubarRadioItem = React59.forwardRef(({ className, children, ...props }, re
15299
15604
  }
15300
15605
  ));
15301
15606
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
15302
- var MenubarLabel = React59.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15607
+ var MenubarLabel = React60.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15303
15608
  MenubarPrimitive.Label,
15304
15609
  {
15305
15610
  ref,
@@ -15312,7 +15617,7 @@ var MenubarLabel = React59.forwardRef(({ className, inset, ...props }, ref) => /
15312
15617
  }
15313
15618
  ));
15314
15619
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
15315
- var MenubarSeparator = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15620
+ var MenubarSeparator = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15316
15621
  MenubarPrimitive.Separator,
15317
15622
  {
15318
15623
  ref,
@@ -15345,7 +15650,7 @@ var _reactnavigationmenu = require('@radix-ui/react-navigation-menu'); var Navig
15345
15650
 
15346
15651
 
15347
15652
 
15348
- var NavigationMenu = React60.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15653
+ var NavigationMenu = React61.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15349
15654
  NavigationMenuPrimitive.Root,
15350
15655
  {
15351
15656
  ref,
@@ -15361,7 +15666,7 @@ var NavigationMenu = React60.forwardRef(({ className, children, ...props }, ref)
15361
15666
  }
15362
15667
  ));
15363
15668
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
15364
- var NavigationMenuList = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15669
+ var NavigationMenuList = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15365
15670
  NavigationMenuPrimitive.List,
15366
15671
  {
15367
15672
  ref,
@@ -15377,7 +15682,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
15377
15682
  var navigationMenuTriggerStyle = _classvarianceauthority.cva.call(void 0,
15378
15683
  "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
15379
15684
  );
15380
- var NavigationMenuTrigger = React60.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15685
+ var NavigationMenuTrigger = React61.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
15381
15686
  NavigationMenuPrimitive.Trigger,
15382
15687
  {
15383
15688
  ref,
@@ -15397,7 +15702,7 @@ var NavigationMenuTrigger = React60.forwardRef(({ className, children, ...props
15397
15702
  }
15398
15703
  ));
15399
15704
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
15400
- var NavigationMenuContent = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15705
+ var NavigationMenuContent = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15401
15706
  NavigationMenuPrimitive.Content,
15402
15707
  {
15403
15708
  ref,
@@ -15410,7 +15715,7 @@ var NavigationMenuContent = React60.forwardRef(({ className, ...props }, ref) =>
15410
15715
  ));
15411
15716
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
15412
15717
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
15413
- var NavigationMenuViewport = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15718
+ var NavigationMenuViewport = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15414
15719
  NavigationMenuPrimitive.Viewport,
15415
15720
  {
15416
15721
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -15422,7 +15727,7 @@ var NavigationMenuViewport = React60.forwardRef(({ className, ...props }, ref) =
15422
15727
  }
15423
15728
  ) }));
15424
15729
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
15425
- var NavigationMenuIndicator = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15730
+ var NavigationMenuIndicator = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15426
15731
  NavigationMenuPrimitive.Indicator,
15427
15732
  {
15428
15733
  ref,
@@ -15481,19 +15786,19 @@ function TabNavigation({
15481
15786
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
15482
15787
  const getInitialTab = () => {
15483
15788
  if (isUrlSyncEnabled) {
15484
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _276 => _276.get, 'call', _277 => _277(paramName)]) || "";
15789
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _279 => _279.get, 'call', _280 => _280(paramName)]) || "";
15485
15790
  if (validTabIds.has(fromUrl)) {
15486
15791
  return fromUrl;
15487
15792
  }
15488
15793
  }
15489
- return defaultTab || _optionalChain([tabs, 'access', _278 => _278[0], 'optionalAccess', _279 => _279.id]) || "";
15794
+ return defaultTab || _optionalChain([tabs, 'access', _281 => _281[0], 'optionalAccess', _282 => _282.id]) || "";
15490
15795
  };
15491
15796
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
15492
15797
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
15493
15798
  _react.useEffect.call(void 0, () => {
15494
15799
  if (!isUrlSyncEnabled) return;
15495
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _280 => _280.get, 'call', _281 => _281(paramName)]) || "";
15496
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _282 => _282[0], 'optionalAccess', _283 => _283.id]) || "";
15800
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _283 => _283.get, 'call', _284 => _284(paramName)]) || "";
15801
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _285 => _285[0], 'optionalAccess', _286 => _286.id]) || "";
15497
15802
  if (nextTab !== internalActiveTab) {
15498
15803
  setInternalActiveTab(nextTab);
15499
15804
  }
@@ -15501,13 +15806,13 @@ function TabNavigation({
15501
15806
  const handleTabChange = (tabId) => {
15502
15807
  if (isUrlSyncEnabled) {
15503
15808
  setInternalActiveTab(tabId);
15504
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _284 => _284.toString, 'call', _285 => _285()]));
15809
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _287 => _287.toString, 'call', _288 => _288()]));
15505
15810
  params.set(paramName, tabId);
15506
15811
  const method = replaceState ? "replace" : "push";
15507
15812
  router[method](`${pathname}?${params.toString()}`);
15508
- _optionalChain([controlledOnTabChange, 'optionalCall', _286 => _286(tabId)]);
15813
+ _optionalChain([controlledOnTabChange, 'optionalCall', _289 => _289(tabId)]);
15509
15814
  } else {
15510
- _optionalChain([controlledOnTabChange, 'optionalCall', _287 => _287(tabId)]);
15815
+ _optionalChain([controlledOnTabChange, 'optionalCall', _290 => _290(tabId)]);
15511
15816
  }
15512
15817
  };
15513
15818
  const scrollRef = _react.useRef.call(void 0, null);
@@ -15595,7 +15900,7 @@ function TabNavigation({
15595
15900
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
15596
15901
  var getTabComponent = (tabs, tabId) => {
15597
15902
  const tab = getTabById(tabs, tabId);
15598
- return _optionalChain([tab, 'optionalAccess', _288 => _288.component]) || null;
15903
+ return _optionalChain([tab, 'optionalAccess', _291 => _291.component]) || null;
15599
15904
  };
15600
15905
 
15601
15906
  // src/components/ui/alert.tsx
@@ -15617,7 +15922,7 @@ var alertVariants = _classvarianceauthority.cva.call(void 0,
15617
15922
  }
15618
15923
  }
15619
15924
  );
15620
- var Alert = React62.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15925
+ var Alert = React63.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15621
15926
  "div",
15622
15927
  {
15623
15928
  ref,
@@ -15627,7 +15932,7 @@ var Alert = React62.forwardRef(({ className, variant, ...props }, ref) => /* @__
15627
15932
  }
15628
15933
  ));
15629
15934
  Alert.displayName = "Alert";
15630
- var AlertTitle = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15935
+ var AlertTitle = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15631
15936
  "h5",
15632
15937
  {
15633
15938
  ref,
@@ -15636,7 +15941,7 @@ var AlertTitle = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE
15636
15941
  }
15637
15942
  ));
15638
15943
  AlertTitle.displayName = "AlertTitle";
15639
- var AlertDescription = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15944
+ var AlertDescription = React63.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15640
15945
  "div",
15641
15946
  {
15642
15947
  ref,
@@ -15651,7 +15956,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
15651
15956
 
15652
15957
  var _reactprogress = require('@radix-ui/react-progress'); var ProgressPrimitive = _interopRequireWildcard(_reactprogress);
15653
15958
 
15654
- var Progress = React63.forwardRef(({ className, value, indicatorClassName, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15959
+ var Progress = React64.forwardRef(({ className, value, indicatorClassName, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15655
15960
  ProgressPrimitive.Root,
15656
15961
  {
15657
15962
  ref,
@@ -15846,13 +16151,13 @@ var SocialEmbedCache = class _SocialEmbedCache {
15846
16151
  errorData = await response.json();
15847
16152
  } catch (e19) {
15848
16153
  }
15849
- if (response.status === 404 && _optionalChain([errorData, 'optionalAccess', _289 => _289.error]) && _optionalChain([errorData, 'optionalAccess', _290 => _290.message])) {
16154
+ if (response.status === 404 && _optionalChain([errorData, 'optionalAccess', _292 => _292.error]) && _optionalChain([errorData, 'optionalAccess', _293 => _293.message])) {
15850
16155
  console.log(`\u{1F6AB} [${platformName} Proxy] Content unavailable: ${errorData.message}`);
15851
16156
  onError(errorData.message);
15852
16157
  onLoading(false);
15853
16158
  return;
15854
16159
  }
15855
- if (_optionalChain([errorData, 'optionalAccess', _291 => _291.error])) {
16160
+ if (_optionalChain([errorData, 'optionalAccess', _294 => _294.error])) {
15856
16161
  throw new Error(`Server error: ${errorData.error}`);
15857
16162
  }
15858
16163
  throw new Error(`Server proxy failed: ${response.status}`);
@@ -16304,7 +16609,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16304
16609
  apiEndpoint: redditProxyUrl,
16305
16610
  dataValidator: validateRedditData,
16306
16611
  onDataUpdate: (data) => {
16307
- if (_optionalChain([data, 'access', _292 => _292[0], 'optionalAccess', _293 => _293.data, 'optionalAccess', _294 => _294.children, 'optionalAccess', _295 => _295[0], 'optionalAccess', _296 => _296.data])) {
16612
+ if (_optionalChain([data, 'access', _295 => _295[0], 'optionalAccess', _296 => _296.data, 'optionalAccess', _297 => _297.children, 'optionalAccess', _298 => _298[0], 'optionalAccess', _299 => _299.data])) {
16308
16613
  setRedditData(data[0].data.children[0].data);
16309
16614
  }
16310
16615
  },
@@ -16375,11 +16680,11 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16375
16680
  gallery_data: redditData.gallery_data,
16376
16681
  media_metadata: redditData.media_metadata
16377
16682
  });
16378
- const video = _optionalChain([redditData, 'access', _297 => _297.media, 'optionalAccess', _298 => _298.reddit_video]) || _optionalChain([redditData, 'access', _299 => _299.secure_media, 'optionalAccess', _300 => _300.reddit_video]);
16683
+ const video = _optionalChain([redditData, 'access', _300 => _300.media, 'optionalAccess', _301 => _301.reddit_video]) || _optionalChain([redditData, 'access', _302 => _302.secure_media, 'optionalAccess', _303 => _303.reddit_video]);
16379
16684
  if (video && video.fallback_url) {
16380
16685
  console.log("\u{1F4F9} Found Reddit video:", video);
16381
16686
  let posterUrl = "";
16382
- if (_optionalChain([redditData, 'access', _301 => _301.preview, 'optionalAccess', _302 => _302.images, 'optionalAccess', _303 => _303[0], 'optionalAccess', _304 => _304.source, 'optionalAccess', _305 => _305.url])) {
16687
+ if (_optionalChain([redditData, 'access', _304 => _304.preview, 'optionalAccess', _305 => _305.images, 'optionalAccess', _306 => _306[0], 'optionalAccess', _307 => _307.source, 'optionalAccess', _308 => _308.url])) {
16383
16688
  posterUrl = redditData.preview.images[0].source.url.replace(/&/g, "&");
16384
16689
  console.log("\u2705 Using preview image as video poster:", posterUrl);
16385
16690
  } else {
@@ -16432,7 +16737,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16432
16737
  return media;
16433
16738
  }
16434
16739
  }
16435
- if (_optionalChain([redditData, 'access', _306 => _306.preview, 'optionalAccess', _307 => _307.images, 'optionalAccess', _308 => _308[0]]) && !redditData.is_video) {
16740
+ if (_optionalChain([redditData, 'access', _309 => _309.preview, 'optionalAccess', _310 => _310.images, 'optionalAccess', _311 => _311[0]]) && !redditData.is_video) {
16436
16741
  const imageData = redditData.preview.images[0];
16437
16742
  console.log("\u{1F5BC}\uFE0F Found preview image data:", imageData);
16438
16743
  let source = imageData.source;
@@ -16467,7 +16772,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16467
16772
  } else if (directUrl.match(/\.(mp4|webm|mov|avi)(\?.*)?$/i)) {
16468
16773
  console.log("\u{1F3AC} Found direct video URL");
16469
16774
  let posterUrl = "";
16470
- if (_optionalChain([redditData, 'access', _309 => _309.preview, 'optionalAccess', _310 => _310.images, 'optionalAccess', _311 => _311[0], 'optionalAccess', _312 => _312.source, 'optionalAccess', _313 => _313.url])) {
16775
+ if (_optionalChain([redditData, 'access', _312 => _312.preview, 'optionalAccess', _313 => _313.images, 'optionalAccess', _314 => _314[0], 'optionalAccess', _315 => _315.source, 'optionalAccess', _316 => _316.url])) {
16471
16776
  posterUrl = redditData.preview.images[0].source.url.replace(/&/g, "&");
16472
16777
  }
16473
16778
  media.push({
@@ -16480,7 +16785,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
16480
16785
  });
16481
16786
  } else if (directUrl.includes("imgur.com") && !directUrl.includes(".gifv")) {
16482
16787
  console.log("\u{1F310} Found Imgur link");
16483
- const imgurId = _optionalChain([directUrl, 'access', _314 => _314.match, 'call', _315 => _315(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _316 => _316[1]]);
16788
+ const imgurId = _optionalChain([directUrl, 'access', _317 => _317.match, 'call', _318 => _318(/imgur\.com\/([a-zA-Z0-9]+)/), 'optionalAccess', _319 => _319[1]]);
16484
16789
  if (imgurId && !directUrl.includes("/a/") && !directUrl.includes("/gallery/")) {
16485
16790
  media.push({
16486
16791
  type: "image",
@@ -16629,7 +16934,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
16629
16934
  const [loading, setLoading] = _react.useState.call(void 0, true);
16630
16935
  const [error, setError] = _react.useState.call(void 0, null);
16631
16936
  const initializationDone = _react.useRef.call(void 0, false);
16632
- const extractedTweetId = tweetId || _optionalChain([url, 'access', _317 => _317.match, 'call', _318 => _318(/status\/(\d+)/), 'optionalAccess', _319 => _319[1]]);
16937
+ const extractedTweetId = tweetId || _optionalChain([url, 'access', _320 => _320.match, 'call', _321 => _321(/status\/(\d+)/), 'optionalAccess', _322 => _322[1]]);
16633
16938
  const tweetUrl = url.includes("twitter.com") || url.includes("x.com") ? url : `https://twitter.com/twitter/status/${extractedTweetId}`;
16634
16939
  _react.useEffect.call(void 0, () => {
16635
16940
  if (initializationDone.current) return;
@@ -16696,10 +17001,10 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
16696
17001
  const parser = new DOMParser();
16697
17002
  const doc = parser.parseFromString(tweetData.html, "text/html");
16698
17003
  const blockquote = doc.querySelector("blockquote");
16699
- const fullText = _optionalChain([blockquote, 'optionalAccess', _320 => _320.textContent]) || "";
17004
+ const fullText = _optionalChain([blockquote, 'optionalAccess', _323 => _323.textContent]) || "";
16700
17005
  const tweetText = fullText.replace(/- .* \(@.*\).*$/, "").trim();
16701
17006
  const username = tweetData.author_url ? tweetData.author_url.split("/").pop() : "";
16702
- const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _321 => _321.querySelectorAll, 'call', _322 => _322("a")]) || []).map((link) => ({
17007
+ const links = Array.from(_optionalChain([blockquote, 'optionalAccess', _324 => _324.querySelectorAll, 'call', _325 => _325("a")]) || []).map((link) => ({
16703
17008
  url: link.href,
16704
17009
  text: link.textContent || link.href
16705
17010
  })).filter((link) => !link.url.includes("twitter.com") && !link.url.includes("x.com"));
@@ -16954,7 +17259,7 @@ var OGLinkPreview = ({
16954
17259
  const response = await fetch(endpoint);
16955
17260
  if (response.ok) {
16956
17261
  const data = await response.json();
16957
- if (_optionalChain([data, 'optionalAccess', _323 => _323.title]) && data.title !== "Link Preview Unavailable") {
17262
+ if (_optionalChain([data, 'optionalAccess', _326 => _326.title]) && data.title !== "Link Preview Unavailable") {
16958
17263
  setOgData(data);
16959
17264
  } else {
16960
17265
  setError(true);
@@ -16981,8 +17286,8 @@ var OGLinkPreview = ({
16981
17286
  type: "website",
16982
17287
  favicon: `https://www.google.com/s2/favicons?domain=${domain}&sz=32`
16983
17288
  } : null)));
16984
- const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _324 => _324.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
16985
- const resolvedImageUrl = _optionalChain([effectiveData, 'optionalAccess', _325 => _325.image]) && !imageError ? effectiveData.image : _optionalChain([effectiveData, 'optionalAccess', _326 => _326.originalImage]) && !originalImageError ? effectiveData.originalImage : fallbackImage && !fallbackImageError ? fallbackImage : placeholderImageUrl;
17289
+ const placeholderImageUrl = enablePlaceholder && buildPlaceholderUrl && _optionalChain([effectiveData, 'optionalAccess', _327 => _327.title]) ? buildPlaceholderUrl(effectiveData.title, effectiveData.siteName || domain) : null;
17290
+ const resolvedImageUrl = _optionalChain([effectiveData, 'optionalAccess', _328 => _328.image]) && !imageError ? effectiveData.image : _optionalChain([effectiveData, 'optionalAccess', _329 => _329.originalImage]) && !originalImageError ? effectiveData.originalImage : fallbackImage && !fallbackImageError ? fallbackImage : placeholderImageUrl;
16986
17291
  const hasImage = !!resolvedImageUrl;
16987
17292
  const isFallbackImage = resolvedImageUrl === fallbackImage;
16988
17293
  const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage;
@@ -17228,9 +17533,9 @@ function toFigmaEmbedUrl(url, opts) {
17228
17533
  if (match2) {
17229
17534
  const [, urlType, fileKey, titleSlug, queryString] = match2;
17230
17535
  const isSlides = urlType === "slides" || urlType === "deck";
17231
- const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _327 => _327.slidesView]) === "browse" ? "slides" : "deck" : "design";
17536
+ const embedType = urlType === "proto" ? "proto" : isSlides ? _optionalChain([opts, 'optionalAccess', _330 => _330.slidesView]) === "browse" ? "slides" : "deck" : "design";
17232
17537
  const pathSuffix = titleSlug ? `/${titleSlug}` : "";
17233
- const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _328 => _328.replace, 'call', _329 => _329(/^\?/, "")]) || "");
17538
+ const params = new URLSearchParams(_optionalChain([queryString, 'optionalAccess', _331 => _331.replace, 'call', _332 => _332(/^\?/, "")]) || "");
17234
17539
  if (!params.has("embed-host")) {
17235
17540
  params.set("embed-host", "flamingo");
17236
17541
  }
@@ -17311,7 +17616,7 @@ function EmbedIframe({
17311
17616
  allow,
17312
17617
  referrerPolicy,
17313
17618
  loading,
17314
- allowFullScreen: _optionalChain([allow, 'optionalAccess', _330 => _330.includes, 'call', _331 => _331("fullscreen")]) ? void 0 : allowFullScreen
17619
+ allowFullScreen: _optionalChain([allow, 'optionalAccess', _333 => _333.includes, 'call', _334 => _334("fullscreen")]) ? void 0 : allowFullScreen
17315
17620
  },
17316
17621
  src
17317
17622
  )
@@ -18062,7 +18367,7 @@ var RichMarkdownInner = ({
18062
18367
  const extractText2 = (node) => {
18063
18368
  if (typeof node === "string") return node;
18064
18369
  if (Array.isArray(node)) return node.map(extractText2).join("");
18065
- if (_optionalChain([node, 'optionalAccess', _332 => _332.props, 'optionalAccess', _333 => _333.children])) return extractText2(node.props.children);
18370
+ if (_optionalChain([node, 'optionalAccess', _335 => _335.props, 'optionalAccess', _336 => _336.children])) return extractText2(node.props.children);
18066
18371
  return "";
18067
18372
  };
18068
18373
  const text = extractText2(children);
@@ -18078,7 +18383,7 @@ var RichMarkdownInner = ({
18078
18383
  const extractText2 = (node) => {
18079
18384
  if (typeof node === "string") return node;
18080
18385
  if (Array.isArray(node)) return node.map(extractText2).join("");
18081
- if (_optionalChain([node, 'optionalAccess', _334 => _334.props, 'optionalAccess', _335 => _335.children])) return extractText2(node.props.children);
18386
+ if (_optionalChain([node, 'optionalAccess', _337 => _337.props, 'optionalAccess', _338 => _338.children])) return extractText2(node.props.children);
18082
18387
  return "";
18083
18388
  };
18084
18389
  const text = extractText2(children);
@@ -18096,7 +18401,7 @@ var RichMarkdownInner = ({
18096
18401
  const extractText2 = (node) => {
18097
18402
  if (typeof node === "string") return node;
18098
18403
  if (Array.isArray(node)) return node.map(extractText2).join("");
18099
- if (_optionalChain([node, 'optionalAccess', _336 => _336.props, 'optionalAccess', _337 => _337.children])) return extractText2(node.props.children);
18404
+ if (_optionalChain([node, 'optionalAccess', _339 => _339.props, 'optionalAccess', _340 => _340.children])) return extractText2(node.props.children);
18100
18405
  return "";
18101
18406
  };
18102
18407
  const text = extractText2(children);
@@ -18114,7 +18419,7 @@ var RichMarkdownInner = ({
18114
18419
  const extractText2 = (node) => {
18115
18420
  if (typeof node === "string") return node;
18116
18421
  if (Array.isArray(node)) return node.map(extractText2).join("");
18117
- if (_optionalChain([node, 'optionalAccess', _338 => _338.props, 'optionalAccess', _339 => _339.children])) return extractText2(node.props.children);
18422
+ if (_optionalChain([node, 'optionalAccess', _341 => _341.props, 'optionalAccess', _342 => _342.children])) return extractText2(node.props.children);
18118
18423
  return "";
18119
18424
  };
18120
18425
  const text = extractText2(children);
@@ -18132,7 +18437,7 @@ var RichMarkdownInner = ({
18132
18437
  const extractText2 = (node) => {
18133
18438
  if (typeof node === "string") return node;
18134
18439
  if (Array.isArray(node)) return node.map(extractText2).join("");
18135
- if (_optionalChain([node, 'optionalAccess', _340 => _340.props, 'optionalAccess', _341 => _341.children])) return extractText2(node.props.children);
18440
+ if (_optionalChain([node, 'optionalAccess', _343 => _343.props, 'optionalAccess', _344 => _344.children])) return extractText2(node.props.children);
18136
18441
  return "";
18137
18442
  };
18138
18443
  const text = extractText2(children);
@@ -18150,7 +18455,7 @@ var RichMarkdownInner = ({
18150
18455
  const extractText2 = (node) => {
18151
18456
  if (typeof node === "string") return node;
18152
18457
  if (Array.isArray(node)) return node.map(extractText2).join("");
18153
- if (_optionalChain([node, 'optionalAccess', _342 => _342.props, 'optionalAccess', _343 => _343.children])) return extractText2(node.props.children);
18458
+ if (_optionalChain([node, 'optionalAccess', _345 => _345.props, 'optionalAccess', _346 => _346.children])) return extractText2(node.props.children);
18154
18459
  return "";
18155
18460
  };
18156
18461
  const text = extractText2(children);
@@ -18226,8 +18531,8 @@ var RichMarkdownInner = ({
18226
18531
  {
18227
18532
  href,
18228
18533
  className: `text-ods-accent no-underline relative transition-colors duration-200 hover:after:w-full after:content-[''] after:absolute after:w-0 after:h-0.5 after:-bottom-0.5 after:left-0 after:bg-ods-accent after:transition-all after:duration-300 ${className2 || ""}`,
18229
- target: _optionalChain([href, 'optionalAccess', _344 => _344.startsWith, 'call', _345 => _345("http")]) ? "_blank" : void 0,
18230
- rel: _optionalChain([href, 'optionalAccess', _346 => _346.startsWith, 'call', _347 => _347("http")]) ? "noopener noreferrer" : void 0,
18534
+ target: _optionalChain([href, 'optionalAccess', _347 => _347.startsWith, 'call', _348 => _348("http")]) ? "_blank" : void 0,
18535
+ rel: _optionalChain([href, 'optionalAccess', _349 => _349.startsWith, 'call', _350 => _350("http")]) ? "noopener noreferrer" : void 0,
18231
18536
  children
18232
18537
  }
18233
18538
  );
@@ -18351,7 +18656,7 @@ function ReleaseChangelogSection({
18351
18656
  className: "overflow-hidden transition-[max-height] duration-500",
18352
18657
  style: {
18353
18658
  transitionTimingFunction: "cubic-bezier(0.33, 1, 0.68, 1)",
18354
- maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _348 => _348.current, 'optionalAccess', _349 => _349.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
18659
+ maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _351 => _351.current, 'optionalAccess', _352 => _352.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
18355
18660
  ...previewNeedsFade && !previewExpanded ? {
18356
18661
  maskImage: "linear-gradient(to bottom, black 30%, transparent 100%)",
18357
18662
  WebkitMaskImage: "linear-gradient(to bottom, black 30%, transparent 100%)"
@@ -18788,16 +19093,16 @@ function FilterModal({
18788
19093
  };
18789
19094
  const handleReset = () => {
18790
19095
  onFilterChange({});
18791
- _optionalChain([onTagsChange, 'optionalCall', _350 => _350([])]);
19096
+ _optionalChain([onTagsChange, 'optionalCall', _353 => _353([])]);
18792
19097
  onClose();
18793
19098
  };
18794
19099
  const handleApply = () => {
18795
19100
  onFilterChange(selectedFilters);
18796
- _optionalChain([onTagsChange, 'optionalCall', _351 => _351(pendingTags)]);
19101
+ _optionalChain([onTagsChange, 'optionalCall', _354 => _354(pendingTags)]);
18797
19102
  onClose();
18798
19103
  };
18799
19104
  const getColumnDirection = (columnKey) => {
18800
- return _optionalChain([sortConfig, 'optionalAccess', _352 => _352.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
19105
+ return _optionalChain([sortConfig, 'optionalAccess', _355 => _355.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
18801
19106
  };
18802
19107
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
18803
19108
  const hasFilterGroups = filterGroups.length > 0;
@@ -18846,7 +19151,7 @@ function FilterModal({
18846
19151
  {
18847
19152
  column,
18848
19153
  currentDirection: getColumnDirection(column.key),
18849
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _353 => _353(column.key, direction)]),
19154
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _356 => _356(column.key, direction)]),
18850
19155
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
18851
19156
  },
18852
19157
  column.key
@@ -18927,6 +19232,14 @@ function actionToMenuItems(action, idx) {
18927
19232
  }];
18928
19233
  }
18929
19234
  function renderActionButton(action, opts = {}) {
19235
+ const button = renderRawActionButton(action, opts);
19236
+ if (!action.tooltip) return button;
19237
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
19238
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipTrigger, { asChild: true, children: button }),
19239
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { children: action.tooltip })
19240
+ ] }) });
19241
+ }
19242
+ function renderRawActionButton(action, opts = {}) {
18930
19243
  if (action.iconAction) {
18931
19244
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18932
19245
  _chunkQJGRP2YEcjs.SplitButton,
@@ -19024,13 +19337,13 @@ function IconButtonsVariant({
19024
19337
  }) {
19025
19338
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
19026
19339
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
19027
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _354 => _354[0], 'access', _355 => _355.submenu, 'optionalAccess', _356 => _356.length]);
19340
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _357 => _357[0], 'access', _358 => _358.submenu, 'optionalAccess', _359 => _359.length]);
19028
19341
  const singleAction = isSingleAction ? actions[0] : null;
19029
19342
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
19030
19343
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
19031
19344
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: [
19032
19345
  selector,
19033
- desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
19346
+ desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
19034
19347
  hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions })
19035
19348
  ] }),
19036
19349
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex md:hidden", className), children: useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19055,7 +19368,7 @@ function PrimaryButtonsVariant({
19055
19368
  });
19056
19369
  const desktopActions = sortedActions.filter((a) => !a.showOnlyMobile);
19057
19370
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
19058
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
19371
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
19059
19372
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileBottomActions, { actions: sortedActions })
19060
19373
  ] });
19061
19374
  }
@@ -19071,7 +19384,7 @@ function MenuPrimaryVariant({
19071
19384
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: [
19072
19385
  selector,
19073
19386
  hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions }),
19074
- desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
19387
+ desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
19075
19388
  ] }),
19076
19389
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex md:hidden", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19077
19390
  ActionsMenuDropdown,
@@ -19090,7 +19403,7 @@ function MobileBottomActions({ actions }) {
19090
19403
  "bg-ods-card border-t border-ods-border",
19091
19404
  "flex items-start pt-6 pb-6 px-6",
19092
19405
  ACTIONS_GAP
19093
- ), children: actions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
19406
+ ), children: actions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderActionButton(action, { fullWidth: !!action.label }) }, `mobile-${actionKey(action, idx)}`)) });
19094
19407
  }
19095
19408
  function usePageActionsBottomPadding(variant) {
19096
19409
  return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
@@ -19420,8 +19733,8 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
19420
19733
 
19421
19734
 
19422
19735
  function EntityImage({ src, alt, fallbackText, className }) {
19423
- const [imageFailed, setImageFailed] = React112.default.useState(false);
19424
- React112.default.useEffect(() => {
19736
+ const [imageFailed, setImageFailed] = React113.default.useState(false);
19737
+ React113.default.useEffect(() => {
19425
19738
  setImageFailed(false);
19426
19739
  }, [src]);
19427
19740
  const showFallback = imageFailed || !src;
@@ -19615,7 +19928,7 @@ var toggleVariants = _classvarianceauthority.cva.call(void 0,
19615
19928
  }
19616
19929
  }
19617
19930
  );
19618
- var Toggle = React72.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19931
+ var Toggle = React73.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19619
19932
  TogglePrimitive.Root,
19620
19933
  {
19621
19934
  ref,
@@ -19627,11 +19940,11 @@ Toggle.displayName = TogglePrimitive.Root.displayName;
19627
19940
 
19628
19941
  // src/components/toggle-group.tsx
19629
19942
 
19630
- var ToggleGroupContext = React73.createContext({
19943
+ var ToggleGroupContext = React74.createContext({
19631
19944
  size: "default",
19632
19945
  variant: "default"
19633
19946
  });
19634
- var ToggleGroup = React73.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19947
+ var ToggleGroup = React74.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19635
19948
  ToggleGroupPrimitive.Root,
19636
19949
  {
19637
19950
  ref,
@@ -19641,8 +19954,8 @@ var ToggleGroup = React73.forwardRef(({ className, variant, size, children, ...p
19641
19954
  }
19642
19955
  ));
19643
19956
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
19644
- var ToggleGroupItem = React73.forwardRef(({ className, children, variant, size, value, ...props }, ref) => {
19645
- const context = React73.useContext(ToggleGroupContext);
19957
+ var ToggleGroupItem = React74.forwardRef(({ className, children, variant, size, value, ...props }, ref) => {
19958
+ const context = React74.useContext(ToggleGroupContext);
19646
19959
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19647
19960
  ToggleGroupPrimitive.Item,
19648
19961
  {
@@ -20180,7 +20493,7 @@ function getShellIcon(shellType) {
20180
20493
  if (!shellType) return void 0;
20181
20494
  const normalized = shellType.toUpperCase();
20182
20495
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
20183
- return _optionalChain([shellDef, 'optionalAccess', _357 => _357.icon]);
20496
+ return _optionalChain([shellDef, 'optionalAccess', _360 => _360.icon]);
20184
20497
  }
20185
20498
 
20186
20499
  // src/types/os.types.ts
@@ -20253,7 +20566,7 @@ function getOSIcon(osType) {
20253
20566
  const normalized = normalizeOSType(osType);
20254
20567
  if (!normalized) return void 0;
20255
20568
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
20256
- return _optionalChain([osTypeDef, 'optionalAccess', _358 => _358.icon]);
20569
+ return _optionalChain([osTypeDef, 'optionalAccess', _361 => _361.icon]);
20257
20570
  }
20258
20571
  function getOSTypeDefinition(osType) {
20259
20572
  if (!osType) return void 0;
@@ -20263,7 +20576,7 @@ function getOSTypeDefinition(osType) {
20263
20576
  }
20264
20577
  function getOSPlatformId(osType) {
20265
20578
  const osTypeDef = getOSTypeDefinition(osType);
20266
- return _optionalChain([osTypeDef, 'optionalAccess', _359 => _359.platformId]);
20579
+ return _optionalChain([osTypeDef, 'optionalAccess', _362 => _362.platformId]);
20267
20580
  }
20268
20581
  function isOSPlatform(deviceOS, targetPlatform) {
20269
20582
  if (!deviceOS || !targetPlatform) return false;
@@ -20356,10 +20669,10 @@ var GENERIC_EMAIL_DOMAINS = [
20356
20669
  ];
20357
20670
  function extractDomainFromEmail(email) {
20358
20671
  if (!email || !email.includes("@")) return null;
20359
- return _optionalChain([email, 'access', _360 => _360.split, 'call', _361 => _361("@"), 'access', _362 => _362[1], 'optionalAccess', _363 => _363.toLowerCase, 'call', _364 => _364()]) || null;
20672
+ return _optionalChain([email, 'access', _363 => _363.split, 'call', _364 => _364("@"), 'access', _365 => _365[1], 'optionalAccess', _366 => _366.toLowerCase, 'call', _367 => _367()]) || null;
20360
20673
  }
20361
20674
  function normalizeDomain(domain) {
20362
- return _optionalChain([domain, 'optionalAccess', _365 => _365.toLowerCase, 'call', _366 => _366(), 'access', _367 => _367.replace, 'call', _368 => _368(/^https?:\/\//, ""), 'access', _369 => _369.replace, 'call', _370 => _370(/^www\./, ""), 'access', _371 => _371.split, 'call', _372 => _372("/"), 'access', _373 => _373[0], 'access', _374 => _374.trim, 'call', _375 => _375()]) || "";
20675
+ return _optionalChain([domain, 'optionalAccess', _368 => _368.toLowerCase, 'call', _369 => _369(), 'access', _370 => _370.replace, 'call', _371 => _371(/^https?:\/\//, ""), 'access', _372 => _372.replace, 'call', _373 => _373(/^www\./, ""), 'access', _374 => _374.split, 'call', _375 => _375("/"), 'access', _376 => _376[0], 'access', _377 => _377.trim, 'call', _378 => _378()]) || "";
20363
20676
  }
20364
20677
  function isGenericDomain(domain) {
20365
20678
  const normalized = normalizeDomain(domain);
@@ -20793,7 +21106,7 @@ function defaultTableIdForDocumentType(documentType) {
20793
21106
 
20794
21107
  // src/utils/sse-decision-frame.ts
20795
21108
  async function readLeadingDecisionFrame(response) {
20796
- const reader = _optionalChain([response, 'access', _376 => _376.body, 'optionalAccess', _377 => _377.getReader, 'call', _378 => _378()]);
21109
+ const reader = _optionalChain([response, 'access', _379 => _379.body, 'optionalAccess', _380 => _380.getReader, 'call', _381 => _381()]);
20797
21110
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
20798
21111
  const decoder = new TextDecoder();
20799
21112
  let buffer = "";
@@ -20822,9 +21135,9 @@ async function readLeadingDecisionFrame(response) {
20822
21135
  );
20823
21136
  }
20824
21137
  const obj = parsed;
20825
- if (_optionalChain([obj, 'optionalAccess', _379 => _379.kind]) !== "decision_resolved") {
21138
+ if (_optionalChain([obj, 'optionalAccess', _382 => _382.kind]) !== "decision_resolved") {
20826
21139
  throw new Error(
20827
- `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _380 => _380.kind]))}`
21140
+ `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _383 => _383.kind]))}`
20828
21141
  );
20829
21142
  }
20830
21143
  frame = normalizeDecisionFrame(obj);
@@ -20865,7 +21178,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
20865
21178
  function buildAutoContinuationDirective(toolName, opts = {}) {
20866
21179
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
20867
21180
  const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
20868
- const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _381 => _381.status, 'optionalAccess', _382 => _382.toUpperCase, 'call', _383 => _383()]) === "CLOSED";
21181
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _384 => _384.status, 'optionalAccess', _385 => _385.toUpperCase, 'call', _386 => _386()]) === "CLOSED";
20869
21182
  if (toolName === "create_ticket") {
20870
21183
  return `${AUTO_CONTINUATION_DIRECTIVE_PREFIX} The user just approved create_ticket${ticketRef}. Per ticket-protocol \xA71a, ask 2-4 SHORT, issue-specific diagnostic follow-up questions tailored to the symptom they reported in their original message. When they answer, propose an update_ticket with content_addendum carrying a clean Q&A digest. Do NOT call any tool in this turn \u2014 just write the questions as prose.`;
20871
21184
  }
@@ -20927,7 +21240,7 @@ function formatSingularLookupInvocation(cmdId, value) {
20927
21240
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
20928
21241
  }
20929
21242
  function extractEntityIdFilter(override, expectedTableId) {
20930
- const f = _optionalChain([override, 'optionalAccess', _384 => _384.entityIdFilter]);
21243
+ const f = _optionalChain([override, 'optionalAccess', _387 => _387.entityIdFilter]);
20931
21244
  if (!f) return null;
20932
21245
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
20933
21246
  const id = typeof f.id === "string" ? f.id : "";
@@ -21002,7 +21315,7 @@ function getTaskTypeLabel(customItemId) {
21002
21315
 
21003
21316
  // src/components/chat/utils/agent-status-message.ts
21004
21317
  function getStatusColorScheme(status) {
21005
- const s = _optionalChain([status, 'optionalAccess', _385 => _385.toLowerCase, 'call', _386 => _386()]) || "";
21318
+ const s = _optionalChain([status, 'optionalAccess', _388 => _388.toLowerCase, 'call', _389 => _389()]) || "";
21006
21319
  switch (status) {
21007
21320
  case "completed":
21008
21321
  case "success":
@@ -21284,10 +21597,10 @@ var CONTENT_REF_GROUPS = {
21284
21597
  what_i_shipped: { label: "What I Shipped", order: 10, layout: "grid", gridSize: "default" }
21285
21598
  };
21286
21599
  function getContentRefLabel(type) {
21287
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _387 => _387[type], 'optionalAccess', _388 => _388.label]), () => ( null));
21600
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _390 => _390[type], 'optionalAccess', _391 => _391.label]), () => ( null));
21288
21601
  }
21289
21602
  function getContentRefLabelOrTitleCase(type) {
21290
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _389 => _389[type], 'optionalAccess', _390 => _390.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
21603
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _392 => _392[type], 'optionalAccess', _393 => _393.label]), () => ( type.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase())));
21291
21604
  }
21292
21605
  function orderContentRefTypes(present) {
21293
21606
  const presentSet = new Set(present);
@@ -21446,7 +21759,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
21446
21759
  const firstFolderWithReadme = structure.find(
21447
21760
  (node) => node.type === "folder" && node.hasReadme && !!node.path
21448
21761
  );
21449
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _391 => _391.path]), () => ( null));
21762
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _394 => _394.path]), () => ( null));
21450
21763
  }
21451
21764
 
21452
21765
  // src/utils/doc-path-utils.ts
@@ -21457,7 +21770,7 @@ function pathToNodeId(path) {
21457
21770
  return path.replace(/[\/\s]/g, "-").toLowerCase();
21458
21771
  }
21459
21772
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
21460
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _392 => _392.join, 'call', _393 => _393("/")]) || "").toLowerCase();
21773
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _395 => _395.join, 'call', _396 => _396("/")]) || "").toLowerCase();
21461
21774
  const lowerIndex = folderIndexFile.toLowerCase();
21462
21775
  const suffix = `/${lowerIndex}`;
21463
21776
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -21661,7 +21974,7 @@ var BenefitCardGrid = ({
21661
21974
  className = "",
21662
21975
  columns = 2
21663
21976
  }) => {
21664
- const childrenArray = React112.default.Children.toArray(children);
21977
+ const childrenArray = React113.default.Children.toArray(children);
21665
21978
  const gridClass = columns === 4 ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4" : columns === 3 ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3" : "flex flex-col md:flex-row";
21666
21979
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
21667
21980
  "bg-ods-card rounded-lg shadow-ods-card border border-ods-border overflow-hidden",
@@ -21682,7 +21995,7 @@ var BenefitCardGrid = ({
21682
21995
  } else {
21683
21996
  borderClass = isLastItem ? "border-b-0" : "border-b md:border-b-0 md:border-r border-ods-border";
21684
21997
  }
21685
- return React112.default.cloneElement(child, {
21998
+ return React113.default.cloneElement(child, {
21686
21999
  key: index,
21687
22000
  className: borderClass
21688
22001
  });
@@ -21699,7 +22012,7 @@ function BrandAssociationCard({
21699
22012
  className = ""
21700
22013
  }) {
21701
22014
  const renderIcon = () => {
21702
- if (React112.default.isValidElement(item.icon)) {
22015
+ if (React113.default.isValidElement(item.icon)) {
21703
22016
  return item.icon;
21704
22017
  }
21705
22018
  const IconComponent = item.icon;
@@ -21803,7 +22116,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
21803
22116
 
21804
22117
 
21805
22118
 
21806
- var ChevronButton = React76.forwardRef(
22119
+ var ChevronButton = React77.forwardRef(
21807
22120
  ({ className, direction = "down", size = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
21808
22121
  const Icon2 = (isExpanded ? _lucidereact.ChevronUp : _lucidereact.ChevronDown) || (direction === "up" ? _lucidereact.ChevronUp : _lucidereact.ChevronDown);
21809
22122
  const sizeClasses2 = {
@@ -22000,8 +22313,8 @@ function FloatingTooltip({
22000
22313
  delayDuration = 0,
22001
22314
  disabled = false
22002
22315
  }) {
22003
- const [isOpen, setIsOpen] = React77.useState(false);
22004
- const arrowRef = React77.useRef(null);
22316
+ const [isOpen, setIsOpen] = React78.useState(false);
22317
+ const arrowRef = React78.useRef(null);
22005
22318
  const { refs, floatingStyles, context, placement, middlewareData } = _react2.useFloating.call(void 0, {
22006
22319
  open: isOpen,
22007
22320
  onOpenChange: setIsOpen,
@@ -22031,7 +22344,7 @@ function FloatingTooltip({
22031
22344
  dismiss,
22032
22345
  role
22033
22346
  ]);
22034
- const parsedContent = React77.useMemo(() => {
22347
+ const parsedContent = React78.useMemo(() => {
22035
22348
  if (typeof content === "string") {
22036
22349
  return parseColoredText(content);
22037
22350
  }
@@ -22279,26 +22592,26 @@ function DeviceCard({
22279
22592
  ] }),
22280
22593
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", title: device.organization, children: device.organization })
22281
22594
  ] }),
22282
- _optionalChain([actions, 'access', _394 => _394.moreButton, 'optionalAccess', _395 => _395.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22595
+ _optionalChain([actions, 'access', _397 => _397.moreButton, 'optionalAccess', _398 => _398.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22283
22596
  "div",
22284
22597
  {
22285
22598
  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",
22286
22599
  onClick: (e) => {
22287
22600
  e.stopPropagation();
22288
- _optionalChain([actions, 'access', _396 => _396.moreButton, 'optionalAccess', _397 => _397.onClick, 'optionalCall', _398 => _398()]);
22601
+ _optionalChain([actions, 'access', _399 => _399.moreButton, 'optionalAccess', _400 => _400.onClick, 'optionalCall', _401 => _401()]);
22289
22602
  },
22290
22603
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22291
22604
  }
22292
22605
  ),
22293
- _optionalChain([actions, 'access', _399 => _399.detailsButton, 'optionalAccess', _400 => _400.visible]) !== false && _optionalChain([actions, 'access', _401 => _401.detailsButton, 'optionalAccess', _402 => _402.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22294
- _optionalChain([actions, 'access', _403 => _403.customActions, 'optionalAccess', _404 => _404.map, 'call', _405 => _405(
22606
+ _optionalChain([actions, 'access', _402 => _402.detailsButton, 'optionalAccess', _403 => _403.visible]) !== false && _optionalChain([actions, 'access', _404 => _404.detailsButton, 'optionalAccess', _405 => _405.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22607
+ _optionalChain([actions, 'access', _406 => _406.customActions, 'optionalAccess', _407 => _407.map, 'call', _408 => _408(
22295
22608
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22296
22609
  "div",
22297
22610
  {
22298
22611
  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",
22299
22612
  onClick: (e) => {
22300
22613
  e.stopPropagation();
22301
- _optionalChain([action, 'access', _406 => _406.onClick, 'optionalCall', _407 => _407()]);
22614
+ _optionalChain([action, 'access', _409 => _409.onClick, 'optionalCall', _410 => _410()]);
22302
22615
  },
22303
22616
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22304
22617
  },
@@ -22652,7 +22965,7 @@ function HighlightCardGrid({
22652
22965
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
22653
22966
 
22654
22967
 
22655
- var IconsBlock = React79.forwardRef(
22968
+ var IconsBlock = React80.forwardRef(
22656
22969
  ({ className, icons = [], size = "md", ...props }, ref) => {
22657
22970
  const sizeClasses2 = {
22658
22971
  sm: "h-4 w-4",
@@ -22699,8 +23012,8 @@ function DropdownButton({
22699
23012
  align = "end",
22700
23013
  side = "bottom"
22701
23014
  }) {
22702
- const [open, setOpen] = React112.default.useState(false);
22703
- const handleOpenChange = React112.default.useCallback(
23015
+ const [open, setOpen] = React113.default.useState(false);
23016
+ const handleOpenChange = React113.default.useCallback(
22704
23017
  (next) => {
22705
23018
  if (disabled) return;
22706
23019
  setOpen(next);
@@ -22798,7 +23111,7 @@ function MoreActionsMenu({
22798
23111
  ] });
22799
23112
  const handleActivate = (e) => {
22800
23113
  e.stopPropagation();
22801
- if (!item.disabled) _optionalChain([item, 'access', _408 => _408.onClick, 'optionalCall', _409 => _409()]);
23114
+ if (!item.disabled) _optionalChain([item, 'access', _411 => _411.onClick, 'optionalCall', _412 => _412()]);
22802
23115
  };
22803
23116
  if (item.href) {
22804
23117
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22865,7 +23178,7 @@ function OrganizationCard({
22865
23178
  const handleActionClick = (e) => {
22866
23179
  e.preventDefault();
22867
23180
  e.stopPropagation();
22868
- _optionalChain([actionButton, 'optionalAccess', _410 => _410.onClick, 'call', _411 => _411(organization, e)]);
23181
+ _optionalChain([actionButton, 'optionalAccess', _413 => _413.onClick, 'call', _414 => _414(organization, e)]);
22869
23182
  };
22870
23183
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22871
23184
  "div",
@@ -23011,14 +23324,14 @@ function ThemeProvider({ children, ...overrides }) {
23011
23324
  var useTheme = _nextthemes.useTheme;
23012
23325
  function useThemeToggle() {
23013
23326
  const { resolvedTheme, theme, setTheme } = useTheme();
23014
- const [mounted, setMounted] = React81.useState(false);
23015
- React81.useEffect(() => setMounted(true), []);
23327
+ const [mounted, setMounted] = React82.useState(false);
23328
+ React82.useEffect(() => setMounted(true), []);
23016
23329
  const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
23017
- const setOdsTheme = React81.useCallback(
23330
+ const setOdsTheme = React82.useCallback(
23018
23331
  (next) => setTheme(next),
23019
23332
  [setTheme]
23020
23333
  );
23021
- const toggle = React81.useCallback(
23334
+ const toggle = React82.useCallback(
23022
23335
  () => setTheme(active === "dark" ? "light" : "dark"),
23023
23336
  [active, setTheme]
23024
23337
  );
@@ -23771,10 +24084,10 @@ var getContentDimensions = (config) => {
23771
24084
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
23772
24085
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
23773
24086
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
23774
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _412 => _412.mobileContentDimensions, 'optionalAccess', _413 => _413.width]))), () => ( defaultMobile.width));
23775
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _414 => _414.mobileContentDimensions, 'optionalAccess', _415 => _415.height]))), () => ( defaultMobile.height));
23776
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _416 => _416.desktopContentDimensions, 'optionalAccess', _417 => _417.width]))), () => ( defaultDesktop.width));
23777
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _418 => _418.desktopContentDimensions, 'optionalAccess', _419 => _419.height]))), () => ( defaultDesktop.height));
24087
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _415 => _415.mobileContentDimensions, 'optionalAccess', _416 => _416.width]))), () => ( defaultMobile.width));
24088
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _417 => _417.mobileContentDimensions, 'optionalAccess', _418 => _418.height]))), () => ( defaultMobile.height));
24089
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _419 => _419.desktopContentDimensions, 'optionalAccess', _420 => _420.width]))), () => ( defaultDesktop.width));
24090
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.desktopContentDimensions, 'optionalAccess', _422 => _422.height]))), () => ( defaultDesktop.height));
23778
24091
  return {
23779
24092
  mobile: { width: mobileWidth, height: mobileHeight },
23780
24093
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -23908,7 +24221,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
23908
24221
  const contentDimensions = getContentDimensions(config);
23909
24222
  const mobileHeight = contentDimensions.mobile.height;
23910
24223
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
23911
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _420 => _420.innerHeight]) * 0.85 || 650)}px`;
24224
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _423 => _423.innerHeight]) * 0.85 || 650)}px`;
23912
24225
  })(),
23913
24226
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
23914
24227
  const contentDimensions = getContentDimensions(config);
@@ -24013,7 +24326,7 @@ var FigmaPrototypeViewer = ({
24013
24326
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
24014
24327
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
24015
24328
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
24016
- config.defaultSectionId || _optionalChain([config, 'access', _421 => _421.sections, 'access', _422 => _422[0], 'optionalAccess', _423 => _423.id]) || ""
24329
+ config.defaultSectionId || _optionalChain([config, 'access', _424 => _424.sections, 'access', _425 => _425[0], 'optionalAccess', _426 => _426.id]) || ""
24017
24330
  );
24018
24331
  const activeSection = externalActiveSection || internalActiveSection;
24019
24332
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -24103,7 +24416,7 @@ var FigmaPrototypeViewer = ({
24103
24416
  const handleMessage = (event) => {
24104
24417
  if (event.origin !== "https://www.figma.com") return;
24105
24418
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
24106
- if (_optionalChain([event, 'access', _424 => _424.data, 'optionalAccess', _425 => _425.type]) && validEvents.includes(event.data.type)) {
24419
+ if (_optionalChain([event, 'access', _427 => _427.data, 'optionalAccess', _428 => _428.type]) && validEvents.includes(event.data.type)) {
24107
24420
  const figmaEvent = event.data;
24108
24421
  console.log("[Figma Event]", figmaEvent.type, viewMode);
24109
24422
  switch (figmaEvent.type) {
@@ -24113,19 +24426,19 @@ var FigmaPrototypeViewer = ({
24113
24426
  setIframeState("READY");
24114
24427
  break;
24115
24428
  case "PRESENTED_NODE_CHANGED":
24116
- if (_optionalChain([figmaEvent, 'access', _426 => _426.data, 'optionalAccess', _427 => _427.presentedNodeId])) {
24429
+ if (_optionalChain([figmaEvent, 'access', _429 => _429.data, 'optionalAccess', _430 => _430.presentedNodeId])) {
24117
24430
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
24118
24431
  if (!isNavigating) {
24119
24432
  const matchingSection = config.sections.find((s) => {
24120
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _428 => _428.data, 'optionalAccess', _429 => _429.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _430 => _430.data, 'optionalAccess', _431 => _431.presentedNodeId]);
24121
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _432 => _432.data, 'optionalAccess', _433 => _433.presentedNodeId]) || _optionalChain([s, 'access', _434 => _434.mobileStartingNodeId, 'optionalAccess', _435 => _435.replace, 'call', _436 => _436(":", "-")]) === _optionalChain([figmaEvent, 'access', _437 => _437.data, 'optionalAccess', _438 => _438.presentedNodeId]);
24433
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _431 => _431.data, 'optionalAccess', _432 => _432.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _433 => _433.data, 'optionalAccess', _434 => _434.presentedNodeId]);
24434
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _435 => _435.data, 'optionalAccess', _436 => _436.presentedNodeId]) || _optionalChain([s, 'access', _437 => _437.mobileStartingNodeId, 'optionalAccess', _438 => _438.replace, 'call', _439 => _439(":", "-")]) === _optionalChain([figmaEvent, 'access', _440 => _440.data, 'optionalAccess', _441 => _441.presentedNodeId]);
24122
24435
  return desktopMatch || mobileMatch;
24123
24436
  });
24124
24437
  if (matchingSection && matchingSection.id !== activeSection) {
24125
24438
  if (!externalActiveSection) {
24126
24439
  setInternalActiveSection(matchingSection.id);
24127
24440
  }
24128
- _optionalChain([config, 'access', _439 => _439.onSectionChange, 'optionalCall', _440 => _440(matchingSection.id)]);
24441
+ _optionalChain([config, 'access', _442 => _442.onSectionChange, 'optionalCall', _443 => _443(matchingSection.id)]);
24129
24442
  }
24130
24443
  }
24131
24444
  }
@@ -24138,7 +24451,7 @@ var FigmaPrototypeViewer = ({
24138
24451
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
24139
24452
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
24140
24453
  const section = config.sections.find((s) => s.id === sectionId);
24141
- if (!section || !_optionalChain([iframeRef, 'access', _441 => _441.current, 'optionalAccess', _442 => _442.contentWindow]) || !isInitialized) {
24454
+ if (!section || !_optionalChain([iframeRef, 'access', _444 => _444.current, 'optionalAccess', _445 => _445.contentWindow]) || !isInitialized) {
24142
24455
  return;
24143
24456
  }
24144
24457
  setIsNavigating(true);
@@ -24146,7 +24459,7 @@ var FigmaPrototypeViewer = ({
24146
24459
  if (!externalActiveSection) {
24147
24460
  setInternalActiveSection(sectionId);
24148
24461
  }
24149
- _optionalChain([config, 'access', _443 => _443.onSectionChange, 'optionalCall', _444 => _444(sectionId)]);
24462
+ _optionalChain([config, 'access', _446 => _446.onSectionChange, 'optionalCall', _447 => _447(sectionId)]);
24150
24463
  const command = {
24151
24464
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
24152
24465
  data: { nodeId }
@@ -24466,7 +24779,7 @@ var FiltersDropdown = ({
24466
24779
  defaults[section.id] = section.defaultSelected || [];
24467
24780
  });
24468
24781
  setSelectedFilters(defaults);
24469
- _optionalChain([onReset, 'optionalCall', _445 => _445()]);
24782
+ _optionalChain([onReset, 'optionalCall', _448 => _448()]);
24470
24783
  setIsOpen(false);
24471
24784
  };
24472
24785
  const handleApply = () => {
@@ -24759,7 +25072,7 @@ function MediaGalleryManager({
24759
25072
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
24760
25073
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
24761
25074
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
24762
- const file = _optionalChain([event, 'access', _446 => _446.target, 'access', _447 => _447.files, 'optionalAccess', _448 => _448[0]]);
25075
+ const file = _optionalChain([event, 'access', _449 => _449.target, 'access', _450 => _450.files, 'optionalAccess', _451 => _451[0]]);
24763
25076
  if (!file) return;
24764
25077
  let mediaType;
24765
25078
  if (file.type.startsWith("image/")) {
@@ -24874,7 +25187,7 @@ function MediaGalleryManager({
24874
25187
  {
24875
25188
  type: "button",
24876
25189
  variant: "outline",
24877
- onClick: () => _optionalChain([fileInputRef, 'access', _449 => _449.current, 'optionalAccess', _450 => _450.click, 'call', _451 => _451()]),
25190
+ onClick: () => _optionalChain([fileInputRef, 'access', _452 => _452.current, 'optionalAccess', _453 => _453.click, 'call', _454 => _454()]),
24878
25191
  disabled: isUploading,
24879
25192
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
24880
25193
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -25542,7 +25855,7 @@ function ReleaseMediaManager({
25542
25855
  const fileInputRef = _react.useRef.call(void 0, null);
25543
25856
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
25544
25857
  const handleFileSelect = async (event) => {
25545
- const file = _optionalChain([event, 'access', _452 => _452.target, 'access', _453 => _453.files, 'optionalAccess', _454 => _454[0]]);
25858
+ const file = _optionalChain([event, 'access', _455 => _455.target, 'access', _456 => _456.files, 'optionalAccess', _457 => _457[0]]);
25546
25859
  if (!file) return;
25547
25860
  let mediaType;
25548
25861
  if (file.type.startsWith("image/")) {
@@ -25622,7 +25935,7 @@ function ReleaseMediaManager({
25622
25935
  {
25623
25936
  type: "button",
25624
25937
  variant: "outline",
25625
- onClick: () => _optionalChain([fileInputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.click, 'call', _457 => _457()]),
25938
+ onClick: () => _optionalChain([fileInputRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.click, 'call', _460 => _460()]),
25626
25939
  disabled: uploadingIndex !== null,
25627
25940
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
25628
25941
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -25744,7 +26057,7 @@ function ReleaseMediaManager({
25744
26057
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
25745
26058
 
25746
26059
 
25747
- var SelectButton = React112.default.forwardRef(
26060
+ var SelectButton = React113.default.forwardRef(
25748
26061
  ({ title, description, selected = false, disabled = false, icon, image, tag, tagVariant = "outline", onClick, className }, ref) => {
25749
26062
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25750
26063
  "button",
@@ -25837,7 +26150,7 @@ function SEOEditorPreview({
25837
26150
  const displayImage = hasOgImage || hasFeaturedImage;
25838
26151
  const handleImageUpload = async (event) => {
25839
26152
  if (!onOgImageUpload) return;
25840
- const file = _optionalChain([event, 'access', _458 => _458.target, 'access', _459 => _459.files, 'optionalAccess', _460 => _460[0]]);
26153
+ const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
25841
26154
  if (!file) return;
25842
26155
  setIsUploading(true);
25843
26156
  try {
@@ -25987,7 +26300,7 @@ function SEOEditorPreview({
25987
26300
  type: "button",
25988
26301
  variant: "outline",
25989
26302
  size: "icon",
25990
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _461 => _461.click, 'call', _462 => _462()]),
26303
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _464 => _464.click, 'call', _465 => _465()]),
25991
26304
  disabled: disabled || isUploading,
25992
26305
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
25993
26306
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -26010,7 +26323,7 @@ function SEOEditorPreview({
26010
26323
  "div",
26011
26324
  {
26012
26325
  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",
26013
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _463 => _463.click, 'call', _464 => _464()]),
26326
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _466 => _466.click, 'call', _467 => _467()]),
26014
26327
  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: [
26015
26328
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
26016
26329
  /* @__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" })
@@ -26095,7 +26408,7 @@ function SocialLinksManager({
26095
26408
  className = ""
26096
26409
  }) {
26097
26410
  const addLink = () => {
26098
- const firstPlatform = _optionalChain([platforms, 'access', _465 => _465[0], 'optionalAccess', _466 => _466.name]) || "website";
26411
+ const firstPlatform = _optionalChain([platforms, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.name]) || "website";
26099
26412
  onChange([...links, { platform: firstPlatform, url: "" }]);
26100
26413
  };
26101
26414
  const removeLink = (index) => {
@@ -26107,7 +26420,7 @@ function SocialLinksManager({
26107
26420
  onChange(updated);
26108
26421
  };
26109
26422
  const getIcon = (link, platform) => {
26110
- const iconKey = _optionalChain([platform, 'optionalAccess', _467 => _467.icon_name]) || link.platform;
26423
+ const iconKey = _optionalChain([platform, 'optionalAccess', _470 => _470.icon_name]) || link.platform;
26111
26424
  const IconComponent = iconMap[iconKey];
26112
26425
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
26113
26426
  };
@@ -26132,7 +26445,7 @@ function SocialLinksManager({
26132
26445
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26133
26446
  _chunkQJGRP2YEcjs.Input,
26134
26447
  {
26135
- placeholder: _optionalChain([platform, 'optionalAccess', _468 => _468.placeholder]) || "Profile URL",
26448
+ placeholder: _optionalChain([platform, 'optionalAccess', _471 => _471.placeholder]) || "Profile URL",
26136
26449
  value: link.url,
26137
26450
  onChange: (e) => updateLink(index, "url", e.target.value),
26138
26451
  onKeyDown: (e) => {
@@ -26176,7 +26489,7 @@ function SocialLinksManager({
26176
26489
  _chunkQJGRP2YEcjs.init_button2.call(void 0, );
26177
26490
 
26178
26491
 
26179
- var StartWithOpenFrameButton = React86.forwardRef(({ children = "Start Free Trial", mode = "outline", className, buttonSize, loading = false, buttonBackgroundColor, buttonTextColor, ...props }, ref) => {
26492
+ var StartWithOpenFrameButton = React87.forwardRef(({ children = "Start Free Trial", mode = "outline", className, buttonSize, loading = false, buttonBackgroundColor, buttonTextColor, ...props }, ref) => {
26180
26493
  const isYellow = mode === "yellow";
26181
26494
  const isPink = mode === "pink" || mode === "purple";
26182
26495
  const isCyan = mode === "cyan";
@@ -26511,7 +26824,7 @@ function useVideoOriginPreconnect({
26511
26824
  supabaseStorageOrigin
26512
26825
  } = {}) {
26513
26826
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
26514
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _469 => _469.endpoints, 'access', _470 => _470.supabaseStorageOrigin])));
26827
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _472 => _472.endpoints, 'access', _473 => _473.supabaseStorageOrigin])));
26515
26828
  try {
26516
26829
  ReactDOM2.default.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
26517
26830
  ReactDOM2.default.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
@@ -26530,13 +26843,13 @@ function useVideoWarmup({
26530
26843
  nearMargin = "1000px"
26531
26844
  } = {}) {
26532
26845
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
26533
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _471 => _471.endpoints, 'access', _472 => _472.supabaseStorageOrigin])));
26846
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _474 => _474.endpoints, 'access', _475 => _475.supabaseStorageOrigin])));
26534
26847
  useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
26535
26848
  const { ref, isNear } = _chunk27IO7V3Pcjs.useNearViewport.call(void 0, nearMargin);
26536
26849
  _react.useEffect.call(void 0, () => {
26537
26850
  if (!isNear || !videoUrl || !resolvedOrigin) return;
26538
26851
  const conn = navigator.connection;
26539
- if (_optionalChain([conn, 'optionalAccess', _473 => _473.saveData]) === true) return;
26852
+ if (_optionalChain([conn, 'optionalAccess', _476 => _476.saveData]) === true) return;
26540
26853
  let videoOrigin;
26541
26854
  try {
26542
26855
  videoOrigin = new URL(videoUrl, "http://placeholder.local").origin;
@@ -26606,7 +26919,7 @@ function VideoSourceSelector({
26606
26919
  input.accept = "video/*";
26607
26920
  input.onchange = async (e) => {
26608
26921
  const target = e.target;
26609
- const file = _optionalChain([target, 'access', _474 => _474.files, 'optionalAccess', _475 => _475[0]]);
26922
+ const file = _optionalChain([target, 'access', _477 => _477.files, 'optionalAccess', _478 => _478[0]]);
26610
26923
  if (!file) return;
26611
26924
  setIsUploading(true);
26612
26925
  setUploadProgress(0);
@@ -26967,7 +27280,7 @@ function TranscriptSummaryEditor({
26967
27280
  {
26968
27281
  id: "subtitles",
26969
27282
  value: subtitles || "",
26970
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _476 => _476(e.target.value)]),
27283
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _479 => _479(e.target.value)]),
26971
27284
  placeholder: subtitlesPlaceholder,
26972
27285
  disabled: disabled || !onSubtitlesChange,
26973
27286
  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",
@@ -27120,7 +27433,7 @@ var AIEnrichSection = ({
27120
27433
  }) => {
27121
27434
  const hasResults = status === "success" || status === "error";
27122
27435
  const shouldDisable = disabled || !canEnrich;
27123
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _477 => _477.filter, 'call', _478 => _478((f) => !f.isFilled)]) || [];
27436
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _480 => _480.filter, 'call', _481 => _481((f) => !f.isFilled)]) || [];
27124
27437
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27125
27438
  "div",
27126
27439
  {
@@ -27158,7 +27471,7 @@ var AIEnrichSection = ({
27158
27471
  {
27159
27472
  id: "ai-enrich-custom-instructions",
27160
27473
  value: _nullishCoalesce(customInstructions, () => ( "")),
27161
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _479 => _479(e.target.value)]),
27474
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _482 => _482(e.target.value)]),
27162
27475
  placeholder: customInstructionsPlaceholder,
27163
27476
  disabled: loading,
27164
27477
  maxLength: customInstructionsMaxLength,
@@ -27287,7 +27600,7 @@ function HighlightVideoSection({
27287
27600
  input.accept = "video/*";
27288
27601
  input.onchange = async (e) => {
27289
27602
  const target = e.target;
27290
- const file = _optionalChain([target, 'access', _480 => _480.files, 'optionalAccess', _481 => _481[0]]);
27603
+ const file = _optionalChain([target, 'access', _483 => _483.files, 'optionalAccess', _484 => _484[0]]);
27291
27604
  if (!file) return;
27292
27605
  setUploadError(null);
27293
27606
  try {
@@ -27789,7 +28102,7 @@ function HighlightVideoPreview({
27789
28102
  input.accept = "video/*";
27790
28103
  input.onchange = async (e) => {
27791
28104
  const target = e.target;
27792
- const file = _optionalChain([target, 'access', _482 => _482.files, 'optionalAccess', _483 => _483[0]]);
28105
+ const file = _optionalChain([target, 'access', _485 => _485.files, 'optionalAccess', _486 => _486[0]]);
27793
28106
  if (!file) return;
27794
28107
  await onUpload(file);
27795
28108
  };
@@ -27976,7 +28289,7 @@ function HighlightVideoCombinedSection({
27976
28289
  input.accept = "video/*";
27977
28290
  input.onchange = async (e) => {
27978
28291
  const target = e.target;
27979
- const file = _optionalChain([target, 'access', _484 => _484.files, 'optionalAccess', _485 => _485[0]]);
28292
+ const file = _optionalChain([target, 'access', _487 => _487.files, 'optionalAccess', _488 => _488[0]]);
27980
28293
  if (!file) return;
27981
28294
  await onUpload(file);
27982
28295
  };
@@ -28136,7 +28449,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
28136
28449
 
28137
28450
  var DropdownMenu2 = DropdownMenuPrimitive2.Root;
28138
28451
  var DropdownMenuTrigger2 = DropdownMenuPrimitive2.Trigger;
28139
- var DropdownMenuSubTrigger = React89.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28452
+ var DropdownMenuSubTrigger = React90.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28140
28453
  DropdownMenuPrimitive2.SubTrigger,
28141
28454
  {
28142
28455
  ref,
@@ -28153,7 +28466,7 @@ var DropdownMenuSubTrigger = React89.forwardRef(({ className, inset, children, .
28153
28466
  }
28154
28467
  ));
28155
28468
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive2.SubTrigger.displayName;
28156
- var DropdownMenuSubContent = React89.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28469
+ var DropdownMenuSubContent = React90.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28157
28470
  DropdownMenuPrimitive2.SubContent,
28158
28471
  {
28159
28472
  ref,
@@ -28165,7 +28478,7 @@ var DropdownMenuSubContent = React89.forwardRef(({ className, ...props }, ref) =
28165
28478
  }
28166
28479
  ));
28167
28480
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive2.SubContent.displayName;
28168
- var DropdownMenuContent2 = React89.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive2.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28481
+ var DropdownMenuContent2 = React90.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive2.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28169
28482
  DropdownMenuPrimitive2.Content,
28170
28483
  {
28171
28484
  ref,
@@ -28178,7 +28491,7 @@ var DropdownMenuContent2 = React89.forwardRef(({ className, sideOffset = 4, ...p
28178
28491
  }
28179
28492
  ) }));
28180
28493
  DropdownMenuContent2.displayName = DropdownMenuPrimitive2.Content.displayName;
28181
- var DropdownMenuItem2 = React89.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28494
+ var DropdownMenuItem2 = React90.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28182
28495
  DropdownMenuPrimitive2.Item,
28183
28496
  {
28184
28497
  ref,
@@ -28191,7 +28504,7 @@ var DropdownMenuItem2 = React89.forwardRef(({ className, inset, ...props }, ref)
28191
28504
  }
28192
28505
  ));
28193
28506
  DropdownMenuItem2.displayName = DropdownMenuPrimitive2.Item.displayName;
28194
- var DropdownMenuCheckboxItem = React89.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28507
+ var DropdownMenuCheckboxItem = React90.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28195
28508
  DropdownMenuPrimitive2.CheckboxItem,
28196
28509
  {
28197
28510
  ref,
@@ -28208,7 +28521,7 @@ var DropdownMenuCheckboxItem = React89.forwardRef(({ className, children, checke
28208
28521
  }
28209
28522
  ));
28210
28523
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive2.CheckboxItem.displayName;
28211
- var DropdownMenuRadioItem = React89.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28524
+ var DropdownMenuRadioItem = React90.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28212
28525
  DropdownMenuPrimitive2.RadioItem,
28213
28526
  {
28214
28527
  ref,
@@ -28224,7 +28537,7 @@ var DropdownMenuRadioItem = React89.forwardRef(({ className, children, ...props
28224
28537
  }
28225
28538
  ));
28226
28539
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive2.RadioItem.displayName;
28227
- var DropdownMenuLabel = React89.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28540
+ var DropdownMenuLabel = React90.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28228
28541
  DropdownMenuPrimitive2.Label,
28229
28542
  {
28230
28543
  ref,
@@ -28237,7 +28550,7 @@ var DropdownMenuLabel = React89.forwardRef(({ className, inset, ...props }, ref)
28237
28550
  }
28238
28551
  ));
28239
28552
  DropdownMenuLabel.displayName = DropdownMenuPrimitive2.Label.displayName;
28240
- var DropdownMenuSeparator = React89.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28553
+ var DropdownMenuSeparator = React90.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28241
28554
  DropdownMenuPrimitive2.Separator,
28242
28555
  {
28243
28556
  ref,
@@ -28273,7 +28586,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
28273
28586
  return editMode ? "Set Global Permission" : "";
28274
28587
  }
28275
28588
  const option = approvalLevelOptions.find((opt) => opt.value === level);
28276
- return _optionalChain([option, 'optionalAccess', _486 => _486.label]) || level;
28589
+ return _optionalChain([option, 'optionalAccess', _489 => _489.label]) || level;
28277
28590
  };
28278
28591
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
28279
28592
  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: [
@@ -28487,12 +28800,12 @@ function PhoneInput({
28487
28800
  const runValidation = _react.useCallback.call(void 0, (phone) => {
28488
28801
  if (!phone || digitCount(phone) === 0) {
28489
28802
  setIsInvalid(false);
28490
- _optionalChain([onValidationChange, 'optionalCall', _487 => _487(false)]);
28803
+ _optionalChain([onValidationChange, 'optionalCall', _490 => _490(false)]);
28491
28804
  return;
28492
28805
  }
28493
28806
  const invalid = !validatePhoneNumber(phone, countryCode);
28494
28807
  setIsInvalid(invalid);
28495
- _optionalChain([onValidationChange, 'optionalCall', _488 => _488(invalid)]);
28808
+ _optionalChain([onValidationChange, 'optionalCall', _491 => _491(invalid)]);
28496
28809
  }, [countryCode, digitCount, onValidationChange]);
28497
28810
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
28498
28811
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -28541,7 +28854,7 @@ function PhoneInput({
28541
28854
  debouncedValidation(val);
28542
28855
  } else if (digitCount(val) === 0) {
28543
28856
  setIsInvalid(false);
28544
- _optionalChain([onValidationChange, 'optionalCall', _489 => _489(false)]);
28857
+ _optionalChain([onValidationChange, 'optionalCall', _492 => _492(false)]);
28545
28858
  }
28546
28859
  }
28547
28860
  },
@@ -28762,7 +29075,7 @@ function WaitlistForm({
28762
29075
  // src/components/features/notifications/notifications-context.tsx
28763
29076
 
28764
29077
 
28765
- var NotificationsContext = React90.createContext(null);
29078
+ var NotificationsContext = React91.createContext(null);
28766
29079
  function mergeNotification(base, incoming) {
28767
29080
  const out = { ...base };
28768
29081
  for (const key of Object.keys(incoming)) {
@@ -28841,16 +29154,16 @@ function NotificationsProvider({
28841
29154
  onLoadMore,
28842
29155
  renderTile
28843
29156
  }) {
28844
- const [notifications, dispatch] = React90.useReducer(reducer, initialNotifications);
28845
- const [isOpen, setIsOpen] = React90.useState(false);
28846
- const [showPopups, setShowPopupsState] = React90.useState(defaultShowPopups);
28847
- const [showDesktopPopups, setShowDesktopPopupsState] = React90.useState(defaultShowDesktopPopups);
29157
+ const [notifications, dispatch] = React91.useReducer(reducer, initialNotifications);
29158
+ const [isOpen, setIsOpen] = React91.useState(false);
29159
+ const [showPopups, setShowPopupsState] = React91.useState(defaultShowPopups);
29160
+ const [showDesktopPopups, setShowDesktopPopupsState] = React91.useState(defaultShowDesktopPopups);
28848
29161
  const desktopPopupsConfigured = onShowDesktopPopupsChange !== void 0;
28849
- const actionsRef = React90.useRef(actions);
28850
- React90.useEffect(() => {
29162
+ const actionsRef = React91.useRef(actions);
29163
+ React91.useEffect(() => {
28851
29164
  actionsRef.current = actions;
28852
29165
  }, [actions]);
28853
- const addNotification = React90.useCallback(
29166
+ const addNotification = React91.useCallback(
28854
29167
  (input) => {
28855
29168
  const id = _nullishCoalesce(input.id, () => ( generateId()));
28856
29169
  const notification = {
@@ -28864,7 +29177,7 @@ function NotificationsProvider({
28864
29177
  },
28865
29178
  [maxNotifications]
28866
29179
  );
28867
- const upsertNotification = React90.useCallback(
29180
+ const upsertNotification = React91.useCallback(
28868
29181
  (input) => {
28869
29182
  const notification = {
28870
29183
  ...input,
@@ -28877,48 +29190,48 @@ function NotificationsProvider({
28877
29190
  },
28878
29191
  [maxNotifications]
28879
29192
  );
28880
- const setNotifications = React90.useCallback((list) => {
29193
+ const setNotifications = React91.useCallback((list) => {
28881
29194
  dispatch({ type: "set", notifications: list });
28882
29195
  }, []);
28883
- const markRead = React90.useCallback((id) => {
29196
+ const markRead = React91.useCallback((id) => {
28884
29197
  dispatch({ type: "markRead", id });
28885
- void _optionalChain([actionsRef, 'access', _490 => _490.current, 'optionalAccess', _491 => _491.onMarkRead, 'optionalCall', _492 => _492(id)]);
29198
+ void _optionalChain([actionsRef, 'access', _493 => _493.current, 'optionalAccess', _494 => _494.onMarkRead, 'optionalCall', _495 => _495(id)]);
28886
29199
  }, []);
28887
- const markAllRead = React90.useCallback(() => {
29200
+ const markAllRead = React91.useCallback(() => {
28888
29201
  dispatch({ type: "markAllRead" });
28889
- void _optionalChain([actionsRef, 'access', _493 => _493.current, 'optionalAccess', _494 => _494.onMarkAllRead, 'optionalCall', _495 => _495()]);
29202
+ void _optionalChain([actionsRef, 'access', _496 => _496.current, 'optionalAccess', _497 => _497.onMarkAllRead, 'optionalCall', _498 => _498()]);
28890
29203
  }, []);
28891
- const markSettled = React90.useCallback((id) => {
29204
+ const markSettled = React91.useCallback((id) => {
28892
29205
  dispatch({ type: "markSettled", id });
28893
- void _optionalChain([actionsRef, 'access', _496 => _496.current, 'optionalAccess', _497 => _497.onMarkSettled, 'optionalCall', _498 => _498(id)]);
29206
+ void _optionalChain([actionsRef, 'access', _499 => _499.current, 'optionalAccess', _500 => _500.onMarkSettled, 'optionalCall', _501 => _501(id)]);
28894
29207
  }, []);
28895
- const remove = React90.useCallback((id) => {
29208
+ const remove = React91.useCallback((id) => {
28896
29209
  dispatch({ type: "remove", id });
28897
- void _optionalChain([actionsRef, 'access', _499 => _499.current, 'optionalAccess', _500 => _500.onRemove, 'optionalCall', _501 => _501(id)]);
29210
+ void _optionalChain([actionsRef, 'access', _502 => _502.current, 'optionalAccess', _503 => _503.onRemove, 'optionalCall', _504 => _504(id)]);
28898
29211
  }, []);
28899
- const clear = React90.useCallback(() => dispatch({ type: "clear" }), []);
28900
- const open = React90.useCallback(() => setIsOpen(true), []);
28901
- const close = React90.useCallback(() => setIsOpen(false), []);
28902
- const toggle = React90.useCallback(() => setIsOpen((v) => !v), []);
28903
- const setShowPopups = React90.useCallback(
29212
+ const clear = React91.useCallback(() => dispatch({ type: "clear" }), []);
29213
+ const open = React91.useCallback(() => setIsOpen(true), []);
29214
+ const close = React91.useCallback(() => setIsOpen(false), []);
29215
+ const toggle = React91.useCallback(() => setIsOpen((v) => !v), []);
29216
+ const setShowPopups = React91.useCallback(
28904
29217
  (value2) => {
28905
29218
  setShowPopupsState(value2);
28906
- _optionalChain([onShowPopupsChange, 'optionalCall', _502 => _502(value2)]);
29219
+ _optionalChain([onShowPopupsChange, 'optionalCall', _505 => _505(value2)]);
28907
29220
  },
28908
29221
  [onShowPopupsChange]
28909
29222
  );
28910
- const setShowDesktopPopups = React90.useCallback(
29223
+ const setShowDesktopPopups = React91.useCallback(
28911
29224
  (value2) => {
28912
29225
  setShowDesktopPopupsState(value2);
28913
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _503 => _503(value2)]);
29226
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _506 => _506(value2)]);
28914
29227
  },
28915
29228
  [onShowDesktopPopupsChange]
28916
29229
  );
28917
- const unreadCount = React90.useMemo(
29230
+ const unreadCount = React91.useMemo(
28918
29231
  () => notifications.reduce((acc, n) => n.read ? acc : acc + 1, 0),
28919
29232
  [notifications]
28920
29233
  );
28921
- const value = React90.useMemo(
29234
+ const value = React91.useMemo(
28922
29235
  () => ({
28923
29236
  notifications,
28924
29237
  unreadCount,
@@ -28977,14 +29290,14 @@ function NotificationsProvider({
28977
29290
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NotificationsContext.Provider, { value, children });
28978
29291
  }
28979
29292
  function useNotifications() {
28980
- const ctx = React90.useContext(NotificationsContext);
29293
+ const ctx = React91.useContext(NotificationsContext);
28981
29294
  if (!ctx) {
28982
29295
  throw new Error("useNotifications must be used inside <NotificationsProvider>");
28983
29296
  }
28984
29297
  return ctx;
28985
29298
  }
28986
29299
  function useOptionalNotifications() {
28987
- return React90.useContext(NotificationsContext);
29300
+ return React91.useContext(NotificationsContext);
28988
29301
  }
28989
29302
 
28990
29303
  // src/components/features/notifications/notification-drawer.tsx
@@ -29014,7 +29327,7 @@ function NotificationTile({
29014
29327
  if (!counting) return;
29015
29328
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
29016
29329
  const timer = window.setTimeout(() => {
29017
- _optionalChain([onSettle, 'optionalCall', _504 => _504(id)]);
29330
+ _optionalChain([onSettle, 'optionalCall', _507 => _507(id)]);
29018
29331
  }, remaining);
29019
29332
  return () => window.clearTimeout(timer);
29020
29333
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -29076,7 +29389,7 @@ function NotificationTile({
29076
29389
  "button",
29077
29390
  {
29078
29391
  type: "button",
29079
- onClick: () => _optionalChain([onSettle, 'optionalCall', _505 => _505(id)]),
29392
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _508 => _508(id)]),
29080
29393
  "aria-label": "Dismiss notification",
29081
29394
  tabIndex: isLive ? 0 : -1,
29082
29395
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -29209,7 +29522,7 @@ function DrawerScrollList({
29209
29522
  if (!sentinel || !root) return;
29210
29523
  const observer = new IntersectionObserver(
29211
29524
  (entries) => {
29212
- if (_optionalChain([entries, 'access', _506 => _506[0], 'optionalAccess', _507 => _507.isIntersecting])) _optionalChain([loadMoreRef, 'access', _508 => _508.current, 'optionalCall', _509 => _509()]);
29525
+ if (_optionalChain([entries, 'access', _509 => _509[0], 'optionalAccess', _510 => _510.isIntersecting])) _optionalChain([loadMoreRef, 'access', _511 => _511.current, 'optionalCall', _512 => _512()]);
29213
29526
  },
29214
29527
  { root, rootMargin: loadMoreRootMargin }
29215
29528
  );
@@ -29224,7 +29537,7 @@ function DrawerScrollList({
29224
29537
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
29225
29538
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
29226
29539
  unreadNotifications.map((n) => {
29227
- const custom = _optionalChain([renderTile, 'optionalCall', _510 => _510(n, { onComplete, onSettle, liveDurationMs })]);
29540
+ const custom = _optionalChain([renderTile, 'optionalCall', _513 => _513(n, { onComplete, onSettle, liveDurationMs })]);
29228
29541
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
29229
29542
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29230
29543
  NotificationTile,
@@ -29388,7 +29701,7 @@ function NotificationPopups({
29388
29701
  className
29389
29702
  ),
29390
29703
  children: live.map((n) => {
29391
- const custom = _optionalChain([renderTile, 'optionalCall', _511 => _511(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29704
+ const custom = _optionalChain([renderTile, 'optionalCall', _514 => _514(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29392
29705
  if (custom) {
29393
29706
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
29394
29707
  }
@@ -29568,21 +29881,21 @@ function transformWebinarToProgram(webinar) {
29568
29881
  // src/components/features/notifications/types.ts
29569
29882
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
29570
29883
  function isApprovalNotification(notification) {
29571
- return _optionalChain([notification, 'access', _512 => _512.meta, 'optionalAccess', _513 => _513.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
29884
+ return _optionalChain([notification, 'access', _515 => _515.meta, 'optionalAccess', _516 => _516.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
29572
29885
  }
29573
29886
  function getApprovalMeta(notification) {
29574
29887
  if (!isApprovalNotification(notification)) return null;
29575
29888
  const meta = notification.meta;
29576
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _514 => _514.approvalRequestId]);
29577
- const toolCalls = _optionalChain([meta, 'optionalAccess', _515 => _515.toolCalls]);
29889
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _517 => _517.approvalRequestId]);
29890
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _518 => _518.toolCalls]);
29578
29891
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
29579
29892
  return {
29580
29893
  approvalRequestId,
29581
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _516 => _516.dialogId]), () => ( null)),
29582
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _517 => _517.ticketId]), () => ( null)),
29583
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _518 => _518.approvalType]), () => ( null)),
29584
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _519 => _519.resolution]), () => ( null)),
29585
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _520 => _520.resolvedByName]), () => ( null)),
29894
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _519 => _519.dialogId]), () => ( null)),
29895
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _520 => _520.ticketId]), () => ( null)),
29896
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _521 => _521.approvalType]), () => ( null)),
29897
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _522 => _522.resolution]), () => ( null)),
29898
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _523 => _523.resolvedByName]), () => ( null)),
29586
29899
  toolCalls
29587
29900
  };
29588
29901
  }
@@ -29631,7 +29944,7 @@ function ApprovalRequestNotificationTile({
29631
29944
  const [pinned, setPinned] = _react.useState.call(void 0, defaultExpanded);
29632
29945
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
29633
29946
  const approval = getApprovalMeta(notification);
29634
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _521 => _521.resolution]));
29947
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _524 => _524.resolution]));
29635
29948
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
29636
29949
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
29637
29950
  const { innerRef, containerStyle } = useCollapsible({ expanded });
@@ -29706,24 +30019,24 @@ function ApprovalRequestNotificationTile({
29706
30019
  // src/components/features/time-tracker/time-tracker-context.tsx
29707
30020
 
29708
30021
 
29709
- var TimeTrackerContext = React91.createContext(null);
30022
+ var TimeTrackerContext = React92.createContext(null);
29710
30023
  function TimeTrackerProvider({ children, defaultOpen = false, ...data }) {
29711
- const [isOpen, setIsOpen] = React91.useState(defaultOpen);
29712
- const open = React91.useCallback(() => setIsOpen(true), []);
29713
- const close = React91.useCallback(() => setIsOpen(false), []);
29714
- const toggle = React91.useCallback(() => setIsOpen((v) => !v), []);
30024
+ const [isOpen, setIsOpen] = React92.useState(defaultOpen);
30025
+ const open = React92.useCallback(() => setIsOpen(true), []);
30026
+ const close = React92.useCallback(() => setIsOpen(false), []);
30027
+ const toggle = React92.useCallback(() => setIsOpen((v) => !v), []);
29715
30028
  const value = { ...data, isOpen, open, close, toggle };
29716
30029
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeTrackerContext.Provider, { value, children });
29717
30030
  }
29718
30031
  function useTimeTracker() {
29719
- const ctx = React91.useContext(TimeTrackerContext);
30032
+ const ctx = React92.useContext(TimeTrackerContext);
29720
30033
  if (!ctx) {
29721
30034
  throw new Error("useTimeTracker must be used inside <TimeTrackerProvider>");
29722
30035
  }
29723
30036
  return ctx;
29724
30037
  }
29725
30038
  function useOptionalTimeTracker() {
29726
- return React91.useContext(TimeTrackerContext);
30039
+ return React92.useContext(TimeTrackerContext);
29727
30040
  }
29728
30041
 
29729
30042
  // src/components/features/time-tracker/time-tracker-panel.tsx
@@ -29899,7 +30212,7 @@ function TimeTrackerPanel({
29899
30212
  error: showFieldError ? "Required if no notes added" : void 0,
29900
30213
  disableClientFilter: !!onTicketSearch,
29901
30214
  onInputChange: (value, reason) => {
29902
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _522 => _522(value)]);
30215
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _525 => _525(value)]);
29903
30216
  }
29904
30217
  }
29905
30218
  )
@@ -29989,7 +30302,7 @@ function LastEntryRow({ entry, onClick }) {
29989
30302
  {
29990
30303
  variant: "outline",
29991
30304
  size: "icon",
29992
- onClick: () => _optionalChain([onClick, 'optionalCall', _523 => _523(entry)]),
30305
+ onClick: () => _optionalChain([onClick, 'optionalCall', _526 => _526(entry)]),
29993
30306
  disabled: !onClick,
29994
30307
  "aria-label": `Open entry: ${entry.title}`,
29995
30308
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -30033,16 +30346,16 @@ function HeaderButton({
30033
30346
  function TimeTrackerHeaderButton({ className, disabled }) {
30034
30347
  const ctx = useOptionalTimeTracker();
30035
30348
  const elapsedLabel = useTrackerClock({
30036
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _524 => _524.status]), () => ( "ready")),
30037
- runningSince: _optionalChain([ctx, 'optionalAccess', _525 => _525.runningSince]),
30038
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _526 => _526.accumulatedMs])
30349
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _527 => _527.status]), () => ( "ready")),
30350
+ runningSince: _optionalChain([ctx, 'optionalAccess', _528 => _528.runningSince]),
30351
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _529 => _529.accumulatedMs])
30039
30352
  });
30040
30353
  if (!ctx) return null;
30041
30354
  const { isOpen, open, close, status } = ctx;
30042
30355
  const isPaused = status === "paused";
30043
30356
  const isActive = status === "tracking" || isPaused;
30044
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive3.Root, { open: isOpen, onOpenChange: (next) => next ? open() : close(), children: [
30045
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive3.Trigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30357
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive4.Root, { open: isOpen, onOpenChange: (next) => next ? open() : close(), children: [
30358
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30046
30359
  HeaderButton,
30047
30360
  {
30048
30361
  "aria-label": "Time tracker",
@@ -30076,8 +30389,8 @@ function TimeTrackerHeaderButton({ className, disabled }) {
30076
30389
  ] })
30077
30390
  }
30078
30391
  ) }),
30079
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive3.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30080
- PopoverPrimitive3.Content,
30392
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive4.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30393
+ PopoverPrimitive4.Content,
30081
30394
  {
30082
30395
  align: "end",
30083
30396
  sideOffset: 8,
@@ -30234,7 +30547,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
30234
30547
 
30235
30548
 
30236
30549
  function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
30237
- const [expanded, setExpanded] = React92.useState(false);
30550
+ const [expanded, setExpanded] = React93.useState(false);
30238
30551
  const { innerRef, containerStyle } = useCollapsible({ expanded });
30239
30552
  const isAdmin = pendingApproval.approvalType === "ADMIN";
30240
30553
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
@@ -30302,7 +30615,7 @@ function TicketCard({
30302
30615
  onApprove,
30303
30616
  onReject
30304
30617
  }) {
30305
- const sortableData = React93.useMemo(
30618
+ const sortableData = React94.useMemo(
30306
30619
  () => ({ columnId, type: "ticket" }),
30307
30620
  [columnId]
30308
30621
  );
@@ -30318,15 +30631,15 @@ function TicketCard({
30318
30631
  transition: sortable.transition
30319
30632
  };
30320
30633
  if (showNewMessage) style.borderColor = columnColor;
30321
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _527 => _527.deviceHostnames, 'optionalAccess', _528 => _528.length]) || ticket.organizationName);
30634
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _530 => _530.deviceHostnames, 'optionalAccess', _531 => _531.length]) || ticket.organizationName);
30322
30635
  const deviceText = [
30323
- _optionalChain([ticket, 'access', _529 => _529.deviceHostnames, 'optionalAccess', _530 => _530.join, 'call', _531 => _531(", ")]),
30636
+ _optionalChain([ticket, 'access', _532 => _532.deviceHostnames, 'optionalAccess', _533 => _533.join, 'call', _534 => _534(", ")]),
30324
30637
  ticket.organizationName
30325
30638
  ].filter(Boolean).join(", ");
30326
30639
  const handleClick = (e) => {
30327
30640
  if (sortable.isDragging) e.preventDefault();
30328
30641
  };
30329
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _532 => _532.assignees, 'optionalAccess', _533 => _533.length]) || renderAssignSlot);
30642
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _535 => _535.assignees, 'optionalAccess', _536 => _536.length]) || renderAssignSlot);
30330
30643
  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: [
30331
30644
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30332
30645
  _chunkGXRWE7NBcjs.Flag02Icon,
@@ -30335,7 +30648,7 @@ function TicketCard({
30335
30648
  "aria-label": `Priority: ${ticket.priority}`
30336
30649
  }
30337
30650
  ),
30338
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _534 => _534.assignees, 'optionalAccess', _535 => _535.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
30651
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _537 => _537.assignees, 'optionalAccess', _538 => _538.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
30339
30652
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30340
30653
  SquareAvatar,
30341
30654
  {
@@ -30366,7 +30679,7 @@ function TicketCard({
30366
30679
  ] }),
30367
30680
  rightSection
30368
30681
  ] }),
30369
- _optionalChain([ticket, 'access', _536 => _536.tags, 'optionalAccess', _537 => _537.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30682
+ _optionalChain([ticket, 'access', _539 => _539.tags, 'optionalAccess', _540 => _540.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30370
30683
  timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
30371
30684
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto text-h6 truncate text-ods-text-secondary", children: timestampLabel }) }),
30372
30685
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { children: tooltipLabel })
@@ -30448,7 +30761,7 @@ function TicketTagRow({ tags }) {
30448
30761
 
30449
30762
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
30450
30763
 
30451
- var TicketCardSkeleton = React94.forwardRef(
30764
+ var TicketCardSkeleton = React95.forwardRef(
30452
30765
  ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30453
30766
  "div",
30454
30767
  {
@@ -30542,8 +30855,8 @@ function BoardColumn({
30542
30855
  );
30543
30856
  }
30544
30857
  function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReject, onLoadMore, loadMoreRootMargin }) {
30545
- const ticketIds = React95.useMemo(() => column.tickets.map((t) => t.id), [column.tickets]);
30546
- const droppableData = React95.useMemo(
30858
+ const ticketIds = React96.useMemo(() => column.tickets.map((t) => t.id), [column.tickets]);
30859
+ const droppableData = React96.useMemo(
30547
30860
  () => ({ columnId: column.id, type: "column" }),
30548
30861
  [column.id]
30549
30862
  );
@@ -30552,13 +30865,13 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30552
30865
  data: droppableData,
30553
30866
  disabled: column.dropDisabled
30554
30867
  });
30555
- const scrollRef = React95.useRef(null);
30556
- const sentinelRef = React95.useRef(null);
30557
- const loadMoreRef = React95.useRef(onLoadMore);
30868
+ const scrollRef = React96.useRef(null);
30869
+ const sentinelRef = React96.useRef(null);
30870
+ const loadMoreRef = React96.useRef(onLoadMore);
30558
30871
  loadMoreRef.current = onLoadMore;
30559
- const columnIdRef = React95.useRef(column.id);
30872
+ const columnIdRef = React96.useRef(column.id);
30560
30873
  columnIdRef.current = column.id;
30561
- React95.useEffect(() => {
30874
+ React96.useEffect(() => {
30562
30875
  if (!column.hasMore || column.isLoadingMore) return;
30563
30876
  const sentinel = sentinelRef.current;
30564
30877
  const root = scrollRef.current;
@@ -30566,7 +30879,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30566
30879
  const observer = new IntersectionObserver(
30567
30880
  (entries) => {
30568
30881
  if (entries.some((e) => e.isIntersecting)) {
30569
- _optionalChain([loadMoreRef, 'access', _538 => _538.current, 'optionalCall', _539 => _539(columnIdRef.current)]);
30882
+ _optionalChain([loadMoreRef, 'access', _541 => _541.current, 'optionalCall', _542 => _542(columnIdRef.current)]);
30570
30883
  }
30571
30884
  },
30572
30885
  { root, rootMargin: loadMoreRootMargin }
@@ -30574,7 +30887,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30574
30887
  observer.observe(sentinel);
30575
30888
  return () => observer.disconnect();
30576
30889
  }, [column.hasMore, column.isLoadingMore, loadMoreRootMargin]);
30577
- const setBodyRef = React95.useCallback(
30890
+ const setBodyRef = React96.useCallback(
30578
30891
  (el) => {
30579
30892
  scrollRef.current = el;
30580
30893
  setDroppableRef(el);
@@ -30596,7 +30909,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30596
30909
  ticket: t,
30597
30910
  columnId: column.id,
30598
30911
  columnColor: column.color,
30599
- href: _optionalChain([getTicketHref, 'optionalCall', _540 => _540(t.id)]),
30912
+ href: _optionalChain([getTicketHref, 'optionalCall', _543 => _543(t.id)]),
30600
30913
  renderAssignSlot,
30601
30914
  onApprove,
30602
30915
  onReject,
@@ -30611,7 +30924,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30611
30924
  );
30612
30925
  }
30613
30926
  function SkeletonStack({ count = 4 }) {
30614
- const keys = React95.useMemo(
30927
+ const keys = React96.useMemo(
30615
30928
  () => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
30616
30929
  [count]
30617
30930
  );
@@ -30681,32 +30994,32 @@ function Board({
30681
30994
  onThumbPointerMove,
30682
30995
  onThumbPointerUp
30683
30996
  } = _chunk27IO7V3Pcjs.useHorizontalScrollbar.call(void 0, );
30684
- const [items, setItems] = React96.useState(columns);
30685
- const isDraggingRef = React96.useRef(false);
30686
- React96.useEffect(() => {
30997
+ const [items, setItems] = React97.useState(columns);
30998
+ const isDraggingRef = React97.useRef(false);
30999
+ React97.useEffect(() => {
30687
31000
  if (!isDraggingRef.current) setItems(columns);
30688
31001
  }, [columns]);
30689
- const dragOriginRef = React96.useRef(null);
30690
- const [activeTicket, setActiveTicket] = React96.useState(null);
31002
+ const dragOriginRef = React97.useRef(null);
31003
+ const [activeTicket, setActiveTicket] = React97.useState(null);
30691
31004
  const sensors = _core.useSensors.call(void 0,
30692
31005
  _core.useSensor.call(void 0, _core.PointerSensor, { activationConstraint: { distance: 6 } }),
30693
31006
  _core.useSensor.call(void 0, _core.KeyboardSensor, { coordinateGetter: _sortable.sortableKeyboardCoordinates })
30694
31007
  );
30695
- const collisionDetection = React96.useCallback((args) => {
31008
+ const collisionDetection = React97.useCallback((args) => {
30696
31009
  const pointer = _core.pointerWithin.call(void 0, args);
30697
31010
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
30698
31011
  const ticketHit = intersections.find(
30699
- (c) => _optionalChain([c, 'access', _541 => _541.data, 'optionalAccess', _542 => _542.droppableContainer, 'optionalAccess', _543 => _543.data, 'optionalAccess', _544 => _544.current, 'optionalAccess', _545 => _545.type]) === "ticket"
31012
+ (c) => _optionalChain([c, 'access', _544 => _544.data, 'optionalAccess', _545 => _545.droppableContainer, 'optionalAccess', _546 => _546.data, 'optionalAccess', _547 => _547.current, 'optionalAccess', _548 => _548.type]) === "ticket"
30700
31013
  );
30701
31014
  if (ticketHit) return [ticketHit];
30702
31015
  const columnHit = intersections.find(
30703
- (c) => _optionalChain([c, 'access', _546 => _546.data, 'optionalAccess', _547 => _547.droppableContainer, 'optionalAccess', _548 => _548.data, 'optionalAccess', _549 => _549.current, 'optionalAccess', _550 => _550.type]) === "column"
31016
+ (c) => _optionalChain([c, 'access', _549 => _549.data, 'optionalAccess', _550 => _550.droppableContainer, 'optionalAccess', _551 => _551.data, 'optionalAccess', _552 => _552.current, 'optionalAccess', _553 => _553.type]) === "column"
30704
31017
  );
30705
31018
  if (columnHit) {
30706
- const columnId = _optionalChain([columnHit, 'access', _551 => _551.data, 'optionalAccess', _552 => _552.droppableContainer, 'optionalAccess', _553 => _553.data, 'optionalAccess', _554 => _554.current, 'optionalAccess', _555 => _555.columnId]);
31019
+ const columnId = _optionalChain([columnHit, 'access', _554 => _554.data, 'optionalAccess', _555 => _555.droppableContainer, 'optionalAccess', _556 => _556.data, 'optionalAccess', _557 => _557.current, 'optionalAccess', _558 => _558.columnId]);
30707
31020
  const ticketsInColumn = args.droppableContainers.filter((c) => {
30708
31021
  const d = c.data.current;
30709
- return _optionalChain([d, 'optionalAccess', _556 => _556.type]) === "ticket" && d.columnId === columnId;
31022
+ return _optionalChain([d, 'optionalAccess', _559 => _559.type]) === "ticket" && d.columnId === columnId;
30710
31023
  });
30711
31024
  if (ticketsInColumn.length > 0) {
30712
31025
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -30731,20 +31044,20 @@ function Board({
30731
31044
  const overId = String(over.id);
30732
31045
  if (activeId === overId) return;
30733
31046
  const overData = over.data.current;
30734
- const fromColumnId = _optionalChain([locate, 'call', _557 => _557(items, activeId), 'optionalAccess', _558 => _558.columnId]);
30735
- const toColumnId = _optionalChain([overData, 'optionalAccess', _559 => _559.columnId]);
31047
+ const fromColumnId = _optionalChain([locate, 'call', _560 => _560(items, activeId), 'optionalAccess', _561 => _561.columnId]);
31048
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _562 => _562.columnId]);
30736
31049
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
30737
31050
  const origin = dragOriginRef.current;
30738
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _560 => _560.fromColumnId]) === toColumnId;
31051
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _563 => _563.fromColumnId]) === toColumnId;
30739
31052
  const targetCol = items.find((c) => c.id === toColumnId);
30740
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _561 => _561.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
30741
- if (_optionalChain([targetCol, 'optionalAccess', _562 => _562.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
31053
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _564 => _564.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
31054
+ if (_optionalChain([targetCol, 'optionalAccess', _565 => _565.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
30742
31055
  setItems((prev) => {
30743
31056
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
30744
31057
  const toCol = prev.find((c) => c.id === toColumnId);
30745
31058
  if (fromIndex < 0 || !toCol) return prev;
30746
31059
  let toIndex;
30747
- if (_optionalChain([overData, 'optionalAccess', _563 => _563.type]) === "column") {
31060
+ if (_optionalChain([overData, 'optionalAccess', _566 => _566.type]) === "column") {
30748
31061
  toIndex = toCol.tickets.length;
30749
31062
  } else {
30750
31063
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -30786,14 +31099,14 @@ function Board({
30786
31099
  const toColumnId = located.columnId;
30787
31100
  const isCrossColumn = origin.fromColumnId !== toColumnId;
30788
31101
  const targetCol = items.find((c) => c.id === toColumnId);
30789
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _564 => _564.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _565 => _565.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
31102
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _567 => _567.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _568 => _568.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
30790
31103
  setItems(columns);
30791
31104
  return;
30792
31105
  }
30793
31106
  let finalIndex = located.index;
30794
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _566 => _566.find, 'call', _567 => _567((c) => c.id === toColumnId), 'optionalAccess', _568 => _568.tickets]), () => ( []));
31107
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _569 => _569.find, 'call', _570 => _570((c) => c.id === toColumnId), 'optionalAccess', _571 => _571.tickets]), () => ( []));
30795
31108
  const overData = over.data.current;
30796
- if (_optionalChain([overData, 'optionalAccess', _569 => _569.type]) === "ticket") {
31109
+ if (_optionalChain([overData, 'optionalAccess', _572 => _572.type]) === "ticket") {
30797
31110
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
30798
31111
  if (overIndex >= 0 && overIndex !== located.index) {
30799
31112
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -30813,8 +31126,8 @@ function Board({
30813
31126
  ticketId: origin.ticketId,
30814
31127
  fromColumnId: origin.fromColumnId,
30815
31128
  toColumnId,
30816
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _570 => _570[finalIndex - 1], 'optionalAccess', _571 => _571.id]), () => ( null)),
30817
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _572 => _572[finalIndex + 1], 'optionalAccess', _573 => _573.id]), () => ( null))
31129
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _573 => _573[finalIndex - 1], 'optionalAccess', _574 => _574.id]), () => ( null)),
31130
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _575 => _575[finalIndex + 1], 'optionalAccess', _576 => _576.id]), () => ( null))
30818
31131
  });
30819
31132
  };
30820
31133
  const handleDragCancel = () => {
@@ -30843,10 +31156,10 @@ function Board({
30843
31156
  children: items.map((column, i) => {
30844
31157
  const prev = items[i - 1];
30845
31158
  const next = items[i + 1];
30846
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _574 => _574.system]));
30847
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _575 => _575.system]));
31159
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _577 => _577.system]));
31160
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _578 => _578.system]));
30848
31161
  const showGap = i > 0 && !joinLeft;
30849
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React96.Fragment, { children: [
31162
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React97.Fragment, { children: [
30850
31163
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
30851
31164
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30852
31165
  BoardColumn,
@@ -30897,7 +31210,7 @@ function Board({
30897
31210
  {
30898
31211
  ticket: activeTicket.ticket,
30899
31212
  columnId: activeTicket.columnId,
30900
- columnColor: _optionalChain([items, 'access', _576 => _576.find, 'call', _577 => _577((c) => c.id === activeTicket.columnId), 'optionalAccess', _578 => _578.color]),
31213
+ columnColor: _optionalChain([items, 'access', _579 => _579.find, 'call', _580 => _580((c) => c.id === activeTicket.columnId), 'optionalAccess', _581 => _581.color]),
30901
31214
  isOverlay: true
30902
31215
  }
30903
31216
  ) : null })
@@ -30913,7 +31226,7 @@ function locate(cols, ticketId) {
30913
31226
  return null;
30914
31227
  }
30915
31228
  function findIndexInColumn(cols, columnId, ticketId) {
30916
- return _nullishCoalesce(_optionalChain([cols, 'access', _579 => _579.find, 'call', _580 => _580((c) => c.id === columnId), 'optionalAccess', _581 => _581.tickets, 'access', _582 => _582.findIndex, 'call', _583 => _583((t) => t.id === ticketId)]), () => ( -1));
31229
+ return _nullishCoalesce(_optionalChain([cols, 'access', _582 => _582.find, 'call', _583 => _583((c) => c.id === columnId), 'optionalAccess', _584 => _584.tickets, 'access', _585 => _585.findIndex, 'call', _586 => _586((t) => t.id === ticketId)]), () => ( -1));
30917
31230
  }
30918
31231
 
30919
31232
  // src/components/features/board/types.ts
@@ -31004,7 +31317,7 @@ function TicketStatusConfigList({
31004
31317
  if (oldIndex === -1 || newIndex === -1) return;
31005
31318
  onReorder(oldIndex, newIndex);
31006
31319
  };
31007
- const sortableIds = React97.useMemo(() => items.map((i) => i.id), [items]);
31320
+ const sortableIds = React98.useMemo(() => items.map((i) => i.id), [items]);
31008
31321
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _core.DndContext, { sensors, collisionDetection: _core.closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _sortable.SortableContext, { items: sortableIds, strategy: _sortable.verticalListSortingStrategy, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className), children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { id: item.id, children: (args) => renderRow(item, args) }, item.id)) }) }) });
31009
31322
  }
31010
31323
  function SortableRow({
@@ -31095,7 +31408,7 @@ function Header2({ config, platform }) {
31095
31408
  }, [config.autoHide]);
31096
31409
  const renderNavigationItem = (item) => {
31097
31410
  if (item.element) {
31098
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: item.element }, item.id);
31411
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: item.element }, item.id);
31099
31412
  }
31100
31413
  if (item.children && item.children.length > 0) {
31101
31414
  const isOpen = openDropdowns[item.id] || false;
@@ -31161,7 +31474,7 @@ function Header2({ config, platform }) {
31161
31474
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
31162
31475
  "flex justify-start w-full",
31163
31476
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
31164
- index < (_nullishCoalesce(_optionalChain([item, 'access', _584 => _584.children, 'optionalAccess', _585 => _585.length]), () => ( 0))) - 1 && "mb-1",
31477
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _587 => _587.children, 'optionalAccess', _588 => _588.length]), () => ( 0))) - 1 && "mb-1",
31165
31478
  "text-ods-text-primary",
31166
31479
  // All dropdown items use primary text color
31167
31480
  child.isActive && "bg-ods-bg-hover"
@@ -31253,7 +31566,7 @@ function Header2({ config, platform }) {
31253
31566
  style: config.style,
31254
31567
  children: [
31255
31568
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
31256
- _optionalChain([config, 'access', _586 => _586.actions, 'optionalAccess', _587 => _587.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
31569
+ _optionalChain([config, 'access', _589 => _589.actions, 'optionalAccess', _590 => _590.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
31257
31570
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWBR7H6E3cjs.next_link_default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
31258
31571
  ] }),
31259
31572
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31270,7 +31583,7 @@ function Header2({ config, platform }) {
31270
31583
  }
31271
31584
  ),
31272
31585
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
31273
- _optionalChain([config, 'access', _588 => _588.actions, 'optionalAccess', _589 => _589.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
31586
+ _optionalChain([config, 'access', _591 => _591.actions, 'optionalAccess', _592 => _592.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
31274
31587
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31275
31588
  _chunkQJGRP2YEcjs.Button,
31276
31589
  {
@@ -31278,10 +31591,10 @@ function Header2({ config, platform }) {
31278
31591
  size: "icon",
31279
31592
  className: "flex md:hidden",
31280
31593
  onClick: () => {
31281
- _optionalChain([config, 'access', _590 => _590.mobile, 'optionalAccess', _591 => _591.onToggle, 'optionalCall', _592 => _592()]);
31594
+ _optionalChain([config, 'access', _593 => _593.mobile, 'optionalAccess', _594 => _594.onToggle, 'optionalCall', _595 => _595()]);
31282
31595
  },
31283
- "aria-label": _optionalChain([config, 'access', _593 => _593.mobile, 'optionalAccess', _594 => _594.isOpen]) ? "Close menu" : "Open menu",
31284
- leftIcon: _optionalChain([config, 'access', _595 => _595.mobile, 'optionalAccess', _596 => _596.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Menu01Icon, {})
31596
+ "aria-label": _optionalChain([config, 'access', _596 => _596.mobile, 'optionalAccess', _597 => _597.isOpen]) ? "Close menu" : "Open menu",
31597
+ leftIcon: _optionalChain([config, 'access', _598 => _598.mobile, 'optionalAccess', _599 => _599.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Menu01Icon, {})
31285
31598
  }
31286
31599
  )
31287
31600
  ] })
@@ -31298,10 +31611,10 @@ function Header2({ config, platform }) {
31298
31611
  // src/components/navigation/header-skeleton.tsx
31299
31612
 
31300
31613
  function HeaderSkeleton({ config }) {
31301
- const showNavigation = _optionalChain([config, 'optionalAccess', _597 => _597.navigation]) && config.navigation.items.length > 0;
31302
- const showActions = _optionalChain([config, 'optionalAccess', _598 => _598.actions, 'optionalAccess', _599 => _599.right]) && config.actions.right.length > 0;
31303
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _600 => _600.mobile, 'optionalAccess', _601 => _601.enabled]);
31304
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _602 => _602.className, 'optionalAccess', _603 => _603.includes, 'call', _604 => _604("admin")]);
31614
+ const showNavigation = _optionalChain([config, 'optionalAccess', _600 => _600.navigation]) && config.navigation.items.length > 0;
31615
+ const showActions = _optionalChain([config, 'optionalAccess', _601 => _601.actions, 'optionalAccess', _602 => _602.right]) && config.actions.right.length > 0;
31616
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _603 => _603.mobile, 'optionalAccess', _604 => _604.enabled]);
31617
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _605 => _605.className, 'optionalAccess', _606 => _606.includes, 'call', _607 => _607("admin")]);
31305
31618
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31306
31619
  "header",
31307
31620
  {
@@ -31310,11 +31623,11 @@ function HeaderSkeleton({ config }) {
31310
31623
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
31311
31624
  "px-6 py-3",
31312
31625
  "transition-opacity duration-300 ease-in-out",
31313
- _optionalChain([config, 'optionalAccess', _605 => _605.className])
31626
+ _optionalChain([config, 'optionalAccess', _608 => _608.className])
31314
31627
  ),
31315
31628
  children: [
31316
31629
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
31317
- isAdminHeader && _optionalChain([config, 'optionalAccess', _606 => _606.actions, 'optionalAccess', _607 => _607.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" }) }),
31630
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _609 => _609.actions, 'optionalAccess', _610 => _610.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" }) }),
31318
31631
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
31319
31632
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
31320
31633
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -31322,8 +31635,8 @@ function HeaderSkeleton({ config }) {
31322
31635
  ] }),
31323
31636
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
31324
31637
  "hidden md:flex items-center gap-2",
31325
- _optionalChain([config, 'optionalAccess', _608 => _608.navigation, 'optionalAccess', _609 => _609.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31326
- _optionalChain([config, 'optionalAccess', _610 => _610.navigation, 'optionalAccess', _611 => _611.position]) === "right" && "ml-auto mr-4"
31638
+ _optionalChain([config, 'optionalAccess', _611 => _611.navigation, 'optionalAccess', _612 => _612.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31639
+ _optionalChain([config, 'optionalAccess', _613 => _613.navigation, 'optionalAccess', _614 => _614.position]) === "right" && "ml-auto mr-4"
31327
31640
  ), children: [
31328
31641
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
31329
31642
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -31371,7 +31684,7 @@ function MobileNavPanel({ isOpen, config }) {
31371
31684
  _react.useEffect.call(void 0, () => {
31372
31685
  const handleKeyDown = (e) => {
31373
31686
  if (e.key === "Escape" && isOpen) {
31374
- _optionalChain([config, 'access', _612 => _612.onClose, 'optionalCall', _613 => _613()]);
31687
+ _optionalChain([config, 'access', _615 => _615.onClose, 'optionalCall', _616 => _616()]);
31375
31688
  }
31376
31689
  };
31377
31690
  if (isOpen) {
@@ -31388,7 +31701,7 @@ function MobileNavPanel({ isOpen, config }) {
31388
31701
  if (item.onClick) {
31389
31702
  item.onClick();
31390
31703
  }
31391
- _optionalChain([config, 'access', _614 => _614.onClose, 'optionalCall', _615 => _615()]);
31704
+ _optionalChain([config, 'access', _617 => _617.onClose, 'optionalCall', _618 => _618()]);
31392
31705
  };
31393
31706
  if (item.href) {
31394
31707
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31558,7 +31871,7 @@ function SlidingSidebar({ config }) {
31558
31871
  variant: "transparent",
31559
31872
  size: "default",
31560
31873
  onClick: () => {
31561
- _optionalChain([item, 'access', _616 => _616.onClick, 'optionalCall', _617 => _617()]);
31874
+ _optionalChain([item, 'access', _619 => _619.onClick, 'optionalCall', _620 => _620()]);
31562
31875
  config.onClose();
31563
31876
  },
31564
31877
  leftIcon: item.icon,
@@ -31581,7 +31894,7 @@ function SlidingSidebar({ config }) {
31581
31894
  variant: "transparent",
31582
31895
  size: "default",
31583
31896
  onClick: () => {
31584
- _optionalChain([item, 'access', _618 => _618.onClick, 'optionalCall', _619 => _619()]);
31897
+ _optionalChain([item, 'access', _621 => _621.onClick, 'optionalCall', _622 => _622()]);
31585
31898
  config.onClose();
31586
31899
  },
31587
31900
  leftIcon: item.icon,
@@ -31708,7 +32021,7 @@ function StickySectionNav({
31708
32021
  ] });
31709
32022
  }
31710
32023
  function useSectionNavigation(sections, options) {
31711
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _620 => _620[0], 'optionalAccess', _621 => _621.id]) || "");
32024
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _623 => _623[0], 'optionalAccess', _624 => _624.id]) || "");
31712
32025
  const isScrollingFromClick = _react.useRef.call(void 0, false);
31713
32026
  const { offset: offset2 = 100 } = options || {};
31714
32027
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -31732,7 +32045,7 @@ function useSectionNavigation(sections, options) {
31732
32045
  const handleScroll = () => {
31733
32046
  if (isScrollingFromClick.current) return;
31734
32047
  const scrollPosition = window.scrollY + offset2 + 50;
31735
- let currentSection = _optionalChain([sections, 'access', _622 => _622[0], 'optionalAccess', _623 => _623.id]) || "";
32048
+ let currentSection = _optionalChain([sections, 'access', _625 => _625[0], 'optionalAccess', _626 => _626.id]) || "";
31736
32049
  for (let i = sections.length - 1; i >= 0; i--) {
31737
32050
  const element = document.getElementById(sections[i].id);
31738
32051
  if (element && scrollPosition >= element.offsetTop) {
@@ -31933,7 +32246,7 @@ function NavigationSidebar({ config, disabled = false }) {
31933
32246
  } else {
31934
32247
  setDesktopMinimized((prev) => !prev);
31935
32248
  }
31936
- _optionalChain([config, 'access', _624 => _624.onToggleMinimized, 'optionalCall', _625 => _625()]);
32249
+ _optionalChain([config, 'access', _627 => _627.onToggleMinimized, 'optionalCall', _628 => _628()]);
31937
32250
  }, [isTablet, setDesktopMinimized, config]);
31938
32251
  const closeOverlay = _react.useCallback.call(void 0, () => {
31939
32252
  setTabletMinimized(true);
@@ -31947,11 +32260,11 @@ function NavigationSidebar({ config, disabled = false }) {
31947
32260
  return () => document.removeEventListener("keydown", handleKeyDown);
31948
32261
  }, [isOverlayOpen, closeOverlay]);
31949
32262
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
31950
- _optionalChain([event, 'optionalAccess', _626 => _626.stopPropagation, 'call', _627 => _627()]);
32263
+ _optionalChain([event, 'optionalAccess', _629 => _629.stopPropagation, 'call', _630 => _630()]);
31951
32264
  if (item.onClick) {
31952
32265
  item.onClick();
31953
32266
  } else if (item.path) {
31954
- _optionalChain([config, 'access', _628 => _628.onNavigate, 'optionalCall', _629 => _629(item.path)]);
32267
+ _optionalChain([config, 'access', _631 => _631.onNavigate, 'optionalCall', _632 => _632(item.path)]);
31955
32268
  }
31956
32269
  if (isTablet) setTabletMinimized(true);
31957
32270
  }, [config, isTablet]);
@@ -32059,7 +32372,7 @@ function HeaderGlobalSearch({
32059
32372
  placeholder = "Global Search",
32060
32373
  className
32061
32374
  }) {
32062
- const [internalValue, setInternalValue] = React112.default.useState(value);
32375
+ const [internalValue, setInternalValue] = React113.default.useState(value);
32063
32376
  const currentValue = onChange ? value : internalValue;
32064
32377
  const handleChange = (e) => {
32065
32378
  const newValue = e.target.value;
@@ -32071,11 +32384,11 @@ function HeaderGlobalSearch({
32071
32384
  };
32072
32385
  const handleSubmit = (e) => {
32073
32386
  e.preventDefault();
32074
- _optionalChain([onSubmit, 'optionalCall', _630 => _630(currentValue)]);
32387
+ _optionalChain([onSubmit, 'optionalCall', _633 => _633(currentValue)]);
32075
32388
  };
32076
32389
  const handleKeyDown = (e) => {
32077
32390
  if (e.key === "Enter") {
32078
- _optionalChain([onSubmit, 'optionalCall', _631 => _631(currentValue)]);
32391
+ _optionalChain([onSubmit, 'optionalCall', _634 => _634(currentValue)]);
32079
32392
  }
32080
32393
  };
32081
32394
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -32169,8 +32482,8 @@ function HeaderOrganizationFilter({
32169
32482
  className
32170
32483
  }) {
32171
32484
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
32172
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _632 => _632.name]) || "All Organizations";
32173
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _633 => _633.deviceCount]), () => ( totalDeviceCount));
32485
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _635 => _635.name]) || "All Organizations";
32486
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _636 => _636.deviceCount]), () => ( totalDeviceCount));
32174
32487
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenu, { children: [
32175
32488
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32176
32489
  "button",
@@ -32195,11 +32508,11 @@ function HeaderOrganizationFilter({
32195
32508
  }
32196
32509
  ) }),
32197
32510
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
32198
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _634 => _634("")]), children: "All Organizations" }),
32511
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _637 => _637("")]), children: "All Organizations" }),
32199
32512
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32200
32513
  _chunkQJGRP2YEcjs.DropdownMenuItem,
32201
32514
  {
32202
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _635 => _635(org.id)]),
32515
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _638 => _638(org.id)]),
32203
32516
  children: org.name
32204
32517
  },
32205
32518
  org.id
@@ -32210,7 +32523,7 @@ function HeaderOrganizationFilter({
32210
32523
 
32211
32524
  // src/components/navigation/app-header.tsx
32212
32525
 
32213
- var AppHeader = React112.default.memo(function AppHeader2({
32526
+ var AppHeader = React113.default.memo(function AppHeader2({
32214
32527
  showSearch,
32215
32528
  onSearch,
32216
32529
  showOrganizations,
@@ -32389,9 +32702,9 @@ function NotificationsHeaderButton({
32389
32702
  dimmedClass
32390
32703
  }) {
32391
32704
  const ctx = useOptionalNotifications();
32392
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _636 => _636.unreadCount]), () => ( fallbackUnreadCount))) > 0;
32393
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _637 => _637.isOpen]), () => ( false));
32394
- const onClick = _optionalChain([ctx, 'optionalAccess', _638 => _638.toggle]);
32705
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _639 => _639.unreadCount]), () => ( fallbackUnreadCount))) > 0;
32706
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _640 => _640.isOpen]), () => ( false));
32707
+ const onClick = _optionalChain([ctx, 'optionalAccess', _641 => _641.toggle]);
32395
32708
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32396
32709
  HeaderButton,
32397
32710
  {
@@ -32420,7 +32733,7 @@ function NotificationsHeaderButton({
32420
32733
 
32421
32734
 
32422
32735
  var HEADER_HEIGHT = 48;
32423
- var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32736
+ var MobileBurgerMenu = React113.default.memo(function MobileBurgerMenu2({
32424
32737
  isOpen,
32425
32738
  onClose,
32426
32739
  config,
@@ -32455,7 +32768,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32455
32768
  if (item.onClick) {
32456
32769
  item.onClick();
32457
32770
  } else if (item.path) {
32458
- _optionalChain([config, 'access', _639 => _639.onNavigate, 'optionalCall', _640 => _640(item.path)]);
32771
+ _optionalChain([config, 'access', _642 => _642.onNavigate, 'optionalCall', _643 => _643(item.path)]);
32459
32772
  }
32460
32773
  onClose();
32461
32774
  }, [config, onClose]);
@@ -32481,7 +32794,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32481
32794
  ),
32482
32795
  "aria-current": isActive ? "page" : void 0,
32483
32796
  children: [
32484
- item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 size-4 flex items-center justify-center", children: React112.default.cloneElement(item.icon, {
32797
+ item.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 size-4 flex items-center justify-center", children: React113.default.cloneElement(item.icon, {
32485
32798
  size: 16,
32486
32799
  color: isActive && !disabled ? "var(--color-accent-primary)" : "var(--color-text-secondary)"
32487
32800
  }) }),
@@ -32500,7 +32813,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32500
32813
  rows.push(items.slice(i, i + 2));
32501
32814
  }
32502
32815
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3", children: rows.map((row, rowIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3", children: [
32503
- row.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderNavigationItem(item, true) }, item.id)),
32816
+ row.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderNavigationItem(item, true) }, item.id)),
32504
32817
  row.length === 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" })
32505
32818
  ] }, rowIndex)) });
32506
32819
  };
@@ -32591,7 +32904,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32591
32904
  }
32592
32905
  ),
32593
32906
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Primary navigation", children: renderNavigationGrid(primaryItems) }),
32594
- secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
32907
+ secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
32595
32908
  onLogout && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32596
32909
  "button",
32597
32910
  {
@@ -32683,7 +32996,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
32683
32996
 
32684
32997
 
32685
32998
 
32686
- var DrawerOpenContext = React105.createContext(false);
32999
+ var DrawerOpenContext = React106.createContext(false);
32687
33000
  var AppLayoutDrawerRoot = ({
32688
33001
  open: openProp,
32689
33002
  defaultOpen,
@@ -32692,13 +33005,13 @@ var AppLayoutDrawerRoot = ({
32692
33005
  children,
32693
33006
  ...rest
32694
33007
  }) => {
32695
- const [internalOpen, setInternalOpen] = React105.useState(_nullishCoalesce(defaultOpen, () => ( false)));
33008
+ const [internalOpen, setInternalOpen] = React106.useState(_nullishCoalesce(defaultOpen, () => ( false)));
32696
33009
  const isControlled = openProp !== void 0;
32697
33010
  const open = isControlled ? openProp : internalOpen;
32698
- const handleOpenChange = React105.useCallback(
33011
+ const handleOpenChange = React106.useCallback(
32699
33012
  (next) => {
32700
33013
  if (!isControlled) setInternalOpen(next);
32701
- _optionalChain([onOpenChange, 'optionalCall', _641 => _641(next)]);
33014
+ _optionalChain([onOpenChange, 'optionalCall', _644 => _644(next)]);
32702
33015
  },
32703
33016
  [isControlled, onOpenChange]
32704
33017
  );
@@ -32789,8 +33102,8 @@ function useContainedResizableSize({
32789
33102
  storageKey,
32790
33103
  container
32791
33104
  }) {
32792
- const [available, setAvailable] = React105.useState(0);
32793
- React105.useEffect(() => {
33105
+ const [available, setAvailable] = React106.useState(0);
33106
+ React106.useEffect(() => {
32794
33107
  if (!enabled || !container) return;
32795
33108
  const update = () => {
32796
33109
  setAvailable(isHorizontal ? container.clientWidth : container.clientHeight);
@@ -32800,14 +33113,14 @@ function useContainedResizableSize({
32800
33113
  ro.observe(container);
32801
33114
  return () => ro.disconnect();
32802
33115
  }, [enabled, container, isHorizontal]);
32803
- const clampToContainer = React105.useCallback(
33116
+ const clampToContainer = React106.useCallback(
32804
33117
  (value) => {
32805
33118
  const effectiveMax = available > 0 ? Math.min(maxSize, available - 40) : maxSize;
32806
33119
  return clamp3(value, minSize, Math.max(minSize, effectiveMax));
32807
33120
  },
32808
33121
  [available, minSize, maxSize]
32809
33122
  );
32810
- const readInitial = React105.useCallback(() => {
33123
+ const readInitial = React106.useCallback(() => {
32811
33124
  if (!enabled) return defaultSize;
32812
33125
  if (typeof window === "undefined") return defaultSize;
32813
33126
  if (!storageKey) return defaultSize;
@@ -32821,19 +33134,19 @@ function useContainedResizableSize({
32821
33134
  return defaultSize;
32822
33135
  }
32823
33136
  }, [enabled, storageKey, defaultSize]);
32824
- const [size, setSizeRaw] = React105.useState(readInitial);
32825
- const setSize = React105.useCallback(
33137
+ const [size, setSizeRaw] = React106.useState(readInitial);
33138
+ const setSize = React106.useCallback(
32826
33139
  (next) => setSizeRaw(clampToContainer(next)),
32827
33140
  [clampToContainer]
32828
33141
  );
32829
- React105.useEffect(() => {
33142
+ React106.useEffect(() => {
32830
33143
  if (!enabled || !storageKey || typeof window === "undefined") return;
32831
33144
  try {
32832
33145
  window.localStorage.setItem(storageKey, String(Math.round(size)));
32833
33146
  } catch (e35) {
32834
33147
  }
32835
33148
  }, [enabled, size, storageKey]);
32836
- React105.useEffect(() => {
33149
+ React106.useEffect(() => {
32837
33150
  if (!enabled) return;
32838
33151
  setSizeRaw((prev) => clampToContainer(prev));
32839
33152
  }, [enabled, clampToContainer]);
@@ -32848,7 +33161,7 @@ function AppLayoutDrawerResizeHandle({
32848
33161
  ariaLabel
32849
33162
  }) {
32850
33163
  const isHorizontal = HORIZONTAL_SIDES2.has(side);
32851
- const startRef = React105.useRef(null);
33164
+ const startRef = React106.useRef(null);
32852
33165
  const direction = side === "right" || side === "bottom" ? -1 : 1;
32853
33166
  const handlePointerDown = (e) => {
32854
33167
  if (e.button !== 0 && e.pointerType === "mouse") return;
@@ -32938,7 +33251,7 @@ function AppLayoutDrawerResizeHandle({
32938
33251
  }
32939
33252
  );
32940
33253
  }
32941
- var AppLayoutDrawerContent = React105.forwardRef(
33254
+ var AppLayoutDrawerContent = React106.forwardRef(
32942
33255
  ({
32943
33256
  side = "right",
32944
33257
  flush = false,
@@ -32966,13 +33279,13 @@ var AppLayoutDrawerContent = React105.forwardRef(
32966
33279
  }, ref) => {
32967
33280
  const contextContainer = useAppLayoutDrawerContainer();
32968
33281
  const portalContainer = container !== void 0 ? container : contextContainer;
32969
- const open = React105.useContext(DrawerOpenContext);
32970
- const [hasOpened, setHasOpened] = React105.useState(Boolean(open));
32971
- React105.useEffect(() => {
33282
+ const open = React106.useContext(DrawerOpenContext);
33283
+ const [hasOpened, setHasOpened] = React106.useState(Boolean(open));
33284
+ React106.useEffect(() => {
32972
33285
  if (open) setHasOpened(true);
32973
33286
  }, [open]);
32974
33287
  const persist = keepMounted && hasOpened;
32975
- React105.useEffect(() => {
33288
+ React106.useEffect(() => {
32976
33289
  if (!debugLayoutShift) return;
32977
33290
  if (!open) return;
32978
33291
  if (typeof window === "undefined") return;
@@ -33023,8 +33336,8 @@ var AppLayoutDrawerContent = React105.forwardRef(
33023
33336
  const resolvedSide = _nullishCoalesce(side, () => ( "right"));
33024
33337
  const isHorizontal = HORIZONTAL_SIDES2.has(resolvedSide);
33025
33338
  const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
33026
- const [isMobile, setIsMobile] = React105.useState(false);
33027
- React105.useEffect(() => {
33339
+ const [isMobile, setIsMobile] = React106.useState(false);
33340
+ React106.useEffect(() => {
33028
33341
  if (typeof window === "undefined") return;
33029
33342
  const mq = window.matchMedia(`(max-width: ${mobileBreakpoint - 1}px)`);
33030
33343
  const update = () => setIsMobile(mq.matches);
@@ -33079,10 +33392,10 @@ var AppLayoutDrawerContent = React105.forwardRef(
33079
33392
  ),
33080
33393
  style,
33081
33394
  onInteractOutside: (event) => {
33082
- _optionalChain([onInteractOutside, 'optionalCall', _642 => _642(event)]);
33395
+ _optionalChain([onInteractOutside, 'optionalCall', _645 => _645(event)]);
33083
33396
  if (event.defaultPrevented) return;
33084
33397
  const target = event.target;
33085
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _643 => _643.contains, 'call', _644 => _644(target)]);
33398
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _646 => _646.contains, 'call', _647 => _647(target)]);
33086
33399
  if (!isInsideContainer) {
33087
33400
  event.preventDefault();
33088
33401
  return;
@@ -33495,7 +33808,7 @@ var ShellTypeBadge = ({
33495
33808
  className,
33496
33809
  iconClassName
33497
33810
  }) => {
33498
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _645 => _645.toUpperCase, 'call', _646 => _646()]);
33811
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _648 => _648.toUpperCase, 'call', _649 => _649()]);
33499
33812
  const label = getShellLabel(normalizedType);
33500
33813
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
33501
33814
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -33712,7 +34025,7 @@ function OnboardingStepCard({
33712
34025
  onSkip,
33713
34026
  className
33714
34027
  }) {
33715
- const [isProcessing, setIsProcessing] = React112.default.useState(false);
34028
+ const [isProcessing, setIsProcessing] = React113.default.useState(false);
33716
34029
  const handleAction = async (e) => {
33717
34030
  e.stopPropagation();
33718
34031
  setIsProcessing(true);
@@ -33824,7 +34137,7 @@ function OnboardingWalkthrough({
33824
34137
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
33825
34138
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
33826
34139
  const actionInProgressRef = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
33827
- React112.default.useEffect(() => {
34140
+ React113.default.useEffect(() => {
33828
34141
  if (isLoadingCompletion) {
33829
34142
  hasAutoMarkedRef.current = false;
33830
34143
  return;
@@ -33882,12 +34195,12 @@ function OnboardingWalkthrough({
33882
34195
  }
33883
34196
  }, [state.completedSteps, markComplete]);
33884
34197
  const handleStepSkip = (step) => {
33885
- _optionalChain([step, 'access', _647 => _647.onSkip, 'optionalCall', _648 => _648()]);
34198
+ _optionalChain([step, 'access', _650 => _650.onSkip, 'optionalCall', _651 => _651()]);
33886
34199
  markSkipped(step.id);
33887
34200
  };
33888
34201
  const handleDismiss = () => {
33889
34202
  dismissOnboarding();
33890
- _optionalChain([onDismiss, 'optionalCall', _649 => _649()]);
34203
+ _optionalChain([onDismiss, 'optionalCall', _652 => _652()]);
33891
34204
  };
33892
34205
  if (state.dismissed) {
33893
34206
  return null;
@@ -33955,7 +34268,7 @@ var LOG_SEVERITY_LABELS = {
33955
34268
 
33956
34269
  // src/components/log-severity-dot.tsx
33957
34270
 
33958
- var LogSeverityDot = React108.forwardRef(({ severity, size = "md", className }, ref) => {
34271
+ var LogSeverityDot = React109.forwardRef(({ severity, size = "md", className }, ref) => {
33959
34272
  const sizeClasses2 = {
33960
34273
  sm: "w-4 h-4",
33961
34274
  md: "w-6 h-6",
@@ -34017,7 +34330,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
34017
34330
  onKeyDown: (e) => {
34018
34331
  if (e.key === "Enter" || e.key === " ") {
34019
34332
  e.preventDefault();
34020
- _optionalChain([onClick, 'optionalCall', _650 => _650()]);
34333
+ _optionalChain([onClick, 'optionalCall', _653 => _653()]);
34021
34334
  }
34022
34335
  },
34023
34336
  children: [
@@ -34045,7 +34358,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
34045
34358
  )
34046
34359
  ] });
34047
34360
  };
34048
- var LogsList = React109.forwardRef(({
34361
+ var LogsList = React110.forwardRef(({
34049
34362
  logs,
34050
34363
  maxHeight = "400px",
34051
34364
  showConnector = true,
@@ -34054,7 +34367,7 @@ var LogsList = React109.forwardRef(({
34054
34367
  emptyMessage = "No logs to display",
34055
34368
  className
34056
34369
  }, ref) => {
34057
- const containerRef = React109.useRef(null);
34370
+ const containerRef = React110.useRef(null);
34058
34371
  const isFullHeight = maxHeight === "100%";
34059
34372
  const getContainerStyles = () => {
34060
34373
  if (isFullHeight) return void 0;
@@ -34118,7 +34431,7 @@ var LogsList = React109.forwardRef(({
34118
34431
  log,
34119
34432
  isLast: index === logs.length - 1,
34120
34433
  showConnector,
34121
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _651 => _651(log)])
34434
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _654 => _654(log)])
34122
34435
  },
34123
34436
  log.id
34124
34437
  ))
@@ -34215,11 +34528,11 @@ function ServiceCardRowItem({ row }) {
34215
34528
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
34216
34529
 
34217
34530
 
34218
- var Slider = React111.forwardRef(
34531
+ var Slider = React112.forwardRef(
34219
34532
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
34220
34533
  const handleChange = (e) => {
34221
34534
  const newValue = [Number(e.target.value)];
34222
- _optionalChain([onValueChange, 'optionalCall', _652 => _652(newValue)]);
34535
+ _optionalChain([onValueChange, 'optionalCall', _655 => _655(newValue)]);
34223
34536
  };
34224
34537
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34225
34538
  "input",
@@ -34650,7 +34963,7 @@ function CursorPaginationSimple({
34650
34963
  {
34651
34964
  variant: "transparent",
34652
34965
  size: "icon",
34653
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _653 => _653("")]),
34966
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _656 => _656("")]),
34654
34967
  disabled: !hasPreviousPage || loading,
34655
34968
  className: "h-8 w-8",
34656
34969
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -34662,7 +34975,7 @@ function CursorPaginationSimple({
34662
34975
  {
34663
34976
  variant: "transparent",
34664
34977
  size: "icon",
34665
- onClick: () => _optionalChain([onNext, 'optionalCall', _654 => _654("")]),
34978
+ onClick: () => _optionalChain([onNext, 'optionalCall', _657 => _657("")]),
34666
34979
  disabled: !hasNextPage || loading,
34667
34980
  className: "h-8 w-8",
34668
34981
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -34682,8 +34995,8 @@ function TableEmptyState({ message: message2, icon, action, className }) {
34682
34995
  icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}))),
34683
34996
  title: _nullishCoalesce(message2, () => ( "No results found")),
34684
34997
  description: message2 == null ? "Try adjusting your search or filters" : void 0,
34685
- buttonLabel: _optionalChain([action, 'optionalAccess', _655 => _655.label]),
34686
- onButtonClick: _optionalChain([action, 'optionalAccess', _656 => _656.onClick]),
34998
+ buttonLabel: _optionalChain([action, 'optionalAccess', _658 => _658.label]),
34999
+ onButtonClick: _optionalChain([action, 'optionalAccess', _659 => _659.onClick]),
34687
35000
  className: _chunkFIG2RKZFcjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className)
34688
35001
  }
34689
35002
  );
@@ -34704,7 +35017,7 @@ function TableColumnFilterDropdown({
34704
35017
  placement = "bottom-start",
34705
35018
  dropdownClassName = "min-w-[240px]"
34706
35019
  }) {
34707
- const activeCount = _optionalChain([filters, 'optionalAccess', _657 => _657[columnKey], 'optionalAccess', _658 => _658.length]) || 0;
35020
+ const activeCount = _optionalChain([filters, 'optionalAccess', _660 => _660[columnKey], 'optionalAccess', _661 => _661.length]) || 0;
34708
35021
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34709
35022
  FiltersDropdown,
34710
35023
  {
@@ -34747,7 +35060,7 @@ function TableColumnFilterDropdown({
34747
35060
  delete newFilters[columnKey];
34748
35061
  onFilterChange(newFilters);
34749
35062
  },
34750
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _659 => _659[columnKey]]) || [] },
35063
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _662 => _662[columnKey]]) || [] },
34751
35064
  placement,
34752
35065
  dropdownClassName
34753
35066
  }
@@ -35044,7 +35357,7 @@ function TableRow({
35044
35357
  const keys = column.key.split(".");
35045
35358
  let value = item;
35046
35359
  for (const key of keys) {
35047
- value = _optionalChain([value, 'optionalAccess', _660 => _660[key]]);
35360
+ value = _optionalChain([value, 'optionalAccess', _663 => _663[key]]);
35048
35361
  }
35049
35362
  if (value === null || value === void 0) {
35050
35363
  return "-";
@@ -35114,7 +35427,7 @@ function TableRow({
35114
35427
  // src/components/ui/table/table.tsx
35115
35428
 
35116
35429
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
35117
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _661 => _661.length])) || Boolean(renderRowActions);
35430
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _664 => _664.length])) || Boolean(renderRowActions);
35118
35431
  const result = [...columns];
35119
35432
  if (hasActions) {
35120
35433
  const actionsColumn = {
@@ -35208,7 +35521,7 @@ function Table({
35208
35521
  return rowKey(item);
35209
35522
  }
35210
35523
  const key = item[rowKey];
35211
- return _optionalChain([key, 'optionalAccess', _662 => _662.toString, 'call', _663 => _663()]) || index.toString();
35524
+ return _optionalChain([key, 'optionalAccess', _665 => _665.toString, 'call', _666 => _666()]) || index.toString();
35212
35525
  };
35213
35526
  const getRowClassName = (item, index) => {
35214
35527
  if (typeof rowClassName === "function") {
@@ -35242,23 +35555,23 @@ function Table({
35242
35555
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
35243
35556
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
35244
35557
  const sentinelRef = _react.useRef.call(void 0, null);
35245
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _664 => _664.onLoadMore]));
35246
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _665 => _665.onLoadMore]);
35558
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _667 => _667.onLoadMore]));
35559
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _668 => _668.onLoadMore]);
35247
35560
  _react.useEffect.call(void 0, () => {
35248
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _666 => _666.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35561
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _669 => _669.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35249
35562
  const sentinel = sentinelRef.current;
35250
35563
  if (!sentinel) return;
35251
35564
  const observer = new IntersectionObserver(
35252
35565
  (entries) => {
35253
- if (_optionalChain([entries, 'access', _667 => _667[0], 'optionalAccess', _668 => _668.isIntersecting])) {
35254
- _optionalChain([onLoadMoreRef, 'access', _669 => _669.current, 'optionalCall', _670 => _670()]);
35566
+ if (_optionalChain([entries, 'access', _670 => _670[0], 'optionalAccess', _671 => _671.isIntersecting])) {
35567
+ _optionalChain([onLoadMoreRef, 'access', _672 => _672.current, 'optionalCall', _673 => _673()]);
35255
35568
  }
35256
35569
  },
35257
35570
  { rootMargin: "200px" }
35258
35571
  );
35259
35572
  observer.observe(sentinel);
35260
35573
  return () => observer.disconnect();
35261
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _671 => _671.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _672 => _672.isFetchingNextPage])]);
35574
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _674 => _674.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _675 => _675.isFetchingNextPage])]);
35262
35575
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
35263
35576
  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: [
35264
35577
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -35329,7 +35642,7 @@ function Table({
35329
35642
  },
35330
35643
  getRowKey(item, index)
35331
35644
  )),
35332
- _optionalChain([infiniteScroll, 'optionalAccess', _673 => _673.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35645
+ _optionalChain([infiniteScroll, 'optionalAccess', _676 => _676.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35333
35646
  TableCardSkeleton,
35334
35647
  {
35335
35648
  columns,
@@ -35338,7 +35651,7 @@ function Table({
35338
35651
  hasChevron: Boolean(rowHref)
35339
35652
  }
35340
35653
  ),
35341
- _optionalChain([infiniteScroll, 'optionalAccess', _674 => _674.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35654
+ _optionalChain([infiniteScroll, 'optionalAccess', _677 => _677.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35342
35655
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35343
35656
  "div",
35344
35657
  {
@@ -35696,7 +36009,7 @@ function QueryReportTable({
35696
36009
  );
35697
36010
  const handleExport = () => {
35698
36011
  exportToCSV(data, columns, exportFilename);
35699
- _optionalChain([onExport, 'optionalCall', _675 => _675()]);
36012
+ _optionalChain([onExport, 'optionalCall', _678 => _678()]);
35700
36013
  };
35701
36014
  const tableMinWidth = columns.length * (columnWidth + 16);
35702
36015
  const {
@@ -35869,7 +36182,7 @@ function DataTableColumnFilter({
35869
36182
  align = "left"
35870
36183
  }) {
35871
36184
  const currentValue = column.getFilterValue();
35872
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _676 => _676.length]), () => ( 0));
36185
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _679 => _679.length]), () => ( 0));
35873
36186
  const sections = _react.useMemo.call(void 0,
35874
36187
  () => [
35875
36188
  {
@@ -35949,7 +36262,7 @@ function DataTableHeader({
35949
36262
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
35950
36263
  if (header.isPlaceholder) return false;
35951
36264
  if (isLgUp) return true;
35952
- return Boolean(_optionalChain([header, 'access', _677 => _677.column, 'access', _678 => _678.columnDef, 'access', _679 => _679.meta, 'optionalAccess', _680 => _680.filter]));
36265
+ return Boolean(_optionalChain([header, 'access', _680 => _680.column, 'access', _681 => _681.columnDef, 'access', _682 => _682.meta, 'optionalAccess', _683 => _683.filter]));
35953
36266
  });
35954
36267
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35955
36268
  "div",
@@ -35979,20 +36292,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
35979
36292
  if (header.isPlaceholder) return null;
35980
36293
  const column = header.column;
35981
36294
  const meta = column.columnDef.meta;
35982
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _681 => _681.filter]));
35983
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _682 => _682.align]), () => ( "left"));
35984
- const canSort = _optionalChain([meta, 'optionalAccess', _683 => _683.sortable]) === true;
35985
- const sortDir = _optionalChain([sort, 'optionalAccess', _684 => _684.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
36295
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _684 => _684.filter]));
36296
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _685 => _685.align]), () => ( "left"));
36297
+ const canSort = _optionalChain([meta, 'optionalAccess', _686 => _686.sortable]) === true;
36298
+ const sortDir = _optionalChain([sort, 'optionalAccess', _687 => _687.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
35986
36299
  if (!isLgUp && !hasFilter) return null;
35987
36300
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35988
36301
  "div",
35989
36302
  {
35990
36303
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
35991
36304
  "flex items-stretch",
35992
- isLgUp && (_optionalChain([meta, 'optionalAccess', _685 => _685.width]) || "flex-1 min-w-0"),
35993
- _optionalChain([meta, 'optionalAccess', _686 => _686.headerClassName]),
36305
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _688 => _688.width]) || "flex-1 min-w-0"),
36306
+ _optionalChain([meta, 'optionalAccess', _689 => _689.headerClassName]),
35994
36307
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
35995
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _687 => _687.hideAt]))
36308
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _690 => _690.hideAt]))
35996
36309
  ),
35997
36310
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35998
36311
  DataTableColumnFilter,
@@ -36011,7 +36324,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
36011
36324
  isLgUp && alignJustify(align),
36012
36325
  canSort && "group cursor-pointer"
36013
36326
  ),
36014
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _688 => _688(column.id)]) : void 0,
36327
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _691 => _691(column.id)]) : void 0,
36015
36328
  children: [
36016
36329
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
36017
36330
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -36076,7 +36389,7 @@ function DataTableSkeleton({
36076
36389
  }) {
36077
36390
  const table = useDataTableContext();
36078
36391
  const columns = table.getVisibleFlatColumns();
36079
- const firstColumnId = _optionalChain([columns, 'access', _689 => _689[0], 'optionalAccess', _690 => _690.id]);
36392
+ const firstColumnId = _optionalChain([columns, 'access', _692 => _692[0], 'optionalAccess', _693 => _693.id]);
36080
36393
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36081
36394
  "div",
36082
36395
  {
@@ -36100,7 +36413,7 @@ function DataTableSkeleton({
36100
36413
  {
36101
36414
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36102
36415
  "flex flex-col justify-center shrink-0",
36103
- _optionalChain([meta, 'optionalAccess', _691 => _691.width]) || "flex-1"
36416
+ _optionalChain([meta, 'optionalAccess', _694 => _694.width]) || "flex-1"
36104
36417
  ),
36105
36418
  children: [
36106
36419
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -36149,7 +36462,7 @@ function DataTableRowImpl({
36149
36462
  const handleClick = _react.useCallback.call(void 0,
36150
36463
  (e) => {
36151
36464
  const target = e.target;
36152
- if (!_optionalChain([containerRef, 'access', _692 => _692.current, 'optionalAccess', _693 => _693.contains, 'call', _694 => _694(target)])) {
36465
+ if (!_optionalChain([containerRef, 'access', _695 => _695.current, 'optionalAccess', _696 => _696.contains, 'call', _697 => _697(target)])) {
36153
36466
  if (isLinkMode) e.preventDefault();
36154
36467
  return;
36155
36468
  }
@@ -36157,7 +36470,7 @@ function DataTableRowImpl({
36157
36470
  if (isLinkMode) e.preventDefault();
36158
36471
  return;
36159
36472
  }
36160
- _optionalChain([onClick, 'optionalCall', _695 => _695(row.original)]);
36473
+ _optionalChain([onClick, 'optionalCall', _698 => _698(row.original)]);
36161
36474
  },
36162
36475
  [onClick, row.original, isLinkMode]
36163
36476
  );
@@ -36182,10 +36495,10 @@ function DataTableRowImpl({
36182
36495
  {
36183
36496
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36184
36497
  "flex flex-col overflow-hidden",
36185
- alignJustify(_optionalChain([meta, 'optionalAccess', _696 => _696.align])),
36186
- _optionalChain([meta, 'optionalAccess', _697 => _697.width]) || "flex-1 min-w-0",
36187
- _optionalChain([meta, 'optionalAccess', _698 => _698.cellClassName]),
36188
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _699 => _699.hideAt]))
36498
+ alignJustify(_optionalChain([meta, 'optionalAccess', _699 => _699.align])),
36499
+ _optionalChain([meta, 'optionalAccess', _700 => _700.width]) || "flex-1 min-w-0",
36500
+ _optionalChain([meta, 'optionalAccess', _701 => _701.cellClassName]),
36501
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _702 => _702.hideAt]))
36189
36502
  ),
36190
36503
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
36191
36504
  },
@@ -36264,7 +36577,7 @@ function DataTableBody({
36264
36577
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
36265
36578
  rows.map((row, index) => {
36266
36579
  const item = row.original;
36267
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _700 => _700(item)]), () => ( void 0));
36580
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _703 => _703(item)]), () => ( void 0));
36268
36581
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
36269
36582
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36270
36583
  DataTableRow,
@@ -36274,7 +36587,7 @@ function DataTableBody({
36274
36587
  href,
36275
36588
  compact,
36276
36589
  className: cls,
36277
- subRow: _optionalChain([renderSubRow, 'optionalCall', _701 => _701(item)])
36590
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _704 => _704(item)])
36278
36591
  },
36279
36592
  row.id
36280
36593
  );
@@ -36329,7 +36642,7 @@ function DataTableInfiniteFooter({
36329
36642
  if (!sentinel) return;
36330
36643
  const observer = new IntersectionObserver(
36331
36644
  (entries) => {
36332
- if (_optionalChain([entries, 'access', _702 => _702[0], 'optionalAccess', _703 => _703.isIntersecting])) onLoadMoreRef.current();
36645
+ if (_optionalChain([entries, 'access', _705 => _705[0], 'optionalAccess', _706 => _706.isIntersecting])) onLoadMoreRef.current();
36333
36646
  },
36334
36647
  { rootMargin }
36335
36648
  );
@@ -36377,7 +36690,7 @@ function DataTableRowCount({
36377
36690
  const table = useDataTableContext();
36378
36691
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
36379
36692
  if (hideWhenEmpty && count === 0) return null;
36380
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _704 => _704(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36693
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _707 => _707(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36381
36694
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36382
36695
  "span",
36383
36696
  {
@@ -36507,12 +36820,12 @@ function SearchInput({
36507
36820
  limitTags = "auto",
36508
36821
  getLimitTagsText = (more) => `+${more}`
36509
36822
  }) {
36510
- const [internalValue, setInternalValue] = React114.useState(defaultValue);
36823
+ const [internalValue, setInternalValue] = React115.useState(defaultValue);
36511
36824
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
36512
36825
  const debouncedValue = _chunk27IO7V3Pcjs.useDebounce.call(void 0, currentValue, debounceMs);
36513
- const [isOpen, setIsOpen] = React114.useState(false);
36514
- const [highlightedIndex, setHighlightedIndex] = React114.useState(-1);
36515
- const containerRef = React114.useRef(null);
36826
+ const [isOpen, setIsOpen] = React115.useState(false);
36827
+ const [highlightedIndex, setHighlightedIndex] = React115.useState(-1);
36828
+ const containerRef = React115.useRef(null);
36516
36829
  const currentPlaceholder = filterChips.length > 0 ? "Add filter..." : placeholder;
36517
36830
  const {
36518
36831
  visibleCount: rawVisibleCount,
@@ -36529,14 +36842,14 @@ function SearchInput({
36529
36842
  placeholder: filterChips.length > 0 ? "" : placeholder
36530
36843
  });
36531
36844
  const visibleCount = filterChips.length > 0 ? Math.max(1, rawVisibleCount) : rawVisibleCount;
36532
- const hiddenTagsRef = React114.useRef(null);
36533
- const hiddenTagsPopupRef = React114.useRef(null);
36534
- const [showHiddenTags, setShowHiddenTags] = React114.useState(false);
36535
- React114.useEffect(() => {
36845
+ const hiddenTagsRef = React115.useRef(null);
36846
+ const hiddenTagsPopupRef = React115.useRef(null);
36847
+ const [showHiddenTags, setShowHiddenTags] = React115.useState(false);
36848
+ React115.useEffect(() => {
36536
36849
  if (!showHiddenTags) return;
36537
36850
  const handleClick = (e) => {
36538
36851
  const target = e.target;
36539
- if (!_optionalChain([hiddenTagsRef, 'access', _705 => _705.current, 'optionalAccess', _706 => _706.contains, 'call', _707 => _707(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _708 => _708.current, 'optionalAccess', _709 => _709.contains, 'call', _710 => _710(target)])) {
36852
+ if (!_optionalChain([hiddenTagsRef, 'access', _708 => _708.current, 'optionalAccess', _709 => _709.contains, 'call', _710 => _710(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _711 => _711.current, 'optionalAccess', _712 => _712.contains, 'call', _713 => _713(target)])) {
36540
36853
  setShowHiddenTags(false);
36541
36854
  }
36542
36855
  };
@@ -36546,7 +36859,7 @@ function SearchInput({
36546
36859
  const hiddenCount = filterChips.length - visibleCount;
36547
36860
  const visibleChips = filterChips.slice(0, visibleCount);
36548
36861
  const hiddenChips = filterChips.slice(visibleCount);
36549
- const { flatResults, groups } = React114.useMemo(() => {
36862
+ const { flatResults, groups } = React115.useMemo(() => {
36550
36863
  if (!groupBy) return { flatResults: results, groups: null };
36551
36864
  const grouped = /* @__PURE__ */ new Map();
36552
36865
  for (const r of results) {
@@ -36563,7 +36876,7 @@ function SearchInput({
36563
36876
  const meetsMinQuery = debouncedValue.length >= minQueryLength;
36564
36877
  const autoShow = meetsMinQuery;
36565
36878
  const dropdownVisible = _nullishCoalesce(showDropdownProp, () => ( (isOpen && autoShow)));
36566
- React114.useEffect(() => {
36879
+ React115.useEffect(() => {
36567
36880
  setHighlightedIndex(-1);
36568
36881
  }, [flatResults.length]);
36569
36882
  const handleChange = (e) => {
@@ -36584,10 +36897,10 @@ function SearchInput({
36584
36897
  } else {
36585
36898
  setInternalValue("");
36586
36899
  }
36587
- _optionalChain([inputRef, 'access', _711 => _711.current, 'optionalAccess', _712 => _712.focus, 'call', _713 => _713()]);
36900
+ _optionalChain([inputRef, 'access', _714 => _714.current, 'optionalAccess', _715 => _715.focus, 'call', _716 => _716()]);
36588
36901
  };
36589
36902
  const handleResultClick = (result, e) => {
36590
- _optionalChain([onResultSelect, 'optionalCall', _714 => _714(
36903
+ _optionalChain([onResultSelect, 'optionalCall', _717 => _717(
36591
36904
  result,
36592
36905
  e ? {
36593
36906
  metaKey: e.metaKey,
@@ -36619,7 +36932,7 @@ function SearchInput({
36619
36932
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
36620
36933
  handleResultClick(flatResults[highlightedIndex]);
36621
36934
  } else {
36622
- _optionalChain([onSubmit, 'optionalCall', _715 => _715(currentValue)]);
36935
+ _optionalChain([onSubmit, 'optionalCall', _718 => _718(currentValue)]);
36623
36936
  }
36624
36937
  break;
36625
36938
  case "Escape":
@@ -36687,8 +37000,8 @@ function SearchInput({
36687
37000
  };
36688
37001
  const hasValue = currentValue.length > 0;
36689
37002
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative", className), ref: containerRef, children: [
36690
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive4.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
36691
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive4.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
37003
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive5.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
37004
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive5.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36692
37005
  "div",
36693
37006
  {
36694
37007
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -36697,7 +37010,7 @@ function SearchInput({
36697
37010
  dropdownVisible && "!border-ods-accent"
36698
37011
  ),
36699
37012
  onClick: () => {
36700
- _optionalChain([inputRef, 'access', _716 => _716.current, 'optionalAccess', _717 => _717.focus, 'call', _718 => _718()]);
37013
+ _optionalChain([inputRef, 'access', _719 => _719.current, 'optionalAccess', _720 => _720.focus, 'call', _721 => _721()]);
36701
37014
  setIsOpen(true);
36702
37015
  },
36703
37016
  children: [
@@ -36766,7 +37079,7 @@ function SearchInput({
36766
37079
  }
36767
37080
  ) }),
36768
37081
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36769
- PopoverPrimitive4.Content,
37082
+ PopoverPrimitive5.Content,
36770
37083
  {
36771
37084
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36772
37085
  "z-50 w-[var(--radix-popover-trigger-width)] mt-1",
@@ -36781,10 +37094,10 @@ function SearchInput({
36781
37094
  align: "start",
36782
37095
  onOpenAutoFocus: (e) => {
36783
37096
  e.preventDefault();
36784
- _optionalChain([inputRef, 'access', _719 => _719.current, 'optionalAccess', _720 => _720.focus, 'call', _721 => _721()]);
37097
+ _optionalChain([inputRef, 'access', _722 => _722.current, 'optionalAccess', _723 => _723.focus, 'call', _724 => _724()]);
36785
37098
  },
36786
37099
  onInteractOutside: (e) => {
36787
- if (_optionalChain([containerRef, 'access', _722 => _722.current, 'optionalAccess', _723 => _723.contains, 'call', _724 => _724(e.target)])) {
37100
+ if (_optionalChain([containerRef, 'access', _725 => _725.current, 'optionalAccess', _726 => _726.contains, 'call', _727 => _727(e.target)])) {
36788
37101
  e.preventDefault();
36789
37102
  }
36790
37103
  },
@@ -36801,10 +37114,10 @@ function SearchInput({
36801
37114
  ref: hiddenTagsPopupRef,
36802
37115
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
36803
37116
  style: {
36804
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _725 => _725.current, 'optionalAccess', _726 => _726.getBoundingClientRect, 'call', _727 => _727(), 'access', _728 => _728.left]), () => ( 0))) : 0
37117
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _728 => _728.current, 'optionalAccess', _729 => _729.getBoundingClientRect, 'call', _730 => _730(), 'access', _731 => _731.left]), () => ( 0))) : 0
36805
37118
  },
36806
37119
  onRemove: (value2) => {
36807
- _optionalChain([onFilterRemove, 'optionalCall', _729 => _729(value2)]);
37120
+ _optionalChain([onFilterRemove, 'optionalCall', _732 => _732(value2)]);
36808
37121
  if (hiddenCount <= 1) setShowHiddenTags(false);
36809
37122
  }
36810
37123
  }
@@ -36855,7 +37168,7 @@ function FilterListItem({
36855
37168
  }) {
36856
37169
  const handleToggle = () => {
36857
37170
  if (disabled) return;
36858
- _optionalChain([onToggle, 'optionalCall', _730 => _730(!selected)]);
37171
+ _optionalChain([onToggle, 'optionalCall', _733 => _733(!selected)]);
36859
37172
  };
36860
37173
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36861
37174
  "div",
@@ -36891,7 +37204,7 @@ function FilterListItem({
36891
37204
  "flex items-start gap-[var(--spacing-system-xxs)] text-h6",
36892
37205
  selected ? "text-ods-accent" : "text-ods-text-secondary"
36893
37206
  ),
36894
- children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React115.Fragment, { children: [
37207
+ children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React116.Fragment, { children: [
36895
37208
  index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
36896
37209
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: item })
36897
37210
  ] }, index))
@@ -36902,7 +37215,7 @@ function FilterListItem({
36902
37215
  CheckboxPrimitive4.Root,
36903
37216
  {
36904
37217
  checked: selected,
36905
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _731 => _731(c === true)]),
37218
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _734 => _734(c === true)]),
36906
37219
  onClick: (e) => e.stopPropagation(),
36907
37220
  disabled,
36908
37221
  "aria-label": title,
@@ -37001,7 +37314,7 @@ function TagSearchInput({
37001
37314
  if (!showHiddenTags) return;
37002
37315
  const handleClick = (e) => {
37003
37316
  const target = e.target;
37004
- if (!_optionalChain([hiddenTagsRef, 'access', _732 => _732.current, 'optionalAccess', _733 => _733.contains, 'call', _734 => _734(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _735 => _735.current, 'optionalAccess', _736 => _736.contains, 'call', _737 => _737(target)])) {
37317
+ if (!_optionalChain([hiddenTagsRef, 'access', _735 => _735.current, 'optionalAccess', _736 => _736.contains, 'call', _737 => _737(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _738 => _738.current, 'optionalAccess', _739 => _739.contains, 'call', _740 => _740(target)])) {
37005
37318
  setShowHiddenTags(false);
37006
37319
  }
37007
37320
  };
@@ -37017,13 +37330,13 @@ function TagSearchInput({
37017
37330
  e.preventDefault();
37018
37331
  onSubmit(searchValue);
37019
37332
  }
37020
- _optionalChain([onKeyDown, 'optionalCall', _738 => _738(e)]);
37333
+ _optionalChain([onKeyDown, 'optionalCall', _741 => _741(e)]);
37021
37334
  };
37022
37335
  const handleClearAll = (e) => {
37023
37336
  e.stopPropagation();
37024
37337
  e.preventDefault();
37025
- _optionalChain([onClearAll, 'optionalCall', _739 => _739()]);
37026
- _optionalChain([inputRef, 'access', _740 => _740.current, 'optionalAccess', _741 => _741.focus, 'call', _742 => _742()]);
37338
+ _optionalChain([onClearAll, 'optionalCall', _742 => _742()]);
37339
+ _optionalChain([inputRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.focus, 'call', _745 => _745()]);
37027
37340
  };
37028
37341
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
37029
37342
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -37040,7 +37353,7 @@ function TagSearchInput({
37040
37353
  className
37041
37354
  ),
37042
37355
  onClick: () => {
37043
- if (!disabled) _optionalChain([inputRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.focus, 'call', _745 => _745()]);
37356
+ if (!disabled) _optionalChain([inputRef, 'access', _746 => _746.current, 'optionalAccess', _747 => _747.focus, 'call', _748 => _748()]);
37044
37357
  },
37045
37358
  children: [
37046
37359
  /* @__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" }) }),
@@ -37112,7 +37425,7 @@ function TagSearchInput({
37112
37425
  items: hiddenTags,
37113
37426
  disabled,
37114
37427
  style: {
37115
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _746 => _746.current, 'optionalAccess', _747 => _747.getBoundingClientRect, 'call', _748 => _748(), 'access', _749 => _749.left]), () => ( 0))) : 0
37428
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _749 => _749.current, 'optionalAccess', _750 => _750.getBoundingClientRect, 'call', _751 => _751(), 'access', _752 => _752.left]), () => ( 0))) : 0
37116
37429
  },
37117
37430
  onRemove: (value) => {
37118
37431
  onTagRemove(value);
@@ -37213,7 +37526,7 @@ function MarkdownEditor({
37213
37526
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
37214
37527
  _react.useEffect.call(void 0, () => {
37215
37528
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
37216
- if (_optionalChain([mod, 'access', _750 => _750.commands, 'optionalAccess', _751 => _751.getExtraCommands])) {
37529
+ if (_optionalChain([mod, 'access', _753 => _753.commands, 'optionalAccess', _754 => _754.getExtraCommands])) {
37217
37530
  setDefaultExtraCommands(mod.commands.getExtraCommands());
37218
37531
  }
37219
37532
  });
@@ -37247,7 +37560,7 @@ function MarkdownEditor({
37247
37560
  const isImage = file.type.startsWith("image/");
37248
37561
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
37249
37562
  insertTextAtCursor(markdown);
37250
- _optionalChain([onFileUploaded, 'optionalCall', _752 => _752(url, file.name)]);
37563
+ _optionalChain([onFileUploaded, 'optionalCall', _755 => _755(url, file.name)]);
37251
37564
  } catch (error) {
37252
37565
  console.error("File upload failed:", error);
37253
37566
  setUploadProgress("Upload failed. Please try again.");
@@ -37260,7 +37573,7 @@ function MarkdownEditor({
37260
37573
  );
37261
37574
  const handleFileInputChange = _react.useCallback.call(void 0,
37262
37575
  (e) => {
37263
- const file = _optionalChain([e, 'access', _753 => _753.target, 'access', _754 => _754.files, 'optionalAccess', _755 => _755[0]]);
37576
+ const file = _optionalChain([e, 'access', _756 => _756.target, 'access', _757 => _757.files, 'optionalAccess', _758 => _758[0]]);
37264
37577
  if (file) {
37265
37578
  handleFileUpload(file);
37266
37579
  e.target.value = "";
@@ -37271,7 +37584,7 @@ function MarkdownEditor({
37271
37584
  const handlePaste = _react.useCallback.call(void 0,
37272
37585
  (e) => {
37273
37586
  if (!onUploadFile) return;
37274
- const items = _optionalChain([e, 'access', _756 => _756.clipboardData, 'optionalAccess', _757 => _757.items]);
37587
+ const items = _optionalChain([e, 'access', _759 => _759.clipboardData, 'optionalAccess', _760 => _760.items]);
37275
37588
  if (!items) return;
37276
37589
  for (const item of items) {
37277
37590
  if (item.type.startsWith("image/")) {
@@ -37296,7 +37609,7 @@ function MarkdownEditor({
37296
37609
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
37297
37610
  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" }),
37298
37611
  execute: () => {
37299
- _optionalChain([fileInputRef, 'access', _758 => _758.current, 'optionalAccess', _759 => _759.click, 'call', _760 => _760()]);
37612
+ _optionalChain([fileInputRef, 'access', _761 => _761.current, 'optionalAccess', _762 => _762.click, 'call', _763 => _763()]);
37300
37613
  }
37301
37614
  } : null;
37302
37615
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -37308,7 +37621,7 @@ function MarkdownEditor({
37308
37621
  const EDGE_ZONE = 60;
37309
37622
  const MAX_SCROLL_SPEED = 15;
37310
37623
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
37311
- let node = _optionalChain([el, 'optionalAccess', _761 => _761.parentElement]);
37624
+ let node = _optionalChain([el, 'optionalAccess', _764 => _764.parentElement]);
37312
37625
  while (node && node !== document.documentElement) {
37313
37626
  const { overflowY } = window.getComputedStyle(node);
37314
37627
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -37451,7 +37764,7 @@ function matchesAccept(file, accept) {
37451
37764
  });
37452
37765
  }
37453
37766
  function dragHasFiles(e) {
37454
- const types = _optionalChain([e, 'access', _762 => _762.dataTransfer, 'optionalAccess', _763 => _763.types]);
37767
+ const types = _optionalChain([e, 'access', _765 => _765.dataTransfer, 'optionalAccess', _766 => _766.types]);
37455
37768
  if (!types) return false;
37456
37769
  for (let i = 0; i < types.length; i++) {
37457
37770
  if (types[i] === "Files") return true;
@@ -37477,11 +37790,11 @@ function FileUpload({
37477
37790
  maxListHeight,
37478
37791
  acceptWindowDrops = false
37479
37792
  }) {
37480
- const [dragActive, setDragActive] = React117.useState(false);
37481
- const [validationError, setValidationError] = React117.useState(null);
37482
- const fileInputRef = React117.useRef(null);
37793
+ const [dragActive, setDragActive] = React118.useState(false);
37794
+ const [validationError, setValidationError] = React118.useState(null);
37795
+ const fileInputRef = React118.useRef(null);
37483
37796
  const isManaged = managedFiles !== void 0;
37484
- const files = React117.useMemo(() => {
37797
+ const files = React118.useMemo(() => {
37485
37798
  if (!value) return [];
37486
37799
  return Array.isArray(value) ? value : [value];
37487
37800
  }, [value]);
@@ -37529,7 +37842,7 @@ function FileUpload({
37529
37842
  fileInputRef.current.value = "";
37530
37843
  }
37531
37844
  };
37532
- const handleFilesRef = React117.useRef(handleFiles);
37845
+ const handleFilesRef = React118.useRef(handleFiles);
37533
37846
  handleFilesRef.current = handleFiles;
37534
37847
  const handleDrag = (e) => {
37535
37848
  e.preventDefault();
@@ -37546,11 +37859,11 @@ function FileUpload({
37546
37859
  e.stopPropagation();
37547
37860
  setDragActive(false);
37548
37861
  if (disabled) return;
37549
- if (_optionalChain([e, 'access', _764 => _764.dataTransfer, 'access', _765 => _765.files, 'optionalAccess', _766 => _766.length])) {
37862
+ if (_optionalChain([e, 'access', _767 => _767.dataTransfer, 'access', _768 => _768.files, 'optionalAccess', _769 => _769.length])) {
37550
37863
  handleFiles(e.dataTransfer.files);
37551
37864
  }
37552
37865
  };
37553
- React117.useEffect(() => {
37866
+ React118.useEffect(() => {
37554
37867
  if (!acceptWindowDrops || disabled) return;
37555
37868
  let dragCounter = 0;
37556
37869
  const onWindowDragEnter = (e) => {
@@ -37574,7 +37887,7 @@ function FileUpload({
37574
37887
  e.preventDefault();
37575
37888
  dragCounter = 0;
37576
37889
  setDragActive(false);
37577
- if (_optionalChain([e, 'access', _767 => _767.dataTransfer, 'optionalAccess', _768 => _768.files, 'optionalAccess', _769 => _769.length])) {
37890
+ if (_optionalChain([e, 'access', _770 => _770.dataTransfer, 'optionalAccess', _771 => _771.files, 'optionalAccess', _772 => _772.length])) {
37578
37891
  handleFilesRef.current(e.dataTransfer.files);
37579
37892
  }
37580
37893
  };
@@ -37596,7 +37909,7 @@ function FileUpload({
37596
37909
  };
37597
37910
  }, [acceptWindowDrops, disabled]);
37598
37911
  const handleFileSelect = (e) => {
37599
- if (_optionalChain([e, 'access', _770 => _770.target, 'access', _771 => _771.files, 'optionalAccess', _772 => _772.length])) {
37912
+ if (_optionalChain([e, 'access', _773 => _773.target, 'access', _774 => _774.files, 'optionalAccess', _775 => _775.length])) {
37600
37913
  handleFiles(e.target.files);
37601
37914
  }
37602
37915
  };
@@ -37613,7 +37926,7 @@ function FileUpload({
37613
37926
  };
37614
37927
  const openDialog = async () => {
37615
37928
  if (disabled) return;
37616
- _optionalChain([fileInputRef, 'access', _773 => _773.current, 'optionalAccess', _774 => _774.click, 'call', _775 => _775()]);
37929
+ _optionalChain([fileInputRef, 'access', _776 => _776.current, 'optionalAccess', _777 => _777.click, 'call', _778 => _778()]);
37617
37930
  };
37618
37931
  const displayError = error || validationError || void 0;
37619
37932
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -37691,7 +38004,7 @@ function FileUpload({
37691
38004
  "button",
37692
38005
  {
37693
38006
  type: "button",
37694
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _776 => _776(entry.id)]),
38007
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _779 => _779(entry.id)]),
37695
38008
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
37696
38009
  "aria-label": `Remove ${entry.fileName}`,
37697
38010
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -37792,10 +38105,10 @@ function ImageUploader({
37792
38105
  alt = "Uploaded image",
37793
38106
  className
37794
38107
  }) {
37795
- const inputRef = React118.useRef(null);
37796
- const [dragActive, setDragActive] = React118.useState(false);
37797
- const [pressed, setPressed] = React118.useState(false);
37798
- const [validationError, setValidationError] = React118.useState(null);
38108
+ const inputRef = React119.useRef(null);
38109
+ const [dragActive, setDragActive] = React119.useState(false);
38110
+ const [pressed, setPressed] = React119.useState(false);
38111
+ const [validationError, setValidationError] = React119.useState(null);
37799
38112
  const interactive = !disabled && !loading;
37800
38113
  const hasImage = Boolean(value);
37801
38114
  const displayError = error || validationError || void 0;
@@ -37814,7 +38127,7 @@ function ImageUploader({
37814
38127
  onChange(file);
37815
38128
  };
37816
38129
  const handleFileSelect = (e) => {
37817
- validateAndEmit(_optionalChain([e, 'access', _777 => _777.target, 'access', _778 => _778.files, 'optionalAccess', _779 => _779[0]]));
38130
+ validateAndEmit(_optionalChain([e, 'access', _780 => _780.target, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]));
37818
38131
  if (inputRef.current) inputRef.current.value = "";
37819
38132
  };
37820
38133
  const handleDrag = (e) => {
@@ -37829,11 +38142,11 @@ function ImageUploader({
37829
38142
  e.stopPropagation();
37830
38143
  setDragActive(false);
37831
38144
  if (!interactive) return;
37832
- validateAndEmit(_optionalChain([e, 'access', _780 => _780.dataTransfer, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]));
38145
+ validateAndEmit(_optionalChain([e, 'access', _783 => _783.dataTransfer, 'access', _784 => _784.files, 'optionalAccess', _785 => _785[0]]));
37833
38146
  };
37834
38147
  const openDialog = () => {
37835
38148
  if (!interactive) return;
37836
- _optionalChain([inputRef, 'access', _783 => _783.current, 'optionalAccess', _784 => _784.click, 'call', _785 => _785()]);
38149
+ _optionalChain([inputRef, 'access', _786 => _786.current, 'optionalAccess', _787 => _787.click, 'call', _788 => _788()]);
37837
38150
  };
37838
38151
  const handleRootKeyDown = (e) => {
37839
38152
  if (hasImage || !interactive) return;
@@ -37968,10 +38281,10 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
37968
38281
 
37969
38282
 
37970
38283
 
37971
- var Popover2 = PopoverPrimitive5.Root;
37972
- var PopoverTrigger = PopoverPrimitive5.Trigger;
37973
- var PopoverContent = React119.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive5.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
37974
- PopoverPrimitive5.Content,
38284
+ var Popover2 = PopoverPrimitive6.Root;
38285
+ var PopoverTrigger = PopoverPrimitive6.Trigger;
38286
+ var PopoverContent = React120.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38287
+ PopoverPrimitive6.Content,
37975
38288
  {
37976
38289
  ref,
37977
38290
  align,
@@ -37983,7 +38296,7 @@ var PopoverContent = React119.forwardRef(({ className, align = "center", sideOff
37983
38296
  ...props
37984
38297
  }
37985
38298
  ) }));
37986
- PopoverContent.displayName = PopoverPrimitive5.Content.displayName;
38299
+ PopoverContent.displayName = PopoverPrimitive6.Content.displayName;
37987
38300
 
37988
38301
  // src/components/ui/color-preset-select.tsx
37989
38302
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
@@ -38023,8 +38336,8 @@ function ColorPresetSelect({
38023
38336
  }) {
38024
38337
  const selectedPreset = presets.find((p) => p.key === presetKey);
38025
38338
  const isCustom = !selectedPreset;
38026
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _786 => _786.label]), () => ( "Custom"));
38027
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _787 => _787.color]), () => ( value));
38339
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _789 => _789.label]), () => ( "Custom"));
38340
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _790 => _790.color]), () => ( value));
38028
38341
  const groups = [
38029
38342
  {
38030
38343
  items: [
@@ -38067,8 +38380,8 @@ var FORMATS = ["HEX", "RGB", "HSL"];
38067
38380
  var channelInputClass = "flex-1 min-w-0 [&_input]:text-center [&_input]:tabular-nums";
38068
38381
  var hexInputClass = "flex-1 min-w-0 [&_input]:uppercase";
38069
38382
  function HexInputs({ value, onChange }) {
38070
- const [draft, setDraft] = React120.useState(value);
38071
- React120.useEffect(() => setDraft(value), [value]);
38383
+ const [draft, setDraft] = React121.useState(value);
38384
+ React121.useEffect(() => setDraft(value), [value]);
38072
38385
  const commit = () => {
38073
38386
  const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
38074
38387
  if (HEX_PATTERN.test(candidate)) onChange(candidate);
@@ -38100,8 +38413,8 @@ function ChannelInput({
38100
38413
  ariaLabel,
38101
38414
  onCommit
38102
38415
  }) {
38103
- const [draft, setDraft] = React120.useState(String(value));
38104
- React120.useEffect(() => setDraft(String(value)), [value]);
38416
+ const [draft, setDraft] = React121.useState(String(value));
38417
+ React121.useEffect(() => setDraft(String(value)), [value]);
38105
38418
  const commit = () => {
38106
38419
  const parsed = Number.parseInt(draft, 10);
38107
38420
  if (!Number.isFinite(parsed)) {
@@ -38161,8 +38474,8 @@ function HslInputs({ value, onChange }) {
38161
38474
  ] });
38162
38475
  }
38163
38476
  function ColorPickerInput({ value, onChange, disabled, className }) {
38164
- const [open, setOpen] = React120.useState(false);
38165
- const [format2, setFormat] = React120.useState("HEX");
38477
+ const [open, setOpen] = React121.useState(false);
38478
+ const [format2, setFormat] = React121.useState("HEX");
38166
38479
  const formatGroups = [
38167
38480
  {
38168
38481
  items: FORMATS.map((f) => ({
@@ -38227,9 +38540,9 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
38227
38540
 
38228
38541
  var dismissOpenTooltip = null;
38229
38542
  function WithLeftTooltip({ content, children }) {
38230
- const [open, setOpen] = React121.useState(false);
38231
- const isTouchRef = React121.useRef(false);
38232
- const close = React121.useCallback(() => setOpen(false), []);
38543
+ const [open, setOpen] = React122.useState(false);
38544
+ const isTouchRef = React122.useRef(false);
38545
+ const close = React122.useCallback(() => setOpen(false), []);
38233
38546
  if (!content) return children;
38234
38547
  const toggleFromTouch = () => {
38235
38548
  setOpen((prev) => {
@@ -38314,7 +38627,7 @@ function TicketStatusConfigRow({
38314
38627
  _chunkQJGRP2YEcjs.Input,
38315
38628
  {
38316
38629
  value: name,
38317
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _788 => _788(e.target.value)]),
38630
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _791 => _791(e.target.value)]),
38318
38631
  disabled: isSystem,
38319
38632
  readOnly: isSystem,
38320
38633
  "aria-label": "Status name",
@@ -38361,248 +38674,6 @@ function TicketStatusConfigRow({
38361
38674
  );
38362
38675
  }
38363
38676
 
38364
- // src/components/ui/assignee-dropdown.tsx
38365
-
38366
-
38367
- _chunkFIG2RKZFcjs.init_cn.call(void 0, );
38368
-
38369
- function AssigneeDropdown(props) {
38370
- if (props.variant === "compact") {
38371
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CompactAssigneeDropdown, { ...props });
38372
- }
38373
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DefaultAssigneeDropdown, { ...props });
38374
- }
38375
- function CompactAssigneeDropdown({
38376
- currentAssignee,
38377
- options,
38378
- isLoading,
38379
- onAssign,
38380
- className
38381
- }) {
38382
- const [isOpen, setIsOpen] = React122.useState(false);
38383
- const [search, setSearch] = React122.useState("");
38384
- const hasAssignee = !!currentAssignee;
38385
- React122.useEffect(() => {
38386
- if (!isOpen) setSearch("");
38387
- }, [isOpen]);
38388
- const filtered = React122.useMemo(() => {
38389
- const q = search.trim().toLowerCase();
38390
- if (!q) return options;
38391
- return options.filter((o) => o.label.toLowerCase().includes(q));
38392
- }, [options, search]);
38393
- const orderedOptions = React122.useMemo(() => {
38394
- if (!currentAssignee) return filtered;
38395
- const current = filtered.find((o) => o.value === currentAssignee.id);
38396
- if (!current) return filtered;
38397
- return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
38398
- }, [filtered, currentAssignee]);
38399
- const handleSelect = (userId) => {
38400
- const next = _optionalChain([currentAssignee, 'optionalAccess', _789 => _789.id]) === userId ? null : userId;
38401
- onAssign(next);
38402
- setIsOpen(false);
38403
- };
38404
- const trigger = hasAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38405
- "button",
38406
- {
38407
- type: "button",
38408
- "aria-label": "Change assignee",
38409
- className: _chunkFIG2RKZFcjs.cn.call(void 0,
38410
- "shrink-0 rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
38411
- className
38412
- ),
38413
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38414
- SquareAvatar,
38415
- {
38416
- src: currentAssignee.avatarSrc,
38417
- alt: currentAssignee.name,
38418
- fallback: currentAssignee.name || "User",
38419
- size: "sm",
38420
- variant: "round"
38421
- }
38422
- )
38423
- }
38424
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38425
- "button",
38426
- {
38427
- type: "button",
38428
- "aria-label": "Assign user",
38429
- className: _chunkFIG2RKZFcjs.cn.call(void 0,
38430
- "size-8 rounded-full border border-ods-border flex items-center justify-center shrink-0",
38431
- "text-ods-text-secondary hover:text-ods-accent hover:border-ods-accent transition-colors",
38432
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
38433
- className
38434
- ),
38435
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.UserPlusIcon, { className: "size-4" })
38436
- }
38437
- );
38438
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive6.Root, { open: isOpen, onOpenChange: setIsOpen, modal: false, children: [
38439
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Trigger, { asChild: true, children: trigger }),
38440
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Portal, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
38441
- PopoverPrimitive6.Content,
38442
- {
38443
- align: "end",
38444
- sideOffset: 6,
38445
- className: _chunkFIG2RKZFcjs.cn.call(void 0,
38446
- "z-50 w-72 bg-ods-card border border-ods-border rounded-[6px] shadow-lg overflow-hidden",
38447
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
38448
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
38449
- "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
38450
- "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
38451
- ),
38452
- children: [
38453
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38454
- _chunkQJGRP2YEcjs.Input,
38455
- {
38456
- autoFocus: true,
38457
- value: search,
38458
- onChange: (e) => setSearch(e.target.value),
38459
- placeholder: "Search users...",
38460
- startAdornment: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "size-4 text-ods-text-secondary" }),
38461
- className: "rounded-none border-0"
38462
- }
38463
- ) }),
38464
- /* @__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) => {
38465
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _790 => _790.id]) === opt.value;
38466
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
38467
- "button",
38468
- {
38469
- type: "button",
38470
- role: "option",
38471
- "aria-selected": isCurrent,
38472
- onClick: () => handleSelect(opt.value),
38473
- className: _chunkFIG2RKZFcjs.cn.call(void 0,
38474
- "flex items-center gap-[var(--spacing-system-xs)] w-full px-[var(--spacing-system-sf)] py-[var(--spacing-system-xs)] text-left",
38475
- "hover:bg-ods-bg-hover transition-colors",
38476
- isCurrent && "bg-ods-bg-hover"
38477
- ),
38478
- children: [
38479
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38480
- SquareAvatar,
38481
- {
38482
- src: opt.imageUrl,
38483
- alt: opt.label,
38484
- fallback: opt.label,
38485
- size: "sm",
38486
- variant: "round",
38487
- className: "h-6 w-6 shrink-0"
38488
- }
38489
- ),
38490
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-1 truncate text-h4 text-ods-text-primary", title: opt.label, children: opt.label }),
38491
- isCurrent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.CheckIcon, { className: "size-4 shrink-0 text-ods-accent" })
38492
- ]
38493
- },
38494
- opt.value
38495
- );
38496
- }) })
38497
- ]
38498
- }
38499
- ) })
38500
- ] });
38501
- }
38502
- function DefaultAssigneeDropdown({
38503
- currentAssignee,
38504
- options,
38505
- isLoading,
38506
- onAssign,
38507
- className
38508
- }) {
38509
- const [isEditing, setIsEditing] = React122.useState(false);
38510
- const hasAssignee = !!currentAssignee;
38511
- const renderOption = React122.useCallback((option) => {
38512
- const opt = option;
38513
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-sf)] w-full min-w-0", children: [
38514
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38515
- SquareAvatar,
38516
- {
38517
- src: opt.imageUrl,
38518
- alt: opt.label,
38519
- fallback: opt.label,
38520
- size: "sm",
38521
- variant: "round",
38522
- className: "h-6 w-6 shrink-0"
38523
- }
38524
- ),
38525
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", title: opt.label, children: opt.label })
38526
- ] });
38527
- }, []);
38528
- if (isEditing) {
38529
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "min-w-0", className), children: [
38530
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38531
- Autocomplete,
38532
- {
38533
- options,
38534
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _791 => _791.id]), () => ( null)),
38535
- onChange: (val) => {
38536
- onAssign(val);
38537
- setIsEditing(false);
38538
- },
38539
- placeholder: "Search users...",
38540
- loading: isLoading,
38541
- showChevron: false,
38542
- startAdornment: hasAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38543
- SquareAvatar,
38544
- {
38545
- src: currentAssignee.avatarSrc,
38546
- alt: currentAssignee.name,
38547
- fallback: currentAssignee.name || "User",
38548
- size: "sm",
38549
- variant: "round",
38550
- className: "h-6 w-6"
38551
- }
38552
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.UserIcon, { className: "size-5 text-ods-text-secondary" }),
38553
- renderOption
38554
- }
38555
- ),
38556
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate block mt-0.5", children: "Assigned" })
38557
- ] });
38558
- }
38559
- if (hasAssignee) {
38560
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center gap-[var(--spacing-system-xs)] min-w-0", className), children: [
38561
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38562
- SquareAvatar,
38563
- {
38564
- src: currentAssignee.avatarSrc,
38565
- alt: currentAssignee.name,
38566
- fallback: currentAssignee.name || "User",
38567
- size: "md",
38568
- variant: "round",
38569
- className: "shrink-0"
38570
- }
38571
- ),
38572
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col justify-center", children: [
38573
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)] w-full min-w-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
38574
- "button",
38575
- {
38576
- type: "button",
38577
- onClick: () => setIsEditing(true),
38578
- className: "flex items-center gap-[var(--spacing-system-xxs)] cursor-pointer group text-left",
38579
- children: [
38580
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.PenEditIcon, { className: "size-4 shrink-0 text-ods-text-secondary group-hover:text-ods-accent transition-colors" }),
38581
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary truncate", title: currentAssignee.name, children: currentAssignee.name })
38582
- ]
38583
- }
38584
- ) }),
38585
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate", children: "Assigned" })
38586
- ] }) })
38587
- ] });
38588
- }
38589
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "min-w-0", className), children: [
38590
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
38591
- "button",
38592
- {
38593
- type: "button",
38594
- onClick: () => setIsEditing(true),
38595
- className: "flex items-center gap-[var(--spacing-system-xxs)] text-h4 text-ods-accent underline truncate cursor-pointer hover:opacity-80 transition-opacity text-left",
38596
- children: [
38597
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.UserIcon, { className: "size-4 shrink-0" }),
38598
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Assign User" })
38599
- ]
38600
- }
38601
- ),
38602
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate block", children: "Assigned" })
38603
- ] });
38604
- }
38605
-
38606
38677
  // src/components/ui/ticket-info-section.tsx
38607
38678
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
38608
38679
 
@@ -38619,7 +38690,6 @@ function TicketDetailSection({ label, children, className }) {
38619
38690
  // src/components/ui/ticket-attachments-list.tsx
38620
38691
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
38621
38692
 
38622
-
38623
38693
  function TicketAttachmentsList({ attachments, className, size = "default" }) {
38624
38694
  if (attachments.length === 0) return null;
38625
38695
  const compact = size === "compact";
@@ -38647,7 +38717,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
38647
38717
  "shrink-0 flex items-center justify-center rounded-[6px] bg-ods-card border border-ods-border",
38648
38718
  compact ? "size-8" : "size-10"
38649
38719
  ),
38650
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.FileIcon, { className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-ods-text-secondary", compact ? "size-4" : "size-6") })
38720
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.FileIcon, { className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-ods-text-secondary", compact ? "size-4" : "size-6") })
38651
38721
  }
38652
38722
  ),
38653
38723
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 overflow-hidden", children: [
@@ -38661,6 +38731,16 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
38661
38731
  ),
38662
38732
  attachment.fileSize && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: attachment.fileSize })
38663
38733
  ] }),
38734
+ attachment.onDelete && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38735
+ "button",
38736
+ {
38737
+ type: "button",
38738
+ onClick: attachment.onDelete,
38739
+ className: "shrink-0 text-ods-text-secondary hover:text-ods-error transition-colors",
38740
+ "aria-label": `Delete ${attachment.fileName}`,
38741
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.TrashIcon, { className: compact ? "size-4" : "size-5" })
38742
+ }
38743
+ ),
38664
38744
  attachment.onDownload && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38665
38745
  "button",
38666
38746
  {
@@ -38668,7 +38748,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
38668
38748
  onClick: attachment.onDownload,
38669
38749
  className: "shrink-0 text-ods-text-secondary hover:text-ods-text-primary transition-colors",
38670
38750
  "aria-label": `Download ${attachment.fileName}`,
38671
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Download, { className: compact ? "size-4" : "size-6" })
38751
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Download02Icon, { className: compact ? "size-4" : "size-6" })
38672
38752
  }
38673
38753
  )
38674
38754
  ]
@@ -39615,7 +39695,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
39615
39695
  reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
39616
39696
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: primaryText })
39617
39697
  ] }),
39618
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React112.default.Fragment, { children: [
39698
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React113.default.Fragment, { children: [
39619
39699
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
39620
39700
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
39621
39701
  ] }, i)) }) }),
@@ -39707,7 +39787,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
39707
39787
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
39708
39788
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
39709
39789
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: item.preview || COMPACT_CARD_ROW_FILLER }) }),
39710
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React112.default.Fragment, { children: [
39790
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.length > 0 ? metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React113.default.Fragment, { children: [
39711
39791
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
39712
39792
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
39713
39793
  ] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
@@ -39819,7 +39899,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
39819
39899
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: item.customerEmail })
39820
39900
  ] }) : null,
39821
39901
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-4 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "italic text-ods-text-secondary/60", children: "No description provided." }) }) }),
39822
- metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React112.default.Fragment, { children: [
39902
+ metaParts.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW_BOX, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_META_ROW, children: metaParts.map((part, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React113.default.Fragment, { children: [
39823
39903
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
39824
39904
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
39825
39905
  ] }, i)) }) }) : null
@@ -43002,7 +43082,7 @@ function ChatCardLoader({
43002
43082
  extras
43003
43083
  }) {
43004
43084
  const runtime = _chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, );
43005
- const resolvedChatRef = React112.default.useMemo(() => {
43085
+ const resolvedChatRef = React113.default.useMemo(() => {
43006
43086
  const cta = resolveSourceRowCTA(
43007
43087
  {
43008
43088
  sourceRepo: chatRef.sourceRepo,
@@ -49714,5 +49794,6 @@ function EmbeddableChatInner({
49714
49794
 
49715
49795
 
49716
49796
 
49717
- 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.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; 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.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; 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.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.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.Progress = Progress; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; 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.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ONBOARDING_ICONS = ONBOARDING_ICONS; exports.resolveOnboardingIcon = resolveOnboardingIcon; exports.ONBOARDING_ICON_OPTIONS = ONBOARDING_ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; 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.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; 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.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; 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.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; 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.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; 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.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; 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.WarningBlock = WarningBlock; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; 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.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; 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.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
49718
- //# sourceMappingURL=chunk-AYBSXRRC.cjs.map
49797
+
49798
+ 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.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; 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.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; 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.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.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.Progress = Progress; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; 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.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ONBOARDING_ICONS = ONBOARDING_ICONS; exports.resolveOnboardingIcon = resolveOnboardingIcon; exports.ONBOARDING_ICON_OPTIONS = ONBOARDING_ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; 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.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; 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.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; 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.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; 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.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; 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.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; 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.WarningBlock = WarningBlock; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.getCaptionsUrl = getCaptionsUrl; 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.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; 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.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
49799
+ //# sourceMappingURL=chunk-GABTFTDE.cjs.map