@flamingo-stack/openframe-frontend-core 0.0.579 → 0.0.580-1958.5358.1

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 (176) hide show
  1. package/dist/chat-protocol/decode.d.ts.map +1 -1
  2. package/dist/chat-protocol/events.d.ts +1 -47
  3. package/dist/chat-protocol/events.d.ts.map +1 -1
  4. package/dist/chat-protocol/index.cjs +0 -51
  5. package/dist/chat-protocol/index.cjs.map +1 -1
  6. package/dist/chat-protocol/index.js +1 -48
  7. package/dist/chat-protocol/index.js.map +1 -1
  8. package/dist/chat-protocol/leading-frames.d.ts +3 -9
  9. package/dist/chat-protocol/leading-frames.d.ts.map +1 -1
  10. package/dist/chat-protocol/nats-decoder.d.ts +0 -41
  11. package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
  12. package/dist/{chunk-OGZAFM6M.cjs → chunk-26NL6WZU.cjs} +5 -5
  13. package/dist/{chunk-OGZAFM6M.cjs.map → chunk-26NL6WZU.cjs.map} +1 -1
  14. package/dist/{chunk-QCP2KV7P.js → chunk-4SYELUXP.js} +3 -3
  15. package/dist/{chunk-4HGRXFQP.cjs → chunk-6PLACYFA.cjs} +3 -3
  16. package/dist/{chunk-4HGRXFQP.cjs.map → chunk-6PLACYFA.cjs.map} +1 -1
  17. package/dist/{chunk-FEVLXRTC.cjs → chunk-7LGVUXWE.cjs} +344 -282
  18. package/dist/chunk-7LGVUXWE.cjs.map +1 -0
  19. package/dist/{chunk-AKPLEWMH.js → chunk-A4BZ2CP4.js} +2 -2
  20. package/dist/{chunk-HHJVIHVR.cjs → chunk-COSV5FC2.cjs} +69 -69
  21. package/dist/{chunk-HHJVIHVR.cjs.map → chunk-COSV5FC2.cjs.map} +1 -1
  22. package/dist/{chunk-4WSKSNXL.js → chunk-CX62MVCV.js} +6 -6
  23. package/dist/{chunk-O2FTVZOD.js → chunk-DZAPMQ6U.js} +3 -3
  24. package/dist/{chunk-YW4WBNYV.cjs → chunk-EXUKW6GT.cjs} +24 -24
  25. package/dist/{chunk-YW4WBNYV.cjs.map → chunk-EXUKW6GT.cjs.map} +1 -1
  26. package/dist/{chunk-PWOYEUIQ.js → chunk-FN4PUTHZ.js} +5 -5
  27. package/dist/{chunk-L2CF2QZW.js → chunk-JDP5BGVO.js} +5 -5
  28. package/dist/{chunk-5Y6TPFW7.js → chunk-JFVT6XRN.js} +5 -5
  29. package/dist/{chunk-BCJQ7CJE.cjs → chunk-JHLZTU7R.cjs} +9 -9
  30. package/dist/{chunk-BCJQ7CJE.cjs.map → chunk-JHLZTU7R.cjs.map} +1 -1
  31. package/dist/{chunk-D44S2QLI.js → chunk-OSIIXSYG.js} +3 -3
  32. package/dist/{chunk-DB3TV4CW.js → chunk-PGWXVNYS.js} +3 -3
  33. package/dist/{chunk-H54EPP3P.cjs → chunk-PP3LCLWI.cjs} +4 -4
  34. package/dist/{chunk-H54EPP3P.cjs.map → chunk-PP3LCLWI.cjs.map} +1 -1
  35. package/dist/{chunk-M5GWCMYE.cjs → chunk-QIDD3LTS.cjs} +32 -32
  36. package/dist/{chunk-M5GWCMYE.cjs.map → chunk-QIDD3LTS.cjs.map} +1 -1
  37. package/dist/{chunk-3AX3ZEY3.js → chunk-QZSNH7XU.js} +1317 -1480
  38. package/dist/chunk-QZSNH7XU.js.map +1 -0
  39. package/dist/{chunk-37XJYOAY.cjs → chunk-RF65N4QA.cjs} +10 -10
  40. package/dist/{chunk-37XJYOAY.cjs.map → chunk-RF65N4QA.cjs.map} +1 -1
  41. package/dist/{chunk-36TJYCF3.cjs → chunk-S5BS2CZA.cjs} +21 -21
  42. package/dist/{chunk-36TJYCF3.cjs.map → chunk-S5BS2CZA.cjs.map} +1 -1
  43. package/dist/{chunk-QGJYWLF4.js → chunk-SN6SL4HR.js} +2 -2
  44. package/dist/{chunk-4FJSN2XW.cjs → chunk-TDM5FQZG.cjs} +10 -10
  45. package/dist/{chunk-4FJSN2XW.cjs.map → chunk-TDM5FQZG.cjs.map} +1 -1
  46. package/dist/{chunk-HGA74X35.js → chunk-TXNAZKWW.js} +3 -3
  47. package/dist/{chunk-IFYQ7DHV.cjs → chunk-UNVW4BVF.cjs} +43 -43
  48. package/dist/{chunk-IFYQ7DHV.cjs.map → chunk-UNVW4BVF.cjs.map} +1 -1
  49. package/dist/{chunk-CP5EYMNL.js → chunk-V5RWTIRS.js} +202 -140
  50. package/dist/{chunk-CP5EYMNL.js.map → chunk-V5RWTIRS.js.map} +1 -1
  51. package/dist/{chunk-RKGOVTXZ.cjs → chunk-VYQNM75R.cjs} +167 -330
  52. package/dist/chunk-VYQNM75R.cjs.map +1 -0
  53. package/dist/{chunk-PMENIZXI.js → chunk-WEUWTEQL.js} +4 -4
  54. package/dist/{chunk-H4BPHGU5.js → chunk-WW435OOF.js} +2 -2
  55. package/dist/{chunk-4LZ7B5H5.cjs → chunk-YB75SLEH.cjs} +3 -3
  56. package/dist/{chunk-4LZ7B5H5.cjs.map → chunk-YB75SLEH.cjs.map} +1 -1
  57. package/dist/{chunk-A6C5HOD7.cjs → chunk-YLYU6DDT.cjs} +15 -15
  58. package/dist/{chunk-A6C5HOD7.cjs.map → chunk-YLYU6DDT.cjs.map} +1 -1
  59. package/dist/{chunk-BW4WDUSI.js → chunk-ZNCYSM6R.js} +2 -2
  60. package/dist/{chunk-NPVDKOGD.cjs → chunk-ZQ2RBAXO.cjs} +22 -22
  61. package/dist/{chunk-NPVDKOGD.cjs.map → chunk-ZQ2RBAXO.cjs.map} +1 -1
  62. package/dist/components/case-studies/index.cjs +9 -9
  63. package/dist/components/case-studies/index.js +3 -3
  64. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  65. package/dist/components/chat/index.cjs +2 -10
  66. package/dist/components/chat/index.cjs.map +1 -1
  67. package/dist/components/chat/index.d.ts +0 -1
  68. package/dist/components/chat/index.d.ts.map +1 -1
  69. package/dist/components/chat/index.js +1 -9
  70. package/dist/components/chat/stream/chat-stream-reducer.d.ts +0 -9
  71. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
  72. package/dist/components/chat/stream/delta-batcher.d.ts +3 -3
  73. package/dist/components/chat/stream/delta-batcher.d.ts.map +1 -1
  74. package/dist/components/chat/stream/message-mutations.d.ts.map +1 -1
  75. package/dist/components/chat/types/component.types.d.ts +0 -6
  76. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  77. package/dist/components/chat/types/message.types.d.ts +2 -30
  78. package/dist/components/chat/types/message.types.d.ts.map +1 -1
  79. package/dist/components/chat/types/network.types.d.ts +1 -3
  80. package/dist/components/chat/types/network.types.d.ts.map +1 -1
  81. package/dist/components/chat/types/processing.types.d.ts +1 -4
  82. package/dist/components/chat/types/processing.types.d.ts.map +1 -1
  83. package/dist/components/chat/utils/approval-display.d.ts +8 -36
  84. package/dist/components/chat/utils/approval-display.d.ts.map +1 -1
  85. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  86. package/dist/components/chat/utils/index.d.ts +1 -1
  87. package/dist/components/chat/utils/index.d.ts.map +1 -1
  88. package/dist/components/chat/utils/message-segment-accumulator.d.ts +4 -16
  89. package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
  90. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  91. package/dist/components/chat/utils/resolve-fetched-card-href.d.ts +1 -1
  92. package/dist/components/contact/index.cjs +4 -4
  93. package/dist/components/contact/index.js +3 -3
  94. package/dist/components/docs/index.cjs +7 -7
  95. package/dist/components/docs/index.js +6 -6
  96. package/dist/components/embeds/index.cjs +4 -4
  97. package/dist/components/embeds/index.js +3 -3
  98. package/dist/components/faq/index.cjs +4 -4
  99. package/dist/components/faq/index.js +3 -3
  100. package/dist/components/features/index.cjs +3 -3
  101. package/dist/components/features/index.js +2 -2
  102. package/dist/components/features/push-button-selector.d.ts +29 -1
  103. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  104. package/dist/components/help-center-pages/index.cjs +23 -23
  105. package/dist/components/help-center-pages/index.js +14 -14
  106. package/dist/components/index.cjs +121 -129
  107. package/dist/components/index.cjs.map +1 -1
  108. package/dist/components/index.js +13 -21
  109. package/dist/components/index.js.map +1 -1
  110. package/dist/components/meeting-scheduler/index.cjs +21 -21
  111. package/dist/components/meeting-scheduler/index.js +2 -2
  112. package/dist/components/navigation/index.cjs +6 -6
  113. package/dist/components/navigation/index.js +5 -5
  114. package/dist/components/onboarding-guides/index.cjs +6 -6
  115. package/dist/components/onboarding-guides/index.js +5 -5
  116. package/dist/components/tickets/index.cjs +7 -7
  117. package/dist/components/tickets/index.js +6 -6
  118. package/dist/components/ui/index.cjs +3 -11
  119. package/dist/components/ui/index.cjs.map +1 -1
  120. package/dist/components/ui/index.js +2 -10
  121. package/dist/index.cjs +7 -15
  122. package/dist/index.cjs.map +1 -1
  123. package/dist/index.js +6 -14
  124. package/dist/index.js.map +1 -1
  125. package/dist/utils/index.cjs.map +1 -1
  126. package/dist/utils/index.js.map +1 -1
  127. package/package.json +1 -1
  128. package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +0 -80
  129. package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +1 -118
  130. package/src/chat-protocol/decode.ts +3 -4
  131. package/src/chat-protocol/events.ts +0 -51
  132. package/src/chat-protocol/leading-frames.ts +3 -9
  133. package/src/chat-protocol/nats-decoder.ts +1 -110
  134. package/src/components/chat/__tests__/chat-pending-turn.test.tsx +0 -19
  135. package/src/components/chat/chat-message-enhanced.tsx +1 -13
  136. package/src/components/chat/index.ts +0 -1
  137. package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +0 -90
  138. package/src/components/chat/stream/chat-dialog-store.ts +1 -1
  139. package/src/components/chat/stream/chat-stream-reducer.ts +11 -49
  140. package/src/components/chat/stream/delta-batcher.ts +4 -9
  141. package/src/components/chat/stream/message-mutations.ts +0 -2
  142. package/src/components/chat/types/component.types.ts +0 -9
  143. package/src/components/chat/types/message.types.ts +0 -32
  144. package/src/components/chat/types/network.types.ts +1 -3
  145. package/src/components/chat/types/processing.types.ts +1 -4
  146. package/src/components/chat/utils/__tests__/process-historical-messages-approvals.test.ts +0 -93
  147. package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +1 -78
  148. package/src/components/chat/utils/approval-display.ts +8 -53
  149. package/src/components/chat/utils/extract-incomplete-message-state.ts +0 -1
  150. package/src/components/chat/utils/index.ts +1 -6
  151. package/src/components/chat/utils/message-segment-accumulator.ts +3 -37
  152. package/src/components/chat/utils/process-historical-messages.ts +7 -44
  153. package/src/components/chat/utils/resolve-fetched-card-href.ts +1 -1
  154. package/src/components/features/.push-button-selector.md +1 -1
  155. package/src/components/features/push-button-selector.tsx +130 -6
  156. package/src/stories/ChatMessageEnhanced.stories.tsx +3 -7
  157. package/dist/chunk-3AX3ZEY3.js.map +0 -1
  158. package/dist/chunk-FEVLXRTC.cjs.map +0 -1
  159. package/dist/chunk-RKGOVTXZ.cjs.map +0 -1
  160. package/dist/components/chat/guide-display.d.ts +0 -14
  161. package/dist/components/chat/guide-display.d.ts.map +0 -1
  162. package/src/components/chat/guide-display.tsx +0 -42
  163. /package/dist/{chunk-QCP2KV7P.js.map → chunk-4SYELUXP.js.map} +0 -0
  164. /package/dist/{chunk-AKPLEWMH.js.map → chunk-A4BZ2CP4.js.map} +0 -0
  165. /package/dist/{chunk-4WSKSNXL.js.map → chunk-CX62MVCV.js.map} +0 -0
  166. /package/dist/{chunk-O2FTVZOD.js.map → chunk-DZAPMQ6U.js.map} +0 -0
  167. /package/dist/{chunk-PWOYEUIQ.js.map → chunk-FN4PUTHZ.js.map} +0 -0
  168. /package/dist/{chunk-L2CF2QZW.js.map → chunk-JDP5BGVO.js.map} +0 -0
  169. /package/dist/{chunk-5Y6TPFW7.js.map → chunk-JFVT6XRN.js.map} +0 -0
  170. /package/dist/{chunk-D44S2QLI.js.map → chunk-OSIIXSYG.js.map} +0 -0
  171. /package/dist/{chunk-DB3TV4CW.js.map → chunk-PGWXVNYS.js.map} +0 -0
  172. /package/dist/{chunk-QGJYWLF4.js.map → chunk-SN6SL4HR.js.map} +0 -0
  173. /package/dist/{chunk-HGA74X35.js.map → chunk-TXNAZKWW.js.map} +0 -0
  174. /package/dist/{chunk-PMENIZXI.js.map → chunk-WEUWTEQL.js.map} +0 -0
  175. /package/dist/{chunk-H4BPHGU5.js.map → chunk-WW435OOF.js.map} +0 -0
  176. /package/dist/{chunk-BW4WDUSI.js.map → chunk-ZNCYSM6R.js.map} +0 -0
@@ -89,7 +89,7 @@ var _chunkIKDC3R7Vcjs = require('./chunk-IKDC3R7V.cjs');
89
89
 
90
90
 
91
91
 
92
- var _chunkRKGOVTXZcjs = require('./chunk-RKGOVTXZ.cjs');
92
+ var _chunkVYQNM75Rcjs = require('./chunk-VYQNM75R.cjs');
93
93
 
94
94
 
95
95
 
@@ -329,7 +329,7 @@ function ThemeProvider({ children, ...overrides }) {
329
329
  var useTheme = _nextthemes.useTheme;
330
330
  function useThemeToggle() {
331
331
  const { resolvedTheme, theme, setTheme } = useTheme();
332
- const mounted = _chunkRKGOVTXZcjs.useIsHydrated.call(void 0, );
332
+ const mounted = _chunkVYQNM75Rcjs.useIsHydrated.call(void 0, );
333
333
  const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
334
334
  const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
335
335
  const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
@@ -606,7 +606,7 @@ function TruncateText({
606
606
  const { ref, isTruncated } = _chunkZI27ALYXcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
607
607
  const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
608
608
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
609
- _chunkRKGOVTXZcjs.FloatingTooltip,
609
+ _chunkVYQNM75Rcjs.FloatingTooltip,
610
610
  {
611
611
  content: _nullishCoalesce(tooltip, () => ( children)),
612
612
  side,
@@ -908,7 +908,7 @@ function AutocompleteInner(props, ref) {
908
908
  ),
909
909
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
910
910
  multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
911
- _chunkRKGOVTXZcjs.Tag,
911
+ _chunkVYQNM75Rcjs.Tag,
912
912
  {
913
913
  variant: "outline",
914
914
  labelClassName: "max-w-[90px] truncate",
@@ -1114,7 +1114,7 @@ function AutocompleteInner(props, ref) {
1114
1114
  "aria-hidden": "true",
1115
1115
  className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
1116
1116
  children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1117
- _chunkRKGOVTXZcjs.Tag,
1117
+ _chunkVYQNM75Rcjs.Tag,
1118
1118
  {
1119
1119
  variant: "outline",
1120
1120
  labelClassName: "max-w-[90px] truncate",
@@ -2498,7 +2498,7 @@ function InfoHint({ children, label, side = "top", className }) {
2498
2498
  const describedById = _react.useId.call(void 0, );
2499
2499
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
2500
2500
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2501
- _chunkRKGOVTXZcjs.FloatingTooltip,
2501
+ _chunkVYQNM75Rcjs.FloatingTooltip,
2502
2502
  {
2503
2503
  content: children,
2504
2504
  side,
@@ -2592,7 +2592,7 @@ function Value2({ value, depth }) {
2592
2592
  }
2593
2593
  if (typeof value === "string") {
2594
2594
  if (ISO_DATE.test(value)) {
2595
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkRKGOVTXZcjs.formatRelativeTime.call(void 0, value) });
2595
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkVYQNM75Rcjs.formatRelativeTime.call(void 0, value) });
2596
2596
  }
2597
2597
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
2598
2598
  }
@@ -3224,7 +3224,7 @@ function RowValue({ value }) {
3224
3224
  }
3225
3225
  case "status": {
3226
3226
  const { type: _type, ...props } = value;
3227
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TicketStatusTag, { ...props });
3227
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TicketStatusTag, { ...props });
3228
3228
  }
3229
3229
  case "custom":
3230
3230
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
@@ -4135,7 +4135,7 @@ function TagsManager({
4135
4135
  }
4136
4136
  ),
4137
4137
  selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4138
- _chunkRKGOVTXZcjs.Tag,
4138
+ _chunkVYQNM75Rcjs.Tag,
4139
4139
  {
4140
4140
  label: tag.name,
4141
4141
  variant: "outline",
@@ -4680,10 +4680,10 @@ function useConfirm() {
4680
4680
  },
4681
4681
  []
4682
4682
  );
4683
- const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
4684
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTitle, { children: pending.title }) }),
4685
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
4686
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.ModalFooter, { children: [
4683
+ const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
4684
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: pending.title }) }),
4685
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
4686
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
4687
4687
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
4688
4688
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
4689
4689
  ] })
@@ -4741,9 +4741,9 @@ function AdminFormModal({
4741
4741
  body: "Your edits have not been saved. Close and discard them?"
4742
4742
  });
4743
4743
  if (!isOpen) return null;
4744
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
4745
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.ModalHeader, { children: [
4746
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTitle, { children: title }),
4744
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
4745
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: [
4746
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: title }),
4747
4747
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
4748
4748
  ] }),
4749
4749
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -4767,7 +4767,7 @@ function AdminFormModal({
4767
4767
  // a shrink-to-fit flex item pinned to the left of a 1400px panel).
4768
4768
  // The placeholder owns its own layout and mirrors the column count so
4769
4769
  // the modal doesn't visibly re-flow when the entity lands.
4770
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4770
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4771
4771
  "div",
4772
4772
  {
4773
4773
  "aria-busy": "true",
@@ -4788,12 +4788,12 @@ function AdminFormModal({
4788
4788
  ]
4789
4789
  }
4790
4790
  ) })
4791
- ) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalContent, { className: contentClassName, children }),
4791
+ ) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalContent, { className: contentClassName, children }),
4792
4792
  error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
4793
4793
  ]
4794
4794
  }
4795
4795
  ),
4796
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
4796
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
4797
4797
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
4798
4798
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
4799
4799
  footerStatus,
@@ -6891,7 +6891,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
6891
6891
  };
6892
6892
  const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
6893
6893
  const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6894
- _chunkRKGOVTXZcjs.Video,
6894
+ _chunkVYQNM75Rcjs.Video,
6895
6895
  {
6896
6896
  url: item.src,
6897
6897
  poster: item.poster ? displayImageSrc(item.poster) : void 0,
@@ -7615,7 +7615,7 @@ function buildRichEmbedOverrides({
7615
7615
  ogEndpointPath,
7616
7616
  textSizes
7617
7617
  }) {
7618
- const standard = _chunkRKGOVTXZcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7618
+ const standard = _chunkVYQNM75Rcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7619
7619
  return {
7620
7620
  // Fence-language embeds (```youtube-embed etc.); everything else
7621
7621
  // (mermaid, highlighted blocks, inline code) falls through to `standard`.
@@ -7625,7 +7625,7 @@ function buildRichEmbedOverrides({
7625
7625
  const language = match ? match[1] : "";
7626
7626
  const fenceText = () => String(children).replace(/\n$/, "").trim();
7627
7627
  if (language === "youtube-embed") {
7628
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "youtube", url: fenceText() });
7628
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "youtube", url: fenceText() });
7629
7629
  }
7630
7630
  if (language === "reddit-embed") {
7631
7631
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
@@ -7666,7 +7666,7 @@ function buildRichEmbedOverrides({
7666
7666
  "data-figma-url": figmaUrl
7667
7667
  } = divProps;
7668
7668
  if (className === "youtube-embed" && videoId) {
7669
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "youtube", url: videoId });
7669
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "youtube", url: videoId });
7670
7670
  }
7671
7671
  if (className === "reddit-embed" && postUrl) {
7672
7672
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
@@ -7751,14 +7751,14 @@ function buildRichEmbedOverrides({
7751
7751
  // rich-markdown runtime (Supabase optimization on the hub, identity
7752
7752
  // elsewhere). Guard against empty `![]()`.
7753
7753
  img: ({ src, alt }) => {
7754
- if (!_chunkRKGOVTXZcjs.hasRenderableSrc.call(void 0, src)) return null;
7754
+ if (!_chunkVYQNM75Rcjs.hasRenderableSrc.call(void 0, src)) return null;
7755
7755
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
7756
7756
  },
7757
7757
  // Raw <video> tags in stored content (blog publisher injection) route
7758
7758
  // to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
7759
7759
  video: ({ src, poster, className }) => {
7760
- if (!_chunkRKGOVTXZcjs.hasRenderableSrc.call(void 0, src)) return null;
7761
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `overflow-hidden ${className || "my-8 w-full rounded-lg"}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7760
+ if (!_chunkVYQNM75Rcjs.hasRenderableSrc.call(void 0, src)) return null;
7761
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `overflow-hidden ${className || "my-8 w-full rounded-lg"}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7762
7762
  }
7763
7763
  };
7764
7764
  }
@@ -7941,13 +7941,13 @@ var RichMarkdownInner = ({
7941
7941
  },
7942
7942
  [resolveLinkEndpointUrl, resolveSource]
7943
7943
  );
7944
- const textSizes = _react.useMemo.call(void 0, () => _chunkRKGOVTXZcjs.resolveTextSizeConfig.call(void 0, "article"), []);
7944
+ const textSizes = _react.useMemo.call(void 0, () => _chunkVYQNM75Rcjs.resolveTextSizeConfig.call(void 0, "article"), []);
7945
7945
  const componentOverrides = _react.useMemo.call(void 0,
7946
7946
  () => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
7947
7947
  [ogApiBaseUrl, ogEndpointPath, textSizes]
7948
7948
  );
7949
7949
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7950
- _chunkRKGOVTXZcjs.MarkdownEngine,
7950
+ _chunkVYQNM75Rcjs.MarkdownEngine,
7951
7951
  {
7952
7952
  content,
7953
7953
  className,
@@ -7969,7 +7969,7 @@ var RichMarkdownRendererImpl = ({
7969
7969
  className = "",
7970
7970
  sectionIds,
7971
7971
  onInternalLinkClick,
7972
- brokenLinks = _chunkRKGOVTXZcjs.NO_BROKEN_LINKS,
7972
+ brokenLinks = _chunkVYQNM75Rcjs.NO_BROKEN_LINKS,
7973
7973
  currentPath,
7974
7974
  resolveSource = "openframe-docs",
7975
7975
  resolveLinkEndpointUrl = "/api/docs/resolve-link",
@@ -8542,7 +8542,7 @@ function FilterModal({
8542
8542
  const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _161 => _161.defaultSort]), () => ( "desc"));
8543
8543
  const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.sort]), () => ( dateDefaultSort)));
8544
8544
  const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _163 => _163.range]));
8545
- const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkRKGOVTXZcjs.useScrollFade.call(void 0, );
8545
+ const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkVYQNM75Rcjs.useScrollFade.call(void 0, );
8546
8546
  const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
8547
8547
  const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
8548
8548
  _react.useEffect.call(void 0, () => {
@@ -8587,10 +8587,10 @@ function FilterModal({
8587
8587
  const hasFilterGroups = filterGroups.length > 0;
8588
8588
  const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
8589
8589
  const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
8590
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
8591
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTitle, { children: title }) }),
8590
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
8591
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: title }) }),
8592
8592
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8593
- _chunkRKGOVTXZcjs.ModalContent,
8593
+ _chunkVYQNM75Rcjs.ModalContent,
8594
8594
  {
8595
8595
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
8596
8596
  "flex min-h-0 flex-1 flex-col",
@@ -8682,12 +8682,12 @@ function FilterModal({
8682
8682
  ] })
8683
8683
  }
8684
8684
  ),
8685
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
8686
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
8685
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
8686
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
8687
8687
  ] })
8688
8688
  }
8689
8689
  ),
8690
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.ModalFooter, { children: [
8690
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
8691
8691
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
8692
8692
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
8693
8693
  ] })
@@ -8731,9 +8731,9 @@ function actionToMenuItems(action, idx) {
8731
8731
  function renderActionButton(action, opts = {}) {
8732
8732
  const button = renderRawActionButton(action, opts);
8733
8733
  if (!action.tooltip) return button;
8734
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Tooltip, { children: [
8735
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipTrigger, { asChild: true, children: button }),
8736
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipContent, { children: action.tooltip })
8734
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { children: [
8735
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, children: button }),
8736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { children: action.tooltip })
8737
8737
  ] }) });
8738
8738
  }
8739
8739
  function renderRawActionButton(action, opts = {}) {
@@ -8757,7 +8757,7 @@ function renderRawActionButton(action, opts = {}) {
8757
8757
  }
8758
8758
  if (action.submenu && action.submenu.length > 0) {
8759
8759
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8760
- _chunkRKGOVTXZcjs.ActionsMenuDropdown,
8760
+ _chunkVYQNM75Rcjs.ActionsMenuDropdown,
8761
8761
  {
8762
8762
  groups: [{ items: action.submenu }],
8763
8763
  customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8892,10 +8892,10 @@ function IconButtonsVariant({
8892
8892
  selector,
8893
8893
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8894
8894
  desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
8895
- hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ActionsMenuDropdown, { groups: menuActions })
8895
+ hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: menuActions })
8896
8896
  ] })
8897
8897
  ] }),
8898
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
8898
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
8899
8899
  ] });
8900
8900
  }
8901
8901
  function PrimaryButtonsVariant({
@@ -8933,11 +8933,11 @@ function MenuPrimaryVariant({
8933
8933
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
8934
8934
  selector,
8935
8935
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8936
- hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ActionsMenuDropdown, { groups: menuActions }),
8936
+ hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: menuActions }),
8937
8937
  desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
8938
8938
  ] })
8939
8939
  ] }),
8940
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
8940
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
8941
8941
  ] });
8942
8942
  }
8943
8943
  function MobileBottomActions({ actions, loading }) {
@@ -9339,7 +9339,7 @@ function TitleBlock({
9339
9339
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
9340
9340
  (loading || title) && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
9341
9341
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9342
- _chunkRKGOVTXZcjs.FloatingTooltip,
9342
+ _chunkVYQNM75Rcjs.FloatingTooltip,
9343
9343
  {
9344
9344
  content: title,
9345
9345
  side: "bottom",
@@ -9356,12 +9356,12 @@ function TitleBlock({
9356
9356
  }
9357
9357
  ),
9358
9358
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
9359
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
9359
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
9360
9360
  hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
9361
9361
  empty `p` collapses to zero height (its only content would be
9362
9362
  collapsible whitespace), which is exactly the shift that mode
9363
9363
  exists to prevent. Hidden from AT — it carries no meaning. */
9364
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9364
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9365
9365
  "p",
9366
9366
  {
9367
9367
  ref: subtitleRef,
@@ -9372,7 +9372,7 @@ function TitleBlock({
9372
9372
  ) })
9373
9373
  ] })
9374
9374
  ] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
9375
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "min-w-0 text-ods-text-primary", titleOverflowClass), children: title }) }),
9375
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "min-w-0 text-ods-text-primary", titleOverflowClass), children: title }) }),
9376
9376
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
9377
9377
  ] }) : (
9378
9378
  /* This branch never had the single-line clamp, so text already
@@ -10969,7 +10969,7 @@ function extractSections(markdown, options = {}) {
10969
10969
  if (heading.level > opts.maxLevel) continue;
10970
10970
  let title = heading.text;
10971
10971
  if (opts.stripFormattingMarkers) {
10972
- title = _chunkRKGOVTXZcjs.stripInlineMarkdown.call(void 0, title).trim();
10972
+ title = _chunkVYQNM75Rcjs.stripInlineMarkdown.call(void 0, title).trim();
10973
10973
  }
10974
10974
  const baseId = _chunkZI27ALYXcjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkZI27ALYXcjs.stripHeadingEmojis.call(void 0, title) : title);
10975
10975
  const cleanId = baseId || `section-${sections.length + 1}`;
@@ -11461,7 +11461,7 @@ function DashboardInfoCard({
11461
11461
  const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
11462
11462
  if (asTag) {
11463
11463
  const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
11464
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
11464
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
11465
11465
  }
11466
11466
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
11467
11467
  "(",
@@ -11515,7 +11515,7 @@ function DashboardInfoCard({
11515
11515
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "truncate text-ods-text-primary text-h3 md:text-h2", valueClassName), children: formattedValue }),
11516
11516
  subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
11517
11517
  renderPercentage(),
11518
- tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.FloatingTooltip, { content: tooltip, side: "top", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "cursor-help text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.QuestionCircleIcon, { size: 20 }) }) })
11518
+ tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.FloatingTooltip, { content: tooltip, side: "top", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "cursor-help text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.QuestionCircleIcon, { size: 20 }) }) })
11519
11519
  ] })
11520
11520
  ] }),
11521
11521
  renderProgress()
@@ -11698,7 +11698,7 @@ function DeviceCard({
11698
11698
  ] }),
11699
11699
  (statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
11700
11700
  statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11701
- _chunkRKGOVTXZcjs.Tag,
11701
+ _chunkVYQNM75Rcjs.Tag,
11702
11702
  {
11703
11703
  variant: statusTag.variant,
11704
11704
  icon: statusTag.icon,
@@ -11712,7 +11712,7 @@ function DeviceCard({
11712
11712
  formatLastSeen(device.lastSeen)
11713
11713
  ] })
11714
11714
  ] }),
11715
- device.tags && device.tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-wrap items-center gap-2", children: device.tags.map((tag, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: "outline", label: tag }, index)) })
11715
+ device.tags && device.tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-wrap items-center gap-2", children: device.tags.map((tag, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "outline", label: tag }, index)) })
11716
11716
  ]
11717
11717
  }
11718
11718
  );
@@ -11860,7 +11860,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
11860
11860
 
11861
11861
  function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
11862
11862
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11863
- _chunkRKGOVTXZcjs.FloatingTooltip,
11863
+ _chunkVYQNM75Rcjs.FloatingTooltip,
11864
11864
  {
11865
11865
  as: "span",
11866
11866
  side: "top",
@@ -12044,7 +12044,7 @@ function DropdownButton({
12044
12044
  )
12045
12045
  );
12046
12046
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12047
- _chunkRKGOVTXZcjs.ActionsMenuDropdown,
12047
+ _chunkVYQNM75Rcjs.ActionsMenuDropdown,
12048
12048
  {
12049
12049
  groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
12050
12050
  open,
@@ -12282,7 +12282,7 @@ function ServiceCardRowItem({ row }) {
12282
12282
  ),
12283
12283
  children: [
12284
12284
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12285
- _chunkRKGOVTXZcjs.FloatingTooltip,
12285
+ _chunkVYQNM75Rcjs.FloatingTooltip,
12286
12286
  {
12287
12287
  content: row.value,
12288
12288
  side: "top",
@@ -12408,9 +12408,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
12408
12408
  return next;
12409
12409
  });
12410
12410
  };
12411
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Tooltip, { open, onOpenChange: setOpen, children: [
12411
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { open, onOpenChange: setOpen, children: [
12412
12412
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12413
- _chunkRKGOVTXZcjs.TooltipTrigger,
12413
+ _chunkVYQNM75Rcjs.TooltipTrigger,
12414
12414
  {
12415
12415
  asChild: true,
12416
12416
  onPointerDown: (e) => {
@@ -12428,7 +12428,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
12428
12428
  children
12429
12429
  }
12430
12430
  ),
12431
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipContent, { side, className: "max-w-xs", children: content })
12431
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { side, className: "max-w-xs", children: content })
12432
12432
  ] }) });
12433
12433
  }
12434
12434
 
@@ -13443,9 +13443,9 @@ function TruncatedHeaderCell({ value, width }) {
13443
13443
  setIsTruncated(el.scrollWidth > el.clientWidth);
13444
13444
  }
13445
13445
  }, []);
13446
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13447
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center", style: { width, height: 48 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: textRef, className: "truncate text-ods-text-secondary text-h5", children: value }) }) }),
13448
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
13446
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13447
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center", style: { width, height: 48 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: textRef, className: "truncate text-ods-text-secondary text-h5", children: value }) }) }),
13448
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
13449
13449
  ] }) });
13450
13450
  }
13451
13451
 
@@ -13498,9 +13498,9 @@ function TruncatedCell({ value, className }) {
13498
13498
  setIsTruncated(el.scrollWidth > el.clientWidth);
13499
13499
  }
13500
13500
  }, []);
13501
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13502
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: textRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, "block truncate", className), children: value }) }),
13503
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
13501
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13502
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: textRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, "block truncate", className), children: value }) }),
13503
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
13504
13504
  ] }) });
13505
13505
  }
13506
13506
 
@@ -14784,7 +14784,7 @@ function SearchInput({
14784
14784
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment !== void 0 ? startAdornment : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}) }),
14785
14785
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
14786
14786
  visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14787
- _chunkRKGOVTXZcjs.Tag,
14787
+ _chunkVYQNM75Rcjs.Tag,
14788
14788
  {
14789
14789
  variant: chipVariantToTagVariant(chip.variant),
14790
14790
  label: chip.label,
@@ -14898,7 +14898,7 @@ function SearchInput({
14898
14898
  }
14899
14899
  ),
14900
14900
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: measureRef, "aria-hidden": "true", className: "pointer-events-none fixed -left-[9999px] top-0 flex gap-2", children: filterChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14901
- _chunkRKGOVTXZcjs.Tag,
14901
+ _chunkVYQNM75Rcjs.Tag,
14902
14902
  {
14903
14903
  variant: chipVariantToTagVariant(chip.variant),
14904
14904
  label: chip.label,
@@ -15111,7 +15111,7 @@ function TagSearchInput({
15111
15111
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "size-4 text-ods-text-secondary md:size-6" }) }),
15112
15112
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
15113
15113
  visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15114
- _chunkRKGOVTXZcjs.Tag,
15114
+ _chunkVYQNM75Rcjs.Tag,
15115
15115
  {
15116
15116
  variant: "outline",
15117
15117
  label: renderTag ? renderTag(tag) : tag.label,
@@ -15199,7 +15199,7 @@ function TagSearchInput({
15199
15199
  "aria-hidden": "true",
15200
15200
  className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
15201
15201
  children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15202
- _chunkRKGOVTXZcjs.Tag,
15202
+ _chunkVYQNM75Rcjs.Tag,
15203
15203
  {
15204
15204
  variant: "outline",
15205
15205
  label: renderTag ? renderTag(tag) : tag.label,
@@ -16088,20 +16088,20 @@ function ColorPresetSelect({
16088
16088
  ...presets.map((p) => ({
16089
16089
  id: p.key,
16090
16090
  label: p.label,
16091
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color: p.color }),
16091
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: p.color }),
16092
16092
  onClick: () => onChange({ color: p.color, preset: p.key })
16093
16093
  })),
16094
16094
  {
16095
16095
  id: CUSTOM_PRESET_KEY,
16096
16096
  label: "Custom",
16097
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
16097
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
16098
16098
  onClick: () => onChange({ color: value, preset: void 0 })
16099
16099
  }
16100
16100
  ]
16101
16101
  }
16102
16102
  ];
16103
16103
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16104
- _chunkRKGOVTXZcjs.ActionsMenuDropdown,
16104
+ _chunkVYQNM75Rcjs.ActionsMenuDropdown,
16105
16105
  {
16106
16106
  groups,
16107
16107
  align: "start",
@@ -16111,7 +16111,7 @@ function ColorPresetSelect({
16111
16111
  {
16112
16112
  disabled,
16113
16113
  "aria-label": `Color: ${displayLabel}`,
16114
- startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color: displayColor }),
16114
+ startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: displayColor }),
16115
16115
  selectedLabel: displayLabel,
16116
16116
  endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
16117
16117
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
@@ -16132,7 +16132,7 @@ function HexInputs({ value, onChange }) {
16132
16132
  }
16133
16133
  const commit = () => {
16134
16134
  const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
16135
- if (_chunkRKGOVTXZcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
16135
+ if (_chunkVYQNM75Rcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
16136
16136
  else setDraft(value);
16137
16137
  };
16138
16138
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -16196,12 +16196,12 @@ function ChannelInput({
16196
16196
  );
16197
16197
  }
16198
16198
  function RgbInputs({ value, onChange }) {
16199
- const rgb = _nullishCoalesce(_chunkRKGOVTXZcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16199
+ const rgb = _nullishCoalesce(_chunkVYQNM75Rcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16200
16200
  const update = (next) => {
16201
16201
  const r = _nullishCoalesce(next.r, () => ( rgb.r));
16202
16202
  const g = _nullishCoalesce(next.g, () => ( rgb.g));
16203
16203
  const b = _nullishCoalesce(next.b, () => ( rgb.b));
16204
- onChange(_chunkRKGOVTXZcjs.rgbToHex.call(void 0, r, g, b));
16204
+ onChange(_chunkVYQNM75Rcjs.rgbToHex.call(void 0, r, g, b));
16205
16205
  };
16206
16206
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
16207
16207
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
@@ -16210,14 +16210,14 @@ function RgbInputs({ value, onChange }) {
16210
16210
  ] });
16211
16211
  }
16212
16212
  function HslInputs({ value, onChange }) {
16213
- const rgb = _nullishCoalesce(_chunkRKGOVTXZcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16214
- const hsl = _chunkRKGOVTXZcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
16213
+ const rgb = _nullishCoalesce(_chunkVYQNM75Rcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16214
+ const hsl = _chunkVYQNM75Rcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
16215
16215
  const update = (next) => {
16216
16216
  const h = _nullishCoalesce(next.h, () => ( hsl.h));
16217
16217
  const s = _nullishCoalesce(next.s, () => ( hsl.s));
16218
16218
  const l = _nullishCoalesce(next.l, () => ( hsl.l));
16219
- const out = _chunkRKGOVTXZcjs.hslToRgb.call(void 0, h, s, l);
16220
- onChange(_chunkRKGOVTXZcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
16219
+ const out = _chunkVYQNM75Rcjs.hslToRgb.call(void 0, h, s, l);
16220
+ onChange(_chunkVYQNM75Rcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
16221
16221
  };
16222
16222
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
16223
16223
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
@@ -16243,7 +16243,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
16243
16243
  {
16244
16244
  disabled,
16245
16245
  "aria-label": "Pick custom color",
16246
- startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color: value }),
16246
+ startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: value }),
16247
16247
  selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
16248
16248
  endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
16249
16249
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
@@ -16259,7 +16259,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
16259
16259
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
16260
16260
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
16261
16261
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16262
- _chunkRKGOVTXZcjs.ActionsMenuDropdown,
16262
+ _chunkVYQNM75Rcjs.ActionsMenuDropdown,
16263
16263
  {
16264
16264
  groups: formatGroups,
16265
16265
  align: "start",
@@ -16316,7 +16316,7 @@ function TicketStatusConfigRow({
16316
16316
  const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
16317
16317
  const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
16318
16318
  const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16319
- _chunkRKGOVTXZcjs.TicketStatusTag,
16319
+ _chunkVYQNM75Rcjs.TicketStatusTag,
16320
16320
  {
16321
16321
  status: statusKey,
16322
16322
  label: name || " ",
@@ -16468,7 +16468,7 @@ function formatTestRunDuration(ms) {
16468
16468
  var RESULT_COLUMN_MIN_WIDTH = 176;
16469
16469
  var SKELETON_COLUMNS = 6;
16470
16470
  function TestResultsSkeleton() {
16471
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
16471
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
16472
16472
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-[160px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded-sm bg-ods-bg-surface" }) }, `skeleton-header-${i}`)) }),
16473
16473
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "animate-pulse overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[66px] items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)] md:h-[78px]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[160px] shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 rounded-sm bg-ods-bg-surface" }) }, `skeleton-cell-${i}`)) }) })
16474
16474
  ] }) });
@@ -16503,7 +16503,7 @@ function TestResultsTable({ rows, loading }) {
16503
16503
  if (loading) {
16504
16504
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
16505
16505
  }
16506
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { minWidth: Math.max(1, columnKeys.length) * RESULT_COLUMN_MIN_WIDTH }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DataTable, { table, children: [
16506
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { minWidth: Math.max(1, columnKeys.length) * RESULT_COLUMN_MIN_WIDTH }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DataTable, { table, children: [
16507
16507
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
16508
16508
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
16509
16509
  ] }) }) });
@@ -16563,7 +16563,7 @@ var TEST_RUN_STATUS_TAGS = {
16563
16563
  function TestRunStatusStat({ status, className }) {
16564
16564
  const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
16565
16565
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex min-w-0 flex-col items-start justify-center gap-[var(--spacing-system-xxs)]", className), children: [
16566
- tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { label: tag.label, variant: tag.variant, className: "pointer-events-none" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h4", children: "-" }),
16566
+ tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { label: tag.label, variant: tag.variant, className: "pointer-events-none" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h4", children: "-" }),
16567
16567
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
16568
16568
  ] });
16569
16569
  }
@@ -16606,7 +16606,7 @@ function useTestRunState(campaign) {
16606
16606
  const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
16607
16607
  const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
16608
16608
  const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
16609
- const startedLabel = showTiming && campaign.startedAt ? _chunkRKGOVTXZcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
16609
+ const startedLabel = showTiming && campaign.startedAt ? _chunkVYQNM75Rcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
16610
16610
  const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
16611
16611
  const displayRows = _react.useMemo.call(void 0,
16612
16612
  () => campaign.results.map(
@@ -16944,7 +16944,7 @@ function TicketInfoSection({
16944
16944
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _390 => _390.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _391 => _391.icon]), onClick: _optionalChain([device, 'optionalAccess', _392 => _392.onClick]) }),
16945
16945
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
16946
16946
  (status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16947
- _chunkRKGOVTXZcjs.TicketStatusTag,
16947
+ _chunkVYQNM75Rcjs.TicketStatusTag,
16948
16948
  {
16949
16949
  status: _nullishCoalesce(status, () => ( "")),
16950
16950
  label: statusLabel,
@@ -16983,9 +16983,9 @@ function TicketInfoSection({
16983
16983
  expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
16984
16984
  createdAt && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 items-center gap-4 border-b border-ods-border bg-ods-bg px-4 py-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: createdAt, label: "Created" }) }),
16985
16985
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
16986
- description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.SimpleMarkdownRenderer, { content: description }),
16986
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.SimpleMarkdownRenderer, { content: description }),
16987
16987
  attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
16988
- tags && tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
16988
+ tags && tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
16989
16989
  (notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16990
16990
  TicketNotesSection,
16991
16991
  {
@@ -17008,7 +17008,7 @@ function renderTicketStatusOption(option, isSelected) {
17008
17008
  const { label, color } = option;
17009
17009
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-[var(--spacing-system-xs)]", children: [
17010
17010
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
17011
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color }),
17011
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color }),
17012
17012
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
17013
17013
  ] }),
17014
17014
  isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
@@ -17053,9 +17053,9 @@ function TakeOverTicketModal({
17053
17053
  if (!selectedStatusId || !assigneeId || isPending) return;
17054
17054
  onConfirm({ statusId: selectedStatusId, assigneeId });
17055
17055
  };
17056
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Modal, { isOpen, onClose: isPending ? () => {
17056
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose: isPending ? () => {
17057
17057
  } : onClose, className: "text-left md:max-w-[600px]", children: [
17058
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTitle, { children: "Take Over Ticket" }) }),
17058
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: "Take Over Ticket" }) }),
17059
17059
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
17060
17060
  "The ticket ",
17061
17061
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
@@ -17070,7 +17070,7 @@ function TakeOverTicketModal({
17070
17070
  value: selectedStatusId,
17071
17071
  onChange: setStatusId,
17072
17072
  placeholder: "Select Status",
17073
- startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17073
+ startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17074
17074
  renderOption: renderTicketStatusOption
17075
17075
  }
17076
17076
  ) }),
@@ -17097,7 +17097,7 @@ function TakeOverTicketModal({
17097
17097
  }
17098
17098
  ) })
17099
17099
  ] }),
17100
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.ModalFooter, { children: [
17100
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
17101
17101
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
17102
17102
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
17103
17103
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17156,9 +17156,9 @@ function ReopenTicketModal({
17156
17156
  reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
17157
17157
  });
17158
17158
  };
17159
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Modal, { isOpen, onClose: isPending ? () => {
17159
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose: isPending ? () => {
17160
17160
  } : onClose, className: "text-left md:max-w-[600px]", children: [
17161
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17161
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17162
17162
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
17163
17163
  "The ticket ",
17164
17164
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
@@ -17173,7 +17173,7 @@ function ReopenTicketModal({
17173
17173
  value: selectedStatusId,
17174
17174
  onChange: setStatusId,
17175
17175
  placeholder: "Select Status",
17176
- startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17176
+ startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17177
17177
  renderOption: renderTicketStatusOption
17178
17178
  }
17179
17179
  ) }),
@@ -17211,7 +17211,7 @@ function ReopenTicketModal({
17211
17211
  disabled: isPending
17212
17212
  }
17213
17213
  ) }),
17214
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.ModalFooter, { children: [
17214
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
17215
17215
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
17216
17216
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
17217
17217
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17259,9 +17259,9 @@ function ReopenTicketRequestModal({
17259
17259
  ...showHandoffOption ? { handoffToTechnician: handoff } : {}
17260
17260
  });
17261
17261
  };
17262
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Modal, { isOpen, onClose: isPending ? () => {
17262
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose: isPending ? () => {
17263
17263
  } : onClose, className: "text-left md:max-w-[600px]", children: [
17264
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17264
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17265
17265
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: "This ticket will be reopened and the AI assistant will continue helping you." }),
17266
17266
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17267
17267
  Textarea,
@@ -17285,7 +17285,7 @@ function ReopenTicketRequestModal({
17285
17285
  disabled: isPending
17286
17286
  }
17287
17287
  ),
17288
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.ModalFooter, { children: [
17288
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
17289
17289
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
17290
17290
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
17291
17291
  ] })
@@ -19282,7 +19282,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
19282
19282
  sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
19283
19283
  title: config.title,
19284
19284
  loading: "eager",
19285
- ..._chunkRKGOVTXZcjs.fetchPriorityProp.call(void 0, "high")
19285
+ ..._chunkVYQNM75Rcjs.fetchPriorityProp.call(void 0, "high")
19286
19286
  },
19287
19287
  iframeKey
19288
19288
  ),
@@ -20132,7 +20132,7 @@ function MediaGalleryManager({
20132
20132
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? (
20133
20133
  // <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
20134
20134
  // fit="cover" crops to the aspect-video cell.
20135
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
20135
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
20136
20136
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20137
20137
  _chunkWLSFBRT5cjs.next_image_default,
20138
20138
  {
@@ -20593,6 +20593,7 @@ function PlatformFilterComponent({
20593
20593
  // src/components/features/push-button-selector.tsx
20594
20594
 
20595
20595
 
20596
+
20596
20597
  function PushButtonSelectorSkeleton({ count = 3, hasTitle }) {
20597
20598
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
20598
20599
  hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-20 animate-pulse rounded bg-ods-skeleton" }),
@@ -20630,13 +20631,57 @@ function PushButtonSelector({
20630
20631
  isLoading = false,
20631
20632
  error = null,
20632
20633
  skeletonCount = 3,
20633
- sections
20634
+ sections,
20635
+ search,
20636
+ lazyLoad,
20637
+ emptyMessage,
20638
+ footer
20634
20639
  }) {
20640
+ const scrollRef = _react.useRef.call(void 0, null);
20641
+ const sentinelRef = _react.useRef.call(void 0, null);
20642
+ const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _460 => _460.hasMore]), () => ( false));
20643
+ const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _461 => _461.isFetchingMore]), () => ( false));
20644
+ const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _462 => _462.onLoadMore]);
20645
+ const optionCount = options.length;
20646
+ _react.useEffect.call(void 0, () => {
20647
+ const sentinel = sentinelRef.current;
20648
+ const root = scrollRef.current;
20649
+ if (!sentinel || !root || !onLoadMore || !lazyHasMore) return void 0;
20650
+ const observer = new IntersectionObserver(
20651
+ (entries) => {
20652
+ if (entries.some((e) => e.isIntersecting) && !lazyFetching) {
20653
+ onLoadMore();
20654
+ }
20655
+ },
20656
+ { root, rootMargin: "80px" }
20657
+ );
20658
+ observer.observe(sentinel);
20659
+ return () => {
20660
+ observer.disconnect();
20661
+ };
20662
+ }, [lazyHasMore, lazyFetching, onLoadMore, optionCount]);
20663
+ const searchInput = search ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20664
+ _chunkIKDC3R7Vcjs.Input,
20665
+ {
20666
+ value: search.value,
20667
+ onChange: (e) => search.onChange(e.target.value),
20668
+ placeholder: search.placeholder,
20669
+ "aria-label": _nullishCoalesce(_nullishCoalesce(search.ariaLabel, () => ( search.placeholder)), () => ( "Search"))
20670
+ }
20671
+ ) : null;
20635
20672
  if (isLoading) {
20636
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount, hasTitle: !!title }) });
20673
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: search ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
20674
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
20675
+ searchInput,
20676
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount })
20677
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount, hasTitle: !!title }) });
20637
20678
  }
20638
20679
  if (error) {
20639
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error, title }) });
20680
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: search ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
20681
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
20682
+ searchInput,
20683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error })
20684
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error, title }) });
20640
20685
  }
20641
20686
  const validSelectedIds = options.length > 0 ? selectedIds.filter((id) => options.some((option) => option.id === id)) : selectedIds;
20642
20687
  if (process.env.NODE_ENV === "development" && options.length > 0 && validSelectedIds.length !== selectedIds.length) {
@@ -20689,9 +20734,9 @@ function PushButtonSelector({
20689
20734
  option.id
20690
20735
  );
20691
20736
  if (option.disabled && option.disabledReason) {
20692
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Tooltip, { children: [
20693
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipTrigger, { asChild: true, children: optionEl }),
20694
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
20737
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { children: [
20738
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, children: optionEl }),
20739
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
20695
20740
  ] }, option.id);
20696
20741
  }
20697
20742
  return optionEl;
@@ -20728,9 +20773,26 @@ function PushButtonSelector({
20728
20773
  ungroupedOptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: ungroupedOptions.map(renderOption) })
20729
20774
  ] });
20730
20775
  };
20731
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
20776
+ const listContent = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
20777
+ options.length === 0 && emptyMessage !== void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: emptyMessage }) : renderOptionsContent(),
20778
+ lazyLoad ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
20779
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef }),
20780
+ lazyLoad.isFetchingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "py-2 text-center text-ods-text-secondary text-h6", children: "Loading more\u2026" }) : null
20781
+ ] }) : null
20782
+ ] });
20783
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
20732
20784
  title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
20733
- renderOptionsContent(),
20785
+ searchInput,
20786
+ lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20787
+ "div",
20788
+ {
20789
+ ref: scrollRef,
20790
+ className: "space-y-4 overflow-y-auto rounded-lg border border-ods-border p-2",
20791
+ style: { height: _nullishCoalesce(lazyLoad.maxHeight, () => ( "336px")) },
20792
+ children: listContent
20793
+ }
20794
+ ) : listContent,
20795
+ footer,
20734
20796
  selectionSummary && validSelectedIds.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-success bg-ods-success-secondary p-4", children: [
20735
20797
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-2 flex items-center gap-2", children: [
20736
20798
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-2 rounded-full bg-ods-success" }),
@@ -20756,7 +20818,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
20756
20818
  const fileInputRef = _react.useRef.call(void 0, null);
20757
20819
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
20758
20820
  const handleFileSelect = async (event) => {
20759
- const file = _optionalChain([event, 'access', _460 => _460.target, 'access', _461 => _461.files, 'optionalAccess', _462 => _462[0]]);
20821
+ const file = _optionalChain([event, 'access', _463 => _463.target, 'access', _464 => _464.files, 'optionalAccess', _465 => _465[0]]);
20760
20822
  if (!file) return;
20761
20823
  let mediaType;
20762
20824
  if (file.type.startsWith("image/")) {
@@ -20838,7 +20900,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
20838
20900
  {
20839
20901
  type: "button",
20840
20902
  variant: "outline",
20841
- onClick: () => _optionalChain([fileInputRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.click, 'call', _465 => _465()]),
20903
+ onClick: () => _optionalChain([fileInputRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.click, 'call', _468 => _468()]),
20842
20904
  disabled: uploadingIndex !== null,
20843
20905
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
20844
20906
  className: "font-bold text-h6",
@@ -20891,7 +20953,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
20891
20953
  item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: item.media_type === "video" || item.media_type === "demo" ? (
20892
20954
  // <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
20893
20955
  // fit="cover" crops to the aspect-video cell.
20894
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
20956
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
20895
20957
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20896
20958
  _chunkWLSFBRT5cjs.next_image_default,
20897
20959
  {
@@ -21024,7 +21086,7 @@ var SelectButton = _react2.default.forwardRef(
21024
21086
  }
21025
21087
  )
21026
21088
  ] }),
21027
- tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
21089
+ tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
21028
21090
  selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
21029
21091
  ]
21030
21092
  }
@@ -21119,7 +21181,7 @@ function SEOEditorPreview({
21119
21181
  const displayImage = hasOgImage || hasFeaturedImage;
21120
21182
  const handleImageUpload = async (event) => {
21121
21183
  if (!onOgImageUpload) return;
21122
- const file = _optionalChain([event, 'access', _466 => _466.target, 'access', _467 => _467.files, 'optionalAccess', _468 => _468[0]]);
21184
+ const file = _optionalChain([event, 'access', _469 => _469.target, 'access', _470 => _470.files, 'optionalAccess', _471 => _471[0]]);
21123
21185
  if (!file) return;
21124
21186
  setIsUploading(true);
21125
21187
  try {
@@ -21276,7 +21338,7 @@ function SEOEditorPreview({
21276
21338
  type: "button",
21277
21339
  variant: "outline",
21278
21340
  size: "icon",
21279
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _469 => _469.click, 'call', _470 => _470()]),
21341
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _472 => _472.click, 'call', _473 => _473()]),
21280
21342
  disabled: disabled || isUploading,
21281
21343
  className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
21282
21344
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -21302,7 +21364,7 @@ function SEOEditorPreview({
21302
21364
  SEO_MEDIA_BOX_HEIGHT,
21303
21365
  "flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
21304
21366
  ),
21305
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _471 => _471.click, 'call', _472 => _472()]),
21367
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _474 => _474.click, 'call', _475 => _475()]),
21306
21368
  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: [
21307
21369
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
21308
21370
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -21389,7 +21451,7 @@ function SocialLinksManager({
21389
21451
  className = ""
21390
21452
  }) {
21391
21453
  const addLink = () => {
21392
- const firstPlatform = _optionalChain([platforms, 'access', _473 => _473[0], 'optionalAccess', _474 => _474.name]) || "website";
21454
+ const firstPlatform = _optionalChain([platforms, 'access', _476 => _476[0], 'optionalAccess', _477 => _477.name]) || "website";
21393
21455
  onChange([...links, { platform: firstPlatform, url: "" }]);
21394
21456
  };
21395
21457
  const removeLink = (index) => {
@@ -21401,7 +21463,7 @@ function SocialLinksManager({
21401
21463
  onChange(updated);
21402
21464
  };
21403
21465
  const getIcon = (link, platform) => {
21404
- const iconKey = _optionalChain([platform, 'optionalAccess', _475 => _475.icon_name]) || link.platform;
21466
+ const iconKey = _optionalChain([platform, 'optionalAccess', _478 => _478.icon_name]) || link.platform;
21405
21467
  const IconComponent = iconMap[iconKey];
21406
21468
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
21407
21469
  };
@@ -21423,7 +21485,7 @@ function SocialLinksManager({
21423
21485
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21424
21486
  _chunkIKDC3R7Vcjs.Input,
21425
21487
  {
21426
- placeholder: _optionalChain([platform, 'optionalAccess', _476 => _476.placeholder]) || "Profile URL",
21488
+ placeholder: _optionalChain([platform, 'optionalAccess', _479 => _479.placeholder]) || "Profile URL",
21427
21489
  value: link.url,
21428
21490
  onChange: (e) => updateLink(index, "url", e.target.value),
21429
21491
  onKeyDown: (e) => {
@@ -21810,7 +21872,7 @@ function VideoBitesDisplay({
21810
21872
  filterPublished = true,
21811
21873
  showTitle = true
21812
21874
  }) {
21813
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
21875
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
21814
21876
  }
21815
21877
 
21816
21878
  // src/components/features/walkthrough-video.tsx
@@ -21819,8 +21881,8 @@ function VideoBitesDisplay({
21819
21881
 
21820
21882
  var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
21821
21883
  function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
21822
- const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _477 => _477.getCurrentTime, 'call', _478 => _478()]), () => ( 0));
21823
- const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _479 => _479.getDuration, 'call', _480 => _480()]), () => ( 0)), time);
21884
+ const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _480 => _480.getCurrentTime, 'call', _481 => _481()]), () => ( 0));
21885
+ const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _482 => _482.getDuration, 'call', _483 => _483()]), () => ( 0)), time);
21824
21886
  return {
21825
21887
  // At end -> start over, never rewind to an unrelated older anchor.
21826
21888
  time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
@@ -21852,11 +21914,11 @@ function WalkthroughVideo({
21852
21914
  const inline = placement === "inline";
21853
21915
  const dismissEnabled = dismissal !== false;
21854
21916
  const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
21855
- const dismissalId = _optionalChain([video, 'optionalAccess', _481 => _481.id]) != null ? String(video.id) : "dismissed";
21917
+ const dismissalId = _optionalChain([video, 'optionalAccess', _484 => _484.id]) != null ? String(video.id) : "dismissed";
21856
21918
  const [mounted, setMounted] = _react.useState.call(void 0, false);
21857
21919
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
21858
21920
  const hasVideo = video != null;
21859
- const videoId = _optionalChain([video, 'optionalAccess', _482 => _482.id]);
21921
+ const videoId = _optionalChain([video, 'optionalAccess', _485 => _485.id]);
21860
21922
  _react.useEffect.call(void 0, () => {
21861
21923
  let idleHandle = null;
21862
21924
  if (!hasVideo) return void 0;
@@ -21879,13 +21941,13 @@ function WalkthroughVideo({
21879
21941
  if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
21880
21942
  };
21881
21943
  }, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
21882
- const hydrated = _chunkRKGOVTXZcjs.useIsHydrated.call(void 0, );
21944
+ const hydrated = _chunkVYQNM75Rcjs.useIsHydrated.call(void 0, );
21883
21945
  const previewSuppressed = _react.useMemo.call(void 0, () => {
21884
21946
  if (!hydrated) return false;
21885
21947
  try {
21886
- const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _483 => _483.matchMedia, 'optionalCall', _484 => _484("(prefers-reduced-motion: reduce)"), 'access', _485 => _485.matches]), () => ( false));
21948
+ const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _486 => _486.matchMedia, 'optionalCall', _487 => _487("(prefers-reduced-motion: reduce)"), 'access', _488 => _488.matches]), () => ( false));
21887
21949
  const conn = navigator.connection;
21888
- const saveData = _optionalChain([conn, 'optionalAccess', _486 => _486.saveData]) === true || _optionalChain([conn, 'optionalAccess', _487 => _487.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _488 => _488.effectiveType]) === "slow-2g";
21950
+ const saveData = _optionalChain([conn, 'optionalAccess', _489 => _489.saveData]) === true || _optionalChain([conn, 'optionalAccess', _490 => _490.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _491 => _491.effectiveType]) === "slow-2g";
21889
21951
  return Boolean(reducedMotion || saveData);
21890
21952
  } catch (e27) {
21891
21953
  return false;
@@ -21918,18 +21980,18 @@ function WalkthroughVideo({
21918
21980
  const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
21919
21981
  const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
21920
21982
  const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
21921
- const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _489 => _489.youtubeUrl]));
21983
+ const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _492 => _492.youtubeUrl]));
21922
21984
  const resumeMode = !open && handoff !== null && !isYouTube;
21923
21985
  const previewAllowed = !previewSuppressed && !isYouTube;
21924
21986
  const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
21925
- const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _490 => _490.key]) === footerFadeKey && footerObservation.hidden;
21987
+ const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _493 => _493.key]) === footerFadeKey && footerObservation.hidden;
21926
21988
  _react.useEffect.call(void 0, () => {
21927
21989
  if (!mounted) return void 0;
21928
21990
  if (inline) return void 0;
21929
21991
  const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
21930
21992
  if (!el || typeof IntersectionObserver === "undefined") return void 0;
21931
21993
  const io = new IntersectionObserver(
21932
- (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _491 => _491[0], 'optionalAccess', _492 => _492.isIntersecting]), () => ( false)) }),
21994
+ (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _494 => _494[0], 'optionalAccess', _495 => _495.isIntersecting]), () => ( false)) }),
21933
21995
  { rootMargin: "0px 0px -40px 0px" }
21934
21996
  );
21935
21997
  io.observe(el);
@@ -21955,7 +22017,7 @@ function WalkthroughVideo({
21955
22017
  if (!footerHidden) return;
21956
22018
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
21957
22019
  try {
21958
- _optionalChain([h, 'optionalAccess', _493 => _493.pause, 'call', _494 => _494()]);
22020
+ _optionalChain([h, 'optionalAccess', _496 => _496.pause, 'call', _497 => _497()]);
21959
22021
  } catch (e29) {
21960
22022
  }
21961
22023
  }, [footerHidden, resumeMode, hovered]);
@@ -21974,30 +22036,30 @@ function WalkthroughVideo({
21974
22036
  }, 400);
21975
22037
  }
21976
22038
  if (openProp === void 0) setOpenState(next);
21977
- _optionalChain([onOpenChange, 'optionalCall', _495 => _495(next)]);
22039
+ _optionalChain([onOpenChange, 'optionalCall', _498 => _498(next)]);
21978
22040
  },
21979
22041
  [openProp, onOpenChange]
21980
22042
  );
21981
22043
  const pausePreviewNow = _react.useCallback.call(void 0, () => {
21982
22044
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
21983
22045
  try {
21984
- _optionalChain([h, 'optionalAccess', _496 => _496.pause, 'call', _497 => _497()]);
22046
+ _optionalChain([h, 'optionalAccess', _499 => _499.pause, 'call', _500 => _500()]);
21985
22047
  } catch (e30) {
21986
22048
  }
21987
22049
  setCardPaused(true);
21988
22050
  }, [setCardPaused]);
21989
22051
  const openTheater = _react.useCallback.call(void 0, () => {
21990
22052
  const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
21991
- const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _498 => _498.getPaused, 'call', _499 => _499()]) === false;
22053
+ const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _501 => _501.getPaused, 'call', _502 => _502()]) === false;
21992
22054
  pausePreviewNow();
21993
22055
  const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
21994
- const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _500 => _500.getCurrentTime, 'call', _501 => _501()]), () => ( 0));
21995
- const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _502 => _502.getDuration, 'call', _503 => _503()]), () => ( 0));
22056
+ const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _503 => _503.getCurrentTime, 'call', _504 => _504()]), () => ( 0));
22057
+ const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _505 => _505.getDuration, 'call', _506 => _506()]), () => ( 0));
21996
22058
  const liveAtEnd = isAtEnd(liveDuration, liveTime);
21997
22059
  const start = {
21998
22060
  // At end -> start over. Falling back to `handoff.time` here would rewind
21999
22061
  // to an unrelated older anchor (e.g. 3:20) instead of restarting.
22000
- time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _504 => _504.time]), () => ( 0)),
22062
+ time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _507 => _507.time]), () => ( 0)),
22001
22063
  // Live element wins over remembered intent (the theater's own chrome may
22002
22064
  // have changed it) — EXCEPT when the element is muted only because
22003
22065
  // autoplay policy forced it, which is not intent.
@@ -22025,7 +22087,7 @@ function WalkthroughVideo({
22025
22087
  const selfDriven = selfDrivenFor === open;
22026
22088
  if (openProp !== void 0 && !selfDriven) {
22027
22089
  if (open) {
22028
- setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _505 => _505.time]), () => ( 0)), userMuted));
22090
+ setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _508 => _508.time]), () => ( 0)), userMuted));
22029
22091
  setHovered(false);
22030
22092
  setSuspended(false);
22031
22093
  setHandoff(null);
@@ -22111,8 +22173,8 @@ function WalkthroughVideo({
22111
22173
  });
22112
22174
  _react.useEffect.call(void 0, () => {
22113
22175
  if (resumeMode) {
22114
- setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _506 => _506.current, 'optionalAccess', _507 => _507.muted]), () => ( false)));
22115
- setCardPaused(_optionalChain([handoffRef, 'access', _508 => _508.current, 'optionalAccess', _509 => _509.playing]) === false);
22176
+ setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _509 => _509.current, 'optionalAccess', _510 => _510.muted]), () => ( false)));
22177
+ setCardPaused(_optionalChain([handoffRef, 'access', _511 => _511.current, 'optionalAccess', _512 => _512.playing]) === false);
22116
22178
  }
22117
22179
  }, [resumeMode]);
22118
22180
  const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
@@ -22194,11 +22256,11 @@ function WalkthroughVideo({
22194
22256
  },
22195
22257
  [cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
22196
22258
  );
22197
- const summaryTitle = _optionalChain([video, 'optionalAccess', _510 => _510.title]) || void 0;
22198
- const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _511 => _511.presenterAvatarUrl]), () => ( null));
22259
+ const summaryTitle = _optionalChain([video, 'optionalAccess', _513 => _513.title]) || void 0;
22260
+ const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _514 => _514.presenterAvatarUrl]), () => ( null));
22199
22261
  const embedUrlKey = _react.useMemo.call(void 0,
22200
- () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _512 => _512.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _513 => _513.youtubeUrl]), () => ( ""))}`,
22201
- [_optionalChain([video, 'optionalAccess', _514 => _514.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _515 => _515.youtubeUrl])]
22262
+ () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _515 => _515.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _516 => _516.youtubeUrl]), () => ( ""))}`,
22263
+ [_optionalChain([video, 'optionalAccess', _517 => _517.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _518 => _518.youtubeUrl])]
22202
22264
  );
22203
22265
  const cardActive = !open && previewAllowed && hovered && !resumeMode;
22204
22266
  const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
@@ -22257,7 +22319,7 @@ function WalkthroughVideo({
22257
22319
  const el = e.target;
22258
22320
  let keyboard = false;
22259
22321
  try {
22260
- keyboard = _nullishCoalesce(_optionalChain([el, 'access', _516 => _516.matches, 'optionalCall', _517 => _517(":focus-visible")]), () => ( false));
22322
+ keyboard = _nullishCoalesce(_optionalChain([el, 'access', _519 => _519.matches, 'optionalCall', _520 => _520(":focus-visible")]), () => ( false));
22261
22323
  } catch (e35) {
22262
22324
  keyboard = false;
22263
22325
  }
@@ -22276,7 +22338,7 @@ function WalkthroughVideo({
22276
22338
  },
22277
22339
  children: [
22278
22340
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22279
- _chunkRKGOVTXZcjs.VideoHoverPreviewSurface,
22341
+ _chunkVYQNM75Rcjs.VideoHoverPreviewSurface,
22280
22342
  {
22281
22343
  url: video.mainVideoUrl || "",
22282
22344
  posterUrl: video.posterUrl,
@@ -22291,15 +22353,15 @@ function WalkthroughVideo({
22291
22353
  previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
22292
22354
  mutedIntent: userMuted,
22293
22355
  continuation: cardMode === "resume",
22294
- autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _518 => _518.playing]) !== false && !footerHidden,
22295
- startTime: _optionalChain([resumeHandoff, 'optionalAccess', _519 => _519.time]),
22296
- startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _520 => _520.muted]), () => ( false)),
22356
+ autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _521 => _521.playing]) !== false && !footerHidden,
22357
+ startTime: _optionalChain([resumeHandoff, 'optionalAccess', _522 => _522.time]),
22358
+ startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _523 => _523.muted]), () => ( false)),
22297
22359
  onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
22298
22360
  },
22299
22361
  `card-${embedUrlKey}`
22300
22362
  ) }),
22301
22363
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22302
- _chunkRKGOVTXZcjs.CardHitLayer,
22364
+ _chunkVYQNM75Rcjs.CardHitLayer,
22303
22365
  {
22304
22366
  label: video.title ? `${label}: ${video.title}` : label,
22305
22367
  onPointerDown: pausePreviewNow,
@@ -22308,7 +22370,7 @@ function WalkthroughVideo({
22308
22370
  }
22309
22371
  ),
22310
22372
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "pointer-events-none absolute bottom-[var(--spacing-system-xsf)] left-[var(--spacing-system-xsf)] z-20 flex max-w-[calc(100%-2*var(--spacing-system-xsf))] items-center gap-[var(--spacing-system-xsf)] rounded-full bg-ods-overlay py-[var(--spacing-system-xxs)] pl-[var(--spacing-system-xxs)] pr-[var(--spacing-system-sf)] text-ods-text-primary text-h6", children: [
22311
- presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
22373
+ presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
22312
22374
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
22313
22375
  ] }),
22314
22376
  showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22321,7 +22383,7 @@ function WalkthroughVideo({
22321
22383
  onPointerDown: (e) => e.stopPropagation(),
22322
22384
  onClick: onUnmuteOrPlay,
22323
22385
  className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
22324
- children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.VideoUnmuteGlyph, {})
22386
+ children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoUnmuteGlyph, {})
22325
22387
  }
22326
22388
  ),
22327
22389
  showPlaybackControls && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute left-[var(--spacing-system-xsf)] top-[var(--spacing-system-xsf)] z-30 flex items-center gap-[var(--spacing-system-xxs)]", children: [
@@ -22390,7 +22452,7 @@ function WalkthroughVideo({
22390
22452
  {
22391
22453
  onOpenAutoFocus: (e) => {
22392
22454
  e.preventDefault();
22393
- _optionalChain([closeButtonRef, 'access', _521 => _521.current, 'optionalAccess', _522 => _522.focus, 'call', _523 => _523()]);
22455
+ _optionalChain([closeButtonRef, 'access', _524 => _524.current, 'optionalAccess', _525 => _525.focus, 'call', _526 => _526()]);
22394
22456
  },
22395
22457
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
22396
22458
  // PURE theater: just the video, centered on a dimmed backdrop.
@@ -22414,7 +22476,7 @@ function WalkthroughVideo({
22414
22476
  children: [
22415
22477
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
22416
22478
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22417
- _chunkRKGOVTXZcjs.Video,
22479
+ _chunkVYQNM75Rcjs.Video,
22418
22480
  {
22419
22481
  kind: video.youtubeUrl ? "youtube" : "file",
22420
22482
  url: video.youtubeUrl || video.mainVideoUrl,
@@ -22465,7 +22527,7 @@ function InlineWalkthroughVideo(props) {
22465
22527
  var _reactquery = require('@tanstack/react-query');
22466
22528
  function useWalkthroughVideo(opts) {
22467
22529
  const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
22468
- const captions = _chunkRKGOVTXZcjs.useCaptions.call(void 0, );
22530
+ const captions = _chunkVYQNM75Rcjs.useCaptions.call(void 0, );
22469
22531
  const query = _reactquery.useQuery.call(void 0, {
22470
22532
  queryKey: ["walkthrough-video", endpoint],
22471
22533
  enabled,
@@ -22484,14 +22546,14 @@ function useWalkthroughVideo(opts) {
22484
22546
  if (res.status === 404) return null;
22485
22547
  if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
22486
22548
  const body = await res.json();
22487
- return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _524 => _524.walkthroughVideo]), () => ( null));
22549
+ return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _527 => _527.walkthroughVideo]), () => ( null));
22488
22550
  },
22489
22551
  // Per-observer transform — NEVER mutate the cached data. `select` also runs
22490
22552
  // over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
22491
22553
  // rewrite here (not in queryFn) means a second consumer of the same
22492
22554
  // endpoint can't inherit this observer's proxied captionsUrl from the cache.
22493
22555
  select: (video) => {
22494
- if (!_optionalChain([video, 'optionalAccess', _525 => _525.captionsUrl])) return video;
22556
+ if (!_optionalChain([video, 'optionalAccess', _528 => _528.captionsUrl])) return video;
22495
22557
  if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
22496
22558
  return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
22497
22559
  }
@@ -22538,7 +22600,7 @@ function VideoSourceSelector({
22538
22600
  input.accept = "video/*";
22539
22601
  input.onchange = async (e) => {
22540
22602
  const target = e.target;
22541
- const file = _optionalChain([target, 'access', _526 => _526.files, 'optionalAccess', _527 => _527[0]]);
22603
+ const file = _optionalChain([target, 'access', _529 => _529.files, 'optionalAccess', _530 => _530[0]]);
22542
22604
  if (!file) return;
22543
22605
  setIsUploading(true);
22544
22606
  setUploadProgress(0);
@@ -22663,7 +22725,7 @@ function VideoSourceSelector({
22663
22725
  }
22664
22726
  function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
22665
22727
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
22666
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "file", url: videoUrl }) }),
22728
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: videoUrl }) }),
22667
22729
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22668
22730
  "button",
22669
22731
  {
@@ -22714,7 +22776,7 @@ function SubtitlesEditor({
22714
22776
  {
22715
22777
  id,
22716
22778
  value: subtitles || "",
22717
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _528 => _528(e.target.value)]),
22779
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _531 => _531(e.target.value)]),
22718
22780
  placeholder,
22719
22781
  disabled: disabled || !onSubtitlesChange,
22720
22782
  className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
@@ -22943,7 +23005,7 @@ var AIEnrichSection = ({
22943
23005
  }) => {
22944
23006
  const hasResults = status === "success" || status === "error";
22945
23007
  const shouldDisable = disabled || !canEnrich;
22946
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _529 => _529.filter, 'call', _530 => _530((f) => !f.isFilled)]) || [];
23008
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _532 => _532.filter, 'call', _533 => _533((f) => !f.isFilled)]) || [];
22947
23009
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22948
23010
  "div",
22949
23011
  {
@@ -22975,7 +23037,7 @@ var AIEnrichSection = ({
22975
23037
  {
22976
23038
  id: "ai-enrich-custom-instructions",
22977
23039
  value: _nullishCoalesce(customInstructions, () => ( "")),
22978
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _531 => _531(e.target.value)]),
23040
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _534 => _534(e.target.value)]),
22979
23041
  placeholder: customInstructionsPlaceholder,
22980
23042
  disabled: loading,
22981
23043
  maxLength: customInstructionsMaxLength,
@@ -23097,7 +23159,7 @@ function HighlightVideoSection({
23097
23159
  input.accept = "video/*";
23098
23160
  input.onchange = async (e) => {
23099
23161
  const target = e.target;
23100
- const file = _optionalChain([target, 'access', _532 => _532.files, 'optionalAccess', _533 => _533[0]]);
23162
+ const file = _optionalChain([target, 'access', _535 => _535.files, 'optionalAccess', _536 => _536[0]]);
23101
23163
  if (!file) return;
23102
23164
  setUploadError(null);
23103
23165
  try {
@@ -23187,7 +23249,7 @@ function HighlightVideoSection({
23187
23249
  // Default simple preview — the <Video> SSOT (MuxPlayer) plays
23188
23250
  // MP4 and Mux HLS alike; aspect-video box reserves the height.
23189
23251
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
23190
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
23252
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
23191
23253
  onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23192
23254
  "button",
23193
23255
  {
@@ -23524,7 +23586,7 @@ function HighlightVideoPreview({
23524
23586
  input.accept = "video/*";
23525
23587
  input.onchange = async (e) => {
23526
23588
  const target = e.target;
23527
- const file = _optionalChain([target, 'access', _534 => _534.files, 'optionalAccess', _535 => _535[0]]);
23589
+ const file = _optionalChain([target, 'access', _537 => _537.files, 'optionalAccess', _538 => _538[0]]);
23528
23590
  if (!file) return;
23529
23591
  await onUpload(file);
23530
23592
  };
@@ -23708,7 +23770,7 @@ function HighlightVideoCombinedSection({
23708
23770
  input.accept = "video/*";
23709
23771
  input.onchange = async (e) => {
23710
23772
  const target = e.target;
23711
- const file = _optionalChain([target, 'access', _536 => _536.files, 'optionalAccess', _537 => _537[0]]);
23773
+ const file = _optionalChain([target, 'access', _539 => _539.files, 'optionalAccess', _540 => _540[0]]);
23712
23774
  if (!file) return;
23713
23775
  await onUpload(file);
23714
23776
  };
@@ -23923,7 +23985,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
23923
23985
  ] });
23924
23986
  };
23925
23987
  var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
23926
- const { innerRef, containerStyle } = _chunkRKGOVTXZcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
23988
+ const { innerRef, containerStyle } = _chunkVYQNM75Rcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
23927
23989
  const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
23928
23990
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23929
23991
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -24091,7 +24153,7 @@ function WaitlistForm({
24091
24153
  const { toast } = _chunkLEISUAHFcjs.useToast.call(void 0, );
24092
24154
  const { honeypotInputProps, getSignals, resetSignals } = _chunkLEISUAHFcjs.useHumanitySignals.call(void 0, );
24093
24155
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
24094
- const isClient = _chunkRKGOVTXZcjs.useIsHydrated.call(void 0, );
24156
+ const isClient = _chunkVYQNM75Rcjs.useIsHydrated.call(void 0, );
24095
24157
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
24096
24158
  const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
24097
24159
  const isMailDomainGeneric = hasGenericEmailDomain(email);
@@ -24407,19 +24469,19 @@ function NotificationsProvider({
24407
24469
  }, []);
24408
24470
  const markRead = _react.useCallback.call(void 0, (id) => {
24409
24471
  dispatch({ type: "markRead", id });
24410
- void _optionalChain([actionsRef, 'access', _538 => _538.current, 'optionalAccess', _539 => _539.onMarkRead, 'optionalCall', _540 => _540(id)]);
24472
+ void _optionalChain([actionsRef, 'access', _541 => _541.current, 'optionalAccess', _542 => _542.onMarkRead, 'optionalCall', _543 => _543(id)]);
24411
24473
  }, []);
24412
24474
  const markAllRead = _react.useCallback.call(void 0, () => {
24413
24475
  dispatch({ type: "markAllRead" });
24414
- void _optionalChain([actionsRef, 'access', _541 => _541.current, 'optionalAccess', _542 => _542.onMarkAllRead, 'optionalCall', _543 => _543()]);
24476
+ void _optionalChain([actionsRef, 'access', _544 => _544.current, 'optionalAccess', _545 => _545.onMarkAllRead, 'optionalCall', _546 => _546()]);
24415
24477
  }, []);
24416
24478
  const markSettled = _react.useCallback.call(void 0, (id) => {
24417
24479
  dispatch({ type: "markSettled", id });
24418
- void _optionalChain([actionsRef, 'access', _544 => _544.current, 'optionalAccess', _545 => _545.onMarkSettled, 'optionalCall', _546 => _546(id)]);
24480
+ void _optionalChain([actionsRef, 'access', _547 => _547.current, 'optionalAccess', _548 => _548.onMarkSettled, 'optionalCall', _549 => _549(id)]);
24419
24481
  }, []);
24420
24482
  const remove = _react.useCallback.call(void 0, (id) => {
24421
24483
  dispatch({ type: "remove", id });
24422
- void _optionalChain([actionsRef, 'access', _547 => _547.current, 'optionalAccess', _548 => _548.onRemove, 'optionalCall', _549 => _549(id)]);
24484
+ void _optionalChain([actionsRef, 'access', _550 => _550.current, 'optionalAccess', _551 => _551.onRemove, 'optionalCall', _552 => _552(id)]);
24423
24485
  }, []);
24424
24486
  const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
24425
24487
  const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
@@ -24428,14 +24490,14 @@ function NotificationsProvider({
24428
24490
  const setShowPopups = _react.useCallback.call(void 0,
24429
24491
  (value2) => {
24430
24492
  setShowPopupsState(value2);
24431
- _optionalChain([onShowPopupsChange, 'optionalCall', _550 => _550(value2)]);
24493
+ _optionalChain([onShowPopupsChange, 'optionalCall', _553 => _553(value2)]);
24432
24494
  },
24433
24495
  [onShowPopupsChange]
24434
24496
  );
24435
24497
  const setShowDesktopPopups = _react.useCallback.call(void 0,
24436
24498
  (value2) => {
24437
24499
  setShowDesktopPopupsState(value2);
24438
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _551 => _551(value2)]);
24500
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _554 => _554(value2)]);
24439
24501
  },
24440
24502
  [onShowDesktopPopupsChange]
24441
24503
  );
@@ -24551,7 +24613,7 @@ var AppLayoutDrawerRoot = ({
24551
24613
  const handleOpenChange = _react.useCallback.call(void 0,
24552
24614
  (next) => {
24553
24615
  if (!isControlled) setInternalOpen(next);
24554
- _optionalChain([onOpenChange, 'optionalCall', _552 => _552(next)]);
24616
+ _optionalChain([onOpenChange, 'optionalCall', _555 => _555(next)]);
24555
24617
  },
24556
24618
  [isControlled, onOpenChange]
24557
24619
  );
@@ -24568,9 +24630,9 @@ var AppLayoutDrawerRoot = ({
24568
24630
  }
24569
24631
  }));
24570
24632
  _react.useEffect.call(void 0, () => {
24571
- if (open) _optionalChain([coordination, 'optionalAccess', _553 => _553.notifyDrawerDidOpen, 'call', _554 => _554(selfHandle)]);
24633
+ if (open) _optionalChain([coordination, 'optionalAccess', _556 => _556.notifyDrawerDidOpen, 'call', _557 => _557(selfHandle)]);
24572
24634
  }, [open, coordination, selfHandle]);
24573
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _555 => _555.registerDrawer, 'call', _556 => _556(selfHandle)]), [coordination, selfHandle]);
24635
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _558 => _558.registerDrawer, 'call', _559 => _559(selfHandle)]), [coordination, selfHandle]);
24574
24636
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
24575
24637
  };
24576
24638
  AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
@@ -24895,7 +24957,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
24895
24957
  "data-state": open ? "open" : "closed",
24896
24958
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
24897
24959
  "absolute inset-0 z-[102] outline-none data-[state=closed]:pointer-events-none data-[state=open]:pointer-events-auto data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
24898
- _chunkRKGOVTXZcjs.OVERLAY_BACKDROP_CLASS,
24960
+ _chunkVYQNM75Rcjs.OVERLAY_BACKDROP_CLASS,
24899
24961
  // Persist mode only: hold the fade-out's final (transparent) frame
24900
24962
  // so the backdrop doesn't snap back to opacity 1 and dim the whole
24901
24963
  // content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
@@ -24923,10 +24985,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
24923
24985
  ),
24924
24986
  style,
24925
24987
  onInteractOutside: (event) => {
24926
- _optionalChain([onInteractOutside, 'optionalCall', _557 => _557(event)]);
24988
+ _optionalChain([onInteractOutside, 'optionalCall', _560 => _560(event)]);
24927
24989
  if (event.defaultPrevented) return;
24928
24990
  const target = event.target;
24929
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _558 => _558.contains, 'call', _559 => _559(target)]);
24991
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _561 => _561.contains, 'call', _562 => _562(target)]);
24930
24992
  if (!isInsideContainer) {
24931
24993
  event.preventDefault();
24932
24994
  return;
@@ -24971,11 +25033,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
24971
25033
  }
24972
25034
  );
24973
25035
  AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
24974
- var AppLayoutDrawerHeader = _chunkRKGOVTXZcjs.DrawerHeader;
24975
- var AppLayoutDrawerTitle = _chunkRKGOVTXZcjs.DrawerTitle;
24976
- var AppLayoutDrawerDescription = _chunkRKGOVTXZcjs.DrawerDescription;
24977
- var AppLayoutDrawerBody = _chunkRKGOVTXZcjs.DrawerBody;
24978
- var AppLayoutDrawerFooter = _chunkRKGOVTXZcjs.DrawerFooter;
25036
+ var AppLayoutDrawerHeader = _chunkVYQNM75Rcjs.DrawerHeader;
25037
+ var AppLayoutDrawerTitle = _chunkVYQNM75Rcjs.DrawerTitle;
25038
+ var AppLayoutDrawerDescription = _chunkVYQNM75Rcjs.DrawerDescription;
25039
+ var AppLayoutDrawerBody = _chunkVYQNM75Rcjs.DrawerBody;
25040
+ var AppLayoutDrawerFooter = _chunkVYQNM75Rcjs.DrawerFooter;
24979
25041
 
24980
25042
  // src/components/features/notifications/notification-tile.tsx
24981
25043
 
@@ -25029,7 +25091,7 @@ function NotificationTile({
25029
25091
  if (!counting) return void 0;
25030
25092
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
25031
25093
  const timer = window.setTimeout(() => {
25032
- _optionalChain([onSettle, 'optionalCall', _560 => _560(id)]);
25094
+ _optionalChain([onSettle, 'optionalCall', _563 => _563(id)]);
25033
25095
  }, remaining);
25034
25096
  return () => window.clearTimeout(timer);
25035
25097
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -25063,13 +25125,13 @@ function NotificationTile({
25063
25125
  }
25064
25126
  ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkLEISUAHFcjs.dotColorByVariant[accentVariant]) }))) }),
25065
25127
  type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "min-w-0 flex-1 truncate text-h5", typeColorByVariant[accentVariant]), title: type, children: type }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1" }),
25066
- !isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkRKGOVTXZcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
25128
+ !isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkVYQNM75Rcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
25067
25129
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
25068
25130
  {
25069
25131
  active: isLive,
25070
25132
  label: "Dismiss notification",
25071
25133
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
25072
- onClick: () => _optionalChain([onSettle, 'optionalCall', _561 => _561(id)])
25134
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _564 => _564(id)])
25073
25135
  },
25074
25136
  {
25075
25137
  active: !isLive,
@@ -25160,7 +25222,7 @@ function NotificationDrawer({
25160
25222
  const unreadNotifications = notifications.filter((n) => !n.read);
25161
25223
  const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
25162
25224
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25163
- _chunkRKGOVTXZcjs.DrawerTitle,
25225
+ _chunkVYQNM75Rcjs.DrawerTitle,
25164
25226
  {
25165
25227
  hideClose: true,
25166
25228
  className: "truncate",
@@ -25219,8 +25281,8 @@ function NotificationDrawer({
25219
25281
  }
25220
25282
  ) });
25221
25283
  }
25222
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25223
- _chunkRKGOVTXZcjs.DrawerContent,
25284
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25285
+ _chunkVYQNM75Rcjs.DrawerContent,
25224
25286
  {
25225
25287
  side: "right",
25226
25288
  "aria-describedby": void 0,
@@ -25257,7 +25319,7 @@ function DrawerScrollList({
25257
25319
  if (!sentinel || !root) return void 0;
25258
25320
  const observer = new IntersectionObserver(
25259
25321
  (entries) => {
25260
- if (_optionalChain([entries, 'access', _562 => _562[0], 'optionalAccess', _563 => _563.isIntersecting])) _optionalChain([loadMoreRef, 'access', _564 => _564.current, 'optionalCall', _565 => _565()]);
25322
+ if (_optionalChain([entries, 'access', _565 => _565[0], 'optionalAccess', _566 => _566.isIntersecting])) _optionalChain([loadMoreRef, 'access', _567 => _567.current, 'optionalCall', _568 => _568()]);
25261
25323
  },
25262
25324
  { root, rootMargin: loadMoreRootMargin }
25263
25325
  );
@@ -25272,7 +25334,7 @@ function DrawerScrollList({
25272
25334
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
25273
25335
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
25274
25336
  unreadNotifications.map((n) => {
25275
- const custom = _optionalChain([renderTile, 'optionalCall', _566 => _566(n, { onComplete, onSettle, liveDurationMs })]);
25337
+ const custom = _optionalChain([renderTile, 'optionalCall', _569 => _569(n, { onComplete, onSettle, liveDurationMs })]);
25276
25338
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
25277
25339
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25278
25340
  NotificationTile,
@@ -25392,7 +25454,7 @@ function NotificationPopups({
25392
25454
  }) {
25393
25455
  const ctx = useOptionalNotifications();
25394
25456
  const [now, setNow] = _react.useState.call(void 0, () => Date.now());
25395
- const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _567 => _567.notifications, 'access', _568 => _568.some, 'call', _569 => _569((n) => !n.read && !n.settled)]));
25457
+ const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _570 => _570.notifications, 'access', _571 => _571.some, 'call', _572 => _572((n) => !n.read && !n.settled)]));
25396
25458
  _react.useEffect.call(void 0, () => {
25397
25459
  if (!hasAgeingNotifications) return void 0;
25398
25460
  const id = setInterval(() => setNow(Date.now()), 500);
@@ -25435,7 +25497,7 @@ function NotificationPopups({
25435
25497
  className
25436
25498
  ),
25437
25499
  children: live.map((n) => {
25438
- const custom = _optionalChain([renderTile, 'optionalCall', _570 => _570(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
25500
+ const custom = _optionalChain([renderTile, 'optionalCall', _573 => _573(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
25439
25501
  if (custom) {
25440
25502
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
25441
25503
  }
@@ -25474,34 +25536,34 @@ function NotificationPopups({
25474
25536
  // src/components/features/notifications/types.ts
25475
25537
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
25476
25538
  function isApprovalNotification(notification) {
25477
- return _optionalChain([notification, 'access', _571 => _571.meta, 'optionalAccess', _572 => _572.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
25539
+ return _optionalChain([notification, 'access', _574 => _574.meta, 'optionalAccess', _575 => _575.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
25478
25540
  }
25479
25541
  function getApprovalMeta(notification) {
25480
25542
  if (!isApprovalNotification(notification)) return null;
25481
25543
  const meta = notification.meta;
25482
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _573 => _573.approvalRequestId]);
25483
- const toolCalls = _optionalChain([meta, 'optionalAccess', _574 => _574.toolCalls]);
25544
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _576 => _576.approvalRequestId]);
25545
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _577 => _577.toolCalls]);
25484
25546
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
25485
25547
  return {
25486
25548
  approvalRequestId,
25487
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _575 => _575.dialogId]), () => ( null)),
25488
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _576 => _576.ticketId]), () => ( null)),
25489
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.approvalType]), () => ( null)),
25490
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.resolution]), () => ( null)),
25491
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.resolvedByName]), () => ( null)),
25549
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.dialogId]), () => ( null)),
25550
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.ticketId]), () => ( null)),
25551
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.approvalType]), () => ( null)),
25552
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _581 => _581.resolution]), () => ( null)),
25553
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.resolvedByName]), () => ( null)),
25492
25554
  toolCalls
25493
25555
  };
25494
25556
  }
25495
25557
  function resolutionToStatus(resolution) {
25496
25558
  switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
25497
25559
  case "APPROVED":
25498
- return _chunkRKGOVTXZcjs.APPROVAL_STATUS.APPROVED;
25560
+ return _chunkVYQNM75Rcjs.APPROVAL_STATUS.APPROVED;
25499
25561
  case "REJECTED":
25500
- return _chunkRKGOVTXZcjs.APPROVAL_STATUS.REJECTED;
25562
+ return _chunkVYQNM75Rcjs.APPROVAL_STATUS.REJECTED;
25501
25563
  case "CANCELLED":
25502
- return _chunkRKGOVTXZcjs.APPROVAL_STATUS.CANCELLED;
25564
+ return _chunkVYQNM75Rcjs.APPROVAL_STATUS.CANCELLED;
25503
25565
  default:
25504
- return _chunkRKGOVTXZcjs.APPROVAL_STATUS.PENDING;
25566
+ return _chunkVYQNM75Rcjs.APPROVAL_STATUS.PENDING;
25505
25567
  }
25506
25568
  }
25507
25569
  function approvalMetaToBatchData(approval) {
@@ -25538,10 +25600,10 @@ function ApprovalRequestNotificationTile({
25538
25600
  const [processing, setProcessing] = _react.useState.call(void 0, false);
25539
25601
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
25540
25602
  const approval = getApprovalMeta(notification);
25541
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _580 => _580.resolution]));
25603
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _583 => _583.resolution]));
25542
25604
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
25543
25605
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
25544
- const { innerRef, containerStyle } = _chunkRKGOVTXZcjs.useCollapsible.call(void 0, { expanded });
25606
+ const { innerRef, containerStyle } = _chunkVYQNM75Rcjs.useCollapsible.call(void 0, { expanded });
25545
25607
  if (!approval || !batchData) return null;
25546
25608
  const tileNotification = {
25547
25609
  ...notification,
@@ -25594,7 +25656,7 @@ function ApprovalRequestNotificationTile({
25594
25656
  }
25595
25657
  )
25596
25658
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
25597
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ApprovalStatusTag, { status }),
25659
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ApprovalStatusTag, { status }),
25598
25660
  approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
25599
25661
  "by ",
25600
25662
  approval.resolvedByName
@@ -25612,12 +25674,12 @@ function ApprovalRequestNotificationTile({
25612
25674
  "aria-expanded": expanded,
25613
25675
  "aria-label": toggleLabel,
25614
25676
  className: "ml-auto w-6 shrink-0 px-0 md:w-8",
25615
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.ExpandChevron, { expanded })
25677
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ExpandChevron, { expanded })
25616
25678
  }
25617
25679
  )
25618
25680
  ] }),
25619
25681
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25620
- _chunkRKGOVTXZcjs.ApprovalBatchMessage,
25682
+ _chunkVYQNM75Rcjs.ApprovalBatchMessage,
25621
25683
  {
25622
25684
  data: batchData,
25623
25685
  showExecutionStatus: false,
@@ -25860,7 +25922,7 @@ function TimeTrackerPanel({
25860
25922
  error: showFieldError ? "Required if no notes added" : void 0,
25861
25923
  disableClientFilter: !!onTicketSearch,
25862
25924
  onInputChange: (value, reason) => {
25863
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _581 => _581(value)]);
25925
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _584 => _584(value)]);
25864
25926
  }
25865
25927
  }
25866
25928
  ),
@@ -25875,7 +25937,7 @@ function TimeTrackerPanel({
25875
25937
  disabled: customerLocked,
25876
25938
  disableClientFilter: !!onCustomerSearch,
25877
25939
  onInputChange: (value, reason) => {
25878
- if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _582 => _582(value)]);
25940
+ if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _585 => _585(value)]);
25879
25941
  },
25880
25942
  startAdornment: customerStartAdornment,
25881
25943
  renderOption: renderCustomerOption
@@ -25948,7 +26010,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
25948
26010
  function StatusTag({ status }) {
25949
26011
  if (status === "tracking") {
25950
26012
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25951
- _chunkRKGOVTXZcjs.Tag,
26013
+ _chunkVYQNM75Rcjs.Tag,
25952
26014
  {
25953
26015
  variant: "success",
25954
26016
  className: STATUS_TAG_SKIN,
@@ -25958,9 +26020,9 @@ function StatusTag({ status }) {
25958
26020
  );
25959
26021
  }
25960
26022
  if (status === "paused") {
25961
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
26023
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
25962
26024
  }
25963
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
26025
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
25964
26026
  }
25965
26027
  function LastEntryRow({ entry, onClick }) {
25966
26028
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] border-b border-ods-border bg-ods-bg px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)] last:border-b-0", children: [
@@ -25977,7 +26039,7 @@ function LastEntryRow({ entry, onClick }) {
25977
26039
  {
25978
26040
  variant: "outline",
25979
26041
  size: "icon",
25980
- onClick: () => _optionalChain([onClick, 'optionalCall', _583 => _583(entry)]),
26042
+ onClick: () => _optionalChain([onClick, 'optionalCall', _586 => _586(entry)]),
25981
26043
  disabled: !onClick,
25982
26044
  "aria-label": `Open entry: ${entry.title}`,
25983
26045
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -26061,28 +26123,28 @@ function HeaderButton({
26061
26123
  function TimeTrackerHeaderButton({ className, disabled }) {
26062
26124
  const ctx = useOptionalTimeTracker();
26063
26125
  const elapsedLabel = useTrackerClock({
26064
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _584 => _584.status]), () => ( "ready")),
26065
- runningSince: _optionalChain([ctx, 'optionalAccess', _585 => _585.runningSince]),
26066
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _586 => _586.accumulatedMs])
26126
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _587 => _587.status]), () => ( "ready")),
26127
+ runningSince: _optionalChain([ctx, 'optionalAccess', _588 => _588.runningSince]),
26128
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _589 => _589.accumulatedMs])
26067
26129
  });
26068
26130
  const layoutContainer = useAppLayoutDrawerContainer();
26069
26131
  const coordination = useAppLayoutDrawerCoordination();
26070
- const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _587 => _587.isOpen]), () => ( false));
26132
+ const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _590 => _590.isOpen]), () => ( false));
26071
26133
  const isOpenRef = _react.useRef.call(void 0, isOpen);
26072
- const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _588 => _588.close]));
26134
+ const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _591 => _591.close]));
26073
26135
  _react.useEffect.call(void 0, () => {
26074
26136
  isOpenRef.current = isOpen;
26075
- closeRef.current = _optionalChain([ctx, 'optionalAccess', _589 => _589.close]);
26137
+ closeRef.current = _optionalChain([ctx, 'optionalAccess', _592 => _592.close]);
26076
26138
  });
26077
26139
  const [selfHandle] = _react.useState.call(void 0, () => ({
26078
26140
  close: () => {
26079
- if (isOpenRef.current) _optionalChain([closeRef, 'access', _590 => _590.current, 'optionalCall', _591 => _591()]);
26141
+ if (isOpenRef.current) _optionalChain([closeRef, 'access', _593 => _593.current, 'optionalCall', _594 => _594()]);
26080
26142
  }
26081
26143
  }));
26082
26144
  _react.useEffect.call(void 0, () => {
26083
- if (isOpen) _optionalChain([coordination, 'optionalAccess', _592 => _592.notifyDrawerDidOpen, 'call', _593 => _593(selfHandle)]);
26145
+ if (isOpen) _optionalChain([coordination, 'optionalAccess', _595 => _595.notifyDrawerDidOpen, 'call', _596 => _596(selfHandle)]);
26084
26146
  }, [isOpen, coordination, selfHandle]);
26085
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _594 => _594.registerDrawer, 'call', _595 => _595(selfHandle)]), [coordination, selfHandle]);
26147
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _597 => _597.registerDrawer, 'call', _598 => _598(selfHandle)]), [coordination, selfHandle]);
26086
26148
  if (!ctx) return null;
26087
26149
  const { open, close, status } = ctx;
26088
26150
  const isPaused = status === "paused";
@@ -26129,7 +26191,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
26129
26191
  "data-state": isOpen ? "open" : "closed",
26130
26192
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
26131
26193
  layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
26132
- _chunkRKGOVTXZcjs.OVERLAY_BACKDROP_CLASS,
26194
+ _chunkVYQNM75Rcjs.OVERLAY_BACKDROP_CLASS,
26133
26195
  "data-[state=open]:animate-in data-[state=open]:fade-in-0",
26134
26196
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
26135
26197
  )
@@ -26214,7 +26276,7 @@ function autoScrollAncestors(element) {
26214
26276
 
26215
26277
  // src/components/features/board/aim.ts
26216
26278
  var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
26217
- var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _596 => _596.find, 'call', _597 => _597((c) => c.id === columnId), 'optionalAccess', _598 => _598.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
26279
+ var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _599 => _599.find, 'call', _600 => _600((c) => c.id === columnId), 'optionalAccess', _601 => _601.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
26218
26280
  function laneOf(columns, ticketId) {
26219
26281
  return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
26220
26282
  }
@@ -26258,11 +26320,11 @@ function aimToChange(columns, ticketId, aim) {
26258
26320
  const lane = laneOf(columns, ticketId);
26259
26321
  if (!lane) return null;
26260
26322
  const others = othersIn(columns, aim.columnId, ticketId);
26261
- const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _599 => _599[aim.index - 1], 'optionalAccess', _600 => _600.id]), () => ( null));
26262
- const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _601 => _601[aim.index], 'optionalAccess', _602 => _602.id]), () => ( null));
26323
+ const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _602 => _602[aim.index - 1], 'optionalAccess', _603 => _603.id]), () => ( null));
26324
+ const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _604 => _604[aim.index], 'optionalAccess', _605 => _605.id]), () => ( null));
26263
26325
  if (lane.id === aim.columnId) {
26264
26326
  const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
26265
- if ((_nullishCoalesce(_optionalChain([lane, 'access', _603 => _603.tickets, 'access', _604 => _604[currentIndex - 1], 'optionalAccess', _605 => _605.id]), () => ( null))) === afterTicketId) return null;
26327
+ if ((_nullishCoalesce(_optionalChain([lane, 'access', _606 => _606.tickets, 'access', _607 => _607[currentIndex - 1], 'optionalAccess', _608 => _608.id]), () => ( null))) === afterTicketId) return null;
26266
26328
  }
26267
26329
  return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
26268
26330
  }
@@ -26283,7 +26345,7 @@ function BoardColumnHeader({
26283
26345
  }) {
26284
26346
  const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
26285
26347
  const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
26286
- const useStatusVariant = _chunkRKGOVTXZcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
26348
+ const useStatusVariant = _chunkVYQNM75Rcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
26287
26349
  if (collapsed) {
26288
26350
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
26289
26351
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -26298,7 +26360,7 @@ function BoardColumnHeader({
26298
26360
  }
26299
26361
  ),
26300
26362
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26301
- _chunkRKGOVTXZcjs.TicketStatusTag,
26363
+ _chunkVYQNM75Rcjs.TicketStatusTag,
26302
26364
  {
26303
26365
  status: tagStatus,
26304
26366
  label: column.label,
@@ -26311,7 +26373,7 @@ function BoardColumnHeader({
26311
26373
  }
26312
26374
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
26313
26375
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
26314
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
26376
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
26315
26377
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
26316
26378
  ] }),
26317
26379
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
@@ -26462,7 +26524,7 @@ function holdMoveDragEffect(element) {
26462
26524
 
26463
26525
  function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
26464
26526
  const [expanded, setExpanded] = _react.useState.call(void 0, false);
26465
- const { innerRef, containerStyle } = _chunkRKGOVTXZcjs.useCollapsible.call(void 0, { expanded });
26527
+ const { innerRef, containerStyle } = _chunkVYQNM75Rcjs.useCollapsible.call(void 0, { expanded });
26466
26528
  const isAdmin = pendingApproval.approvalType === "ADMIN";
26467
26529
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
26468
26530
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -26491,7 +26553,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
26491
26553
  }
26492
26554
  ),
26493
26555
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: "pt-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26494
- _chunkRKGOVTXZcjs.ApprovalBatchMessage,
26556
+ _chunkVYQNM75Rcjs.ApprovalBatchMessage,
26495
26557
  {
26496
26558
  className: "mb-0",
26497
26559
  data: {
@@ -26532,14 +26594,14 @@ function useIsLanding(ticketId) {
26532
26594
  return _react.useContext.call(void 0, LandingCardContext) === ticketId;
26533
26595
  }
26534
26596
  function hasMoveSettled(columns, move) {
26535
- const tickets = _optionalChain([columns, 'access', _606 => _606.find, 'call', _607 => _607((c) => c.id === move.toColumnId), 'optionalAccess', _608 => _608.tickets]);
26597
+ const tickets = _optionalChain([columns, 'access', _609 => _609.find, 'call', _610 => _610((c) => c.id === move.toColumnId), 'optionalAccess', _611 => _611.tickets]);
26536
26598
  if (!tickets) return false;
26537
26599
  const index = tickets.findIndex((t) => t.id === move.ticketId);
26538
26600
  if (index < 0) return false;
26539
26601
  if (move.fromColumnId === move.toColumnId) {
26540
- return (_nullishCoalesce(_optionalChain([tickets, 'access', _609 => _609[index - 1], 'optionalAccess', _610 => _610.id]), () => ( null))) === move.afterTicketId;
26602
+ return (_nullishCoalesce(_optionalChain([tickets, 'access', _612 => _612[index - 1], 'optionalAccess', _613 => _613.id]), () => ( null))) === move.afterTicketId;
26541
26603
  }
26542
- return !_optionalChain([columns, 'access', _611 => _611.find, 'call', _612 => _612((c) => c.id === move.fromColumnId), 'optionalAccess', _613 => _613.tickets, 'access', _614 => _614.some, 'call', _615 => _615((t) => t.id === move.ticketId)]);
26604
+ return !_optionalChain([columns, 'access', _614 => _614.find, 'call', _615 => _615((c) => c.id === move.fromColumnId), 'optionalAccess', _616 => _616.tickets, 'access', _617 => _617.some, 'call', _618 => _618((t) => t.id === move.ticketId)]);
26543
26605
  }
26544
26606
 
26545
26607
  // src/components/features/board/ticket-card.tsx
@@ -26563,10 +26625,10 @@ var ACTIVITY_DEFAULT_LABEL = {
26563
26625
  var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left";
26564
26626
  function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
26565
26627
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
26566
- const newMessageTextColor = columnColor ? _chunkRKGOVTXZcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
26567
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _616 => _616.deviceHostnames, 'optionalAccess', _617 => _617.length]) || ticket.organizationName);
26568
- const deviceText = [_optionalChain([ticket, 'access', _618 => _618.deviceHostnames, 'optionalAccess', _619 => _619.join, 'call', _620 => _620(", ")]), ticket.organizationName].filter(Boolean).join(", ");
26569
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _621 => _621.assignees, 'optionalAccess', _622 => _622.length]) || renderAssignSlot);
26628
+ const newMessageTextColor = columnColor ? _chunkVYQNM75Rcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
26629
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.length]) || ticket.organizationName);
26630
+ const deviceText = [_optionalChain([ticket, 'access', _621 => _621.deviceHostnames, 'optionalAccess', _622 => _622.join, 'call', _623 => _623(", ")]), ticket.organizationName].filter(Boolean).join(", ");
26631
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _624 => _624.assignees, 'optionalAccess', _625 => _625.length]) || renderAssignSlot);
26570
26632
  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: [
26571
26633
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26572
26634
  _chunkGSQM4PDRcjs.Flag02Icon,
@@ -26575,7 +26637,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
26575
26637
  "aria-label": `Priority: ${ticket.priority}`
26576
26638
  }
26577
26639
  ),
26578
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _623 => _623.assignees, 'optionalAccess', _624 => _624.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
26640
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _626 => _626.assignees, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
26579
26641
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
26580
26642
  (a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26581
26643
  DeletedUserAvatar,
@@ -26602,8 +26664,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
26602
26664
  ] })
26603
26665
  ] }) : null
26604
26666
  ] }) : null;
26605
- const timestampLabel = ticket.createdAt ? _chunkRKGOVTXZcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
26606
- const tooltipLabel = ticket.createdAt ? _chunkRKGOVTXZcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
26667
+ const timestampLabel = ticket.createdAt ? _chunkVYQNM75Rcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
26668
+ const tooltipLabel = ticket.createdAt ? _chunkVYQNM75Rcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
26607
26669
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
26608
26670
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
26609
26671
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
@@ -26615,10 +26677,10 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
26615
26677
  ] }),
26616
26678
  rightSection
26617
26679
  ] }),
26618
- _optionalChain([ticket, 'access', _625 => _625.tags, 'optionalAccess', _626 => _626.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
26619
- timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkRKGOVTXZcjs.Tooltip, { children: [
26620
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
26621
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.TooltipContent, { children: tooltipLabel })
26680
+ _optionalChain([ticket, 'access', _628 => _628.tags, 'optionalAccess', _629 => _629.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
26681
+ timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { children: [
26682
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
26683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { children: tooltipLabel })
26622
26684
  ] }) }),
26623
26685
  ticket.escalatedByUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)] text-ods-open-yellow text-h6", children: [
26624
26686
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
@@ -26638,7 +26700,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
26638
26700
  }
26639
26701
  ),
26640
26702
  showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26641
- _chunkRKGOVTXZcjs.Tag,
26703
+ _chunkVYQNM75Rcjs.Tag,
26642
26704
  {
26643
26705
  label: "New Message",
26644
26706
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
@@ -26682,7 +26744,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
26682
26744
  const isLanding = useIsLanding(ticket.id);
26683
26745
  const aim = useDropAim();
26684
26746
  const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
26685
- const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _627 => _627.ticket, 'access', _628 => _628.id]) === ticket.id;
26747
+ const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _630 => _630.ticket, 'access', _631 => _631.id]) === ticket.id;
26686
26748
  const lift = useBoardLift();
26687
26749
  const handleKeyDown = (e) => {
26688
26750
  if (e.key !== " " || dragDisabled || !lift) return;
@@ -26852,8 +26914,8 @@ function TicketTagRow({ tags }) {
26852
26914
  const visible = tags.slice(0, MAX_VISIBLE_TAGS);
26853
26915
  const hidden = tags.length - visible.length;
26854
26916
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
26855
- visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: "outline", label: tag }, tag)),
26856
- hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRKGOVTXZcjs.Tag, { variant: "outline", label: `+${hidden}` })
26917
+ visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "outline", label: tag }, tag)),
26918
+ hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "outline", label: `+${hidden}` })
26857
26919
  ] });
26858
26920
  }
26859
26921
 
@@ -26932,7 +26994,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
26932
26994
  // large ones like the only thing that did.
26933
26995
  getData: ({ input, element: lane, source }) => {
26934
26996
  const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
26935
- const ticketId = _optionalChain([nearest, 'optionalAccess', _629 => _629.dataset, 'access', _630 => _630.ticketId]);
26997
+ const ticketId = _optionalChain([nearest, 'optionalAccess', _632 => _632.dataset, 'access', _633 => _633.ticketId]);
26936
26998
  if (!nearest || !ticketId) return { type: "column", columnId: column.id };
26937
26999
  return _closestedge.attachClosestEdge.call(void 0,
26938
27000
  { type: "ticket", ticketId, columnId: column.id },
@@ -27020,7 +27082,7 @@ function ColumnBody({
27020
27082
  const observer = new IntersectionObserver(
27021
27083
  (entries) => {
27022
27084
  if (entries.some((e) => e.isIntersecting)) {
27023
- _optionalChain([loadMoreRef, 'access', _631 => _631.current, 'optionalCall', _632 => _632(columnIdRef.current)]);
27085
+ _optionalChain([loadMoreRef, 'access', _634 => _634.current, 'optionalCall', _635 => _635(columnIdRef.current)]);
27024
27086
  }
27025
27087
  },
27026
27088
  { root, rootMargin: loadMoreRootMargin }
@@ -27045,7 +27107,7 @@ function ColumnBody({
27045
27107
  ticket: t,
27046
27108
  columnId: column.id,
27047
27109
  columnColor: column.color,
27048
- href: _optionalChain([getTicketHref, 'optionalCall', _633 => _633(t.id)]),
27110
+ href: _optionalChain([getTicketHref, 'optionalCall', _636 => _636(t.id)]),
27049
27111
  renderAssignSlot,
27050
27112
  onApprove,
27051
27113
  onReject,
@@ -27173,7 +27235,7 @@ function Board({
27173
27235
  const [landing, setLanding] = _react.useState.call(void 0, null);
27174
27236
  const landingTimer = _react.useRef.call(void 0, null);
27175
27237
  const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
27176
- const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _634 => _634.find, 'call', _635 => _635((c) => c.id === columnId), 'optionalAccess', _636 => _636.label]), () => ( columnId)), [view]);
27238
+ const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _637 => _637.find, 'call', _638 => _638((c) => c.id === columnId), 'optionalAccess', _639 => _639.label]), () => ( columnId)), [view]);
27177
27239
  const acceptsLifted = _react.useCallback.call(void 0,
27178
27240
  (fromColumnId) => (column) => {
27179
27241
  if (column.dropDisabled || collapsed[column.id]) return false;
@@ -27187,7 +27249,7 @@ function Board({
27187
27249
  const start = initialAim(view, ticketId);
27188
27250
  if (!start) return;
27189
27251
  setLifted({ ticketId, aim: start });
27190
- const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _637 => _637(view, ticketId), 'optionalAccess', _638 => _638.tickets, 'access', _639 => _639.find, 'call', _640 => _640((t) => t.id === ticketId), 'optionalAccess', _641 => _641.title]), () => ( "Ticket"));
27252
+ const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _640 => _640(view, ticketId), 'optionalAccess', _641 => _641.tickets, 'access', _642 => _642.find, 'call', _643 => _643((t) => t.id === ticketId), 'optionalAccess', _644 => _644.title]), () => ( "Ticket"));
27191
27253
  setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
27192
27254
  },
27193
27255
  [view]
@@ -27212,11 +27274,11 @@ function Board({
27212
27274
  const walk = _react.useCallback.call(void 0,
27213
27275
  (key) => {
27214
27276
  if (!lifted) return;
27215
- const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _642 => _642(view, lifted.ticketId), 'optionalAccess', _643 => _643.id]), () => ( lifted.aim.columnId));
27277
+ const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _645 => _645(view, lifted.ticketId), 'optionalAccess', _646 => _646.id]), () => ( lifted.aim.columnId));
27216
27278
  const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
27217
27279
  if (next === lifted.aim) return;
27218
27280
  setLifted({ ...lifted, aim: next });
27219
- const total = (_nullishCoalesce(_optionalChain([view, 'access', _644 => _644.find, 'call', _645 => _645((c) => c.id === next.columnId), 'optionalAccess', _646 => _646.tickets]), () => ( []))).filter(
27281
+ const total = (_nullishCoalesce(_optionalChain([view, 'access', _647 => _647.find, 'call', _648 => _648((c) => c.id === next.columnId), 'optionalAccess', _649 => _649.tickets]), () => ( []))).filter(
27220
27282
  (t) => t.id !== lifted.ticketId
27221
27283
  ).length;
27222
27284
  setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
@@ -27243,11 +27305,11 @@ function Board({
27243
27305
  }, [lifted, drop, walk]);
27244
27306
  _react.useEffect.call(void 0, () => {
27245
27307
  if (!lifted) return;
27246
- _optionalChain([boardRef, 'access', _647 => _647.current, 'optionalAccess', _648 => _648.querySelector, 'call', _649 => _649(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _650 => _650.scrollIntoView, 'call', _651 => _651({ block: "nearest", inline: "nearest" })]);
27308
+ _optionalChain([boardRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.querySelector, 'call', _652 => _652(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _653 => _653.scrollIntoView, 'call', _654 => _654({ block: "nearest", inline: "nearest" })]);
27247
27309
  }, [lifted]);
27248
27310
  const keyboardAim = _react.useMemo.call(void 0, () => {
27249
27311
  if (!lifted) return null;
27250
- const ticket = _optionalChain([laneOf, 'call', _652 => _652(view, lifted.ticketId), 'optionalAccess', _653 => _653.tickets, 'access', _654 => _654.find, 'call', _655 => _655((t) => t.id === lifted.ticketId)]);
27312
+ const ticket = _optionalChain([laneOf, 'call', _655 => _655(view, lifted.ticketId), 'optionalAccess', _656 => _656.tickets, 'access', _657 => _657.find, 'call', _658 => _658((t) => t.id === lifted.ticketId)]);
27251
27313
  if (!ticket) return null;
27252
27314
  const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
27253
27315
  return { columnId: lifted.aim.columnId, ...anchor, ticket };
@@ -27269,7 +27331,7 @@ function Board({
27269
27331
  return { columnId: slot.columnId, ...anchor, ticket };
27270
27332
  };
27271
27333
  const aimAt = (source, targets) => {
27272
- const next = readAim(source, _optionalChain([targets, 'access', _656 => _656[0], 'optionalAccess', _657 => _657.data]));
27334
+ const next = readAim(source, _optionalChain([targets, 'access', _659 => _659[0], 'optionalAccess', _660 => _660.data]));
27273
27335
  setAim((prev) => isSameAim(prev, next) ? prev : next);
27274
27336
  };
27275
27337
  return _combine.combine.call(void 0,
@@ -27298,7 +27360,7 @@ function Board({
27298
27360
  setLanding(null);
27299
27361
  dragGeometry.current = {
27300
27362
  ticket,
27301
- columnColor: _optionalChain([columnsRef, 'access', _658 => _658.current, 'access', _659 => _659.find, 'call', _660 => _660((c) => c.id === source.data.columnId), 'optionalAccess', _661 => _661.color]),
27363
+ columnColor: _optionalChain([columnsRef, 'access', _661 => _661.current, 'access', _662 => _662.find, 'call', _663 => _663((c) => c.id === source.data.columnId), 'optionalAccess', _664 => _664.color]),
27302
27364
  width: rect.width,
27303
27365
  grabX: clientX - rect.left,
27304
27366
  grabY: clientY - rect.top
@@ -27315,7 +27377,7 @@ function Board({
27315
27377
  setAim(null);
27316
27378
  const change = resolveBoardDrop(columnsRef.current, {
27317
27379
  source: source.data,
27318
- target: _optionalChain([location, 'access', _662 => _662.current, 'access', _663 => _663.dropTargets, 'access', _664 => _664[0], 'optionalAccess', _665 => _665.data])
27380
+ target: _optionalChain([location, 'access', _665 => _665.current, 'access', _666 => _666.dropTargets, 'access', _667 => _667[0], 'optionalAccess', _668 => _668.data])
27319
27381
  });
27320
27382
  if (!change) return;
27321
27383
  setPendingMove({
@@ -27348,7 +27410,7 @@ function Board({
27348
27410
  return void 0;
27349
27411
  }
27350
27412
  const to = card.getBoundingClientRect();
27351
- const lane = _optionalChain([nearestScrollableAncestor, 'call', _666 => _666(card), 'optionalAccess', _667 => _667.getBoundingClientRect, 'call', _668 => _668()]);
27413
+ const lane = _optionalChain([nearestScrollableAncestor, 'call', _669 => _669(card), 'optionalAccess', _670 => _670.getBoundingClientRect, 'call', _671 => _671()]);
27352
27414
  if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
27353
27415
  finish();
27354
27416
  return void 0;
@@ -27407,8 +27469,8 @@ function Board({
27407
27469
  children: view.map((column, i) => {
27408
27470
  const prev = view[i - 1];
27409
27471
  const next = view[i + 1];
27410
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _669 => _669.system]));
27411
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _670 => _670.system]));
27472
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _672 => _672.system]));
27473
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _673 => _673.system]));
27412
27474
  const showGap = i > 0 && !joinLeft;
27413
27475
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
27414
27476
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -27588,13 +27650,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
27588
27650
  const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
27589
27651
  const flipTimer = _react.useRef.call(void 0, null);
27590
27652
  const readItems = _react.useCallback.call(void 0,
27591
- () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _671 => _671.current, 'optionalAccess', _672 => _672.querySelectorAll, 'call', _673 => _673(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
27653
+ () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _674 => _674.current, 'optionalAccess', _675 => _675.querySelectorAll, 'call', _676 => _676(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
27592
27654
  []
27593
27655
  );
27594
27656
  const reorder = _react.useCallback.call(void 0,
27595
27657
  (from, to) => {
27596
27658
  if (from === to) return;
27597
- const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _674 => _674.current, 'optionalCall', _675 => _675(from)]), () => ( "Item"));
27659
+ const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _677 => _677.current, 'optionalCall', _678 => _678(from)]), () => ( "Item"));
27598
27660
  setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
27599
27661
  onReorderRef.current(from, to);
27600
27662
  },
@@ -27682,7 +27744,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
27682
27744
  moving.push(item);
27683
27745
  }
27684
27746
  if (moving.length === 0) return;
27685
- void _optionalChain([listRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.offsetHeight]);
27747
+ void _optionalChain([listRef, 'access', _679 => _679.current, 'optionalAccess', _680 => _680.offsetHeight]);
27686
27748
  for (const item of moving) {
27687
27749
  item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
27688
27750
  item.style.transform = "";
@@ -27719,8 +27781,8 @@ function SortableMoveButtons({ index, count, label, className }) {
27719
27781
  if (to < 0 || to >= count) return;
27720
27782
  reorder(index, to);
27721
27783
  requestAnimationFrame(() => {
27722
- if (step === -1 && to === 0) _optionalChain([downRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.focus, 'call', _680 => _680()]);
27723
- if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.focus, 'call', _683 => _683()]);
27784
+ if (step === -1 && to === 0) _optionalChain([downRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.focus, 'call', _683 => _683()]);
27785
+ if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.focus, 'call', _686 => _686()]);
27724
27786
  });
27725
27787
  };
27726
27788
  const subject = _nullishCoalesce(label, () => ( "item"));
@@ -27768,7 +27830,7 @@ function useSortableItem() {
27768
27830
  const [handle, setHandle] = _react.useState.call(void 0, null);
27769
27831
  const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
27770
27832
  const itemRef = _react.useCallback.call(void 0, (node) => {
27771
- _optionalChain([node, 'optionalAccess', _684 => _684.setAttribute, 'call', _685 => _685(SORTABLE_ITEM_ATTRIBUTE, "")]);
27833
+ _optionalChain([node, 'optionalAccess', _687 => _687.setAttribute, 'call', _688 => _688(SORTABLE_ITEM_ATTRIBUTE, "")]);
27772
27834
  setItem(node);
27773
27835
  }, []);
27774
27836
  _react.useEffect.call(void 0, () => {
@@ -27798,7 +27860,7 @@ function useSortableItem() {
27798
27860
  if (from < 0 || to < 0 || to >= items.length) return;
27799
27861
  event.preventDefault();
27800
27862
  reorder(from, to);
27801
- requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _686 => _686.focus, 'call', _687 => _687()]));
27863
+ requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _689 => _689.focus, 'call', _690 => _690()]));
27802
27864
  },
27803
27865
  [inert, readItems, reorder, handle]
27804
27866
  );
@@ -27820,7 +27882,7 @@ function TicketStatusConfigList({
27820
27882
  onReorder,
27821
27883
  getItemLabel,
27822
27884
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
27823
- children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _688 => _688(index)]), children: (args) => renderRow(item, args) }, item.id))
27885
+ children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _691 => _691(index)]), children: (args) => renderRow(item, args) }, item.id))
27824
27886
  }
27825
27887
  );
27826
27888
  }
@@ -28410,4 +28472,4 @@ function SortableRow({
28410
28472
 
28411
28473
 
28412
28474
  exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; 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.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; 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.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; 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.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.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; 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.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; 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.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; 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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; 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.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; 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.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.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; 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.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; 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.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.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.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; 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.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; 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.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; 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.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.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; 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.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; 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.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
28413
- //# sourceMappingURL=chunk-FEVLXRTC.cjs.map
28475
+ //# sourceMappingURL=chunk-7LGVUXWE.cjs.map