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

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 (135) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-VW2QQKQ6.cjs → chunk-36GYLB3Z.cjs} +15 -15
  3. package/dist/{chunk-5HBGBLJT.cjs → chunk-3XLDYEQD.cjs} +74 -63
  4. package/dist/{chunk-7P2QXBWE.cjs → chunk-42JGOJCB.cjs} +234 -213
  5. package/dist/{chunk-I4ZVMNHO.cjs → chunk-4LFB4YY3.cjs} +6 -6
  6. package/dist/{chunk-JJNOAYD4.cjs → chunk-5AOKXXHV.cjs} +4 -4
  7. package/dist/{chunk-MT5Z2LSV.cjs → chunk-5YJWT5ZQ.cjs} +72 -72
  8. package/dist/{chunk-42YLIZFD.cjs → chunk-6SJYFUGD.cjs} +22 -22
  9. package/dist/{chunk-BPAYT72L.cjs → chunk-BTVO676B.cjs} +148 -131
  10. package/dist/{chunk-TZ4GKUO2.cjs → chunk-CZIMISAR.cjs} +5 -1
  11. package/dist/{chunk-XVFM6SJA.cjs → chunk-E64HPPRH.cjs} +31 -31
  12. package/dist/{chunk-CTRJNTYU.cjs → chunk-EQBJHJS7.cjs} +2 -2
  13. package/dist/{chunk-6LLF2QCS.cjs → chunk-F67SEXCW.cjs} +39 -39
  14. package/dist/{chunk-HEEK42BL.cjs → chunk-FHTTRWAK.cjs} +81 -81
  15. package/dist/{chunk-NRFNZ35Z.cjs → chunk-IQQ3SLUK.cjs} +19 -19
  16. package/dist/{chunk-RNLRS4ID.cjs → chunk-KKAY6GPU.cjs} +2 -2
  17. package/dist/{chunk-ILZEXCJH.cjs → chunk-KWZ62LPZ.cjs} +124 -104
  18. package/dist/{chunk-KDMWXXLE.cjs → chunk-L5CKY5WA.cjs} +15 -15
  19. package/dist/{chunk-CW3ML76U.cjs → chunk-NTPX5GXI.cjs} +4 -0
  20. package/dist/{chunk-NPCFVTA2.cjs → chunk-ODF3KCRK.cjs} +31 -31
  21. package/dist/{chunk-YSKX42LW.cjs → chunk-PMX6QNNN.cjs} +12 -12
  22. package/dist/{chunk-2A56MLLL.cjs → chunk-SWEPHSIP.cjs} +4 -4
  23. package/dist/{chunk-7J4YWDT6.cjs → chunk-TF2XYDH3.cjs} +3 -3
  24. package/dist/{chunk-KSCEAIBS.cjs → chunk-TOPGBOCN.cjs} +2 -2
  25. package/dist/{chunk-FPCGKH5K.cjs → chunk-TUXPFF4P.cjs} +31 -29
  26. package/dist/{chunk-SE76YGR3.cjs → chunk-USMR73ND.cjs} +4 -4
  27. package/dist/{chunk-BMFU2CUL.cjs → chunk-VAGZJRYV.cjs} +4 -4
  28. package/dist/{chunk-3FREBLAJ.cjs → chunk-VDXBACD3.cjs} +47 -45
  29. package/dist/{chunk-X5Z4HRH7.cjs → chunk-VISK6LKE.cjs} +2 -2
  30. package/dist/{chunk-5V7BIUGA.cjs → chunk-Y3EBUFX4.cjs} +92 -21
  31. package/dist/{cloud-tenants-EE5ULFOK.cjs → cloud-tenants-ISGAMTJD.cjs} +11 -11
  32. package/dist/components/authors/author-detail-view.d.ts.map +1 -1
  33. package/dist/components/authors/author-detail-view.js +12 -2
  34. package/dist/components/case-studies/index.cjs +28 -28
  35. package/dist/components/chat/ask-prompts.d.ts.map +1 -1
  36. package/dist/components/chat/ask-prompts.js +28 -19
  37. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts +3 -1
  38. package/dist/components/chat/entity-cards/entity-portrait-card.d.ts.map +1 -1
  39. package/dist/components/chat/entity-cards/entity-portrait-card.js +2 -0
  40. package/dist/components/chat/entity-cards/program-card.d.ts +6 -1
  41. package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
  42. package/dist/components/chat/entity-cards/program-card.js +19 -2
  43. package/dist/components/chat/index.cjs +10 -8
  44. package/dist/components/chat/index.d.ts +1 -1
  45. package/dist/components/chat/index.d.ts.map +1 -1
  46. package/dist/components/chat/index.js +10 -4
  47. package/dist/components/chat/utils/ask-ai-events.d.ts +10 -0
  48. package/dist/components/chat/utils/ask-ai-events.d.ts.map +1 -1
  49. package/dist/components/chat/utils/ask-ai-events.js +21 -1
  50. package/dist/components/contact/index.cjs +12 -12
  51. package/dist/components/docs/index.cjs +15 -15
  52. package/dist/components/embeds/index.cjs +12 -12
  53. package/dist/components/faq/index.cjs +13 -13
  54. package/dist/components/features/index.cjs +11 -11
  55. package/dist/components/features/video-hover-preview.d.ts.map +1 -1
  56. package/dist/components/features/video-hover-preview.js +5 -2
  57. package/dist/components/features/video-shared.d.ts +2 -1
  58. package/dist/components/features/video-shared.d.ts.map +1 -1
  59. package/dist/components/features/video.d.ts.map +1 -1
  60. package/dist/components/features/video.js +64 -13
  61. package/dist/components/help-center-pages/index.cjs +100 -100
  62. package/dist/components/index.cjs +74 -62
  63. package/dist/components/meeting-scheduler/index.cjs +46 -46
  64. package/dist/components/navigation/index.cjs +14 -14
  65. package/dist/components/navigation/mingo-ai-button.d.ts.map +1 -1
  66. package/dist/components/navigation/mingo-ai-button.js +2 -1
  67. package/dist/components/navigation/site-header.d.ts.map +1 -1
  68. package/dist/components/navigation/site-header.js +3 -1
  69. package/dist/components/onboarding-guides/index.cjs +14 -14
  70. package/dist/components/product-demo/index.cjs +20 -20
  71. package/dist/components/related-content/card-registry.d.ts +5 -0
  72. package/dist/components/related-content/card-registry.d.ts.map +1 -1
  73. package/dist/components/related-content/card-registry.js +2 -0
  74. package/dist/components/related-content/index.cjs +7 -6
  75. package/dist/components/related-content/index.d.ts +2 -1
  76. package/dist/components/related-content/index.d.ts.map +1 -1
  77. package/dist/components/related-content/index.js +2 -2
  78. package/dist/components/related-content/related-content-section.d.ts +8 -10
  79. package/dist/components/related-content/related-content-section.d.ts.map +1 -1
  80. package/dist/components/related-content/related-content-section.js +20 -11
  81. package/dist/components/tickets/index.cjs +17 -17
  82. package/dist/components/ui/index.cjs +13 -11
  83. package/dist/components/ui/photo-wall.d.ts +16 -1
  84. package/dist/components/ui/photo-wall.d.ts.map +1 -1
  85. package/dist/components/ui/photo-wall.js +24 -9
  86. package/dist/components/ui/tab-navigation.d.ts +8 -1
  87. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  88. package/dist/components/ui/tab-navigation.js +9 -3
  89. package/dist/{devices-EBGGHEGR.cjs → devices-AHJX6ACJ.cjs} +12 -12
  90. package/dist/{embeddable-chat-HCT4QV35.cjs → embeddable-chat-DI7ZZTBP.cjs} +75 -75
  91. package/dist/hooks/index.cjs +4 -4
  92. package/dist/hooks/use-near-viewport.d.ts.map +1 -1
  93. package/dist/hooks/use-near-viewport.js +4 -0
  94. package/dist/index.cjs +23 -15
  95. package/dist/{knowledge-5ZSMKKTL.cjs → knowledge-FH5GVRVP.cjs} +12 -12
  96. package/dist/{logs-GUV3BMGC.cjs → logs-JBIHHLUQ.cjs} +19 -19
  97. package/dist/{policies-HPMTDOAS.cjs → policies-XLJ2ABY5.cjs} +15 -15
  98. package/dist/{scripts-QYYKCIUW.cjs → scripts-CQLXM7PP.cjs} +16 -16
  99. package/dist/{software-update-NC2KZKEI.cjs → software-update-7NYZ7L76.cjs} +14 -14
  100. package/dist/utils/content-ref-groups.d.ts +8 -0
  101. package/dist/utils/content-ref-groups.d.ts.map +1 -1
  102. package/dist/utils/content-ref-groups.js +2 -0
  103. package/dist/utils/dismiss-cookie.d.ts +14 -0
  104. package/dist/utils/dismiss-cookie.d.ts.map +1 -1
  105. package/dist/utils/dismiss-cookie.js +4 -0
  106. package/dist/utils/index.cjs +10 -0
  107. package/dist/utils/index.d.ts +1 -1
  108. package/dist/utils/index.d.ts.map +1 -1
  109. package/dist/utils/index.js +2 -0
  110. package/dist/utils/visitor-os.d.ts +9 -0
  111. package/dist/utils/visitor-os.d.ts.map +1 -1
  112. package/dist/utils/visitor-os.js +4 -0
  113. package/dist/{video-file-player-COXRF4M5.cjs → video-file-player-4TXA7BZF.cjs} +3 -3
  114. package/package.json +1 -1
  115. package/src/components/authors/author-detail-view.tsx +10 -2
  116. package/src/components/chat/ask-prompts.tsx +6 -1
  117. package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -0
  118. package/src/components/chat/entity-cards/program-card.tsx +24 -2
  119. package/src/components/chat/index.ts +16 -9
  120. package/src/components/chat/utils/ask-ai-events.ts +26 -0
  121. package/src/components/features/video-hover-preview.tsx +46 -37
  122. package/src/components/features/video-shared.tsx +2 -1
  123. package/src/components/features/video.tsx +102 -19
  124. package/src/components/navigation/mingo-ai-button.tsx +2 -1
  125. package/src/components/navigation/site-header.tsx +3 -1
  126. package/src/components/related-content/card-registry.tsx +7 -0
  127. package/src/components/related-content/index.ts +2 -1
  128. package/src/components/related-content/related-content-section.tsx +38 -14
  129. package/src/components/ui/photo-wall.tsx +43 -10
  130. package/src/components/ui/tab-navigation.tsx +18 -3
  131. package/src/hooks/use-near-viewport.ts +6 -0
  132. package/src/utils/content-ref-groups.ts +9 -0
  133. package/src/utils/dismiss-cookie.ts +17 -0
  134. package/src/utils/index.ts +1 -0
  135. 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,
@@ -17350,7 +17356,8 @@ function PhotoWall({
17350
17356
  speed = 24,
17351
17357
  fadeColor,
17352
17358
  className,
17353
- loading: loadingProp = false
17359
+ loading: loadingProp = false,
17360
+ sizes
17354
17361
  }) {
17355
17362
  const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
17356
17363
  const loading = loadingProp || inScope;
@@ -17373,16 +17380,31 @@ function PhotoWall({
17373
17380
  (box.width - COLUMN_GAP_PX * (columnCount - 1)) / columnCount,
17374
17381
  typeof window === "undefined" ? 1 : window.devicePixelRatio || 1
17375
17382
  ) : void 0;
17383
+ const sizedUpFront = !!sizes && images.length > 0 && images.every((image) => image.width && image.height);
17376
17384
  const unique = _react.useMemo.call(void 0, () => {
17377
- if (requestWidth === void 0 || inScope) return [];
17385
+ if (inScope || !sizedUpFront && requestWidth === void 0) return [];
17378
17386
  const byUrl = /* @__PURE__ */ new Map();
17379
17387
  for (const image of images) if (!byUrl.has(image.url)) byUrl.set(image.url, image);
17380
17388
  return Array.from(byUrl.values());
17381
- }, [images, requestWidth, inScope]);
17382
- const drawnWidth = _nullishCoalesce(requestWidth, () => ( void 0));
17389
+ }, [images, requestWidth, inScope, sizedUpFront]);
17390
+ const drawnWidth = sizedUpFront ? void 0 : _nullishCoalesce(requestWidth, () => ( void 0));
17383
17391
  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);
17392
+ const known = _react.useMemo.call(void 0, () => {
17393
+ const byUrl = /* @__PURE__ */ new Map();
17394
+ for (const image of unique) {
17395
+ if (image.width && image.height) byUrl.set(drawnUrl(image.url), photoOrientation(image.width, image.height));
17396
+ }
17397
+ return byUrl;
17398
+ }, [unique, drawnUrl]);
17399
+ const urls = _react.useMemo.call(void 0,
17400
+ () => unique.map((image) => drawnUrl(image.url)).filter((url) => !known.has(url)),
17401
+ [unique, drawnUrl, known]
17402
+ );
17403
+ const probed = usePhotoOrientations(urls);
17404
+ const orientations = _react.useMemo.call(void 0, () => {
17405
+ if (urls.length === 0) return known;
17406
+ return probed ? new Map([...known, ...probed]) : null;
17407
+ }, [urls, known, probed]);
17386
17408
  const layout = _react.useMemo.call(void 0, () => {
17387
17409
  if (!orientations) return null;
17388
17410
  const photos = unique.flatMap((image) => {
@@ -17403,13 +17425,13 @@ function PhotoWall({
17403
17425
  });
17404
17426
  }, [orientations, unique, drawnUrl, columns, box]);
17405
17427
  if (images.length === 0 && !loading) return null;
17406
- const columnsToDraw = loading || requestWidth === void 0 ? null : layout;
17428
+ const columnsToDraw = loading || !sizedUpFront && requestWidth === void 0 ? null : layout;
17407
17429
  const gridStyle = {
17408
17430
  gridTemplateColumns: `repeat(${_optionalChain([columnsToDraw, 'optionalAccess', _365 => _365.length]) || columns}, minmax(0, 1fr))`,
17409
17431
  gap: COLUMN_GAP_PX
17410
17432
  };
17411
17433
  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,
17434
+ _chunkKWZ62LPZcjs.MarqueeWall,
17413
17435
  {
17414
17436
  axis: "y",
17415
17437
  reverse: index % 2 === 1,
@@ -17433,8 +17455,7 @@ function PhotoWall({
17433
17455
  alt: _nullishCoalesce(photo.alt, () => ( "")),
17434
17456
  fill: true,
17435
17457
  className: "object-cover",
17436
- optimizedWidth: drawnWidth,
17437
- unoptimized: true,
17458
+ ...sizedUpFront ? { sizes } : { optimizedWidth: drawnWidth, unoptimized: true },
17438
17459
  loading: i < EAGER_PHOTOS_PER_COLUMN ? "eager" : "lazy",
17439
17460
  fetchPriority: index === 0 && i === 0 ? "high" : void 0
17440
17461
  }
@@ -17536,9 +17557,9 @@ function LazyMount({
17536
17557
  placeholder = null,
17537
17558
  className,
17538
17559
  style,
17539
- rootMargin = _chunkCW3ML76Ucjs.NEAR_VIEWPORT_ROOT_MARGIN
17560
+ rootMargin = _chunkNTPX5GXIcjs.NEAR_VIEWPORT_ROOT_MARGIN
17540
17561
  }) {
17541
- const { ref, isNear } = _chunkCW3ML76Ucjs.useNearViewport.call(void 0, rootMargin);
17562
+ const { ref, isNear } = _chunkNTPX5GXIcjs.useNearViewport.call(void 0, rootMargin);
17542
17563
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className, style, children: isNear ? children : placeholder });
17543
17564
  }
17544
17565
 
@@ -17956,7 +17977,7 @@ var TRIAL_TERM_ICONS = {
17956
17977
  };
17957
17978
  var DEFAULT_TRIAL_TERMS = ["cancel", "length", "noContract"];
17958
17979
  function trialBenefits(trialDays, terms = DEFAULT_TRIAL_TERMS) {
17959
- const labels = _chunkBPAYT72Lcjs.trialLabels.call(void 0, trialDays);
17980
+ const labels = _chunkBTVO676Bcjs.trialLabels.call(void 0, trialDays);
17960
17981
  return terms.flatMap((term) => {
17961
17982
  const label = labels[term];
17962
17983
  return label ? [{ icon: TRIAL_TERM_ICONS[term], label }] : [];
@@ -18211,7 +18232,7 @@ function SnapCarousel({
18211
18232
  }, [count, slideStep]);
18212
18233
  const canAutoAdvance = autoAdvanceMs > 0 && count > 1;
18213
18234
  const playing = auto.playing && canAutoAdvance;
18214
- const ranMs = _chunkXVFM6SJAcjs.useResumableTimeout.call(void 0, {
18235
+ const ranMs = _chunkE64HPPRHcjs.useResumableTimeout.call(void 0, {
18215
18236
  running: playing,
18216
18237
  durationMs: autoAdvanceMs,
18217
18238
  resetKey: index,
@@ -18595,10 +18616,10 @@ function AccountDetailsFields({
18595
18616
  onKeyDown,
18596
18617
  layout = "stacked"
18597
18618
  }) {
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);
18619
+ const firstNameErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _371 => _371.firstName]), firstName);
18620
+ const lastNameErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _372 => _372.lastName]), lastName);
18621
+ const passwordErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _373 => _373.password]), password);
18622
+ const confirmErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _374 => _374.confirmPassword]), confirmPassword);
18602
18623
  const names = [
18603
18624
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18604
18625
  _chunkYXDHVHB2cjs.Input,
@@ -18855,7 +18876,7 @@ function SsoProviderButtons({
18855
18876
  // where a long organization name would otherwise push the label out of a phone-width
18856
18877
  // button. `block` over its inline-flex, because an ellipsis only renders on a block box.
18857
18878
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18858
- _chunk5V7BIUGAcjs.StatusBadge,
18879
+ _chunkY3EBUFX4cjs.StatusBadge,
18859
18880
  {
18860
18881
  text: tag,
18861
18882
  variant: "button",
@@ -18914,7 +18935,7 @@ function CompleteAccountForm({
18914
18935
  ),
18915
18936
  children: [
18916
18937
  /* @__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) }),
18938
+ /* @__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
18939
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
18919
18940
  ] }),
18920
18941
  ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -19045,9 +19066,9 @@ function CreateOrganizationForm({
19045
19066
  }) {
19046
19067
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
19047
19068
  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);
19069
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _376 => _376.email]), _nullishCoalesce(email, () => ( "")));
19070
+ const orgNameErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _377 => _377.organizationName]), organizationName);
19071
+ const domainErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _378 => _378.domain]), domain);
19051
19072
  const handleKeyDown = (event) => {
19052
19073
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19053
19074
  onSubmit();
@@ -19062,7 +19083,7 @@ function CreateOrganizationForm({
19062
19083
  ),
19063
19084
  children: [
19064
19085
  /* @__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) }),
19086
+ /* @__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
19087
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19067
19088
  ] }),
19068
19089
  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 +19224,7 @@ function InviteLinkInvalidModal({
19203
19224
  ),
19204
19225
  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
19226
  /* @__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) }),
19227
+ /* @__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
19228
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19208
19229
  "button",
19209
19230
  {
@@ -19266,7 +19287,7 @@ function LoginForm({
19266
19287
  }) {
19267
19288
  const fieldDisabled = disabled || loading;
19268
19289
  const providersDisabled = fieldDisabled || ssoDisabled;
19269
- const emailErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _385 => _385.email]), email);
19290
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _385 => _385.email]), email);
19270
19291
  const handleKeyDown = (event) => {
19271
19292
  if (event.key !== "Enter" || event.repeat || fieldDisabled) return;
19272
19293
  if (onSubmitClick) {
@@ -19284,7 +19305,7 @@ function LoginForm({
19284
19305
  ),
19285
19306
  children: [
19286
19307
  /* @__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) }),
19308
+ /* @__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
19309
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19289
19310
  ] }),
19290
19311
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19410,7 +19431,7 @@ function NoAccountNotice({
19410
19431
  ),
19411
19432
  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
19433
  /* @__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) }),
19434
+ /* @__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
19435
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: description })
19415
19436
  ] }),
19416
19437
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTF5D5MNOcjs.Button, { type: "button", variant: "outline", fullWidth: true, onClick: onBackToLogin, children: backLabel })
@@ -19443,8 +19464,8 @@ function OpenFrameSsoLoginForm({
19443
19464
  className
19444
19465
  }) {
19445
19466
  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);
19467
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _389 => _389.email]), email);
19468
+ const passwordErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _390 => _390.password]), password);
19448
19469
  const handleKeyDown = (event) => {
19449
19470
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19450
19471
  onSubmit();
@@ -19459,7 +19480,7 @@ function OpenFrameSsoLoginForm({
19459
19480
  ),
19460
19481
  children: [
19461
19482
  /* @__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) }),
19483
+ /* @__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
19484
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19464
19485
  ] }),
19465
19486
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19549,7 +19570,7 @@ function OpenFrameSsoSignUpForm({
19549
19570
  className
19550
19571
  }) {
19551
19572
  const fieldsDisabled = disabled || loading;
19552
- const emailErr = _chunkXVFM6SJAcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _391 => _391.email]), email);
19573
+ const emailErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _391 => _391.email]), email);
19553
19574
  const handleKeyDown = (event) => {
19554
19575
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19555
19576
  onSubmit();
@@ -19564,7 +19585,7 @@ function OpenFrameSsoSignUpForm({
19564
19585
  ),
19565
19586
  children: [
19566
19587
  /* @__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) }),
19588
+ /* @__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
19589
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19569
19590
  ] }),
19570
19591
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19654,8 +19675,8 @@ function PasswordResetForm({
19654
19675
  className
19655
19676
  }) {
19656
19677
  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);
19678
+ const passwordErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _392 => _392.password]), password);
19679
+ const confirmErr = _chunkE64HPPRHcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _393 => _393.confirmPassword]), confirmPassword);
19659
19680
  const handleKeyDown = (event) => {
19660
19681
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
19661
19682
  onSubmit();
@@ -19670,7 +19691,7 @@ function PasswordResetForm({
19670
19691
  ),
19671
19692
  children: [
19672
19693
  /* @__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) }),
19694
+ /* @__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
19695
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19675
19696
  ] }),
19676
19697
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19787,7 +19808,7 @@ function SsoJoinForm({
19787
19808
  ),
19788
19809
  children: [
19789
19810
  /* @__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) }),
19811
+ /* @__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
19812
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
19792
19813
  ] }),
19793
19814
  /* @__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 +20070,7 @@ function ChangelogManager({
20049
20070
  ),
20050
20071
  /* @__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
20072
  tagOptions && tagLabelOf(entry.tag) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20052
- _chunk5V7BIUGAcjs.StatusBadge,
20073
+ _chunkY3EBUFX4cjs.StatusBadge,
20053
20074
  {
20054
20075
  variant: "button",
20055
20076
  singleLine: true,
@@ -20396,11 +20417,11 @@ function EntityTagBadgesSkeleton({
20396
20417
  i >= count && "content-md:hidden"
20397
20418
  ),
20398
20419
  "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))) })
20420
+ 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
20421
  },
20401
20422
  i
20402
20423
  )),
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) }) })
20424
+ 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
20425
  ] });
20405
20426
  }
20406
20427
  function EntityTagBadges({
@@ -20437,7 +20458,7 @@ function EntityTagBadges({
20437
20458
  const label = (tag.name || "").toUpperCase();
20438
20459
  if (basePath && tag.slug) {
20439
20460
  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,
20461
+ _chunkY3EBUFX4cjs.StatusBadge,
20441
20462
  {
20442
20463
  text: label,
20443
20464
  variant: "card",
@@ -20445,7 +20466,7 @@ function EntityTagBadges({
20445
20466
  }
20446
20467
  ) }, key);
20447
20468
  }
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);
20469
+ 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
20470
  }),
20450
20471
  phoneOverflow === overflow ? overflow > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OverflowBadge, { count: overflow }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
20451
20472
  phoneOverflow > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OverflowBadge, { count: phoneOverflow, className: "content-md:hidden" }),
@@ -20454,7 +20475,7 @@ function EntityTagBadges({
20454
20475
  ] });
20455
20476
  }
20456
20477
  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") }) });
20478
+ 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
20479
  }
20459
20480
 
20460
20481
  // src/components/features/error-boundary.tsx
@@ -20549,7 +20570,7 @@ var SectionButton = ({
20549
20570
  }
20550
20571
  ),
20551
20572
  section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20552
- _chunk5V7BIUGAcjs.StatusBadge,
20573
+ _chunkY3EBUFX4cjs.StatusBadge,
20553
20574
  {
20554
20575
  text: section.badge.text,
20555
20576
  variant: section.badge.variant || "button",
@@ -20568,7 +20589,7 @@ var SectionButton = ({
20568
20589
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-wrap items-start gap-2", children: [
20569
20590
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, titleClasses, "text-h3"), style: { textAlign: "left" }, children: section.title }),
20570
20591
  section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20571
- _chunk5V7BIUGAcjs.StatusBadge,
20592
+ _chunkY3EBUFX4cjs.StatusBadge,
20572
20593
  {
20573
20594
  text: section.badge.text,
20574
20595
  variant: section.badge.variant || "button",
@@ -21633,15 +21654,15 @@ function useLoading() {
21633
21654
 
21634
21655
 
21635
21656
  function isAlreadyThere(file, existing) {
21636
- const key = _chunk5V7BIUGAcjs.mediaNameKey.call(void 0, file.name);
21657
+ const key = _chunkY3EBUFX4cjs.mediaNameKey.call(void 0, file.name);
21637
21658
  if (!key) return false;
21638
21659
  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)
21660
+ (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
21661
  );
21641
21662
  }
21642
21663
  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 };
21664
+ var isVideoItem = (item) => _chunkY3EBUFX4cjs.isVideoMedia.call(void 0, item) || item.media_type === "demo";
21665
+ var MEDIA_KIND_ACCEPT = { image: _chunkY3EBUFX4cjs.IMAGE_FILE_ACCEPT, video: "video/*", both: _chunkY3EBUFX4cjs.MEDIA_FILE_ACCEPT };
21645
21666
  var MEDIA_KIND_COPY = {
21646
21667
  image: { noun: "pictures", refusal: "Not a picture" },
21647
21668
  video: { noun: "videos", refusal: "Not a video" },
@@ -21665,12 +21686,12 @@ function useMediaIntake({ existing, onUpload, onUploaded, kinds = "both" }) {
21665
21686
  const seen = /* @__PURE__ */ new Set();
21666
21687
  const accepted = [];
21667
21688
  for (const file of files) {
21668
- const mediaType = _chunk5V7BIUGAcjs.fileMediaType.call(void 0, file);
21689
+ const mediaType = _chunkY3EBUFX4cjs.fileMediaType.call(void 0, file);
21669
21690
  if (!mediaType || kinds !== "both" && mediaType !== kinds) {
21670
21691
  unsupported.push(file.name);
21671
21692
  continue;
21672
21693
  }
21673
- const contentKey = await _chunk5V7BIUGAcjs.fileContentKey.call(void 0, file).catch(() => `${file.name}:${file.size}`);
21694
+ const contentKey = await _chunkY3EBUFX4cjs.fileContentKey.call(void 0, file).catch(() => `${file.name}:${file.size}`);
21674
21695
  if (seen.has(contentKey) || isAlreadyThere(file, existingRef.current)) {
21675
21696
  duplicates.push(file.name);
21676
21697
  continue;
@@ -21851,7 +21872,7 @@ function MediaGalleryManager({
21851
21872
  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
21873
  children: [
21853
21874
  media.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21854
- _chunk5V7BIUGAcjs.Card,
21875
+ _chunkY3EBUFX4cjs.Card,
21855
21876
  {
21856
21877
  className: "group relative border-ods-border transition-colors hover:border-ods-accent/30",
21857
21878
  draggable: true,
@@ -21876,7 +21897,7 @@ function MediaGalleryManager({
21876
21897
  ) }),
21877
21898
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: isVideoItem(item) ? (
21878
21899
  // <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" })
21900
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
21880
21901
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21881
21902
  _chunkE76ONBKFcjs.next_image_default,
21882
21903
  {
@@ -21928,7 +21949,7 @@ function MediaGalleryManager({
21928
21949
  },
21929
21950
  _nullishCoalesce(item.id, () => ( `${item.media_url}-${index}`))
21930
21951
  )),
21931
- pending.map((name, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk5V7BIUGAcjs.Card, { className: "border-ods-border", "aria-busy": "true", children: [
21952
+ pending.map((name, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3EBUFX4cjs.Card, { className: "border-ods-border", "aria-busy": "true", children: [
21932
21953
  /* @__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
21954
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate p-3 text-ods-text-secondary text-h6", children: name })
21934
21955
  ] }, `pending-${name}-${index}`))
@@ -22282,7 +22303,7 @@ var MODEL_TOKEN_RATES_COPY = {
22282
22303
  empty: "No token rates are in effect right now."
22283
22304
  };
22284
22305
  function providerMark(providerType, stated, className) {
22285
- const Mark = _chunk5P4TDV7Vcjs.findIcon.call(void 0, _chunkBPAYT72Lcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
22306
+ const Mark = _chunk5P4TDV7Vcjs.findIcon.call(void 0, _chunkBTVO676Bcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
22286
22307
  return Mark ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Mark, { className }) : void 0;
22287
22308
  }
22288
22309
  var PAD_X = "px-[var(--spacing-system-s)]";
@@ -22300,7 +22321,7 @@ var UNIT_LINE_CLASS = _chunk65VVJSQZcjs.cn.call(void 0,
22300
22321
  var TABS_ROW_CLASS = _chunk65VVJSQZcjs.cn.call(void 0, "shrink-0 border-b border-ods-border py-[var(--spacing-system-xs)]", PAD_X);
22301
22322
  var NUMBER_CELL = "w-16 shrink-0 whitespace-nowrap text-right tabular-nums";
22302
22323
  function useProviderGroup(rates) {
22303
- const groups = _chunkBPAYT72Lcjs.groupTokenRatesByProvider.call(void 0, rates);
22324
+ const groups = _chunkBTVO676Bcjs.groupTokenRatesByProvider.call(void 0, rates);
22304
22325
  const [picked, setPicked] = _react.useState.call(void 0, null);
22305
22326
  return { groups, group: _nullishCoalesce(groups.find((candidate) => candidate.providerType === picked), () => ( groups[0])), setPicked };
22306
22327
  }
@@ -22311,7 +22332,7 @@ function ProviderTabs({
22311
22332
  className
22312
22333
  }) {
22313
22334
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22314
- _chunkILZEXCJHcjs.TabSelector,
22335
+ _chunkKWZ62LPZcjs.TabSelector,
22315
22336
  {
22316
22337
  variant: "secondary",
22317
22338
  scrollable: true,
@@ -22319,7 +22340,7 @@ function ProviderTabs({
22319
22340
  onValueChange,
22320
22341
  items: groups.map((candidate) => ({
22321
22342
  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])),
22343
+ label: _chunkBTVO676Bcjs.tokenRateProviderLabel.call(void 0, candidate.providerType, _optionalChain([candidate, 'access', _455 => _455.rates, 'access', _456 => _456[0], 'optionalAccess', _457 => _457.providerLabel])),
22323
22344
  icon: providerMark(candidate.providerType, _optionalChain([candidate, 'access', _458 => _458.rates, 'access', _459 => _459[0], 'optionalAccess', _460 => _460.providerIcon]), "size-full")
22324
22345
  })),
22325
22346
  className
@@ -22397,8 +22418,8 @@ function ModelTokenRatesTable({ rates }) {
22397
22418
  ] }),
22398
22419
  /* @__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
22420
  /* @__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) })
22421
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, rate.inputTokenRate) }),
22422
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, rate.outputTokenRate) })
22402
22423
  ] }, rate.modelName)) })
22403
22424
  ] }),
22404
22425
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: UNIT_LINE_CLASS, children: MODEL_TOKEN_RATES_COPY.unit })
@@ -22448,7 +22469,7 @@ function modelOption(rate) {
22448
22469
  return {
22449
22470
  label: rate.displayName || rate.modelName,
22450
22471
  value: rate.modelName,
22451
- description: _chunkBPAYT72Lcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
22472
+ description: _chunkBTVO676Bcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
22452
22473
  icon: providerMark(rate.providerType, rate.providerIcon, "size-full text-ods-text-secondary")
22453
22474
  };
22454
22475
  }
@@ -22502,8 +22523,8 @@ function ModelTokenExchange({
22502
22523
  const [chosen, setChosen] = _react.useState.call(void 0, null);
22503
22524
  const balance = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(chosen, () => ( defaultAmount)), () => ( _optionalChain([tokenPrice, 'optionalAccess', _461 => _461.tokens]))), () => ( MODEL_TOKEN_EXCHANGE_BALANCE));
22504
22525
  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);
22526
+ const tokens = _chunkBTVO676Bcjs.formatTokenAmount.call(void 0, balance);
22527
+ const cost = _chunkBTVO676Bcjs.tokenCost.call(void 0, balance, tokenPrice);
22507
22528
  const balancePrice = cost === null ? null : _chunkHY6BCZH7cjs.formatPrice.call(void 0, cost);
22508
22529
  const model = rate ? rate.displayName || rate.modelName : "";
22509
22530
  const options = models.map(modelOption);
@@ -22545,7 +22566,7 @@ function ModelTokenExchange({
22545
22566
  variant: preset.tokens === balance ? "accent" : "outline",
22546
22567
  size: "small",
22547
22568
  onClick: () => setChosen(preset.tokens),
22548
- children: copy.buy.preset(_chunkBPAYT72Lcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
22569
+ children: copy.buy.preset(_chunkBTVO676Bcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
22549
22570
  },
22550
22571
  preset.label
22551
22572
  )) })
@@ -22562,7 +22583,7 @@ function ModelTokenExchange({
22562
22583
  const stated = _nullishCoalesce(models.find((option) => option.providerType === providerType), () => ( (_optionalChain([rate, 'optionalAccess', _462 => _462.providerType]) === providerType ? rate : null)));
22563
22584
  return {
22564
22585
  id: providerType,
22565
- name: _chunkBPAYT72Lcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _463 => _463.providerLabel])),
22586
+ name: _chunkBTVO676Bcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _463 => _463.providerLabel])),
22566
22587
  icon: providerMark(providerType, _optionalChain([stated, 'optionalAccess', _464 => _464.providerIcon]), "size-8 text-ods-text-secondary")
22567
22588
  };
22568
22589
  }),
@@ -22601,7 +22622,7 @@ function ModelTokenExchange({
22601
22622
  {
22602
22623
  size: "plain",
22603
22624
  loading,
22604
- figure: _chunkBPAYT72Lcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _469 => _469.inputTokenRate])),
22625
+ figure: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _469 => _469.inputTokenRate])),
22605
22626
  words: copy.charge.input
22606
22627
  }
22607
22628
  ),
@@ -22610,7 +22631,7 @@ function ModelTokenExchange({
22610
22631
  {
22611
22632
  size: "plain",
22612
22633
  loading,
22613
- figure: _chunkBPAYT72Lcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _470 => _470.outputTokenRate])),
22634
+ figure: _chunkBTVO676Bcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _470 => _470.outputTokenRate])),
22614
22635
  words: copy.charge.output
22615
22636
  }
22616
22637
  )
@@ -22622,9 +22643,9 @@ function ModelTokenExchange({
22622
22643
  className: "mt-auto flex flex-col rounded-md border border-ods-accent bg-ods-bg p-[var(--spacing-system-mf)]",
22623
22644
  children: [
22624
22645
  /* @__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)) }),
22646
+ /* @__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
22647
  /* @__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))) })
22648
+ /* @__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
22649
  ]
22629
22650
  }
22630
22651
  )
@@ -23055,7 +23076,7 @@ function PlatformFilterComponent({
23055
23076
  variant: selectedPlatform === platform.value ? "accent" : "outline",
23056
23077
  size,
23057
23078
  onClick: () => onPlatformChange(platform.value),
23058
- leftIcon: showIcons ? _chunkTZ4GKUO2cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
23079
+ leftIcon: showIcons ? _chunkCZIMISARcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
23059
23080
  className: "text-h3",
23060
23081
  children: platform.label
23061
23082
  },
@@ -23163,14 +23184,14 @@ var ConfidenceBadge = ({
23163
23184
  size = "sm",
23164
23185
  className
23165
23186
  }) => {
23166
- const level = _chunkBPAYT72Lcjs.getConfidenceLevel.call(void 0, confidence);
23187
+ const level = _chunkBTVO676Bcjs.getConfidenceLevel.call(void 0, confidence);
23167
23188
  if (level === "none") {
23168
23189
  return null;
23169
23190
  }
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);
23191
+ const label = _chunkBTVO676Bcjs.getConfidenceLabel.call(void 0, confidence);
23192
+ const borderClass = _chunkBTVO676Bcjs.getConfidenceBorderClass.call(void 0, confidence);
23193
+ const textClass = _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence);
23194
+ const bgClass = _chunkBTVO676Bcjs.getConfidenceBgClass.call(void 0, confidence);
23174
23195
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23175
23196
  "span",
23176
23197
  {
@@ -23221,9 +23242,9 @@ function SEOEditorPreview({
23221
23242
  const [isUploading, setIsUploading] = _react.useState.call(void 0, false);
23222
23243
  const [fileInputRef, setFileInputRef] = _react.useState.call(void 0, null);
23223
23244
  const seoTitleLength = (seoTitle || "").length;
23224
- const seoTitleTooLong = seoTitleLength > _chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH;
23245
+ const seoTitleTooLong = seoTitleLength > _chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH;
23225
23246
  const seoDescriptionLength = (seoDescription || "").length;
23226
- const seoDescriptionTooLong = seoDescriptionLength > _chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH;
23247
+ const seoDescriptionTooLong = seoDescriptionLength > _chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH;
23227
23248
  const displayTitle = seoTitle.trim() || title || "Untitled";
23228
23249
  const displayDescription = seoDescription.trim() || summary || "No description";
23229
23250
  const hasOgImage = ogImageUrl.trim();
@@ -23248,10 +23269,10 @@ function SEOEditorPreview({
23248
23269
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
23249
23270
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
23250
23271
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23251
- _chunkBPAYT72Lcjs.Field,
23272
+ _chunkBTVO676Bcjs.Field,
23252
23273
  {
23253
23274
  label: "SEO Title",
23254
- error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH})` : null,
23275
+ error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH})` : null,
23255
23276
  labelExtras: aiConfidenceSeoTitle !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23256
23277
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
23257
23278
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConfidenceBadge, { confidence: aiConfidenceSeoTitle, showLabel: true, showPercentage: true, size: "sm" })
@@ -23266,7 +23287,7 @@ function SEOEditorPreview({
23266
23287
  children: [
23267
23288
  seoTitleLength,
23268
23289
  "/",
23269
- _chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH
23290
+ _chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH
23270
23291
  ]
23271
23292
  }
23272
23293
  ),
@@ -23277,7 +23298,7 @@ function SEOEditorPreview({
23277
23298
  value: seoTitle || "",
23278
23299
  onChange: (e) => onSeoTitleChange(e.target.value),
23279
23300
  disabled,
23280
- maxLength: _chunkBPAYT72Lcjs.SEO_TITLE_MAX_LENGTH,
23301
+ maxLength: _chunkBTVO676Bcjs.SEO_TITLE_MAX_LENGTH,
23281
23302
  invalid: seoTitleTooLong,
23282
23303
  placeholder: "Enter SEO meta title...",
23283
23304
  className: "border-ods-border bg-ods-bg text-ods-text-primary"
@@ -23288,7 +23309,7 @@ function SEOEditorPreview({
23288
23309
  !seoTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-accent text-h6", children: "Auto-populated from title" })
23289
23310
  ] }),
23290
23311
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23291
- _chunkBPAYT72Lcjs.Field,
23312
+ _chunkBTVO676Bcjs.Field,
23292
23313
  {
23293
23314
  label: "SEO Keywords",
23294
23315
  labelExtras: aiConfidenceSeoKeywords !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -23320,10 +23341,10 @@ function SEOEditorPreview({
23320
23341
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
23321
23342
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
23322
23343
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23323
- _chunkBPAYT72Lcjs.Field,
23344
+ _chunkBTVO676Bcjs.Field,
23324
23345
  {
23325
23346
  label: "SEO Description",
23326
- error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
23347
+ error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
23327
23348
  labelExtras: aiConfidenceSeoDescription !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23328
23349
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
23329
23350
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23346,7 +23367,7 @@ function SEOEditorPreview({
23346
23367
  children: [
23347
23368
  seoDescriptionLength,
23348
23369
  "/",
23349
- _chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH
23370
+ _chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH
23350
23371
  ]
23351
23372
  }
23352
23373
  ),
@@ -23357,7 +23378,7 @@ function SEOEditorPreview({
23357
23378
  value: seoDescription || "",
23358
23379
  onChange: (e) => onSeoDescriptionChange(e.target.value),
23359
23380
  disabled,
23360
- maxLength: _chunkBPAYT72Lcjs.SEO_DESCRIPTION_MAX_LENGTH,
23381
+ maxLength: _chunkBTVO676Bcjs.SEO_DESCRIPTION_MAX_LENGTH,
23361
23382
  invalid: seoDescriptionTooLong,
23362
23383
  placeholder: "Enter SEO meta description...",
23363
23384
  className: _chunk65VVJSQZcjs.cn.call(void 0, "resize-none border-ods-border bg-ods-bg text-ods-text-primary", SEO_MEDIA_BOX_HEIGHT)
@@ -23426,7 +23447,7 @@ function SEOEditorPreview({
23426
23447
  {
23427
23448
  ref: setFileInputRef,
23428
23449
  type: "file",
23429
- accept: _chunk5V7BIUGAcjs.IMAGE_FILE_ACCEPT,
23450
+ accept: _chunkY3EBUFX4cjs.IMAGE_FILE_ACCEPT,
23430
23451
  onChange: handleImageUpload,
23431
23452
  className: "hidden",
23432
23453
  disabled: disabled || isUploading
@@ -23510,7 +23531,7 @@ function socialIcon(platform) {
23510
23531
  return _nullishCoalesce(_chunk5P4TDV7Vcjs.iconOf.call(void 0, SOCIAL_ICONS[platform]), () => ( void 0));
23511
23532
  }
23512
23533
  function renderSocialIcon(platform) {
23513
- const key = _nullishCoalesce(_chunkBPAYT72Lcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
23534
+ const key = _nullishCoalesce(_chunkBTVO676Bcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
23514
23535
  const icon = _nullishCoalesce(socialIcon(key), () => ( socialIcon("website")));
23515
23536
  return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5" }) : null;
23516
23537
  }
@@ -23597,7 +23618,7 @@ function SocialLinksManager({
23597
23618
  };
23598
23619
  const getIcon = (link, platform) => {
23599
23620
  const iconKey = _optionalChain([platform, 'optionalAccess', _480 => _480.icon_name]) || link.platform;
23600
- const key = _chunkBPAYT72Lcjs.normalizeSocialPlatform.call(void 0, iconKey);
23621
+ const key = _chunkBTVO676Bcjs.normalizeSocialPlatform.call(void 0, iconKey);
23601
23622
  if (!key) return null;
23602
23623
  const icon = socialIcon(key);
23603
23624
  return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
@@ -23733,7 +23754,7 @@ var StartWithOpenFrameButton = _react.forwardRef.call(void 0,
23733
23754
  className: _chunk65VVJSQZcjs.cn.call(void 0, modeClassName, className),
23734
23755
  style: customStyle,
23735
23756
  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" }),
23757
+ rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.StatusBadge, { text: "Beta", variant: "button", colorScheme: "yellow" }),
23737
23758
  children
23738
23759
  }
23739
23760
  );
@@ -24060,11 +24081,11 @@ function WarningBlock({ title, icon = DEFAULT_ICON, children, className }) {
24060
24081
 
24061
24082
  function VideoBitesDisplay({
24062
24083
  bites,
24063
- title = _chunk5V7BIUGAcjs.DEFAULT_VIDEO_BITES_TITLE,
24084
+ title = _chunkY3EBUFX4cjs.DEFAULT_VIDEO_BITES_TITLE,
24064
24085
  filterPublished = true,
24065
24086
  showTitle = true
24066
24087
  }) {
24067
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkILZEXCJHcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
24088
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKWZ62LPZcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
24068
24089
  }
24069
24090
 
24070
24091
  // src/components/features/walkthrough-video.tsx
@@ -24094,7 +24115,7 @@ function WalkthroughVideo({
24094
24115
  onOpenChange,
24095
24116
  defaultOpen,
24096
24117
  defaultOpenPaused,
24097
- deepLinkParam = _chunkBPAYT72Lcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
24118
+ deepLinkParam = _chunkBTVO676Bcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
24098
24119
  autoPlayCard = false,
24099
24120
  label = "Play Demo Video",
24100
24121
  placement,
@@ -24111,7 +24132,7 @@ function WalkthroughVideo({
24111
24132
  const inline = placement === "inline";
24112
24133
  const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
24113
24134
  const dismissEnabled = dismissal !== false;
24114
- const storageKey = dismissEnabled && dismissal.storageKey || _chunkBPAYT72Lcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
24135
+ const storageKey = dismissEnabled && dismissal.storageKey || _chunkBTVO676Bcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
24115
24136
  const dismissalId = _optionalChain([video, 'optionalAccess', _486 => _486.id]) != null ? String(video.id) : "dismissed";
24116
24137
  const [mounted, setMounted] = _react.useState.call(void 0, false);
24117
24138
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
@@ -24123,7 +24144,7 @@ function WalkthroughVideo({
24123
24144
  let delayElapsed = false;
24124
24145
  let interacted = inline;
24125
24146
  const reveal = () => {
24126
- if (dismissEnabled && _chunkBPAYT72Lcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
24147
+ if (dismissEnabled && _chunkBTVO676Bcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
24127
24148
  setDismissed(true);
24128
24149
  return;
24129
24150
  }
@@ -24160,7 +24181,7 @@ function WalkthroughVideo({
24160
24181
  if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
24161
24182
  };
24162
24183
  }, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId, inline]);
24163
- const hydrated = _chunkILZEXCJHcjs.useIsHydrated.call(void 0, );
24184
+ const hydrated = _chunkKWZ62LPZcjs.useIsHydrated.call(void 0, );
24164
24185
  const previewSuppressed = _react.useMemo.call(void 0, () => {
24165
24186
  if (!hydrated) return false;
24166
24187
  try {
@@ -24410,7 +24431,7 @@ function WalkthroughVideo({
24410
24431
  (e) => {
24411
24432
  e.stopPropagation();
24412
24433
  pausePreviewNow();
24413
- if (dismissEnabled) _chunkBPAYT72Lcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
24434
+ if (dismissEnabled) _chunkBTVO676Bcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
24414
24435
  setDismissed(true);
24415
24436
  },
24416
24437
  [dismissEnabled, storageKey, dismissalId, pausePreviewNow]
@@ -24561,7 +24582,7 @@ function WalkthroughVideo({
24561
24582
  },
24562
24583
  children: [
24563
24584
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24564
- _chunk5V7BIUGAcjs.VideoHoverPreviewSurface,
24585
+ _chunkY3EBUFX4cjs.VideoHoverPreviewSurface,
24565
24586
  {
24566
24587
  url: video.mainVideoUrl || "",
24567
24588
  posterUrl: video.posterUrl ? _chunkE76ONBKFcjs.resizedImageUrl.call(void 0, video.posterUrl, CARD_POSTER_WIDTH_PX) : video.posterUrl,
@@ -24585,7 +24606,7 @@ function WalkthroughVideo({
24585
24606
  `card-${embedUrlKey}`
24586
24607
  ) }),
24587
24608
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24588
- _chunkILZEXCJHcjs.CardHitLayer,
24609
+ _chunkKWZ62LPZcjs.CardHitLayer,
24589
24610
  {
24590
24611
  label: video.title ? `${label}: ${video.title}` : label,
24591
24612
  onPointerDown: pausePreviewNow,
@@ -24701,7 +24722,7 @@ function WalkthroughVideo({
24701
24722
  children: [
24702
24723
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
24703
24724
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24704
- _chunk5V7BIUGAcjs.Video,
24725
+ _chunkY3EBUFX4cjs.Video,
24705
24726
  {
24706
24727
  kind: video.youtubeUrl ? "youtube" : "file",
24707
24728
  url: video.youtubeUrl || video.mainVideoUrl,
@@ -24757,7 +24778,7 @@ function useWalkthroughVideo(opts) {
24757
24778
  const { endpoint, initialData, enabled: enabledGiven = true, transformCaptionsUrl } = opts;
24758
24779
  const inScope = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
24759
24780
  const enabled = enabledGiven && !inScope;
24760
- const captions = _chunkILZEXCJHcjs.useCaptions.call(void 0, );
24781
+ const captions = _chunkKWZ62LPZcjs.useCaptions.call(void 0, );
24761
24782
  const query = _reactquery.useQuery.call(void 0, {
24762
24783
  queryKey: ["walkthrough-video", endpoint],
24763
24784
  enabled,
@@ -24955,7 +24976,7 @@ function VideoSourceSelector({
24955
24976
  }
24956
24977
  function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
24957
24978
  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 }) }),
24979
+ /* @__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
24980
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24960
24981
  "button",
24961
24982
  {
@@ -25479,7 +25500,7 @@ function HighlightVideoSection({
25479
25500
  // Default simple preview — the <Video> SSOT (MuxPlayer) plays
25480
25501
  // MP4 and Mux HLS alike; aspect-video box reserves the height.
25481
25502
  /* @__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 }) }),
25503
+ /* @__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
25504
  onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25484
25505
  "button",
25485
25506
  {
@@ -25506,7 +25527,7 @@ function HighlightConfigSection({
25506
25527
  disabled = false,
25507
25528
  className = ""
25508
25529
  }) {
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,
25530
+ 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
25531
  _chunkV3W56L2Dcjs.Select,
25511
25532
  {
25512
25533
  value: targetDurationSeconds.toString(),
@@ -25607,7 +25628,7 @@ var AIStatusIndicator = ({
25607
25628
  }) => {
25608
25629
  const config = statusConfig[status];
25609
25630
  const displayText = message || config.label;
25610
- const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkBPAYT72Lcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
25631
+ const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkBTVO676Bcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
25611
25632
  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
25633
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25613
25634
  _chunkUNFCRSYIcjs.SparklesIcon,
@@ -25615,7 +25636,7 @@ var AIStatusIndicator = ({
25615
25636
  size: 16,
25616
25637
  className: _chunk65VVJSQZcjs.cn.call(void 0,
25617
25638
  status === "loading" && _chunkXFRBEXQNcjs.LIVE_PULSE_CLASS,
25618
- confidence !== void 0 && status === "success" ? _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25639
+ confidence !== void 0 && status === "success" ? _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25619
25640
  )
25620
25641
  }
25621
25642
  ),
@@ -25624,7 +25645,7 @@ var AIStatusIndicator = ({
25624
25645
  {
25625
25646
  className: _chunk65VVJSQZcjs.cn.call(void 0,
25626
25647
  "text-h6",
25627
- confidence !== void 0 && status === "success" ? _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25648
+ confidence !== void 0 && status === "success" ? _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25628
25649
  ),
25629
25650
  children: displayText
25630
25651
  }
@@ -25634,8 +25655,8 @@ var AIStatusIndicator = ({
25634
25655
  {
25635
25656
  className: _chunk65VVJSQZcjs.cn.call(void 0,
25636
25657
  "rounded-full border px-2 py-0.5 text-h6",
25637
- _chunkBPAYT72Lcjs.getConfidenceBorderClass.call(void 0, confidence),
25638
- _chunkBPAYT72Lcjs.getConfidenceTextClass.call(void 0, confidence)
25658
+ _chunkBTVO676Bcjs.getConfidenceBorderClass.call(void 0, confidence),
25659
+ _chunkBTVO676Bcjs.getConfidenceTextClass.call(void 0, confidence)
25639
25660
  ),
25640
25661
  children: confidenceLabel
25641
25662
  }
@@ -26562,7 +26583,7 @@ function PoliciesTable({
26562
26583
  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
26584
  _chunkTF5D5MNOcjs.Button,
26564
26585
  {
26565
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, row.original.href),
26586
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, row.original.href),
26566
26587
  variant: "outline",
26567
26588
  size: "icon",
26568
26589
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -26888,7 +26909,7 @@ function TenantsTableView({
26888
26909
  /* @__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
26910
  _chunkTF5D5MNOcjs.Button,
26890
26911
  {
26891
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, getHref(row.original)),
26912
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, getHref(row.original)),
26892
26913
  variant: "outline",
26893
26914
  size: "icon",
26894
26915
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -26966,13 +26987,13 @@ function WaitlistForm({
26966
26987
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
26967
26988
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
26968
26989
  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, );
26990
+ const { toast } = _chunkE64HPPRHcjs.useToast.call(void 0, );
26991
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkE64HPPRHcjs.useHumanitySignals.call(void 0, );
26971
26992
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
26972
- const isClient = _chunkILZEXCJHcjs.useIsHydrated.call(void 0, );
26993
+ const isClient = _chunkKWZ62LPZcjs.useIsHydrated.call(void 0, );
26973
26994
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
26974
26995
  const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
26975
- const rescue = _chunkXVFM6SJAcjs.useFormRescue.call(void 0, {
26996
+ const rescue = _chunkE64HPPRHcjs.useFormRescue.call(void 0, {
26976
26997
  form: rescueForm,
26977
26998
  // The phone is reported as filled only; its value never leaves the form early.
26978
26999
  fieldNames: ["email", "phone"],
@@ -26984,7 +27005,7 @@ function WaitlistForm({
26984
27005
  _react.useEffect.call(void 0, () => {
26985
27006
  rescue.track({ email, phone }, null);
26986
27007
  }, [email, phone, rescue]);
26987
- const isMailDomainGeneric = _chunkBPAYT72Lcjs.hasGenericEmailDomain.call(void 0, email);
27008
+ const isMailDomainGeneric = _chunkBTVO676Bcjs.hasGenericEmailDomain.call(void 0, email);
26988
27009
  const [syncedDefaultEmail, setSyncedDefaultEmail] = _react.useState.call(void 0, defaultEmail);
26989
27010
  if (syncedDefaultEmail !== defaultEmail) {
26990
27011
  setSyncedDefaultEmail(defaultEmail);
@@ -27018,7 +27039,7 @@ function WaitlistForm({
27018
27039
  setShowConsentError(true);
27019
27040
  return;
27020
27041
  }
27021
- const finalPhone = phone ? _chunkBPAYT72Lcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
27042
+ const finalPhone = phone ? _chunkBTVO676Bcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
27022
27043
  try {
27023
27044
  await onRegister(email, finalPhone, getSignals(), rescue.submitFields());
27024
27045
  rescue.complete();
@@ -27741,7 +27762,7 @@ var typeColorByVariant = {
27741
27762
  error: "text-ods-error"
27742
27763
  };
27743
27764
  var progressColorByVariant2 = {
27744
- ..._chunkXVFM6SJAcjs.progressColorByVariant,
27765
+ ..._chunkE64HPPRHcjs.progressColorByVariant,
27745
27766
  default: "bg-ods-accent",
27746
27767
  info: "bg-ods-accent"
27747
27768
  };
@@ -27820,7 +27841,7 @@ function NotificationTile({
27820
27841
  height: 16,
27821
27842
  unoptimized: true
27822
27843
  }
27823
- ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkXVFM6SJAcjs.dotColorByVariant[accentVariant]) }))) }),
27844
+ ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk65VVJSQZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkE64HPPRHcjs.dotColorByVariant[accentVariant]) }))) }),
27824
27845
  type ? lockscreen ? (
27825
27846
  // A phone names the sender in plain words and never cuts them.
27826
27847
  /* @__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 +28170,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
28149
28170
  ] });
28150
28171
  }
28151
28172
  function DesktopNotificationsToggleRow({ checked, onChange }) {
28152
- const { supported, permission, request } = _chunkXVFM6SJAcjs.useNotificationPermission.call(void 0, );
28173
+ const { supported, permission, request } = _chunkE64HPPRHcjs.useNotificationPermission.call(void 0, );
28153
28174
  if (!supported) return null;
28154
28175
  const blocked = permission === "denied";
28155
28176
  const handleChange = async (value) => {
@@ -29157,7 +29178,7 @@ function getDeviceStatusConfig(status) {
29157
29178
  }
29158
29179
  }
29159
29180
  function getDeviceOperatingSystem(osType) {
29160
- return _chunkBPAYT72Lcjs.getOSPlatformId.call(void 0, osType);
29181
+ return _chunkBTVO676Bcjs.getOSPlatformId.call(void 0, osType);
29161
29182
  }
29162
29183
 
29163
29184
  // src/components/features/devices/device-statuses.ts
@@ -30528,7 +30549,7 @@ function DevicesList({
30528
30549
  const handleClearAll = _react.useCallback.call(void 0, () => patch({ search: "", tags: [] }), [patch]);
30529
30550
  const narrowed = isNarrowed(narrowing);
30530
30551
  const isEmptyState = !isLoading && !isPending && !narrowed && devices.length === 0;
30531
- const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } = _chunkXVFM6SJAcjs.useStickyToolbar.call(void 0, );
30552
+ const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } = _chunkE64HPPRHcjs.useStickyToolbar.call(void 0, );
30532
30553
  const headerOffset = _nullishCoalesce(stickyHeaderOffset, () => ( (stickyToolbar ? measuredOffset : void 0)));
30533
30554
  const actionsColumn = _react.useMemo.call(void 0, () => rowActions ? getDeviceActionsColumn(rowActions) : void 0, [rowActions]);
30534
30555
  return (
@@ -30761,7 +30782,7 @@ function DevicesPanelView({
30761
30782
  actionsVariant: "icon-buttons",
30762
30783
  className,
30763
30784
  selector: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30764
- _chunkILZEXCJHcjs.TabSelector,
30785
+ _chunkKWZ62LPZcjs.TabSelector,
30765
30786
  {
30766
30787
  value: viewMode,
30767
30788
  onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall', _667 => _667(value)]),
@@ -31295,11 +31316,11 @@ var ToolBadge = ({
31295
31316
  iconClassName
31296
31317
  }) => {
31297
31318
  const loading = _chunkXFRBEXQNcjs.useLoadingScope.call(void 0, );
31298
- const text = _nullishCoalesce(label, () => ( (toolType ? _chunkBPAYT72Lcjs.getToolLabel.call(void 0, toolType) : "")));
31319
+ const text = _nullishCoalesce(label, () => ( (toolType ? _chunkBTVO676Bcjs.getToolLabel.call(void 0, toolType) : "")));
31299
31320
  const mark = _nullishCoalesce(icon, () => ( (toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk57B5RUYDcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }) : null)));
31300
31321
  if (loading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ToolBadgeSkeleton, { variant, icon: !!mark, className });
31301
31322
  const linked = (node, linkClassName) => href && targetPlatform ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31302
- _chunkILZEXCJHcjs.NavLinkAnchorViaRuntime,
31323
+ _chunkKWZ62LPZcjs.NavLinkAnchorViaRuntime,
31303
31324
  {
31304
31325
  href,
31305
31326
  targetPlatform,
@@ -31411,7 +31432,7 @@ function LogsTableView({
31411
31432
  cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31412
31433
  ToolBadge,
31413
31434
  {
31414
- toolType: _chunkBPAYT72Lcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
31435
+ toolType: _chunkBTVO676Bcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
31415
31436
  iconClassName: "h-4 w-4 content-md:h-6 content-md:w-6"
31416
31437
  }
31417
31438
  ),
@@ -31423,7 +31444,7 @@ function LogsTableView({
31423
31444
  filter: {
31424
31445
  options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _675 => _675.toolTypes, 'access', _676 => _676.map, 'call', _677 => _677((toolType) => ({
31425
31446
  id: toolType,
31426
- label: _chunkBPAYT72Lcjs.toToolLabel.call(void 0, toolType),
31447
+ label: _chunkBTVO676Bcjs.toToolLabel.call(void 0, toolType),
31427
31448
  value: toolType
31428
31449
  }))]), () => ( []))
31429
31450
  }
@@ -31481,7 +31502,7 @@ function LogsTableView({
31481
31502
  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
31503
  _chunkTF5D5MNOcjs.Button,
31483
31504
  {
31484
- onClick: getLogHref ? _chunkBPAYT72Lcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
31505
+ onClick: getLogHref ? _chunkBTVO676Bcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
31485
31506
  variant: "outline",
31486
31507
  size: "icon",
31487
31508
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -31856,7 +31877,7 @@ function OpenInNewTabCell({ href }) {
31856
31877
  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
31878
  _chunkTF5D5MNOcjs.Button,
31858
31879
  {
31859
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, href),
31880
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, href),
31860
31881
  variant: "outline",
31861
31882
  size: "icon",
31862
31883
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -32005,9 +32026,9 @@ function ScriptSchedulesTable({
32005
32026
 
32006
32027
  // src/components/features/scripts/shell-types.ts
32007
32028
  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 }
32029
+ { id: _chunkBTVO676Bcjs.ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon },
32030
+ { id: _chunkBTVO676Bcjs.ShellTypeValues.CMD, label: "CMD", value: "cmd", icon: _chunkNIVJEJSGcjs.TerminalSquareIcon },
32031
+ { id: _chunkBTVO676Bcjs.ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkTRUW6DDAcjs.TerminalIcon }
32011
32032
  ];
32012
32033
  function scriptShellType(value) {
32013
32034
  return SCRIPT_SHELL_TYPES.find((shell) => shell.value === value);
@@ -33440,7 +33461,7 @@ function ScheduleFormFields({
33440
33461
  disabled = false,
33441
33462
  renderScriptSearch,
33442
33463
  timeReferenceGate = "off",
33443
- platforms = _chunkBPAYT72Lcjs.OS_PLATFORMS,
33464
+ platforms = _chunkBTVO676Bcjs.OS_PLATFORMS,
33444
33465
  comingSoonPlatforms = [],
33445
33466
  getTimeSlots,
33446
33467
  nameLayout = "stacked",
@@ -33586,7 +33607,7 @@ function ScheduleFormFields({
33586
33607
  // src/components/features/scripts/schedule-form/schedule-script-search-field.tsx
33587
33608
 
33588
33609
  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)) });
33610
+ 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
33611
  }
33591
33612
  function ScheduleScriptSearchField({
33592
33613
  scriptId,
@@ -33659,7 +33680,7 @@ function getKnowledgeBaseOpenColumn(getHref) {
33659
33680
  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
33681
  _chunkTF5D5MNOcjs.Button,
33661
33682
  {
33662
- onClick: _chunkBPAYT72Lcjs.openInNewTab.call(void 0, getHref(row.original)),
33683
+ onClick: _chunkBTVO676Bcjs.openInNewTab.call(void 0, getHref(row.original)),
33663
33684
  variant: "outline",
33664
33685
  size: "icon",
33665
33686
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -33785,7 +33806,7 @@ function KnowledgeBaseArticleView({
33785
33806
  className,
33786
33807
  children: [
33787
33808
  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: [
33809
+ /* @__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
33810
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-20 min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33790
33811
  author.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLJT2KRE2cjs.DeletedUserAvatar, { size: "md" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33791
33812
  _chunkHY6BCZH7cjs.SquareAvatar,
@@ -33949,7 +33970,7 @@ function ConversationCard({
33949
33970
  style: tint,
33950
33971
  onClick: selection && ((event) => {
33951
33972
  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;
33973
+ if (!_chunkBTVO676Bcjs.isOwnClick.call(void 0, event.target, event.currentTarget, { controls: true })) return;
33953
33974
  selection.onToggle();
33954
33975
  }),
33955
33976
  children: [
@@ -33972,7 +33993,7 @@ function ConversationCard({
33972
33993
  children: selection.pressed ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXIBCMGBWcjs.CheckIcon, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4UZ62MYcjs.PlusIcon, {})
33973
33994
  }
33974
33995
  ),
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,
33996
+ /* @__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
33997
  "p",
33977
33998
  {
33978
33999
  id: requestId,
@@ -33991,7 +34012,7 @@ function ConversationCard({
33991
34012
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: CONTEXT_TEXT_CLASS, style: partLinesStyle(_optionalChain([lines, 'optionalAccess', _745 => _745.context])), children: context.text })
33992
34013
  ] }),
33993
34014
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33994
- _chunkBPAYT72Lcjs.ChatTurn,
34015
+ _chunkBTVO676Bcjs.ChatTurn,
33995
34016
  {
33996
34017
  avatar: responder.avatar,
33997
34018
  name: responder.name,
@@ -34014,10 +34035,10 @@ function ConversationCard({
34014
34035
  );
34015
34036
  }
34016
34037
  function TurnSkeleton({ avatarPx, meta, children }) {
34017
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBPAYT72Lcjs.TURN_ROW_CLASS, children: [
34038
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBTVO676Bcjs.TURN_ROW_CLASS, children: [
34018
34039
  /* @__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 }),
34040
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkBTVO676Bcjs.TURN_BODY_CLASS, children: [
34041
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBTVO676Bcjs.ChatTurnNameSkeleton, { meta, time: true }),
34021
34042
  children
34022
34043
  ] })
34023
34044
  ] });
@@ -34277,7 +34298,7 @@ function CapabilityExplorer({
34277
34298
  ),
34278
34299
  children: [
34279
34300
  /* @__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 }) }),
34301
+ 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
34302
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
34282
34303
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "flex min-w-0 items-center gap-2 text-ods-text-primary text-h4", children: [
34283
34304
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkV3W56L2Dcjs.TruncateText, { as: "span", variant: "h4", triggerClassName: "flex-1", children: item.title }),
@@ -34358,7 +34379,7 @@ function CapabilityExplorer({
34358
34379
  "span",
34359
34380
  {
34360
34381
  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 })
34382
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3EBUFX4cjs.EntityIcon, { icon: { name: item.iconName }, size: 18 })
34362
34383
  }
34363
34384
  ),
34364
34385
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "min-w-0 flex-1", children: [