@flamingo-stack/openframe-frontend-core 0.0.584 → 0.0.585-snapshot.20260903083645

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 (177) hide show
  1. package/dist/{chunk-3ELW4VML.js → chunk-2Y5UT5VF.js} +3 -3
  2. package/dist/{chunk-YFZDIEVC.js → chunk-3HYHYKNL.js} +6 -6
  3. package/dist/{chunk-5CJKZHWO.js → chunk-3JVYM4ZN.js} +5 -5
  4. package/dist/{chunk-P2VRLSAP.cjs → chunk-3WR5R6H6.cjs} +21 -21
  5. package/dist/{chunk-P2VRLSAP.cjs.map → chunk-3WR5R6H6.cjs.map} +1 -1
  6. package/dist/{chunk-UCNEQKIT.cjs → chunk-4VZFJKPT.cjs} +5 -5
  7. package/dist/{chunk-UCNEQKIT.cjs.map → chunk-4VZFJKPT.cjs.map} +1 -1
  8. package/dist/{chunk-VEHZNQ77.cjs → chunk-5LUPIYPH.cjs} +30 -30
  9. package/dist/{chunk-VEHZNQ77.cjs.map → chunk-5LUPIYPH.cjs.map} +1 -1
  10. package/dist/{chunk-TLKHLGAB.js → chunk-5OIXAV4P.js} +3 -3
  11. package/dist/{chunk-LNKULR4V.js → chunk-6EZGJZVH.js} +2 -2
  12. package/dist/{chunk-JWKAJTNA.cjs → chunk-6ZNWY6WW.cjs} +28 -28
  13. package/dist/{chunk-JWKAJTNA.cjs.map → chunk-6ZNWY6WW.cjs.map} +1 -1
  14. package/dist/{chunk-QJR32JM2.cjs → chunk-A6ETQEWK.cjs} +615 -485
  15. package/dist/chunk-A6ETQEWK.cjs.map +1 -0
  16. package/dist/{chunk-JFKK3ZOA.cjs → chunk-BMORFCT2.cjs} +57 -57
  17. package/dist/{chunk-JFKK3ZOA.cjs.map → chunk-BMORFCT2.cjs.map} +1 -1
  18. package/dist/{chunk-33DHEEMP.cjs → chunk-C3MRLZUI.cjs} +33 -33
  19. package/dist/{chunk-33DHEEMP.cjs.map → chunk-C3MRLZUI.cjs.map} +1 -1
  20. package/dist/{chunk-XWBND4G5.js → chunk-D7YISHXC.js} +17 -2
  21. package/dist/{chunk-XWBND4G5.js.map → chunk-D7YISHXC.js.map} +1 -1
  22. package/dist/{chunk-EJKEDCTH.js → chunk-DQUEVRDU.js} +7 -7
  23. package/dist/{chunk-HCKEDTKJ.cjs → chunk-EAYMX22G.cjs} +15 -15
  24. package/dist/{chunk-HCKEDTKJ.cjs.map → chunk-EAYMX22G.cjs.map} +1 -1
  25. package/dist/{chunk-NNFQLTJ3.cjs → chunk-EMF64FWA.cjs} +31 -5
  26. package/dist/chunk-EMF64FWA.cjs.map +1 -0
  27. package/dist/{chunk-IKUSKKFZ.cjs → chunk-G45RGWHF.cjs} +159 -144
  28. package/dist/chunk-G45RGWHF.cjs.map +1 -0
  29. package/dist/{chunk-TOUD3AGK.js → chunk-KLWJRGNN.js} +5 -5
  30. package/dist/{chunk-MYEG5ZDT.js → chunk-L4WLYGB4.js} +3 -3
  31. package/dist/{chunk-VZSTL5VG.js → chunk-LV6CORVJ.js} +3 -3
  32. package/dist/{chunk-MEJFHD5N.cjs → chunk-M36XSGZV.cjs} +19 -19
  33. package/dist/{chunk-MEJFHD5N.cjs.map → chunk-M36XSGZV.cjs.map} +1 -1
  34. package/dist/{chunk-MCWAZ5XI.js → chunk-NFWAL6UV.js} +2 -2
  35. package/dist/{chunk-3ZA2OYRE.cjs → chunk-NISAGFEM.cjs} +3 -3
  36. package/dist/{chunk-3ZA2OYRE.cjs.map → chunk-NISAGFEM.cjs.map} +1 -1
  37. package/dist/{chunk-7X5TCK4R.cjs → chunk-NYLWMAHP.cjs} +10 -10
  38. package/dist/{chunk-7X5TCK4R.cjs.map → chunk-NYLWMAHP.cjs.map} +1 -1
  39. package/dist/{chunk-RURZ6QLN.js → chunk-OZNFPQT5.js} +3 -3
  40. package/dist/{chunk-VOAZU46B.cjs → chunk-P2CKLIOM.cjs} +80 -80
  41. package/dist/{chunk-VOAZU46B.cjs.map → chunk-P2CKLIOM.cjs.map} +1 -1
  42. package/dist/{chunk-KP6VJP36.js → chunk-PLMJVA2H.js} +4 -4
  43. package/dist/{chunk-JAJQ5P2Q.cjs → chunk-QZYYNBMI.cjs} +28 -28
  44. package/dist/{chunk-JAJQ5P2Q.cjs.map → chunk-QZYYNBMI.cjs.map} +1 -1
  45. package/dist/{chunk-4T5KOD3G.js → chunk-S7YXLZNG.js} +6 -6
  46. package/dist/{chunk-Q66AMADB.cjs → chunk-SSGM2NKA.cjs} +6 -6
  47. package/dist/{chunk-Q66AMADB.cjs.map → chunk-SSGM2NKA.cjs.map} +1 -1
  48. package/dist/{chunk-IIT5HWLY.cjs → chunk-V7ZJTUV2.cjs} +11 -11
  49. package/dist/{chunk-IIT5HWLY.cjs.map → chunk-V7ZJTUV2.cjs.map} +1 -1
  50. package/dist/{chunk-3LMYQGAJ.js → chunk-X7YSF6A3.js} +28 -2
  51. package/dist/chunk-X7YSF6A3.js.map +1 -0
  52. package/dist/{chunk-ZHUBNWEX.cjs → chunk-XMK24INA.cjs} +6 -6
  53. package/dist/{chunk-ZHUBNWEX.cjs.map → chunk-XMK24INA.cjs.map} +1 -1
  54. package/dist/{chunk-XPJKQ63S.js → chunk-XMTGLQSD.js} +3 -3
  55. package/dist/{chunk-6BJYPG2V.js → chunk-YEQAA6I4.js} +4 -4
  56. package/dist/{chunk-JVWRMLQZ.js → chunk-YYC7V7YC.js} +2059 -1929
  57. package/dist/chunk-YYC7V7YC.js.map +1 -0
  58. package/dist/components/case-studies/index.cjs +10 -10
  59. package/dist/components/case-studies/index.js +4 -4
  60. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  61. package/dist/components/chat/index.cjs +3 -3
  62. package/dist/components/chat/index.js +2 -2
  63. package/dist/components/contact/index.cjs +5 -5
  64. package/dist/components/contact/index.js +4 -4
  65. package/dist/components/docs/index.cjs +8 -8
  66. package/dist/components/docs/index.js +7 -7
  67. package/dist/components/embeds/index.cjs +5 -5
  68. package/dist/components/embeds/index.js +4 -4
  69. package/dist/components/faq/index.cjs +5 -5
  70. package/dist/components/faq/index.js +4 -4
  71. package/dist/components/features/auth/account-details-fields.d.ts +34 -0
  72. package/dist/components/features/auth/account-details-fields.d.ts.map +1 -0
  73. package/dist/components/features/auth/complete-account-form.d.ts.map +1 -1
  74. package/dist/components/features/auth/create-organization-form.d.ts +43 -6
  75. package/dist/components/features/auth/create-organization-form.d.ts.map +1 -1
  76. package/dist/components/features/auth/index.d.ts +2 -0
  77. package/dist/components/features/auth/index.d.ts.map +1 -1
  78. package/dist/components/features/auth/labeled-divider.d.ts +6 -0
  79. package/dist/components/features/auth/labeled-divider.d.ts.map +1 -0
  80. package/dist/components/features/auth/login-form.d.ts +32 -9
  81. package/dist/components/features/auth/login-form.d.ts.map +1 -1
  82. package/dist/components/features/auth/openframe-sso-signup-form.d.ts.map +1 -1
  83. package/dist/components/features/auth/sso-providers.d.ts +1 -1
  84. package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
  85. package/dist/components/features/index.cjs +8 -4
  86. package/dist/components/features/index.cjs.map +1 -1
  87. package/dist/components/features/index.js +7 -3
  88. package/dist/components/features/media-gallery-manager.d.ts.map +1 -1
  89. package/dist/components/features/push-button-selector.d.ts +9 -7
  90. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  91. package/dist/components/features/release-media-manager.d.ts.map +1 -1
  92. package/dist/components/features/video.d.ts +8 -0
  93. package/dist/components/features/video.d.ts.map +1 -1
  94. package/dist/components/help-center-pages/index.cjs +24 -24
  95. package/dist/components/help-center-pages/index.js +15 -15
  96. package/dist/components/index.cjs +57 -51
  97. package/dist/components/index.cjs.map +1 -1
  98. package/dist/components/index.js +21 -15
  99. package/dist/components/index.js.map +1 -1
  100. package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
  101. package/dist/components/meeting-scheduler/index.cjs +31 -31
  102. package/dist/components/meeting-scheduler/index.js +3 -3
  103. package/dist/components/navigation/index.cjs +7 -7
  104. package/dist/components/navigation/index.js +6 -6
  105. package/dist/components/onboarding-guides/index.cjs +7 -7
  106. package/dist/components/onboarding-guides/index.js +6 -6
  107. package/dist/components/related-content/index.cjs +3 -3
  108. package/dist/components/related-content/index.js +2 -2
  109. package/dist/components/tickets/index.cjs +8 -8
  110. package/dist/components/tickets/index.js +7 -7
  111. package/dist/components/ui/index.cjs +6 -4
  112. package/dist/components/ui/index.cjs.map +1 -1
  113. package/dist/components/ui/index.d.ts +1 -0
  114. package/dist/components/ui/index.d.ts.map +1 -1
  115. package/dist/components/ui/index.js +5 -3
  116. package/dist/components/ui/lazy-mount.d.ts +21 -0
  117. package/dist/components/ui/lazy-mount.d.ts.map +1 -0
  118. package/dist/index.cjs +24 -8
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.js +23 -7
  121. package/dist/index.js.map +1 -1
  122. package/dist/types/marketing.d.ts +1 -1
  123. package/dist/types/marketing.d.ts.map +1 -1
  124. package/dist/utils/index.cjs +26 -0
  125. package/dist/utils/index.cjs.map +1 -1
  126. package/dist/utils/index.d.ts +1 -0
  127. package/dist/utils/index.d.ts.map +1 -1
  128. package/dist/utils/index.js +22 -1
  129. package/dist/utils/index.js.map +1 -1
  130. package/dist/utils/media-type.d.ts +26 -0
  131. package/dist/utils/media-type.d.ts.map +1 -0
  132. package/package.json +1 -1
  133. package/src/components/chat/entity-cards/program-card.tsx +2 -2
  134. package/src/components/features/auth/account-details-fields.tsx +124 -0
  135. package/src/components/features/auth/complete-account-form.tsx +13 -52
  136. package/src/components/features/auth/create-organization-form.tsx +128 -38
  137. package/src/components/features/auth/index.ts +2 -0
  138. package/src/components/features/auth/labeled-divider.tsx +16 -0
  139. package/src/components/features/auth/login-form.tsx +102 -23
  140. package/src/components/features/auth/openframe-sso-signup-form.tsx +11 -43
  141. package/src/components/features/auth/sso-providers.tsx +3 -3
  142. package/src/components/features/media-gallery-manager.tsx +4 -3
  143. package/src/components/features/push-button-selector.tsx +15 -12
  144. package/src/components/features/release-media-manager.tsx +3 -2
  145. package/src/components/features/video.tsx +28 -0
  146. package/src/components/loading/__tests__/unified-skeleton.test.tsx +16 -0
  147. package/src/components/loading/unified-skeleton.tsx +5 -1
  148. package/src/components/ui/__tests__/lazy-mount.test.tsx +46 -0
  149. package/src/components/ui/index.ts +3 -0
  150. package/src/components/ui/lazy-mount.tsx +38 -0
  151. package/src/stories/auth/Login.stories.tsx +15 -5
  152. package/src/types/.marketing.md +0 -1
  153. package/src/types/marketing.ts +4 -2
  154. package/src/utils/__tests__/media-type.test.ts +30 -0
  155. package/src/utils/index.ts +3 -0
  156. package/src/utils/media-type.ts +39 -0
  157. package/src/utils/vendor-media-stub.ts +7 -7
  158. package/dist/chunk-3LMYQGAJ.js.map +0 -1
  159. package/dist/chunk-IKUSKKFZ.cjs.map +0 -1
  160. package/dist/chunk-JVWRMLQZ.js.map +0 -1
  161. package/dist/chunk-NNFQLTJ3.cjs.map +0 -1
  162. package/dist/chunk-QJR32JM2.cjs.map +0 -1
  163. /package/dist/{chunk-3ELW4VML.js.map → chunk-2Y5UT5VF.js.map} +0 -0
  164. /package/dist/{chunk-YFZDIEVC.js.map → chunk-3HYHYKNL.js.map} +0 -0
  165. /package/dist/{chunk-5CJKZHWO.js.map → chunk-3JVYM4ZN.js.map} +0 -0
  166. /package/dist/{chunk-TLKHLGAB.js.map → chunk-5OIXAV4P.js.map} +0 -0
  167. /package/dist/{chunk-LNKULR4V.js.map → chunk-6EZGJZVH.js.map} +0 -0
  168. /package/dist/{chunk-EJKEDCTH.js.map → chunk-DQUEVRDU.js.map} +0 -0
  169. /package/dist/{chunk-TOUD3AGK.js.map → chunk-KLWJRGNN.js.map} +0 -0
  170. /package/dist/{chunk-MYEG5ZDT.js.map → chunk-L4WLYGB4.js.map} +0 -0
  171. /package/dist/{chunk-VZSTL5VG.js.map → chunk-LV6CORVJ.js.map} +0 -0
  172. /package/dist/{chunk-MCWAZ5XI.js.map → chunk-NFWAL6UV.js.map} +0 -0
  173. /package/dist/{chunk-RURZ6QLN.js.map → chunk-OZNFPQT5.js.map} +0 -0
  174. /package/dist/{chunk-KP6VJP36.js.map → chunk-PLMJVA2H.js.map} +0 -0
  175. /package/dist/{chunk-4T5KOD3G.js.map → chunk-S7YXLZNG.js.map} +0 -0
  176. /package/dist/{chunk-XPJKQ63S.js.map → chunk-XMTGLQSD.js.map} +0 -0
  177. /package/dist/{chunk-6BJYPG2V.js.map → chunk-YEQAA6I4.js.map} +0 -0
@@ -90,7 +90,9 @@ var _chunkIKDC3R7Vcjs = require('./chunk-IKDC3R7V.cjs');
90
90
 
91
91
 
92
92
 
93
- var _chunkIKUSKKFZcjs = require('./chunk-IKUSKKFZ.cjs');
93
+ var _chunkG45RGWHFcjs = require('./chunk-G45RGWHF.cjs');
94
+
95
+
94
96
 
95
97
 
96
98
 
@@ -201,6 +203,7 @@ var _chunkKZAAIUP5cjs = require('./chunk-KZAAIUP5.cjs');
201
203
 
202
204
 
203
205
 
206
+
204
207
 
205
208
 
206
209
  var _chunkGSQM4PDRcjs = require('./chunk-GSQM4PDR.cjs');
@@ -216,7 +219,8 @@ var _chunkXQFFGR6Ucjs = require('./chunk-XQFFGR6U.cjs');
216
219
 
217
220
 
218
221
 
219
- var _chunkNNFQLTJ3cjs = require('./chunk-NNFQLTJ3.cjs');
222
+
223
+ var _chunkEMF64FWAcjs = require('./chunk-EMF64FWA.cjs');
220
224
 
221
225
 
222
226
  var _chunkWLSFBRT5cjs = require('./chunk-WLSFBRT5.cjs');
@@ -331,7 +335,7 @@ function ThemeProvider({ children, ...overrides }) {
331
335
  var useTheme = _nextthemes.useTheme;
332
336
  function useThemeToggle() {
333
337
  const { resolvedTheme, theme, setTheme } = useTheme();
334
- const mounted = _chunkIKUSKKFZcjs.useIsHydrated.call(void 0, );
338
+ const mounted = _chunkG45RGWHFcjs.useIsHydrated.call(void 0, );
335
339
  const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
336
340
  const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
337
341
  const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
@@ -608,7 +612,7 @@ function TruncateText({
608
612
  const { ref, isTruncated } = _chunkZI27ALYXcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
609
613
  const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
610
614
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
611
- _chunkIKUSKKFZcjs.FloatingTooltip,
615
+ _chunkG45RGWHFcjs.FloatingTooltip,
612
616
  {
613
617
  content: _nullishCoalesce(tooltip, () => ( children)),
614
618
  side,
@@ -910,7 +914,7 @@ function AutocompleteInner(props, ref) {
910
914
  ),
911
915
  /* @__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: [
912
916
  multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
913
- _chunkIKUSKKFZcjs.Tag,
917
+ _chunkG45RGWHFcjs.Tag,
914
918
  {
915
919
  variant: "outline",
916
920
  labelClassName: "max-w-[90px] truncate",
@@ -1116,7 +1120,7 @@ function AutocompleteInner(props, ref) {
1116
1120
  "aria-hidden": "true",
1117
1121
  className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
1118
1122
  children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1119
- _chunkIKUSKKFZcjs.Tag,
1123
+ _chunkG45RGWHFcjs.Tag,
1120
1124
  {
1121
1125
  variant: "outline",
1122
1126
  labelClassName: "max-w-[90px] truncate",
@@ -2500,7 +2504,7 @@ function InfoHint({ children, label, side = "top", className }) {
2500
2504
  const describedById = _react.useId.call(void 0, );
2501
2505
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
2502
2506
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2503
- _chunkIKUSKKFZcjs.FloatingTooltip,
2507
+ _chunkG45RGWHFcjs.FloatingTooltip,
2504
2508
  {
2505
2509
  content: children,
2506
2510
  side,
@@ -2594,7 +2598,7 @@ function Value2({ value, depth }) {
2594
2598
  }
2595
2599
  if (typeof value === "string") {
2596
2600
  if (ISO_DATE.test(value)) {
2597
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkIKUSKKFZcjs.formatRelativeTime.call(void 0, value) });
2601
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkG45RGWHFcjs.formatRelativeTime.call(void 0, value) });
2598
2602
  }
2599
2603
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
2600
2604
  }
@@ -2989,7 +2993,7 @@ function CompactAssigneeDropdown({
2989
2993
  value: o.value,
2990
2994
  label: o.label,
2991
2995
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2992
- _chunkNNFQLTJ3cjs.SquareAvatar,
2996
+ _chunkEMF64FWAcjs.SquareAvatar,
2993
2997
  {
2994
2998
  src: o.imageUrl,
2995
2999
  alt: o.label,
@@ -3024,7 +3028,7 @@ function CompactAssigneeDropdown({
3024
3028
  className
3025
3029
  ),
3026
3030
  children: currentAssignee.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeletedUserAvatar, { size: "sm", accessibleLabel: `Deleted user: ${currentAssignee.name || currentAssignee.id}` }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3027
- _chunkNNFQLTJ3cjs.SquareAvatar,
3031
+ _chunkEMF64FWAcjs.SquareAvatar,
3028
3032
  {
3029
3033
  src: currentAssignee.avatarSrc,
3030
3034
  alt: currentAssignee.name,
@@ -3072,7 +3076,7 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
3072
3076
  const opt = option;
3073
3077
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-sf)]", children: [
3074
3078
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3075
- _chunkNNFQLTJ3cjs.SquareAvatar,
3079
+ _chunkEMF64FWAcjs.SquareAvatar,
3076
3080
  {
3077
3081
  src: opt.imageUrl,
3078
3082
  alt: opt.label,
@@ -3107,7 +3111,7 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
3107
3111
  accessibleLabel: `Deleted user: ${currentAssignee.name || currentAssignee.id}`
3108
3112
  }
3109
3113
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3110
- _chunkNNFQLTJ3cjs.SquareAvatar,
3114
+ _chunkEMF64FWAcjs.SquareAvatar,
3111
3115
  {
3112
3116
  src: currentAssignee.avatarSrc,
3113
3117
  alt: currentAssignee.name,
@@ -3132,7 +3136,7 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
3132
3136
  accessibleLabel: `Deleted user: ${currentAssignee.name || currentAssignee.id}`
3133
3137
  }
3134
3138
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3135
- _chunkNNFQLTJ3cjs.SquareAvatar,
3139
+ _chunkEMF64FWAcjs.SquareAvatar,
3136
3140
  {
3137
3141
  src: currentAssignee.avatarSrc,
3138
3142
  alt: currentAssignee.name,
@@ -3206,7 +3210,7 @@ function TextValue({ value }) {
3206
3210
  }
3207
3211
  ) : onClick ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick, title: text, className: interactiveClass, children: text }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-primary text-h4", title: text, children: text }),
3208
3212
  hasImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3209
- _chunkNNFQLTJ3cjs.SquareAvatar,
3213
+ _chunkEMF64FWAcjs.SquareAvatar,
3210
3214
  {
3211
3215
  src: imageSrc,
3212
3216
  alt: text,
@@ -3226,7 +3230,7 @@ function RowValue({ value }) {
3226
3230
  }
3227
3231
  case "status": {
3228
3232
  const { type: _type, ...props } = value;
3229
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TicketStatusTag, { ...props });
3233
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TicketStatusTag, { ...props });
3230
3234
  }
3231
3235
  case "custom":
3232
3236
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
@@ -4137,7 +4141,7 @@ function TagsManager({
4137
4141
  }
4138
4142
  ),
4139
4143
  selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4140
- _chunkIKUSKKFZcjs.Tag,
4144
+ _chunkG45RGWHFcjs.Tag,
4141
4145
  {
4142
4146
  label: tag.name,
4143
4147
  variant: "outline",
@@ -4682,10 +4686,10 @@ function useConfirm() {
4682
4686
  },
4683
4687
  []
4684
4688
  );
4685
- const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
4686
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTitle, { children: pending.title }) }),
4687
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
4688
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.ModalFooter, { children: [
4689
+ const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
4690
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: pending.title }) }),
4691
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
4692
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
4689
4693
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
4690
4694
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
4691
4695
  ] })
@@ -4743,9 +4747,9 @@ function AdminFormModal({
4743
4747
  body: "Your edits have not been saved. Close and discard them?"
4744
4748
  });
4745
4749
  if (!isOpen) return null;
4746
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
4747
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.ModalHeader, { children: [
4748
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTitle, { children: title }),
4750
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
4751
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: [
4752
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: title }),
4749
4753
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
4750
4754
  ] }),
4751
4755
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -4769,7 +4773,7 @@ function AdminFormModal({
4769
4773
  // a shrink-to-fit flex item pinned to the left of a 1400px panel).
4770
4774
  // The placeholder owns its own layout and mirrors the column count so
4771
4775
  // the modal doesn't visibly re-flow when the entity lands.
4772
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4776
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4773
4777
  "div",
4774
4778
  {
4775
4779
  "aria-busy": "true",
@@ -4790,12 +4794,12 @@ function AdminFormModal({
4790
4794
  ]
4791
4795
  }
4792
4796
  ) })
4793
- ) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalContent, { className: contentClassName, children }),
4797
+ ) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalContent, { className: contentClassName, children }),
4794
4798
  error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
4795
4799
  ]
4796
4800
  }
4797
4801
  ),
4798
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
4802
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
4799
4803
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
4800
4804
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
4801
4805
  footerStatus,
@@ -6893,7 +6897,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
6893
6897
  };
6894
6898
  const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
6895
6899
  const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6896
- _chunkIKUSKKFZcjs.Video,
6900
+ _chunkG45RGWHFcjs.Video,
6897
6901
  {
6898
6902
  url: item.src,
6899
6903
  poster: item.poster ? displayImageSrc(item.poster) : void 0,
@@ -7325,7 +7329,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
7325
7329
  width: m.width,
7326
7330
  height: m.height
7327
7331
  }));
7328
- const formatNumber2 = _chunkNNFQLTJ3cjs.formatLargeNumber;
7332
+ const formatNumber2 = _chunkEMF64FWAcjs.formatLargeNumber;
7329
7333
  const truncateText = (text, maxLength = 600) => {
7330
7334
  if (text.length <= maxLength) return text;
7331
7335
  return text.slice(0, maxLength) + "...";
@@ -7617,7 +7621,7 @@ function buildRichEmbedOverrides({
7617
7621
  ogEndpointPath,
7618
7622
  textSizes
7619
7623
  }) {
7620
- const standard = _chunkIKUSKKFZcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7624
+ const standard = _chunkG45RGWHFcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7621
7625
  return {
7622
7626
  // Fence-language embeds (```youtube-embed etc.); everything else
7623
7627
  // (mermaid, highlighted blocks, inline code) falls through to `standard`.
@@ -7627,7 +7631,7 @@ function buildRichEmbedOverrides({
7627
7631
  const language = match ? match[1] : "";
7628
7632
  const fenceText = () => String(children).replace(/\n$/, "").trim();
7629
7633
  if (language === "youtube-embed") {
7630
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Video, { kind: "youtube", url: fenceText() });
7634
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "youtube", url: fenceText() });
7631
7635
  }
7632
7636
  if (language === "reddit-embed") {
7633
7637
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
@@ -7668,7 +7672,7 @@ function buildRichEmbedOverrides({
7668
7672
  "data-figma-url": figmaUrl
7669
7673
  } = divProps;
7670
7674
  if (className === "youtube-embed" && videoId) {
7671
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Video, { kind: "youtube", url: videoId });
7675
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "youtube", url: videoId });
7672
7676
  }
7673
7677
  if (className === "reddit-embed" && postUrl) {
7674
7678
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
@@ -7753,14 +7757,14 @@ function buildRichEmbedOverrides({
7753
7757
  // rich-markdown runtime (Supabase optimization on the hub, identity
7754
7758
  // elsewhere). Guard against empty `![]()`.
7755
7759
  img: ({ src, alt }) => {
7756
- if (!_chunkIKUSKKFZcjs.hasRenderableSrc.call(void 0, src)) return null;
7760
+ if (!_chunkG45RGWHFcjs.hasRenderableSrc.call(void 0, src)) return null;
7757
7761
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
7758
7762
  },
7759
7763
  // Raw <video> tags in stored content (blog publisher injection) route
7760
7764
  // to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
7761
7765
  video: ({ src, poster, className }) => {
7762
- if (!_chunkIKUSKKFZcjs.hasRenderableSrc.call(void 0, src)) return null;
7763
- 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, _chunkIKUSKKFZcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7766
+ if (!_chunkG45RGWHFcjs.hasRenderableSrc.call(void 0, src)) return null;
7767
+ 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, _chunkG45RGWHFcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7764
7768
  }
7765
7769
  };
7766
7770
  }
@@ -7943,13 +7947,13 @@ var RichMarkdownInner = ({
7943
7947
  },
7944
7948
  [resolveLinkEndpointUrl, resolveSource]
7945
7949
  );
7946
- const textSizes = _react.useMemo.call(void 0, () => _chunkIKUSKKFZcjs.resolveTextSizeConfig.call(void 0, "article"), []);
7950
+ const textSizes = _react.useMemo.call(void 0, () => _chunkG45RGWHFcjs.resolveTextSizeConfig.call(void 0, "article"), []);
7947
7951
  const componentOverrides = _react.useMemo.call(void 0,
7948
7952
  () => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
7949
7953
  [ogApiBaseUrl, ogEndpointPath, textSizes]
7950
7954
  );
7951
7955
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7952
- _chunkIKUSKKFZcjs.MarkdownEngine,
7956
+ _chunkG45RGWHFcjs.MarkdownEngine,
7953
7957
  {
7954
7958
  content,
7955
7959
  className,
@@ -7971,7 +7975,7 @@ var RichMarkdownRendererImpl = ({
7971
7975
  className = "",
7972
7976
  sectionIds,
7973
7977
  onInternalLinkClick,
7974
- brokenLinks = _chunkIKUSKKFZcjs.NO_BROKEN_LINKS,
7978
+ brokenLinks = _chunkG45RGWHFcjs.NO_BROKEN_LINKS,
7975
7979
  currentPath,
7976
7980
  resolveSource = "openframe-docs",
7977
7981
  resolveLinkEndpointUrl = "/api/docs/resolve-link",
@@ -8544,7 +8548,7 @@ function FilterModal({
8544
8548
  const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _161 => _161.defaultSort]), () => ( "desc"));
8545
8549
  const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.sort]), () => ( dateDefaultSort)));
8546
8550
  const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _163 => _163.range]));
8547
- const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkIKUSKKFZcjs.useScrollFade.call(void 0, );
8551
+ const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkG45RGWHFcjs.useScrollFade.call(void 0, );
8548
8552
  const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
8549
8553
  const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
8550
8554
  _react.useEffect.call(void 0, () => {
@@ -8589,10 +8593,10 @@ function FilterModal({
8589
8593
  const hasFilterGroups = filterGroups.length > 0;
8590
8594
  const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
8591
8595
  const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
8592
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
8593
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTitle, { children: title }) }),
8596
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
8597
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: title }) }),
8594
8598
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8595
- _chunkIKUSKKFZcjs.ModalContent,
8599
+ _chunkG45RGWHFcjs.ModalContent,
8596
8600
  {
8597
8601
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
8598
8602
  "flex min-h-0 flex-1 flex-col",
@@ -8684,12 +8688,12 @@ function FilterModal({
8684
8688
  ] })
8685
8689
  }
8686
8690
  ),
8687
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
8688
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
8691
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
8692
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
8689
8693
  ] })
8690
8694
  }
8691
8695
  ),
8692
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.ModalFooter, { children: [
8696
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
8693
8697
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
8694
8698
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
8695
8699
  ] })
@@ -8733,9 +8737,9 @@ function actionToMenuItems(action, idx) {
8733
8737
  function renderActionButton(action, opts = {}) {
8734
8738
  const button = renderRawActionButton(action, opts);
8735
8739
  if (!action.tooltip) return button;
8736
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Tooltip, { children: [
8737
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipTrigger, { asChild: true, children: button }),
8738
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipContent, { children: action.tooltip })
8740
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
8741
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: button }),
8742
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { children: action.tooltip })
8739
8743
  ] }) });
8740
8744
  }
8741
8745
  function renderRawActionButton(action, opts = {}) {
@@ -8759,7 +8763,7 @@ function renderRawActionButton(action, opts = {}) {
8759
8763
  }
8760
8764
  if (action.submenu && action.submenu.length > 0) {
8761
8765
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8762
- _chunkIKUSKKFZcjs.ActionsMenuDropdown,
8766
+ _chunkG45RGWHFcjs.ActionsMenuDropdown,
8763
8767
  {
8764
8768
  groups: [{ items: action.submenu }],
8765
8769
  customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -8894,10 +8898,10 @@ function IconButtonsVariant({
8894
8898
  selector,
8895
8899
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8896
8900
  desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
8897
- hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ActionsMenuDropdown, { groups: menuActions })
8901
+ hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: menuActions })
8898
8902
  ] })
8899
8903
  ] }),
8900
- /* @__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, _chunkIKUSKKFZcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
8904
+ /* @__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, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
8901
8905
  ] });
8902
8906
  }
8903
8907
  function PrimaryButtonsVariant({
@@ -8935,7 +8939,7 @@ function MenuPrimaryVariant({
8935
8939
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
8936
8940
  selector,
8937
8941
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
8938
- hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ActionsMenuDropdown, { groups: menuActions }),
8942
+ hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: menuActions }),
8939
8943
  desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
8940
8944
  ] })
8941
8945
  ] }),
@@ -8943,7 +8947,7 @@ function MenuPrimaryVariant({
8943
8947
  // The selector rides into the menu as its header row: on mobile the
8944
8948
  // title row has no room for it, and hiding it entirely (what
8945
8949
  // `icon-buttons` does) would leave no way to switch views at all.
8946
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ActionsMenuDropdown, { groups: mobileMenuGroups, header: selector })
8950
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: mobileMenuGroups, header: selector })
8947
8951
  ) : null })
8948
8952
  ] });
8949
8953
  }
@@ -9237,7 +9241,7 @@ function EntityImage({ src, alt, fallbackText, className }) {
9237
9241
  const [failedSrc, setFailedSrc] = _react2.default.useState(null);
9238
9242
  const imageFailed = resolvedSrc !== void 0 && failedSrc === resolvedSrc;
9239
9243
  const showFallback = imageFailed || !resolvedSrc;
9240
- const initials = _chunkNNFQLTJ3cjs.getFirstLastInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
9244
+ const initials = _chunkEMF64FWAcjs.getFirstLastInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
9241
9245
  if (showFallback) {
9242
9246
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9243
9247
  "div",
@@ -9346,7 +9350,7 @@ function TitleBlock({
9346
9350
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
9347
9351
  (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: [
9348
9352
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9349
- _chunkIKUSKKFZcjs.FloatingTooltip,
9353
+ _chunkG45RGWHFcjs.FloatingTooltip,
9350
9354
  {
9351
9355
  content: title,
9352
9356
  side: "bottom",
@@ -9363,12 +9367,12 @@ function TitleBlock({
9363
9367
  }
9364
9368
  ),
9365
9369
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
9366
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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 }) })),
9370
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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 }) })),
9367
9371
  hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
9368
9372
  empty `p` collapses to zero height (its only content would be
9369
9373
  collapsible whitespace), which is exactly the shift that mode
9370
9374
  exists to prevent. Hidden from AT — it carries no meaning. */
9371
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9375
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9372
9376
  "p",
9373
9377
  {
9374
9378
  ref: subtitleRef,
@@ -9379,7 +9383,7 @@ function TitleBlock({
9379
9383
  ) })
9380
9384
  ] })
9381
9385
  ] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
9382
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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 }) }),
9386
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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 }) }),
9383
9387
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
9384
9388
  ] }) : (
9385
9389
  /* This branch never had the single-line clamp, so text already
@@ -10806,7 +10810,7 @@ function lastPathSegment(url) {
10806
10810
  function makeComposeContentUrl(opts) {
10807
10811
  const suffixes = _nullishCoalesce(opts.suffixes, () => ( DEFAULT_CONTENT_SUFFIXES));
10808
10812
  return ({ type: rawType, identifier, slug: slugHint, externalUrl, targetPlatform, platforms }) => {
10809
- const type = _chunkNNFQLTJ3cjs.canonicalContentRefType.call(void 0, rawType);
10813
+ const type = _chunkEMF64FWAcjs.canonicalContentRefType.call(void 0, rawType);
10810
10814
  const override = opts.overrides && Object.prototype.hasOwnProperty.call(opts.overrides, type) ? opts.overrides[type] : void 0;
10811
10815
  if (override) return { ...override(identifier), hostOverride: true };
10812
10816
  const seg = _nullishCoalesce((Object.prototype.hasOwnProperty.call(suffixes, type) ? suffixes[type] : void 0), () => ( type));
@@ -10993,7 +10997,7 @@ function extractSections(markdown, options = {}) {
10993
10997
  if (heading.level > opts.maxLevel) continue;
10994
10998
  let title = heading.text;
10995
10999
  if (opts.stripFormattingMarkers) {
10996
- title = _chunkIKUSKKFZcjs.stripInlineMarkdown.call(void 0, title).trim();
11000
+ title = _chunkG45RGWHFcjs.stripInlineMarkdown.call(void 0, title).trim();
10997
11001
  }
10998
11002
  const baseId = _chunkZI27ALYXcjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkZI27ALYXcjs.stripHeadingEmojis.call(void 0, title) : title);
10999
11003
  const cleanId = baseId || `section-${sections.length + 1}`;
@@ -11485,7 +11489,7 @@ function DashboardInfoCard({
11485
11489
  const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
11486
11490
  if (asTag) {
11487
11491
  const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
11488
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
11492
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
11489
11493
  }
11490
11494
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
11491
11495
  "(",
@@ -11539,7 +11543,7 @@ function DashboardInfoCard({
11539
11543
  /* @__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 }),
11540
11544
  subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
11541
11545
  renderPercentage(),
11542
- tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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 }) }) })
11546
+ tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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 }) }) })
11543
11547
  ] })
11544
11548
  ] }),
11545
11549
  renderProgress()
@@ -11722,7 +11726,7 @@ function DeviceCard({
11722
11726
  ] }),
11723
11727
  (statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
11724
11728
  statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11725
- _chunkIKUSKKFZcjs.Tag,
11729
+ _chunkG45RGWHFcjs.Tag,
11726
11730
  {
11727
11731
  variant: statusTag.variant,
11728
11732
  icon: statusTag.icon,
@@ -11736,7 +11740,7 @@ function DeviceCard({
11736
11740
  formatLastSeen(device.lastSeen)
11737
11741
  ] })
11738
11742
  ] }),
11739
- 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, _chunkIKUSKKFZcjs.Tag, { variant: "outline", label: tag }, index)) })
11743
+ 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, _chunkG45RGWHFcjs.Tag, { variant: "outline", label: tag }, index)) })
11740
11744
  ]
11741
11745
  }
11742
11746
  );
@@ -11797,7 +11801,7 @@ function FeatureCardGrid({
11797
11801
  if (allCardsHaveNoBorders) {
11798
11802
  finalCardClassName = "bg-transparent p-0 overflow-visible border-0 shadow-none rounded-none";
11799
11803
  }
11800
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.Card, { className: `${finalCardClassName} ${className}`, children: Array.from({ length: rows }, (_, rowIndex) => {
11804
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.Card, { className: `${finalCardClassName} ${className}`, children: Array.from({ length: rows }, (_, rowIndex) => {
11801
11805
  const startIndex = rowIndex * itemsPerRow;
11802
11806
  const rowItems = items.slice(startIndex, startIndex + itemsPerRow);
11803
11807
  const isLastRow = rowIndex === rows - 1;
@@ -11827,7 +11831,7 @@ function FeatureCardGrid({
11827
11831
  item.icon && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between", children: [
11828
11832
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, item.icon, { size: 80, color: item.iconColor }),
11829
11833
  item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11830
- _chunkNNFQLTJ3cjs.StatusBadge,
11834
+ _chunkEMF64FWAcjs.StatusBadge,
11831
11835
  {
11832
11836
  text: item.badge.text,
11833
11837
  variant: item.badge.variant || "card",
@@ -11836,7 +11840,7 @@ function FeatureCardGrid({
11836
11840
  )
11837
11841
  ] }),
11838
11842
  !item.icon && item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-start justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11839
- _chunkNNFQLTJ3cjs.StatusBadge,
11843
+ _chunkEMF64FWAcjs.StatusBadge,
11840
11844
  {
11841
11845
  text: item.badge.text,
11842
11846
  variant: item.badge.variant || "card",
@@ -11884,7 +11888,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
11884
11888
 
11885
11889
  function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
11886
11890
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11887
- _chunkIKUSKKFZcjs.FloatingTooltip,
11891
+ _chunkG45RGWHFcjs.FloatingTooltip,
11888
11892
  {
11889
11893
  as: "span",
11890
11894
  side: "top",
@@ -12068,7 +12072,7 @@ function DropdownButton({
12068
12072
  )
12069
12073
  );
12070
12074
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12071
- _chunkIKUSKKFZcjs.ActionsMenuDropdown,
12075
+ _chunkG45RGWHFcjs.ActionsMenuDropdown,
12072
12076
  {
12073
12077
  groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
12074
12078
  open,
@@ -12306,7 +12310,7 @@ function ServiceCardRowItem({ row }) {
12306
12310
  ),
12307
12311
  children: [
12308
12312
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12309
- _chunkIKUSKKFZcjs.FloatingTooltip,
12313
+ _chunkG45RGWHFcjs.FloatingTooltip,
12310
12314
  {
12311
12315
  content: row.value,
12312
12316
  side: "top",
@@ -12432,9 +12436,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
12432
12436
  return next;
12433
12437
  });
12434
12438
  };
12435
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Tooltip, { open, onOpenChange: setOpen, children: [
12439
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { open, onOpenChange: setOpen, children: [
12436
12440
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12437
- _chunkIKUSKKFZcjs.TooltipTrigger,
12441
+ _chunkG45RGWHFcjs.TooltipTrigger,
12438
12442
  {
12439
12443
  asChild: true,
12440
12444
  onPointerDown: (e) => {
@@ -12452,7 +12456,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
12452
12456
  children
12453
12457
  }
12454
12458
  ),
12455
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipContent, { side, className: "max-w-xs", children: content })
12459
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { side, className: "max-w-xs", children: content })
12456
12460
  ] }) });
12457
12461
  }
12458
12462
 
@@ -13467,9 +13471,9 @@ function TruncatedHeaderCell({ value, width }) {
13467
13471
  setIsTruncated(el.scrollWidth > el.clientWidth);
13468
13472
  }
13469
13473
  }, []);
13470
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13471
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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 }) }) }),
13472
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
13474
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13475
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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 }) }) }),
13476
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
13473
13477
  ] }) });
13474
13478
  }
13475
13479
 
@@ -13522,9 +13526,9 @@ function TruncatedCell({ value, className }) {
13522
13526
  setIsTruncated(el.scrollWidth > el.clientWidth);
13523
13527
  }
13524
13528
  }, []);
13525
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13526
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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 }) }),
13527
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
13529
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
13530
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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 }) }),
13531
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
13528
13532
  ] }) });
13529
13533
  }
13530
13534
 
@@ -14808,7 +14812,7 @@ function SearchInput({
14808
14812
  /* @__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, {}) }),
14809
14813
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
14810
14814
  visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14811
- _chunkIKUSKKFZcjs.Tag,
14815
+ _chunkG45RGWHFcjs.Tag,
14812
14816
  {
14813
14817
  variant: chipVariantToTagVariant(chip.variant),
14814
14818
  label: chip.label,
@@ -14922,7 +14926,7 @@ function SearchInput({
14922
14926
  }
14923
14927
  ),
14924
14928
  /* @__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,
14925
- _chunkIKUSKKFZcjs.Tag,
14929
+ _chunkG45RGWHFcjs.Tag,
14926
14930
  {
14927
14931
  variant: chipVariantToTagVariant(chip.variant),
14928
14932
  label: chip.label,
@@ -15135,7 +15139,7 @@ function TagSearchInput({
15135
15139
  /* @__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" }) }),
15136
15140
  /* @__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: [
15137
15141
  visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15138
- _chunkIKUSKKFZcjs.Tag,
15142
+ _chunkG45RGWHFcjs.Tag,
15139
15143
  {
15140
15144
  variant: "outline",
15141
15145
  label: renderTag ? renderTag(tag) : tag.label,
@@ -15223,7 +15227,7 @@ function TagSearchInput({
15223
15227
  "aria-hidden": "true",
15224
15228
  className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
15225
15229
  children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15226
- _chunkIKUSKKFZcjs.Tag,
15230
+ _chunkG45RGWHFcjs.Tag,
15227
15231
  {
15228
15232
  variant: "outline",
15229
15233
  label: renderTag ? renderTag(tag) : tag.label,
@@ -16112,20 +16116,20 @@ function ColorPresetSelect({
16112
16116
  ...presets.map((p) => ({
16113
16117
  id: p.key,
16114
16118
  label: p.label,
16115
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color: p.color }),
16119
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: p.color }),
16116
16120
  onClick: () => onChange({ color: p.color, preset: p.key })
16117
16121
  })),
16118
16122
  {
16119
16123
  id: CUSTOM_PRESET_KEY,
16120
16124
  label: "Custom",
16121
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
16125
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
16122
16126
  onClick: () => onChange({ color: value, preset: void 0 })
16123
16127
  }
16124
16128
  ]
16125
16129
  }
16126
16130
  ];
16127
16131
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16128
- _chunkIKUSKKFZcjs.ActionsMenuDropdown,
16132
+ _chunkG45RGWHFcjs.ActionsMenuDropdown,
16129
16133
  {
16130
16134
  groups,
16131
16135
  align: "start",
@@ -16135,7 +16139,7 @@ function ColorPresetSelect({
16135
16139
  {
16136
16140
  disabled,
16137
16141
  "aria-label": `Color: ${displayLabel}`,
16138
- startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color: displayColor }),
16142
+ startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: displayColor }),
16139
16143
  selectedLabel: displayLabel,
16140
16144
  endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
16141
16145
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
@@ -16156,7 +16160,7 @@ function HexInputs({ value, onChange }) {
16156
16160
  }
16157
16161
  const commit = () => {
16158
16162
  const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
16159
- if (_chunkIKUSKKFZcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
16163
+ if (_chunkG45RGWHFcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
16160
16164
  else setDraft(value);
16161
16165
  };
16162
16166
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -16220,12 +16224,12 @@ function ChannelInput({
16220
16224
  );
16221
16225
  }
16222
16226
  function RgbInputs({ value, onChange }) {
16223
- const rgb = _nullishCoalesce(_chunkIKUSKKFZcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16227
+ const rgb = _nullishCoalesce(_chunkG45RGWHFcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16224
16228
  const update = (next) => {
16225
16229
  const r = _nullishCoalesce(next.r, () => ( rgb.r));
16226
16230
  const g = _nullishCoalesce(next.g, () => ( rgb.g));
16227
16231
  const b = _nullishCoalesce(next.b, () => ( rgb.b));
16228
- onChange(_chunkIKUSKKFZcjs.rgbToHex.call(void 0, r, g, b));
16232
+ onChange(_chunkG45RGWHFcjs.rgbToHex.call(void 0, r, g, b));
16229
16233
  };
16230
16234
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
16231
16235
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
@@ -16234,14 +16238,14 @@ function RgbInputs({ value, onChange }) {
16234
16238
  ] });
16235
16239
  }
16236
16240
  function HslInputs({ value, onChange }) {
16237
- const rgb = _nullishCoalesce(_chunkIKUSKKFZcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16238
- const hsl = _chunkIKUSKKFZcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
16241
+ const rgb = _nullishCoalesce(_chunkG45RGWHFcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
16242
+ const hsl = _chunkG45RGWHFcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
16239
16243
  const update = (next) => {
16240
16244
  const h = _nullishCoalesce(next.h, () => ( hsl.h));
16241
16245
  const s = _nullishCoalesce(next.s, () => ( hsl.s));
16242
16246
  const l = _nullishCoalesce(next.l, () => ( hsl.l));
16243
- const out = _chunkIKUSKKFZcjs.hslToRgb.call(void 0, h, s, l);
16244
- onChange(_chunkIKUSKKFZcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
16247
+ const out = _chunkG45RGWHFcjs.hslToRgb.call(void 0, h, s, l);
16248
+ onChange(_chunkG45RGWHFcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
16245
16249
  };
16246
16250
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
16247
16251
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
@@ -16267,7 +16271,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
16267
16271
  {
16268
16272
  disabled,
16269
16273
  "aria-label": "Pick custom color",
16270
- startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color: value }),
16274
+ startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: value }),
16271
16275
  selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
16272
16276
  endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
16273
16277
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
@@ -16283,7 +16287,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
16283
16287
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
16284
16288
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
16285
16289
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16286
- _chunkIKUSKKFZcjs.ActionsMenuDropdown,
16290
+ _chunkG45RGWHFcjs.ActionsMenuDropdown,
16287
16291
  {
16288
16292
  groups: formatGroups,
16289
16293
  align: "start",
@@ -16340,7 +16344,7 @@ function TicketStatusConfigRow({
16340
16344
  const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
16341
16345
  const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
16342
16346
  const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16343
- _chunkIKUSKKFZcjs.TicketStatusTag,
16347
+ _chunkG45RGWHFcjs.TicketStatusTag,
16344
16348
  {
16345
16349
  status: statusKey,
16346
16350
  label: name || " ",
@@ -16492,7 +16496,7 @@ function formatTestRunDuration(ms) {
16492
16496
  var RESULT_COLUMN_MIN_WIDTH = 176;
16493
16497
  var SKELETON_COLUMNS = 6;
16494
16498
  function TestResultsSkeleton() {
16495
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
16499
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
16496
16500
  /* @__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}`)) }),
16497
16501
  /* @__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}`)) }) })
16498
16502
  ] }) });
@@ -16527,7 +16531,7 @@ function TestResultsTable({ rows, loading }) {
16527
16531
  if (loading) {
16528
16532
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
16529
16533
  }
16530
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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: [
16534
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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: [
16531
16535
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
16532
16536
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
16533
16537
  ] }) }) });
@@ -16587,7 +16591,7 @@ var TEST_RUN_STATUS_TAGS = {
16587
16591
  function TestRunStatusStat({ status, className }) {
16588
16592
  const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
16589
16593
  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: [
16590
- tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.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: "-" }),
16594
+ tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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: "-" }),
16591
16595
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
16592
16596
  ] });
16593
16597
  }
@@ -16630,7 +16634,7 @@ function useTestRunState(campaign) {
16630
16634
  const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
16631
16635
  const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
16632
16636
  const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
16633
- const startedLabel = showTiming && campaign.startedAt ? _chunkIKUSKKFZcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
16637
+ const startedLabel = showTiming && campaign.startedAt ? _chunkG45RGWHFcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
16634
16638
  const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
16635
16639
  const displayRows = _react.useMemo.call(void 0,
16636
16640
  () => campaign.results.map(
@@ -16669,7 +16673,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
16669
16673
  ),
16670
16674
  children: [
16671
16675
  attachment.thumbnailSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16672
- _chunkNNFQLTJ3cjs.SquareAvatar,
16676
+ _chunkEMF64FWAcjs.SquareAvatar,
16673
16677
  {
16674
16678
  src: attachment.thumbnailSrc,
16675
16679
  alt: attachment.fileName,
@@ -16762,7 +16766,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
16762
16766
  };
16763
16767
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex items-start gap-4 rounded-[6px] p-3", "border border-ods-border bg-ods-card", className), children: [
16764
16768
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16765
- _chunkNNFQLTJ3cjs.SquareAvatar,
16769
+ _chunkEMF64FWAcjs.SquareAvatar,
16766
16770
  {
16767
16771
  src: note.authorAvatar,
16768
16772
  alt: note.authorName,
@@ -16938,7 +16942,7 @@ function TicketInfoSection({
16938
16942
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 items-center gap-4 border-b border-ods-border bg-ods-card px-4 py-3 lg:grid-cols-[1fr_1fr_1fr_auto]", children: [
16939
16943
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
16940
16944
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16941
- _chunkNNFQLTJ3cjs.SquareAvatar,
16945
+ _chunkEMF64FWAcjs.SquareAvatar,
16942
16946
  {
16943
16947
  src: _optionalChain([organization, 'optionalAccess', _387 => _387.imageSrc]),
16944
16948
  alt: _optionalChain([organization, 'optionalAccess', _388 => _388.name]),
@@ -16968,7 +16972,7 @@ function TicketInfoSection({
16968
16972
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _391 => _391.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _392 => _392.icon]), onClick: _optionalChain([device, 'optionalAccess', _393 => _393.onClick]) }),
16969
16973
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
16970
16974
  (status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16971
- _chunkIKUSKKFZcjs.TicketStatusTag,
16975
+ _chunkG45RGWHFcjs.TicketStatusTag,
16972
16976
  {
16973
16977
  status: _nullishCoalesce(status, () => ( "")),
16974
16978
  label: statusLabel,
@@ -17007,9 +17011,9 @@ function TicketInfoSection({
17007
17011
  expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17008
17012
  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" }) }),
17009
17013
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
17010
- description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.SimpleMarkdownRenderer, { content: description }),
17014
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.SimpleMarkdownRenderer, { content: description }),
17011
17015
  attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
17012
- 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, _chunkIKUSKKFZcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
17016
+ 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, _chunkG45RGWHFcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
17013
17017
  (notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17014
17018
  TicketNotesSection,
17015
17019
  {
@@ -17032,7 +17036,7 @@ function renderTicketStatusOption(option, isSelected) {
17032
17036
  const { label, color } = option;
17033
17037
  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: [
17034
17038
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
17035
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color }),
17039
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color }),
17036
17040
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
17037
17041
  ] }),
17038
17042
  isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
@@ -17042,7 +17046,7 @@ function renderTicketAssigneeOption(option, isSelected) {
17042
17046
  const { label, imageUrl } = option;
17043
17047
  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: [
17044
17048
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
17045
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "round" }),
17049
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "round" }),
17046
17050
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
17047
17051
  ] }),
17048
17052
  isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
@@ -17077,9 +17081,9 @@ function TakeOverTicketModal({
17077
17081
  if (!selectedStatusId || !assigneeId || isPending) return;
17078
17082
  onConfirm({ statusId: selectedStatusId, assigneeId });
17079
17083
  };
17080
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Modal, { isOpen, onClose: isPending ? () => {
17084
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose: isPending ? () => {
17081
17085
  } : onClose, className: "text-left md:max-w-[600px]", children: [
17082
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTitle, { children: "Take Over Ticket" }) }),
17086
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: "Take Over Ticket" }) }),
17083
17087
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
17084
17088
  "The ticket ",
17085
17089
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
@@ -17094,7 +17098,7 @@ function TakeOverTicketModal({
17094
17098
  value: selectedStatusId,
17095
17099
  onChange: setStatusId,
17096
17100
  placeholder: "Select Status",
17097
- startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17101
+ startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17098
17102
  renderOption: renderTicketStatusOption
17099
17103
  }
17100
17104
  ) }),
@@ -17108,7 +17112,7 @@ function TakeOverTicketModal({
17108
17112
  placeholder: "Select Technician",
17109
17113
  loading: assigneesLoading,
17110
17114
  startAdornment: selectedAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17111
- _chunkNNFQLTJ3cjs.SquareAvatar,
17115
+ _chunkEMF64FWAcjs.SquareAvatar,
17112
17116
  {
17113
17117
  src: selectedAssignee.imageUrl,
17114
17118
  alt: selectedAssignee.label,
@@ -17121,7 +17125,7 @@ function TakeOverTicketModal({
17121
17125
  }
17122
17126
  ) })
17123
17127
  ] }),
17124
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.ModalFooter, { children: [
17128
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
17125
17129
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
17126
17130
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
17127
17131
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17180,9 +17184,9 @@ function ReopenTicketModal({
17180
17184
  reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
17181
17185
  });
17182
17186
  };
17183
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Modal, { isOpen, onClose: isPending ? () => {
17187
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose: isPending ? () => {
17184
17188
  } : onClose, className: "text-left md:max-w-[600px]", children: [
17185
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17189
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17186
17190
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
17187
17191
  "The ticket ",
17188
17192
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
@@ -17197,7 +17201,7 @@ function ReopenTicketModal({
17197
17201
  value: selectedStatusId,
17198
17202
  onChange: setStatusId,
17199
17203
  placeholder: "Select Status",
17200
- startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17204
+ startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
17201
17205
  renderOption: renderTicketStatusOption
17202
17206
  }
17203
17207
  ) }),
@@ -17211,7 +17215,7 @@ function ReopenTicketModal({
17211
17215
  placeholder: "Select Technician",
17212
17216
  loading: assigneesLoading,
17213
17217
  startAdornment: selectedAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17214
- _chunkNNFQLTJ3cjs.SquareAvatar,
17218
+ _chunkEMF64FWAcjs.SquareAvatar,
17215
17219
  {
17216
17220
  src: selectedAssignee.imageUrl,
17217
17221
  alt: selectedAssignee.label,
@@ -17235,7 +17239,7 @@ function ReopenTicketModal({
17235
17239
  disabled: isPending
17236
17240
  }
17237
17241
  ) }),
17238
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.ModalFooter, { children: [
17242
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
17239
17243
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
17240
17244
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
17241
17245
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17283,9 +17287,9 @@ function ReopenTicketRequestModal({
17283
17287
  ...showHandoffOption ? { handoffToTechnician: handoff } : {}
17284
17288
  });
17285
17289
  };
17286
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Modal, { isOpen, onClose: isPending ? () => {
17290
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose: isPending ? () => {
17287
17291
  } : onClose, className: "text-left md:max-w-[600px]", children: [
17288
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17292
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: "Reopen Ticket" }) }),
17289
17293
  /* @__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." }),
17290
17294
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17291
17295
  Textarea,
@@ -17309,7 +17313,7 @@ function ReopenTicketRequestModal({
17309
17313
  disabled: isPending
17310
17314
  }
17311
17315
  ),
17312
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.ModalFooter, { children: [
17316
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
17313
17317
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
17314
17318
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
17315
17319
  ] })
@@ -17348,6 +17352,19 @@ function FilterPillRow({
17348
17352
  ] });
17349
17353
  }
17350
17354
 
17355
+ // src/components/ui/lazy-mount.tsx
17356
+
17357
+ function LazyMount({
17358
+ children,
17359
+ placeholder = null,
17360
+ className,
17361
+ style,
17362
+ rootMargin = _chunkZI27ALYXcjs.NEAR_VIEWPORT_ROOT_MARGIN
17363
+ }) {
17364
+ const { ref, isNear } = _chunkZI27ALYXcjs.useNearViewport.call(void 0, rootMargin);
17365
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className, style, children: isNear ? children : placeholder });
17366
+ }
17367
+
17351
17368
  // src/components/features/array-entry-manager.tsx
17352
17369
 
17353
17370
  function ArrayEntryManager({
@@ -17500,6 +17517,98 @@ function ArrayEntryManager({
17500
17517
  ] });
17501
17518
  }
17502
17519
 
17520
+ // src/components/features/auth/account-details-fields.tsx
17521
+
17522
+ function AccountDetailsFields({
17523
+ firstName,
17524
+ lastName,
17525
+ password,
17526
+ confirmPassword,
17527
+ onFirstNameChange,
17528
+ onLastNameChange,
17529
+ onPasswordChange,
17530
+ onConfirmPasswordChange,
17531
+ errors,
17532
+ disabled = false,
17533
+ onKeyDown,
17534
+ layout = "stacked"
17535
+ }) {
17536
+ const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _398 => _398.firstName]), firstName);
17537
+ const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.lastName]), lastName);
17538
+ const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.password]), password);
17539
+ const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.confirmPassword]), confirmPassword);
17540
+ const names = [
17541
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17542
+ _chunkIKDC3R7Vcjs.Input,
17543
+ {
17544
+ label: "First Name",
17545
+ placeholder: "Enter First Name",
17546
+ value: firstName,
17547
+ error: firstNameErr.error,
17548
+ disabled,
17549
+ onBlur: firstNameErr.onBlur,
17550
+ onChange: (event) => onFirstNameChange(event.target.value),
17551
+ onKeyDown
17552
+ },
17553
+ "firstName"
17554
+ ),
17555
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17556
+ _chunkIKDC3R7Vcjs.Input,
17557
+ {
17558
+ label: "Last Name",
17559
+ placeholder: "Enter Last Name",
17560
+ value: lastName,
17561
+ error: lastNameErr.error,
17562
+ disabled,
17563
+ onBlur: lastNameErr.onBlur,
17564
+ onChange: (event) => onLastNameChange(event.target.value),
17565
+ onKeyDown
17566
+ },
17567
+ "lastName"
17568
+ )
17569
+ ];
17570
+ const passwords = [
17571
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17572
+ PasswordInput,
17573
+ {
17574
+ label: "Password",
17575
+ placeholder: "Enter Password",
17576
+ value: password,
17577
+ error: passwordErr.error,
17578
+ disabled,
17579
+ onBlur: passwordErr.onBlur,
17580
+ onChange: (event) => onPasswordChange(event.target.value),
17581
+ onKeyDown
17582
+ },
17583
+ "password"
17584
+ ),
17585
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17586
+ PasswordInput,
17587
+ {
17588
+ label: "Confirm Password",
17589
+ placeholder: "Confirm Password",
17590
+ value: confirmPassword,
17591
+ error: confirmErr.error,
17592
+ disabled,
17593
+ onBlur: confirmErr.onBlur,
17594
+ onChange: (event) => onConfirmPasswordChange(event.target.value),
17595
+ onKeyDown
17596
+ },
17597
+ "confirmPassword"
17598
+ )
17599
+ ];
17600
+ if (layout === "stacked") {
17601
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17602
+ names,
17603
+ passwords
17604
+ ] });
17605
+ }
17606
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17607
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-l)]", children: names }),
17608
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-l)]", children: passwords })
17609
+ ] });
17610
+ }
17611
+
17503
17612
  // src/components/features/auth/auth-benefits-panel.tsx
17504
17613
 
17505
17614
  var DEFAULT_TITLE = "The All-in-One Open Platform for MSPs";
@@ -17620,11 +17729,21 @@ function BackToLoginLink({ onClick, label = "Back to Login", className }) {
17620
17729
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick, className: _chunkPRPZBXWZcjs.cn.call(void 0, "text-ods-text-secondary underline text-h4", className), children: label });
17621
17730
  }
17622
17731
 
17732
+ // src/components/features/auth/labeled-divider.tsx
17733
+
17734
+ function LabeledDivider({ label }) {
17735
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
17736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
17737
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: label }),
17738
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
17739
+ ] });
17740
+ }
17741
+
17623
17742
  // src/components/features/auth/sso-providers.tsx
17624
17743
 
17625
17744
  var PROVIDER_META = {
17626
17745
  openframe: {
17627
- name: "OpenFrame SSO",
17746
+ name: "OpenFrame",
17628
17747
  Icon: ({ className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17629
17748
  _chunk63QUMV72cjs.OpenFrameLogo,
17630
17749
  {
@@ -17657,8 +17776,8 @@ function SsoProviderButtons({
17657
17776
  disabled: disabled || (enabledProviders ? !enabledProviders.includes(provider) : false),
17658
17777
  className: "disabled:bg-ods-bg",
17659
17778
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: "h-5 w-5" }),
17660
- onClick: () => _optionalChain([onSsoClick, 'optionalCall', _398 => _398(provider)]),
17661
- children: provider === "openframe" ? meta.name : `${actionLabel} ${meta.name}`
17779
+ onClick: () => _optionalChain([onSsoClick, 'optionalCall', _402 => _402(provider)]),
17780
+ children: `${actionLabel} ${meta.name}`
17662
17781
  },
17663
17782
  provider
17664
17783
  );
@@ -17694,10 +17813,6 @@ function CompleteAccountForm({
17694
17813
  children
17695
17814
  }) {
17696
17815
  const fieldsDisabled = disabled || loading;
17697
- const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.firstName]), firstName);
17698
- const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.lastName]), lastName);
17699
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.password]), password);
17700
- const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _402 => _402.confirmPassword]), confirmPassword);
17701
17816
  const handleKeyDown = (event) => {
17702
17817
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
17703
17818
  onSubmit();
@@ -17725,61 +17840,21 @@ function CompleteAccountForm({
17725
17840
  disabled: fieldsDisabled
17726
17841
  }
17727
17842
  ),
17728
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
17729
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
17730
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
17731
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
17732
- ] })
17843
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel })
17733
17844
  ] }),
17734
17845
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17735
- _chunkIKDC3R7Vcjs.Input,
17736
- {
17737
- label: "First Name",
17738
- placeholder: "Enter First Name",
17739
- value: firstName,
17740
- error: firstNameErr.error,
17741
- disabled: fieldsDisabled,
17742
- onBlur: firstNameErr.onBlur,
17743
- onChange: (event) => onFirstNameChange(event.target.value),
17744
- onKeyDown: handleKeyDown
17745
- }
17746
- ),
17747
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17748
- _chunkIKDC3R7Vcjs.Input,
17749
- {
17750
- label: "Last Name",
17751
- placeholder: "Enter Last Name",
17752
- value: lastName,
17753
- error: lastNameErr.error,
17754
- disabled: fieldsDisabled,
17755
- onBlur: lastNameErr.onBlur,
17756
- onChange: (event) => onLastNameChange(event.target.value),
17757
- onKeyDown: handleKeyDown
17758
- }
17759
- ),
17760
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17761
- PasswordInput,
17762
- {
17763
- label: "Password",
17764
- placeholder: "Enter Password",
17765
- value: password,
17766
- error: passwordErr.error,
17767
- disabled: fieldsDisabled,
17768
- onBlur: passwordErr.onBlur,
17769
- onChange: (event) => onPasswordChange(event.target.value),
17770
- onKeyDown: handleKeyDown
17771
- }
17772
- ),
17773
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17774
- PasswordInput,
17846
+ AccountDetailsFields,
17775
17847
  {
17776
- label: "Confirm Password",
17777
- placeholder: "Confirm Password",
17778
- value: confirmPassword,
17779
- error: confirmErr.error,
17848
+ firstName,
17849
+ lastName,
17850
+ password,
17851
+ confirmPassword,
17852
+ onFirstNameChange,
17853
+ onLastNameChange,
17854
+ onPasswordChange,
17855
+ onConfirmPasswordChange,
17856
+ errors,
17780
17857
  disabled: fieldsDisabled,
17781
- onBlur: confirmErr.onBlur,
17782
- onChange: (event) => onConfirmPasswordChange(event.target.value),
17783
17858
  onKeyDown: handleKeyDown
17784
17859
  }
17785
17860
  ),
@@ -17863,11 +17938,25 @@ function CreateOrganizationForm({
17863
17938
  onDomainChange,
17864
17939
  onAgreedToTermsChange,
17865
17940
  onSubmit,
17941
+ firstName = "",
17942
+ lastName = "",
17943
+ password = "",
17944
+ confirmPassword = "",
17945
+ onFirstNameChange,
17946
+ onLastNameChange,
17947
+ onPasswordChange,
17948
+ onConfirmPasswordChange,
17949
+ emailReadOnly = false,
17950
+ emailReadOnlyLabel = "Email",
17951
+ title = "Create Organization",
17952
+ subtitle = "Start your journey with OpenFrame.",
17866
17953
  domainSuffix,
17867
17954
  domainPlaceholder = "company-name",
17868
17955
  termsUrl = "#",
17869
17956
  privacyPolicyUrl = "#",
17870
17957
  submitLabel = "Continue",
17958
+ onBack,
17959
+ backLabel = "Back",
17871
17960
  submitDisabled = false,
17872
17961
  loading = false,
17873
17962
  disabled = false,
@@ -17884,11 +17973,11 @@ function CreateOrganizationForm({
17884
17973
  }) {
17885
17974
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
17886
17975
  const fieldsDisabled = disabled || loading;
17887
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.email]), email);
17976
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.email]), _nullishCoalesce(email, () => ( "")));
17888
17977
  const orgNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _404 => _404.organizationName]), organizationName);
17889
17978
  const domainErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _405 => _405.domain]), domain);
17890
17979
  const handleKeyDown = (event) => {
17891
- if (event.key === "Enter" && !fieldsDisabled) {
17980
+ if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
17892
17981
  onSubmit();
17893
17982
  }
17894
17983
  };
@@ -17901,10 +17990,10 @@ function CreateOrganizationForm({
17901
17990
  ),
17902
17991
  children: [
17903
17992
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
17904
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: "Create Organization" }),
17905
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: "Start your journey with OpenFrame." })
17993
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
17994
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
17906
17995
  ] }),
17907
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17996
+ email === void 0 ? null : emailReadOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKDC3R7Vcjs.Input, { type: "email", label: emailReadOnlyLabel, value: email, readOnly: true, disabled: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17908
17997
  _chunkIKDC3R7Vcjs.Input,
17909
17998
  {
17910
17999
  type: "email",
@@ -17915,7 +18004,7 @@ function CreateOrganizationForm({
17915
18004
  errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _407 => _407.variant]),
17916
18005
  disabled: fieldsDisabled,
17917
18006
  onBlur: emailErr.onBlur,
17918
- onChange: (event) => onEmailChange(event.target.value),
18007
+ onChange: (event) => _optionalChain([onEmailChange, 'optionalCall', _408 => _408(event.target.value)]),
17919
18008
  onKeyDown: handleKeyDown
17920
18009
  }
17921
18010
  ),
@@ -17939,8 +18028,8 @@ function CreateOrganizationForm({
17939
18028
  label: "Domain",
17940
18029
  placeholder: domainPlaceholder,
17941
18030
  value: domain,
17942
- error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _408 => _408.message]))),
17943
- errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _409 => _409.variant]),
18031
+ error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _409 => _409.message]))),
18032
+ errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _410 => _410.variant]),
17944
18033
  disabled: fieldsDisabled,
17945
18034
  onBlur: domainErr.onBlur,
17946
18035
  endAdornment: domainSuffix ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: domainSuffix }) : void 0,
@@ -17950,6 +18039,23 @@ function CreateOrganizationForm({
17950
18039
  ),
17951
18040
  domainSlot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-s)]", children: domainSlot })
17952
18041
  ] }),
18042
+ onFirstNameChange && onLastNameChange && onPasswordChange && onConfirmPasswordChange && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18043
+ AccountDetailsFields,
18044
+ {
18045
+ layout: "paired",
18046
+ firstName,
18047
+ lastName,
18048
+ password,
18049
+ confirmPassword,
18050
+ onFirstNameChange,
18051
+ onLastNameChange,
18052
+ onPasswordChange,
18053
+ onConfirmPasswordChange,
18054
+ errors,
18055
+ disabled: fieldsDisabled,
18056
+ onKeyDown: handleKeyDown
18057
+ }
18058
+ ),
17953
18059
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17954
18060
  CheckboxBlock,
17955
18061
  {
@@ -17957,28 +18063,39 @@ function CreateOrganizationForm({
17957
18063
  label: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TermsAgreementLabel, { termsUrl, privacyPolicyUrl }),
17958
18064
  checked: agreedToTerms,
17959
18065
  disabled: fieldsDisabled,
17960
- error: _optionalChain([errors, 'optionalAccess', _410 => _410.terms]),
18066
+ error: _optionalChain([errors, 'optionalAccess', _411 => _411.terms]),
17961
18067
  onCheckedChange: onAgreedToTermsChange
17962
18068
  }
17963
18069
  ),
17964
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17965
- _chunkYHNIPSG6cjs.Button,
17966
- {
17967
- type: "button",
17968
- variant: "accent",
17969
- fullWidth: true,
17970
- loading,
17971
- disabled: disabled || submitDisabled,
17972
- onClick: onSubmit,
17973
- children: submitLabel
17974
- }
17975
- ),
18070
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
18071
+ onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18072
+ _chunkYHNIPSG6cjs.Button,
18073
+ {
18074
+ type: "button",
18075
+ variant: "transparent",
18076
+ fullWidth: true,
18077
+ className: "flex-1",
18078
+ disabled: fieldsDisabled,
18079
+ onClick: onBack,
18080
+ children: backLabel
18081
+ }
18082
+ ),
18083
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18084
+ _chunkYHNIPSG6cjs.Button,
18085
+ {
18086
+ type: "button",
18087
+ variant: "accent",
18088
+ fullWidth: true,
18089
+ className: "flex-1",
18090
+ loading,
18091
+ disabled: disabled || submitDisabled,
18092
+ onClick: onSubmit,
18093
+ children: submitLabel
18094
+ }
18095
+ )
18096
+ ] }),
17976
18097
  hasSso && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17977
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
17978
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
17979
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
17980
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
17981
- ] }),
18098
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
17982
18099
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17983
18100
  SsoProviderButtons,
17984
18101
  {
@@ -18040,7 +18157,6 @@ function InviteLinkInvalidModal({
18040
18157
  function LoginForm({
18041
18158
  email,
18042
18159
  onEmailChange,
18043
- onSubmit,
18044
18160
  emailPlaceholder = "username@mail.com",
18045
18161
  loading = false,
18046
18162
  disabled = false,
@@ -18051,14 +18167,21 @@ function LoginForm({
18051
18167
  ssoDisabled = false,
18052
18168
  ssoEnabledProviders,
18053
18169
  ssoActionLabel = "Continue with",
18170
+ dividerLabel = "or continue with OpenFrame SSO",
18171
+ customSsoProviders,
18172
+ noCustomSsoLabel = "No additional SSO configurations for this domain",
18173
+ onSubmitClick,
18174
+ submitLabel = "Continue",
18175
+ submitDisabled = false,
18176
+ title = "Login to OpenFrame",
18177
+ subtitle = "Enter your email to access your organization.",
18054
18178
  className
18055
18179
  }) {
18056
18180
  const fieldDisabled = disabled || loading;
18057
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _411 => _411.email]), email);
18181
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _412 => _412.email]), email);
18058
18182
  const handleKeyDown = (event) => {
18059
- if (event.key === "Enter" && !fieldDisabled) {
18060
- _optionalChain([onSubmit, 'optionalCall', _412 => _412()]);
18061
- }
18183
+ if (event.key !== "Enter" || fieldDisabled || submitDisabled) return;
18184
+ _optionalChain([onSubmitClick, 'optionalCall', _413 => _413()]);
18062
18185
  };
18063
18186
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18064
18187
  "div",
@@ -18069,9 +18192,20 @@ function LoginForm({
18069
18192
  ),
18070
18193
  children: [
18071
18194
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
18072
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: "Login to OpenFrame" }),
18073
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: "Enter your email to access your organization." })
18195
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
18196
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
18074
18197
  ] }),
18198
+ ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18199
+ SsoProviderButtons,
18200
+ {
18201
+ providers: ssoProviders,
18202
+ onSsoClick,
18203
+ actionLabel: ssoActionLabel,
18204
+ disabled: disabled || loading || ssoDisabled,
18205
+ enabledProviders: ssoEnabledProviders
18206
+ }
18207
+ ),
18208
+ ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
18075
18209
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18076
18210
  _chunkIKDC3R7Vcjs.Input,
18077
18211
  {
@@ -18079,24 +18213,56 @@ function LoginForm({
18079
18213
  label: "Email",
18080
18214
  placeholder: emailPlaceholder,
18081
18215
  value: email,
18082
- error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _413 => _413.message]))),
18083
- errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _414 => _414.variant]),
18216
+ error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _414 => _414.message]))),
18217
+ errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _415 => _415.variant]),
18084
18218
  disabled: fieldDisabled,
18085
18219
  onBlur: emailErr.onBlur,
18086
18220
  onChange: (event) => onEmailChange(event.target.value),
18087
18221
  onKeyDown: handleKeyDown
18088
18222
  }
18089
18223
  ),
18090
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18224
+ customSsoProviders && (customSsoProviders.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18091
18225
  SsoProviderButtons,
18092
18226
  {
18093
- providers: ssoProviders,
18227
+ providers: customSsoProviders,
18094
18228
  onSsoClick,
18095
18229
  actionLabel: ssoActionLabel,
18096
- disabled: disabled || loading || ssoDisabled,
18097
- enabledProviders: ssoEnabledProviders
18230
+ disabled: disabled || loading
18098
18231
  }
18099
- )
18232
+ ) : (
18233
+ // Same footprint as the button it stands in for, so nothing shifts when a tenant does
18234
+ // have options. Tokens are the design's: soft-grey surface, grey text and icon, the
18235
+ // bold-body step, a 24px icon, and 12/16 for the inset and the gap.
18236
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18237
+ "div",
18238
+ {
18239
+ role: "status",
18240
+ className: "flex h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:h-12",
18241
+ children: [
18242
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
18243
+ noCustomSsoLabel
18244
+ ]
18245
+ }
18246
+ )
18247
+ )),
18248
+ onSubmitClick && // Full width on a phone, half the row and right-aligned from `md` up, matching the design.
18249
+ // The spacer, rather than a width on the button, keeps it flush with the fields' right edge.
18250
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
18251
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
18252
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18253
+ _chunkYHNIPSG6cjs.Button,
18254
+ {
18255
+ type: "button",
18256
+ variant: "accent",
18257
+ fullWidth: true,
18258
+ className: "md:flex-1",
18259
+ loading,
18260
+ disabled: submitDisabled || fieldDisabled,
18261
+ onClick: onSubmitClick,
18262
+ children: submitLabel
18263
+ }
18264
+ )
18265
+ ] })
18100
18266
  ]
18101
18267
  }
18102
18268
  );
@@ -18126,8 +18292,8 @@ function OpenFrameSsoLoginForm({
18126
18292
  className
18127
18293
  }) {
18128
18294
  const fieldsDisabled = disabled || loading;
18129
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _415 => _415.email]), email);
18130
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.password]), password);
18295
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.email]), email);
18296
+ const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.password]), password);
18131
18297
  const handleKeyDown = (event) => {
18132
18298
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18133
18299
  onSubmit();
@@ -18232,11 +18398,7 @@ function OpenFrameSsoSignUpForm({
18232
18398
  className
18233
18399
  }) {
18234
18400
  const fieldsDisabled = disabled || loading;
18235
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.email]), email);
18236
- const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.firstName]), firstName);
18237
- const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.lastName]), lastName);
18238
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.password]), password);
18239
- const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _421 => _421.confirmPassword]), confirmPassword);
18401
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.email]), email);
18240
18402
  const handleKeyDown = (event) => {
18241
18403
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18242
18404
  onSubmit();
@@ -18269,54 +18431,18 @@ function OpenFrameSsoSignUpForm({
18269
18431
  }
18270
18432
  ),
18271
18433
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18272
- _chunkIKDC3R7Vcjs.Input,
18273
- {
18274
- label: "First Name",
18275
- placeholder: "Enter First Name",
18276
- value: firstName,
18277
- error: firstNameErr.error,
18278
- disabled: fieldsDisabled,
18279
- onBlur: firstNameErr.onBlur,
18280
- onChange: (event) => onFirstNameChange(event.target.value),
18281
- onKeyDown: handleKeyDown
18282
- }
18283
- ),
18284
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18285
- _chunkIKDC3R7Vcjs.Input,
18286
- {
18287
- label: "Last Name",
18288
- placeholder: "Enter Last Name",
18289
- value: lastName,
18290
- error: lastNameErr.error,
18291
- disabled: fieldsDisabled,
18292
- onBlur: lastNameErr.onBlur,
18293
- onChange: (event) => onLastNameChange(event.target.value),
18294
- onKeyDown: handleKeyDown
18295
- }
18296
- ),
18297
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18298
- PasswordInput,
18434
+ AccountDetailsFields,
18299
18435
  {
18300
- label: "Password",
18301
- placeholder: "Enter Password",
18302
- value: password,
18303
- error: passwordErr.error,
18436
+ firstName,
18437
+ lastName,
18438
+ password,
18439
+ confirmPassword,
18440
+ onFirstNameChange,
18441
+ onLastNameChange,
18442
+ onPasswordChange,
18443
+ onConfirmPasswordChange,
18444
+ errors,
18304
18445
  disabled: fieldsDisabled,
18305
- onBlur: passwordErr.onBlur,
18306
- onChange: (event) => onPasswordChange(event.target.value),
18307
- onKeyDown: handleKeyDown
18308
- }
18309
- ),
18310
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18311
- PasswordInput,
18312
- {
18313
- label: "Confirm Password",
18314
- placeholder: "Confirm Password",
18315
- value: confirmPassword,
18316
- error: confirmErr.error,
18317
- disabled: fieldsDisabled,
18318
- onBlur: confirmErr.onBlur,
18319
- onChange: (event) => onConfirmPasswordChange(event.target.value),
18320
18446
  onKeyDown: handleKeyDown
18321
18447
  }
18322
18448
  ),
@@ -18377,8 +18503,8 @@ function PasswordResetForm({
18377
18503
  className
18378
18504
  }) {
18379
18505
  const fieldsDisabled = disabled || loading;
18380
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _422 => _422.password]), password);
18381
- const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _423 => _423.confirmPassword]), confirmPassword);
18506
+ const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.password]), password);
18507
+ const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.confirmPassword]), confirmPassword);
18382
18508
  const handleKeyDown = (event) => {
18383
18509
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18384
18510
  onSubmit();
@@ -18912,7 +19038,7 @@ function EntityTagBadges({ tags, basePath, max, className }) {
18912
19038
  const label = (tag.name || "").toUpperCase();
18913
19039
  if (basePath && tag.slug) {
18914
19040
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: `${basePath}?tags=${tag.slug}`, className: "inline-flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18915
- _chunkNNFQLTJ3cjs.StatusBadge,
19041
+ _chunkEMF64FWAcjs.StatusBadge,
18916
19042
  {
18917
19043
  text: label,
18918
19044
  variant: "card",
@@ -18920,9 +19046,9 @@ function EntityTagBadges({ tags, basePath, max, className }) {
18920
19046
  }
18921
19047
  ) }, key);
18922
19048
  }
18923
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }, key);
19049
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }, key);
18924
19050
  }),
18925
- overflow2 > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.StatusBadge, { text: `+${overflow2}`, variant: "card", className: `${BADGE_CLASS} text-ods-text-secondary` })
19051
+ overflow2 > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.StatusBadge, { text: `+${overflow2}`, variant: "card", className: `${BADGE_CLASS} text-ods-text-secondary` })
18926
19052
  ] });
18927
19053
  }
18928
19054
 
@@ -18999,7 +19125,7 @@ var SectionButton = ({
18999
19125
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
19000
19126
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClasses, "whitespace-normal break-words text-h4"), children: section.title }),
19001
19127
  section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19002
- _chunkNNFQLTJ3cjs.StatusBadge,
19128
+ _chunkEMF64FWAcjs.StatusBadge,
19003
19129
  {
19004
19130
  text: section.badge.text,
19005
19131
  variant: section.badge.variant || "button",
@@ -19018,7 +19144,7 @@ var SectionButton = ({
19018
19144
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-wrap items-start gap-2", children: [
19019
19145
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClasses, "text-h3"), style: { textAlign: "left" }, children: section.title }),
19020
19146
  section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19021
- _chunkNNFQLTJ3cjs.StatusBadge,
19147
+ _chunkEMF64FWAcjs.StatusBadge,
19022
19148
  {
19023
19149
  text: section.badge.text,
19024
19150
  variant: section.badge.variant || "button",
@@ -19089,10 +19215,10 @@ var getContentDimensions = (config) => {
19089
19215
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
19090
19216
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
19091
19217
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
19092
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _424 => _424.mobileContentDimensions, 'optionalAccess', _425 => _425.width]))), () => ( defaultMobile.width));
19093
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _426 => _426.mobileContentDimensions, 'optionalAccess', _427 => _427.height]))), () => ( defaultMobile.height));
19094
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _428 => _428.desktopContentDimensions, 'optionalAccess', _429 => _429.width]))), () => ( defaultDesktop.width));
19095
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _430 => _430.desktopContentDimensions, 'optionalAccess', _431 => _431.height]))), () => ( defaultDesktop.height));
19218
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.mobileContentDimensions, 'optionalAccess', _422 => _422.width]))), () => ( defaultMobile.width));
19219
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _423 => _423.mobileContentDimensions, 'optionalAccess', _424 => _424.height]))), () => ( defaultMobile.height));
19220
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _425 => _425.desktopContentDimensions, 'optionalAccess', _426 => _426.width]))), () => ( defaultDesktop.width));
19221
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _427 => _427.desktopContentDimensions, 'optionalAccess', _428 => _428.height]))), () => ( defaultDesktop.height));
19096
19222
  return {
19097
19223
  mobile: { width: mobileWidth, height: mobileHeight },
19098
19224
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -19248,7 +19374,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
19248
19374
  const contentDimensions = getContentDimensions(config);
19249
19375
  const mobileHeight = contentDimensions.mobile.height;
19250
19376
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
19251
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _432 => _432.innerHeight]) * 0.85 || 650)}px`;
19377
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _429 => _429.innerHeight]) * 0.85 || 650)}px`;
19252
19378
  })(),
19253
19379
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
19254
19380
  const contentDimensions = getContentDimensions(config);
@@ -19306,7 +19432,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
19306
19432
  sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
19307
19433
  title: config.title,
19308
19434
  loading: "eager",
19309
- ..._chunkIKUSKKFZcjs.fetchPriorityProp.call(void 0, "high")
19435
+ ..._chunkG45RGWHFcjs.fetchPriorityProp.call(void 0, "high")
19310
19436
  },
19311
19437
  iframeKey
19312
19438
  ),
@@ -19351,7 +19477,7 @@ var FigmaPrototypeViewer = ({
19351
19477
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
19352
19478
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
19353
19479
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
19354
- config.defaultSectionId || _optionalChain([config, 'access', _433 => _433.sections, 'access', _434 => _434[0], 'optionalAccess', _435 => _435.id]) || ""
19480
+ config.defaultSectionId || _optionalChain([config, 'access', _430 => _430.sections, 'access', _431 => _431[0], 'optionalAccess', _432 => _432.id]) || ""
19355
19481
  );
19356
19482
  const activeSection = externalActiveSection || internalActiveSection;
19357
19483
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -19449,19 +19575,19 @@ var FigmaPrototypeViewer = ({
19449
19575
  setIframeState("READY");
19450
19576
  break;
19451
19577
  case "PRESENTED_NODE_CHANGED":
19452
- if (_optionalChain([figmaEvent, 'access', _436 => _436.data, 'optionalAccess', _437 => _437.presentedNodeId])) {
19578
+ if (_optionalChain([figmaEvent, 'access', _433 => _433.data, 'optionalAccess', _434 => _434.presentedNodeId])) {
19453
19579
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
19454
19580
  if (!isNavigating) {
19455
19581
  const matchingSection = configSections.find((s) => {
19456
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _438 => _438.data, 'optionalAccess', _439 => _439.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _440 => _440.data, 'optionalAccess', _441 => _441.presentedNodeId]);
19457
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _442 => _442.data, 'optionalAccess', _443 => _443.presentedNodeId]) || _optionalChain([s, 'access', _444 => _444.mobileStartingNodeId, 'optionalAccess', _445 => _445.replace, 'call', _446 => _446(":", "-")]) === _optionalChain([figmaEvent, 'access', _447 => _447.data, 'optionalAccess', _448 => _448.presentedNodeId]);
19582
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _435 => _435.data, 'optionalAccess', _436 => _436.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _437 => _437.data, 'optionalAccess', _438 => _438.presentedNodeId]);
19583
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _439 => _439.data, 'optionalAccess', _440 => _440.presentedNodeId]) || _optionalChain([s, 'access', _441 => _441.mobileStartingNodeId, 'optionalAccess', _442 => _442.replace, 'call', _443 => _443(":", "-")]) === _optionalChain([figmaEvent, 'access', _444 => _444.data, 'optionalAccess', _445 => _445.presentedNodeId]);
19458
19584
  return desktopMatch || mobileMatch;
19459
19585
  });
19460
19586
  if (matchingSection && matchingSection.id !== activeSection) {
19461
19587
  if (!externalActiveSection) {
19462
19588
  setInternalActiveSection(matchingSection.id);
19463
19589
  }
19464
- _optionalChain([onSectionChange, 'optionalCall', _449 => _449(matchingSection.id)]);
19590
+ _optionalChain([onSectionChange, 'optionalCall', _446 => _446(matchingSection.id)]);
19465
19591
  }
19466
19592
  }
19467
19593
  }
@@ -19475,7 +19601,7 @@ var FigmaPrototypeViewer = ({
19475
19601
  const navigateToSection = _react.useCallback.call(void 0,
19476
19602
  (sectionId) => {
19477
19603
  const section = config.sections.find((s) => s.id === sectionId);
19478
- if (!section || !_optionalChain([iframeRef, 'access', _450 => _450.current, 'optionalAccess', _451 => _451.contentWindow]) || !isInitialized) {
19604
+ if (!section || !_optionalChain([iframeRef, 'access', _447 => _447.current, 'optionalAccess', _448 => _448.contentWindow]) || !isInitialized) {
19479
19605
  return;
19480
19606
  }
19481
19607
  setIsNavigating(true);
@@ -19483,7 +19609,7 @@ var FigmaPrototypeViewer = ({
19483
19609
  if (!externalActiveSection) {
19484
19610
  setInternalActiveSection(sectionId);
19485
19611
  }
19486
- _optionalChain([config, 'access', _452 => _452.onSectionChange, 'optionalCall', _453 => _453(sectionId)]);
19612
+ _optionalChain([config, 'access', _449 => _449.onSectionChange, 'optionalCall', _450 => _450(sectionId)]);
19487
19613
  const command = {
19488
19614
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
19489
19615
  data: { nodeId }
@@ -19820,7 +19946,7 @@ var FiltersDropdown = ({
19820
19946
  defaults[section.id] = section.defaultSelected || [];
19821
19947
  });
19822
19948
  setSelectedFilters(defaults);
19823
- _optionalChain([onReset, 'optionalCall', _454 => _454()]);
19949
+ _optionalChain([onReset, 'optionalCall', _451 => _451()]);
19824
19950
  setIsOpen(false);
19825
19951
  };
19826
19952
  const handleApply = () => {
@@ -20069,7 +20195,7 @@ function MediaGalleryManager({
20069
20195
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
20070
20196
  const handleFileSelect = _react.useCallback.call(void 0,
20071
20197
  async (event) => {
20072
- const file = _optionalChain([event, 'access', _455 => _455.target, 'access', _456 => _456.files, 'optionalAccess', _457 => _457[0]]);
20198
+ const file = _optionalChain([event, 'access', _452 => _452.target, 'access', _453 => _453.files, 'optionalAccess', _454 => _454[0]]);
20073
20199
  if (!file) return;
20074
20200
  let mediaType;
20075
20201
  if (file.type.startsWith("image/")) {
@@ -20132,7 +20258,7 @@ function MediaGalleryManager({
20132
20258
  (mediaItem, index) => {
20133
20259
  const isDeleting = deletingIndex === index;
20134
20260
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20135
- _chunkNNFQLTJ3cjs.Card,
20261
+ _chunkEMF64FWAcjs.Card,
20136
20262
  {
20137
20263
  className: "group relative border-ods-border transition-colors hover:border-ods-accent/30",
20138
20264
  draggable: true,
@@ -20153,10 +20279,10 @@ function MediaGalleryManager({
20153
20279
  children: isDeleting ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-4 w-4 animate-spin text-ods-text-on-dark" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-on-dark" })
20154
20280
  }
20155
20281
  ) }),
20156
- /* @__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" ? (
20282
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: _chunkEMF64FWAcjs.isVideoMedia.call(void 0, mediaItem) || mediaItem.media_type === "demo" ? (
20157
20283
  // <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
20158
20284
  // fit="cover" crops to the aspect-video cell.
20159
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
20285
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
20160
20286
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20161
20287
  _chunkWLSFBRT5cjs.next_image_default,
20162
20288
  {
@@ -20169,7 +20295,7 @@ function MediaGalleryManager({
20169
20295
  ) }),
20170
20296
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-3", children: [
20171
20297
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-1 flex items-center gap-2", children: [
20172
- mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4 text-ods-text-secondary" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Image, { className: "h-4 w-4 text-ods-text-secondary" }),
20298
+ _chunkEMF64FWAcjs.isVideoMedia.call(void 0, mediaItem) || mediaItem.media_type === "demo" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4 text-ods-text-secondary" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Image, { className: "h-4 w-4 text-ods-text-secondary" }),
20173
20299
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "capitalize text-ods-text-primary text-h6", children: mediaItem.media_type })
20174
20300
  ] }),
20175
20301
  mediaItem.title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: mediaItem.title })
@@ -20194,7 +20320,7 @@ function MediaGalleryManager({
20194
20320
  {
20195
20321
  type: "button",
20196
20322
  variant: "outline",
20197
- onClick: () => _optionalChain([fileInputRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.click, 'call', _460 => _460()]),
20323
+ onClick: () => _optionalChain([fileInputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.click, 'call', _457 => _457()]),
20198
20324
  disabled: isUploading,
20199
20325
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
20200
20326
  className: "font-bold text-h6",
@@ -20643,6 +20769,7 @@ function UnifiedSkeleton({
20643
20769
  rectangular: "h-4"
20644
20770
  };
20645
20771
  const animationClasses = animate ? "animate-pulse motion-reduce:animate-none" : "";
20772
+ const sizedByAspect = /(?:^|\s)aspect-/.test(_nullishCoalesce(className, () => ( "")));
20646
20773
  const style = {
20647
20774
  width,
20648
20775
  height
@@ -20653,7 +20780,7 @@ function UnifiedSkeleton({
20653
20780
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
20654
20781
  baseClasses,
20655
20782
  variantClasses[variant],
20656
- !height && !style.height && defaultHeights[variant],
20783
+ !height && !style.height && !sizedByAspect && defaultHeights[variant],
20657
20784
  !width && !style.width && variant !== "circular" && "w-full",
20658
20785
  animationClasses,
20659
20786
  className
@@ -22318,9 +22445,9 @@ function PushButtonSelector({
22318
22445
  }) {
22319
22446
  const scrollRef = _react.useRef.call(void 0, null);
22320
22447
  const sentinelRef = _react.useRef.call(void 0, null);
22321
- const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _461 => _461.hasMore]), () => ( false));
22322
- const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _462 => _462.isFetchingMore]), () => ( false));
22323
- const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _463 => _463.onLoadMore]);
22448
+ const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _458 => _458.hasMore]), () => ( false));
22449
+ const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _459 => _459.isFetchingMore]), () => ( false));
22450
+ const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _460 => _460.onLoadMore]);
22324
22451
  const optionCount = options.length;
22325
22452
  _react.useEffect.call(void 0, () => {
22326
22453
  const sentinel = sentinelRef.current;
@@ -22406,9 +22533,9 @@ function PushButtonSelector({
22406
22533
  option.id
22407
22534
  );
22408
22535
  if (option.disabled && option.disabledReason) {
22409
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Tooltip, { children: [
22410
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipTrigger, { asChild: true, children: optionEl }),
22411
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
22536
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
22537
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: optionEl }),
22538
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
22412
22539
  ] }, option.id);
22413
22540
  }
22414
22541
  return optionEl;
@@ -22453,7 +22580,7 @@ function PushButtonSelector({
22453
22580
  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
22454
22581
  ] }) : null
22455
22582
  ] });
22456
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
22583
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
22457
22584
  title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
22458
22585
  searchInput,
22459
22586
  lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22491,7 +22618,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
22491
22618
  const fileInputRef = _react.useRef.call(void 0, null);
22492
22619
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
22493
22620
  const handleFileSelect = async (event) => {
22494
- const file = _optionalChain([event, 'access', _464 => _464.target, 'access', _465 => _465.files, 'optionalAccess', _466 => _466[0]]);
22621
+ const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
22495
22622
  if (!file) return;
22496
22623
  let mediaType;
22497
22624
  if (file.type.startsWith("image/")) {
@@ -22573,7 +22700,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
22573
22700
  {
22574
22701
  type: "button",
22575
22702
  variant: "outline",
22576
- onClick: () => _optionalChain([fileInputRef, 'access', _467 => _467.current, 'optionalAccess', _468 => _468.click, 'call', _469 => _469()]),
22703
+ onClick: () => _optionalChain([fileInputRef, 'access', _464 => _464.current, 'optionalAccess', _465 => _465.click, 'call', _466 => _466()]),
22577
22704
  disabled: uploadingIndex !== null,
22578
22705
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
22579
22706
  className: "font-bold text-h6",
@@ -22623,10 +22750,10 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
22623
22750
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-on-dark" })
22624
22751
  }
22625
22752
  ) }),
22626
- 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" ? (
22753
+ item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: _chunkEMF64FWAcjs.isVideoMedia.call(void 0, item) || item.media_type === "demo" ? (
22627
22754
  // <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
22628
22755
  // fit="cover" crops to the aspect-video cell.
22629
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
22756
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
22630
22757
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22631
22758
  _chunkWLSFBRT5cjs.next_image_default,
22632
22759
  {
@@ -22759,7 +22886,7 @@ var SelectButton = _react2.default.forwardRef(
22759
22886
  }
22760
22887
  )
22761
22888
  ] }),
22762
- tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
22889
+ tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
22763
22890
  selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
22764
22891
  ]
22765
22892
  }
@@ -22854,7 +22981,7 @@ function SEOEditorPreview({
22854
22981
  const displayImage = hasOgImage || hasFeaturedImage;
22855
22982
  const handleImageUpload = async (event) => {
22856
22983
  if (!onOgImageUpload) return;
22857
- const file = _optionalChain([event, 'access', _470 => _470.target, 'access', _471 => _471.files, 'optionalAccess', _472 => _472[0]]);
22984
+ const file = _optionalChain([event, 'access', _467 => _467.target, 'access', _468 => _468.files, 'optionalAccess', _469 => _469[0]]);
22858
22985
  if (!file) return;
22859
22986
  setIsUploading(true);
22860
22987
  try {
@@ -23011,7 +23138,7 @@ function SEOEditorPreview({
23011
23138
  type: "button",
23012
23139
  variant: "outline",
23013
23140
  size: "icon",
23014
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _473 => _473.click, 'call', _474 => _474()]),
23141
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _470 => _470.click, 'call', _471 => _471()]),
23015
23142
  disabled: disabled || isUploading,
23016
23143
  className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
23017
23144
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -23037,7 +23164,7 @@ function SEOEditorPreview({
23037
23164
  SEO_MEDIA_BOX_HEIGHT,
23038
23165
  "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"
23039
23166
  ),
23040
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _475 => _475.click, 'call', _476 => _476()]),
23167
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _472 => _472.click, 'call', _473 => _473()]),
23041
23168
  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: [
23042
23169
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
23043
23170
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -23124,7 +23251,7 @@ function SocialLinksManager({
23124
23251
  className = ""
23125
23252
  }) {
23126
23253
  const addLink = () => {
23127
- const firstPlatform = _optionalChain([platforms, 'access', _477 => _477[0], 'optionalAccess', _478 => _478.name]) || "website";
23254
+ const firstPlatform = _optionalChain([platforms, 'access', _474 => _474[0], 'optionalAccess', _475 => _475.name]) || "website";
23128
23255
  onChange([...links, { platform: firstPlatform, url: "" }]);
23129
23256
  };
23130
23257
  const removeLink = (index) => {
@@ -23136,7 +23263,7 @@ function SocialLinksManager({
23136
23263
  onChange(updated);
23137
23264
  };
23138
23265
  const getIcon = (link, platform) => {
23139
- const iconKey = _optionalChain([platform, 'optionalAccess', _479 => _479.icon_name]) || link.platform;
23266
+ const iconKey = _optionalChain([platform, 'optionalAccess', _476 => _476.icon_name]) || link.platform;
23140
23267
  const IconComponent = iconMap[iconKey];
23141
23268
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
23142
23269
  };
@@ -23158,7 +23285,7 @@ function SocialLinksManager({
23158
23285
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23159
23286
  _chunkIKDC3R7Vcjs.Input,
23160
23287
  {
23161
- placeholder: _optionalChain([platform, 'optionalAccess', _480 => _480.placeholder]) || "Profile URL",
23288
+ placeholder: _optionalChain([platform, 'optionalAccess', _477 => _477.placeholder]) || "Profile URL",
23162
23289
  value: link.url,
23163
23290
  onChange: (e) => updateLink(index, "url", e.target.value),
23164
23291
  onKeyDown: (e) => {
@@ -23271,7 +23398,7 @@ var StartWithOpenFrameButton = _react.forwardRef.call(void 0,
23271
23398
  className: _chunkPRPZBXWZcjs.cn.call(void 0, modeClassName, className),
23272
23399
  style: customStyle,
23273
23400
  leftIcon: !loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63QUMV72cjs.OpenFrameLogo, { className: "h-5 w-5", lowerPathColor: iconLowerPath, upperPathColor: iconUpperPath }) : void 0,
23274
- rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.StatusBadge, { text: "Beta", variant: "button", colorScheme: "yellow" }),
23401
+ rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.StatusBadge, { text: "Beta", variant: "button", colorScheme: "yellow" }),
23275
23402
  children
23276
23403
  }
23277
23404
  );
@@ -23541,11 +23668,11 @@ function WarningBlock({ title, icon = DEFAULT_ICON, children, className }) {
23541
23668
 
23542
23669
  function VideoBitesDisplay({
23543
23670
  bites,
23544
- title = _chunkNNFQLTJ3cjs.DEFAULT_VIDEO_BITES_TITLE,
23671
+ title = _chunkEMF64FWAcjs.DEFAULT_VIDEO_BITES_TITLE,
23545
23672
  filterPublished = true,
23546
23673
  showTitle = true
23547
23674
  }) {
23548
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
23675
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
23549
23676
  }
23550
23677
 
23551
23678
  // src/components/features/walkthrough-video.tsx
@@ -23554,8 +23681,8 @@ function VideoBitesDisplay({
23554
23681
 
23555
23682
  var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
23556
23683
  function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
23557
- const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _481 => _481.getCurrentTime, 'call', _482 => _482()]), () => ( 0));
23558
- const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _483 => _483.getDuration, 'call', _484 => _484()]), () => ( 0)), time);
23684
+ const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _478 => _478.getCurrentTime, 'call', _479 => _479()]), () => ( 0));
23685
+ const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _480 => _480.getDuration, 'call', _481 => _481()]), () => ( 0)), time);
23559
23686
  return {
23560
23687
  // At end -> start over, never rewind to an unrelated older anchor.
23561
23688
  time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
@@ -23587,11 +23714,11 @@ function WalkthroughVideo({
23587
23714
  const inline = placement === "inline";
23588
23715
  const dismissEnabled = dismissal !== false;
23589
23716
  const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
23590
- const dismissalId = _optionalChain([video, 'optionalAccess', _485 => _485.id]) != null ? String(video.id) : "dismissed";
23717
+ const dismissalId = _optionalChain([video, 'optionalAccess', _482 => _482.id]) != null ? String(video.id) : "dismissed";
23591
23718
  const [mounted, setMounted] = _react.useState.call(void 0, false);
23592
23719
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
23593
23720
  const hasVideo = video != null;
23594
- const videoId = _optionalChain([video, 'optionalAccess', _486 => _486.id]);
23721
+ const videoId = _optionalChain([video, 'optionalAccess', _483 => _483.id]);
23595
23722
  _react.useEffect.call(void 0, () => {
23596
23723
  let idleHandle = null;
23597
23724
  if (!hasVideo) return void 0;
@@ -23614,13 +23741,13 @@ function WalkthroughVideo({
23614
23741
  if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
23615
23742
  };
23616
23743
  }, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
23617
- const hydrated = _chunkIKUSKKFZcjs.useIsHydrated.call(void 0, );
23744
+ const hydrated = _chunkG45RGWHFcjs.useIsHydrated.call(void 0, );
23618
23745
  const previewSuppressed = _react.useMemo.call(void 0, () => {
23619
23746
  if (!hydrated) return false;
23620
23747
  try {
23621
- const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _487 => _487.matchMedia, 'optionalCall', _488 => _488("(prefers-reduced-motion: reduce)"), 'access', _489 => _489.matches]), () => ( false));
23748
+ const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _484 => _484.matchMedia, 'optionalCall', _485 => _485("(prefers-reduced-motion: reduce)"), 'access', _486 => _486.matches]), () => ( false));
23622
23749
  const conn = navigator.connection;
23623
- const saveData = _optionalChain([conn, 'optionalAccess', _490 => _490.saveData]) === true || _optionalChain([conn, 'optionalAccess', _491 => _491.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _492 => _492.effectiveType]) === "slow-2g";
23750
+ const saveData = _optionalChain([conn, 'optionalAccess', _487 => _487.saveData]) === true || _optionalChain([conn, 'optionalAccess', _488 => _488.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _489 => _489.effectiveType]) === "slow-2g";
23624
23751
  return Boolean(reducedMotion || saveData);
23625
23752
  } catch (e27) {
23626
23753
  return false;
@@ -23653,18 +23780,18 @@ function WalkthroughVideo({
23653
23780
  const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
23654
23781
  const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
23655
23782
  const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
23656
- const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _493 => _493.youtubeUrl]));
23783
+ const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _490 => _490.youtubeUrl]));
23657
23784
  const resumeMode = !open && handoff !== null && !isYouTube;
23658
23785
  const previewAllowed = !previewSuppressed && !isYouTube;
23659
23786
  const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
23660
- const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _494 => _494.key]) === footerFadeKey && footerObservation.hidden;
23787
+ const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _491 => _491.key]) === footerFadeKey && footerObservation.hidden;
23661
23788
  _react.useEffect.call(void 0, () => {
23662
23789
  if (!mounted) return void 0;
23663
23790
  if (inline) return void 0;
23664
23791
  const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
23665
23792
  if (!el || typeof IntersectionObserver === "undefined") return void 0;
23666
23793
  const io = new IntersectionObserver(
23667
- (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.isIntersecting]), () => ( false)) }),
23794
+ (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _492 => _492[0], 'optionalAccess', _493 => _493.isIntersecting]), () => ( false)) }),
23668
23795
  { rootMargin: "0px 0px -40px 0px" }
23669
23796
  );
23670
23797
  io.observe(el);
@@ -23690,7 +23817,7 @@ function WalkthroughVideo({
23690
23817
  if (!footerHidden) return;
23691
23818
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
23692
23819
  try {
23693
- _optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
23820
+ _optionalChain([h, 'optionalAccess', _494 => _494.pause, 'call', _495 => _495()]);
23694
23821
  } catch (e29) {
23695
23822
  }
23696
23823
  }, [footerHidden, resumeMode, hovered]);
@@ -23709,30 +23836,30 @@ function WalkthroughVideo({
23709
23836
  }, 400);
23710
23837
  }
23711
23838
  if (openProp === void 0) setOpenState(next);
23712
- _optionalChain([onOpenChange, 'optionalCall', _499 => _499(next)]);
23839
+ _optionalChain([onOpenChange, 'optionalCall', _496 => _496(next)]);
23713
23840
  },
23714
23841
  [openProp, onOpenChange]
23715
23842
  );
23716
23843
  const pausePreviewNow = _react.useCallback.call(void 0, () => {
23717
23844
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
23718
23845
  try {
23719
- _optionalChain([h, 'optionalAccess', _500 => _500.pause, 'call', _501 => _501()]);
23846
+ _optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
23720
23847
  } catch (e30) {
23721
23848
  }
23722
23849
  setCardPaused(true);
23723
23850
  }, [setCardPaused]);
23724
23851
  const openTheater = _react.useCallback.call(void 0, () => {
23725
23852
  const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
23726
- const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _502 => _502.getPaused, 'call', _503 => _503()]) === false;
23853
+ const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _499 => _499.getPaused, 'call', _500 => _500()]) === false;
23727
23854
  pausePreviewNow();
23728
23855
  const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
23729
- const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _504 => _504.getCurrentTime, 'call', _505 => _505()]), () => ( 0));
23730
- const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _506 => _506.getDuration, 'call', _507 => _507()]), () => ( 0));
23856
+ const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _501 => _501.getCurrentTime, 'call', _502 => _502()]), () => ( 0));
23857
+ const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _503 => _503.getDuration, 'call', _504 => _504()]), () => ( 0));
23731
23858
  const liveAtEnd = isAtEnd(liveDuration, liveTime);
23732
23859
  const start = {
23733
23860
  // At end -> start over. Falling back to `handoff.time` here would rewind
23734
23861
  // to an unrelated older anchor (e.g. 3:20) instead of restarting.
23735
- time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _508 => _508.time]), () => ( 0)),
23862
+ time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _505 => _505.time]), () => ( 0)),
23736
23863
  // Live element wins over remembered intent (the theater's own chrome may
23737
23864
  // have changed it) — EXCEPT when the element is muted only because
23738
23865
  // autoplay policy forced it, which is not intent.
@@ -23760,7 +23887,7 @@ function WalkthroughVideo({
23760
23887
  const selfDriven = selfDrivenFor === open;
23761
23888
  if (openProp !== void 0 && !selfDriven) {
23762
23889
  if (open) {
23763
- setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _509 => _509.time]), () => ( 0)), userMuted));
23890
+ setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _506 => _506.time]), () => ( 0)), userMuted));
23764
23891
  setHovered(false);
23765
23892
  setSuspended(false);
23766
23893
  setHandoff(null);
@@ -23846,8 +23973,8 @@ function WalkthroughVideo({
23846
23973
  });
23847
23974
  _react.useEffect.call(void 0, () => {
23848
23975
  if (resumeMode) {
23849
- setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _510 => _510.current, 'optionalAccess', _511 => _511.muted]), () => ( false)));
23850
- setCardPaused(_optionalChain([handoffRef, 'access', _512 => _512.current, 'optionalAccess', _513 => _513.playing]) === false);
23976
+ setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _507 => _507.current, 'optionalAccess', _508 => _508.muted]), () => ( false)));
23977
+ setCardPaused(_optionalChain([handoffRef, 'access', _509 => _509.current, 'optionalAccess', _510 => _510.playing]) === false);
23851
23978
  }
23852
23979
  }, [resumeMode]);
23853
23980
  const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
@@ -23929,11 +24056,11 @@ function WalkthroughVideo({
23929
24056
  },
23930
24057
  [cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
23931
24058
  );
23932
- const summaryTitle = _optionalChain([video, 'optionalAccess', _514 => _514.title]) || void 0;
23933
- const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _515 => _515.presenterAvatarUrl]), () => ( null));
24059
+ const summaryTitle = _optionalChain([video, 'optionalAccess', _511 => _511.title]) || void 0;
24060
+ const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _512 => _512.presenterAvatarUrl]), () => ( null));
23934
24061
  const embedUrlKey = _react.useMemo.call(void 0,
23935
- () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _516 => _516.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _517 => _517.youtubeUrl]), () => ( ""))}`,
23936
- [_optionalChain([video, 'optionalAccess', _518 => _518.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _519 => _519.youtubeUrl])]
24062
+ () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _513 => _513.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _514 => _514.youtubeUrl]), () => ( ""))}`,
24063
+ [_optionalChain([video, 'optionalAccess', _515 => _515.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _516 => _516.youtubeUrl])]
23937
24064
  );
23938
24065
  const cardActive = !open && previewAllowed && hovered && !resumeMode;
23939
24066
  const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
@@ -23992,7 +24119,7 @@ function WalkthroughVideo({
23992
24119
  const el = e.target;
23993
24120
  let keyboard = false;
23994
24121
  try {
23995
- keyboard = _nullishCoalesce(_optionalChain([el, 'access', _520 => _520.matches, 'optionalCall', _521 => _521(":focus-visible")]), () => ( false));
24122
+ keyboard = _nullishCoalesce(_optionalChain([el, 'access', _517 => _517.matches, 'optionalCall', _518 => _518(":focus-visible")]), () => ( false));
23996
24123
  } catch (e35) {
23997
24124
  keyboard = false;
23998
24125
  }
@@ -24011,7 +24138,7 @@ function WalkthroughVideo({
24011
24138
  },
24012
24139
  children: [
24013
24140
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24014
- _chunkIKUSKKFZcjs.VideoHoverPreviewSurface,
24141
+ _chunkG45RGWHFcjs.VideoHoverPreviewSurface,
24015
24142
  {
24016
24143
  url: video.mainVideoUrl || "",
24017
24144
  posterUrl: video.posterUrl,
@@ -24026,15 +24153,15 @@ function WalkthroughVideo({
24026
24153
  previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
24027
24154
  mutedIntent: userMuted,
24028
24155
  continuation: cardMode === "resume",
24029
- autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _522 => _522.playing]) !== false && !footerHidden,
24030
- startTime: _optionalChain([resumeHandoff, 'optionalAccess', _523 => _523.time]),
24031
- startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _524 => _524.muted]), () => ( false)),
24156
+ autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _519 => _519.playing]) !== false && !footerHidden,
24157
+ startTime: _optionalChain([resumeHandoff, 'optionalAccess', _520 => _520.time]),
24158
+ startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _521 => _521.muted]), () => ( false)),
24032
24159
  onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
24033
24160
  },
24034
24161
  `card-${embedUrlKey}`
24035
24162
  ) }),
24036
24163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24037
- _chunkIKUSKKFZcjs.CardHitLayer,
24164
+ _chunkG45RGWHFcjs.CardHitLayer,
24038
24165
  {
24039
24166
  label: video.title ? `${label}: ${video.title}` : label,
24040
24167
  onPointerDown: pausePreviewNow,
@@ -24043,7 +24170,7 @@ function WalkthroughVideo({
24043
24170
  }
24044
24171
  ),
24045
24172
  /* @__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: [
24046
- 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, _chunkIKUSKKFZcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
24173
+ presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
24047
24174
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
24048
24175
  ] }),
24049
24176
  showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -24056,7 +24183,7 @@ function WalkthroughVideo({
24056
24183
  onPointerDown: (e) => e.stopPropagation(),
24057
24184
  onClick: onUnmuteOrPlay,
24058
24185
  className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
24059
- children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.VideoUnmuteGlyph, {})
24186
+ children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoUnmuteGlyph, {})
24060
24187
  }
24061
24188
  ),
24062
24189
  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: [
@@ -24125,7 +24252,7 @@ function WalkthroughVideo({
24125
24252
  {
24126
24253
  onOpenAutoFocus: (e) => {
24127
24254
  e.preventDefault();
24128
- _optionalChain([closeButtonRef, 'access', _525 => _525.current, 'optionalAccess', _526 => _526.focus, 'call', _527 => _527()]);
24255
+ _optionalChain([closeButtonRef, 'access', _522 => _522.current, 'optionalAccess', _523 => _523.focus, 'call', _524 => _524()]);
24129
24256
  },
24130
24257
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
24131
24258
  // PURE theater: just the video, centered on a dimmed backdrop.
@@ -24149,7 +24276,7 @@ function WalkthroughVideo({
24149
24276
  children: [
24150
24277
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
24151
24278
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24152
- _chunkIKUSKKFZcjs.Video,
24279
+ _chunkG45RGWHFcjs.Video,
24153
24280
  {
24154
24281
  kind: video.youtubeUrl ? "youtube" : "file",
24155
24282
  url: video.youtubeUrl || video.mainVideoUrl,
@@ -24200,7 +24327,7 @@ function InlineWalkthroughVideo(props) {
24200
24327
  var _reactquery = require('@tanstack/react-query');
24201
24328
  function useWalkthroughVideo(opts) {
24202
24329
  const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
24203
- const captions = _chunkIKUSKKFZcjs.useCaptions.call(void 0, );
24330
+ const captions = _chunkG45RGWHFcjs.useCaptions.call(void 0, );
24204
24331
  const query = _reactquery.useQuery.call(void 0, {
24205
24332
  queryKey: ["walkthrough-video", endpoint],
24206
24333
  enabled,
@@ -24219,14 +24346,14 @@ function useWalkthroughVideo(opts) {
24219
24346
  if (res.status === 404) return null;
24220
24347
  if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
24221
24348
  const body = await res.json();
24222
- return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _528 => _528.walkthroughVideo]), () => ( null));
24349
+ return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _525 => _525.walkthroughVideo]), () => ( null));
24223
24350
  },
24224
24351
  // Per-observer transform — NEVER mutate the cached data. `select` also runs
24225
24352
  // over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
24226
24353
  // rewrite here (not in queryFn) means a second consumer of the same
24227
24354
  // endpoint can't inherit this observer's proxied captionsUrl from the cache.
24228
24355
  select: (video) => {
24229
- if (!_optionalChain([video, 'optionalAccess', _529 => _529.captionsUrl])) return video;
24356
+ if (!_optionalChain([video, 'optionalAccess', _526 => _526.captionsUrl])) return video;
24230
24357
  if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
24231
24358
  return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
24232
24359
  }
@@ -24273,7 +24400,7 @@ function VideoSourceSelector({
24273
24400
  input.accept = "video/*";
24274
24401
  input.onchange = async (e) => {
24275
24402
  const target = e.target;
24276
- const file = _optionalChain([target, 'access', _530 => _530.files, 'optionalAccess', _531 => _531[0]]);
24403
+ const file = _optionalChain([target, 'access', _527 => _527.files, 'optionalAccess', _528 => _528[0]]);
24277
24404
  if (!file) return;
24278
24405
  setIsUploading(true);
24279
24406
  setUploadProgress(0);
@@ -24398,7 +24525,7 @@ function VideoSourceSelector({
24398
24525
  }
24399
24526
  function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
24400
24527
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
24401
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Video, { kind: "file", url: videoUrl }) }),
24528
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: videoUrl }) }),
24402
24529
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24403
24530
  "button",
24404
24531
  {
@@ -24449,7 +24576,7 @@ function SubtitlesEditor({
24449
24576
  {
24450
24577
  id,
24451
24578
  value: subtitles || "",
24452
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _532 => _532(e.target.value)]),
24579
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _529 => _529(e.target.value)]),
24453
24580
  placeholder,
24454
24581
  disabled: disabled || !onSubtitlesChange,
24455
24582
  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",
@@ -24678,7 +24805,7 @@ var AIEnrichSection = ({
24678
24805
  }) => {
24679
24806
  const hasResults = status === "success" || status === "error";
24680
24807
  const shouldDisable = disabled || !canEnrich;
24681
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _533 => _533.filter, 'call', _534 => _534((f) => !f.isFilled)]) || [];
24808
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _530 => _530.filter, 'call', _531 => _531((f) => !f.isFilled)]) || [];
24682
24809
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24683
24810
  "div",
24684
24811
  {
@@ -24710,7 +24837,7 @@ var AIEnrichSection = ({
24710
24837
  {
24711
24838
  id: "ai-enrich-custom-instructions",
24712
24839
  value: _nullishCoalesce(customInstructions, () => ( "")),
24713
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _535 => _535(e.target.value)]),
24840
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _532 => _532(e.target.value)]),
24714
24841
  placeholder: customInstructionsPlaceholder,
24715
24842
  disabled: loading,
24716
24843
  maxLength: customInstructionsMaxLength,
@@ -24832,7 +24959,7 @@ function HighlightVideoSection({
24832
24959
  input.accept = "video/*";
24833
24960
  input.onchange = async (e) => {
24834
24961
  const target = e.target;
24835
- const file = _optionalChain([target, 'access', _536 => _536.files, 'optionalAccess', _537 => _537[0]]);
24962
+ const file = _optionalChain([target, 'access', _533 => _533.files, 'optionalAccess', _534 => _534[0]]);
24836
24963
  if (!file) return;
24837
24964
  setUploadError(null);
24838
24965
  try {
@@ -24922,7 +25049,7 @@ function HighlightVideoSection({
24922
25049
  // Default simple preview — the <Video> SSOT (MuxPlayer) plays
24923
25050
  // MP4 and Mux HLS alike; aspect-video box reserves the height.
24924
25051
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
24925
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
25052
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
24926
25053
  onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24927
25054
  "button",
24928
25055
  {
@@ -25259,7 +25386,7 @@ function HighlightVideoPreview({
25259
25386
  input.accept = "video/*";
25260
25387
  input.onchange = async (e) => {
25261
25388
  const target = e.target;
25262
- const file = _optionalChain([target, 'access', _538 => _538.files, 'optionalAccess', _539 => _539[0]]);
25389
+ const file = _optionalChain([target, 'access', _535 => _535.files, 'optionalAccess', _536 => _536[0]]);
25263
25390
  if (!file) return;
25264
25391
  await onUpload(file);
25265
25392
  };
@@ -25443,7 +25570,7 @@ function HighlightVideoCombinedSection({
25443
25570
  input.accept = "video/*";
25444
25571
  input.onchange = async (e) => {
25445
25572
  const target = e.target;
25446
- const file = _optionalChain([target, 'access', _540 => _540.files, 'optionalAccess', _541 => _541[0]]);
25573
+ const file = _optionalChain([target, 'access', _537 => _537.files, 'optionalAccess', _538 => _538[0]]);
25447
25574
  if (!file) return;
25448
25575
  await onUpload(file);
25449
25576
  };
@@ -25658,7 +25785,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
25658
25785
  ] });
25659
25786
  };
25660
25787
  var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
25661
- const { innerRef, containerStyle } = _chunkIKUSKKFZcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
25788
+ const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
25662
25789
  const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
25663
25790
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
25664
25791
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25826,7 +25953,7 @@ function WaitlistForm({
25826
25953
  const { toast } = _chunkLEISUAHFcjs.useToast.call(void 0, );
25827
25954
  const { honeypotInputProps, getSignals, resetSignals } = _chunkLEISUAHFcjs.useHumanitySignals.call(void 0, );
25828
25955
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
25829
- const isClient = _chunkIKUSKKFZcjs.useIsHydrated.call(void 0, );
25956
+ const isClient = _chunkG45RGWHFcjs.useIsHydrated.call(void 0, );
25830
25957
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
25831
25958
  const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
25832
25959
  const isMailDomainGeneric = hasGenericEmailDomain(email);
@@ -26142,19 +26269,19 @@ function NotificationsProvider({
26142
26269
  }, []);
26143
26270
  const markRead = _react.useCallback.call(void 0, (id) => {
26144
26271
  dispatch({ type: "markRead", id });
26145
- void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkRead, 'optionalCall', _544 => _544(id)]);
26272
+ void _optionalChain([actionsRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.onMarkRead, 'optionalCall', _541 => _541(id)]);
26146
26273
  }, []);
26147
26274
  const markAllRead = _react.useCallback.call(void 0, () => {
26148
26275
  dispatch({ type: "markAllRead" });
26149
- void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkAllRead, 'optionalCall', _547 => _547()]);
26276
+ void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkAllRead, 'optionalCall', _544 => _544()]);
26150
26277
  }, []);
26151
26278
  const markSettled = _react.useCallback.call(void 0, (id) => {
26152
26279
  dispatch({ type: "markSettled", id });
26153
- void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onMarkSettled, 'optionalCall', _550 => _550(id)]);
26280
+ void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkSettled, 'optionalCall', _547 => _547(id)]);
26154
26281
  }, []);
26155
26282
  const remove = _react.useCallback.call(void 0, (id) => {
26156
26283
  dispatch({ type: "remove", id });
26157
- void _optionalChain([actionsRef, 'access', _551 => _551.current, 'optionalAccess', _552 => _552.onRemove, 'optionalCall', _553 => _553(id)]);
26284
+ void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onRemove, 'optionalCall', _550 => _550(id)]);
26158
26285
  }, []);
26159
26286
  const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
26160
26287
  const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
@@ -26163,14 +26290,14 @@ function NotificationsProvider({
26163
26290
  const setShowPopups = _react.useCallback.call(void 0,
26164
26291
  (value2) => {
26165
26292
  setShowPopupsState(value2);
26166
- _optionalChain([onShowPopupsChange, 'optionalCall', _554 => _554(value2)]);
26293
+ _optionalChain([onShowPopupsChange, 'optionalCall', _551 => _551(value2)]);
26167
26294
  },
26168
26295
  [onShowPopupsChange]
26169
26296
  );
26170
26297
  const setShowDesktopPopups = _react.useCallback.call(void 0,
26171
26298
  (value2) => {
26172
26299
  setShowDesktopPopupsState(value2);
26173
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _555 => _555(value2)]);
26300
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _552 => _552(value2)]);
26174
26301
  },
26175
26302
  [onShowDesktopPopupsChange]
26176
26303
  );
@@ -26286,7 +26413,7 @@ var AppLayoutDrawerRoot = ({
26286
26413
  const handleOpenChange = _react.useCallback.call(void 0,
26287
26414
  (next) => {
26288
26415
  if (!isControlled) setInternalOpen(next);
26289
- _optionalChain([onOpenChange, 'optionalCall', _556 => _556(next)]);
26416
+ _optionalChain([onOpenChange, 'optionalCall', _553 => _553(next)]);
26290
26417
  },
26291
26418
  [isControlled, onOpenChange]
26292
26419
  );
@@ -26303,9 +26430,9 @@ var AppLayoutDrawerRoot = ({
26303
26430
  }
26304
26431
  }));
26305
26432
  _react.useEffect.call(void 0, () => {
26306
- if (open) _optionalChain([coordination, 'optionalAccess', _557 => _557.notifyDrawerDidOpen, 'call', _558 => _558(selfHandle)]);
26433
+ if (open) _optionalChain([coordination, 'optionalAccess', _554 => _554.notifyDrawerDidOpen, 'call', _555 => _555(selfHandle)]);
26307
26434
  }, [open, coordination, selfHandle]);
26308
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _559 => _559.registerDrawer, 'call', _560 => _560(selfHandle)]), [coordination, selfHandle]);
26435
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _556 => _556.registerDrawer, 'call', _557 => _557(selfHandle)]), [coordination, selfHandle]);
26309
26436
  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 }) });
26310
26437
  };
26311
26438
  AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
@@ -26630,7 +26757,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
26630
26757
  "data-state": open ? "open" : "closed",
26631
26758
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
26632
26759
  "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",
26633
- _chunkIKUSKKFZcjs.OVERLAY_BACKDROP_CLASS,
26760
+ _chunkG45RGWHFcjs.OVERLAY_BACKDROP_CLASS,
26634
26761
  // Persist mode only: hold the fade-out's final (transparent) frame
26635
26762
  // so the backdrop doesn't snap back to opacity 1 and dim the whole
26636
26763
  // content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
@@ -26658,10 +26785,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
26658
26785
  ),
26659
26786
  style,
26660
26787
  onInteractOutside: (event) => {
26661
- _optionalChain([onInteractOutside, 'optionalCall', _561 => _561(event)]);
26788
+ _optionalChain([onInteractOutside, 'optionalCall', _558 => _558(event)]);
26662
26789
  if (event.defaultPrevented) return;
26663
26790
  const target = event.target;
26664
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _562 => _562.contains, 'call', _563 => _563(target)]);
26791
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _559 => _559.contains, 'call', _560 => _560(target)]);
26665
26792
  if (!isInsideContainer) {
26666
26793
  event.preventDefault();
26667
26794
  return;
@@ -26706,11 +26833,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
26706
26833
  }
26707
26834
  );
26708
26835
  AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
26709
- var AppLayoutDrawerHeader = _chunkIKUSKKFZcjs.DrawerHeader;
26710
- var AppLayoutDrawerTitle = _chunkIKUSKKFZcjs.DrawerTitle;
26711
- var AppLayoutDrawerDescription = _chunkIKUSKKFZcjs.DrawerDescription;
26712
- var AppLayoutDrawerBody = _chunkIKUSKKFZcjs.DrawerBody;
26713
- var AppLayoutDrawerFooter = _chunkIKUSKKFZcjs.DrawerFooter;
26836
+ var AppLayoutDrawerHeader = _chunkG45RGWHFcjs.DrawerHeader;
26837
+ var AppLayoutDrawerTitle = _chunkG45RGWHFcjs.DrawerTitle;
26838
+ var AppLayoutDrawerDescription = _chunkG45RGWHFcjs.DrawerDescription;
26839
+ var AppLayoutDrawerBody = _chunkG45RGWHFcjs.DrawerBody;
26840
+ var AppLayoutDrawerFooter = _chunkG45RGWHFcjs.DrawerFooter;
26714
26841
 
26715
26842
  // src/components/features/notifications/notification-tile.tsx
26716
26843
 
@@ -26764,7 +26891,7 @@ function NotificationTile({
26764
26891
  if (!counting) return void 0;
26765
26892
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
26766
26893
  const timer = window.setTimeout(() => {
26767
- _optionalChain([onSettle, 'optionalCall', _564 => _564(id)]);
26894
+ _optionalChain([onSettle, 'optionalCall', _561 => _561(id)]);
26768
26895
  }, remaining);
26769
26896
  return () => window.clearTimeout(timer);
26770
26897
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -26798,13 +26925,13 @@ function NotificationTile({
26798
26925
  }
26799
26926
  ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkLEISUAHFcjs.dotColorByVariant[accentVariant]) }))) }),
26800
26927
  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" }),
26801
- !isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkIKUSKKFZcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
26928
+ !isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkG45RGWHFcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
26802
26929
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
26803
26930
  {
26804
26931
  active: isLive,
26805
26932
  label: "Dismiss notification",
26806
26933
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
26807
- onClick: () => _optionalChain([onSettle, 'optionalCall', _565 => _565(id)])
26934
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _562 => _562(id)])
26808
26935
  },
26809
26936
  {
26810
26937
  active: !isLive,
@@ -26895,7 +27022,7 @@ function NotificationDrawer({
26895
27022
  const unreadNotifications = notifications.filter((n) => !n.read);
26896
27023
  const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
26897
27024
  /* @__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,
26898
- _chunkIKUSKKFZcjs.DrawerTitle,
27025
+ _chunkG45RGWHFcjs.DrawerTitle,
26899
27026
  {
26900
27027
  hideClose: true,
26901
27028
  className: "truncate",
@@ -26954,8 +27081,8 @@ function NotificationDrawer({
26954
27081
  }
26955
27082
  ) });
26956
27083
  }
26957
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26958
- _chunkIKUSKKFZcjs.DrawerContent,
27084
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27085
+ _chunkG45RGWHFcjs.DrawerContent,
26959
27086
  {
26960
27087
  side: "right",
26961
27088
  "aria-describedby": void 0,
@@ -26992,7 +27119,7 @@ function DrawerScrollList({
26992
27119
  if (!sentinel || !root) return void 0;
26993
27120
  const observer = new IntersectionObserver(
26994
27121
  (entries) => {
26995
- if (_optionalChain([entries, 'access', _566 => _566[0], 'optionalAccess', _567 => _567.isIntersecting])) _optionalChain([loadMoreRef, 'access', _568 => _568.current, 'optionalCall', _569 => _569()]);
27122
+ if (_optionalChain([entries, 'access', _563 => _563[0], 'optionalAccess', _564 => _564.isIntersecting])) _optionalChain([loadMoreRef, 'access', _565 => _565.current, 'optionalCall', _566 => _566()]);
26996
27123
  },
26997
27124
  { root, rootMargin: loadMoreRootMargin }
26998
27125
  );
@@ -27007,7 +27134,7 @@ function DrawerScrollList({
27007
27134
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
27008
27135
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
27009
27136
  unreadNotifications.map((n) => {
27010
- const custom = _optionalChain([renderTile, 'optionalCall', _570 => _570(n, { onComplete, onSettle, liveDurationMs })]);
27137
+ const custom = _optionalChain([renderTile, 'optionalCall', _567 => _567(n, { onComplete, onSettle, liveDurationMs })]);
27011
27138
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
27012
27139
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27013
27140
  NotificationTile,
@@ -27127,7 +27254,7 @@ function NotificationPopups({
27127
27254
  }) {
27128
27255
  const ctx = useOptionalNotifications();
27129
27256
  const [now, setNow] = _react.useState.call(void 0, () => Date.now());
27130
- const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _571 => _571.notifications, 'access', _572 => _572.some, 'call', _573 => _573((n) => !n.read && !n.settled)]));
27257
+ const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _568 => _568.notifications, 'access', _569 => _569.some, 'call', _570 => _570((n) => !n.read && !n.settled)]));
27131
27258
  _react.useEffect.call(void 0, () => {
27132
27259
  if (!hasAgeingNotifications) return void 0;
27133
27260
  const id = setInterval(() => setNow(Date.now()), 500);
@@ -27170,7 +27297,7 @@ function NotificationPopups({
27170
27297
  className
27171
27298
  ),
27172
27299
  children: live.map((n) => {
27173
- const custom = _optionalChain([renderTile, 'optionalCall', _574 => _574(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
27300
+ const custom = _optionalChain([renderTile, 'optionalCall', _571 => _571(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
27174
27301
  if (custom) {
27175
27302
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
27176
27303
  }
@@ -27209,34 +27336,34 @@ function NotificationPopups({
27209
27336
  // src/components/features/notifications/types.ts
27210
27337
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
27211
27338
  function isApprovalNotification(notification) {
27212
- return _optionalChain([notification, 'access', _575 => _575.meta, 'optionalAccess', _576 => _576.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
27339
+ return _optionalChain([notification, 'access', _572 => _572.meta, 'optionalAccess', _573 => _573.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
27213
27340
  }
27214
27341
  function getApprovalMeta(notification) {
27215
27342
  if (!isApprovalNotification(notification)) return null;
27216
27343
  const meta = notification.meta;
27217
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _577 => _577.approvalRequestId]);
27218
- const toolCalls = _optionalChain([meta, 'optionalAccess', _578 => _578.toolCalls]);
27344
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _574 => _574.approvalRequestId]);
27345
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _575 => _575.toolCalls]);
27219
27346
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
27220
27347
  return {
27221
27348
  approvalRequestId,
27222
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.dialogId]), () => ( null)),
27223
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.ticketId]), () => ( null)),
27224
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _581 => _581.approvalType]), () => ( null)),
27225
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.resolution]), () => ( null)),
27226
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _583 => _583.resolvedByName]), () => ( null)),
27349
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _576 => _576.dialogId]), () => ( null)),
27350
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.ticketId]), () => ( null)),
27351
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.approvalType]), () => ( null)),
27352
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.resolution]), () => ( null)),
27353
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.resolvedByName]), () => ( null)),
27227
27354
  toolCalls
27228
27355
  };
27229
27356
  }
27230
27357
  function resolutionToStatus(resolution) {
27231
27358
  switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
27232
27359
  case "APPROVED":
27233
- return _chunkIKUSKKFZcjs.APPROVAL_STATUS.APPROVED;
27360
+ return _chunkG45RGWHFcjs.APPROVAL_STATUS.APPROVED;
27234
27361
  case "REJECTED":
27235
- return _chunkIKUSKKFZcjs.APPROVAL_STATUS.REJECTED;
27362
+ return _chunkG45RGWHFcjs.APPROVAL_STATUS.REJECTED;
27236
27363
  case "CANCELLED":
27237
- return _chunkIKUSKKFZcjs.APPROVAL_STATUS.CANCELLED;
27364
+ return _chunkG45RGWHFcjs.APPROVAL_STATUS.CANCELLED;
27238
27365
  default:
27239
- return _chunkIKUSKKFZcjs.APPROVAL_STATUS.PENDING;
27366
+ return _chunkG45RGWHFcjs.APPROVAL_STATUS.PENDING;
27240
27367
  }
27241
27368
  }
27242
27369
  function approvalMetaToBatchData(approval) {
@@ -27273,10 +27400,10 @@ function ApprovalRequestNotificationTile({
27273
27400
  const [processing, setProcessing] = _react.useState.call(void 0, false);
27274
27401
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
27275
27402
  const approval = getApprovalMeta(notification);
27276
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _584 => _584.resolution]));
27403
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _581 => _581.resolution]));
27277
27404
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
27278
27405
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
27279
- const { innerRef, containerStyle } = _chunkIKUSKKFZcjs.useCollapsible.call(void 0, { expanded });
27406
+ const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded });
27280
27407
  if (!approval || !batchData) return null;
27281
27408
  const tileNotification = {
27282
27409
  ...notification,
@@ -27329,7 +27456,7 @@ function ApprovalRequestNotificationTile({
27329
27456
  }
27330
27457
  )
27331
27458
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
27332
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ApprovalStatusTag, { status }),
27459
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ApprovalStatusTag, { status }),
27333
27460
  approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
27334
27461
  "by ",
27335
27462
  approval.resolvedByName
@@ -27347,12 +27474,12 @@ function ApprovalRequestNotificationTile({
27347
27474
  "aria-expanded": expanded,
27348
27475
  "aria-label": toggleLabel,
27349
27476
  className: "ml-auto w-6 shrink-0 px-0 md:w-8",
27350
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.ExpandChevron, { expanded })
27477
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ExpandChevron, { expanded })
27351
27478
  }
27352
27479
  )
27353
27480
  ] }),
27354
27481
  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,
27355
- _chunkIKUSKKFZcjs.ApprovalBatchMessage,
27482
+ _chunkG45RGWHFcjs.ApprovalBatchMessage,
27356
27483
  {
27357
27484
  data: batchData,
27358
27485
  showExecutionStatus: false,
@@ -27420,7 +27547,7 @@ function renderCustomerOption(option, isSelected) {
27420
27547
  const { label, imageUrl } = option;
27421
27548
  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: [
27422
27549
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
27423
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "square" }),
27550
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "square" }),
27424
27551
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", title: label, children: label })
27425
27552
  ] }),
27426
27553
  isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
@@ -27504,7 +27631,7 @@ function TimeTrackerPanel({
27504
27631
  }));
27505
27632
  const selectedCustomer = customerAutocompleteOptions.find((o) => o.value === selectedCustomerId);
27506
27633
  const customerStartAdornment = selectedCustomer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27507
- _chunkNNFQLTJ3cjs.SquareAvatar,
27634
+ _chunkEMF64FWAcjs.SquareAvatar,
27508
27635
  {
27509
27636
  src: selectedCustomer.imageUrl,
27510
27637
  alt: selectedCustomer.label,
@@ -27595,7 +27722,7 @@ function TimeTrackerPanel({
27595
27722
  error: showFieldError ? "Required if no notes added" : void 0,
27596
27723
  disableClientFilter: !!onTicketSearch,
27597
27724
  onInputChange: (value, reason) => {
27598
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _585 => _585(value)]);
27725
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _582 => _582(value)]);
27599
27726
  }
27600
27727
  }
27601
27728
  ),
@@ -27610,7 +27737,7 @@ function TimeTrackerPanel({
27610
27737
  disabled: customerLocked,
27611
27738
  disableClientFilter: !!onCustomerSearch,
27612
27739
  onInputChange: (value, reason) => {
27613
- if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _586 => _586(value)]);
27740
+ if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _583 => _583(value)]);
27614
27741
  },
27615
27742
  startAdornment: customerStartAdornment,
27616
27743
  renderOption: renderCustomerOption
@@ -27683,7 +27810,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
27683
27810
  function StatusTag({ status }) {
27684
27811
  if (status === "tracking") {
27685
27812
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27686
- _chunkIKUSKKFZcjs.Tag,
27813
+ _chunkG45RGWHFcjs.Tag,
27687
27814
  {
27688
27815
  variant: "success",
27689
27816
  className: STATUS_TAG_SKIN,
@@ -27693,9 +27820,9 @@ function StatusTag({ status }) {
27693
27820
  );
27694
27821
  }
27695
27822
  if (status === "paused") {
27696
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
27823
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
27697
27824
  }
27698
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
27825
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
27699
27826
  }
27700
27827
  function LastEntryRow({ entry, onClick }) {
27701
27828
  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: [
@@ -27712,7 +27839,7 @@ function LastEntryRow({ entry, onClick }) {
27712
27839
  {
27713
27840
  variant: "outline",
27714
27841
  size: "icon",
27715
- onClick: () => _optionalChain([onClick, 'optionalCall', _587 => _587(entry)]),
27842
+ onClick: () => _optionalChain([onClick, 'optionalCall', _584 => _584(entry)]),
27716
27843
  disabled: !onClick,
27717
27844
  "aria-label": `Open entry: ${entry.title}`,
27718
27845
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -27796,28 +27923,28 @@ function HeaderButton({
27796
27923
  function TimeTrackerHeaderButton({ className, disabled }) {
27797
27924
  const ctx = useOptionalTimeTracker();
27798
27925
  const elapsedLabel = useTrackerClock({
27799
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.status]), () => ( "ready")),
27800
- runningSince: _optionalChain([ctx, 'optionalAccess', _589 => _589.runningSince]),
27801
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _590 => _590.accumulatedMs])
27926
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _585 => _585.status]), () => ( "ready")),
27927
+ runningSince: _optionalChain([ctx, 'optionalAccess', _586 => _586.runningSince]),
27928
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _587 => _587.accumulatedMs])
27802
27929
  });
27803
27930
  const layoutContainer = useAppLayoutDrawerContainer();
27804
27931
  const coordination = useAppLayoutDrawerCoordination();
27805
- const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _591 => _591.isOpen]), () => ( false));
27932
+ const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.isOpen]), () => ( false));
27806
27933
  const isOpenRef = _react.useRef.call(void 0, isOpen);
27807
- const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _592 => _592.close]));
27934
+ const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _589 => _589.close]));
27808
27935
  _react.useEffect.call(void 0, () => {
27809
27936
  isOpenRef.current = isOpen;
27810
- closeRef.current = _optionalChain([ctx, 'optionalAccess', _593 => _593.close]);
27937
+ closeRef.current = _optionalChain([ctx, 'optionalAccess', _590 => _590.close]);
27811
27938
  });
27812
27939
  const [selfHandle] = _react.useState.call(void 0, () => ({
27813
27940
  close: () => {
27814
- if (isOpenRef.current) _optionalChain([closeRef, 'access', _594 => _594.current, 'optionalCall', _595 => _595()]);
27941
+ if (isOpenRef.current) _optionalChain([closeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592()]);
27815
27942
  }
27816
27943
  }));
27817
27944
  _react.useEffect.call(void 0, () => {
27818
- if (isOpen) _optionalChain([coordination, 'optionalAccess', _596 => _596.notifyDrawerDidOpen, 'call', _597 => _597(selfHandle)]);
27945
+ if (isOpen) _optionalChain([coordination, 'optionalAccess', _593 => _593.notifyDrawerDidOpen, 'call', _594 => _594(selfHandle)]);
27819
27946
  }, [isOpen, coordination, selfHandle]);
27820
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _598 => _598.registerDrawer, 'call', _599 => _599(selfHandle)]), [coordination, selfHandle]);
27947
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _595 => _595.registerDrawer, 'call', _596 => _596(selfHandle)]), [coordination, selfHandle]);
27821
27948
  if (!ctx) return null;
27822
27949
  const { open, close, status } = ctx;
27823
27950
  const isPaused = status === "paused";
@@ -27864,7 +27991,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
27864
27991
  "data-state": isOpen ? "open" : "closed",
27865
27992
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
27866
27993
  layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
27867
- _chunkIKUSKKFZcjs.OVERLAY_BACKDROP_CLASS,
27994
+ _chunkG45RGWHFcjs.OVERLAY_BACKDROP_CLASS,
27868
27995
  "data-[state=open]:animate-in data-[state=open]:fade-in-0",
27869
27996
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
27870
27997
  )
@@ -27949,7 +28076,7 @@ function autoScrollAncestors(element) {
27949
28076
 
27950
28077
  // src/components/features/board/aim.ts
27951
28078
  var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
27952
- var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _600 => _600.find, 'call', _601 => _601((c) => c.id === columnId), 'optionalAccess', _602 => _602.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
28079
+ var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _597 => _597.find, 'call', _598 => _598((c) => c.id === columnId), 'optionalAccess', _599 => _599.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
27953
28080
  function laneOf(columns, ticketId) {
27954
28081
  return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
27955
28082
  }
@@ -27993,11 +28120,11 @@ function aimToChange(columns, ticketId, aim) {
27993
28120
  const lane = laneOf(columns, ticketId);
27994
28121
  if (!lane) return null;
27995
28122
  const others = othersIn(columns, aim.columnId, ticketId);
27996
- const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _603 => _603[aim.index - 1], 'optionalAccess', _604 => _604.id]), () => ( null));
27997
- const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _605 => _605[aim.index], 'optionalAccess', _606 => _606.id]), () => ( null));
28123
+ const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _600 => _600[aim.index - 1], 'optionalAccess', _601 => _601.id]), () => ( null));
28124
+ const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _602 => _602[aim.index], 'optionalAccess', _603 => _603.id]), () => ( null));
27998
28125
  if (lane.id === aim.columnId) {
27999
28126
  const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
28000
- if ((_nullishCoalesce(_optionalChain([lane, 'access', _607 => _607.tickets, 'access', _608 => _608[currentIndex - 1], 'optionalAccess', _609 => _609.id]), () => ( null))) === afterTicketId) return null;
28127
+ if ((_nullishCoalesce(_optionalChain([lane, 'access', _604 => _604.tickets, 'access', _605 => _605[currentIndex - 1], 'optionalAccess', _606 => _606.id]), () => ( null))) === afterTicketId) return null;
28001
28128
  }
28002
28129
  return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
28003
28130
  }
@@ -28018,7 +28145,7 @@ function BoardColumnHeader({
28018
28145
  }) {
28019
28146
  const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
28020
28147
  const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
28021
- const useStatusVariant = _chunkIKUSKKFZcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
28148
+ const useStatusVariant = _chunkG45RGWHFcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
28022
28149
  const actionClass = "h-8 w-8 p-0 md:h-8 md:w-8";
28023
28150
  if (collapsed) {
28024
28151
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
@@ -28034,7 +28161,7 @@ function BoardColumnHeader({
28034
28161
  }
28035
28162
  ),
28036
28163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28037
- _chunkIKUSKKFZcjs.TicketStatusTag,
28164
+ _chunkG45RGWHFcjs.TicketStatusTag,
28038
28165
  {
28039
28166
  status: tagStatus,
28040
28167
  label: column.label,
@@ -28047,7 +28174,7 @@ function BoardColumnHeader({
28047
28174
  }
28048
28175
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
28049
28176
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
28050
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
28177
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
28051
28178
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
28052
28179
  ] }),
28053
28180
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
@@ -28198,7 +28325,7 @@ function holdMoveDragEffect(element) {
28198
28325
 
28199
28326
  function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
28200
28327
  const [expanded, setExpanded] = _react.useState.call(void 0, false);
28201
- const { innerRef, containerStyle } = _chunkIKUSKKFZcjs.useCollapsible.call(void 0, { expanded });
28328
+ const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded });
28202
28329
  const isAdmin = pendingApproval.approvalType === "ADMIN";
28203
28330
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
28204
28331
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -28227,7 +28354,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
28227
28354
  }
28228
28355
  ),
28229
28356
  /* @__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,
28230
- _chunkIKUSKKFZcjs.ApprovalBatchMessage,
28357
+ _chunkG45RGWHFcjs.ApprovalBatchMessage,
28231
28358
  {
28232
28359
  className: "mb-0",
28233
28360
  data: {
@@ -28268,14 +28395,14 @@ function useIsLanding(ticketId) {
28268
28395
  return _react.useContext.call(void 0, LandingCardContext) === ticketId;
28269
28396
  }
28270
28397
  function hasMoveSettled(columns, move) {
28271
- const tickets = _optionalChain([columns, 'access', _610 => _610.find, 'call', _611 => _611((c) => c.id === move.toColumnId), 'optionalAccess', _612 => _612.tickets]);
28398
+ const tickets = _optionalChain([columns, 'access', _607 => _607.find, 'call', _608 => _608((c) => c.id === move.toColumnId), 'optionalAccess', _609 => _609.tickets]);
28272
28399
  if (!tickets) return false;
28273
28400
  const index = tickets.findIndex((t) => t.id === move.ticketId);
28274
28401
  if (index < 0) return false;
28275
28402
  if (move.fromColumnId === move.toColumnId) {
28276
- return (_nullishCoalesce(_optionalChain([tickets, 'access', _613 => _613[index - 1], 'optionalAccess', _614 => _614.id]), () => ( null))) === move.afterTicketId;
28403
+ return (_nullishCoalesce(_optionalChain([tickets, 'access', _610 => _610[index - 1], 'optionalAccess', _611 => _611.id]), () => ( null))) === move.afterTicketId;
28277
28404
  }
28278
- return !_optionalChain([columns, 'access', _615 => _615.find, 'call', _616 => _616((c) => c.id === move.fromColumnId), 'optionalAccess', _617 => _617.tickets, 'access', _618 => _618.some, 'call', _619 => _619((t) => t.id === move.ticketId)]);
28405
+ return !_optionalChain([columns, 'access', _612 => _612.find, 'call', _613 => _613((c) => c.id === move.fromColumnId), 'optionalAccess', _614 => _614.tickets, 'access', _615 => _615.some, 'call', _616 => _616((t) => t.id === move.ticketId)]);
28279
28406
  }
28280
28407
 
28281
28408
  // src/components/features/board/ticket-card.tsx
@@ -28299,10 +28426,10 @@ var ACTIVITY_DEFAULT_LABEL = {
28299
28426
  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";
28300
28427
  function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
28301
28428
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
28302
- const newMessageTextColor = columnColor ? _chunkIKUSKKFZcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
28303
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _620 => _620.deviceHostnames, 'optionalAccess', _621 => _621.length]) || ticket.organizationName);
28304
- const deviceText = [_optionalChain([ticket, 'access', _622 => _622.deviceHostnames, 'optionalAccess', _623 => _623.join, 'call', _624 => _624(", ")]), ticket.organizationName].filter(Boolean).join(", ");
28305
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _625 => _625.assignees, 'optionalAccess', _626 => _626.length]) || renderAssignSlot);
28429
+ const newMessageTextColor = columnColor ? _chunkG45RGWHFcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
28430
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _617 => _617.deviceHostnames, 'optionalAccess', _618 => _618.length]) || ticket.organizationName);
28431
+ const deviceText = [_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.join, 'call', _621 => _621(", ")]), ticket.organizationName].filter(Boolean).join(", ");
28432
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _622 => _622.assignees, 'optionalAccess', _623 => _623.length]) || renderAssignSlot);
28306
28433
  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: [
28307
28434
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28308
28435
  _chunkGSQM4PDRcjs.Flag02Icon,
@@ -28311,7 +28438,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28311
28438
  "aria-label": `Priority: ${ticket.priority}`
28312
28439
  }
28313
28440
  ),
28314
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _627 => _627.assignees, 'optionalAccess', _628 => _628.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
28441
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _624 => _624.assignees, 'optionalAccess', _625 => _625.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
28315
28442
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
28316
28443
  (a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28317
28444
  DeletedUserAvatar,
@@ -28321,7 +28448,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28321
28448
  },
28322
28449
  a.id
28323
28450
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28324
- _chunkNNFQLTJ3cjs.SquareAvatar,
28451
+ _chunkEMF64FWAcjs.SquareAvatar,
28325
28452
  {
28326
28453
  src: a.avatarUrl,
28327
28454
  alt: _nullishCoalesce(_nullishCoalesce(a.name, () => ( a.initials)), () => ( a.id)),
@@ -28338,8 +28465,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28338
28465
  ] })
28339
28466
  ] }) : null
28340
28467
  ] }) : null;
28341
- const timestampLabel = ticket.createdAt ? _chunkIKUSKKFZcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
28342
- const tooltipLabel = ticket.createdAt ? _chunkIKUSKKFZcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
28468
+ const timestampLabel = ticket.createdAt ? _chunkG45RGWHFcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
28469
+ const tooltipLabel = ticket.createdAt ? _chunkG45RGWHFcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
28343
28470
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
28344
28471
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
28345
28472
  /* @__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: [
@@ -28351,10 +28478,10 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28351
28478
  ] }),
28352
28479
  rightSection
28353
28480
  ] }),
28354
- _optionalChain([ticket, 'access', _629 => _629.tags, 'optionalAccess', _630 => _630.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
28355
- timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIKUSKKFZcjs.Tooltip, { children: [
28356
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
28357
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.TooltipContent, { children: tooltipLabel })
28481
+ _optionalChain([ticket, 'access', _626 => _626.tags, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
28482
+ timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
28483
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
28484
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { children: tooltipLabel })
28358
28485
  ] }) }),
28359
28486
  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: [
28360
28487
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
@@ -28374,7 +28501,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28374
28501
  }
28375
28502
  ),
28376
28503
  showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28377
- _chunkIKUSKKFZcjs.Tag,
28504
+ _chunkG45RGWHFcjs.Tag,
28378
28505
  {
28379
28506
  label: "New Message",
28380
28507
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
@@ -28418,7 +28545,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
28418
28545
  const isLanding = useIsLanding(ticket.id);
28419
28546
  const aim = useDropAim();
28420
28547
  const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
28421
- const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _631 => _631.ticket, 'access', _632 => _632.id]) === ticket.id;
28548
+ const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _628 => _628.ticket, 'access', _629 => _629.id]) === ticket.id;
28422
28549
  const lift = useBoardLift();
28423
28550
  const handleKeyDown = (e) => {
28424
28551
  if (e.key !== " " || dragDisabled || !lift) return;
@@ -28589,8 +28716,8 @@ function TicketTagRow({ tags }) {
28589
28716
  const visible = tags.slice(0, MAX_VISIBLE_TAGS);
28590
28717
  const hidden = tags.length - visible.length;
28591
28718
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
28592
- visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Tag, { variant: "outline", label: tag }, tag)),
28593
- hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKUSKKFZcjs.Tag, { variant: "outline", label: `+${hidden}` })
28719
+ visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "outline", label: tag }, tag)),
28720
+ hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "outline", label: `+${hidden}` })
28594
28721
  ] });
28595
28722
  }
28596
28723
 
@@ -28671,7 +28798,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
28671
28798
  // large ones like the only thing that did.
28672
28799
  getData: ({ input, element: lane, source }) => {
28673
28800
  const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
28674
- const ticketId = _optionalChain([nearest, 'optionalAccess', _633 => _633.dataset, 'access', _634 => _634.ticketId]);
28801
+ const ticketId = _optionalChain([nearest, 'optionalAccess', _630 => _630.dataset, 'access', _631 => _631.ticketId]);
28675
28802
  if (!nearest || !ticketId) return { type: "column", columnId: column.id };
28676
28803
  return _closestedge.attachClosestEdge.call(void 0,
28677
28804
  { type: "ticket", ticketId, columnId: column.id },
@@ -28683,7 +28810,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
28683
28810
  onDrop: () => setIsOver(false)
28684
28811
  });
28685
28812
  }, [column.id, column.dropDisabled, column.allowedFromColumns, collapsed, touchMode]);
28686
- const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _635 => _635(column.id)]), [onToggleCollapse, column.id]);
28813
+ const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _632 => _632(column.id)]), [onToggleCollapse, column.id]);
28687
28814
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28688
28815
  "div",
28689
28816
  {
@@ -28762,7 +28889,7 @@ function ColumnBody({
28762
28889
  const observer = new IntersectionObserver(
28763
28890
  (entries) => {
28764
28891
  if (entries.some((e) => e.isIntersecting)) {
28765
- _optionalChain([loadMoreRef, 'access', _636 => _636.current, 'optionalCall', _637 => _637(columnIdRef.current)]);
28892
+ _optionalChain([loadMoreRef, 'access', _633 => _633.current, 'optionalCall', _634 => _634(columnIdRef.current)]);
28766
28893
  }
28767
28894
  },
28768
28895
  { root, rootMargin: loadMoreRootMargin }
@@ -28787,7 +28914,7 @@ function ColumnBody({
28787
28914
  ticket: t,
28788
28915
  columnId: column.id,
28789
28916
  columnColor: column.color,
28790
- href: _optionalChain([getTicketHref, 'optionalCall', _638 => _638(t.id)]),
28917
+ href: _optionalChain([getTicketHref, 'optionalCall', _635 => _635(t.id)]),
28791
28918
  renderAssignSlot,
28792
28919
  onApprove,
28793
28920
  onReject,
@@ -28963,7 +29090,7 @@ function DragBoard({
28963
29090
  const [landing, setLanding] = _react.useState.call(void 0, null);
28964
29091
  const landingTimer = _react.useRef.call(void 0, null);
28965
29092
  const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
28966
- const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _639 => _639.find, 'call', _640 => _640((c) => c.id === columnId), 'optionalAccess', _641 => _641.label]), () => ( columnId)), [view]);
29093
+ const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _636 => _636.find, 'call', _637 => _637((c) => c.id === columnId), 'optionalAccess', _638 => _638.label]), () => ( columnId)), [view]);
28967
29094
  const acceptsLifted = _react.useCallback.call(void 0,
28968
29095
  (fromColumnId) => (column) => {
28969
29096
  if (column.dropDisabled || collapsed[column.id]) return false;
@@ -28977,7 +29104,7 @@ function DragBoard({
28977
29104
  const start = initialAim(view, ticketId);
28978
29105
  if (!start) return;
28979
29106
  setLifted({ ticketId, aim: start });
28980
- const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _642 => _642(view, ticketId), 'optionalAccess', _643 => _643.tickets, 'access', _644 => _644.find, 'call', _645 => _645((t) => t.id === ticketId), 'optionalAccess', _646 => _646.title]), () => ( "Ticket"));
29107
+ const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _639 => _639(view, ticketId), 'optionalAccess', _640 => _640.tickets, 'access', _641 => _641.find, 'call', _642 => _642((t) => t.id === ticketId), 'optionalAccess', _643 => _643.title]), () => ( "Ticket"));
28981
29108
  setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
28982
29109
  },
28983
29110
  [view]
@@ -29002,11 +29129,11 @@ function DragBoard({
29002
29129
  const walk = _react.useCallback.call(void 0,
29003
29130
  (key) => {
29004
29131
  if (!lifted) return;
29005
- const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _647 => _647(view, lifted.ticketId), 'optionalAccess', _648 => _648.id]), () => ( lifted.aim.columnId));
29132
+ const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _644 => _644(view, lifted.ticketId), 'optionalAccess', _645 => _645.id]), () => ( lifted.aim.columnId));
29006
29133
  const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
29007
29134
  if (next === lifted.aim) return;
29008
29135
  setLifted({ ...lifted, aim: next });
29009
- const total = (_nullishCoalesce(_optionalChain([view, 'access', _649 => _649.find, 'call', _650 => _650((c) => c.id === next.columnId), 'optionalAccess', _651 => _651.tickets]), () => ( []))).filter(
29136
+ const total = (_nullishCoalesce(_optionalChain([view, 'access', _646 => _646.find, 'call', _647 => _647((c) => c.id === next.columnId), 'optionalAccess', _648 => _648.tickets]), () => ( []))).filter(
29010
29137
  (t) => t.id !== lifted.ticketId
29011
29138
  ).length;
29012
29139
  setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
@@ -29033,11 +29160,11 @@ function DragBoard({
29033
29160
  }, [lifted, drop, walk]);
29034
29161
  _react.useEffect.call(void 0, () => {
29035
29162
  if (!lifted) return;
29036
- _optionalChain([boardRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.querySelector, 'call', _654 => _654(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _655 => _655.scrollIntoView, 'call', _656 => _656({ block: "nearest", inline: "nearest" })]);
29163
+ _optionalChain([boardRef, 'access', _649 => _649.current, 'optionalAccess', _650 => _650.querySelector, 'call', _651 => _651(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _652 => _652.scrollIntoView, 'call', _653 => _653({ block: "nearest", inline: "nearest" })]);
29037
29164
  }, [lifted]);
29038
29165
  const keyboardAim = _react.useMemo.call(void 0, () => {
29039
29166
  if (!lifted) return null;
29040
- const ticket = _optionalChain([laneOf, 'call', _657 => _657(view, lifted.ticketId), 'optionalAccess', _658 => _658.tickets, 'access', _659 => _659.find, 'call', _660 => _660((t) => t.id === lifted.ticketId)]);
29167
+ const ticket = _optionalChain([laneOf, 'call', _654 => _654(view, lifted.ticketId), 'optionalAccess', _655 => _655.tickets, 'access', _656 => _656.find, 'call', _657 => _657((t) => t.id === lifted.ticketId)]);
29041
29168
  if (!ticket) return null;
29042
29169
  const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
29043
29170
  return { columnId: lifted.aim.columnId, ...anchor, ticket };
@@ -29059,7 +29186,7 @@ function DragBoard({
29059
29186
  return { columnId: slot.columnId, ...anchor, ticket };
29060
29187
  };
29061
29188
  const aimAt = (source, targets) => {
29062
- const next = readAim(source, _optionalChain([targets, 'access', _661 => _661[0], 'optionalAccess', _662 => _662.data]));
29189
+ const next = readAim(source, _optionalChain([targets, 'access', _658 => _658[0], 'optionalAccess', _659 => _659.data]));
29063
29190
  setAim((prev) => isSameAim(prev, next) ? prev : next);
29064
29191
  };
29065
29192
  return _combine.combine.call(void 0,
@@ -29088,7 +29215,7 @@ function DragBoard({
29088
29215
  setLanding(null);
29089
29216
  dragGeometry.current = {
29090
29217
  ticket,
29091
- columnColor: _optionalChain([columnsRef, 'access', _663 => _663.current, 'access', _664 => _664.find, 'call', _665 => _665((c) => c.id === source.data.columnId), 'optionalAccess', _666 => _666.color]),
29218
+ columnColor: _optionalChain([columnsRef, 'access', _660 => _660.current, 'access', _661 => _661.find, 'call', _662 => _662((c) => c.id === source.data.columnId), 'optionalAccess', _663 => _663.color]),
29092
29219
  width: rect.width,
29093
29220
  grabX: clientX - rect.left,
29094
29221
  grabY: clientY - rect.top
@@ -29105,7 +29232,7 @@ function DragBoard({
29105
29232
  setAim(null);
29106
29233
  const change = resolveBoardDrop(columnsRef.current, {
29107
29234
  source: source.data,
29108
- target: _optionalChain([location, 'access', _667 => _667.current, 'access', _668 => _668.dropTargets, 'access', _669 => _669[0], 'optionalAccess', _670 => _670.data])
29235
+ target: _optionalChain([location, 'access', _664 => _664.current, 'access', _665 => _665.dropTargets, 'access', _666 => _666[0], 'optionalAccess', _667 => _667.data])
29109
29236
  });
29110
29237
  if (!change) return;
29111
29238
  setPendingMove({
@@ -29138,7 +29265,7 @@ function DragBoard({
29138
29265
  return void 0;
29139
29266
  }
29140
29267
  const to = card.getBoundingClientRect();
29141
- const lane = _optionalChain([nearestScrollableAncestor, 'call', _671 => _671(card), 'optionalAccess', _672 => _672.getBoundingClientRect, 'call', _673 => _673()]);
29268
+ const lane = _optionalChain([nearestScrollableAncestor, 'call', _668 => _668(card), 'optionalAccess', _669 => _669.getBoundingClientRect, 'call', _670 => _670()]);
29142
29269
  if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
29143
29270
  finish();
29144
29271
  return void 0;
@@ -29197,8 +29324,8 @@ function DragBoard({
29197
29324
  children: view.map((column, i) => {
29198
29325
  const prev = view[i - 1];
29199
29326
  const next = view[i + 1];
29200
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _674 => _674.system]));
29201
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _675 => _675.system]));
29327
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _671 => _671.system]));
29328
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _672 => _672.system]));
29202
29329
  const showGap = i > 0 && !joinLeft;
29203
29330
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
29204
29331
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -29378,13 +29505,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
29378
29505
  const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
29379
29506
  const flipTimer = _react.useRef.call(void 0, null);
29380
29507
  const readItems = _react.useCallback.call(void 0,
29381
- () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.querySelectorAll, 'call', _678 => _678(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
29508
+ () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _673 => _673.current, 'optionalAccess', _674 => _674.querySelectorAll, 'call', _675 => _675(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
29382
29509
  []
29383
29510
  );
29384
29511
  const reorder = _react.useCallback.call(void 0,
29385
29512
  (from, to) => {
29386
29513
  if (from === to) return;
29387
- const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _679 => _679.current, 'optionalCall', _680 => _680(from)]), () => ( "Item"));
29514
+ const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _676 => _676.current, 'optionalCall', _677 => _677(from)]), () => ( "Item"));
29388
29515
  setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
29389
29516
  onReorderRef.current(from, to);
29390
29517
  },
@@ -29472,7 +29599,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
29472
29599
  moving.push(item);
29473
29600
  }
29474
29601
  if (moving.length === 0) return;
29475
- void _optionalChain([listRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.offsetHeight]);
29602
+ void _optionalChain([listRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.offsetHeight]);
29476
29603
  for (const item of moving) {
29477
29604
  item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
29478
29605
  item.style.transform = "";
@@ -29509,8 +29636,8 @@ function SortableMoveButtons({ index, count, label, className }) {
29509
29636
  if (to < 0 || to >= count) return;
29510
29637
  reorder(index, to);
29511
29638
  requestAnimationFrame(() => {
29512
- if (step === -1 && to === 0) _optionalChain([downRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
29513
- if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.focus, 'call', _688 => _688()]);
29639
+ if (step === -1 && to === 0) _optionalChain([downRef, 'access', _680 => _680.current, 'optionalAccess', _681 => _681.focus, 'call', _682 => _682()]);
29640
+ if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
29514
29641
  });
29515
29642
  };
29516
29643
  const subject = _nullishCoalesce(label, () => ( "item"));
@@ -29558,7 +29685,7 @@ function useSortableItem() {
29558
29685
  const [handle, setHandle] = _react.useState.call(void 0, null);
29559
29686
  const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
29560
29687
  const itemRef = _react.useCallback.call(void 0, (node) => {
29561
- _optionalChain([node, 'optionalAccess', _689 => _689.setAttribute, 'call', _690 => _690(SORTABLE_ITEM_ATTRIBUTE, "")]);
29688
+ _optionalChain([node, 'optionalAccess', _686 => _686.setAttribute, 'call', _687 => _687(SORTABLE_ITEM_ATTRIBUTE, "")]);
29562
29689
  setItem(node);
29563
29690
  }, []);
29564
29691
  _react.useEffect.call(void 0, () => {
@@ -29588,7 +29715,7 @@ function useSortableItem() {
29588
29715
  if (from < 0 || to < 0 || to >= items.length) return;
29589
29716
  event.preventDefault();
29590
29717
  reorder(from, to);
29591
- requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _691 => _691.focus, 'call', _692 => _692()]));
29718
+ requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _688 => _688.focus, 'call', _689 => _689()]));
29592
29719
  },
29593
29720
  [inert, readItems, reorder, handle]
29594
29721
  );
@@ -29610,7 +29737,7 @@ function TicketStatusConfigList({
29610
29737
  onReorder,
29611
29738
  getItemLabel,
29612
29739
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
29613
- children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _693 => _693(index)]), children: (args) => renderRow(item, args) }, item.id))
29740
+ children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _690 => _690(index)]), children: (args) => renderRow(item, args) }, item.id))
29614
29741
  }
29615
29742
  );
29616
29743
  }
@@ -30246,5 +30373,8 @@ function SortableRow({
30246
30373
 
30247
30374
 
30248
30375
 
30249
- 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.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; 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;
30250
- //# sourceMappingURL=chunk-QJR32JM2.cjs.map
30376
+
30377
+
30378
+
30379
+ 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.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.LabeledDivider = LabeledDivider; 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.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; 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; exports.LazyMount = LazyMount;
30380
+ //# sourceMappingURL=chunk-A6ETQEWK.cjs.map