@flamingo-stack/openframe-frontend-core 0.0.773 → 0.0.774

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 (128) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-7P2QXBWE.cjs → chunk-4JZC624S.cjs} +226 -206
  3. package/dist/{chunk-JJNOAYD4.cjs → chunk-5AOKXXHV.cjs} +4 -4
  4. package/dist/{chunk-MT5Z2LSV.cjs → chunk-5Z3XL2VU.cjs} +72 -72
  5. package/dist/{chunk-BPAYT72L.cjs → chunk-BTVO676B.cjs} +148 -131
  6. package/dist/{chunk-TZ4GKUO2.cjs → chunk-CZIMISAR.cjs} +5 -1
  7. package/dist/{chunk-YSKX42LW.cjs → chunk-E5E7IE7X.cjs} +12 -12
  8. package/dist/{chunk-XVFM6SJA.cjs → chunk-E64HPPRH.cjs} +31 -31
  9. package/dist/{chunk-CTRJNTYU.cjs → chunk-EQBJHJS7.cjs} +2 -2
  10. package/dist/{chunk-BMFU2CUL.cjs → chunk-HTSRAQVG.cjs} +4 -4
  11. package/dist/{chunk-NRFNZ35Z.cjs → chunk-IQQ3SLUK.cjs} +19 -19
  12. package/dist/{chunk-RNLRS4ID.cjs → chunk-KKAY6GPU.cjs} +2 -2
  13. package/dist/{chunk-ILZEXCJH.cjs → chunk-KWZ62LPZ.cjs} +124 -104
  14. package/dist/{chunk-KDMWXXLE.cjs → chunk-L5CKY5WA.cjs} +15 -15
  15. package/dist/{chunk-6LLF2QCS.cjs → chunk-LEVA5WO3.cjs} +39 -39
  16. package/dist/{chunk-CW3ML76U.cjs → chunk-NTPX5GXI.cjs} +4 -0
  17. package/dist/{chunk-VW2QQKQ6.cjs → chunk-NX7P2T2U.cjs} +15 -15
  18. package/dist/{chunk-7J4YWDT6.cjs → chunk-Q6B2DC65.cjs} +3 -3
  19. package/dist/{chunk-NPCFVTA2.cjs → chunk-Q7EXOVMT.cjs} +31 -31
  20. package/dist/{chunk-2A56MLLL.cjs → chunk-SWEPHSIP.cjs} +4 -4
  21. package/dist/{chunk-KSCEAIBS.cjs → chunk-TOPGBOCN.cjs} +2 -2
  22. package/dist/{chunk-I4ZVMNHO.cjs → chunk-TTQHSSHF.cjs} +6 -6
  23. package/dist/{chunk-FPCGKH5K.cjs → chunk-TUXPFF4P.cjs} +31 -29
  24. package/dist/{chunk-42YLIZFD.cjs → chunk-U332FL4C.cjs} +22 -22
  25. package/dist/{chunk-3FREBLAJ.cjs → chunk-UAKXZ2KD.cjs} +47 -45
  26. package/dist/{chunk-SE76YGR3.cjs → chunk-USMR73ND.cjs} +4 -4
  27. package/dist/{chunk-X5Z4HRH7.cjs → chunk-VISK6LKE.cjs} +2 -2
  28. package/dist/{chunk-HEEK42BL.cjs → chunk-VWUQVJ2D.cjs} +81 -81
  29. package/dist/{chunk-5V7BIUGA.cjs → chunk-Y3EBUFX4.cjs} +92 -21
  30. package/dist/{chunk-5HBGBLJT.cjs → chunk-ZHGOXDA3.cjs} +63 -59
  31. package/dist/{cloud-tenants-EE5ULFOK.cjs → cloud-tenants-7RNZ6GHM.cjs} +11 -11
  32. package/dist/components/case-studies/index.cjs +28 -28
  33. package/dist/components/chat/ask-prompts.d.ts.map +1 -1
  34. package/dist/components/chat/ask-prompts.js +28 -19
  35. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +3 -1
  36. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
  37. package/dist/components/chat/entity-cards/entity-portrait-card.js +2 -0
  38. package/dist/components/chat/entity-cards/program-card.d.ts +6 -1
  39. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  40. package/dist/components/chat/entity-cards/program-card.js +19 -2
  41. package/dist/components/chat/index.cjs +10 -8
  42. package/dist/components/chat/index.d.ts +1 -1
  43. package/dist/components/chat/index.d.ts.map +1 -1
  44. package/dist/components/chat/index.js +10 -4
  45. package/dist/components/chat/utils/ask-ai-events.d.ts +10 -0
  46. package/dist/components/chat/utils/ask-ai-events.d.ts.map +1 -1
  47. package/dist/components/chat/utils/ask-ai-events.js +21 -1
  48. package/dist/components/contact/index.cjs +12 -12
  49. package/dist/components/docs/index.cjs +15 -15
  50. package/dist/components/embeds/index.cjs +12 -12
  51. package/dist/components/faq/index.cjs +13 -13
  52. package/dist/components/features/index.cjs +11 -11
  53. package/dist/components/features/video-hover-preview.d.ts.map +1 -1
  54. package/dist/components/features/video-hover-preview.js +5 -2
  55. package/dist/components/features/video-shared.d.ts +2 -1
  56. package/dist/components/features/video-shared.d.ts.map +1 -1
  57. package/dist/components/features/video.d.ts.map +1 -1
  58. package/dist/components/features/video.js +64 -13
  59. package/dist/components/help-center-pages/index.cjs +100 -100
  60. package/dist/components/index.cjs +63 -61
  61. package/dist/components/meeting-scheduler/index.cjs +46 -46
  62. package/dist/components/navigation/index.cjs +14 -14
  63. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  64. package/dist/components/navigation/mingo-ai-button.js +2 -1
  65. package/dist/components/navigation/site-header.d.ts.map +1 -1
  66. package/dist/components/navigation/site-header.js +3 -1
  67. package/dist/components/onboarding-guides/index.cjs +14 -14
  68. package/dist/components/product-demo/index.cjs +20 -20
  69. package/dist/components/related-content/index.cjs +7 -6
  70. package/dist/components/related-content/index.d.ts +2 -1
  71. package/dist/components/related-content/index.d.ts.map +1 -1
  72. package/dist/components/related-content/index.js +2 -2
  73. package/dist/components/related-content/related-content-section.d.ts +8 -10
  74. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  75. package/dist/components/related-content/related-content-section.js +11 -7
  76. package/dist/components/tickets/index.cjs +17 -17
  77. package/dist/components/ui/index.cjs +13 -11
  78. package/dist/components/ui/photo-wall.d.ts +7 -0
  79. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  80. package/dist/components/ui/photo-wall.js +16 -2
  81. package/dist/components/ui/tab-navigation.d.ts +8 -1
  82. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  83. package/dist/components/ui/tab-navigation.js +9 -3
  84. package/dist/{devices-EBGGHEGR.cjs → devices-NNDBC6IH.cjs} +12 -12
  85. package/dist/{embeddable-chat-HCT4QV35.cjs → embeddable-chat-DI7ZZTBP.cjs} +75 -75
  86. package/dist/hooks/index.cjs +4 -4
  87. package/dist/hooks/use-near-viewport.d.ts.map +1 -1
  88. package/dist/hooks/use-near-viewport.js +4 -0
  89. package/dist/index.cjs +23 -15
  90. package/dist/{knowledge-5ZSMKKTL.cjs → knowledge-DPUMWQED.cjs} +12 -12
  91. package/dist/{logs-GUV3BMGC.cjs → logs-EE25MWYM.cjs} +19 -19
  92. package/dist/{policies-HPMTDOAS.cjs → policies-H5LPZWEM.cjs} +15 -15
  93. package/dist/{scripts-QYYKCIUW.cjs → scripts-YGO4LOES.cjs} +16 -16
  94. package/dist/{software-update-NC2KZKEI.cjs → software-update-5BEB62ZH.cjs} +14 -14
  95. package/dist/utils/content-ref-groups.d.ts +8 -0
  96. package/dist/utils/content-ref-groups.d.ts.map +1 -1
  97. package/dist/utils/content-ref-groups.js +2 -0
  98. package/dist/utils/dismiss-cookie.d.ts +14 -0
  99. package/dist/utils/dismiss-cookie.d.ts.map +1 -1
  100. package/dist/utils/dismiss-cookie.js +4 -0
  101. package/dist/utils/index.cjs +10 -0
  102. package/dist/utils/index.d.ts +1 -1
  103. package/dist/utils/index.d.ts.map +1 -1
  104. package/dist/utils/index.js +2 -0
  105. package/dist/utils/visitor-os.d.ts +9 -0
  106. package/dist/utils/visitor-os.d.ts.map +1 -1
  107. package/dist/utils/visitor-os.js +4 -0
  108. package/dist/{video-file-player-COXRF4M5.cjs → video-file-player-4TXA7BZF.cjs} +3 -3
  109. package/package.json +1 -1
  110. package/src/components/chat/ask-prompts.tsx +6 -1
  111. package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -0
  112. package/src/components/chat/entity-cards/program-card.tsx +24 -2
  113. package/src/components/chat/index.ts +16 -9
  114. package/src/components/chat/utils/ask-ai-events.ts +26 -0
  115. package/src/components/features/video-hover-preview.tsx +46 -37
  116. package/src/components/features/video-shared.tsx +2 -1
  117. package/src/components/features/video.tsx +102 -19
  118. package/src/components/navigation/mingo-ai-button.tsx +2 -1
  119. package/src/components/navigation/site-header.tsx +3 -1
  120. package/src/components/related-content/index.ts +2 -1
  121. package/src/components/related-content/related-content-section.tsx +26 -12
  122. package/src/components/ui/photo-wall.tsx +24 -2
  123. package/src/components/ui/tab-navigation.tsx +18 -3
  124. package/src/hooks/use-near-viewport.ts +6 -0
  125. package/src/utils/content-ref-groups.ts +9 -0
  126. package/src/utils/dismiss-cookie.ts +17 -0
  127. package/src/utils/index.ts +1 -0
  128. package/src/utils/visitor-os.ts +12 -0
@@ -53,7 +53,7 @@ var _chunkDEY6XXGOcjs = require('./chunk-DEY6XXGO.cjs');
53
53
 
54
54
 
55
55
 
56
- var _chunkXVFM6SJAcjs = require('./chunk-XVFM6SJA.cjs');
56
+ var _chunkE64HPPRHcjs = require('./chunk-E64HPPRH.cjs');
57
57
 
58
58
 
59
59
 
@@ -64,7 +64,7 @@ var _chunk2JRSYWFPcjs = require('./chunk-2JRSYWFP.cjs');
64
64
  var _chunkA6P6DHEZcjs = require('./chunk-A6P6DHEZ.cjs');
65
65
 
66
66
 
67
- var _chunkKSCEAIBScjs = require('./chunk-KSCEAIBS.cjs');
67
+ var _chunkTOPGBOCNcjs = require('./chunk-TOPGBOCN.cjs');
68
68
 
69
69
 
70
70
 
@@ -116,7 +116,7 @@ var _chunkC42WIUH6cjs = require('./chunk-C42WIUH6.cjs');
116
116
 
117
117
 
118
118
 
119
- var _chunkBPAYT72Lcjs = require('./chunk-BPAYT72L.cjs');
119
+ var _chunkBTVO676Bcjs = require('./chunk-BTVO676B.cjs');
120
120
 
121
121
 
122
122
 
@@ -139,7 +139,7 @@ var _chunkBPAYT72Lcjs = require('./chunk-BPAYT72L.cjs');
139
139
 
140
140
 
141
141
 
142
- var _chunkILZEXCJHcjs = require('./chunk-ILZEXCJH.cjs');
142
+ var _chunkKWZ62LPZcjs = require('./chunk-KWZ62LPZ.cjs');
143
143
 
144
144
 
145
145
 
@@ -464,7 +464,7 @@ var _chunkXIBCMGBWcjs = require('./chunk-XIBCMGBW.cjs');
464
464
 
465
465
 
466
466
 
467
- var _chunkTZ4GKUO2cjs = require('./chunk-TZ4GKUO2.cjs');
467
+ var _chunkCZIMISARcjs = require('./chunk-CZIMISAR.cjs');
468
468
 
469
469
 
470
470
 
@@ -503,7 +503,7 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
503
503
 
504
504
 
505
505
 
506
- var _chunk5V7BIUGAcjs = require('./chunk-5V7BIUGA.cjs');
506
+ var _chunkY3EBUFX4cjs = require('./chunk-Y3EBUFX4.cjs');
507
507
 
508
508
 
509
509
 
@@ -541,7 +541,7 @@ var _chunk3LW5TD54cjs = require('./chunk-3LW5TD54.cjs');
541
541
 
542
542
 
543
543
 
544
- var _chunkCW3ML76Ucjs = require('./chunk-CW3ML76U.cjs');
544
+ var _chunkNTPX5GXIcjs = require('./chunk-NTPX5GXI.cjs');
545
545
 
546
546
 
547
547
 
@@ -695,7 +695,7 @@ function ThemeProvider({ children, ...overrides }) {
695
695
  var useTheme = _nextthemes.useTheme;
696
696
  function useThemeToggle() {
697
697
  const { resolvedTheme, theme, setTheme } = useTheme();
698
- const mounted = _chunkILZEXCJHcjs.useIsHydrated.call(void 0, );
698
+ const mounted = _chunkKWZ62LPZcjs.useIsHydrated.call(void 0, );
699
699
  const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
700
700
  const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
701
701
  const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
@@ -2404,7 +2404,7 @@ function InfoCardFooter({ footer }) {
2404
2404
  ] });
2405
2405
  }
2406
2406
  function InfoCardValueRow({ label, value, showLabel, copyable, icon, copyAriaLabel }) {
2407
- const { copy, copied } = _chunkXVFM6SJAcjs.useCopyToClipboard.call(void 0, );
2407
+ const { copy, copied } = _chunkE64HPPRHcjs.useCopyToClipboard.call(void 0, );
2408
2408
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: VALUE_ROW_CLASS, children: [
2409
2409
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-primary text-h4", children: showLabel ? label : "" }),
2410
2410
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: DIVIDER_CLASS }),
@@ -4525,7 +4525,7 @@ function AdminFormDrawer({
4525
4525
  "form",
4526
4526
  {
4527
4527
  id: formId,
4528
- ..._chunkBPAYT72Lcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4528
+ ..._chunkBTVO676Bcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4529
4529
  className: "flex flex-col gap-[var(--spacing-system-lf)]",
4530
4530
  onSubmit: (e) => {
4531
4531
  e.preventDefault();
@@ -4632,7 +4632,7 @@ function AdminFormModal({
4632
4632
  "form",
4633
4633
  {
4634
4634
  id: formId,
4635
- ..._chunkBPAYT72Lcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4635
+ ..._chunkBTVO676Bcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4636
4636
  className: "flex min-h-0 flex-1 flex-col",
4637
4637
  onSubmit: (e) => {
4638
4638
  e.preventDefault();
@@ -5507,7 +5507,13 @@ function TabNavigationSkeleton({
5507
5507
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, STRIP_BORDER_CLASS, "bg-ods-border") })
5508
5508
  ] });
5509
5509
  }
5510
- function TabNavigation({
5510
+ function TabNavigation(props) {
5511
+ return props.urlSync ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UrlSyncedTabNavigation, { ...props }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabNavigationBody, { ...props, searchParams: null });
5512
+ }
5513
+ function UrlSyncedTabNavigation(props) {
5514
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TabNavigationBody, { ...props, searchParams: _chunk7DNL734Scjs.useSearchParams.call(void 0, ) });
5515
+ }
5516
+ function TabNavigationBody({
5511
5517
  activeTab: controlledActiveTab,
5512
5518
  onTabChange: controlledOnTabChange,
5513
5519
  tabs,
@@ -5522,13 +5528,13 @@ function TabNavigation({
5522
5528
  urlSync = false,
5523
5529
  defaultTab,
5524
5530
  staticLabels = false,
5525
- children
5531
+ children,
5532
+ searchParams
5526
5533
  }) {
5527
5534
  const providedVariant = _react.useContext.call(void 0, TabNavigationVariantContext);
5528
5535
  const variant = _nullishCoalesce(variantProp, () => ( providedVariant));
5529
5536
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
5530
5537
  const pathname = _chunk7DNL734Scjs.usePathname.call(void 0, );
5531
- const searchParams = _chunk7DNL734Scjs.useSearchParams.call(void 0, );
5532
5538
  const isUrlSyncEnabled = !!urlSync;
5533
5539
  const paramName = typeof urlSync === "object" ? urlSync.paramName || "tab" : "tab";
5534
5540
  const replaceState = typeof urlSync === "object" ? urlSync.replaceState !== false : true;
@@ -6022,7 +6028,7 @@ function EmbedViewerFrame({
6022
6028
  const controllerRef = _react.useRef.call(void 0, null);
6023
6029
  _react.useEffect.call(void 0, () => {
6024
6030
  if (!fullscreenControl) return void 0;
6025
- const controller = new (0, _chunkBPAYT72Lcjs.FullscreenSwitchController)({
6031
+ const controller = new (0, _chunkBTVO676Bcjs.FullscreenSwitchController)({
6026
6032
  target: () => frameRef.current,
6027
6033
  onFullscreenChange: setIsFullscreen
6028
6034
  });
@@ -6116,9 +6122,9 @@ var KIND_HEADING = {
6116
6122
  design: "Claude Design"
6117
6123
  };
6118
6124
  function ClaudeEmbed({ url, kind = "artifact", title, height, loading = "lazy" }) {
6119
- const { src: mirrorSrc, status } = _chunkXVFM6SJAcjs.useClaudeMirrorSrc.call(void 0, url);
6125
+ const { src: mirrorSrc, status } = _chunkE64HPPRHcjs.useClaudeMirrorSrc.call(void 0, url);
6120
6126
  const isProbing = status === "probing";
6121
- const embedUrl = isProbing ? null : _nullishCoalesce(mirrorSrc, () => ( _chunkTZ4GKUO2cjs.toClaudeEmbedUrl.call(void 0, url)));
6127
+ const embedUrl = isProbing ? null : _nullishCoalesce(mirrorSrc, () => ( _chunkCZIMISARcjs.toClaudeEmbedUrl.call(void 0, url)));
6122
6128
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6123
6129
  EmbedViewerFrame,
6124
6130
  {
@@ -6193,12 +6199,12 @@ function SlidesViewToggle({ view, onChange }) {
6193
6199
  }
6194
6200
  function FigmaEmbed({ url, title, height, loading = "lazy" }) {
6195
6201
  const [view, setView] = _react.useState.call(void 0, "present");
6196
- const isSlides = url ? _chunkTZ4GKUO2cjs.isFigmaSlidesUrl.call(void 0, url) : false;
6197
- const embedSrc = url ? _chunkTZ4GKUO2cjs.toFigmaEmbedUrl.call(void 0, url, { slidesView: view }) : null;
6202
+ const isSlides = url ? _chunkCZIMISARcjs.isFigmaSlidesUrl.call(void 0, url) : false;
6203
+ const embedSrc = url ? _chunkCZIMISARcjs.toFigmaEmbedUrl.call(void 0, url, { slidesView: view }) : null;
6198
6204
  const originalUrl = (() => {
6199
6205
  if (!url) return null;
6200
6206
  try {
6201
- const parsed = new URL(_chunkTZ4GKUO2cjs.toFigmaOriginalUrl.call(void 0, url));
6207
+ const parsed = new URL(_chunkCZIMISARcjs.toFigmaOriginalUrl.call(void 0, url));
6202
6208
  const host = parsed.hostname.toLowerCase();
6203
6209
  const okHost = host === "figma.com" || host.endsWith(".figma.com");
6204
6210
  const okProtocol = parsed.protocol === "https:" || parsed.protocol === "http:";
@@ -7066,7 +7072,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
7066
7072
  };
7067
7073
  const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
7068
7074
  const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7069
- _chunk5V7BIUGAcjs.Video,
7075
+ _chunkY3EBUFX4cjs.Video,
7070
7076
  {
7071
7077
  url: item.src,
7072
7078
  poster: item.poster ? displayImageSrc(item.poster) : void 0,
@@ -7261,7 +7267,7 @@ var formatTimeAgo = (timestamp) => {
7261
7267
  return `${Math.floor(diffSeconds / 86400)}d ago`;
7262
7268
  };
7263
7269
  function RedditEmbedClient({ url, maxWidth = 700, rel }) {
7264
- const postLinkRel = _chunkILZEXCJHcjs.renderedLinkRel.call(void 0, rel, true);
7270
+ const postLinkRel = _chunkKWZ62LPZcjs.renderedLinkRel.call(void 0, rel, true);
7265
7271
  const { redditProxyUrl } = useRichMarkdownRuntime();
7266
7272
  const [redditData, setRedditData] = _react.useState.call(void 0, null);
7267
7273
  const [loading, setLoading] = _react.useState.call(void 0, true);
@@ -7593,7 +7599,7 @@ var UserIcon3 = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { wid
7593
7599
  ] });
7594
7600
  var XIcon = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2TEMEXDTcjs.XLogoIcon, { className: "h-5 w-5", color: "currentColor" });
7595
7601
  function TwitterEmbedClient({ url, tweetId, maxWidth = 700, rel }) {
7596
- const postLinkRel = _chunkILZEXCJHcjs.renderedLinkRel.call(void 0, rel, true);
7602
+ const postLinkRel = _chunkKWZ62LPZcjs.renderedLinkRel.call(void 0, rel, true);
7597
7603
  const { twitterProxyUrl } = useRichMarkdownRuntime();
7598
7604
  const [tweetData, setTweetData] = _react.useState.call(void 0, null);
7599
7605
  const [fetchLoading, setLoading] = _react.useState.call(void 0, true);
@@ -7795,7 +7801,7 @@ function buildRichEmbedOverrides({
7795
7801
  ogEndpointPath,
7796
7802
  textSizes
7797
7803
  }) {
7798
- const standard = _chunkILZEXCJHcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7804
+ const standard = _chunkKWZ62LPZcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7799
7805
  return {
7800
7806
  // Fence-language embeds (```youtube-embed etc.); everything else
7801
7807
  // (mermaid, highlighted blocks, inline code) falls through to `standard`.
@@ -7805,7 +7811,7 @@ function buildRichEmbedOverrides({
7805
7811
  const language = match ? match[1] : "";
7806
7812
  const fenceText = () => String(children).replace(/\n$/, "").trim();
7807
7813
  if (language === "youtube-embed") {
7808
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Video, { kind: "youtube", url: fenceText() });
7814
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "youtube", url: fenceText() });
7809
7815
  }
7810
7816
  if (language === "reddit-embed") {
7811
7817
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
@@ -7846,7 +7852,7 @@ function buildRichEmbedOverrides({
7846
7852
  "data-figma-url": figmaUrl
7847
7853
  } = divProps;
7848
7854
  if (className === "youtube-embed" && videoId) {
7849
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Video, { kind: "youtube", url: videoId });
7855
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "youtube", url: videoId });
7850
7856
  }
7851
7857
  if (className === "reddit-embed" && postUrl) {
7852
7858
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
@@ -7931,23 +7937,23 @@ function buildRichEmbedOverrides({
7931
7937
  // rich-markdown runtime (Supabase optimization on the hub, identity
7932
7938
  // elsewhere). Guard against empty `![]()`.
7933
7939
  img: ({ src, alt }) => {
7934
- if (!_chunkILZEXCJHcjs.hasRenderableSrc.call(void 0, src)) return null;
7940
+ if (!_chunkKWZ62LPZcjs.hasRenderableSrc.call(void 0, src)) return null;
7935
7941
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
7936
7942
  },
7937
7943
  // Raw <iframe> tags in stored content (a pasted YouTube embed). A YouTube one becomes the same click-to-play
7938
7944
  // facade as the `youtube-embed` fence: the raw iframe loaded YouTube's whole player (about 470 KB of script) with
7939
7945
  // the page, on every post that carried one (CU-17tkuw5xp4q). Any other iframe loads when it nears the screen.
7940
7946
  iframe: ({ node: _node, src, ...rest }) => {
7941
- if (!_chunkILZEXCJHcjs.hasRenderableSrc.call(void 0, src)) return null;
7947
+ if (!_chunkKWZ62LPZcjs.hasRenderableSrc.call(void 0, src)) return null;
7942
7948
  const url = src.trim();
7943
- if (_chunk5V7BIUGAcjs.extractYouTubeId.call(void 0, url)) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Video, { kind: "youtube", url });
7949
+ if (_chunkY3EBUFX4cjs.extractYouTubeId.call(void 0, url)) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "youtube", url });
7944
7950
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "iframe", { ...rest, src: url, loading: "lazy" });
7945
7951
  },
7946
7952
  // Raw <video> tags in stored content (blog publisher injection) route
7947
7953
  // to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
7948
7954
  video: ({ src, poster, className }) => {
7949
- if (!_chunkILZEXCJHcjs.hasRenderableSrc.call(void 0, src)) return null;
7950
- 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, _chunk5V7BIUGAcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7955
+ if (!_chunkKWZ62LPZcjs.hasRenderableSrc.call(void 0, src)) return null;
7956
+ 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, _chunkY3EBUFX4cjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7951
7957
  }
7952
7958
  };
7953
7959
  }
@@ -8055,7 +8061,7 @@ var processShortcodes = (content) => {
8055
8061
  try {
8056
8062
  const urlObj = new URL(url);
8057
8063
  const hostname = urlObj.hostname.toLowerCase();
8058
- const hostIs = (domain) => _chunkBPAYT72Lcjs.hostMatches.call(void 0, hostname, domain);
8064
+ const hostIs = (domain) => _chunkBTVO676Bcjs.hostMatches.call(void 0, hostname, domain);
8059
8065
  const isYouTubeVideo = hostIs("youtube.com") && urlObj.searchParams.has("v") || hostIs("youtu.be");
8060
8066
  if (isYouTubeVideo || hostIs("reddit.com") || hostIs("twitter.com") || hostIs("x.com") || hostIs("figma.com")) {
8061
8067
  return match;
@@ -8132,13 +8138,13 @@ var RichMarkdownInner = ({
8132
8138
  },
8133
8139
  [resolveLinkEndpointUrl, resolveSource]
8134
8140
  );
8135
- const textSizes = _react.useMemo.call(void 0, () => _chunkILZEXCJHcjs.resolveTextSizeConfig.call(void 0, "article"), []);
8141
+ const textSizes = _react.useMemo.call(void 0, () => _chunkKWZ62LPZcjs.resolveTextSizeConfig.call(void 0, "article"), []);
8136
8142
  const componentOverrides = _react.useMemo.call(void 0,
8137
8143
  () => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
8138
8144
  [ogApiBaseUrl, ogEndpointPath, textSizes]
8139
8145
  );
8140
8146
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
8141
- _chunkILZEXCJHcjs.MarkdownEngine,
8147
+ _chunkKWZ62LPZcjs.MarkdownEngine,
8142
8148
  {
8143
8149
  content,
8144
8150
  className,
@@ -8162,7 +8168,7 @@ var RichMarkdownRendererImpl = ({
8162
8168
  className = "",
8163
8169
  sectionIds,
8164
8170
  onInternalLinkClick,
8165
- brokenLinks = _chunkILZEXCJHcjs.NO_BROKEN_LINKS,
8171
+ brokenLinks = _chunkKWZ62LPZcjs.NO_BROKEN_LINKS,
8166
8172
  currentPath,
8167
8173
  resolveSource = "openframe-docs",
8168
8174
  resolveLinkEndpointUrl = "/api/docs/resolve-link",
@@ -8207,7 +8213,7 @@ function RichMarkdownRendererSkeleton({
8207
8213
  title,
8208
8214
  className
8209
8215
  }) {
8210
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.MarkdownEngineSkeleton, { sections, title, textSize: "article", className });
8216
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.MarkdownEngineSkeleton, { sections, title, textSize: "article", className });
8211
8217
  }
8212
8218
 
8213
8219
  // src/components/ui/release-changelog-section.tsx
@@ -9292,7 +9298,7 @@ function FilterModal({
9292
9298
  const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _147 => _147.defaultSort]), () => ( "desc"));
9293
9299
  const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _148 => _148.sort]), () => ( dateDefaultSort)));
9294
9300
  const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _149 => _149.range]));
9295
- const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkILZEXCJHcjs.useScrollFade.call(void 0, );
9301
+ const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkKWZ62LPZcjs.useScrollFade.call(void 0, );
9296
9302
  const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
9297
9303
  const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
9298
9304
  _react.useEffect.call(void 0, () => {
@@ -9438,8 +9444,8 @@ function FilterModal({
9438
9444
  ] })
9439
9445
  }
9440
9446
  ),
9441
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
9442
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
9447
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
9448
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
9443
9449
  ] })
9444
9450
  }
9445
9451
  ),
@@ -9507,7 +9513,7 @@ function renderAdvancedPageContainer({
9507
9513
  contentClassName,
9508
9514
  showHeader = true
9509
9515
  }, inScope = false) {
9510
- const titleNode = title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.PageTitle, { className: PAGE_CONTAINER_TITLE_CLASS, children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }) : inScope && title === "" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageContainerTitleSkeleton, {}) : null;
9516
+ const titleNode = title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.PageTitle, { className: PAGE_CONTAINER_TITLE_CLASS, children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }) : inScope && title === "" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageContainerTitleSkeleton, {}) : null;
9511
9517
  const subtitleNode = subtitle ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: PAGE_CONTAINER_SUBTITLE_CLASS, children: subtitle }) : inScope && subtitle === "" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageContainerSubtitleSkeleton, {}) : null;
9512
9518
  const getActionsVariant = () => {
9513
9519
  if (actionsVariant) return actionsVariant;
@@ -9933,7 +9939,7 @@ var BenefitCardGrid = ({ children, className = "", columns = 2 }) => {
9933
9939
 
9934
9940
 
9935
9941
  function PlatformBrowseButton({ item }) {
9936
- const linkProps = _chunkILZEXCJHcjs.useNavLinkViaRuntime.call(void 0, { href: item.link, targetPlatform: item.targetPlatform });
9942
+ const linkProps = _chunkKWZ62LPZcjs.useNavLinkViaRuntime.call(void 0, { href: item.link, targetPlatform: item.targetPlatform });
9937
9943
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkTF5D5MNOcjs.Button, { variant: "outline", linkProps, rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-4 w-4" }), children: [
9938
9944
  "Browse ",
9939
9945
  item.buttonText
@@ -10430,10 +10436,10 @@ var OSTypeBadge = ({
10430
10436
  if (!osType) {
10431
10437
  return labelOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "text-ods-text-secondary", className), children: "Unknown" }) : null;
10432
10438
  }
10433
- const normalized = _chunkBPAYT72Lcjs.normalizeOSType.call(void 0, osType);
10439
+ const normalized = _chunkBTVO676Bcjs.normalizeOSType.call(void 0, osType);
10434
10440
  if (!normalized && !labelOnly) return null;
10435
- const label = _chunkBPAYT72Lcjs.getOSLabel.call(void 0, osType);
10436
- const IconComponent = _chunkBPAYT72Lcjs.getOSIcon.call(void 0, osType);
10441
+ const label = _chunkBTVO676Bcjs.getOSLabel.call(void 0, osType);
10442
+ const IconComponent = _chunkBTVO676Bcjs.getOSIcon.call(void 0, osType);
10437
10443
  if (iconOnly && IconComponent) {
10438
10444
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: _chunk65VVJSQZcjs.cn.call(void 0, iconSize, "text-ods-text-secondary", className) });
10439
10445
  }
@@ -10718,7 +10724,7 @@ function ComplianceLogo({
10718
10724
  fallback = null,
10719
10725
  className
10720
10726
  }) {
10721
- const standard = _chunkBPAYT72Lcjs.complianceStandardForName.call(void 0, ...names);
10727
+ const standard = _chunkBTVO676Bcjs.complianceStandardForName.call(void 0, ...names);
10722
10728
  if (!standard) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: fallback });
10723
10729
  const Official = standard.logo ? COMPLIANCE_LOGOS[standard.logo] : null;
10724
10730
  return Official ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10797,7 +10803,7 @@ function FeatureCardGridView({
10797
10803
  if (allCardsHaveNoBorders) {
10798
10804
  finalCardClassName = "bg-transparent p-0 overflow-visible border-0 shadow-none rounded-none";
10799
10805
  }
10800
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Card, { className: `${finalCardClassName} ${className}`, children: Array.from({ length: rows }, (_, rowIndex) => {
10806
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Card, { className: `${finalCardClassName} ${className}`, children: Array.from({ length: rows }, (_, rowIndex) => {
10801
10807
  const startIndex = rowIndex * itemsPerRow;
10802
10808
  const rowItems = items.slice(startIndex, startIndex + itemsPerRow);
10803
10809
  const isLastRow = rowIndex === rows - 1;
@@ -10831,7 +10837,7 @@ function FeatureCardGridView({
10831
10837
  item.icon && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between", children: [
10832
10838
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, item.icon, { size: 80, color: item.iconColor }),
10833
10839
  item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10834
- _chunk5V7BIUGAcjs.StatusBadge,
10840
+ _chunkY3EBUFX4cjs.StatusBadge,
10835
10841
  {
10836
10842
  text: item.badge.text,
10837
10843
  variant: item.badge.variant || "card",
@@ -10840,7 +10846,7 @@ function FeatureCardGridView({
10840
10846
  )
10841
10847
  ] }),
10842
10848
  !item.icon && item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-start justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10843
- _chunk5V7BIUGAcjs.StatusBadge,
10849
+ _chunkY3EBUFX4cjs.StatusBadge,
10844
10850
  {
10845
10851
  text: item.badge.text,
10846
10852
  variant: item.badge.variant || "card",
@@ -11605,7 +11611,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
11605
11611
  }
11606
11612
  function ServiceCardRowItem({ row }) {
11607
11613
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
11608
- const { copy, copied } = _chunkXVFM6SJAcjs.useCopyToClipboard.call(void 0, );
11614
+ const { copy, copied } = _chunkE64HPPRHcjs.useCopyToClipboard.call(void 0, );
11609
11615
  const { ref: valueRef, isTruncated: valueTruncated } = _chunk5P4TDV7Vcjs.useIsTruncated.call(void 0, row.value);
11610
11616
  const actions = _react.useMemo.call(void 0,
11611
11617
  () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }),
@@ -12503,7 +12509,7 @@ function TableHeader({
12503
12509
  onFilterChange
12504
12510
  }
12505
12511
  ),
12506
- column.hint ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.InfoHint, { label: column.label, children: column.hint }) : null
12512
+ column.hint ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.InfoHint, { label: column.label, children: column.hint }) : null
12507
12513
  ] })
12508
12514
  ) : (
12509
12515
  /* Non-filterable column — regular label with optional sort */
@@ -12529,7 +12535,7 @@ function TableHeader({
12529
12535
  hint exists, so a hint-less header keeps its DOM. */
12530
12536
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-start gap-[var(--spacing-system-xxs)]", children: [
12531
12537
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TABLE_HEADER_LABEL_CLASS, children: column.label }),
12532
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.InfoHint, { label: column.label, children: column.hint })
12538
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.InfoHint, { label: column.label, children: column.hint })
12533
12539
  ] })
12534
12540
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TABLE_HEADER_LABEL_CLASS, children: column.label }),
12535
12541
  getSortIcon(column)
@@ -12639,7 +12645,7 @@ function TableRow({
12639
12645
  const Row = animate && motionDiv ? motionDiv : "div";
12640
12646
  const motionProps = animate ? { layout: "position", transition: { layout: { duration: 0.35, ease: [0.22, 1, 0.36, 1] } } } : {};
12641
12647
  const handleRowClick = (e) => {
12642
- if (!_chunkBPAYT72Lcjs.isOwnClick.call(void 0, e.target, e.currentTarget)) return;
12648
+ if (!_chunkBTVO676Bcjs.isOwnClick.call(void 0, e.target, e.currentTarget)) return;
12643
12649
  if (onClick) {
12644
12650
  onClick(item);
12645
12651
  }
@@ -13036,7 +13042,7 @@ function Table({
13036
13042
  }
13037
13043
  ),
13038
13044
  !infiniteScroll && pagePagination && !cursorPagination && data.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "mt-2 border-t border-ods-border pt-3", paginationClassName), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13039
- _chunkKSCEAIBScjs.Pagination,
13045
+ _chunkTOPGBOCNcjs.Pagination,
13040
13046
  {
13041
13047
  currentPage: pagePagination.currentPage,
13042
13048
  totalPages: pagePagination.totalPages,
@@ -13418,7 +13424,7 @@ function DataTableRowImpl({
13418
13424
  const containerRef = _react.useRef.call(void 0, null);
13419
13425
  const handleClick = _react.useCallback.call(void 0,
13420
13426
  (e) => {
13421
- if (!_chunkBPAYT72Lcjs.isOwnClick.call(void 0, e.target, containerRef.current)) {
13427
+ if (!_chunkBTVO676Bcjs.isOwnClick.call(void 0, e.target, containerRef.current)) {
13422
13428
  if (isLinkMode) e.preventDefault();
13423
13429
  return;
13424
13430
  }
@@ -13869,7 +13875,7 @@ function HeaderCell({ header, sort, onSortChange }) {
13869
13875
  // child of the cell.
13870
13876
  _optionalChain([meta, 'optionalAccess', _241 => _241.hint]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-xxs)]", children: [
13871
13877
  filterTrigger,
13872
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13878
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13873
13879
  ] }) : filterTrigger
13874
13880
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13875
13881
  "div",
@@ -13894,7 +13900,7 @@ function HeaderCell({ header, sort, onSortChange }) {
13894
13900
  // centred on the row.
13895
13901
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-start gap-[var(--spacing-system-xxs)]", children: [
13896
13902
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
13897
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13903
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13898
13904
  ] })
13899
13905
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
13900
13906
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -14128,7 +14134,7 @@ function PhoneInput({
14128
14134
  placeholder = "Phone Number (optional)",
14129
14135
  onKeyDown
14130
14136
  }) {
14131
- const { priority, others } = _react.useMemo.call(void 0, () => _chunkBPAYT72Lcjs.getCountryPhoneData.call(void 0, ), []);
14137
+ const { priority, others } = _react.useMemo.call(void 0, () => _chunkBTVO676Bcjs.getCountryPhoneData.call(void 0, ), []);
14132
14138
  const selectedCountry = _react.useMemo.call(void 0,
14133
14139
  () => [...priority, ...others].find((c) => c.code === countryCode),
14134
14140
  [countryCode, priority, others]
@@ -14143,7 +14149,7 @@ function PhoneInput({
14143
14149
  _optionalChain([onValidationChange, 'optionalCall', _254 => _254(false)]);
14144
14150
  return;
14145
14151
  }
14146
- const invalid = !_chunkBPAYT72Lcjs.validatePhoneNumber.call(void 0, phone, countryCode);
14152
+ const invalid = !_chunkBTVO676Bcjs.validatePhoneNumber.call(void 0, phone, countryCode);
14147
14153
  setIsInvalid(invalid);
14148
14154
  _optionalChain([onValidationChange, 'optionalCall', _255 => _255(invalid)]);
14149
14155
  },
@@ -15009,7 +15015,7 @@ function MarkdownLinkDialog({ isOpen, initial, editing, onSubmit, onRemove, onCl
15009
15015
  ),
15010
15016
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xsf)]", children: [
15011
15017
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15012
- _chunkILZEXCJHcjs.TabSelector,
15018
+ _chunkKWZ62LPZcjs.TabSelector,
15013
15019
  {
15014
15020
  label: "Search engines",
15015
15021
  value: choice,
@@ -15066,7 +15072,7 @@ function useMarkdownLinkCommand() {
15066
15072
  buttonProps: { "aria-label": "Add or edit a link (ctrl + l)", title: "Add or edit a link (ctrl + l)" },
15067
15073
  icon: command.icon,
15068
15074
  execute: (state, api) => {
15069
- const existing = _chunkILZEXCJHcjs.findMarkdownLinkAt.call(void 0, state.text, state.selection.start, state.selection.end);
15075
+ const existing = _chunkKWZ62LPZcjs.findMarkdownLinkAt.call(void 0, state.text, state.selection.start, state.selection.end);
15070
15076
  setPending(
15071
15077
  existing ? {
15072
15078
  api,
@@ -15097,7 +15103,7 @@ function useMarkdownLinkCommand() {
15097
15103
  initial: _nullishCoalesce(_optionalChain([pending, 'optionalAccess', _312 => _312.initial]), () => ( EMPTY_LINK)),
15098
15104
  editing: _nullishCoalesce(_optionalChain([pending, 'optionalAccess', _313 => _313.editing]), () => ( false)),
15099
15105
  onSubmit: (link) => {
15100
- if (pending) write(pending, _chunkILZEXCJHcjs.formatMarkdownLink.call(void 0, link));
15106
+ if (pending) write(pending, _chunkKWZ62LPZcjs.formatMarkdownLink.call(void 0, link));
15101
15107
  },
15102
15108
  onRemove: () => {
15103
15109
  if (pending) write(pending, pending.initial.text);
@@ -15263,7 +15269,7 @@ function MarkdownEditor({
15263
15269
  setUploadProgress(`Uploading ${file.name}...`);
15264
15270
  try {
15265
15271
  const url = await onUploadFile(file);
15266
- const isImage = _chunk5V7BIUGAcjs.fileMediaType.call(void 0, file) === "image";
15272
+ const isImage = _chunkY3EBUFX4cjs.fileMediaType.call(void 0, file) === "image";
15267
15273
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
15268
15274
  insertTextAtCursor(markdown);
15269
15275
  _optionalChain([onFileUploaded, 'optionalCall', _316 => _316(url, file.name)]);
@@ -15393,7 +15399,7 @@ function MarkdownEditor({
15393
15399
  type: "file",
15394
15400
  className: "hidden",
15395
15401
  onChange: handleFileInputChange,
15396
- accept: `${_chunk5V7BIUGAcjs.IMAGE_FILE_ACCEPT},.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.zip,.txt`
15402
+ accept: `${_chunkY3EBUFX4cjs.IMAGE_FILE_ACCEPT},.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.zip,.txt`
15397
15403
  }
15398
15404
  ),
15399
15405
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownEditorHeightContext.Provider, { value: height, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Suspense, { fallback: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownEditorFieldSkeleton, { height }), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15794,7 +15800,7 @@ function matchesAccept2(file, accept) {
15794
15800
  return patterns.some((pattern) => {
15795
15801
  if (pattern.startsWith(".")) return fileName.endsWith(pattern);
15796
15802
  if (pattern.endsWith("/*"))
15797
- return fileType.startsWith(pattern.slice(0, -1)) || _chunk5V7BIUGAcjs.fileMediaType.call(void 0, file) === pattern.slice(0, -2);
15803
+ return fileType.startsWith(pattern.slice(0, -1)) || _chunkY3EBUFX4cjs.fileMediaType.call(void 0, file) === pattern.slice(0, -2);
15798
15804
  return fileType === pattern;
15799
15805
  });
15800
15806
  }
@@ -15802,7 +15808,7 @@ function ImageUploader({
15802
15808
  value,
15803
15809
  onChange,
15804
15810
  onRemove,
15805
- accept = _chunk5V7BIUGAcjs.IMAGE_FILE_ACCEPT,
15811
+ accept = _chunkY3EBUFX4cjs.IMAGE_FILE_ACCEPT,
15806
15812
  maxSize = DEFAULT_MAX_SIZE,
15807
15813
  label = "Cover Image",
15808
15814
  description = "(Click Here or Drag and Drop)",
@@ -16422,7 +16428,7 @@ var SKELETON_COLUMNS = 6;
16422
16428
  function TestResultsSkeleton({
16423
16429
  region = true
16424
16430
  } = {}) {
16425
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the test results", announce: region, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
16431
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWEANWBJHcjs.LoadingRegion, { label: "Loading the test results", announce: region, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
16426
16432
  /* @__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, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "h-4 w-3/4 rounded-sm" }) }, `skeleton-header-${i}`)) }),
16427
16433
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "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)] content-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, _chunkXFRBEXQNcjs.UnifiedSkeleton, { className: "h-5 w-3/4 rounded-sm" }) }, `skeleton-cell-${i}`)) }) })
16428
16434
  ] }) }) });
@@ -16457,13 +16463,13 @@ function TestResultsTable({ rows, loading }) {
16457
16463
  if (loading) {
16458
16464
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
16459
16465
  }
16460
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.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: [
16466
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.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: [
16461
16467
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
16462
16468
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
16463
16469
  ] }) }) });
16464
16470
  }
16465
16471
  function TestRunErrorBanner({ error, className }) {
16466
- const { copy } = _chunkXVFM6SJAcjs.useCopyToClipboard.call(void 0, { successDescription: "Error message copied to clipboard" });
16472
+ const { copy } = _chunkE64HPPRHcjs.useCopyToClipboard.call(void 0, { successDescription: "Error message copied to clipboard" });
16467
16473
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
16468
16474
  "div",
16469
16475
  {
@@ -16940,7 +16946,7 @@ function TicketInfoSection({
16940
16946
  expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
16941
16947
  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" }) }),
16942
16948
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
16943
- description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.SimpleMarkdownRenderer, { content: description }),
16949
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.SimpleMarkdownRenderer, { content: description }),
16944
16950
  attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
16945
16951
  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, _chunkHY6BCZH7cjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
16946
16952
  (notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17381,8 +17387,22 @@ function PhotoWall({
17381
17387
  }, [images, requestWidth, inScope]);
17382
17388
  const drawnWidth = _nullishCoalesce(requestWidth, () => ( void 0));
17383
17389
  const drawnUrl = _react.useCallback.call(void 0, (url) => drawnWidth ? _chunkE76ONBKFcjs.resizedImageUrl.call(void 0, url, drawnWidth) : url, [drawnWidth]);
17384
- const urls = _react.useMemo.call(void 0, () => unique.map((image) => drawnUrl(image.url)), [unique, drawnUrl]);
17385
- const orientations = usePhotoOrientations(urls);
17390
+ const known = _react.useMemo.call(void 0, () => {
17391
+ const byUrl = /* @__PURE__ */ new Map();
17392
+ for (const image of unique) {
17393
+ if (image.width && image.height) byUrl.set(drawnUrl(image.url), photoOrientation(image.width, image.height));
17394
+ }
17395
+ return byUrl;
17396
+ }, [unique, drawnUrl]);
17397
+ const urls = _react.useMemo.call(void 0,
17398
+ () => unique.map((image) => drawnUrl(image.url)).filter((url) => !known.has(url)),
17399
+ [unique, drawnUrl, known]
17400
+ );
17401
+ const probed = usePhotoOrientations(urls);
17402
+ const orientations = _react.useMemo.call(void 0, () => {
17403
+ if (urls.length === 0) return known;
17404
+ return probed ? new Map([...known, ...probed]) : null;
17405
+ }, [urls, known, probed]);
17386
17406
  const layout = _react.useMemo.call(void 0, () => {
17387
17407
  if (!orientations) return null;
17388
17408
  const photos = unique.flatMap((image) => {
@@ -17409,7 +17429,7 @@ function PhotoWall({
17409
17429
  gap: COLUMN_GAP_PX
17410
17430
  };
17411
17431
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootRef, "aria-hidden": "true", className: _chunk65VVJSQZcjs.cn.call(void 0, "grid overflow-hidden", className), style: gridStyle, children: columnsToDraw ? columnsToDraw.map((column, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17412
- _chunkILZEXCJHcjs.MarqueeWall,
17432
+ _chunkKWZ62LPZcjs.MarqueeWall,
17413
17433
  {
17414
17434
  axis: "y",
17415
17435
  reverse: index % 2 === 1,
@@ -17536,9 +17556,9 @@ function LazyMount({
17536
17556
  placeholder = null,
17537
17557
  className,
17538
17558
  style,
17539
- rootMargin = _chunkCW3ML76Ucjs.NEAR_VIEWPORT_ROOT_MARGIN
17559
+ rootMargin = _chunkNTPX5GXIcjs.NEAR_VIEWPORT_ROOT_MARGIN
17540
17560
  }) {
17541
- const { ref, isNear } = _chunkCW3ML76Ucjs.useNearViewport.call(void 0, rootMargin);
17561
+ const { ref, isNear } = _chunkNTPX5GXIcjs.useNearViewport.call(void 0, rootMargin);
17542
17562
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className, style, children: isNear ? children : placeholder });
17543
17563
  }
17544
17564
 
@@ -17956,7 +17976,7 @@ var TRIAL_TERM_ICONS = {
17956
17976
  };
17957
17977
  var DEFAULT_TRIAL_TERMS = ["cancel", "length", "noContract"];
17958
17978
  function trialBenefits(trialDays, terms = DEFAULT_TRIAL_TERMS) {
17959
- const labels = _chunkBPAYT72Lcjs.trialLabels.call(void 0, trialDays);
17979
+ const labels = _chunkBTVO676Bcjs.trialLabels.call(void 0, trialDays);
17960
17980
  return terms.flatMap((term) => {
17961
17981
  const label = labels[term];
17962
17982
  return label ? [{ icon: TRIAL_TERM_ICONS[term], label }] : [];
@@ -18211,7 +18231,7 @@ function SnapCarousel({
18211
18231
  }, [count, slideStep]);
18212
18232
  const canAutoAdvance = autoAdvanceMs > 0 && count > 1;
18213
18233
  const playing = auto.playing && canAutoAdvance;
18214
- const ranMs = _chunkXVFM6SJAcjs.useResumableTimeout.call(void 0, {
18234
+ const ranMs = _chunkE64HPPRHcjs.useResumableTimeout.call(void 0, {
18215
18235
  running: playing,
18216
18236
  durationMs: autoAdvanceMs,
18217
18237
  resetKey: index,
@@ -18595,10 +18615,10 @@ function AccountDetailsFields({
18595
18615
  onKeyDown,
18596
18616
  layout = "stacked"
18597
18617
  }) {
18598
- const firstNameErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _371 => _371.firstName]), firstName);
18599
- const lastNameErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _372 => _372.lastName]), lastName);
18600
- const passwordErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _373 => _373.password]), password);
18601
- const confirmErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _374 => _374.confirmPassword]), confirmPassword);
18618
+ const firstNameErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _371 => _371.firstName]), firstName);
18619
+ const lastNameErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _372 => _372.lastName]), lastName);
18620
+ const passwordErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _373 => _373.password]), password);
18621
+ const confirmErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _374 => _374.confirmPassword]), confirmPassword);
18602
18622
  const names = [
18603
18623
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18604
18624
  _chunkYXDHVHB2cjs.Input,
@@ -18855,7 +18875,7 @@ function SsoProviderButtons({
18855
18875
  // where a long organization name would otherwise push the label out of a phone-width
18856
18876
  // button. `block` over its inline-flex, because an ellipsis only renders on a block box.
18857
18877
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18858
- _chunk5V7BIUGAcjs.StatusBadge,
18878
+ _chunkY3EBUFX4cjs.StatusBadge,
18859
18879
  {
18860
18880
  text: tag,
18861
18881
  variant: "button",
@@ -18914,7 +18934,7 @@ function CompleteAccountForm({
18914
18934
  ),
18915
18935
  children: [
18916
18936
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
18917
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
18937
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
18918
18938
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
18919
18939
  ] }),
18920
18940
  ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -19045,9 +19065,9 @@ function CreateOrganizationForm({
19045
19065
  }) {
19046
19066
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
19047
19067
  const fieldsDisabled = disabled || loading;
19048
- const emailErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _376 => _376.email]), _nullishCoalesce(email, () => ( "")));
19049
- const orgNameErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _377 => _377.organizationName]), organizationName);
19050
- const domainErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _378 => _378.domain]), domain);
19068
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _376 => _376.email]), _nullishCoalesce(email, () => ( "")));
19069
+ const orgNameErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _377 => _377.organizationName]), organizationName);
19070
+ const domainErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _378 => _378.domain]), domain);
19051
19071
  const handleKeyDown = (event) => {
19052
19072
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19053
19073
  onSubmit();
@@ -19062,7 +19082,7 @@ function CreateOrganizationForm({
19062
19082
  ),
19063
19083
  children: [
19064
19084
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
19065
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19085
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19066
19086
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19067
19087
  ] }),
19068
19088
  email === void 0 ? null : emailReadOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYXDHVHB2cjs.Input, { type: "email", label: emailReadOnlyLabel, value: email, readOnly: true, disabled: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19203,7 +19223,7 @@ function InviteLinkInvalidModal({
19203
19223
  ),
19204
19224
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full max-w-[600px] flex-col gap-[var(--spacing-system-l)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-xl)]", children: [
19205
19225
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-mf)]", children: [
19206
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "flex-1 tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19226
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "flex-1 tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19207
19227
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19208
19228
  "button",
19209
19229
  {
@@ -19266,7 +19286,7 @@ function LoginForm({
19266
19286
  }) {
19267
19287
  const fieldDisabled = disabled || loading;
19268
19288
  const providersDisabled = fieldDisabled || ssoDisabled;
19269
- const emailErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _385 => _385.email]), email);
19289
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _385 => _385.email]), email);
19270
19290
  const handleKeyDown = (event) => {
19271
19291
  if (event.key !== "Enter" || event.repeat || fieldDisabled) return;
19272
19292
  if (onSubmitClick) {
@@ -19284,7 +19304,7 @@ function LoginForm({
19284
19304
  ),
19285
19305
  children: [
19286
19306
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
19287
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19307
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19288
19308
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19289
19309
  ] }),
19290
19310
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19410,7 +19430,7 @@ function NoAccountNotice({
19410
19430
  ),
19411
19431
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full max-w-[600px] flex-col gap-[var(--spacing-system-l)] rounded-md border border-ods-border bg-ods-card p-[var(--spacing-system-xl)]", children: [
19412
19432
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
19413
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19433
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19414
19434
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: description })
19415
19435
  ] }),
19416
19436
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "outline", fullWidth: true, onClick: onBackToLogin, children: backLabel })
@@ -19443,8 +19463,8 @@ function OpenFrameSsoLoginForm({
19443
19463
  className
19444
19464
  }) {
19445
19465
  const fieldsDisabled = disabled || loading;
19446
- const emailErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _389 => _389.email]), email);
19447
- const passwordErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _390 => _390.password]), password);
19466
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _389 => _389.email]), email);
19467
+ const passwordErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _390 => _390.password]), password);
19448
19468
  const handleKeyDown = (event) => {
19449
19469
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19450
19470
  onSubmit();
@@ -19459,7 +19479,7 @@ function OpenFrameSsoLoginForm({
19459
19479
  ),
19460
19480
  children: [
19461
19481
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
19462
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19482
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19463
19483
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19464
19484
  ] }),
19465
19485
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19549,7 +19569,7 @@ function OpenFrameSsoSignUpForm({
19549
19569
  className
19550
19570
  }) {
19551
19571
  const fieldsDisabled = disabled || loading;
19552
- const emailErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _391 => _391.email]), email);
19572
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _391 => _391.email]), email);
19553
19573
  const handleKeyDown = (event) => {
19554
19574
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19555
19575
  onSubmit();
@@ -19564,7 +19584,7 @@ function OpenFrameSsoSignUpForm({
19564
19584
  ),
19565
19585
  children: [
19566
19586
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xs)]", children: [
19567
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19587
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19568
19588
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19569
19589
  ] }),
19570
19590
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19654,8 +19674,8 @@ function PasswordResetForm({
19654
19674
  className
19655
19675
  }) {
19656
19676
  const fieldsDisabled = disabled || loading;
19657
- const passwordErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _392 => _392.password]), password);
19658
- const confirmErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _393 => _393.confirmPassword]), confirmPassword);
19677
+ const passwordErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _392 => _392.password]), password);
19678
+ const confirmErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _393 => _393.confirmPassword]), confirmPassword);
19659
19679
  const handleKeyDown = (event) => {
19660
19680
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19661
19681
  onSubmit();
@@ -19670,7 +19690,7 @@ function PasswordResetForm({
19670
19690
  ),
19671
19691
  children: [
19672
19692
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
19673
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19693
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19674
19694
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19675
19695
  ] }),
19676
19696
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19787,7 +19807,7 @@ function SsoJoinForm({
19787
19807
  ),
19788
19808
  children: [
19789
19809
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
19790
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunk5V7BIUGAcjs.accentSentenceMarks.call(void 0, title) }),
19810
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkY3EBUFX4cjs.accentSentenceMarks.call(void 0, title) }),
19791
19811
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19792
19812
  ] }),
19793
19813
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-m)]", children: [
@@ -20049,7 +20069,7 @@ function ChangelogManager({
20049
20069
  ),
20050
20070
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: hasContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-primary text-h6", children: entry.title }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "italic text-ods-text-secondary text-h6", children: "New entry (click to edit)" }) }),
20051
20071
  tagOptions && tagLabelOf(entry.tag) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20052
- _chunk5V7BIUGAcjs.StatusBadge,
20072
+ _chunkY3EBUFX4cjs.StatusBadge,
20053
20073
  {
20054
20074
  variant: "button",
20055
20075
  singleLine: true,
@@ -20396,11 +20416,11 @@ function EntityTagBadgesSkeleton({
20396
20416
  i >= count && "content-md:hidden"
20397
20417
  ),
20398
20418
  "data-loading-item": true,
20399
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.StatusBadgeSkeleton, { variant: "card", className: _chunk65VVJSQZcjs.cn.call(void 0, "border", _nullishCoalesce(itemClassName, () => ( TAG_SKELETON_WIDTH_CLASS))) })
20419
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.StatusBadgeSkeleton, { variant: "card", className: _chunk65VVJSQZcjs.cn.call(void 0, "border", _nullishCoalesce(itemClassName, () => ( TAG_SKELETON_WIDTH_CLASS))) })
20400
20420
  },
20401
20421
  i
20402
20422
  )),
20403
- overflow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TAG_ITEM_CLASS, "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.StatusBadgeSkeleton, { variant: "card", className: _chunk65VVJSQZcjs.cn.call(void 0, "border", OVERFLOW_BADGE_SKELETON_CLASS) }) })
20423
+ overflow && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TAG_ITEM_CLASS, "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.StatusBadgeSkeleton, { variant: "card", className: _chunk65VVJSQZcjs.cn.call(void 0, "border", OVERFLOW_BADGE_SKELETON_CLASS) }) })
20404
20424
  ] });
20405
20425
  }
20406
20426
  function EntityTagBadges({
@@ -20437,7 +20457,7 @@ function EntityTagBadges({
20437
20457
  const label = (tag.name || "").toUpperCase();
20438
20458
  if (basePath && tag.slug) {
20439
20459
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: `${basePath}?tags=${tag.slug}`, className: itemClass(index), "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20440
- _chunk5V7BIUGAcjs.StatusBadge,
20460
+ _chunkY3EBUFX4cjs.StatusBadge,
20441
20461
  {
20442
20462
  text: label,
20443
20463
  variant: "card",
@@ -20445,7 +20465,7 @@ function EntityTagBadges({
20445
20465
  }
20446
20466
  ) }, key);
20447
20467
  }
20448
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: itemClass(index), "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }) }, key);
20468
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: itemClass(index), "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }) }, key);
20449
20469
  }),
20450
20470
  phoneOverflow === overflow ? overflow > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OverflowBadge, { count: overflow }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
20451
20471
  phoneOverflow > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OverflowBadge, { count: phoneOverflow, className: "content-md:hidden" }),
@@ -20454,7 +20474,7 @@ function EntityTagBadges({
20454
20474
  ] });
20455
20475
  }
20456
20476
  function OverflowBadge({ count, className }) {
20457
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, TAG_ITEM_CLASS, className), "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.StatusBadge, { text: `+${count}`, variant: "card", className: _chunk65VVJSQZcjs.cn.call(void 0, BADGE_CLASS, "text-ods-text-secondary") }) });
20477
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, TAG_ITEM_CLASS, className), "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.StatusBadge, { text: `+${count}`, variant: "card", className: _chunk65VVJSQZcjs.cn.call(void 0, BADGE_CLASS, "text-ods-text-secondary") }) });
20458
20478
  }
20459
20479
 
20460
20480
  // src/components/features/error-boundary.tsx
@@ -20549,7 +20569,7 @@ var SectionButton = ({
20549
20569
  }
20550
20570
  ),
20551
20571
  section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20552
- _chunk5V7BIUGAcjs.StatusBadge,
20572
+ _chunkY3EBUFX4cjs.StatusBadge,
20553
20573
  {
20554
20574
  text: section.badge.text,
20555
20575
  variant: section.badge.variant || "button",
@@ -20568,7 +20588,7 @@ var SectionButton = ({
20568
20588
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-wrap items-start gap-2", children: [
20569
20589
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, titleClasses, "text-h3"), style: { textAlign: "left" }, children: section.title }),
20570
20590
  section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20571
- _chunk5V7BIUGAcjs.StatusBadge,
20591
+ _chunkY3EBUFX4cjs.StatusBadge,
20572
20592
  {
20573
20593
  text: section.badge.text,
20574
20594
  variant: section.badge.variant || "button",
@@ -21633,15 +21653,15 @@ function useLoading() {
21633
21653
 
21634
21654
 
21635
21655
  function isAlreadyThere(file, existing) {
21636
- const key = _chunk5V7BIUGAcjs.mediaNameKey.call(void 0, file.name);
21656
+ const key = _chunkY3EBUFX4cjs.mediaNameKey.call(void 0, file.name);
21637
21657
  if (!key) return false;
21638
21658
  return existing.some(
21639
- (item) => (item.title ? _chunk5V7BIUGAcjs.mediaNameKey.call(void 0, item.title) === key : false) || (item.media_url ? _chunk5V7BIUGAcjs.mediaNameKey.call(void 0, item.media_url) === key : false)
21659
+ (item) => (item.title ? _chunkY3EBUFX4cjs.mediaNameKey.call(void 0, item.title) === key : false) || (item.media_url ? _chunkY3EBUFX4cjs.mediaNameKey.call(void 0, item.media_url) === key : false)
21640
21660
  );
21641
21661
  }
21642
21662
  var isFileDrag = (event) => Array.from(event.dataTransfer.types).includes("Files");
21643
- var isVideoItem = (item) => _chunk5V7BIUGAcjs.isVideoMedia.call(void 0, item) || item.media_type === "demo";
21644
- var MEDIA_KIND_ACCEPT = { image: _chunk5V7BIUGAcjs.IMAGE_FILE_ACCEPT, video: "video/*", both: _chunk5V7BIUGAcjs.MEDIA_FILE_ACCEPT };
21663
+ var isVideoItem = (item) => _chunkY3EBUFX4cjs.isVideoMedia.call(void 0, item) || item.media_type === "demo";
21664
+ var MEDIA_KIND_ACCEPT = { image: _chunkY3EBUFX4cjs.IMAGE_FILE_ACCEPT, video: "video/*", both: _chunkY3EBUFX4cjs.MEDIA_FILE_ACCEPT };
21645
21665
  var MEDIA_KIND_COPY = {
21646
21666
  image: { noun: "pictures", refusal: "Not a picture" },
21647
21667
  video: { noun: "videos", refusal: "Not a video" },
@@ -21665,12 +21685,12 @@ function useMediaIntake({ existing, onUpload, onUploaded, kinds = "both" }) {
21665
21685
  const seen = /* @__PURE__ */ new Set();
21666
21686
  const accepted = [];
21667
21687
  for (const file of files) {
21668
- const mediaType = _chunk5V7BIUGAcjs.fileMediaType.call(void 0, file);
21688
+ const mediaType = _chunkY3EBUFX4cjs.fileMediaType.call(void 0, file);
21669
21689
  if (!mediaType || kinds !== "both" && mediaType !== kinds) {
21670
21690
  unsupported.push(file.name);
21671
21691
  continue;
21672
21692
  }
21673
- const contentKey = await _chunk5V7BIUGAcjs.fileContentKey.call(void 0, file).catch(() => `${file.name}:${file.size}`);
21693
+ const contentKey = await _chunkY3EBUFX4cjs.fileContentKey.call(void 0, file).catch(() => `${file.name}:${file.size}`);
21674
21694
  if (seen.has(contentKey) || isAlreadyThere(file, existingRef.current)) {
21675
21695
  duplicates.push(file.name);
21676
21696
  continue;
@@ -21851,7 +21871,7 @@ function MediaGalleryManager({
21851
21871
  className: _chunk65VVJSQZcjs.cn.call(void 0, "grid grid-cols-1 gap-4 content-md:grid-cols-2", columns === 3 && "content-lg:grid-cols-3"),
21852
21872
  children: [
21853
21873
  media.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21854
- _chunk5V7BIUGAcjs.Card,
21874
+ _chunkY3EBUFX4cjs.Card,
21855
21875
  {
21856
21876
  className: "group relative border-ods-border transition-colors hover:border-ods-accent/30",
21857
21877
  draggable: true,
@@ -21876,7 +21896,7 @@ function MediaGalleryManager({
21876
21896
  ) }),
21877
21897
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: isVideoItem(item) ? (
21878
21898
  // <Video> SSOT (MuxPlayer): plays Mux HLS and MP4 alike; fit="cover" crops to the cell.
21879
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
21899
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
21880
21900
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21881
21901
  _chunkE76ONBKFcjs.next_image_default,
21882
21902
  {
@@ -21928,7 +21948,7 @@ function MediaGalleryManager({
21928
21948
  },
21929
21949
  _nullishCoalesce(item.id, () => ( `${item.media_url}-${index}`))
21930
21950
  )),
21931
- pending.map((name, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "border-ods-border", "aria-busy": "true", children: [
21951
+ pending.map((name, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3EBUFX4cjs.Card, { className: "border-ods-border", "aria-busy": "true", children: [
21932
21952
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex aspect-video items-center justify-center rounded-lg bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) }),
21933
21953
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate p-3 text-ods-text-secondary text-h6", children: name })
21934
21954
  ] }, `pending-${name}-${index}`))
@@ -22282,7 +22302,7 @@ var MODEL_TOKEN_RATES_COPY = {
22282
22302
  empty: "No token rates are in effect right now."
22283
22303
  };
22284
22304
  function providerMark(providerType, stated, className) {
22285
- const Mark = _chunk5P4TDV7Vcjs.findIcon.call(void 0, _chunkBPAYT72Lcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
22305
+ const Mark = _chunk5P4TDV7Vcjs.findIcon.call(void 0, _chunkBTVO676Bcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
22286
22306
  return Mark ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Mark, { className }) : void 0;
22287
22307
  }
22288
22308
  var PAD_X = "px-[var(--spacing-system-s)]";
@@ -22300,7 +22320,7 @@ var UNIT_LINE_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
22300
22320
  var TABS_ROW_CLASS = _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0 border-b border-ods-border py-[var(--spacing-system-xs)]", PAD_X);
22301
22321
  var NUMBER_CELL = "w-16 shrink-0 whitespace-nowrap text-right tabular-nums";
22302
22322
  function useProviderGroup(rates) {
22303
- const groups = _chunkBPAYT72Lcjs.groupTokenRatesByProvider.call(void 0, rates);
22323
+ const groups = _chunkBTVO676Bcjs.groupTokenRatesByProvider.call(void 0, rates);
22304
22324
  const [picked, setPicked] = _react.useState.call(void 0, null);
22305
22325
  return { groups, group: _nullishCoalesce(groups.find((candidate) => candidate.providerType === picked), () => ( groups[0])), setPicked };
22306
22326
  }
@@ -22311,7 +22331,7 @@ function ProviderTabs({
22311
22331
  className
22312
22332
  }) {
22313
22333
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22314
- _chunkILZEXCJHcjs.TabSelector,
22334
+ _chunkKWZ62LPZcjs.TabSelector,
22315
22335
  {
22316
22336
  variant: "secondary",
22317
22337
  scrollable: true,
@@ -22319,7 +22339,7 @@ function ProviderTabs({
22319
22339
  onValueChange,
22320
22340
  items: groups.map((candidate) => ({
22321
22341
  id: candidate.providerType,
22322
- label: _chunkBPAYT72Lcjs.tokenRateProviderLabel.call(void 0, candidate.providerType, _optionalChain([candidate, 'access', _455 => _455.rates, 'access', _456 => _456[0], 'optionalAccess', _457 => _457.providerLabel])),
22342
+ label: _chunkBTVO676Bcjs.tokenRateProviderLabel.call(void 0, candidate.providerType, _optionalChain([candidate, 'access', _455 => _455.rates, 'access', _456 => _456[0], 'optionalAccess', _457 => _457.providerLabel])),
22323
22343
  icon: providerMark(candidate.providerType, _optionalChain([candidate, 'access', _458 => _458.rates, 'access', _459 => _459[0], 'optionalAccess', _460 => _460.providerIcon]), "size-full")
22324
22344
  })),
22325
22345
  className
@@ -22397,8 +22417,8 @@ function ModelTokenRatesTable({ rates }) {
22397
22417
  ] }),
22398
22418
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "rowgroup", className: "min-h-0 flex-1 overflow-y-auto", children: group.rates.map((rate) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { role: "row", className: BODY_ROW_CLASS, children: [
22399
22419
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "rowheader", className: "min-w-0 flex-1 truncate", children: rate.displayName || rate.modelName }),
22400
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBPAYT72Lcjs.formatTokenRate.call(void 0, rate.inputTokenRate) }),
22401
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBPAYT72Lcjs.formatTokenRate.call(void 0, rate.outputTokenRate) })
22420
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, rate.inputTokenRate) }),
22421
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, rate.outputTokenRate) })
22402
22422
  ] }, rate.modelName)) })
22403
22423
  ] }),
22404
22424
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: UNIT_LINE_CLASS, children: MODEL_TOKEN_RATES_COPY.unit })
@@ -22448,7 +22468,7 @@ function modelOption(rate) {
22448
22468
  return {
22449
22469
  label: rate.displayName || rate.modelName,
22450
22470
  value: rate.modelName,
22451
- description: _chunkBPAYT72Lcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
22471
+ description: _chunkBTVO676Bcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
22452
22472
  icon: providerMark(rate.providerType, rate.providerIcon, "size-full text-ods-text-secondary")
22453
22473
  };
22454
22474
  }
@@ -22502,8 +22522,8 @@ function ModelTokenExchange({
22502
22522
  const [chosen, setChosen] = _react.useState.call(void 0, null);
22503
22523
  const balance = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(chosen, () => ( defaultAmount)), () => ( _optionalChain([tokenPrice, 'optionalAccess', _461 => _461.tokens]))), () => ( MODEL_TOKEN_EXCHANGE_BALANCE));
22504
22524
  const max = Math.max(amountRange.max, balance, ...presets.map((preset) => preset.tokens));
22505
- const tokens = _chunkBPAYT72Lcjs.formatTokenAmount.call(void 0, balance);
22506
- const cost = _chunkBPAYT72Lcjs.tokenCost.call(void 0, balance, tokenPrice);
22525
+ const tokens = _chunkBTVO676Bcjs.formatTokenAmount.call(void 0, balance);
22526
+ const cost = _chunkBTVO676Bcjs.tokenCost.call(void 0, balance, tokenPrice);
22507
22527
  const balancePrice = cost === null ? null : _chunkHY6BCZH7cjs.formatPrice.call(void 0, cost);
22508
22528
  const model = rate ? rate.displayName || rate.modelName : "";
22509
22529
  const options = models.map(modelOption);
@@ -22545,7 +22565,7 @@ function ModelTokenExchange({
22545
22565
  variant: preset.tokens === balance ? "accent" : "outline",
22546
22566
  size: "small",
22547
22567
  onClick: () => setChosen(preset.tokens),
22548
- children: copy.buy.preset(_chunkBPAYT72Lcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
22568
+ children: copy.buy.preset(_chunkBTVO676Bcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
22549
22569
  },
22550
22570
  preset.label
22551
22571
  )) })
@@ -22562,7 +22582,7 @@ function ModelTokenExchange({
22562
22582
  const stated = _nullishCoalesce(models.find((option) => option.providerType === providerType), () => ( (_optionalChain([rate, 'optionalAccess', _462 => _462.providerType]) === providerType ? rate : null)));
22563
22583
  return {
22564
22584
  id: providerType,
22565
- name: _chunkBPAYT72Lcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _463 => _463.providerLabel])),
22585
+ name: _chunkBTVO676Bcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _463 => _463.providerLabel])),
22566
22586
  icon: providerMark(providerType, _optionalChain([stated, 'optionalAccess', _464 => _464.providerIcon]), "size-8 text-ods-text-secondary")
22567
22587
  };
22568
22588
  }),
@@ -22601,7 +22621,7 @@ function ModelTokenExchange({
22601
22621
  {
22602
22622
  size: "plain",
22603
22623
  loading,
22604
- figure: _chunkBPAYT72Lcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _469 => _469.inputTokenRate])),
22624
+ figure: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _469 => _469.inputTokenRate])),
22605
22625
  words: copy.charge.input
22606
22626
  }
22607
22627
  ),
@@ -22610,7 +22630,7 @@ function ModelTokenExchange({
22610
22630
  {
22611
22631
  size: "plain",
22612
22632
  loading,
22613
- figure: _chunkBPAYT72Lcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _470 => _470.outputTokenRate])),
22633
+ figure: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _470 => _470.outputTokenRate])),
22614
22634
  words: copy.charge.output
22615
22635
  }
22616
22636
  )
@@ -22622,9 +22642,9 @@ function ModelTokenExchange({
22622
22642
  className: "mt-auto flex flex-col rounded-md border border-ods-accent bg-ods-bg p-[var(--spacing-system-mf)]",
22623
22643
  children: [
22624
22644
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[2lh] text-ods-text-secondary text-h4", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-full max-w-xs" }) : copy.charge.so(_nullishCoalesce(balancePrice, () => ( copy.buy.tokens(tokens))), model) }),
22625
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] whitespace-nowrap tabular-nums text-ods-text-primary text-h1", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-40" }) : _chunkBPAYT72Lcjs.formatTokenAmount.call(void 0, _chunkBPAYT72Lcjs.tokensForBalance.call(void 0, balance, rate.inputTokenRate)) }),
22645
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] whitespace-nowrap tabular-nums text-ods-text-primary text-h1", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-40" }) : _chunkBTVO676Bcjs.formatTokenAmount.call(void 0, _chunkBTVO676Bcjs.tokensForBalance.call(void 0, balance, rate.inputTokenRate)) }),
22626
22646
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-primary text-h3", children: copy.charge.read }),
22627
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-secondary text-h4", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-48" }) : copy.charge.orWritten(_chunkBPAYT72Lcjs.formatTokenAmount.call(void 0, _chunkBPAYT72Lcjs.tokensForBalance.call(void 0, balance, rate.outputTokenRate))) })
22647
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-secondary text-h4", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXFRBEXQNcjs.TextLineSkeleton, { type: "inherit", as: "span", className: "w-48" }) : copy.charge.orWritten(_chunkBTVO676Bcjs.formatTokenAmount.call(void 0, _chunkBTVO676Bcjs.tokensForBalance.call(void 0, balance, rate.outputTokenRate))) })
22628
22648
  ]
22629
22649
  }
22630
22650
  )
@@ -23055,7 +23075,7 @@ function PlatformFilterComponent({
23055
23075
  variant: selectedPlatform === platform.value ? "accent" : "outline",
23056
23076
  size,
23057
23077
  onClick: () => onPlatformChange(platform.value),
23058
- leftIcon: showIcons ? _chunkTZ4GKUO2cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
23078
+ leftIcon: showIcons ? _chunkCZIMISARcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
23059
23079
  className: "text-h3",
23060
23080
  children: platform.label
23061
23081
  },
@@ -23163,14 +23183,14 @@ var ConfidenceBadge = ({
23163
23183
  size = "sm",
23164
23184
  className
23165
23185
  }) => {
23166
- const level = _chunkBPAYT72Lcjs.getConfidenceLevel.call(void 0, confidence);
23186
+ const level = _chunkBTVO676Bcjs.getConfidenceLevel.call(void 0, confidence);
23167
23187
  if (level === "none") {
23168
23188
  return null;
23169
23189
  }
23170
- const label = _chunkBPAYT72Lcjs.getConfidenceLabel.call(void 0, confidence);
23171
- const borderClass = _chunkBPAYT72Lcjs.getConfidenceBorderClass.call(void 0, confidence);
23172
- const textClass = _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence);
23173
- const bgClass = _chunkBPAYT72Lcjs.getConfidenceBgClass.call(void 0, confidence);
23190
+ const label = _chunkBTVO676Bcjs.getConfidenceLabel.call(void 0, confidence);
23191
+ const borderClass = _chunkBTVO676Bcjs.getConfidenceBorderClass.call(void 0, confidence);
23192
+ const textClass = _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence);
23193
+ const bgClass = _chunkBTVO676Bcjs.getConfidenceBgClass.call(void 0, confidence);
23174
23194
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23175
23195
  "span",
23176
23196
  {
@@ -23221,9 +23241,9 @@ function SEOEditorPreview({
23221
23241
  const [isUploading, setIsUploading] = _react.useState.call(void 0, false);
23222
23242
  const [fileInputRef, setFileInputRef] = _react.useState.call(void 0, null);
23223
23243
  const seoTitleLength = (seoTitle || "").length;
23224
- const seoTitleTooLong = seoTitleLength > _chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH;
23244
+ const seoTitleTooLong = seoTitleLength > _chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH;
23225
23245
  const seoDescriptionLength = (seoDescription || "").length;
23226
- const seoDescriptionTooLong = seoDescriptionLength > _chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH;
23246
+ const seoDescriptionTooLong = seoDescriptionLength > _chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH;
23227
23247
  const displayTitle = seoTitle.trim() || title || "Untitled";
23228
23248
  const displayDescription = seoDescription.trim() || summary || "No description";
23229
23249
  const hasOgImage = ogImageUrl.trim();
@@ -23248,10 +23268,10 @@ function SEOEditorPreview({
23248
23268
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
23249
23269
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
23250
23270
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23251
- _chunkBPAYT72Lcjs.Field,
23271
+ _chunkBTVO676Bcjs.Field,
23252
23272
  {
23253
23273
  label: "SEO Title",
23254
- error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH})` : null,
23274
+ error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH})` : null,
23255
23275
  labelExtras: aiConfidenceSeoTitle !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23256
23276
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
23257
23277
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConfidenceBadge, { confidence: aiConfidenceSeoTitle, showLabel: true, showPercentage: true, size: "sm" })
@@ -23266,7 +23286,7 @@ function SEOEditorPreview({
23266
23286
  children: [
23267
23287
  seoTitleLength,
23268
23288
  "/",
23269
- _chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH
23289
+ _chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH
23270
23290
  ]
23271
23291
  }
23272
23292
  ),
@@ -23277,7 +23297,7 @@ function SEOEditorPreview({
23277
23297
  value: seoTitle || "",
23278
23298
  onChange: (e) => onSeoTitleChange(e.target.value),
23279
23299
  disabled,
23280
- maxLength: _chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH,
23300
+ maxLength: _chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH,
23281
23301
  invalid: seoTitleTooLong,
23282
23302
  placeholder: "Enter SEO meta title...",
23283
23303
  className: "border-ods-border bg-ods-bg text-ods-text-primary"
@@ -23288,7 +23308,7 @@ function SEOEditorPreview({
23288
23308
  !seoTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-accent text-h6", children: "Auto-populated from title" })
23289
23309
  ] }),
23290
23310
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23291
- _chunkBPAYT72Lcjs.Field,
23311
+ _chunkBTVO676Bcjs.Field,
23292
23312
  {
23293
23313
  label: "SEO Keywords",
23294
23314
  labelExtras: aiConfidenceSeoKeywords !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -23320,10 +23340,10 @@ function SEOEditorPreview({
23320
23340
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
23321
23341
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
23322
23342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23323
- _chunkBPAYT72Lcjs.Field,
23343
+ _chunkBTVO676Bcjs.Field,
23324
23344
  {
23325
23345
  label: "SEO Description",
23326
- error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
23346
+ error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
23327
23347
  labelExtras: aiConfidenceSeoDescription !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23328
23348
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
23329
23349
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23346,7 +23366,7 @@ function SEOEditorPreview({
23346
23366
  children: [
23347
23367
  seoDescriptionLength,
23348
23368
  "/",
23349
- _chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH
23369
+ _chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH
23350
23370
  ]
23351
23371
  }
23352
23372
  ),
@@ -23357,7 +23377,7 @@ function SEOEditorPreview({
23357
23377
  value: seoDescription || "",
23358
23378
  onChange: (e) => onSeoDescriptionChange(e.target.value),
23359
23379
  disabled,
23360
- maxLength: _chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH,
23380
+ maxLength: _chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH,
23361
23381
  invalid: seoDescriptionTooLong,
23362
23382
  placeholder: "Enter SEO meta description...",
23363
23383
  className: _chunk65VVJSQZcjs.cn.call(void 0, "resize-none border-ods-border bg-ods-bg text-ods-text-primary", SEO_MEDIA_BOX_HEIGHT)
@@ -23426,7 +23446,7 @@ function SEOEditorPreview({
23426
23446
  {
23427
23447
  ref: setFileInputRef,
23428
23448
  type: "file",
23429
- accept: _chunk5V7BIUGAcjs.IMAGE_FILE_ACCEPT,
23449
+ accept: _chunkY3EBUFX4cjs.IMAGE_FILE_ACCEPT,
23430
23450
  onChange: handleImageUpload,
23431
23451
  className: "hidden",
23432
23452
  disabled: disabled || isUploading
@@ -23510,7 +23530,7 @@ function socialIcon(platform) {
23510
23530
  return _nullishCoalesce(_chunk5P4TDV7Vcjs.iconOf.call(void 0, SOCIAL_ICONS[platform]), () => ( void 0));
23511
23531
  }
23512
23532
  function renderSocialIcon(platform) {
23513
- const key = _nullishCoalesce(_chunkBPAYT72Lcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
23533
+ const key = _nullishCoalesce(_chunkBTVO676Bcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
23514
23534
  const icon = _nullishCoalesce(socialIcon(key), () => ( socialIcon("website")));
23515
23535
  return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5" }) : null;
23516
23536
  }
@@ -23597,7 +23617,7 @@ function SocialLinksManager({
23597
23617
  };
23598
23618
  const getIcon = (link, platform) => {
23599
23619
  const iconKey = _optionalChain([platform, 'optionalAccess', _480 => _480.icon_name]) || link.platform;
23600
- const key = _chunkBPAYT72Lcjs.normalizeSocialPlatform.call(void 0, iconKey);
23620
+ const key = _chunkBTVO676Bcjs.normalizeSocialPlatform.call(void 0, iconKey);
23601
23621
  if (!key) return null;
23602
23622
  const icon = socialIcon(key);
23603
23623
  return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
@@ -23733,7 +23753,7 @@ var StartWithOpenFrameButton = _react.forwardRef.call(void 0,
23733
23753
  className: _chunk65VVJSQZcjs.cn.call(void 0, modeClassName, className),
23734
23754
  style: customStyle,
23735
23755
  leftIcon: !loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJZLKYOBcjs.OpenframeLogoIcon, { secondaryColor: iconLowerPath, className: "h-5 w-5", color: iconUpperPath }) : void 0,
23736
- rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.StatusBadge, { text: "Beta", variant: "button", colorScheme: "yellow" }),
23756
+ rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.StatusBadge, { text: "Beta", variant: "button", colorScheme: "yellow" }),
23737
23757
  children
23738
23758
  }
23739
23759
  );
@@ -24060,11 +24080,11 @@ function WarningBlock({ title, icon = DEFAULT_ICON, children, className }) {
24060
24080
 
24061
24081
  function VideoBitesDisplay({
24062
24082
  bites,
24063
- title = _chunk5V7BIUGAcjs.DEFAULT_VIDEO_BITES_TITLE,
24083
+ title = _chunkY3EBUFX4cjs.DEFAULT_VIDEO_BITES_TITLE,
24064
24084
  filterPublished = true,
24065
24085
  showTitle = true
24066
24086
  }) {
24067
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
24087
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
24068
24088
  }
24069
24089
 
24070
24090
  // src/components/features/walkthrough-video.tsx
@@ -24094,7 +24114,7 @@ function WalkthroughVideo({
24094
24114
  onOpenChange,
24095
24115
  defaultOpen,
24096
24116
  defaultOpenPaused,
24097
- deepLinkParam = _chunkBPAYT72Lcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
24117
+ deepLinkParam = _chunkBTVO676Bcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
24098
24118
  autoPlayCard = false,
24099
24119
  label = "Play Demo Video",
24100
24120
  placement,
@@ -24111,7 +24131,7 @@ function WalkthroughVideo({
24111
24131
  const inline = placement === "inline";
24112
24132
  const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
24113
24133
  const dismissEnabled = dismissal !== false;
24114
- const storageKey = dismissEnabled && dismissal.storageKey || _chunkBPAYT72Lcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
24134
+ const storageKey = dismissEnabled && dismissal.storageKey || _chunkBTVO676Bcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
24115
24135
  const dismissalId = _optionalChain([video, 'optionalAccess', _486 => _486.id]) != null ? String(video.id) : "dismissed";
24116
24136
  const [mounted, setMounted] = _react.useState.call(void 0, false);
24117
24137
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
@@ -24123,7 +24143,7 @@ function WalkthroughVideo({
24123
24143
  let delayElapsed = false;
24124
24144
  let interacted = inline;
24125
24145
  const reveal = () => {
24126
- if (dismissEnabled && _chunkBPAYT72Lcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
24146
+ if (dismissEnabled && _chunkBTVO676Bcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
24127
24147
  setDismissed(true);
24128
24148
  return;
24129
24149
  }
@@ -24160,7 +24180,7 @@ function WalkthroughVideo({
24160
24180
  if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
24161
24181
  };
24162
24182
  }, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId, inline]);
24163
- const hydrated = _chunkILZEXCJHcjs.useIsHydrated.call(void 0, );
24183
+ const hydrated = _chunkKWZ62LPZcjs.useIsHydrated.call(void 0, );
24164
24184
  const previewSuppressed = _react.useMemo.call(void 0, () => {
24165
24185
  if (!hydrated) return false;
24166
24186
  try {
@@ -24410,7 +24430,7 @@ function WalkthroughVideo({
24410
24430
  (e) => {
24411
24431
  e.stopPropagation();
24412
24432
  pausePreviewNow();
24413
- if (dismissEnabled) _chunkBPAYT72Lcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
24433
+ if (dismissEnabled) _chunkBTVO676Bcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
24414
24434
  setDismissed(true);
24415
24435
  },
24416
24436
  [dismissEnabled, storageKey, dismissalId, pausePreviewNow]
@@ -24561,7 +24581,7 @@ function WalkthroughVideo({
24561
24581
  },
24562
24582
  children: [
24563
24583
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24564
- _chunk5V7BIUGAcjs.VideoHoverPreviewSurface,
24584
+ _chunkY3EBUFX4cjs.VideoHoverPreviewSurface,
24565
24585
  {
24566
24586
  url: video.mainVideoUrl || "",
24567
24587
  posterUrl: video.posterUrl ? _chunkE76ONBKFcjs.resizedImageUrl.call(void 0, video.posterUrl, CARD_POSTER_WIDTH_PX) : video.posterUrl,
@@ -24585,7 +24605,7 @@ function WalkthroughVideo({
24585
24605
  `card-${embedUrlKey}`
24586
24606
  ) }),
24587
24607
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24588
- _chunkILZEXCJHcjs.CardHitLayer,
24608
+ _chunkKWZ62LPZcjs.CardHitLayer,
24589
24609
  {
24590
24610
  label: video.title ? `${label}: ${video.title}` : label,
24591
24611
  onPointerDown: pausePreviewNow,
@@ -24701,7 +24721,7 @@ function WalkthroughVideo({
24701
24721
  children: [
24702
24722
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
24703
24723
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24704
- _chunk5V7BIUGAcjs.Video,
24724
+ _chunkY3EBUFX4cjs.Video,
24705
24725
  {
24706
24726
  kind: video.youtubeUrl ? "youtube" : "file",
24707
24727
  url: video.youtubeUrl || video.mainVideoUrl,
@@ -24757,7 +24777,7 @@ function useWalkthroughVideo(opts) {
24757
24777
  const { endpoint, initialData, enabled: enabledGiven = true, transformCaptionsUrl } = opts;
24758
24778
  const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
24759
24779
  const enabled = enabledGiven && !inScope;
24760
- const captions = _chunkILZEXCJHcjs.useCaptions.call(void 0, );
24780
+ const captions = _chunkKWZ62LPZcjs.useCaptions.call(void 0, );
24761
24781
  const query = _reactquery.useQuery.call(void 0, {
24762
24782
  queryKey: ["walkthrough-video", endpoint],
24763
24783
  enabled,
@@ -24955,7 +24975,7 @@ function VideoSourceSelector({
24955
24975
  }
24956
24976
  function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
24957
24977
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
24958
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Video, { kind: "file", url: videoUrl }) }),
24978
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "file", url: videoUrl }) }),
24959
24979
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24960
24980
  "button",
24961
24981
  {
@@ -25479,7 +25499,7 @@ function HighlightVideoSection({
25479
25499
  // Default simple preview — the <Video> SSOT (MuxPlayer) plays
25480
25500
  // MP4 and Mux HLS alike; aspect-video box reserves the height.
25481
25501
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
25482
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
25502
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
25483
25503
  onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25484
25504
  "button",
25485
25505
  {
@@ -25506,7 +25526,7 @@ function HighlightConfigSection({
25506
25526
  disabled = false,
25507
25527
  className = ""
25508
25528
  }) {
25509
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `space-y-3 rounded-lg border border-ods-border bg-ods-card p-4 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.Field, { label: "Target Duration", children: (f) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25529
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `space-y-3 rounded-lg border border-ods-border bg-ods-card p-4 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.Field, { label: "Target Duration", children: (f) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25510
25530
  _chunkV3W56L2Dcjs.Select,
25511
25531
  {
25512
25532
  value: targetDurationSeconds.toString(),
@@ -25607,7 +25627,7 @@ var AIStatusIndicator = ({
25607
25627
  }) => {
25608
25628
  const config = statusConfig[status];
25609
25629
  const displayText = message || config.label;
25610
- const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkBPAYT72Lcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
25630
+ const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkBTVO676Bcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
25611
25631
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk65VVJSQZcjs.cn.call(void 0, "inline-flex items-center gap-2 rounded-lg px-3 py-1.5", config.bgColor, className), children: [
25612
25632
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25613
25633
  _chunkUNFCRSYIcjs.SparklesIcon,
@@ -25615,7 +25635,7 @@ var AIStatusIndicator = ({
25615
25635
  size: 16,
25616
25636
  className: _chunk65VVJSQZcjs.cn.call(void 0,
25617
25637
  status === "loading" && _chunkXFRBEXQNcjs.LIVE_PULSE_CLASS,
25618
- confidence !== void 0 && status === "success" ? _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25638
+ confidence !== void 0 && status === "success" ? _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25619
25639
  )
25620
25640
  }
25621
25641
  ),
@@ -25624,7 +25644,7 @@ var AIStatusIndicator = ({
25624
25644
  {
25625
25645
  className: _chunk65VVJSQZcjs.cn.call(void 0,
25626
25646
  "text-h6",
25627
- confidence !== void 0 && status === "success" ? _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25647
+ confidence !== void 0 && status === "success" ? _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25628
25648
  ),
25629
25649
  children: displayText
25630
25650
  }
@@ -25634,8 +25654,8 @@ var AIStatusIndicator = ({
25634
25654
  {
25635
25655
  className: _chunk65VVJSQZcjs.cn.call(void 0,
25636
25656
  "rounded-full border px-2 py-0.5 text-h6",
25637
- _chunkBPAYT72Lcjs.getConfidenceBorderClass.call(void 0, confidence),
25638
- _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence)
25657
+ _chunkBTVO676Bcjs.getConfidenceBorderClass.call(void 0, confidence),
25658
+ _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence)
25639
25659
  ),
25640
25660
  children: confidenceLabel
25641
25661
  }
@@ -26562,7 +26582,7 @@ function PoliciesTable({
26562
26582
  cell: ({ row }) => row.original.href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26563
26583
  _chunkTF5D5MNOcjs.Button,
26564
26584
  {
26565
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, row.original.href),
26585
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, row.original.href),
26566
26586
  variant: "outline",
26567
26587
  size: "icon",
26568
26588
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -26888,7 +26908,7 @@ function TenantsTableView({
26888
26908
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26889
26909
  _chunkTF5D5MNOcjs.Button,
26890
26910
  {
26891
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, getHref(row.original)),
26911
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, getHref(row.original)),
26892
26912
  variant: "outline",
26893
26913
  size: "icon",
26894
26914
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -26966,13 +26986,13 @@ function WaitlistForm({
26966
26986
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
26967
26987
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
26968
26988
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
26969
- const { toast } = _chunkXVFM6SJAcjs.useToast.call(void 0, );
26970
- const { honeypotInputProps, getSignals, resetSignals } = _chunkXVFM6SJAcjs.useHumanitySignals.call(void 0, );
26989
+ const { toast } = _chunkE64HPPRHcjs.useToast.call(void 0, );
26990
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkE64HPPRHcjs.useHumanitySignals.call(void 0, );
26971
26991
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
26972
- const isClient = _chunkILZEXCJHcjs.useIsHydrated.call(void 0, );
26992
+ const isClient = _chunkKWZ62LPZcjs.useIsHydrated.call(void 0, );
26973
26993
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
26974
26994
  const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
26975
- const rescue = _chunkXVFM6SJAcjs.useFormRescue.call(void 0, {
26995
+ const rescue = _chunkE64HPPRHcjs.useFormRescue.call(void 0, {
26976
26996
  form: rescueForm,
26977
26997
  // The phone is reported as filled only; its value never leaves the form early.
26978
26998
  fieldNames: ["email", "phone"],
@@ -26984,7 +27004,7 @@ function WaitlistForm({
26984
27004
  _react.useEffect.call(void 0, () => {
26985
27005
  rescue.track({ email, phone }, null);
26986
27006
  }, [email, phone, rescue]);
26987
- const isMailDomainGeneric = _chunkBPAYT72Lcjs.hasGenericEmailDomain.call(void 0, email);
27007
+ const isMailDomainGeneric = _chunkBTVO676Bcjs.hasGenericEmailDomain.call(void 0, email);
26988
27008
  const [syncedDefaultEmail, setSyncedDefaultEmail] = _react.useState.call(void 0, defaultEmail);
26989
27009
  if (syncedDefaultEmail !== defaultEmail) {
26990
27010
  setSyncedDefaultEmail(defaultEmail);
@@ -27018,7 +27038,7 @@ function WaitlistForm({
27018
27038
  setShowConsentError(true);
27019
27039
  return;
27020
27040
  }
27021
- const finalPhone = phone ? _chunkBPAYT72Lcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
27041
+ const finalPhone = phone ? _chunkBTVO676Bcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
27022
27042
  try {
27023
27043
  await onRegister(email, finalPhone, getSignals(), rescue.submitFields());
27024
27044
  rescue.complete();
@@ -27741,7 +27761,7 @@ var typeColorByVariant = {
27741
27761
  error: "text-ods-error"
27742
27762
  };
27743
27763
  var progressColorByVariant2 = {
27744
- ..._chunkXVFM6SJAcjs.progressColorByVariant,
27764
+ ..._chunkE64HPPRHcjs.progressColorByVariant,
27745
27765
  default: "bg-ods-accent",
27746
27766
  info: "bg-ods-accent"
27747
27767
  };
@@ -27820,7 +27840,7 @@ function NotificationTile({
27820
27840
  height: 16,
27821
27841
  unoptimized: true
27822
27842
  }
27823
- ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkXVFM6SJAcjs.dotColorByVariant[accentVariant]) }))) }),
27843
+ ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkE64HPPRHcjs.dotColorByVariant[accentVariant]) }))) }),
27824
27844
  type ? lockscreen ? (
27825
27845
  // A phone names the sender in plain words and never cuts them.
27826
27846
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 break-words text-ods-text-secondary text-h6", children: type })
@@ -28149,7 +28169,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
28149
28169
  ] });
28150
28170
  }
28151
28171
  function DesktopNotificationsToggleRow({ checked, onChange }) {
28152
- const { supported, permission, request } = _chunkXVFM6SJAcjs.useNotificationPermission.call(void 0, );
28172
+ const { supported, permission, request } = _chunkE64HPPRHcjs.useNotificationPermission.call(void 0, );
28153
28173
  if (!supported) return null;
28154
28174
  const blocked = permission === "denied";
28155
28175
  const handleChange = async (value) => {
@@ -29157,7 +29177,7 @@ function getDeviceStatusConfig(status) {
29157
29177
  }
29158
29178
  }
29159
29179
  function getDeviceOperatingSystem(osType) {
29160
- return _chunkBPAYT72Lcjs.getOSPlatformId.call(void 0, osType);
29180
+ return _chunkBTVO676Bcjs.getOSPlatformId.call(void 0, osType);
29161
29181
  }
29162
29182
 
29163
29183
  // src/components/features/devices/device-statuses.ts
@@ -30528,7 +30548,7 @@ function DevicesList({
30528
30548
  const handleClearAll = _react.useCallback.call(void 0, () => patch({ search: "", tags: [] }), [patch]);
30529
30549
  const narrowed = isNarrowed(narrowing);
30530
30550
  const isEmptyState = !isLoading && !isPending && !narrowed && devices.length === 0;
30531
- const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } = _chunkXVFM6SJAcjs.useStickyToolbar.call(void 0, );
30551
+ const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } = _chunkE64HPPRHcjs.useStickyToolbar.call(void 0, );
30532
30552
  const headerOffset = _nullishCoalesce(stickyHeaderOffset, () => ( (stickyToolbar ? measuredOffset : void 0)));
30533
30553
  const actionsColumn = _react.useMemo.call(void 0, () => rowActions ? getDeviceActionsColumn(rowActions) : void 0, [rowActions]);
30534
30554
  return (
@@ -30761,7 +30781,7 @@ function DevicesPanelView({
30761
30781
  actionsVariant: "icon-buttons",
30762
30782
  className,
30763
30783
  selector: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30764
- _chunkILZEXCJHcjs.TabSelector,
30784
+ _chunkKWZ62LPZcjs.TabSelector,
30765
30785
  {
30766
30786
  value: viewMode,
30767
30787
  onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall', _667 => _667(value)]),
@@ -31295,11 +31315,11 @@ var ToolBadge = ({
31295
31315
  iconClassName
31296
31316
  }) => {
31297
31317
  const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
31298
- const text = _nullishCoalesce(label, () => ( (toolType ? _chunkBPAYT72Lcjs.getToolLabel.call(void 0, toolType) : "")));
31318
+ const text = _nullishCoalesce(label, () => ( (toolType ? _chunkBTVO676Bcjs.getToolLabel.call(void 0, toolType) : "")));
31299
31319
  const mark = _nullishCoalesce(icon, () => ( (toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk57B5RUYDcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }) : null)));
31300
31320
  if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ToolBadgeSkeleton, { variant, icon: !!mark, className });
31301
31321
  const linked = (node, linkClassName) => href && targetPlatform ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31302
- _chunkILZEXCJHcjs.NavLinkAnchorViaRuntime,
31322
+ _chunkKWZ62LPZcjs.NavLinkAnchorViaRuntime,
31303
31323
  {
31304
31324
  href,
31305
31325
  targetPlatform,
@@ -31411,7 +31431,7 @@ function LogsTableView({
31411
31431
  cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31412
31432
  ToolBadge,
31413
31433
  {
31414
- toolType: _chunkBPAYT72Lcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
31434
+ toolType: _chunkBTVO676Bcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
31415
31435
  iconClassName: "h-4 w-4 content-md:h-6 content-md:w-6"
31416
31436
  }
31417
31437
  ),
@@ -31423,7 +31443,7 @@ function LogsTableView({
31423
31443
  filter: {
31424
31444
  options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _675 => _675.toolTypes, 'access', _676 => _676.map, 'call', _677 => _677((toolType) => ({
31425
31445
  id: toolType,
31426
- label: _chunkBPAYT72Lcjs.toToolLabel.call(void 0, toolType),
31446
+ label: _chunkBTVO676Bcjs.toToolLabel.call(void 0, toolType),
31427
31447
  value: toolType
31428
31448
  }))]), () => ( []))
31429
31449
  }
@@ -31481,7 +31501,7 @@ function LogsTableView({
31481
31501
  cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31482
31502
  _chunkTF5D5MNOcjs.Button,
31483
31503
  {
31484
- onClick: getLogHref ? _chunkBPAYT72Lcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
31504
+ onClick: getLogHref ? _chunkBTVO676Bcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
31485
31505
  variant: "outline",
31486
31506
  size: "icon",
31487
31507
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -31856,7 +31876,7 @@ function OpenInNewTabCell({ href }) {
31856
31876
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31857
31877
  _chunkTF5D5MNOcjs.Button,
31858
31878
  {
31859
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, href),
31879
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, href),
31860
31880
  variant: "outline",
31861
31881
  size: "icon",
31862
31882
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -32005,9 +32025,9 @@ function ScriptSchedulesTable({
32005
32025
 
32006
32026
  // src/components/features/scripts/shell-types.ts
32007
32027
  var SCRIPT_SHELL_TYPES = [
32008
- { id: _chunkBPAYT72Lcjs.ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon },
32009
- { id: _chunkBPAYT72Lcjs.ShellTypeValues.CMD, label: "CMD", value: "cmd", icon: _chunkNIVJEJSGcjs.TerminalSquareIcon },
32010
- { id: _chunkBPAYT72Lcjs.ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkTRUW6DDAcjs.TerminalIcon }
32028
+ { id: _chunkBTVO676Bcjs.ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon },
32029
+ { id: _chunkBTVO676Bcjs.ShellTypeValues.CMD, label: "CMD", value: "cmd", icon: _chunkNIVJEJSGcjs.TerminalSquareIcon },
32030
+ { id: _chunkBTVO676Bcjs.ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkTRUW6DDAcjs.TerminalIcon }
32011
32031
  ];
32012
32032
  function scriptShellType(value) {
32013
32033
  return SCRIPT_SHELL_TYPES.find((shell) => shell.value === value);
@@ -33440,7 +33460,7 @@ function ScheduleFormFields({
33440
33460
  disabled = false,
33441
33461
  renderScriptSearch,
33442
33462
  timeReferenceGate = "off",
33443
- platforms = _chunkBPAYT72Lcjs.OS_PLATFORMS,
33463
+ platforms = _chunkBTVO676Bcjs.OS_PLATFORMS,
33444
33464
  comingSoonPlatforms = [],
33445
33465
  getTimeSlots,
33446
33466
  nameLayout = "stacked",
@@ -33586,7 +33606,7 @@ function ScheduleFormFields({
33586
33606
  // src/components/features/scripts/schedule-form/schedule-script-search-field.tsx
33587
33607
 
33588
33608
  function ScriptPlatformIcons({ platforms }) {
33589
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex shrink-0 items-center gap-0.5", children: _chunkBPAYT72Lcjs.OS_PLATFORMS.filter((p) => platforms.includes(p.id)).map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, p.icon, { className: "h-3.5 w-3.5 text-ods-text-secondary opacity-60" }, p.id)) });
33609
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex shrink-0 items-center gap-0.5", children: _chunkBTVO676Bcjs.OS_PLATFORMS.filter((p) => platforms.includes(p.id)).map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, p.icon, { className: "h-3.5 w-3.5 text-ods-text-secondary opacity-60" }, p.id)) });
33590
33610
  }
33591
33611
  function ScheduleScriptSearchField({
33592
33612
  scriptId,
@@ -33659,7 +33679,7 @@ function getKnowledgeBaseOpenColumn(getHref) {
33659
33679
  cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33660
33680
  _chunkTF5D5MNOcjs.Button,
33661
33681
  {
33662
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, getHref(row.original)),
33682
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, getHref(row.original)),
33663
33683
  variant: "outline",
33664
33684
  size: "icon",
33665
33685
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -33785,7 +33805,7 @@ function KnowledgeBaseArticleView({
33785
33805
  className,
33786
33806
  children: [
33787
33807
  tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-[var(--spacing-system-xsf)]", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHY6BCZH7cjs.Tag, { label: tag.label, variant: "outline", className: "max-w-full" }, tag.id)) }),
33788
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "border-ods-border px-[var(--spacing-system-mf)] py-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 gap-x-[var(--spacing-system-mf)] content-lg:grid-cols-3", children: [
33808
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Card, { className: "border-ods-border px-[var(--spacing-system-mf)] py-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 gap-x-[var(--spacing-system-mf)] content-lg:grid-cols-3", children: [
33789
33809
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-20 min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33790
33810
  author.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLJT2KRE2cjs.DeletedUserAvatar, { size: "md" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33791
33811
  _chunkHY6BCZH7cjs.SquareAvatar,
@@ -33949,7 +33969,7 @@ function ConversationCard({
33949
33969
  style: tint,
33950
33970
  onClick: selection && ((event) => {
33951
33971
  if (event.button !== 0 || _optionalChain([window, 'access', _741 => _741.getSelection, 'call', _742 => _742(), 'optionalAccess', _743 => _743.toString, 'call', _744 => _744()])) return;
33952
- if (!_chunkBPAYT72Lcjs.isOwnClick.call(void 0, event.target, event.currentTarget, { controls: true })) return;
33972
+ if (!_chunkBTVO676Bcjs.isOwnClick.call(void 0, event.target, event.currentTarget, { controls: true })) return;
33953
33973
  selection.onToggle();
33954
33974
  }),
33955
33975
  children: [
@@ -33972,7 +33992,7 @@ function ConversationCard({
33972
33992
  children: selection.pressed ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXIBCMGBWcjs.CheckIcon, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4UZ62MYcjs.PlusIcon, {})
33973
33993
  }
33974
33994
  ),
33975
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.ChatTurn, { avatar: requester.avatar, name: requester.name, meta: requester.meta, time: requester.time, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33995
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.ChatTurn, { avatar: requester.avatar, name: requester.name, meta: requester.meta, time: requester.time, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33976
33996
  "p",
33977
33997
  {
33978
33998
  id: requestId,
@@ -33991,7 +34011,7 @@ function ConversationCard({
33991
34011
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: CONTEXT_TEXT_CLASS, style: partLinesStyle(_optionalChain([lines, 'optionalAccess', _745 => _745.context])), children: context.text })
33992
34012
  ] }),
33993
34013
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33994
- _chunkBPAYT72Lcjs.ChatTurn,
34014
+ _chunkBTVO676Bcjs.ChatTurn,
33995
34015
  {
33996
34016
  avatar: responder.avatar,
33997
34017
  name: responder.name,
@@ -34014,10 +34034,10 @@ function ConversationCard({
34014
34034
  );
34015
34035
  }
34016
34036
  function TurnSkeleton({ avatarPx, meta, children }) {
34017
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBPAYT72Lcjs.TURN_ROW_CLASS, children: [
34037
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBTVO676Bcjs.TURN_ROW_CLASS, children: [
34018
34038
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHY6BCZH7cjs.SquareAvatarSkeleton, { sizePx: avatarPx }),
34019
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBPAYT72Lcjs.TURN_BODY_CLASS, children: [
34020
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBPAYT72Lcjs.ChatTurnNameSkeleton, { meta, time: true }),
34039
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBTVO676Bcjs.TURN_BODY_CLASS, children: [
34040
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.ChatTurnNameSkeleton, { meta, time: true }),
34021
34041
  children
34022
34042
  ] })
34023
34043
  ] });
@@ -34277,7 +34297,7 @@ function CapabilityExplorer({
34277
34297
  ),
34278
34298
  children: [
34279
34299
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-3", children: [
34280
- item.iconName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, JOB_ICON_TILE_CLASS, "text-ods-flamingo-cyan"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.EntityIcon, { icon: { name: item.iconName }, size: 18 }) }),
34300
+ item.iconName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, JOB_ICON_TILE_CLASS, "text-ods-flamingo-cyan"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.EntityIcon, { icon: { name: item.iconName }, size: 18 }) }),
34281
34301
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
34282
34302
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "flex min-w-0 items-center gap-2 text-ods-text-primary text-h4", children: [
34283
34303
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.TruncateText, { as: "span", variant: "h4", triggerClassName: "flex-1", children: item.title }),
@@ -34358,7 +34378,7 @@ function CapabilityExplorer({
34358
34378
  "span",
34359
34379
  {
34360
34380
  className: _chunk65VVJSQZcjs.cn.call(void 0, JOB_ICON_TILE_CLASS, selected ? "text-ods-flamingo-cyan" : "text-ods-text-secondary"),
34361
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5V7BIUGAcjs.EntityIcon, { icon: { name: item.iconName }, size: 18 })
34381
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.EntityIcon, { icon: { name: item.iconName }, size: 18 })
34362
34382
  }
34363
34383
  ),
34364
34384
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "min-w-0 flex-1", children: [