@flamingo-stack/openframe-frontend-core 0.0.325 → 0.0.326

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 (95) hide show
  1. package/dist/{chunk-EQSGC5WT.js → chunk-2A7HDFWT.js} +2 -2
  2. package/dist/{chunk-4USOR7KK.cjs → chunk-4ZP43F2Y.cjs} +25 -25
  3. package/dist/{chunk-4USOR7KK.cjs.map → chunk-4ZP43F2Y.cjs.map} +1 -1
  4. package/dist/{chunk-VSUBZBG7.js → chunk-ANZ24A74.js} +2 -2
  5. package/dist/{chunk-QLSUOQMU.cjs → chunk-D3QAD5DH.cjs} +7 -7
  6. package/dist/{chunk-QLSUOQMU.cjs.map → chunk-D3QAD5DH.cjs.map} +1 -1
  7. package/dist/{chunk-HS2YU2NF.js → chunk-DRIEQWHS.js} +2 -2
  8. package/dist/{chunk-GYWMN4AK.js → chunk-ET6HI2SY.js} +4 -4
  9. package/dist/{chunk-P3IIAUCL.js → chunk-FXY2QIAY.js} +4245 -4172
  10. package/dist/chunk-FXY2QIAY.js.map +1 -0
  11. package/dist/{chunk-MIVP6B6P.js → chunk-HP3IBX4D.js} +4 -4
  12. package/dist/{chunk-K2PS5MJH.cjs → chunk-HPZLBTDP.cjs} +5 -5
  13. package/dist/{chunk-K2PS5MJH.cjs.map → chunk-HPZLBTDP.cjs.map} +1 -1
  14. package/dist/{chunk-5COLEZW6.cjs → chunk-J3MYVBBB.cjs} +62 -62
  15. package/dist/{chunk-5COLEZW6.cjs.map → chunk-J3MYVBBB.cjs.map} +1 -1
  16. package/dist/{chunk-AYBSXRRC.cjs → chunk-JCRU2L2D.cjs} +871 -798
  17. package/dist/chunk-JCRU2L2D.cjs.map +1 -0
  18. package/dist/{chunk-XQBK7IVF.cjs → chunk-JNU6H67K.cjs} +15 -15
  19. package/dist/{chunk-XQBK7IVF.cjs.map → chunk-JNU6H67K.cjs.map} +1 -1
  20. package/dist/{chunk-XFRQUV5M.js → chunk-JZY33ZRU.js} +2 -2
  21. package/dist/{chunk-6GSM6K5W.js → chunk-LS5NC5OV.js} +2 -2
  22. package/dist/{chunk-UJIDDEXD.js → chunk-NLDDOARF.js} +2 -2
  23. package/dist/{chunk-5HRCKYFX.cjs → chunk-OCE5CI5P.cjs} +9 -9
  24. package/dist/{chunk-5HRCKYFX.cjs.map → chunk-OCE5CI5P.cjs.map} +1 -1
  25. package/dist/{chunk-XTV2EZHO.cjs → chunk-QTHOFU4Y.cjs} +31 -31
  26. package/dist/{chunk-XTV2EZHO.cjs.map → chunk-QTHOFU4Y.cjs.map} +1 -1
  27. package/dist/{chunk-5GXMQPG7.cjs → chunk-R2K5STAT.cjs} +37 -37
  28. package/dist/{chunk-5GXMQPG7.cjs.map → chunk-R2K5STAT.cjs.map} +1 -1
  29. package/dist/{chunk-5YGKK636.js → chunk-R2YOV7MW.js} +4 -4
  30. package/dist/{chunk-5DXWGCTW.cjs → chunk-W3E5SEIR.cjs} +56 -56
  31. package/dist/{chunk-5DXWGCTW.cjs.map → chunk-W3E5SEIR.cjs.map} +1 -1
  32. package/dist/{chunk-VUE2FSVD.js → chunk-WFDJDGO6.js} +2 -2
  33. package/dist/{chunk-U74OC6PM.cjs → chunk-WV65IRWY.cjs} +26 -26
  34. package/dist/{chunk-U74OC6PM.cjs.map → chunk-WV65IRWY.cjs.map} +1 -1
  35. package/dist/{chunk-WAYJ7VBD.cjs → chunk-YRUKVWRV.cjs} +12 -12
  36. package/dist/{chunk-WAYJ7VBD.cjs.map → chunk-YRUKVWRV.cjs.map} +1 -1
  37. package/dist/{chunk-5CWJGCOL.js → chunk-ZYHAFLX7.js} +4 -4
  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/ticket-attachments-list.d.ts +2 -0
  74. package/dist/components/ui/ticket-attachments-list.d.ts.map +1 -1
  75. package/dist/index.cjs +4 -2
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +3 -1
  78. package/package.json +1 -1
  79. package/src/components/ui/index.ts +1 -0
  80. package/src/components/ui/info-section.tsx +151 -0
  81. package/src/components/ui/ticket-attachments-list.tsx +14 -2
  82. package/src/stories/InfoSection.stories.tsx +110 -0
  83. package/dist/chunk-AYBSXRRC.cjs.map +0 -1
  84. package/dist/chunk-P3IIAUCL.js.map +0 -1
  85. /package/dist/{chunk-EQSGC5WT.js.map → chunk-2A7HDFWT.js.map} +0 -0
  86. /package/dist/{chunk-VSUBZBG7.js.map → chunk-ANZ24A74.js.map} +0 -0
  87. /package/dist/{chunk-HS2YU2NF.js.map → chunk-DRIEQWHS.js.map} +0 -0
  88. /package/dist/{chunk-GYWMN4AK.js.map → chunk-ET6HI2SY.js.map} +0 -0
  89. /package/dist/{chunk-MIVP6B6P.js.map → chunk-HP3IBX4D.js.map} +0 -0
  90. /package/dist/{chunk-XFRQUV5M.js.map → chunk-JZY33ZRU.js.map} +0 -0
  91. /package/dist/{chunk-6GSM6K5W.js.map → chunk-LS5NC5OV.js.map} +0 -0
  92. /package/dist/{chunk-UJIDDEXD.js.map → chunk-NLDDOARF.js.map} +0 -0
  93. /package/dist/{chunk-5YGKK636.js.map → chunk-R2YOV7MW.js.map} +0 -0
  94. /package/dist/{chunk-VUE2FSVD.js.map → chunk-WFDJDGO6.js.map} +0 -0
  95. /package/dist/{chunk-5CWJGCOL.js.map → chunk-ZYHAFLX7.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
@@ -19024,13 +19329,13 @@ function IconButtonsVariant({
19024
19329
  }) {
19025
19330
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
19026
19331
  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]);
19332
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _357 => _357[0], 'access', _358 => _358.submenu, 'optionalAccess', _359 => _359.length]);
19028
19333
  const singleAction = isSingleAction ? actions[0] : null;
19029
19334
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
19030
19335
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
19031
19336
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: [
19032
19337
  selector,
19033
- desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
19338
+ desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
19034
19339
  hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionsMenuDropdown, { groups: menuActions })
19035
19340
  ] }),
19036
19341
  /* @__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 +19360,7 @@ function PrimaryButtonsVariant({
19055
19360
  });
19056
19361
  const desktopActions = sortedActions.filter((a) => !a.showOnlyMobile);
19057
19362
  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)}`)) }),
19363
+ /* @__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
19364
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileBottomActions, { actions: sortedActions })
19060
19365
  ] });
19061
19366
  }
@@ -19071,7 +19376,7 @@ function MenuPrimaryVariant({
19071
19376
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "hidden md:flex items-center", ACTIONS_GAP, className), children: [
19072
19377
  selector,
19073
19378
  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)}`))
19379
+ 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
19380
  ] }),
19076
19381
  /* @__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
19382
  ActionsMenuDropdown,
@@ -19090,7 +19395,7 @@ function MobileBottomActions({ actions }) {
19090
19395
  "bg-ods-card border-t border-ods-border",
19091
19396
  "flex items-start pt-6 pb-6 px-6",
19092
19397
  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)}`)) });
19398
+ ), 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
19399
  }
19095
19400
  function usePageActionsBottomPadding(variant) {
19096
19401
  return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
@@ -19420,8 +19725,8 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
19420
19725
 
19421
19726
 
19422
19727
  function EntityImage({ src, alt, fallbackText, className }) {
19423
- const [imageFailed, setImageFailed] = React112.default.useState(false);
19424
- React112.default.useEffect(() => {
19728
+ const [imageFailed, setImageFailed] = React113.default.useState(false);
19729
+ React113.default.useEffect(() => {
19425
19730
  setImageFailed(false);
19426
19731
  }, [src]);
19427
19732
  const showFallback = imageFailed || !src;
@@ -19615,7 +19920,7 @@ var toggleVariants = _classvarianceauthority.cva.call(void 0,
19615
19920
  }
19616
19921
  }
19617
19922
  );
19618
- var Toggle = React72.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19923
+ var Toggle = React73.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19619
19924
  TogglePrimitive.Root,
19620
19925
  {
19621
19926
  ref,
@@ -19627,11 +19932,11 @@ Toggle.displayName = TogglePrimitive.Root.displayName;
19627
19932
 
19628
19933
  // src/components/toggle-group.tsx
19629
19934
 
19630
- var ToggleGroupContext = React73.createContext({
19935
+ var ToggleGroupContext = React74.createContext({
19631
19936
  size: "default",
19632
19937
  variant: "default"
19633
19938
  });
19634
- var ToggleGroup = React73.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19939
+ var ToggleGroup = React74.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19635
19940
  ToggleGroupPrimitive.Root,
19636
19941
  {
19637
19942
  ref,
@@ -19641,8 +19946,8 @@ var ToggleGroup = React73.forwardRef(({ className, variant, size, children, ...p
19641
19946
  }
19642
19947
  ));
19643
19948
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
19644
- var ToggleGroupItem = React73.forwardRef(({ className, children, variant, size, value, ...props }, ref) => {
19645
- const context = React73.useContext(ToggleGroupContext);
19949
+ var ToggleGroupItem = React74.forwardRef(({ className, children, variant, size, value, ...props }, ref) => {
19950
+ const context = React74.useContext(ToggleGroupContext);
19646
19951
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19647
19952
  ToggleGroupPrimitive.Item,
19648
19953
  {
@@ -20180,7 +20485,7 @@ function getShellIcon(shellType) {
20180
20485
  if (!shellType) return void 0;
20181
20486
  const normalized = shellType.toUpperCase();
20182
20487
  const shellDef = SHELL_TYPES.find((s) => s.id === normalized);
20183
- return _optionalChain([shellDef, 'optionalAccess', _357 => _357.icon]);
20488
+ return _optionalChain([shellDef, 'optionalAccess', _360 => _360.icon]);
20184
20489
  }
20185
20490
 
20186
20491
  // src/types/os.types.ts
@@ -20253,7 +20558,7 @@ function getOSIcon(osType) {
20253
20558
  const normalized = normalizeOSType(osType);
20254
20559
  if (!normalized) return void 0;
20255
20560
  const osTypeDef = OS_TYPES.find((t) => t.id === normalized);
20256
- return _optionalChain([osTypeDef, 'optionalAccess', _358 => _358.icon]);
20561
+ return _optionalChain([osTypeDef, 'optionalAccess', _361 => _361.icon]);
20257
20562
  }
20258
20563
  function getOSTypeDefinition(osType) {
20259
20564
  if (!osType) return void 0;
@@ -20263,7 +20568,7 @@ function getOSTypeDefinition(osType) {
20263
20568
  }
20264
20569
  function getOSPlatformId(osType) {
20265
20570
  const osTypeDef = getOSTypeDefinition(osType);
20266
- return _optionalChain([osTypeDef, 'optionalAccess', _359 => _359.platformId]);
20571
+ return _optionalChain([osTypeDef, 'optionalAccess', _362 => _362.platformId]);
20267
20572
  }
20268
20573
  function isOSPlatform(deviceOS, targetPlatform) {
20269
20574
  if (!deviceOS || !targetPlatform) return false;
@@ -20356,10 +20661,10 @@ var GENERIC_EMAIL_DOMAINS = [
20356
20661
  ];
20357
20662
  function extractDomainFromEmail(email) {
20358
20663
  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;
20664
+ return _optionalChain([email, 'access', _363 => _363.split, 'call', _364 => _364("@"), 'access', _365 => _365[1], 'optionalAccess', _366 => _366.toLowerCase, 'call', _367 => _367()]) || null;
20360
20665
  }
20361
20666
  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()]) || "";
20667
+ 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
20668
  }
20364
20669
  function isGenericDomain(domain) {
20365
20670
  const normalized = normalizeDomain(domain);
@@ -20793,7 +21098,7 @@ function defaultTableIdForDocumentType(documentType) {
20793
21098
 
20794
21099
  // src/utils/sse-decision-frame.ts
20795
21100
  async function readLeadingDecisionFrame(response) {
20796
- const reader = _optionalChain([response, 'access', _376 => _376.body, 'optionalAccess', _377 => _377.getReader, 'call', _378 => _378()]);
21101
+ const reader = _optionalChain([response, 'access', _379 => _379.body, 'optionalAccess', _380 => _380.getReader, 'call', _381 => _381()]);
20797
21102
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
20798
21103
  const decoder = new TextDecoder();
20799
21104
  let buffer = "";
@@ -20822,9 +21127,9 @@ async function readLeadingDecisionFrame(response) {
20822
21127
  );
20823
21128
  }
20824
21129
  const obj = parsed;
20825
- if (_optionalChain([obj, 'optionalAccess', _379 => _379.kind]) !== "decision_resolved") {
21130
+ if (_optionalChain([obj, 'optionalAccess', _382 => _382.kind]) !== "decision_resolved") {
20826
21131
  throw new Error(
20827
- `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _380 => _380.kind]))}`
21132
+ `readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _383 => _383.kind]))}`
20828
21133
  );
20829
21134
  }
20830
21135
  frame = normalizeDecisionFrame(obj);
@@ -20865,7 +21170,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
20865
21170
  function buildAutoContinuationDirective(toolName, opts = {}) {
20866
21171
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
20867
21172
  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";
21173
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _384 => _384.status, 'optionalAccess', _385 => _385.toUpperCase, 'call', _386 => _386()]) === "CLOSED";
20869
21174
  if (toolName === "create_ticket") {
20870
21175
  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
21176
  }
@@ -20927,7 +21232,7 @@ function formatSingularLookupInvocation(cmdId, value) {
20927
21232
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
20928
21233
  }
20929
21234
  function extractEntityIdFilter(override, expectedTableId) {
20930
- const f = _optionalChain([override, 'optionalAccess', _384 => _384.entityIdFilter]);
21235
+ const f = _optionalChain([override, 'optionalAccess', _387 => _387.entityIdFilter]);
20931
21236
  if (!f) return null;
20932
21237
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
20933
21238
  const id = typeof f.id === "string" ? f.id : "";
@@ -21002,7 +21307,7 @@ function getTaskTypeLabel(customItemId) {
21002
21307
 
21003
21308
  // src/components/chat/utils/agent-status-message.ts
21004
21309
  function getStatusColorScheme(status) {
21005
- const s = _optionalChain([status, 'optionalAccess', _385 => _385.toLowerCase, 'call', _386 => _386()]) || "";
21310
+ const s = _optionalChain([status, 'optionalAccess', _388 => _388.toLowerCase, 'call', _389 => _389()]) || "";
21006
21311
  switch (status) {
21007
21312
  case "completed":
21008
21313
  case "success":
@@ -21284,10 +21589,10 @@ var CONTENT_REF_GROUPS = {
21284
21589
  what_i_shipped: { label: "What I Shipped", order: 10, layout: "grid", gridSize: "default" }
21285
21590
  };
21286
21591
  function getContentRefLabel(type) {
21287
- return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _387 => _387[type], 'optionalAccess', _388 => _388.label]), () => ( null));
21592
+ return _nullishCoalesce(_optionalChain([CONTENT_REF_GROUPS, 'access', _390 => _390[type], 'optionalAccess', _391 => _391.label]), () => ( null));
21288
21593
  }
21289
21594
  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())));
21595
+ 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
21596
  }
21292
21597
  function orderContentRefTypes(present) {
21293
21598
  const presentSet = new Set(present);
@@ -21446,7 +21751,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
21446
21751
  const firstFolderWithReadme = structure.find(
21447
21752
  (node) => node.type === "folder" && node.hasReadme && !!node.path
21448
21753
  );
21449
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _391 => _391.path]), () => ( null));
21754
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _394 => _394.path]), () => ( null));
21450
21755
  }
21451
21756
 
21452
21757
  // src/utils/doc-path-utils.ts
@@ -21457,7 +21762,7 @@ function pathToNodeId(path) {
21457
21762
  return path.replace(/[\/\s]/g, "-").toLowerCase();
21458
21763
  }
21459
21764
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
21460
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _392 => _392.join, 'call', _393 => _393("/")]) || "").toLowerCase();
21765
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _395 => _395.join, 'call', _396 => _396("/")]) || "").toLowerCase();
21461
21766
  const lowerIndex = folderIndexFile.toLowerCase();
21462
21767
  const suffix = `/${lowerIndex}`;
21463
21768
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -21661,7 +21966,7 @@ var BenefitCardGrid = ({
21661
21966
  className = "",
21662
21967
  columns = 2
21663
21968
  }) => {
21664
- const childrenArray = React112.default.Children.toArray(children);
21969
+ const childrenArray = React113.default.Children.toArray(children);
21665
21970
  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
21971
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
21667
21972
  "bg-ods-card rounded-lg shadow-ods-card border border-ods-border overflow-hidden",
@@ -21682,7 +21987,7 @@ var BenefitCardGrid = ({
21682
21987
  } else {
21683
21988
  borderClass = isLastItem ? "border-b-0" : "border-b md:border-b-0 md:border-r border-ods-border";
21684
21989
  }
21685
- return React112.default.cloneElement(child, {
21990
+ return React113.default.cloneElement(child, {
21686
21991
  key: index,
21687
21992
  className: borderClass
21688
21993
  });
@@ -21699,7 +22004,7 @@ function BrandAssociationCard({
21699
22004
  className = ""
21700
22005
  }) {
21701
22006
  const renderIcon = () => {
21702
- if (React112.default.isValidElement(item.icon)) {
22007
+ if (React113.default.isValidElement(item.icon)) {
21703
22008
  return item.icon;
21704
22009
  }
21705
22010
  const IconComponent = item.icon;
@@ -21803,7 +22108,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
21803
22108
 
21804
22109
 
21805
22110
 
21806
- var ChevronButton = React76.forwardRef(
22111
+ var ChevronButton = React77.forwardRef(
21807
22112
  ({ className, direction = "down", size = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
21808
22113
  const Icon2 = (isExpanded ? _lucidereact.ChevronUp : _lucidereact.ChevronDown) || (direction === "up" ? _lucidereact.ChevronUp : _lucidereact.ChevronDown);
21809
22114
  const sizeClasses2 = {
@@ -22000,8 +22305,8 @@ function FloatingTooltip({
22000
22305
  delayDuration = 0,
22001
22306
  disabled = false
22002
22307
  }) {
22003
- const [isOpen, setIsOpen] = React77.useState(false);
22004
- const arrowRef = React77.useRef(null);
22308
+ const [isOpen, setIsOpen] = React78.useState(false);
22309
+ const arrowRef = React78.useRef(null);
22005
22310
  const { refs, floatingStyles, context, placement, middlewareData } = _react2.useFloating.call(void 0, {
22006
22311
  open: isOpen,
22007
22312
  onOpenChange: setIsOpen,
@@ -22031,7 +22336,7 @@ function FloatingTooltip({
22031
22336
  dismiss,
22032
22337
  role
22033
22338
  ]);
22034
- const parsedContent = React77.useMemo(() => {
22339
+ const parsedContent = React78.useMemo(() => {
22035
22340
  if (typeof content === "string") {
22036
22341
  return parseColoredText(content);
22037
22342
  }
@@ -22279,26 +22584,26 @@ function DeviceCard({
22279
22584
  ] }),
22280
22585
  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
22586
  ] }),
22282
- _optionalChain([actions, 'access', _394 => _394.moreButton, 'optionalAccess', _395 => _395.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22587
+ _optionalChain([actions, 'access', _397 => _397.moreButton, 'optionalAccess', _398 => _398.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22283
22588
  "div",
22284
22589
  {
22285
22590
  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
22591
  onClick: (e) => {
22287
22592
  e.stopPropagation();
22288
- _optionalChain([actions, 'access', _396 => _396.moreButton, 'optionalAccess', _397 => _397.onClick, 'optionalCall', _398 => _398()]);
22593
+ _optionalChain([actions, 'access', _399 => _399.moreButton, 'optionalAccess', _400 => _400.onClick, 'optionalCall', _401 => _401()]);
22289
22594
  },
22290
22595
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22291
22596
  }
22292
22597
  ),
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(
22598
+ _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 }),
22599
+ _optionalChain([actions, 'access', _406 => _406.customActions, 'optionalAccess', _407 => _407.map, 'call', _408 => _408(
22295
22600
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22296
22601
  "div",
22297
22602
  {
22298
22603
  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
22604
  onClick: (e) => {
22300
22605
  e.stopPropagation();
22301
- _optionalChain([action, 'access', _406 => _406.onClick, 'optionalCall', _407 => _407()]);
22606
+ _optionalChain([action, 'access', _409 => _409.onClick, 'optionalCall', _410 => _410()]);
22302
22607
  },
22303
22608
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22304
22609
  },
@@ -22652,7 +22957,7 @@ function HighlightCardGrid({
22652
22957
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
22653
22958
 
22654
22959
 
22655
- var IconsBlock = React79.forwardRef(
22960
+ var IconsBlock = React80.forwardRef(
22656
22961
  ({ className, icons = [], size = "md", ...props }, ref) => {
22657
22962
  const sizeClasses2 = {
22658
22963
  sm: "h-4 w-4",
@@ -22699,8 +23004,8 @@ function DropdownButton({
22699
23004
  align = "end",
22700
23005
  side = "bottom"
22701
23006
  }) {
22702
- const [open, setOpen] = React112.default.useState(false);
22703
- const handleOpenChange = React112.default.useCallback(
23007
+ const [open, setOpen] = React113.default.useState(false);
23008
+ const handleOpenChange = React113.default.useCallback(
22704
23009
  (next) => {
22705
23010
  if (disabled) return;
22706
23011
  setOpen(next);
@@ -22798,7 +23103,7 @@ function MoreActionsMenu({
22798
23103
  ] });
22799
23104
  const handleActivate = (e) => {
22800
23105
  e.stopPropagation();
22801
- if (!item.disabled) _optionalChain([item, 'access', _408 => _408.onClick, 'optionalCall', _409 => _409()]);
23106
+ if (!item.disabled) _optionalChain([item, 'access', _411 => _411.onClick, 'optionalCall', _412 => _412()]);
22802
23107
  };
22803
23108
  if (item.href) {
22804
23109
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22865,7 +23170,7 @@ function OrganizationCard({
22865
23170
  const handleActionClick = (e) => {
22866
23171
  e.preventDefault();
22867
23172
  e.stopPropagation();
22868
- _optionalChain([actionButton, 'optionalAccess', _410 => _410.onClick, 'call', _411 => _411(organization, e)]);
23173
+ _optionalChain([actionButton, 'optionalAccess', _413 => _413.onClick, 'call', _414 => _414(organization, e)]);
22869
23174
  };
22870
23175
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22871
23176
  "div",
@@ -23011,14 +23316,14 @@ function ThemeProvider({ children, ...overrides }) {
23011
23316
  var useTheme = _nextthemes.useTheme;
23012
23317
  function useThemeToggle() {
23013
23318
  const { resolvedTheme, theme, setTheme } = useTheme();
23014
- const [mounted, setMounted] = React81.useState(false);
23015
- React81.useEffect(() => setMounted(true), []);
23319
+ const [mounted, setMounted] = React82.useState(false);
23320
+ React82.useEffect(() => setMounted(true), []);
23016
23321
  const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
23017
- const setOdsTheme = React81.useCallback(
23322
+ const setOdsTheme = React82.useCallback(
23018
23323
  (next) => setTheme(next),
23019
23324
  [setTheme]
23020
23325
  );
23021
- const toggle = React81.useCallback(
23326
+ const toggle = React82.useCallback(
23022
23327
  () => setTheme(active === "dark" ? "light" : "dark"),
23023
23328
  [active, setTheme]
23024
23329
  );
@@ -23771,10 +24076,10 @@ var getContentDimensions = (config) => {
23771
24076
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
23772
24077
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
23773
24078
  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));
24079
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _415 => _415.mobileContentDimensions, 'optionalAccess', _416 => _416.width]))), () => ( defaultMobile.width));
24080
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _417 => _417.mobileContentDimensions, 'optionalAccess', _418 => _418.height]))), () => ( defaultMobile.height));
24081
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _419 => _419.desktopContentDimensions, 'optionalAccess', _420 => _420.width]))), () => ( defaultDesktop.width));
24082
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.desktopContentDimensions, 'optionalAccess', _422 => _422.height]))), () => ( defaultDesktop.height));
23778
24083
  return {
23779
24084
  mobile: { width: mobileWidth, height: mobileHeight },
23780
24085
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -23908,7 +24213,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
23908
24213
  const contentDimensions = getContentDimensions(config);
23909
24214
  const mobileHeight = contentDimensions.mobile.height;
23910
24215
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
23911
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _420 => _420.innerHeight]) * 0.85 || 650)}px`;
24216
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _423 => _423.innerHeight]) * 0.85 || 650)}px`;
23912
24217
  })(),
23913
24218
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
23914
24219
  const contentDimensions = getContentDimensions(config);
@@ -24013,7 +24318,7 @@ var FigmaPrototypeViewer = ({
24013
24318
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
24014
24319
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
24015
24320
  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]) || ""
24321
+ config.defaultSectionId || _optionalChain([config, 'access', _424 => _424.sections, 'access', _425 => _425[0], 'optionalAccess', _426 => _426.id]) || ""
24017
24322
  );
24018
24323
  const activeSection = externalActiveSection || internalActiveSection;
24019
24324
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -24103,7 +24408,7 @@ var FigmaPrototypeViewer = ({
24103
24408
  const handleMessage = (event) => {
24104
24409
  if (event.origin !== "https://www.figma.com") return;
24105
24410
  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)) {
24411
+ if (_optionalChain([event, 'access', _427 => _427.data, 'optionalAccess', _428 => _428.type]) && validEvents.includes(event.data.type)) {
24107
24412
  const figmaEvent = event.data;
24108
24413
  console.log("[Figma Event]", figmaEvent.type, viewMode);
24109
24414
  switch (figmaEvent.type) {
@@ -24113,19 +24418,19 @@ var FigmaPrototypeViewer = ({
24113
24418
  setIframeState("READY");
24114
24419
  break;
24115
24420
  case "PRESENTED_NODE_CHANGED":
24116
- if (_optionalChain([figmaEvent, 'access', _426 => _426.data, 'optionalAccess', _427 => _427.presentedNodeId])) {
24421
+ if (_optionalChain([figmaEvent, 'access', _429 => _429.data, 'optionalAccess', _430 => _430.presentedNodeId])) {
24117
24422
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
24118
24423
  if (!isNavigating) {
24119
24424
  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]);
24425
+ 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]);
24426
+ 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
24427
  return desktopMatch || mobileMatch;
24123
24428
  });
24124
24429
  if (matchingSection && matchingSection.id !== activeSection) {
24125
24430
  if (!externalActiveSection) {
24126
24431
  setInternalActiveSection(matchingSection.id);
24127
24432
  }
24128
- _optionalChain([config, 'access', _439 => _439.onSectionChange, 'optionalCall', _440 => _440(matchingSection.id)]);
24433
+ _optionalChain([config, 'access', _442 => _442.onSectionChange, 'optionalCall', _443 => _443(matchingSection.id)]);
24129
24434
  }
24130
24435
  }
24131
24436
  }
@@ -24138,7 +24443,7 @@ var FigmaPrototypeViewer = ({
24138
24443
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
24139
24444
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
24140
24445
  const section = config.sections.find((s) => s.id === sectionId);
24141
- if (!section || !_optionalChain([iframeRef, 'access', _441 => _441.current, 'optionalAccess', _442 => _442.contentWindow]) || !isInitialized) {
24446
+ if (!section || !_optionalChain([iframeRef, 'access', _444 => _444.current, 'optionalAccess', _445 => _445.contentWindow]) || !isInitialized) {
24142
24447
  return;
24143
24448
  }
24144
24449
  setIsNavigating(true);
@@ -24146,7 +24451,7 @@ var FigmaPrototypeViewer = ({
24146
24451
  if (!externalActiveSection) {
24147
24452
  setInternalActiveSection(sectionId);
24148
24453
  }
24149
- _optionalChain([config, 'access', _443 => _443.onSectionChange, 'optionalCall', _444 => _444(sectionId)]);
24454
+ _optionalChain([config, 'access', _446 => _446.onSectionChange, 'optionalCall', _447 => _447(sectionId)]);
24150
24455
  const command = {
24151
24456
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
24152
24457
  data: { nodeId }
@@ -24466,7 +24771,7 @@ var FiltersDropdown = ({
24466
24771
  defaults[section.id] = section.defaultSelected || [];
24467
24772
  });
24468
24773
  setSelectedFilters(defaults);
24469
- _optionalChain([onReset, 'optionalCall', _445 => _445()]);
24774
+ _optionalChain([onReset, 'optionalCall', _448 => _448()]);
24470
24775
  setIsOpen(false);
24471
24776
  };
24472
24777
  const handleApply = () => {
@@ -24759,7 +25064,7 @@ function MediaGalleryManager({
24759
25064
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
24760
25065
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
24761
25066
  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]]);
25067
+ const file = _optionalChain([event, 'access', _449 => _449.target, 'access', _450 => _450.files, 'optionalAccess', _451 => _451[0]]);
24763
25068
  if (!file) return;
24764
25069
  let mediaType;
24765
25070
  if (file.type.startsWith("image/")) {
@@ -24874,7 +25179,7 @@ function MediaGalleryManager({
24874
25179
  {
24875
25180
  type: "button",
24876
25181
  variant: "outline",
24877
- onClick: () => _optionalChain([fileInputRef, 'access', _449 => _449.current, 'optionalAccess', _450 => _450.click, 'call', _451 => _451()]),
25182
+ onClick: () => _optionalChain([fileInputRef, 'access', _452 => _452.current, 'optionalAccess', _453 => _453.click, 'call', _454 => _454()]),
24878
25183
  disabled: isUploading,
24879
25184
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
24880
25185
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -25542,7 +25847,7 @@ function ReleaseMediaManager({
25542
25847
  const fileInputRef = _react.useRef.call(void 0, null);
25543
25848
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
25544
25849
  const handleFileSelect = async (event) => {
25545
- const file = _optionalChain([event, 'access', _452 => _452.target, 'access', _453 => _453.files, 'optionalAccess', _454 => _454[0]]);
25850
+ const file = _optionalChain([event, 'access', _455 => _455.target, 'access', _456 => _456.files, 'optionalAccess', _457 => _457[0]]);
25546
25851
  if (!file) return;
25547
25852
  let mediaType;
25548
25853
  if (file.type.startsWith("image/")) {
@@ -25622,7 +25927,7 @@ function ReleaseMediaManager({
25622
25927
  {
25623
25928
  type: "button",
25624
25929
  variant: "outline",
25625
- onClick: () => _optionalChain([fileInputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.click, 'call', _457 => _457()]),
25930
+ onClick: () => _optionalChain([fileInputRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.click, 'call', _460 => _460()]),
25626
25931
  disabled: uploadingIndex !== null,
25627
25932
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
25628
25933
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -25744,7 +26049,7 @@ function ReleaseMediaManager({
25744
26049
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
25745
26050
 
25746
26051
 
25747
- var SelectButton = React112.default.forwardRef(
26052
+ var SelectButton = React113.default.forwardRef(
25748
26053
  ({ title, description, selected = false, disabled = false, icon, image, tag, tagVariant = "outline", onClick, className }, ref) => {
25749
26054
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25750
26055
  "button",
@@ -25837,7 +26142,7 @@ function SEOEditorPreview({
25837
26142
  const displayImage = hasOgImage || hasFeaturedImage;
25838
26143
  const handleImageUpload = async (event) => {
25839
26144
  if (!onOgImageUpload) return;
25840
- const file = _optionalChain([event, 'access', _458 => _458.target, 'access', _459 => _459.files, 'optionalAccess', _460 => _460[0]]);
26145
+ const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
25841
26146
  if (!file) return;
25842
26147
  setIsUploading(true);
25843
26148
  try {
@@ -25987,7 +26292,7 @@ function SEOEditorPreview({
25987
26292
  type: "button",
25988
26293
  variant: "outline",
25989
26294
  size: "icon",
25990
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _461 => _461.click, 'call', _462 => _462()]),
26295
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _464 => _464.click, 'call', _465 => _465()]),
25991
26296
  disabled: disabled || isUploading,
25992
26297
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
25993
26298
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -26010,7 +26315,7 @@ function SEOEditorPreview({
26010
26315
  "div",
26011
26316
  {
26012
26317
  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()]),
26318
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _466 => _466.click, 'call', _467 => _467()]),
26014
26319
  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
26320
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
26016
26321
  /* @__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 +26400,7 @@ function SocialLinksManager({
26095
26400
  className = ""
26096
26401
  }) {
26097
26402
  const addLink = () => {
26098
- const firstPlatform = _optionalChain([platforms, 'access', _465 => _465[0], 'optionalAccess', _466 => _466.name]) || "website";
26403
+ const firstPlatform = _optionalChain([platforms, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.name]) || "website";
26099
26404
  onChange([...links, { platform: firstPlatform, url: "" }]);
26100
26405
  };
26101
26406
  const removeLink = (index) => {
@@ -26107,7 +26412,7 @@ function SocialLinksManager({
26107
26412
  onChange(updated);
26108
26413
  };
26109
26414
  const getIcon = (link, platform) => {
26110
- const iconKey = _optionalChain([platform, 'optionalAccess', _467 => _467.icon_name]) || link.platform;
26415
+ const iconKey = _optionalChain([platform, 'optionalAccess', _470 => _470.icon_name]) || link.platform;
26111
26416
  const IconComponent = iconMap[iconKey];
26112
26417
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
26113
26418
  };
@@ -26132,7 +26437,7 @@ function SocialLinksManager({
26132
26437
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26133
26438
  _chunkQJGRP2YEcjs.Input,
26134
26439
  {
26135
- placeholder: _optionalChain([platform, 'optionalAccess', _468 => _468.placeholder]) || "Profile URL",
26440
+ placeholder: _optionalChain([platform, 'optionalAccess', _471 => _471.placeholder]) || "Profile URL",
26136
26441
  value: link.url,
26137
26442
  onChange: (e) => updateLink(index, "url", e.target.value),
26138
26443
  onKeyDown: (e) => {
@@ -26176,7 +26481,7 @@ function SocialLinksManager({
26176
26481
  _chunkQJGRP2YEcjs.init_button2.call(void 0, );
26177
26482
 
26178
26483
 
26179
- var StartWithOpenFrameButton = React86.forwardRef(({ children = "Start Free Trial", mode = "outline", className, buttonSize, loading = false, buttonBackgroundColor, buttonTextColor, ...props }, ref) => {
26484
+ var StartWithOpenFrameButton = React87.forwardRef(({ children = "Start Free Trial", mode = "outline", className, buttonSize, loading = false, buttonBackgroundColor, buttonTextColor, ...props }, ref) => {
26180
26485
  const isYellow = mode === "yellow";
26181
26486
  const isPink = mode === "pink" || mode === "purple";
26182
26487
  const isCyan = mode === "cyan";
@@ -26511,7 +26816,7 @@ function useVideoOriginPreconnect({
26511
26816
  supabaseStorageOrigin
26512
26817
  } = {}) {
26513
26818
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
26514
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _469 => _469.endpoints, 'access', _470 => _470.supabaseStorageOrigin])));
26819
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _472 => _472.endpoints, 'access', _473 => _473.supabaseStorageOrigin])));
26515
26820
  try {
26516
26821
  ReactDOM2.default.preconnect(MUX_STREAM_ORIGIN, { crossOrigin: "anonymous" });
26517
26822
  ReactDOM2.default.preconnect(MUX_IMAGE_ORIGIN, { crossOrigin: "anonymous" });
@@ -26530,13 +26835,13 @@ function useVideoWarmup({
26530
26835
  nearMargin = "1000px"
26531
26836
  } = {}) {
26532
26837
  const runtime = _chunkN2DVKXN4cjs.useChatRuntime.call(void 0, );
26533
- const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _471 => _471.endpoints, 'access', _472 => _472.supabaseStorageOrigin])));
26838
+ const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _474 => _474.endpoints, 'access', _475 => _475.supabaseStorageOrigin])));
26534
26839
  useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
26535
26840
  const { ref, isNear } = _chunk27IO7V3Pcjs.useNearViewport.call(void 0, nearMargin);
26536
26841
  _react.useEffect.call(void 0, () => {
26537
26842
  if (!isNear || !videoUrl || !resolvedOrigin) return;
26538
26843
  const conn = navigator.connection;
26539
- if (_optionalChain([conn, 'optionalAccess', _473 => _473.saveData]) === true) return;
26844
+ if (_optionalChain([conn, 'optionalAccess', _476 => _476.saveData]) === true) return;
26540
26845
  let videoOrigin;
26541
26846
  try {
26542
26847
  videoOrigin = new URL(videoUrl, "http://placeholder.local").origin;
@@ -26606,7 +26911,7 @@ function VideoSourceSelector({
26606
26911
  input.accept = "video/*";
26607
26912
  input.onchange = async (e) => {
26608
26913
  const target = e.target;
26609
- const file = _optionalChain([target, 'access', _474 => _474.files, 'optionalAccess', _475 => _475[0]]);
26914
+ const file = _optionalChain([target, 'access', _477 => _477.files, 'optionalAccess', _478 => _478[0]]);
26610
26915
  if (!file) return;
26611
26916
  setIsUploading(true);
26612
26917
  setUploadProgress(0);
@@ -26967,7 +27272,7 @@ function TranscriptSummaryEditor({
26967
27272
  {
26968
27273
  id: "subtitles",
26969
27274
  value: subtitles || "",
26970
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _476 => _476(e.target.value)]),
27275
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _479 => _479(e.target.value)]),
26971
27276
  placeholder: subtitlesPlaceholder,
26972
27277
  disabled: disabled || !onSubtitlesChange,
26973
27278
  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 +27425,7 @@ var AIEnrichSection = ({
27120
27425
  }) => {
27121
27426
  const hasResults = status === "success" || status === "error";
27122
27427
  const shouldDisable = disabled || !canEnrich;
27123
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _477 => _477.filter, 'call', _478 => _478((f) => !f.isFilled)]) || [];
27428
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _480 => _480.filter, 'call', _481 => _481((f) => !f.isFilled)]) || [];
27124
27429
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27125
27430
  "div",
27126
27431
  {
@@ -27158,7 +27463,7 @@ var AIEnrichSection = ({
27158
27463
  {
27159
27464
  id: "ai-enrich-custom-instructions",
27160
27465
  value: _nullishCoalesce(customInstructions, () => ( "")),
27161
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _479 => _479(e.target.value)]),
27466
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _482 => _482(e.target.value)]),
27162
27467
  placeholder: customInstructionsPlaceholder,
27163
27468
  disabled: loading,
27164
27469
  maxLength: customInstructionsMaxLength,
@@ -27287,7 +27592,7 @@ function HighlightVideoSection({
27287
27592
  input.accept = "video/*";
27288
27593
  input.onchange = async (e) => {
27289
27594
  const target = e.target;
27290
- const file = _optionalChain([target, 'access', _480 => _480.files, 'optionalAccess', _481 => _481[0]]);
27595
+ const file = _optionalChain([target, 'access', _483 => _483.files, 'optionalAccess', _484 => _484[0]]);
27291
27596
  if (!file) return;
27292
27597
  setUploadError(null);
27293
27598
  try {
@@ -27789,7 +28094,7 @@ function HighlightVideoPreview({
27789
28094
  input.accept = "video/*";
27790
28095
  input.onchange = async (e) => {
27791
28096
  const target = e.target;
27792
- const file = _optionalChain([target, 'access', _482 => _482.files, 'optionalAccess', _483 => _483[0]]);
28097
+ const file = _optionalChain([target, 'access', _485 => _485.files, 'optionalAccess', _486 => _486[0]]);
27793
28098
  if (!file) return;
27794
28099
  await onUpload(file);
27795
28100
  };
@@ -27976,7 +28281,7 @@ function HighlightVideoCombinedSection({
27976
28281
  input.accept = "video/*";
27977
28282
  input.onchange = async (e) => {
27978
28283
  const target = e.target;
27979
- const file = _optionalChain([target, 'access', _484 => _484.files, 'optionalAccess', _485 => _485[0]]);
28284
+ const file = _optionalChain([target, 'access', _487 => _487.files, 'optionalAccess', _488 => _488[0]]);
27980
28285
  if (!file) return;
27981
28286
  await onUpload(file);
27982
28287
  };
@@ -28136,7 +28441,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
28136
28441
 
28137
28442
  var DropdownMenu2 = DropdownMenuPrimitive2.Root;
28138
28443
  var DropdownMenuTrigger2 = DropdownMenuPrimitive2.Trigger;
28139
- var DropdownMenuSubTrigger = React89.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28444
+ var DropdownMenuSubTrigger = React90.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28140
28445
  DropdownMenuPrimitive2.SubTrigger,
28141
28446
  {
28142
28447
  ref,
@@ -28153,7 +28458,7 @@ var DropdownMenuSubTrigger = React89.forwardRef(({ className, inset, children, .
28153
28458
  }
28154
28459
  ));
28155
28460
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive2.SubTrigger.displayName;
28156
- var DropdownMenuSubContent = React89.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28461
+ var DropdownMenuSubContent = React90.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28157
28462
  DropdownMenuPrimitive2.SubContent,
28158
28463
  {
28159
28464
  ref,
@@ -28165,7 +28470,7 @@ var DropdownMenuSubContent = React89.forwardRef(({ className, ...props }, ref) =
28165
28470
  }
28166
28471
  ));
28167
28472
  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,
28473
+ 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
28474
  DropdownMenuPrimitive2.Content,
28170
28475
  {
28171
28476
  ref,
@@ -28178,7 +28483,7 @@ var DropdownMenuContent2 = React89.forwardRef(({ className, sideOffset = 4, ...p
28178
28483
  }
28179
28484
  ) }));
28180
28485
  DropdownMenuContent2.displayName = DropdownMenuPrimitive2.Content.displayName;
28181
- var DropdownMenuItem2 = React89.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28486
+ var DropdownMenuItem2 = React90.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28182
28487
  DropdownMenuPrimitive2.Item,
28183
28488
  {
28184
28489
  ref,
@@ -28191,7 +28496,7 @@ var DropdownMenuItem2 = React89.forwardRef(({ className, inset, ...props }, ref)
28191
28496
  }
28192
28497
  ));
28193
28498
  DropdownMenuItem2.displayName = DropdownMenuPrimitive2.Item.displayName;
28194
- var DropdownMenuCheckboxItem = React89.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28499
+ var DropdownMenuCheckboxItem = React90.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28195
28500
  DropdownMenuPrimitive2.CheckboxItem,
28196
28501
  {
28197
28502
  ref,
@@ -28208,7 +28513,7 @@ var DropdownMenuCheckboxItem = React89.forwardRef(({ className, children, checke
28208
28513
  }
28209
28514
  ));
28210
28515
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive2.CheckboxItem.displayName;
28211
- var DropdownMenuRadioItem = React89.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28516
+ var DropdownMenuRadioItem = React90.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28212
28517
  DropdownMenuPrimitive2.RadioItem,
28213
28518
  {
28214
28519
  ref,
@@ -28224,7 +28529,7 @@ var DropdownMenuRadioItem = React89.forwardRef(({ className, children, ...props
28224
28529
  }
28225
28530
  ));
28226
28531
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive2.RadioItem.displayName;
28227
- var DropdownMenuLabel = React89.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28532
+ var DropdownMenuLabel = React90.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28228
28533
  DropdownMenuPrimitive2.Label,
28229
28534
  {
28230
28535
  ref,
@@ -28237,7 +28542,7 @@ var DropdownMenuLabel = React89.forwardRef(({ className, inset, ...props }, ref)
28237
28542
  }
28238
28543
  ));
28239
28544
  DropdownMenuLabel.displayName = DropdownMenuPrimitive2.Label.displayName;
28240
- var DropdownMenuSeparator = React89.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28545
+ var DropdownMenuSeparator = React90.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28241
28546
  DropdownMenuPrimitive2.Separator,
28242
28547
  {
28243
28548
  ref,
@@ -28273,7 +28578,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
28273
28578
  return editMode ? "Set Global Permission" : "";
28274
28579
  }
28275
28580
  const option = approvalLevelOptions.find((opt) => opt.value === level);
28276
- return _optionalChain([option, 'optionalAccess', _486 => _486.label]) || level;
28581
+ return _optionalChain([option, 'optionalAccess', _489 => _489.label]) || level;
28277
28582
  };
28278
28583
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
28279
28584
  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 +28792,12 @@ function PhoneInput({
28487
28792
  const runValidation = _react.useCallback.call(void 0, (phone) => {
28488
28793
  if (!phone || digitCount(phone) === 0) {
28489
28794
  setIsInvalid(false);
28490
- _optionalChain([onValidationChange, 'optionalCall', _487 => _487(false)]);
28795
+ _optionalChain([onValidationChange, 'optionalCall', _490 => _490(false)]);
28491
28796
  return;
28492
28797
  }
28493
28798
  const invalid = !validatePhoneNumber(phone, countryCode);
28494
28799
  setIsInvalid(invalid);
28495
- _optionalChain([onValidationChange, 'optionalCall', _488 => _488(invalid)]);
28800
+ _optionalChain([onValidationChange, 'optionalCall', _491 => _491(invalid)]);
28496
28801
  }, [countryCode, digitCount, onValidationChange]);
28497
28802
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
28498
28803
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -28541,7 +28846,7 @@ function PhoneInput({
28541
28846
  debouncedValidation(val);
28542
28847
  } else if (digitCount(val) === 0) {
28543
28848
  setIsInvalid(false);
28544
- _optionalChain([onValidationChange, 'optionalCall', _489 => _489(false)]);
28849
+ _optionalChain([onValidationChange, 'optionalCall', _492 => _492(false)]);
28545
28850
  }
28546
28851
  }
28547
28852
  },
@@ -28762,7 +29067,7 @@ function WaitlistForm({
28762
29067
  // src/components/features/notifications/notifications-context.tsx
28763
29068
 
28764
29069
 
28765
- var NotificationsContext = React90.createContext(null);
29070
+ var NotificationsContext = React91.createContext(null);
28766
29071
  function mergeNotification(base, incoming) {
28767
29072
  const out = { ...base };
28768
29073
  for (const key of Object.keys(incoming)) {
@@ -28841,16 +29146,16 @@ function NotificationsProvider({
28841
29146
  onLoadMore,
28842
29147
  renderTile
28843
29148
  }) {
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);
29149
+ const [notifications, dispatch] = React91.useReducer(reducer, initialNotifications);
29150
+ const [isOpen, setIsOpen] = React91.useState(false);
29151
+ const [showPopups, setShowPopupsState] = React91.useState(defaultShowPopups);
29152
+ const [showDesktopPopups, setShowDesktopPopupsState] = React91.useState(defaultShowDesktopPopups);
28848
29153
  const desktopPopupsConfigured = onShowDesktopPopupsChange !== void 0;
28849
- const actionsRef = React90.useRef(actions);
28850
- React90.useEffect(() => {
29154
+ const actionsRef = React91.useRef(actions);
29155
+ React91.useEffect(() => {
28851
29156
  actionsRef.current = actions;
28852
29157
  }, [actions]);
28853
- const addNotification = React90.useCallback(
29158
+ const addNotification = React91.useCallback(
28854
29159
  (input) => {
28855
29160
  const id = _nullishCoalesce(input.id, () => ( generateId()));
28856
29161
  const notification = {
@@ -28864,7 +29169,7 @@ function NotificationsProvider({
28864
29169
  },
28865
29170
  [maxNotifications]
28866
29171
  );
28867
- const upsertNotification = React90.useCallback(
29172
+ const upsertNotification = React91.useCallback(
28868
29173
  (input) => {
28869
29174
  const notification = {
28870
29175
  ...input,
@@ -28877,48 +29182,48 @@ function NotificationsProvider({
28877
29182
  },
28878
29183
  [maxNotifications]
28879
29184
  );
28880
- const setNotifications = React90.useCallback((list) => {
29185
+ const setNotifications = React91.useCallback((list) => {
28881
29186
  dispatch({ type: "set", notifications: list });
28882
29187
  }, []);
28883
- const markRead = React90.useCallback((id) => {
29188
+ const markRead = React91.useCallback((id) => {
28884
29189
  dispatch({ type: "markRead", id });
28885
- void _optionalChain([actionsRef, 'access', _490 => _490.current, 'optionalAccess', _491 => _491.onMarkRead, 'optionalCall', _492 => _492(id)]);
29190
+ void _optionalChain([actionsRef, 'access', _493 => _493.current, 'optionalAccess', _494 => _494.onMarkRead, 'optionalCall', _495 => _495(id)]);
28886
29191
  }, []);
28887
- const markAllRead = React90.useCallback(() => {
29192
+ const markAllRead = React91.useCallback(() => {
28888
29193
  dispatch({ type: "markAllRead" });
28889
- void _optionalChain([actionsRef, 'access', _493 => _493.current, 'optionalAccess', _494 => _494.onMarkAllRead, 'optionalCall', _495 => _495()]);
29194
+ void _optionalChain([actionsRef, 'access', _496 => _496.current, 'optionalAccess', _497 => _497.onMarkAllRead, 'optionalCall', _498 => _498()]);
28890
29195
  }, []);
28891
- const markSettled = React90.useCallback((id) => {
29196
+ const markSettled = React91.useCallback((id) => {
28892
29197
  dispatch({ type: "markSettled", id });
28893
- void _optionalChain([actionsRef, 'access', _496 => _496.current, 'optionalAccess', _497 => _497.onMarkSettled, 'optionalCall', _498 => _498(id)]);
29198
+ void _optionalChain([actionsRef, 'access', _499 => _499.current, 'optionalAccess', _500 => _500.onMarkSettled, 'optionalCall', _501 => _501(id)]);
28894
29199
  }, []);
28895
- const remove = React90.useCallback((id) => {
29200
+ const remove = React91.useCallback((id) => {
28896
29201
  dispatch({ type: "remove", id });
28897
- void _optionalChain([actionsRef, 'access', _499 => _499.current, 'optionalAccess', _500 => _500.onRemove, 'optionalCall', _501 => _501(id)]);
29202
+ void _optionalChain([actionsRef, 'access', _502 => _502.current, 'optionalAccess', _503 => _503.onRemove, 'optionalCall', _504 => _504(id)]);
28898
29203
  }, []);
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(
29204
+ const clear = React91.useCallback(() => dispatch({ type: "clear" }), []);
29205
+ const open = React91.useCallback(() => setIsOpen(true), []);
29206
+ const close = React91.useCallback(() => setIsOpen(false), []);
29207
+ const toggle = React91.useCallback(() => setIsOpen((v) => !v), []);
29208
+ const setShowPopups = React91.useCallback(
28904
29209
  (value2) => {
28905
29210
  setShowPopupsState(value2);
28906
- _optionalChain([onShowPopupsChange, 'optionalCall', _502 => _502(value2)]);
29211
+ _optionalChain([onShowPopupsChange, 'optionalCall', _505 => _505(value2)]);
28907
29212
  },
28908
29213
  [onShowPopupsChange]
28909
29214
  );
28910
- const setShowDesktopPopups = React90.useCallback(
29215
+ const setShowDesktopPopups = React91.useCallback(
28911
29216
  (value2) => {
28912
29217
  setShowDesktopPopupsState(value2);
28913
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _503 => _503(value2)]);
29218
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _506 => _506(value2)]);
28914
29219
  },
28915
29220
  [onShowDesktopPopupsChange]
28916
29221
  );
28917
- const unreadCount = React90.useMemo(
29222
+ const unreadCount = React91.useMemo(
28918
29223
  () => notifications.reduce((acc, n) => n.read ? acc : acc + 1, 0),
28919
29224
  [notifications]
28920
29225
  );
28921
- const value = React90.useMemo(
29226
+ const value = React91.useMemo(
28922
29227
  () => ({
28923
29228
  notifications,
28924
29229
  unreadCount,
@@ -28977,14 +29282,14 @@ function NotificationsProvider({
28977
29282
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NotificationsContext.Provider, { value, children });
28978
29283
  }
28979
29284
  function useNotifications() {
28980
- const ctx = React90.useContext(NotificationsContext);
29285
+ const ctx = React91.useContext(NotificationsContext);
28981
29286
  if (!ctx) {
28982
29287
  throw new Error("useNotifications must be used inside <NotificationsProvider>");
28983
29288
  }
28984
29289
  return ctx;
28985
29290
  }
28986
29291
  function useOptionalNotifications() {
28987
- return React90.useContext(NotificationsContext);
29292
+ return React91.useContext(NotificationsContext);
28988
29293
  }
28989
29294
 
28990
29295
  // src/components/features/notifications/notification-drawer.tsx
@@ -29014,7 +29319,7 @@ function NotificationTile({
29014
29319
  if (!counting) return;
29015
29320
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
29016
29321
  const timer = window.setTimeout(() => {
29017
- _optionalChain([onSettle, 'optionalCall', _504 => _504(id)]);
29322
+ _optionalChain([onSettle, 'optionalCall', _507 => _507(id)]);
29018
29323
  }, remaining);
29019
29324
  return () => window.clearTimeout(timer);
29020
29325
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -29076,7 +29381,7 @@ function NotificationTile({
29076
29381
  "button",
29077
29382
  {
29078
29383
  type: "button",
29079
- onClick: () => _optionalChain([onSettle, 'optionalCall', _505 => _505(id)]),
29384
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _508 => _508(id)]),
29080
29385
  "aria-label": "Dismiss notification",
29081
29386
  tabIndex: isLive ? 0 : -1,
29082
29387
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -29209,7 +29514,7 @@ function DrawerScrollList({
29209
29514
  if (!sentinel || !root) return;
29210
29515
  const observer = new IntersectionObserver(
29211
29516
  (entries) => {
29212
- if (_optionalChain([entries, 'access', _506 => _506[0], 'optionalAccess', _507 => _507.isIntersecting])) _optionalChain([loadMoreRef, 'access', _508 => _508.current, 'optionalCall', _509 => _509()]);
29517
+ if (_optionalChain([entries, 'access', _509 => _509[0], 'optionalAccess', _510 => _510.isIntersecting])) _optionalChain([loadMoreRef, 'access', _511 => _511.current, 'optionalCall', _512 => _512()]);
29213
29518
  },
29214
29519
  { root, rootMargin: loadMoreRootMargin }
29215
29520
  );
@@ -29224,7 +29529,7 @@ function DrawerScrollList({
29224
29529
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
29225
29530
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
29226
29531
  unreadNotifications.map((n) => {
29227
- const custom = _optionalChain([renderTile, 'optionalCall', _510 => _510(n, { onComplete, onSettle, liveDurationMs })]);
29532
+ const custom = _optionalChain([renderTile, 'optionalCall', _513 => _513(n, { onComplete, onSettle, liveDurationMs })]);
29228
29533
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
29229
29534
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29230
29535
  NotificationTile,
@@ -29388,7 +29693,7 @@ function NotificationPopups({
29388
29693
  className
29389
29694
  ),
29390
29695
  children: live.map((n) => {
29391
- const custom = _optionalChain([renderTile, 'optionalCall', _511 => _511(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29696
+ const custom = _optionalChain([renderTile, 'optionalCall', _514 => _514(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
29392
29697
  if (custom) {
29393
29698
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
29394
29699
  }
@@ -29568,21 +29873,21 @@ function transformWebinarToProgram(webinar) {
29568
29873
  // src/components/features/notifications/types.ts
29569
29874
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
29570
29875
  function isApprovalNotification(notification) {
29571
- return _optionalChain([notification, 'access', _512 => _512.meta, 'optionalAccess', _513 => _513.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
29876
+ return _optionalChain([notification, 'access', _515 => _515.meta, 'optionalAccess', _516 => _516.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
29572
29877
  }
29573
29878
  function getApprovalMeta(notification) {
29574
29879
  if (!isApprovalNotification(notification)) return null;
29575
29880
  const meta = notification.meta;
29576
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _514 => _514.approvalRequestId]);
29577
- const toolCalls = _optionalChain([meta, 'optionalAccess', _515 => _515.toolCalls]);
29881
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _517 => _517.approvalRequestId]);
29882
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _518 => _518.toolCalls]);
29578
29883
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
29579
29884
  return {
29580
29885
  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)),
29886
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _519 => _519.dialogId]), () => ( null)),
29887
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _520 => _520.ticketId]), () => ( null)),
29888
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _521 => _521.approvalType]), () => ( null)),
29889
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _522 => _522.resolution]), () => ( null)),
29890
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _523 => _523.resolvedByName]), () => ( null)),
29586
29891
  toolCalls
29587
29892
  };
29588
29893
  }
@@ -29631,7 +29936,7 @@ function ApprovalRequestNotificationTile({
29631
29936
  const [pinned, setPinned] = _react.useState.call(void 0, defaultExpanded);
29632
29937
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
29633
29938
  const approval = getApprovalMeta(notification);
29634
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _521 => _521.resolution]));
29939
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _524 => _524.resolution]));
29635
29940
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
29636
29941
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
29637
29942
  const { innerRef, containerStyle } = useCollapsible({ expanded });
@@ -29706,24 +30011,24 @@ function ApprovalRequestNotificationTile({
29706
30011
  // src/components/features/time-tracker/time-tracker-context.tsx
29707
30012
 
29708
30013
 
29709
- var TimeTrackerContext = React91.createContext(null);
30014
+ var TimeTrackerContext = React92.createContext(null);
29710
30015
  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), []);
30016
+ const [isOpen, setIsOpen] = React92.useState(defaultOpen);
30017
+ const open = React92.useCallback(() => setIsOpen(true), []);
30018
+ const close = React92.useCallback(() => setIsOpen(false), []);
30019
+ const toggle = React92.useCallback(() => setIsOpen((v) => !v), []);
29715
30020
  const value = { ...data, isOpen, open, close, toggle };
29716
30021
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TimeTrackerContext.Provider, { value, children });
29717
30022
  }
29718
30023
  function useTimeTracker() {
29719
- const ctx = React91.useContext(TimeTrackerContext);
30024
+ const ctx = React92.useContext(TimeTrackerContext);
29720
30025
  if (!ctx) {
29721
30026
  throw new Error("useTimeTracker must be used inside <TimeTrackerProvider>");
29722
30027
  }
29723
30028
  return ctx;
29724
30029
  }
29725
30030
  function useOptionalTimeTracker() {
29726
- return React91.useContext(TimeTrackerContext);
30031
+ return React92.useContext(TimeTrackerContext);
29727
30032
  }
29728
30033
 
29729
30034
  // src/components/features/time-tracker/time-tracker-panel.tsx
@@ -29899,7 +30204,7 @@ function TimeTrackerPanel({
29899
30204
  error: showFieldError ? "Required if no notes added" : void 0,
29900
30205
  disableClientFilter: !!onTicketSearch,
29901
30206
  onInputChange: (value, reason) => {
29902
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _522 => _522(value)]);
30207
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _525 => _525(value)]);
29903
30208
  }
29904
30209
  }
29905
30210
  )
@@ -29989,7 +30294,7 @@ function LastEntryRow({ entry, onClick }) {
29989
30294
  {
29990
30295
  variant: "outline",
29991
30296
  size: "icon",
29992
- onClick: () => _optionalChain([onClick, 'optionalCall', _523 => _523(entry)]),
30297
+ onClick: () => _optionalChain([onClick, 'optionalCall', _526 => _526(entry)]),
29993
30298
  disabled: !onClick,
29994
30299
  "aria-label": `Open entry: ${entry.title}`,
29995
30300
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -30033,16 +30338,16 @@ function HeaderButton({
30033
30338
  function TimeTrackerHeaderButton({ className, disabled }) {
30034
30339
  const ctx = useOptionalTimeTracker();
30035
30340
  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])
30341
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _527 => _527.status]), () => ( "ready")),
30342
+ runningSince: _optionalChain([ctx, 'optionalAccess', _528 => _528.runningSince]),
30343
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _529 => _529.accumulatedMs])
30039
30344
  });
30040
30345
  if (!ctx) return null;
30041
30346
  const { isOpen, open, close, status } = ctx;
30042
30347
  const isPaused = status === "paused";
30043
30348
  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,
30349
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive4.Root, { open: isOpen, onOpenChange: (next) => next ? open() : close(), children: [
30350
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive4.Trigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30046
30351
  HeaderButton,
30047
30352
  {
30048
30353
  "aria-label": "Time tracker",
@@ -30076,8 +30381,8 @@ function TimeTrackerHeaderButton({ className, disabled }) {
30076
30381
  ] })
30077
30382
  }
30078
30383
  ) }),
30079
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive3.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30080
- PopoverPrimitive3.Content,
30384
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive4.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30385
+ PopoverPrimitive4.Content,
30081
30386
  {
30082
30387
  align: "end",
30083
30388
  sideOffset: 8,
@@ -30234,7 +30539,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
30234
30539
 
30235
30540
 
30236
30541
  function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
30237
- const [expanded, setExpanded] = React92.useState(false);
30542
+ const [expanded, setExpanded] = React93.useState(false);
30238
30543
  const { innerRef, containerStyle } = useCollapsible({ expanded });
30239
30544
  const isAdmin = pendingApproval.approvalType === "ADMIN";
30240
30545
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
@@ -30302,7 +30607,7 @@ function TicketCard({
30302
30607
  onApprove,
30303
30608
  onReject
30304
30609
  }) {
30305
- const sortableData = React93.useMemo(
30610
+ const sortableData = React94.useMemo(
30306
30611
  () => ({ columnId, type: "ticket" }),
30307
30612
  [columnId]
30308
30613
  );
@@ -30318,15 +30623,15 @@ function TicketCard({
30318
30623
  transition: sortable.transition
30319
30624
  };
30320
30625
  if (showNewMessage) style.borderColor = columnColor;
30321
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _527 => _527.deviceHostnames, 'optionalAccess', _528 => _528.length]) || ticket.organizationName);
30626
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _530 => _530.deviceHostnames, 'optionalAccess', _531 => _531.length]) || ticket.organizationName);
30322
30627
  const deviceText = [
30323
- _optionalChain([ticket, 'access', _529 => _529.deviceHostnames, 'optionalAccess', _530 => _530.join, 'call', _531 => _531(", ")]),
30628
+ _optionalChain([ticket, 'access', _532 => _532.deviceHostnames, 'optionalAccess', _533 => _533.join, 'call', _534 => _534(", ")]),
30324
30629
  ticket.organizationName
30325
30630
  ].filter(Boolean).join(", ");
30326
30631
  const handleClick = (e) => {
30327
30632
  if (sortable.isDragging) e.preventDefault();
30328
30633
  };
30329
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _532 => _532.assignees, 'optionalAccess', _533 => _533.length]) || renderAssignSlot);
30634
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _535 => _535.assignees, 'optionalAccess', _536 => _536.length]) || renderAssignSlot);
30330
30635
  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
30636
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30332
30637
  _chunkGXRWE7NBcjs.Flag02Icon,
@@ -30335,7 +30640,7 @@ function TicketCard({
30335
30640
  "aria-label": `Priority: ${ticket.priority}`
30336
30641
  }
30337
30642
  ),
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: [
30643
+ 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
30644
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30340
30645
  SquareAvatar,
30341
30646
  {
@@ -30366,7 +30671,7 @@ function TicketCard({
30366
30671
  ] }),
30367
30672
  rightSection
30368
30673
  ] }),
30369
- _optionalChain([ticket, 'access', _536 => _536.tags, 'optionalAccess', _537 => _537.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30674
+ _optionalChain([ticket, 'access', _539 => _539.tags, 'optionalAccess', _540 => _540.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
30370
30675
  timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Tooltip, { children: [
30371
30676
  /* @__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
30677
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipContent, { children: tooltipLabel })
@@ -30448,7 +30753,7 @@ function TicketTagRow({ tags }) {
30448
30753
 
30449
30754
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
30450
30755
 
30451
- var TicketCardSkeleton = React94.forwardRef(
30756
+ var TicketCardSkeleton = React95.forwardRef(
30452
30757
  ({ className, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30453
30758
  "div",
30454
30759
  {
@@ -30542,8 +30847,8 @@ function BoardColumn({
30542
30847
  );
30543
30848
  }
30544
30849
  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(
30850
+ const ticketIds = React96.useMemo(() => column.tickets.map((t) => t.id), [column.tickets]);
30851
+ const droppableData = React96.useMemo(
30547
30852
  () => ({ columnId: column.id, type: "column" }),
30548
30853
  [column.id]
30549
30854
  );
@@ -30552,13 +30857,13 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30552
30857
  data: droppableData,
30553
30858
  disabled: column.dropDisabled
30554
30859
  });
30555
- const scrollRef = React95.useRef(null);
30556
- const sentinelRef = React95.useRef(null);
30557
- const loadMoreRef = React95.useRef(onLoadMore);
30860
+ const scrollRef = React96.useRef(null);
30861
+ const sentinelRef = React96.useRef(null);
30862
+ const loadMoreRef = React96.useRef(onLoadMore);
30558
30863
  loadMoreRef.current = onLoadMore;
30559
- const columnIdRef = React95.useRef(column.id);
30864
+ const columnIdRef = React96.useRef(column.id);
30560
30865
  columnIdRef.current = column.id;
30561
- React95.useEffect(() => {
30866
+ React96.useEffect(() => {
30562
30867
  if (!column.hasMore || column.isLoadingMore) return;
30563
30868
  const sentinel = sentinelRef.current;
30564
30869
  const root = scrollRef.current;
@@ -30566,7 +30871,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30566
30871
  const observer = new IntersectionObserver(
30567
30872
  (entries) => {
30568
30873
  if (entries.some((e) => e.isIntersecting)) {
30569
- _optionalChain([loadMoreRef, 'access', _538 => _538.current, 'optionalCall', _539 => _539(columnIdRef.current)]);
30874
+ _optionalChain([loadMoreRef, 'access', _541 => _541.current, 'optionalCall', _542 => _542(columnIdRef.current)]);
30570
30875
  }
30571
30876
  },
30572
30877
  { root, rootMargin: loadMoreRootMargin }
@@ -30574,7 +30879,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30574
30879
  observer.observe(sentinel);
30575
30880
  return () => observer.disconnect();
30576
30881
  }, [column.hasMore, column.isLoadingMore, loadMoreRootMargin]);
30577
- const setBodyRef = React95.useCallback(
30882
+ const setBodyRef = React96.useCallback(
30578
30883
  (el) => {
30579
30884
  scrollRef.current = el;
30580
30885
  setDroppableRef(el);
@@ -30596,7 +30901,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30596
30901
  ticket: t,
30597
30902
  columnId: column.id,
30598
30903
  columnColor: column.color,
30599
- href: _optionalChain([getTicketHref, 'optionalCall', _540 => _540(t.id)]),
30904
+ href: _optionalChain([getTicketHref, 'optionalCall', _543 => _543(t.id)]),
30600
30905
  renderAssignSlot,
30601
30906
  onApprove,
30602
30907
  onReject,
@@ -30611,7 +30916,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onApprove, onReje
30611
30916
  );
30612
30917
  }
30613
30918
  function SkeletonStack({ count = 4 }) {
30614
- const keys = React95.useMemo(
30919
+ const keys = React96.useMemo(
30615
30920
  () => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
30616
30921
  [count]
30617
30922
  );
@@ -30681,32 +30986,32 @@ function Board({
30681
30986
  onThumbPointerMove,
30682
30987
  onThumbPointerUp
30683
30988
  } = _chunk27IO7V3Pcjs.useHorizontalScrollbar.call(void 0, );
30684
- const [items, setItems] = React96.useState(columns);
30685
- const isDraggingRef = React96.useRef(false);
30686
- React96.useEffect(() => {
30989
+ const [items, setItems] = React97.useState(columns);
30990
+ const isDraggingRef = React97.useRef(false);
30991
+ React97.useEffect(() => {
30687
30992
  if (!isDraggingRef.current) setItems(columns);
30688
30993
  }, [columns]);
30689
- const dragOriginRef = React96.useRef(null);
30690
- const [activeTicket, setActiveTicket] = React96.useState(null);
30994
+ const dragOriginRef = React97.useRef(null);
30995
+ const [activeTicket, setActiveTicket] = React97.useState(null);
30691
30996
  const sensors = _core.useSensors.call(void 0,
30692
30997
  _core.useSensor.call(void 0, _core.PointerSensor, { activationConstraint: { distance: 6 } }),
30693
30998
  _core.useSensor.call(void 0, _core.KeyboardSensor, { coordinateGetter: _sortable.sortableKeyboardCoordinates })
30694
30999
  );
30695
- const collisionDetection = React96.useCallback((args) => {
31000
+ const collisionDetection = React97.useCallback((args) => {
30696
31001
  const pointer = _core.pointerWithin.call(void 0, args);
30697
31002
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
30698
31003
  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"
31004
+ (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
31005
  );
30701
31006
  if (ticketHit) return [ticketHit];
30702
31007
  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"
31008
+ (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
31009
  );
30705
31010
  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]);
31011
+ 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
31012
  const ticketsInColumn = args.droppableContainers.filter((c) => {
30708
31013
  const d = c.data.current;
30709
- return _optionalChain([d, 'optionalAccess', _556 => _556.type]) === "ticket" && d.columnId === columnId;
31014
+ return _optionalChain([d, 'optionalAccess', _559 => _559.type]) === "ticket" && d.columnId === columnId;
30710
31015
  });
30711
31016
  if (ticketsInColumn.length > 0) {
30712
31017
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -30731,20 +31036,20 @@ function Board({
30731
31036
  const overId = String(over.id);
30732
31037
  if (activeId === overId) return;
30733
31038
  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]);
31039
+ const fromColumnId = _optionalChain([locate, 'call', _560 => _560(items, activeId), 'optionalAccess', _561 => _561.columnId]);
31040
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _562 => _562.columnId]);
30736
31041
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
30737
31042
  const origin = dragOriginRef.current;
30738
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _560 => _560.fromColumnId]) === toColumnId;
31043
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _563 => _563.fromColumnId]) === toColumnId;
30739
31044
  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;
31045
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _564 => _564.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
31046
+ if (_optionalChain([targetCol, 'optionalAccess', _565 => _565.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
30742
31047
  setItems((prev) => {
30743
31048
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
30744
31049
  const toCol = prev.find((c) => c.id === toColumnId);
30745
31050
  if (fromIndex < 0 || !toCol) return prev;
30746
31051
  let toIndex;
30747
- if (_optionalChain([overData, 'optionalAccess', _563 => _563.type]) === "column") {
31052
+ if (_optionalChain([overData, 'optionalAccess', _566 => _566.type]) === "column") {
30748
31053
  toIndex = toCol.tickets.length;
30749
31054
  } else {
30750
31055
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -30786,14 +31091,14 @@ function Board({
30786
31091
  const toColumnId = located.columnId;
30787
31092
  const isCrossColumn = origin.fromColumnId !== toColumnId;
30788
31093
  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))) {
31094
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _567 => _567.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _568 => _568.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
30790
31095
  setItems(columns);
30791
31096
  return;
30792
31097
  }
30793
31098
  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]), () => ( []));
31099
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _569 => _569.find, 'call', _570 => _570((c) => c.id === toColumnId), 'optionalAccess', _571 => _571.tickets]), () => ( []));
30795
31100
  const overData = over.data.current;
30796
- if (_optionalChain([overData, 'optionalAccess', _569 => _569.type]) === "ticket") {
31101
+ if (_optionalChain([overData, 'optionalAccess', _572 => _572.type]) === "ticket") {
30797
31102
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
30798
31103
  if (overIndex >= 0 && overIndex !== located.index) {
30799
31104
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -30813,8 +31118,8 @@ function Board({
30813
31118
  ticketId: origin.ticketId,
30814
31119
  fromColumnId: origin.fromColumnId,
30815
31120
  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))
31121
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _573 => _573[finalIndex - 1], 'optionalAccess', _574 => _574.id]), () => ( null)),
31122
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _575 => _575[finalIndex + 1], 'optionalAccess', _576 => _576.id]), () => ( null))
30818
31123
  });
30819
31124
  };
30820
31125
  const handleDragCancel = () => {
@@ -30843,10 +31148,10 @@ function Board({
30843
31148
  children: items.map((column, i) => {
30844
31149
  const prev = items[i - 1];
30845
31150
  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]));
31151
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _577 => _577.system]));
31152
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _578 => _578.system]));
30848
31153
  const showGap = i > 0 && !joinLeft;
30849
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React96.Fragment, { children: [
31154
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React97.Fragment, { children: [
30850
31155
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
30851
31156
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30852
31157
  BoardColumn,
@@ -30897,7 +31202,7 @@ function Board({
30897
31202
  {
30898
31203
  ticket: activeTicket.ticket,
30899
31204
  columnId: activeTicket.columnId,
30900
- columnColor: _optionalChain([items, 'access', _576 => _576.find, 'call', _577 => _577((c) => c.id === activeTicket.columnId), 'optionalAccess', _578 => _578.color]),
31205
+ columnColor: _optionalChain([items, 'access', _579 => _579.find, 'call', _580 => _580((c) => c.id === activeTicket.columnId), 'optionalAccess', _581 => _581.color]),
30901
31206
  isOverlay: true
30902
31207
  }
30903
31208
  ) : null })
@@ -30913,7 +31218,7 @@ function locate(cols, ticketId) {
30913
31218
  return null;
30914
31219
  }
30915
31220
  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));
31221
+ 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
31222
  }
30918
31223
 
30919
31224
  // src/components/features/board/types.ts
@@ -31004,7 +31309,7 @@ function TicketStatusConfigList({
31004
31309
  if (oldIndex === -1 || newIndex === -1) return;
31005
31310
  onReorder(oldIndex, newIndex);
31006
31311
  };
31007
- const sortableIds = React97.useMemo(() => items.map((i) => i.id), [items]);
31312
+ const sortableIds = React98.useMemo(() => items.map((i) => i.id), [items]);
31008
31313
  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
31314
  }
31010
31315
  function SortableRow({
@@ -31095,7 +31400,7 @@ function Header2({ config, platform }) {
31095
31400
  }, [config.autoHide]);
31096
31401
  const renderNavigationItem = (item) => {
31097
31402
  if (item.element) {
31098
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React112.default.Fragment, { children: item.element }, item.id);
31403
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: item.element }, item.id);
31099
31404
  }
31100
31405
  if (item.children && item.children.length > 0) {
31101
31406
  const isOpen = openDropdowns[item.id] || false;
@@ -31161,7 +31466,7 @@ function Header2({ config, platform }) {
31161
31466
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
31162
31467
  "flex justify-start w-full",
31163
31468
  "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",
31469
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _587 => _587.children, 'optionalAccess', _588 => _588.length]), () => ( 0))) - 1 && "mb-1",
31165
31470
  "text-ods-text-primary",
31166
31471
  // All dropdown items use primary text color
31167
31472
  child.isActive && "bg-ods-bg-hover"
@@ -31253,7 +31558,7 @@ function Header2({ config, platform }) {
31253
31558
  style: config.style,
31254
31559
  children: [
31255
31560
  /* @__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 }),
31561
+ _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
31562
  /* @__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
31563
  ] }),
31259
31564
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31270,7 +31575,7 @@ function Header2({ config, platform }) {
31270
31575
  }
31271
31576
  ),
31272
31577
  /* @__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 }),
31578
+ _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
31579
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31275
31580
  _chunkQJGRP2YEcjs.Button,
31276
31581
  {
@@ -31278,10 +31583,10 @@ function Header2({ config, platform }) {
31278
31583
  size: "icon",
31279
31584
  className: "flex md:hidden",
31280
31585
  onClick: () => {
31281
- _optionalChain([config, 'access', _590 => _590.mobile, 'optionalAccess', _591 => _591.onToggle, 'optionalCall', _592 => _592()]);
31586
+ _optionalChain([config, 'access', _593 => _593.mobile, 'optionalAccess', _594 => _594.onToggle, 'optionalCall', _595 => _595()]);
31282
31587
  },
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, {})
31588
+ "aria-label": _optionalChain([config, 'access', _596 => _596.mobile, 'optionalAccess', _597 => _597.isOpen]) ? "Close menu" : "Open menu",
31589
+ leftIcon: _optionalChain([config, 'access', _598 => _598.mobile, 'optionalAccess', _599 => _599.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Menu01Icon, {})
31285
31590
  }
31286
31591
  )
31287
31592
  ] })
@@ -31298,10 +31603,10 @@ function Header2({ config, platform }) {
31298
31603
  // src/components/navigation/header-skeleton.tsx
31299
31604
 
31300
31605
  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")]);
31606
+ const showNavigation = _optionalChain([config, 'optionalAccess', _600 => _600.navigation]) && config.navigation.items.length > 0;
31607
+ const showActions = _optionalChain([config, 'optionalAccess', _601 => _601.actions, 'optionalAccess', _602 => _602.right]) && config.actions.right.length > 0;
31608
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _603 => _603.mobile, 'optionalAccess', _604 => _604.enabled]);
31609
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _605 => _605.className, 'optionalAccess', _606 => _606.includes, 'call', _607 => _607("admin")]);
31305
31610
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31306
31611
  "header",
31307
31612
  {
@@ -31310,11 +31615,11 @@ function HeaderSkeleton({ config }) {
31310
31615
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
31311
31616
  "px-6 py-3",
31312
31617
  "transition-opacity duration-300 ease-in-out",
31313
- _optionalChain([config, 'optionalAccess', _605 => _605.className])
31618
+ _optionalChain([config, 'optionalAccess', _608 => _608.className])
31314
31619
  ),
31315
31620
  children: [
31316
31621
  /* @__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" }) }),
31622
+ 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
31623
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
31319
31624
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
31320
31625
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -31322,8 +31627,8 @@ function HeaderSkeleton({ config }) {
31322
31627
  ] }),
31323
31628
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
31324
31629
  "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"
31630
+ _optionalChain([config, 'optionalAccess', _611 => _611.navigation, 'optionalAccess', _612 => _612.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
31631
+ _optionalChain([config, 'optionalAccess', _613 => _613.navigation, 'optionalAccess', _614 => _614.position]) === "right" && "ml-auto mr-4"
31327
31632
  ), children: [
31328
31633
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
31329
31634
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -31371,7 +31676,7 @@ function MobileNavPanel({ isOpen, config }) {
31371
31676
  _react.useEffect.call(void 0, () => {
31372
31677
  const handleKeyDown = (e) => {
31373
31678
  if (e.key === "Escape" && isOpen) {
31374
- _optionalChain([config, 'access', _612 => _612.onClose, 'optionalCall', _613 => _613()]);
31679
+ _optionalChain([config, 'access', _615 => _615.onClose, 'optionalCall', _616 => _616()]);
31375
31680
  }
31376
31681
  };
31377
31682
  if (isOpen) {
@@ -31388,7 +31693,7 @@ function MobileNavPanel({ isOpen, config }) {
31388
31693
  if (item.onClick) {
31389
31694
  item.onClick();
31390
31695
  }
31391
- _optionalChain([config, 'access', _614 => _614.onClose, 'optionalCall', _615 => _615()]);
31696
+ _optionalChain([config, 'access', _617 => _617.onClose, 'optionalCall', _618 => _618()]);
31392
31697
  };
31393
31698
  if (item.href) {
31394
31699
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31558,7 +31863,7 @@ function SlidingSidebar({ config }) {
31558
31863
  variant: "transparent",
31559
31864
  size: "default",
31560
31865
  onClick: () => {
31561
- _optionalChain([item, 'access', _616 => _616.onClick, 'optionalCall', _617 => _617()]);
31866
+ _optionalChain([item, 'access', _619 => _619.onClick, 'optionalCall', _620 => _620()]);
31562
31867
  config.onClose();
31563
31868
  },
31564
31869
  leftIcon: item.icon,
@@ -31581,7 +31886,7 @@ function SlidingSidebar({ config }) {
31581
31886
  variant: "transparent",
31582
31887
  size: "default",
31583
31888
  onClick: () => {
31584
- _optionalChain([item, 'access', _618 => _618.onClick, 'optionalCall', _619 => _619()]);
31889
+ _optionalChain([item, 'access', _621 => _621.onClick, 'optionalCall', _622 => _622()]);
31585
31890
  config.onClose();
31586
31891
  },
31587
31892
  leftIcon: item.icon,
@@ -31708,7 +32013,7 @@ function StickySectionNav({
31708
32013
  ] });
31709
32014
  }
31710
32015
  function useSectionNavigation(sections, options) {
31711
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _620 => _620[0], 'optionalAccess', _621 => _621.id]) || "");
32016
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _623 => _623[0], 'optionalAccess', _624 => _624.id]) || "");
31712
32017
  const isScrollingFromClick = _react.useRef.call(void 0, false);
31713
32018
  const { offset: offset2 = 100 } = options || {};
31714
32019
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -31732,7 +32037,7 @@ function useSectionNavigation(sections, options) {
31732
32037
  const handleScroll = () => {
31733
32038
  if (isScrollingFromClick.current) return;
31734
32039
  const scrollPosition = window.scrollY + offset2 + 50;
31735
- let currentSection = _optionalChain([sections, 'access', _622 => _622[0], 'optionalAccess', _623 => _623.id]) || "";
32040
+ let currentSection = _optionalChain([sections, 'access', _625 => _625[0], 'optionalAccess', _626 => _626.id]) || "";
31736
32041
  for (let i = sections.length - 1; i >= 0; i--) {
31737
32042
  const element = document.getElementById(sections[i].id);
31738
32043
  if (element && scrollPosition >= element.offsetTop) {
@@ -31933,7 +32238,7 @@ function NavigationSidebar({ config, disabled = false }) {
31933
32238
  } else {
31934
32239
  setDesktopMinimized((prev) => !prev);
31935
32240
  }
31936
- _optionalChain([config, 'access', _624 => _624.onToggleMinimized, 'optionalCall', _625 => _625()]);
32241
+ _optionalChain([config, 'access', _627 => _627.onToggleMinimized, 'optionalCall', _628 => _628()]);
31937
32242
  }, [isTablet, setDesktopMinimized, config]);
31938
32243
  const closeOverlay = _react.useCallback.call(void 0, () => {
31939
32244
  setTabletMinimized(true);
@@ -31947,11 +32252,11 @@ function NavigationSidebar({ config, disabled = false }) {
31947
32252
  return () => document.removeEventListener("keydown", handleKeyDown);
31948
32253
  }, [isOverlayOpen, closeOverlay]);
31949
32254
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
31950
- _optionalChain([event, 'optionalAccess', _626 => _626.stopPropagation, 'call', _627 => _627()]);
32255
+ _optionalChain([event, 'optionalAccess', _629 => _629.stopPropagation, 'call', _630 => _630()]);
31951
32256
  if (item.onClick) {
31952
32257
  item.onClick();
31953
32258
  } else if (item.path) {
31954
- _optionalChain([config, 'access', _628 => _628.onNavigate, 'optionalCall', _629 => _629(item.path)]);
32259
+ _optionalChain([config, 'access', _631 => _631.onNavigate, 'optionalCall', _632 => _632(item.path)]);
31955
32260
  }
31956
32261
  if (isTablet) setTabletMinimized(true);
31957
32262
  }, [config, isTablet]);
@@ -32059,7 +32364,7 @@ function HeaderGlobalSearch({
32059
32364
  placeholder = "Global Search",
32060
32365
  className
32061
32366
  }) {
32062
- const [internalValue, setInternalValue] = React112.default.useState(value);
32367
+ const [internalValue, setInternalValue] = React113.default.useState(value);
32063
32368
  const currentValue = onChange ? value : internalValue;
32064
32369
  const handleChange = (e) => {
32065
32370
  const newValue = e.target.value;
@@ -32071,11 +32376,11 @@ function HeaderGlobalSearch({
32071
32376
  };
32072
32377
  const handleSubmit = (e) => {
32073
32378
  e.preventDefault();
32074
- _optionalChain([onSubmit, 'optionalCall', _630 => _630(currentValue)]);
32379
+ _optionalChain([onSubmit, 'optionalCall', _633 => _633(currentValue)]);
32075
32380
  };
32076
32381
  const handleKeyDown = (e) => {
32077
32382
  if (e.key === "Enter") {
32078
- _optionalChain([onSubmit, 'optionalCall', _631 => _631(currentValue)]);
32383
+ _optionalChain([onSubmit, 'optionalCall', _634 => _634(currentValue)]);
32079
32384
  }
32080
32385
  };
32081
32386
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -32169,8 +32474,8 @@ function HeaderOrganizationFilter({
32169
32474
  className
32170
32475
  }) {
32171
32476
  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));
32477
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _635 => _635.name]) || "All Organizations";
32478
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _636 => _636.deviceCount]), () => ( totalDeviceCount));
32174
32479
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkQJGRP2YEcjs.DropdownMenu, { children: [
32175
32480
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32176
32481
  "button",
@@ -32195,11 +32500,11 @@ function HeaderOrganizationFilter({
32195
32500
  }
32196
32501
  ) }),
32197
32502
  /* @__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" }),
32503
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQJGRP2YEcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _637 => _637("")]), children: "All Organizations" }),
32199
32504
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32200
32505
  _chunkQJGRP2YEcjs.DropdownMenuItem,
32201
32506
  {
32202
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _635 => _635(org.id)]),
32507
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _638 => _638(org.id)]),
32203
32508
  children: org.name
32204
32509
  },
32205
32510
  org.id
@@ -32210,7 +32515,7 @@ function HeaderOrganizationFilter({
32210
32515
 
32211
32516
  // src/components/navigation/app-header.tsx
32212
32517
 
32213
- var AppHeader = React112.default.memo(function AppHeader2({
32518
+ var AppHeader = React113.default.memo(function AppHeader2({
32214
32519
  showSearch,
32215
32520
  onSearch,
32216
32521
  showOrganizations,
@@ -32389,9 +32694,9 @@ function NotificationsHeaderButton({
32389
32694
  dimmedClass
32390
32695
  }) {
32391
32696
  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]);
32697
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _639 => _639.unreadCount]), () => ( fallbackUnreadCount))) > 0;
32698
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _640 => _640.isOpen]), () => ( false));
32699
+ const onClick = _optionalChain([ctx, 'optionalAccess', _641 => _641.toggle]);
32395
32700
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32396
32701
  HeaderButton,
32397
32702
  {
@@ -32420,7 +32725,7 @@ function NotificationsHeaderButton({
32420
32725
 
32421
32726
 
32422
32727
  var HEADER_HEIGHT = 48;
32423
- var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32728
+ var MobileBurgerMenu = React113.default.memo(function MobileBurgerMenu2({
32424
32729
  isOpen,
32425
32730
  onClose,
32426
32731
  config,
@@ -32455,7 +32760,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32455
32760
  if (item.onClick) {
32456
32761
  item.onClick();
32457
32762
  } else if (item.path) {
32458
- _optionalChain([config, 'access', _639 => _639.onNavigate, 'optionalCall', _640 => _640(item.path)]);
32763
+ _optionalChain([config, 'access', _642 => _642.onNavigate, 'optionalCall', _643 => _643(item.path)]);
32459
32764
  }
32460
32765
  onClose();
32461
32766
  }, [config, onClose]);
@@ -32481,7 +32786,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32481
32786
  ),
32482
32787
  "aria-current": isActive ? "page" : void 0,
32483
32788
  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, {
32789
+ 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
32790
  size: 16,
32486
32791
  color: isActive && !disabled ? "var(--color-accent-primary)" : "var(--color-text-secondary)"
32487
32792
  }) }),
@@ -32500,7 +32805,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32500
32805
  rows.push(items.slice(i, i + 2));
32501
32806
  }
32502
32807
  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)),
32808
+ row.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, React113.default.Fragment, { children: renderNavigationItem(item, true) }, item.id)),
32504
32809
  row.length === 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" })
32505
32810
  ] }, rowIndex)) });
32506
32811
  };
@@ -32591,7 +32896,7 @@ var MobileBurgerMenu = React112.default.memo(function MobileBurgerMenu2({
32591
32896
  }
32592
32897
  ),
32593
32898
  /* @__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)) }),
32899
+ 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
32900
  onLogout && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32596
32901
  "button",
32597
32902
  {
@@ -32683,7 +32988,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
32683
32988
 
32684
32989
 
32685
32990
 
32686
- var DrawerOpenContext = React105.createContext(false);
32991
+ var DrawerOpenContext = React106.createContext(false);
32687
32992
  var AppLayoutDrawerRoot = ({
32688
32993
  open: openProp,
32689
32994
  defaultOpen,
@@ -32692,13 +32997,13 @@ var AppLayoutDrawerRoot = ({
32692
32997
  children,
32693
32998
  ...rest
32694
32999
  }) => {
32695
- const [internalOpen, setInternalOpen] = React105.useState(_nullishCoalesce(defaultOpen, () => ( false)));
33000
+ const [internalOpen, setInternalOpen] = React106.useState(_nullishCoalesce(defaultOpen, () => ( false)));
32696
33001
  const isControlled = openProp !== void 0;
32697
33002
  const open = isControlled ? openProp : internalOpen;
32698
- const handleOpenChange = React105.useCallback(
33003
+ const handleOpenChange = React106.useCallback(
32699
33004
  (next) => {
32700
33005
  if (!isControlled) setInternalOpen(next);
32701
- _optionalChain([onOpenChange, 'optionalCall', _641 => _641(next)]);
33006
+ _optionalChain([onOpenChange, 'optionalCall', _644 => _644(next)]);
32702
33007
  },
32703
33008
  [isControlled, onOpenChange]
32704
33009
  );
@@ -32789,8 +33094,8 @@ function useContainedResizableSize({
32789
33094
  storageKey,
32790
33095
  container
32791
33096
  }) {
32792
- const [available, setAvailable] = React105.useState(0);
32793
- React105.useEffect(() => {
33097
+ const [available, setAvailable] = React106.useState(0);
33098
+ React106.useEffect(() => {
32794
33099
  if (!enabled || !container) return;
32795
33100
  const update = () => {
32796
33101
  setAvailable(isHorizontal ? container.clientWidth : container.clientHeight);
@@ -32800,14 +33105,14 @@ function useContainedResizableSize({
32800
33105
  ro.observe(container);
32801
33106
  return () => ro.disconnect();
32802
33107
  }, [enabled, container, isHorizontal]);
32803
- const clampToContainer = React105.useCallback(
33108
+ const clampToContainer = React106.useCallback(
32804
33109
  (value) => {
32805
33110
  const effectiveMax = available > 0 ? Math.min(maxSize, available - 40) : maxSize;
32806
33111
  return clamp3(value, minSize, Math.max(minSize, effectiveMax));
32807
33112
  },
32808
33113
  [available, minSize, maxSize]
32809
33114
  );
32810
- const readInitial = React105.useCallback(() => {
33115
+ const readInitial = React106.useCallback(() => {
32811
33116
  if (!enabled) return defaultSize;
32812
33117
  if (typeof window === "undefined") return defaultSize;
32813
33118
  if (!storageKey) return defaultSize;
@@ -32821,19 +33126,19 @@ function useContainedResizableSize({
32821
33126
  return defaultSize;
32822
33127
  }
32823
33128
  }, [enabled, storageKey, defaultSize]);
32824
- const [size, setSizeRaw] = React105.useState(readInitial);
32825
- const setSize = React105.useCallback(
33129
+ const [size, setSizeRaw] = React106.useState(readInitial);
33130
+ const setSize = React106.useCallback(
32826
33131
  (next) => setSizeRaw(clampToContainer(next)),
32827
33132
  [clampToContainer]
32828
33133
  );
32829
- React105.useEffect(() => {
33134
+ React106.useEffect(() => {
32830
33135
  if (!enabled || !storageKey || typeof window === "undefined") return;
32831
33136
  try {
32832
33137
  window.localStorage.setItem(storageKey, String(Math.round(size)));
32833
33138
  } catch (e35) {
32834
33139
  }
32835
33140
  }, [enabled, size, storageKey]);
32836
- React105.useEffect(() => {
33141
+ React106.useEffect(() => {
32837
33142
  if (!enabled) return;
32838
33143
  setSizeRaw((prev) => clampToContainer(prev));
32839
33144
  }, [enabled, clampToContainer]);
@@ -32848,7 +33153,7 @@ function AppLayoutDrawerResizeHandle({
32848
33153
  ariaLabel
32849
33154
  }) {
32850
33155
  const isHorizontal = HORIZONTAL_SIDES2.has(side);
32851
- const startRef = React105.useRef(null);
33156
+ const startRef = React106.useRef(null);
32852
33157
  const direction = side === "right" || side === "bottom" ? -1 : 1;
32853
33158
  const handlePointerDown = (e) => {
32854
33159
  if (e.button !== 0 && e.pointerType === "mouse") return;
@@ -32938,7 +33243,7 @@ function AppLayoutDrawerResizeHandle({
32938
33243
  }
32939
33244
  );
32940
33245
  }
32941
- var AppLayoutDrawerContent = React105.forwardRef(
33246
+ var AppLayoutDrawerContent = React106.forwardRef(
32942
33247
  ({
32943
33248
  side = "right",
32944
33249
  flush = false,
@@ -32966,13 +33271,13 @@ var AppLayoutDrawerContent = React105.forwardRef(
32966
33271
  }, ref) => {
32967
33272
  const contextContainer = useAppLayoutDrawerContainer();
32968
33273
  const portalContainer = container !== void 0 ? container : contextContainer;
32969
- const open = React105.useContext(DrawerOpenContext);
32970
- const [hasOpened, setHasOpened] = React105.useState(Boolean(open));
32971
- React105.useEffect(() => {
33274
+ const open = React106.useContext(DrawerOpenContext);
33275
+ const [hasOpened, setHasOpened] = React106.useState(Boolean(open));
33276
+ React106.useEffect(() => {
32972
33277
  if (open) setHasOpened(true);
32973
33278
  }, [open]);
32974
33279
  const persist = keepMounted && hasOpened;
32975
- React105.useEffect(() => {
33280
+ React106.useEffect(() => {
32976
33281
  if (!debugLayoutShift) return;
32977
33282
  if (!open) return;
32978
33283
  if (typeof window === "undefined") return;
@@ -33023,8 +33328,8 @@ var AppLayoutDrawerContent = React105.forwardRef(
33023
33328
  const resolvedSide = _nullishCoalesce(side, () => ( "right"));
33024
33329
  const isHorizontal = HORIZONTAL_SIDES2.has(resolvedSide);
33025
33330
  const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
33026
- const [isMobile, setIsMobile] = React105.useState(false);
33027
- React105.useEffect(() => {
33331
+ const [isMobile, setIsMobile] = React106.useState(false);
33332
+ React106.useEffect(() => {
33028
33333
  if (typeof window === "undefined") return;
33029
33334
  const mq = window.matchMedia(`(max-width: ${mobileBreakpoint - 1}px)`);
33030
33335
  const update = () => setIsMobile(mq.matches);
@@ -33079,10 +33384,10 @@ var AppLayoutDrawerContent = React105.forwardRef(
33079
33384
  ),
33080
33385
  style,
33081
33386
  onInteractOutside: (event) => {
33082
- _optionalChain([onInteractOutside, 'optionalCall', _642 => _642(event)]);
33387
+ _optionalChain([onInteractOutside, 'optionalCall', _645 => _645(event)]);
33083
33388
  if (event.defaultPrevented) return;
33084
33389
  const target = event.target;
33085
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _643 => _643.contains, 'call', _644 => _644(target)]);
33390
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _646 => _646.contains, 'call', _647 => _647(target)]);
33086
33391
  if (!isInsideContainer) {
33087
33392
  event.preventDefault();
33088
33393
  return;
@@ -33495,7 +33800,7 @@ var ShellTypeBadge = ({
33495
33800
  className,
33496
33801
  iconClassName
33497
33802
  }) => {
33498
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _645 => _645.toUpperCase, 'call', _646 => _646()]);
33803
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _648 => _648.toUpperCase, 'call', _649 => _649()]);
33499
33804
  const label = getShellLabel(normalizedType);
33500
33805
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
33501
33806
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -33712,7 +34017,7 @@ function OnboardingStepCard({
33712
34017
  onSkip,
33713
34018
  className
33714
34019
  }) {
33715
- const [isProcessing, setIsProcessing] = React112.default.useState(false);
34020
+ const [isProcessing, setIsProcessing] = React113.default.useState(false);
33716
34021
  const handleAction = async (e) => {
33717
34022
  e.stopPropagation();
33718
34023
  setIsProcessing(true);
@@ -33824,7 +34129,7 @@ function OnboardingWalkthrough({
33824
34129
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
33825
34130
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
33826
34131
  const actionInProgressRef = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
33827
- React112.default.useEffect(() => {
34132
+ React113.default.useEffect(() => {
33828
34133
  if (isLoadingCompletion) {
33829
34134
  hasAutoMarkedRef.current = false;
33830
34135
  return;
@@ -33882,12 +34187,12 @@ function OnboardingWalkthrough({
33882
34187
  }
33883
34188
  }, [state.completedSteps, markComplete]);
33884
34189
  const handleStepSkip = (step) => {
33885
- _optionalChain([step, 'access', _647 => _647.onSkip, 'optionalCall', _648 => _648()]);
34190
+ _optionalChain([step, 'access', _650 => _650.onSkip, 'optionalCall', _651 => _651()]);
33886
34191
  markSkipped(step.id);
33887
34192
  };
33888
34193
  const handleDismiss = () => {
33889
34194
  dismissOnboarding();
33890
- _optionalChain([onDismiss, 'optionalCall', _649 => _649()]);
34195
+ _optionalChain([onDismiss, 'optionalCall', _652 => _652()]);
33891
34196
  };
33892
34197
  if (state.dismissed) {
33893
34198
  return null;
@@ -33955,7 +34260,7 @@ var LOG_SEVERITY_LABELS = {
33955
34260
 
33956
34261
  // src/components/log-severity-dot.tsx
33957
34262
 
33958
- var LogSeverityDot = React108.forwardRef(({ severity, size = "md", className }, ref) => {
34263
+ var LogSeverityDot = React109.forwardRef(({ severity, size = "md", className }, ref) => {
33959
34264
  const sizeClasses2 = {
33960
34265
  sm: "w-4 h-4",
33961
34266
  md: "w-6 h-6",
@@ -34017,7 +34322,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
34017
34322
  onKeyDown: (e) => {
34018
34323
  if (e.key === "Enter" || e.key === " ") {
34019
34324
  e.preventDefault();
34020
- _optionalChain([onClick, 'optionalCall', _650 => _650()]);
34325
+ _optionalChain([onClick, 'optionalCall', _653 => _653()]);
34021
34326
  }
34022
34327
  },
34023
34328
  children: [
@@ -34045,7 +34350,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
34045
34350
  )
34046
34351
  ] });
34047
34352
  };
34048
- var LogsList = React109.forwardRef(({
34353
+ var LogsList = React110.forwardRef(({
34049
34354
  logs,
34050
34355
  maxHeight = "400px",
34051
34356
  showConnector = true,
@@ -34054,7 +34359,7 @@ var LogsList = React109.forwardRef(({
34054
34359
  emptyMessage = "No logs to display",
34055
34360
  className
34056
34361
  }, ref) => {
34057
- const containerRef = React109.useRef(null);
34362
+ const containerRef = React110.useRef(null);
34058
34363
  const isFullHeight = maxHeight === "100%";
34059
34364
  const getContainerStyles = () => {
34060
34365
  if (isFullHeight) return void 0;
@@ -34118,7 +34423,7 @@ var LogsList = React109.forwardRef(({
34118
34423
  log,
34119
34424
  isLast: index === logs.length - 1,
34120
34425
  showConnector,
34121
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _651 => _651(log)])
34426
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _654 => _654(log)])
34122
34427
  },
34123
34428
  log.id
34124
34429
  ))
@@ -34215,11 +34520,11 @@ function ServiceCardRowItem({ row }) {
34215
34520
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
34216
34521
 
34217
34522
 
34218
- var Slider = React111.forwardRef(
34523
+ var Slider = React112.forwardRef(
34219
34524
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
34220
34525
  const handleChange = (e) => {
34221
34526
  const newValue = [Number(e.target.value)];
34222
- _optionalChain([onValueChange, 'optionalCall', _652 => _652(newValue)]);
34527
+ _optionalChain([onValueChange, 'optionalCall', _655 => _655(newValue)]);
34223
34528
  };
34224
34529
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34225
34530
  "input",
@@ -34650,7 +34955,7 @@ function CursorPaginationSimple({
34650
34955
  {
34651
34956
  variant: "transparent",
34652
34957
  size: "icon",
34653
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _653 => _653("")]),
34958
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _656 => _656("")]),
34654
34959
  disabled: !hasPreviousPage || loading,
34655
34960
  className: "h-8 w-8",
34656
34961
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -34662,7 +34967,7 @@ function CursorPaginationSimple({
34662
34967
  {
34663
34968
  variant: "transparent",
34664
34969
  size: "icon",
34665
- onClick: () => _optionalChain([onNext, 'optionalCall', _654 => _654("")]),
34970
+ onClick: () => _optionalChain([onNext, 'optionalCall', _657 => _657("")]),
34666
34971
  disabled: !hasNextPage || loading,
34667
34972
  className: "h-8 w-8",
34668
34973
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -34682,8 +34987,8 @@ function TableEmptyState({ message: message2, icon, action, className }) {
34682
34987
  icon: _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}))),
34683
34988
  title: _nullishCoalesce(message2, () => ( "No results found")),
34684
34989
  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]),
34990
+ buttonLabel: _optionalChain([action, 'optionalAccess', _658 => _658.label]),
34991
+ onButtonClick: _optionalChain([action, 'optionalAccess', _659 => _659.onClick]),
34687
34992
  className: _chunkFIG2RKZFcjs.cn.call(void 0, "py-[var(--spacing-system-xxl)]", className)
34688
34993
  }
34689
34994
  );
@@ -34704,7 +35009,7 @@ function TableColumnFilterDropdown({
34704
35009
  placement = "bottom-start",
34705
35010
  dropdownClassName = "min-w-[240px]"
34706
35011
  }) {
34707
- const activeCount = _optionalChain([filters, 'optionalAccess', _657 => _657[columnKey], 'optionalAccess', _658 => _658.length]) || 0;
35012
+ const activeCount = _optionalChain([filters, 'optionalAccess', _660 => _660[columnKey], 'optionalAccess', _661 => _661.length]) || 0;
34708
35013
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34709
35014
  FiltersDropdown,
34710
35015
  {
@@ -34747,7 +35052,7 @@ function TableColumnFilterDropdown({
34747
35052
  delete newFilters[columnKey];
34748
35053
  onFilterChange(newFilters);
34749
35054
  },
34750
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _659 => _659[columnKey]]) || [] },
35055
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _662 => _662[columnKey]]) || [] },
34751
35056
  placement,
34752
35057
  dropdownClassName
34753
35058
  }
@@ -35044,7 +35349,7 @@ function TableRow({
35044
35349
  const keys = column.key.split(".");
35045
35350
  let value = item;
35046
35351
  for (const key of keys) {
35047
- value = _optionalChain([value, 'optionalAccess', _660 => _660[key]]);
35352
+ value = _optionalChain([value, 'optionalAccess', _663 => _663[key]]);
35048
35353
  }
35049
35354
  if (value === null || value === void 0) {
35050
35355
  return "-";
@@ -35114,7 +35419,7 @@ function TableRow({
35114
35419
  // src/components/ui/table/table.tsx
35115
35420
 
35116
35421
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
35117
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _661 => _661.length])) || Boolean(renderRowActions);
35422
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _664 => _664.length])) || Boolean(renderRowActions);
35118
35423
  const result = [...columns];
35119
35424
  if (hasActions) {
35120
35425
  const actionsColumn = {
@@ -35208,7 +35513,7 @@ function Table({
35208
35513
  return rowKey(item);
35209
35514
  }
35210
35515
  const key = item[rowKey];
35211
- return _optionalChain([key, 'optionalAccess', _662 => _662.toString, 'call', _663 => _663()]) || index.toString();
35516
+ return _optionalChain([key, 'optionalAccess', _665 => _665.toString, 'call', _666 => _666()]) || index.toString();
35212
35517
  };
35213
35518
  const getRowClassName = (item, index) => {
35214
35519
  if (typeof rowClassName === "function") {
@@ -35242,23 +35547,23 @@ function Table({
35242
35547
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
35243
35548
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
35244
35549
  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]);
35550
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _667 => _667.onLoadMore]));
35551
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _668 => _668.onLoadMore]);
35247
35552
  _react.useEffect.call(void 0, () => {
35248
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _666 => _666.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35553
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _669 => _669.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
35249
35554
  const sentinel = sentinelRef.current;
35250
35555
  if (!sentinel) return;
35251
35556
  const observer = new IntersectionObserver(
35252
35557
  (entries) => {
35253
- if (_optionalChain([entries, 'access', _667 => _667[0], 'optionalAccess', _668 => _668.isIntersecting])) {
35254
- _optionalChain([onLoadMoreRef, 'access', _669 => _669.current, 'optionalCall', _670 => _670()]);
35558
+ if (_optionalChain([entries, 'access', _670 => _670[0], 'optionalAccess', _671 => _671.isIntersecting])) {
35559
+ _optionalChain([onLoadMoreRef, 'access', _672 => _672.current, 'optionalCall', _673 => _673()]);
35255
35560
  }
35256
35561
  },
35257
35562
  { rootMargin: "200px" }
35258
35563
  );
35259
35564
  observer.observe(sentinel);
35260
35565
  return () => observer.disconnect();
35261
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _671 => _671.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _672 => _672.isFetchingNextPage])]);
35566
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _674 => _674.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _675 => _675.isFetchingNextPage])]);
35262
35567
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
35263
35568
  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
35569
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -35329,7 +35634,7 @@ function Table({
35329
35634
  },
35330
35635
  getRowKey(item, index)
35331
35636
  )),
35332
- _optionalChain([infiniteScroll, 'optionalAccess', _673 => _673.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35637
+ _optionalChain([infiniteScroll, 'optionalAccess', _676 => _676.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35333
35638
  TableCardSkeleton,
35334
35639
  {
35335
35640
  columns,
@@ -35338,7 +35643,7 @@ function Table({
35338
35643
  hasChevron: Boolean(rowHref)
35339
35644
  }
35340
35645
  ),
35341
- _optionalChain([infiniteScroll, 'optionalAccess', _674 => _674.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35646
+ _optionalChain([infiniteScroll, 'optionalAccess', _677 => _677.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
35342
35647
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35343
35648
  "div",
35344
35649
  {
@@ -35696,7 +36001,7 @@ function QueryReportTable({
35696
36001
  );
35697
36002
  const handleExport = () => {
35698
36003
  exportToCSV(data, columns, exportFilename);
35699
- _optionalChain([onExport, 'optionalCall', _675 => _675()]);
36004
+ _optionalChain([onExport, 'optionalCall', _678 => _678()]);
35700
36005
  };
35701
36006
  const tableMinWidth = columns.length * (columnWidth + 16);
35702
36007
  const {
@@ -35869,7 +36174,7 @@ function DataTableColumnFilter({
35869
36174
  align = "left"
35870
36175
  }) {
35871
36176
  const currentValue = column.getFilterValue();
35872
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _676 => _676.length]), () => ( 0));
36177
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _679 => _679.length]), () => ( 0));
35873
36178
  const sections = _react.useMemo.call(void 0,
35874
36179
  () => [
35875
36180
  {
@@ -35949,7 +36254,7 @@ function DataTableHeader({
35949
36254
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
35950
36255
  if (header.isPlaceholder) return false;
35951
36256
  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]));
36257
+ return Boolean(_optionalChain([header, 'access', _680 => _680.column, 'access', _681 => _681.columnDef, 'access', _682 => _682.meta, 'optionalAccess', _683 => _683.filter]));
35953
36258
  });
35954
36259
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35955
36260
  "div",
@@ -35979,20 +36284,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
35979
36284
  if (header.isPlaceholder) return null;
35980
36285
  const column = header.column;
35981
36286
  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;
36287
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _684 => _684.filter]));
36288
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _685 => _685.align]), () => ( "left"));
36289
+ const canSort = _optionalChain([meta, 'optionalAccess', _686 => _686.sortable]) === true;
36290
+ const sortDir = _optionalChain([sort, 'optionalAccess', _687 => _687.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
35986
36291
  if (!isLgUp && !hasFilter) return null;
35987
36292
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35988
36293
  "div",
35989
36294
  {
35990
36295
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
35991
36296
  "flex items-stretch",
35992
- isLgUp && (_optionalChain([meta, 'optionalAccess', _685 => _685.width]) || "flex-1 min-w-0"),
35993
- _optionalChain([meta, 'optionalAccess', _686 => _686.headerClassName]),
36297
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _688 => _688.width]) || "flex-1 min-w-0"),
36298
+ _optionalChain([meta, 'optionalAccess', _689 => _689.headerClassName]),
35994
36299
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
35995
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _687 => _687.hideAt]))
36300
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _690 => _690.hideAt]))
35996
36301
  ),
35997
36302
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
35998
36303
  DataTableColumnFilter,
@@ -36011,7 +36316,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
36011
36316
  isLgUp && alignJustify(align),
36012
36317
  canSort && "group cursor-pointer"
36013
36318
  ),
36014
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _688 => _688(column.id)]) : void 0,
36319
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _691 => _691(column.id)]) : void 0,
36015
36320
  children: [
36016
36321
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
36017
36322
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -36076,7 +36381,7 @@ function DataTableSkeleton({
36076
36381
  }) {
36077
36382
  const table = useDataTableContext();
36078
36383
  const columns = table.getVisibleFlatColumns();
36079
- const firstColumnId = _optionalChain([columns, 'access', _689 => _689[0], 'optionalAccess', _690 => _690.id]);
36384
+ const firstColumnId = _optionalChain([columns, 'access', _692 => _692[0], 'optionalAccess', _693 => _693.id]);
36080
36385
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36081
36386
  "div",
36082
36387
  {
@@ -36100,7 +36405,7 @@ function DataTableSkeleton({
36100
36405
  {
36101
36406
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36102
36407
  "flex flex-col justify-center shrink-0",
36103
- _optionalChain([meta, 'optionalAccess', _691 => _691.width]) || "flex-1"
36408
+ _optionalChain([meta, 'optionalAccess', _694 => _694.width]) || "flex-1"
36104
36409
  ),
36105
36410
  children: [
36106
36411
  /* @__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 +36454,7 @@ function DataTableRowImpl({
36149
36454
  const handleClick = _react.useCallback.call(void 0,
36150
36455
  (e) => {
36151
36456
  const target = e.target;
36152
- if (!_optionalChain([containerRef, 'access', _692 => _692.current, 'optionalAccess', _693 => _693.contains, 'call', _694 => _694(target)])) {
36457
+ if (!_optionalChain([containerRef, 'access', _695 => _695.current, 'optionalAccess', _696 => _696.contains, 'call', _697 => _697(target)])) {
36153
36458
  if (isLinkMode) e.preventDefault();
36154
36459
  return;
36155
36460
  }
@@ -36157,7 +36462,7 @@ function DataTableRowImpl({
36157
36462
  if (isLinkMode) e.preventDefault();
36158
36463
  return;
36159
36464
  }
36160
- _optionalChain([onClick, 'optionalCall', _695 => _695(row.original)]);
36465
+ _optionalChain([onClick, 'optionalCall', _698 => _698(row.original)]);
36161
36466
  },
36162
36467
  [onClick, row.original, isLinkMode]
36163
36468
  );
@@ -36182,10 +36487,10 @@ function DataTableRowImpl({
36182
36487
  {
36183
36488
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36184
36489
  "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]))
36490
+ alignJustify(_optionalChain([meta, 'optionalAccess', _699 => _699.align])),
36491
+ _optionalChain([meta, 'optionalAccess', _700 => _700.width]) || "flex-1 min-w-0",
36492
+ _optionalChain([meta, 'optionalAccess', _701 => _701.cellClassName]),
36493
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _702 => _702.hideAt]))
36189
36494
  ),
36190
36495
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
36191
36496
  },
@@ -36264,7 +36569,7 @@ function DataTableBody({
36264
36569
  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
36570
  rows.map((row, index) => {
36266
36571
  const item = row.original;
36267
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _700 => _700(item)]), () => ( void 0));
36572
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _703 => _703(item)]), () => ( void 0));
36268
36573
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
36269
36574
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36270
36575
  DataTableRow,
@@ -36274,7 +36579,7 @@ function DataTableBody({
36274
36579
  href,
36275
36580
  compact,
36276
36581
  className: cls,
36277
- subRow: _optionalChain([renderSubRow, 'optionalCall', _701 => _701(item)])
36582
+ subRow: _optionalChain([renderSubRow, 'optionalCall', _704 => _704(item)])
36278
36583
  },
36279
36584
  row.id
36280
36585
  );
@@ -36329,7 +36634,7 @@ function DataTableInfiniteFooter({
36329
36634
  if (!sentinel) return;
36330
36635
  const observer = new IntersectionObserver(
36331
36636
  (entries) => {
36332
- if (_optionalChain([entries, 'access', _702 => _702[0], 'optionalAccess', _703 => _703.isIntersecting])) onLoadMoreRef.current();
36637
+ if (_optionalChain([entries, 'access', _705 => _705[0], 'optionalAccess', _706 => _706.isIntersecting])) onLoadMoreRef.current();
36333
36638
  },
36334
36639
  { rootMargin }
36335
36640
  );
@@ -36377,7 +36682,7 @@ function DataTableRowCount({
36377
36682
  const table = useDataTableContext();
36378
36683
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
36379
36684
  if (hideWhenEmpty && count === 0) return null;
36380
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _704 => _704(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36685
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _707 => _707(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
36381
36686
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36382
36687
  "span",
36383
36688
  {
@@ -36507,12 +36812,12 @@ function SearchInput({
36507
36812
  limitTags = "auto",
36508
36813
  getLimitTagsText = (more) => `+${more}`
36509
36814
  }) {
36510
- const [internalValue, setInternalValue] = React114.useState(defaultValue);
36815
+ const [internalValue, setInternalValue] = React115.useState(defaultValue);
36511
36816
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
36512
36817
  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);
36818
+ const [isOpen, setIsOpen] = React115.useState(false);
36819
+ const [highlightedIndex, setHighlightedIndex] = React115.useState(-1);
36820
+ const containerRef = React115.useRef(null);
36516
36821
  const currentPlaceholder = filterChips.length > 0 ? "Add filter..." : placeholder;
36517
36822
  const {
36518
36823
  visibleCount: rawVisibleCount,
@@ -36529,14 +36834,14 @@ function SearchInput({
36529
36834
  placeholder: filterChips.length > 0 ? "" : placeholder
36530
36835
  });
36531
36836
  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(() => {
36837
+ const hiddenTagsRef = React115.useRef(null);
36838
+ const hiddenTagsPopupRef = React115.useRef(null);
36839
+ const [showHiddenTags, setShowHiddenTags] = React115.useState(false);
36840
+ React115.useEffect(() => {
36536
36841
  if (!showHiddenTags) return;
36537
36842
  const handleClick = (e) => {
36538
36843
  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)])) {
36844
+ 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
36845
  setShowHiddenTags(false);
36541
36846
  }
36542
36847
  };
@@ -36546,7 +36851,7 @@ function SearchInput({
36546
36851
  const hiddenCount = filterChips.length - visibleCount;
36547
36852
  const visibleChips = filterChips.slice(0, visibleCount);
36548
36853
  const hiddenChips = filterChips.slice(visibleCount);
36549
- const { flatResults, groups } = React114.useMemo(() => {
36854
+ const { flatResults, groups } = React115.useMemo(() => {
36550
36855
  if (!groupBy) return { flatResults: results, groups: null };
36551
36856
  const grouped = /* @__PURE__ */ new Map();
36552
36857
  for (const r of results) {
@@ -36563,7 +36868,7 @@ function SearchInput({
36563
36868
  const meetsMinQuery = debouncedValue.length >= minQueryLength;
36564
36869
  const autoShow = meetsMinQuery;
36565
36870
  const dropdownVisible = _nullishCoalesce(showDropdownProp, () => ( (isOpen && autoShow)));
36566
- React114.useEffect(() => {
36871
+ React115.useEffect(() => {
36567
36872
  setHighlightedIndex(-1);
36568
36873
  }, [flatResults.length]);
36569
36874
  const handleChange = (e) => {
@@ -36584,10 +36889,10 @@ function SearchInput({
36584
36889
  } else {
36585
36890
  setInternalValue("");
36586
36891
  }
36587
- _optionalChain([inputRef, 'access', _711 => _711.current, 'optionalAccess', _712 => _712.focus, 'call', _713 => _713()]);
36892
+ _optionalChain([inputRef, 'access', _714 => _714.current, 'optionalAccess', _715 => _715.focus, 'call', _716 => _716()]);
36588
36893
  };
36589
36894
  const handleResultClick = (result, e) => {
36590
- _optionalChain([onResultSelect, 'optionalCall', _714 => _714(
36895
+ _optionalChain([onResultSelect, 'optionalCall', _717 => _717(
36591
36896
  result,
36592
36897
  e ? {
36593
36898
  metaKey: e.metaKey,
@@ -36619,7 +36924,7 @@ function SearchInput({
36619
36924
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
36620
36925
  handleResultClick(flatResults[highlightedIndex]);
36621
36926
  } else {
36622
- _optionalChain([onSubmit, 'optionalCall', _715 => _715(currentValue)]);
36927
+ _optionalChain([onSubmit, 'optionalCall', _718 => _718(currentValue)]);
36623
36928
  }
36624
36929
  break;
36625
36930
  case "Escape":
@@ -36687,8 +36992,8 @@ function SearchInput({
36687
36992
  };
36688
36993
  const hasValue = currentValue.length > 0;
36689
36994
  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,
36995
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive5.Root, { open: dropdownVisible, onOpenChange: handleOpenChange, modal: false, children: [
36996
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive5.Anchor, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36692
36997
  "div",
36693
36998
  {
36694
36999
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
@@ -36697,7 +37002,7 @@ function SearchInput({
36697
37002
  dropdownVisible && "!border-ods-accent"
36698
37003
  ),
36699
37004
  onClick: () => {
36700
- _optionalChain([inputRef, 'access', _716 => _716.current, 'optionalAccess', _717 => _717.focus, 'call', _718 => _718()]);
37005
+ _optionalChain([inputRef, 'access', _719 => _719.current, 'optionalAccess', _720 => _720.focus, 'call', _721 => _721()]);
36701
37006
  setIsOpen(true);
36702
37007
  },
36703
37008
  children: [
@@ -36766,7 +37071,7 @@ function SearchInput({
36766
37071
  }
36767
37072
  ) }),
36768
37073
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
36769
- PopoverPrimitive4.Content,
37074
+ PopoverPrimitive5.Content,
36770
37075
  {
36771
37076
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
36772
37077
  "z-50 w-[var(--radix-popover-trigger-width)] mt-1",
@@ -36781,10 +37086,10 @@ function SearchInput({
36781
37086
  align: "start",
36782
37087
  onOpenAutoFocus: (e) => {
36783
37088
  e.preventDefault();
36784
- _optionalChain([inputRef, 'access', _719 => _719.current, 'optionalAccess', _720 => _720.focus, 'call', _721 => _721()]);
37089
+ _optionalChain([inputRef, 'access', _722 => _722.current, 'optionalAccess', _723 => _723.focus, 'call', _724 => _724()]);
36785
37090
  },
36786
37091
  onInteractOutside: (e) => {
36787
- if (_optionalChain([containerRef, 'access', _722 => _722.current, 'optionalAccess', _723 => _723.contains, 'call', _724 => _724(e.target)])) {
37092
+ if (_optionalChain([containerRef, 'access', _725 => _725.current, 'optionalAccess', _726 => _726.contains, 'call', _727 => _727(e.target)])) {
36788
37093
  e.preventDefault();
36789
37094
  }
36790
37095
  },
@@ -36801,10 +37106,10 @@ function SearchInput({
36801
37106
  ref: hiddenTagsPopupRef,
36802
37107
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
36803
37108
  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
37109
+ 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
37110
  },
36806
37111
  onRemove: (value2) => {
36807
- _optionalChain([onFilterRemove, 'optionalCall', _729 => _729(value2)]);
37112
+ _optionalChain([onFilterRemove, 'optionalCall', _732 => _732(value2)]);
36808
37113
  if (hiddenCount <= 1) setShowHiddenTags(false);
36809
37114
  }
36810
37115
  }
@@ -36855,7 +37160,7 @@ function FilterListItem({
36855
37160
  }) {
36856
37161
  const handleToggle = () => {
36857
37162
  if (disabled) return;
36858
- _optionalChain([onToggle, 'optionalCall', _730 => _730(!selected)]);
37163
+ _optionalChain([onToggle, 'optionalCall', _733 => _733(!selected)]);
36859
37164
  };
36860
37165
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36861
37166
  "div",
@@ -36891,7 +37196,7 @@ function FilterListItem({
36891
37196
  "flex items-start gap-[var(--spacing-system-xxs)] text-h6",
36892
37197
  selected ? "text-ods-accent" : "text-ods-text-secondary"
36893
37198
  ),
36894
- children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React115.Fragment, { children: [
37199
+ children: meta.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React116.Fragment, { children: [
36895
37200
  index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", children: "\u2022" }),
36896
37201
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: item })
36897
37202
  ] }, index))
@@ -36902,7 +37207,7 @@ function FilterListItem({
36902
37207
  CheckboxPrimitive4.Root,
36903
37208
  {
36904
37209
  checked: selected,
36905
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _731 => _731(c === true)]),
37210
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _734 => _734(c === true)]),
36906
37211
  onClick: (e) => e.stopPropagation(),
36907
37212
  disabled,
36908
37213
  "aria-label": title,
@@ -37001,7 +37306,7 @@ function TagSearchInput({
37001
37306
  if (!showHiddenTags) return;
37002
37307
  const handleClick = (e) => {
37003
37308
  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)])) {
37309
+ 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
37310
  setShowHiddenTags(false);
37006
37311
  }
37007
37312
  };
@@ -37017,13 +37322,13 @@ function TagSearchInput({
37017
37322
  e.preventDefault();
37018
37323
  onSubmit(searchValue);
37019
37324
  }
37020
- _optionalChain([onKeyDown, 'optionalCall', _738 => _738(e)]);
37325
+ _optionalChain([onKeyDown, 'optionalCall', _741 => _741(e)]);
37021
37326
  };
37022
37327
  const handleClearAll = (e) => {
37023
37328
  e.stopPropagation();
37024
37329
  e.preventDefault();
37025
- _optionalChain([onClearAll, 'optionalCall', _739 => _739()]);
37026
- _optionalChain([inputRef, 'access', _740 => _740.current, 'optionalAccess', _741 => _741.focus, 'call', _742 => _742()]);
37330
+ _optionalChain([onClearAll, 'optionalCall', _742 => _742()]);
37331
+ _optionalChain([inputRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.focus, 'call', _745 => _745()]);
37027
37332
  };
37028
37333
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
37029
37334
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -37040,7 +37345,7 @@ function TagSearchInput({
37040
37345
  className
37041
37346
  ),
37042
37347
  onClick: () => {
37043
- if (!disabled) _optionalChain([inputRef, 'access', _743 => _743.current, 'optionalAccess', _744 => _744.focus, 'call', _745 => _745()]);
37348
+ if (!disabled) _optionalChain([inputRef, 'access', _746 => _746.current, 'optionalAccess', _747 => _747.focus, 'call', _748 => _748()]);
37044
37349
  },
37045
37350
  children: [
37046
37351
  /* @__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 +37417,7 @@ function TagSearchInput({
37112
37417
  items: hiddenTags,
37113
37418
  disabled,
37114
37419
  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
37420
+ 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
37421
  },
37117
37422
  onRemove: (value) => {
37118
37423
  onTagRemove(value);
@@ -37213,7 +37518,7 @@ function MarkdownEditor({
37213
37518
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
37214
37519
  _react.useEffect.call(void 0, () => {
37215
37520
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
37216
- if (_optionalChain([mod, 'access', _750 => _750.commands, 'optionalAccess', _751 => _751.getExtraCommands])) {
37521
+ if (_optionalChain([mod, 'access', _753 => _753.commands, 'optionalAccess', _754 => _754.getExtraCommands])) {
37217
37522
  setDefaultExtraCommands(mod.commands.getExtraCommands());
37218
37523
  }
37219
37524
  });
@@ -37247,7 +37552,7 @@ function MarkdownEditor({
37247
37552
  const isImage = file.type.startsWith("image/");
37248
37553
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
37249
37554
  insertTextAtCursor(markdown);
37250
- _optionalChain([onFileUploaded, 'optionalCall', _752 => _752(url, file.name)]);
37555
+ _optionalChain([onFileUploaded, 'optionalCall', _755 => _755(url, file.name)]);
37251
37556
  } catch (error) {
37252
37557
  console.error("File upload failed:", error);
37253
37558
  setUploadProgress("Upload failed. Please try again.");
@@ -37260,7 +37565,7 @@ function MarkdownEditor({
37260
37565
  );
37261
37566
  const handleFileInputChange = _react.useCallback.call(void 0,
37262
37567
  (e) => {
37263
- const file = _optionalChain([e, 'access', _753 => _753.target, 'access', _754 => _754.files, 'optionalAccess', _755 => _755[0]]);
37568
+ const file = _optionalChain([e, 'access', _756 => _756.target, 'access', _757 => _757.files, 'optionalAccess', _758 => _758[0]]);
37264
37569
  if (file) {
37265
37570
  handleFileUpload(file);
37266
37571
  e.target.value = "";
@@ -37271,7 +37576,7 @@ function MarkdownEditor({
37271
37576
  const handlePaste = _react.useCallback.call(void 0,
37272
37577
  (e) => {
37273
37578
  if (!onUploadFile) return;
37274
- const items = _optionalChain([e, 'access', _756 => _756.clipboardData, 'optionalAccess', _757 => _757.items]);
37579
+ const items = _optionalChain([e, 'access', _759 => _759.clipboardData, 'optionalAccess', _760 => _760.items]);
37275
37580
  if (!items) return;
37276
37581
  for (const item of items) {
37277
37582
  if (item.type.startsWith("image/")) {
@@ -37296,7 +37601,7 @@ function MarkdownEditor({
37296
37601
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
37297
37602
  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
37603
  execute: () => {
37299
- _optionalChain([fileInputRef, 'access', _758 => _758.current, 'optionalAccess', _759 => _759.click, 'call', _760 => _760()]);
37604
+ _optionalChain([fileInputRef, 'access', _761 => _761.current, 'optionalAccess', _762 => _762.click, 'call', _763 => _763()]);
37300
37605
  }
37301
37606
  } : null;
37302
37607
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -37308,7 +37613,7 @@ function MarkdownEditor({
37308
37613
  const EDGE_ZONE = 60;
37309
37614
  const MAX_SCROLL_SPEED = 15;
37310
37615
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
37311
- let node = _optionalChain([el, 'optionalAccess', _761 => _761.parentElement]);
37616
+ let node = _optionalChain([el, 'optionalAccess', _764 => _764.parentElement]);
37312
37617
  while (node && node !== document.documentElement) {
37313
37618
  const { overflowY } = window.getComputedStyle(node);
37314
37619
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -37451,7 +37756,7 @@ function matchesAccept(file, accept) {
37451
37756
  });
37452
37757
  }
37453
37758
  function dragHasFiles(e) {
37454
- const types = _optionalChain([e, 'access', _762 => _762.dataTransfer, 'optionalAccess', _763 => _763.types]);
37759
+ const types = _optionalChain([e, 'access', _765 => _765.dataTransfer, 'optionalAccess', _766 => _766.types]);
37455
37760
  if (!types) return false;
37456
37761
  for (let i = 0; i < types.length; i++) {
37457
37762
  if (types[i] === "Files") return true;
@@ -37477,11 +37782,11 @@ function FileUpload({
37477
37782
  maxListHeight,
37478
37783
  acceptWindowDrops = false
37479
37784
  }) {
37480
- const [dragActive, setDragActive] = React117.useState(false);
37481
- const [validationError, setValidationError] = React117.useState(null);
37482
- const fileInputRef = React117.useRef(null);
37785
+ const [dragActive, setDragActive] = React118.useState(false);
37786
+ const [validationError, setValidationError] = React118.useState(null);
37787
+ const fileInputRef = React118.useRef(null);
37483
37788
  const isManaged = managedFiles !== void 0;
37484
- const files = React117.useMemo(() => {
37789
+ const files = React118.useMemo(() => {
37485
37790
  if (!value) return [];
37486
37791
  return Array.isArray(value) ? value : [value];
37487
37792
  }, [value]);
@@ -37529,7 +37834,7 @@ function FileUpload({
37529
37834
  fileInputRef.current.value = "";
37530
37835
  }
37531
37836
  };
37532
- const handleFilesRef = React117.useRef(handleFiles);
37837
+ const handleFilesRef = React118.useRef(handleFiles);
37533
37838
  handleFilesRef.current = handleFiles;
37534
37839
  const handleDrag = (e) => {
37535
37840
  e.preventDefault();
@@ -37546,11 +37851,11 @@ function FileUpload({
37546
37851
  e.stopPropagation();
37547
37852
  setDragActive(false);
37548
37853
  if (disabled) return;
37549
- if (_optionalChain([e, 'access', _764 => _764.dataTransfer, 'access', _765 => _765.files, 'optionalAccess', _766 => _766.length])) {
37854
+ if (_optionalChain([e, 'access', _767 => _767.dataTransfer, 'access', _768 => _768.files, 'optionalAccess', _769 => _769.length])) {
37550
37855
  handleFiles(e.dataTransfer.files);
37551
37856
  }
37552
37857
  };
37553
- React117.useEffect(() => {
37858
+ React118.useEffect(() => {
37554
37859
  if (!acceptWindowDrops || disabled) return;
37555
37860
  let dragCounter = 0;
37556
37861
  const onWindowDragEnter = (e) => {
@@ -37574,7 +37879,7 @@ function FileUpload({
37574
37879
  e.preventDefault();
37575
37880
  dragCounter = 0;
37576
37881
  setDragActive(false);
37577
- if (_optionalChain([e, 'access', _767 => _767.dataTransfer, 'optionalAccess', _768 => _768.files, 'optionalAccess', _769 => _769.length])) {
37882
+ if (_optionalChain([e, 'access', _770 => _770.dataTransfer, 'optionalAccess', _771 => _771.files, 'optionalAccess', _772 => _772.length])) {
37578
37883
  handleFilesRef.current(e.dataTransfer.files);
37579
37884
  }
37580
37885
  };
@@ -37596,7 +37901,7 @@ function FileUpload({
37596
37901
  };
37597
37902
  }, [acceptWindowDrops, disabled]);
37598
37903
  const handleFileSelect = (e) => {
37599
- if (_optionalChain([e, 'access', _770 => _770.target, 'access', _771 => _771.files, 'optionalAccess', _772 => _772.length])) {
37904
+ if (_optionalChain([e, 'access', _773 => _773.target, 'access', _774 => _774.files, 'optionalAccess', _775 => _775.length])) {
37600
37905
  handleFiles(e.target.files);
37601
37906
  }
37602
37907
  };
@@ -37613,7 +37918,7 @@ function FileUpload({
37613
37918
  };
37614
37919
  const openDialog = async () => {
37615
37920
  if (disabled) return;
37616
- _optionalChain([fileInputRef, 'access', _773 => _773.current, 'optionalAccess', _774 => _774.click, 'call', _775 => _775()]);
37921
+ _optionalChain([fileInputRef, 'access', _776 => _776.current, 'optionalAccess', _777 => _777.click, 'call', _778 => _778()]);
37617
37922
  };
37618
37923
  const displayError = error || validationError || void 0;
37619
37924
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -37691,7 +37996,7 @@ function FileUpload({
37691
37996
  "button",
37692
37997
  {
37693
37998
  type: "button",
37694
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _776 => _776(entry.id)]),
37999
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _779 => _779(entry.id)]),
37695
38000
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
37696
38001
  "aria-label": `Remove ${entry.fileName}`,
37697
38002
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -37792,10 +38097,10 @@ function ImageUploader({
37792
38097
  alt = "Uploaded image",
37793
38098
  className
37794
38099
  }) {
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);
38100
+ const inputRef = React119.useRef(null);
38101
+ const [dragActive, setDragActive] = React119.useState(false);
38102
+ const [pressed, setPressed] = React119.useState(false);
38103
+ const [validationError, setValidationError] = React119.useState(null);
37799
38104
  const interactive = !disabled && !loading;
37800
38105
  const hasImage = Boolean(value);
37801
38106
  const displayError = error || validationError || void 0;
@@ -37814,7 +38119,7 @@ function ImageUploader({
37814
38119
  onChange(file);
37815
38120
  };
37816
38121
  const handleFileSelect = (e) => {
37817
- validateAndEmit(_optionalChain([e, 'access', _777 => _777.target, 'access', _778 => _778.files, 'optionalAccess', _779 => _779[0]]));
38122
+ validateAndEmit(_optionalChain([e, 'access', _780 => _780.target, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]));
37818
38123
  if (inputRef.current) inputRef.current.value = "";
37819
38124
  };
37820
38125
  const handleDrag = (e) => {
@@ -37829,11 +38134,11 @@ function ImageUploader({
37829
38134
  e.stopPropagation();
37830
38135
  setDragActive(false);
37831
38136
  if (!interactive) return;
37832
- validateAndEmit(_optionalChain([e, 'access', _780 => _780.dataTransfer, 'access', _781 => _781.files, 'optionalAccess', _782 => _782[0]]));
38137
+ validateAndEmit(_optionalChain([e, 'access', _783 => _783.dataTransfer, 'access', _784 => _784.files, 'optionalAccess', _785 => _785[0]]));
37833
38138
  };
37834
38139
  const openDialog = () => {
37835
38140
  if (!interactive) return;
37836
- _optionalChain([inputRef, 'access', _783 => _783.current, 'optionalAccess', _784 => _784.click, 'call', _785 => _785()]);
38141
+ _optionalChain([inputRef, 'access', _786 => _786.current, 'optionalAccess', _787 => _787.click, 'call', _788 => _788()]);
37837
38142
  };
37838
38143
  const handleRootKeyDown = (e) => {
37839
38144
  if (hasImage || !interactive) return;
@@ -37968,10 +38273,10 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
37968
38273
 
37969
38274
 
37970
38275
 
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,
38276
+ var Popover2 = PopoverPrimitive6.Root;
38277
+ var PopoverTrigger = PopoverPrimitive6.Trigger;
38278
+ 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,
38279
+ PopoverPrimitive6.Content,
37975
38280
  {
37976
38281
  ref,
37977
38282
  align,
@@ -37983,7 +38288,7 @@ var PopoverContent = React119.forwardRef(({ className, align = "center", sideOff
37983
38288
  ...props
37984
38289
  }
37985
38290
  ) }));
37986
- PopoverContent.displayName = PopoverPrimitive5.Content.displayName;
38291
+ PopoverContent.displayName = PopoverPrimitive6.Content.displayName;
37987
38292
 
37988
38293
  // src/components/ui/color-preset-select.tsx
37989
38294
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
@@ -38023,8 +38328,8 @@ function ColorPresetSelect({
38023
38328
  }) {
38024
38329
  const selectedPreset = presets.find((p) => p.key === presetKey);
38025
38330
  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));
38331
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _789 => _789.label]), () => ( "Custom"));
38332
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _790 => _790.color]), () => ( value));
38028
38333
  const groups = [
38029
38334
  {
38030
38335
  items: [
@@ -38067,8 +38372,8 @@ var FORMATS = ["HEX", "RGB", "HSL"];
38067
38372
  var channelInputClass = "flex-1 min-w-0 [&_input]:text-center [&_input]:tabular-nums";
38068
38373
  var hexInputClass = "flex-1 min-w-0 [&_input]:uppercase";
38069
38374
  function HexInputs({ value, onChange }) {
38070
- const [draft, setDraft] = React120.useState(value);
38071
- React120.useEffect(() => setDraft(value), [value]);
38375
+ const [draft, setDraft] = React121.useState(value);
38376
+ React121.useEffect(() => setDraft(value), [value]);
38072
38377
  const commit = () => {
38073
38378
  const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
38074
38379
  if (HEX_PATTERN.test(candidate)) onChange(candidate);
@@ -38100,8 +38405,8 @@ function ChannelInput({
38100
38405
  ariaLabel,
38101
38406
  onCommit
38102
38407
  }) {
38103
- const [draft, setDraft] = React120.useState(String(value));
38104
- React120.useEffect(() => setDraft(String(value)), [value]);
38408
+ const [draft, setDraft] = React121.useState(String(value));
38409
+ React121.useEffect(() => setDraft(String(value)), [value]);
38105
38410
  const commit = () => {
38106
38411
  const parsed = Number.parseInt(draft, 10);
38107
38412
  if (!Number.isFinite(parsed)) {
@@ -38161,8 +38466,8 @@ function HslInputs({ value, onChange }) {
38161
38466
  ] });
38162
38467
  }
38163
38468
  function ColorPickerInput({ value, onChange, disabled, className }) {
38164
- const [open, setOpen] = React120.useState(false);
38165
- const [format2, setFormat] = React120.useState("HEX");
38469
+ const [open, setOpen] = React121.useState(false);
38470
+ const [format2, setFormat] = React121.useState("HEX");
38166
38471
  const formatGroups = [
38167
38472
  {
38168
38473
  items: FORMATS.map((f) => ({
@@ -38227,9 +38532,9 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
38227
38532
 
38228
38533
  var dismissOpenTooltip = null;
38229
38534
  function WithLeftTooltip({ content, children }) {
38230
- const [open, setOpen] = React121.useState(false);
38231
- const isTouchRef = React121.useRef(false);
38232
- const close = React121.useCallback(() => setOpen(false), []);
38535
+ const [open, setOpen] = React122.useState(false);
38536
+ const isTouchRef = React122.useRef(false);
38537
+ const close = React122.useCallback(() => setOpen(false), []);
38233
38538
  if (!content) return children;
38234
38539
  const toggleFromTouch = () => {
38235
38540
  setOpen((prev) => {
@@ -38314,7 +38619,7 @@ function TicketStatusConfigRow({
38314
38619
  _chunkQJGRP2YEcjs.Input,
38315
38620
  {
38316
38621
  value: name,
38317
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _788 => _788(e.target.value)]),
38622
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _791 => _791(e.target.value)]),
38318
38623
  disabled: isSystem,
38319
38624
  readOnly: isSystem,
38320
38625
  "aria-label": "Status name",
@@ -38361,248 +38666,6 @@ function TicketStatusConfigRow({
38361
38666
  );
38362
38667
  }
38363
38668
 
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
38669
  // src/components/ui/ticket-info-section.tsx
38607
38670
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
38608
38671
 
@@ -38619,7 +38682,6 @@ function TicketDetailSection({ label, children, className }) {
38619
38682
  // src/components/ui/ticket-attachments-list.tsx
38620
38683
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
38621
38684
 
38622
-
38623
38685
  function TicketAttachmentsList({ attachments, className, size = "default" }) {
38624
38686
  if (attachments.length === 0) return null;
38625
38687
  const compact = size === "compact";
@@ -38647,7 +38709,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
38647
38709
  "shrink-0 flex items-center justify-center rounded-[6px] bg-ods-card border border-ods-border",
38648
38710
  compact ? "size-8" : "size-10"
38649
38711
  ),
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") })
38712
+ 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
38713
  }
38652
38714
  ),
38653
38715
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 overflow-hidden", children: [
@@ -38661,6 +38723,16 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
38661
38723
  ),
38662
38724
  attachment.fileSize && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: attachment.fileSize })
38663
38725
  ] }),
38726
+ attachment.onDelete && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38727
+ "button",
38728
+ {
38729
+ type: "button",
38730
+ onClick: attachment.onDelete,
38731
+ className: "shrink-0 text-ods-text-secondary hover:text-ods-error transition-colors",
38732
+ "aria-label": `Delete ${attachment.fileName}`,
38733
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.TrashIcon, { className: compact ? "size-4" : "size-5" })
38734
+ }
38735
+ ),
38664
38736
  attachment.onDownload && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
38665
38737
  "button",
38666
38738
  {
@@ -38668,7 +38740,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
38668
38740
  onClick: attachment.onDownload,
38669
38741
  className: "shrink-0 text-ods-text-secondary hover:text-ods-text-primary transition-colors",
38670
38742
  "aria-label": `Download ${attachment.fileName}`,
38671
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Download, { className: compact ? "size-4" : "size-6" })
38743
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.Download02Icon, { className: compact ? "size-4" : "size-6" })
38672
38744
  }
38673
38745
  )
38674
38746
  ]
@@ -39615,7 +39687,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
39615
39687
  reviewState ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ReviewStateBadge, { state: reviewState }) : null,
39616
39688
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_TITLE, children: primaryText })
39617
39689
  ] }),
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: [
39690
+ /* @__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
39691
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
39620
39692
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
39621
39693
  ] }, i)) }) }),
@@ -39707,7 +39779,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
39707
39779
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
39708
39780
  /* @__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
39781
  /* @__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: [
39782
+ /* @__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
39783
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
39712
39784
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
39713
39785
  ] }, i)) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_SUMMARY, children: COMPACT_CARD_ROW_FILLER }) }) })
@@ -39819,7 +39891,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
39819
39891
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: item.customerEmail })
39820
39892
  ] }) : null,
39821
39893
  /* @__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: [
39894
+ 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
39895
  i > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary/40 shrink-0", children: "\xB7" }) : null,
39824
39896
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate", children: part })
39825
39897
  ] }, i)) }) }) : null
@@ -43002,7 +43074,7 @@ function ChatCardLoader({
43002
43074
  extras
43003
43075
  }) {
43004
43076
  const runtime = _chunkN2DVKXN4cjs.useRequiredChatRuntime.call(void 0, );
43005
- const resolvedChatRef = React112.default.useMemo(() => {
43077
+ const resolvedChatRef = React113.default.useMemo(() => {
43006
43078
  const cta = resolveSourceRowCTA(
43007
43079
  {
43008
43080
  sourceRepo: chatRef.sourceRepo,
@@ -49714,5 +49786,6 @@ function EmbeddableChatInner({
49714
49786
 
49715
49787
 
49716
49788
 
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
49789
+
49790
+ 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;
49791
+ //# sourceMappingURL=chunk-JCRU2L2D.cjs.map