@flamingo-stack/openframe-frontend-core 0.0.743 → 0.0.745

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 (84) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-ZP5DFF3Q.cjs → chunk-3LX5AGZO.cjs} +9 -9
  3. package/dist/{chunk-MLZKPDPZ.cjs → chunk-6IQDQQ56.cjs} +25 -25
  4. package/dist/{chunk-NGUJVM6O.cjs → chunk-75BF7YJR.cjs} +7 -7
  5. package/dist/{chunk-6XCQXGQA.cjs → chunk-7KHQHYXL.cjs} +11 -11
  6. package/dist/{chunk-IRWJKVVZ.cjs → chunk-7PQOZLVP.cjs} +9 -9
  7. package/dist/{chunk-7YDF3QBN.cjs → chunk-DJO7YMT3.cjs} +126 -13
  8. package/dist/{chunk-YDFKFLDQ.cjs → chunk-FNIFUCXU.cjs} +3 -3
  9. package/dist/{chunk-YWMUZLU2.cjs → chunk-GEEKJ7SH.cjs} +37 -37
  10. package/dist/{chunk-BM6JZRVD.cjs → chunk-GOTEXQZN.cjs} +40 -16
  11. package/dist/{chunk-TKASH5YC.cjs → chunk-GQ2TRIOV.cjs} +33 -33
  12. package/dist/{chunk-UL6ZZSL4.cjs → chunk-HMSCUL4R.cjs} +4 -4
  13. package/dist/{chunk-MT7ELGCV.cjs → chunk-HVR7DPAY.cjs} +4 -4
  14. package/dist/{chunk-SQHTX5XP.cjs → chunk-M4FKV2U5.cjs} +6 -6
  15. package/dist/{chunk-Y2FN3E32.cjs → chunk-NFINQ7IZ.cjs} +4 -4
  16. package/dist/{chunk-XJO5ZHO6.cjs → chunk-PM5ELQBL.cjs} +17 -17
  17. package/dist/{chunk-WCY35GB5.cjs → chunk-QES5NV4T.cjs} +716 -532
  18. package/dist/{chunk-BNTELSHZ.cjs → chunk-RIGSZEXS.cjs} +66 -66
  19. package/dist/{cloud-tenants-DZC3ACG6.cjs → cloud-tenants-DECPWIYQ.cjs} +4 -4
  20. package/dist/components/case-studies/index.cjs +14 -14
  21. package/dist/components/chat/index.cjs +3 -3
  22. package/dist/components/chat/utils/history-merge.d.ts.map +1 -1
  23. package/dist/components/chat/utils/history-merge.js +25 -1
  24. package/dist/components/contact/index.cjs +5 -5
  25. package/dist/components/docs/index.cjs +8 -8
  26. package/dist/components/embeds/index.cjs +5 -5
  27. package/dist/components/embeds/reddit-embed-client.d.ts +3 -1
  28. package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -1
  29. package/dist/components/embeds/reddit-embed-client.js +5 -3
  30. package/dist/components/embeds/twitter-embed-client.d.ts +3 -1
  31. package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -1
  32. package/dist/components/embeds/twitter-embed-client.js +5 -3
  33. package/dist/components/faq/index.cjs +6 -6
  34. package/dist/components/features/index.cjs +4 -4
  35. package/dist/components/help-center-pages/index.cjs +74 -74
  36. package/dist/components/index.cjs +41 -37
  37. package/dist/components/meeting-scheduler/index.cjs +22 -22
  38. package/dist/components/navigation/index.cjs +7 -7
  39. package/dist/components/onboarding-guides/index.cjs +6 -6
  40. package/dist/components/product-demo/index.cjs +7 -7
  41. package/dist/components/tickets/index.cjs +9 -9
  42. package/dist/components/ui/index.cjs +8 -4
  43. package/dist/components/ui/index.d.ts +1 -0
  44. package/dist/components/ui/index.d.ts.map +1 -1
  45. package/dist/components/ui/index.js +1 -0
  46. package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
  47. package/dist/components/ui/markdown/base-components.js +3 -2
  48. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -1
  49. package/dist/components/ui/markdown/rich/embed-overrides.js +11 -8
  50. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  51. package/dist/components/ui/markdown-editor.js +4 -0
  52. package/dist/components/ui/markdown-link-command.d.ts +37 -0
  53. package/dist/components/ui/markdown-link-command.d.ts.map +1 -0
  54. package/dist/components/ui/markdown-link-command.js +180 -0
  55. package/dist/{devices-MFGE2JQV.cjs → devices-HJKDRWQX.cjs} +5 -5
  56. package/dist/{embeddable-chat-7ZEGCDVF.cjs → embeddable-chat-3SKFBO2P.cjs} +64 -64
  57. package/dist/index.cjs +24 -8
  58. package/dist/{knowledge-7VPS2ZBU.cjs → knowledge-NH2CGY2C.cjs} +5 -5
  59. package/dist/{logs-M3QPAUH7.cjs → logs-KZYIDYQK.cjs} +12 -12
  60. package/dist/{policies-UAVE6X62.cjs → policies-UAVTPIKM.cjs} +8 -8
  61. package/dist/{scripts-EDQ3IQKW.cjs → scripts-FRPY43KU.cjs} +9 -9
  62. package/dist/{software-update-B2MZVNPK.cjs → software-update-AEJJNLX5.cjs} +7 -7
  63. package/dist/utils/index.cjs +119 -4
  64. package/dist/utils/index.d.ts +1 -0
  65. package/dist/utils/index.d.ts.map +1 -1
  66. package/dist/utils/index.js +1 -0
  67. package/dist/utils/markdown-link.d.ts +44 -0
  68. package/dist/utils/markdown-link.d.ts.map +1 -0
  69. package/dist/utils/markdown-link.js +83 -0
  70. package/dist/utils/markdown-to-plain.d.ts +3 -16
  71. package/dist/utils/markdown-to-plain.d.ts.map +1 -1
  72. package/dist/utils/markdown-to-plain.js +33 -3
  73. package/package.json +3 -1
  74. package/src/components/chat/utils/history-merge.ts +46 -1
  75. package/src/components/embeds/reddit-embed-client.tsx +7 -3
  76. package/src/components/embeds/twitter-embed-client.tsx +7 -3
  77. package/src/components/ui/index.ts +1 -0
  78. package/src/components/ui/markdown/base-components.tsx +5 -2
  79. package/src/components/ui/markdown/rich/embed-overrides.tsx +12 -9
  80. package/src/components/ui/markdown-editor.tsx +6 -0
  81. package/src/components/ui/markdown-link-command.tsx +252 -0
  82. package/src/utils/index.ts +1 -0
  83. package/src/utils/markdown-link.ts +148 -0
  84. package/src/utils/markdown-to-plain.ts +64 -22
@@ -109,7 +109,7 @@ var _chunkYUMFVQINcjs = require('./chunk-YUMFVQIN.cjs');
109
109
 
110
110
 
111
111
 
112
- var _chunkBM6JZRVDcjs = require('./chunk-BM6JZRVD.cjs');
112
+ var _chunkGOTEXQZNcjs = require('./chunk-GOTEXQZN.cjs');
113
113
 
114
114
 
115
115
 
@@ -132,7 +132,10 @@ var _chunkBM6JZRVDcjs = require('./chunk-BM6JZRVD.cjs');
132
132
 
133
133
 
134
134
 
135
- var _chunk7YDF3QBNcjs = require('./chunk-7YDF3QBN.cjs');
135
+
136
+
137
+
138
+ var _chunkDJO7YMT3cjs = require('./chunk-DJO7YMT3.cjs');
136
139
 
137
140
 
138
141
 
@@ -657,7 +660,7 @@ function ThemeProvider({ children, ...overrides }) {
657
660
  var useTheme = _nextthemes.useTheme;
658
661
  function useThemeToggle() {
659
662
  const { resolvedTheme, theme, setTheme } = useTheme();
660
- const mounted = _chunk7YDF3QBNcjs.useIsHydrated.call(void 0, );
663
+ const mounted = _chunkDJO7YMT3cjs.useIsHydrated.call(void 0, );
661
664
  const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
662
665
  const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
663
666
  const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
@@ -4353,7 +4356,7 @@ function AdminFormDrawer({
4353
4356
  "form",
4354
4357
  {
4355
4358
  id: formId,
4356
- ..._chunkBM6JZRVDcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4359
+ ..._chunkGOTEXQZNcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4357
4360
  className: "flex flex-col gap-[var(--spacing-system-lf)]",
4358
4361
  onSubmit: (e) => {
4359
4362
  e.preventDefault();
@@ -4463,7 +4466,7 @@ function AdminFormModal({
4463
4466
  "form",
4464
4467
  {
4465
4468
  id: formId,
4466
- ..._chunkBM6JZRVDcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4469
+ ..._chunkGOTEXQZNcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
4467
4470
  className: "flex min-h-0 flex-1 flex-col",
4468
4471
  onSubmit: (e) => {
4469
4472
  e.preventDefault();
@@ -5762,7 +5765,7 @@ function EmbedViewerFrame({
5762
5765
  const controllerRef = _react.useRef.call(void 0, null);
5763
5766
  _react.useEffect.call(void 0, () => {
5764
5767
  if (!fullscreenControl) return void 0;
5765
- const controller = new (0, _chunkBM6JZRVDcjs.FullscreenSwitchController)({
5768
+ const controller = new (0, _chunkGOTEXQZNcjs.FullscreenSwitchController)({
5766
5769
  target: () => frameRef.current,
5767
5770
  onFullscreenChange: setIsFullscreen
5768
5771
  });
@@ -6906,7 +6909,8 @@ var formatTimeAgo = (timestamp) => {
6906
6909
  if (diffSeconds < 86400) return `${Math.floor(diffSeconds / 3600)}h ago`;
6907
6910
  return `${Math.floor(diffSeconds / 86400)}d ago`;
6908
6911
  };
6909
- function RedditEmbedClient({ url, maxWidth = 700 }) {
6912
+ function RedditEmbedClient({ url, maxWidth = 700, rel }) {
6913
+ const postLinkRel = _chunkDJO7YMT3cjs.renderedLinkRel.call(void 0, rel, true);
6910
6914
  const { redditProxyUrl } = useRichMarkdownRuntime();
6911
6915
  const [redditData, setRedditData] = _react.useState.call(void 0, null);
6912
6916
  const [loading, setLoading] = _react.useState.call(void 0, true);
@@ -6976,7 +6980,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
6976
6980
  {
6977
6981
  href: url,
6978
6982
  target: "_blank",
6979
- rel: "noopener noreferrer",
6983
+ rel: postLinkRel,
6980
6984
  className: "inline-flex items-center space-x-2 rounded-md bg-[#FF4500] px-4 py-2 text-white transition-colors text-h6 hover:bg-[#E03D00]",
6981
6985
  children: [
6982
6986
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditIcon, {}),
@@ -7201,7 +7205,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
7201
7205
  {
7202
7206
  href: url,
7203
7207
  target: "_blank",
7204
- rel: "noopener noreferrer",
7208
+ rel: postLinkRel,
7205
7209
  className: "inline-flex items-center space-x-2 text-ods-accent transition-colors text-h6 hover:opacity-80",
7206
7210
  children: [
7207
7211
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ExternalLinkIcon2, {}),
@@ -7237,7 +7241,8 @@ var UserIcon3 = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { wid
7237
7241
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "circle", { cx: "12", cy: "7", r: "4" })
7238
7242
  ] });
7239
7243
  var XIcon = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2TEMEXDTcjs.XLogoIcon, { className: "h-5 w-5", color: "currentColor" });
7240
- function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
7244
+ function TwitterEmbedClient({ url, tweetId, maxWidth = 700, rel }) {
7245
+ const postLinkRel = _chunkDJO7YMT3cjs.renderedLinkRel.call(void 0, rel, true);
7241
7246
  const { twitterProxyUrl } = useRichMarkdownRuntime();
7242
7247
  const [tweetData, setTweetData] = _react.useState.call(void 0, null);
7243
7248
  const [fetchLoading, setLoading] = _react.useState.call(void 0, true);
@@ -7301,7 +7306,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
7301
7306
  {
7302
7307
  href: url,
7303
7308
  target: "_blank",
7304
- rel: "noopener noreferrer",
7309
+ rel: postLinkRel,
7305
7310
  className: "inline-flex items-center space-x-2 rounded-md bg-ods-bg-surface px-4 py-2 text-ods-text-primary transition-colors text-h6 hover:bg-ods-bg-active",
7306
7311
  children: [
7307
7312
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, XIcon, {}),
@@ -7406,7 +7411,7 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
7406
7411
  {
7407
7412
  href: url,
7408
7413
  target: "_blank",
7409
- rel: "noopener noreferrer",
7414
+ rel: postLinkRel,
7410
7415
  className: "inline-flex items-center space-x-2 text-ods-accent transition-colors text-h6 hover:opacity-80",
7411
7416
  children: [
7412
7417
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ExternalLinkIcon3, {}),
@@ -7419,14 +7424,17 @@ function TwitterEmbedClient({ url, tweetId, maxWidth = 700 }) {
7419
7424
 
7420
7425
  // src/components/ui/markdown/rich/embed-overrides.tsx
7421
7426
 
7422
- function findFirstHref(node, hostRe) {
7427
+ function findFirstLink(node, hostRe) {
7423
7428
  if (!node || node.type !== "element") return null;
7424
7429
  if (node.tagName === "a") {
7425
- const href = node.properties.href;
7426
- if (typeof href === "string" && hostRe.test(href)) return href;
7430
+ const { href, rel } = node.properties;
7431
+ if (typeof href === "string" && hostRe.test(href)) {
7432
+ const relText = Array.isArray(rel) ? rel.join(" ") : typeof rel === "string" ? rel : void 0;
7433
+ return { href, rel: relText };
7434
+ }
7427
7435
  }
7428
7436
  for (const child of node.children) {
7429
- const found = findFirstHref(child, hostRe);
7437
+ const found = findFirstLink(child, hostRe);
7430
7438
  if (found) return found;
7431
7439
  }
7432
7440
  return null;
@@ -7436,7 +7444,7 @@ function buildRichEmbedOverrides({
7436
7444
  ogEndpointPath,
7437
7445
  textSizes
7438
7446
  }) {
7439
- const standard = _chunk7YDF3QBNcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7447
+ const standard = _chunkDJO7YMT3cjs.buildStandardLeafRenderers.call(void 0, { textSizes });
7440
7448
  return {
7441
7449
  // Fence-language embeds (```youtube-embed etc.); everything else
7442
7450
  // (mermaid, highlighted blocks, inline code) falls through to `standard`.
@@ -7559,12 +7567,12 @@ function buildRichEmbedOverrides({
7559
7567
  const { node, className } = bqProps;
7560
7568
  const classNames = Array.isArray(className) ? className.join(" ") : _nullishCoalesce(className, () => ( ""));
7561
7569
  if (classNames.includes("reddit-embed-bq")) {
7562
- const postUrl = findFirstHref(node, /reddit\.com/);
7563
- if (postUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
7570
+ const post = findFirstLink(node, /reddit\.com/);
7571
+ if (post) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: post.href, rel: post.rel });
7564
7572
  }
7565
7573
  if (classNames.includes("twitter-tweet")) {
7566
- const tweetUrl = findFirstHref(node, /(?:twitter\.com|x\.com)\/[^/]+\/status\//);
7567
- if (tweetUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TwitterEmbedClient, { url: tweetUrl });
7574
+ const tweet = findFirstLink(node, /(?:twitter\.com|x\.com)\/[^/]+\/status\//);
7575
+ if (tweet) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TwitterEmbedClient, { url: tweet.href, rel: tweet.rel });
7568
7576
  }
7569
7577
  return standard.blockquote(bqProps);
7570
7578
  },
@@ -7572,13 +7580,13 @@ function buildRichEmbedOverrides({
7572
7580
  // rich-markdown runtime (Supabase optimization on the hub, identity
7573
7581
  // elsewhere). Guard against empty `![]()`.
7574
7582
  img: ({ src, alt }) => {
7575
- if (!_chunk7YDF3QBNcjs.hasRenderableSrc.call(void 0, src)) return null;
7583
+ if (!_chunkDJO7YMT3cjs.hasRenderableSrc.call(void 0, src)) return null;
7576
7584
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
7577
7585
  },
7578
7586
  // Raw <video> tags in stored content (blog publisher injection) route
7579
7587
  // to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
7580
7588
  video: ({ src, poster, className }) => {
7581
- if (!_chunk7YDF3QBNcjs.hasRenderableSrc.call(void 0, src)) return null;
7589
+ if (!_chunkDJO7YMT3cjs.hasRenderableSrc.call(void 0, src)) return null;
7582
7590
  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, _chunkLJ46XYYPcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
7583
7591
  }
7584
7592
  };
@@ -7687,7 +7695,7 @@ var processShortcodes = (content) => {
7687
7695
  try {
7688
7696
  const urlObj = new URL(url);
7689
7697
  const hostname = urlObj.hostname.toLowerCase();
7690
- const hostIs = (domain) => _chunkBM6JZRVDcjs.hostMatches.call(void 0, hostname, domain);
7698
+ const hostIs = (domain) => _chunkGOTEXQZNcjs.hostMatches.call(void 0, hostname, domain);
7691
7699
  const isYouTubeVideo = hostIs("youtube.com") && urlObj.searchParams.has("v") || hostIs("youtu.be");
7692
7700
  if (isYouTubeVideo || hostIs("reddit.com") || hostIs("twitter.com") || hostIs("x.com") || hostIs("figma.com")) {
7693
7701
  return match;
@@ -7762,13 +7770,13 @@ var RichMarkdownInner = ({
7762
7770
  },
7763
7771
  [resolveLinkEndpointUrl, resolveSource]
7764
7772
  );
7765
- const textSizes = _react.useMemo.call(void 0, () => _chunk7YDF3QBNcjs.resolveTextSizeConfig.call(void 0, "article"), []);
7773
+ const textSizes = _react.useMemo.call(void 0, () => _chunkDJO7YMT3cjs.resolveTextSizeConfig.call(void 0, "article"), []);
7766
7774
  const componentOverrides = _react.useMemo.call(void 0,
7767
7775
  () => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
7768
7776
  [ogApiBaseUrl, ogEndpointPath, textSizes]
7769
7777
  );
7770
7778
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
7771
- _chunk7YDF3QBNcjs.MarkdownEngine,
7779
+ _chunkDJO7YMT3cjs.MarkdownEngine,
7772
7780
  {
7773
7781
  content,
7774
7782
  className,
@@ -7790,7 +7798,7 @@ var RichMarkdownRendererImpl = ({
7790
7798
  className = "",
7791
7799
  sectionIds,
7792
7800
  onInternalLinkClick,
7793
- brokenLinks = _chunk7YDF3QBNcjs.NO_BROKEN_LINKS,
7801
+ brokenLinks = _chunkDJO7YMT3cjs.NO_BROKEN_LINKS,
7794
7802
  currentPath,
7795
7803
  resolveSource = "openframe-docs",
7796
7804
  resolveLinkEndpointUrl = "/api/docs/resolve-link",
@@ -8748,7 +8756,7 @@ function FilterModal({
8748
8756
  const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _146 => _146.defaultSort]), () => ( "desc"));
8749
8757
  const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _147 => _147.sort]), () => ( dateDefaultSort)));
8750
8758
  const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _148 => _148.range]));
8751
- const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunk7YDF3QBNcjs.useScrollFade.call(void 0, );
8759
+ const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkDJO7YMT3cjs.useScrollFade.call(void 0, );
8752
8760
  const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
8753
8761
  const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
8754
8762
  _react.useEffect.call(void 0, () => {
@@ -8894,8 +8902,8 @@ function FilterModal({
8894
8902
  ] })
8895
8903
  }
8896
8904
  ),
8897
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
8898
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
8905
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
8906
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
8899
8907
  ] })
8900
8908
  }
8901
8909
  ),
@@ -9374,7 +9382,7 @@ var BenefitCardGrid = ({ children, className = "", columns = 2 }) => {
9374
9382
 
9375
9383
 
9376
9384
  function PlatformBrowseButton({ item }) {
9377
- const linkProps = _chunk7YDF3QBNcjs.useNavLinkViaRuntime.call(void 0, { href: item.link, targetPlatform: item.targetPlatform });
9385
+ const linkProps = _chunkDJO7YMT3cjs.useNavLinkViaRuntime.call(void 0, { href: item.link, targetPlatform: item.targetPlatform });
9378
9386
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2QMBXGMQcjs.Button, { variant: "outline", linkProps, rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-4 w-4" }), children: [
9379
9387
  "Browse ",
9380
9388
  item.buttonText
@@ -9822,10 +9830,10 @@ var OSTypeBadge = ({
9822
9830
  if (!osType) {
9823
9831
  return labelOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "text-ods-text-secondary", className), children: "Unknown" }) : null;
9824
9832
  }
9825
- const normalized = _chunkBM6JZRVDcjs.normalizeOSType.call(void 0, osType);
9833
+ const normalized = _chunkGOTEXQZNcjs.normalizeOSType.call(void 0, osType);
9826
9834
  if (!normalized && !labelOnly) return null;
9827
- const label = _chunkBM6JZRVDcjs.getOSLabel.call(void 0, osType);
9828
- const IconComponent = _chunkBM6JZRVDcjs.getOSIcon.call(void 0, osType);
9835
+ const label = _chunkGOTEXQZNcjs.getOSLabel.call(void 0, osType);
9836
+ const IconComponent = _chunkGOTEXQZNcjs.getOSIcon.call(void 0, osType);
9829
9837
  if (iconOnly && IconComponent) {
9830
9838
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: _chunk3ATAYP36cjs.cn.call(void 0, iconSize, "text-ods-text-secondary", className) });
9831
9839
  }
@@ -10057,7 +10065,7 @@ function ComplianceLogo({
10057
10065
  fallback = null,
10058
10066
  className
10059
10067
  }) {
10060
- const standard = _chunkBM6JZRVDcjs.complianceStandardForName.call(void 0, ...names);
10068
+ const standard = _chunkGOTEXQZNcjs.complianceStandardForName.call(void 0, ...names);
10061
10069
  if (!standard) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: fallback });
10062
10070
  const Official = standard.logo ? COMPLIANCE_LOGOS[standard.logo] : null;
10063
10071
  return Official ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -11674,7 +11682,7 @@ function TableHeader({
11674
11682
  onFilterChange
11675
11683
  }
11676
11684
  ),
11677
- column.hint ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBM6JZRVDcjs.InfoHint, { label: column.label, children: column.hint }) : null
11685
+ column.hint ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGOTEXQZNcjs.InfoHint, { label: column.label, children: column.hint }) : null
11678
11686
  ] })
11679
11687
  ) : (
11680
11688
  /* Non-filterable column — regular label with optional sort */
@@ -11700,7 +11708,7 @@ function TableHeader({
11700
11708
  hint exists, so a hint-less header keeps its DOM. */
11701
11709
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-start gap-[var(--spacing-system-xxs)]", children: [
11702
11710
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TABLE_HEADER_LABEL_CLASS, children: column.label }),
11703
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBM6JZRVDcjs.InfoHint, { label: column.label, children: column.hint })
11711
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGOTEXQZNcjs.InfoHint, { label: column.label, children: column.hint })
11704
11712
  ] })
11705
11713
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TABLE_HEADER_LABEL_CLASS, children: column.label }),
11706
11714
  getSortIcon(column)
@@ -13041,7 +13049,7 @@ function HeaderCell({ header, sort, onSortChange }) {
13041
13049
  // child of the cell.
13042
13050
  _optionalChain([meta, 'optionalAccess', _234 => _234.hint]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-xxs)]", children: [
13043
13051
  filterTrigger,
13044
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBM6JZRVDcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13052
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGOTEXQZNcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13045
13053
  ] }) : filterTrigger
13046
13054
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13047
13055
  "div",
@@ -13066,7 +13074,7 @@ function HeaderCell({ header, sort, onSortChange }) {
13066
13074
  // centred on the row.
13067
13075
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-start gap-[var(--spacing-system-xxs)]", children: [
13068
13076
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
13069
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBM6JZRVDcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13077
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGOTEXQZNcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
13070
13078
  ] })
13071
13079
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
13072
13080
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -13285,7 +13293,7 @@ function PhoneInput({
13285
13293
  placeholder = "Phone Number (optional)",
13286
13294
  onKeyDown
13287
13295
  }) {
13288
- const { priority, others } = _react.useMemo.call(void 0, () => _chunkBM6JZRVDcjs.getCountryPhoneData.call(void 0, ), []);
13296
+ const { priority, others } = _react.useMemo.call(void 0, () => _chunkGOTEXQZNcjs.getCountryPhoneData.call(void 0, ), []);
13289
13297
  const selectedCountry = _react.useMemo.call(void 0,
13290
13298
  () => [...priority, ...others].find((c) => c.code === countryCode),
13291
13299
  [countryCode, priority, others]
@@ -13300,7 +13308,7 @@ function PhoneInput({
13300
13308
  _optionalChain([onValidationChange, 'optionalCall', _247 => _247(false)]);
13301
13309
  return;
13302
13310
  }
13303
- const invalid = !_chunkBM6JZRVDcjs.validatePhoneNumber.call(void 0, phone, countryCode);
13311
+ const invalid = !_chunkGOTEXQZNcjs.validatePhoneNumber.call(void 0, phone, countryCode);
13304
13312
  setIsInvalid(invalid);
13305
13313
  _optionalChain([onValidationChange, 'optionalCall', _248 => _248(invalid)]);
13306
13314
  },
@@ -14089,6 +14097,177 @@ function TagSearchInput({
14089
14097
 
14090
14098
 
14091
14099
 
14100
+ // src/components/ui/markdown-link-command.tsx
14101
+
14102
+
14103
+ var LINK_REL_CHOICES = [
14104
+ { id: "follow", label: "Follow", hint: "Search engines follow this link. This is the default." },
14105
+ {
14106
+ id: "nofollow",
14107
+ label: "Nofollow",
14108
+ hint: 'Search engines are asked not to follow this link (rel="nofollow").'
14109
+ },
14110
+ {
14111
+ id: "sponsored",
14112
+ label: "Sponsored",
14113
+ hint: 'For ads, paid placements and sponsorships (rel="sponsored").'
14114
+ },
14115
+ { id: "ugc", label: "UGC", hint: 'For links in content written by users, such as comments (rel="ugc").' }
14116
+ ];
14117
+ var LINK_REL_ITEMS = LINK_REL_CHOICES.map(({ id, label }) => ({ id, label }));
14118
+ function choiceOf(rel) {
14119
+ if (rel.includes("sponsored")) return "sponsored";
14120
+ if (rel.includes("ugc")) return "ugc";
14121
+ if (rel.includes("nofollow")) return "nofollow";
14122
+ return "follow";
14123
+ }
14124
+ function MarkdownLinkDialog({ isOpen, initial, editing, onSubmit, onRemove, onClose }) {
14125
+ const formId = _react.useId.call(void 0, );
14126
+ const [text, setText] = _react.useState.call(void 0, initial.text);
14127
+ const [url, setUrl] = _react.useState.call(void 0, initial.url);
14128
+ const [rel, setRel] = _react.useState.call(void 0, initial.rel);
14129
+ const [seededWith, setSeededWith] = _react.useState.call(void 0, { isOpen, initial });
14130
+ if (seededWith.isOpen !== isOpen || seededWith.initial !== initial) {
14131
+ setSeededWith({ isOpen, initial });
14132
+ if (isOpen) {
14133
+ setText(initial.text);
14134
+ setUrl(initial.url);
14135
+ setRel(initial.rel);
14136
+ }
14137
+ }
14138
+ const choice = choiceOf(rel);
14139
+ const trimmedUrl = url.trim();
14140
+ const submit = () => {
14141
+ if (!trimmedUrl) return;
14142
+ onSubmit({ text: text.trim(), url: trimmedUrl, rel });
14143
+ };
14144
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk5TCIRWHLcjs.Modal, { isOpen, onClose, className: "text-left md:max-w-[560px]", children: [
14145
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5TCIRWHLcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5TCIRWHLcjs.ModalTitle, { children: editing ? "Edit link" : "Add link" }) }),
14146
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
14147
+ "form",
14148
+ {
14149
+ id: formId,
14150
+ className: "flex w-full flex-col gap-[var(--spacing-system-l)]",
14151
+ onSubmit: (event) => {
14152
+ event.preventDefault();
14153
+ submit();
14154
+ },
14155
+ children: [
14156
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTRILBJDcjs.Input, { label: "Text", value: text, onChange: (event) => setText(event.target.value), placeholder: "Link text" }),
14157
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14158
+ _chunkHTRILBJDcjs.Input,
14159
+ {
14160
+ label: "URL",
14161
+ value: url,
14162
+ onChange: (event) => setUrl(event.target.value),
14163
+ placeholder: "https://",
14164
+ autoFocus: true,
14165
+ inputMode: "url"
14166
+ }
14167
+ ),
14168
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xsf)]", children: [
14169
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14170
+ _chunkDJO7YMT3cjs.TabSelector,
14171
+ {
14172
+ label: "Search engines",
14173
+ value: choice,
14174
+ onValueChange: (value) => {
14175
+ const next = _nullishCoalesce(_optionalChain([LINK_REL_CHOICES, 'access', _297 => _297.find, 'call', _298 => _298((option) => option.id === value), 'optionalAccess', _299 => _299.id]), () => ( "follow"));
14176
+ setRel(next === "follow" ? [] : [next]);
14177
+ },
14178
+ items: LINK_REL_ITEMS,
14179
+ variant: "secondary"
14180
+ }
14181
+ ),
14182
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: _optionalChain([LINK_REL_CHOICES, 'access', _300 => _300.find, 'call', _301 => _301((option) => option.id === choice), 'optionalAccess', _302 => _302.hint]) })
14183
+ ] })
14184
+ ]
14185
+ }
14186
+ ),
14187
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk5TCIRWHLcjs.ModalFooter, { children: [
14188
+ editing ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { type: "button", variant: "outline", onClick: onRemove, className: "flex-1", children: "Remove link" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { type: "button", variant: "outline", onClick: onClose, className: "flex-1", children: "Cancel" }),
14189
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2QMBXGMQcjs.Button, { type: "submit", form: formId, variant: "accent", disabled: !trimmedUrl, className: "flex-1", children: editing ? "Save" : "Add link" })
14190
+ ] })
14191
+ ] });
14192
+ }
14193
+ var EMPTY_LINK = { text: "", url: "", rel: [] };
14194
+ var LOOKS_LIKE_URL = /^(?:https?:\/\/|www\.|mailto:|\/|#)\S*$/i;
14195
+ function initialFieldsFromSelection(selectedText) {
14196
+ const selected = selectedText.trim();
14197
+ return LOOKS_LIKE_URL.test(selected) ? { text: "", url: selected, rel: [] } : { text: selected, url: "", rel: [] };
14198
+ }
14199
+ function useMarkdownLinkCommand() {
14200
+ const [vendorCommands, setVendorCommands] = _react.useState.call(void 0, void 0);
14201
+ const [pending, setPending] = _react.useState.call(void 0, null);
14202
+ _react.useEffect.call(void 0, () => {
14203
+ let cancelled = false;
14204
+ void (async () => {
14205
+ try {
14206
+ const mod = await Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor")));
14207
+ if (!cancelled && _optionalChain([mod, 'access', _303 => _303.commands, 'optionalAccess', _304 => _304.getCommands])) setVendorCommands(mod.commands.getCommands());
14208
+ } catch (error) {
14209
+ console.error("Failed to load markdown editor toolbar commands:", error);
14210
+ }
14211
+ })();
14212
+ return () => {
14213
+ cancelled = true;
14214
+ };
14215
+ }, []);
14216
+ const commands = _react.useMemo.call(void 0, () => {
14217
+ if (!vendorCommands) return void 0;
14218
+ return vendorCommands.map((command) => {
14219
+ if (command.name !== "link") return command;
14220
+ const linkCommand = {
14221
+ name: "link",
14222
+ keyCommand: "link",
14223
+ shortcuts: "ctrlcmd+l",
14224
+ buttonProps: { "aria-label": "Add or edit a link (ctrl + l)", title: "Add or edit a link (ctrl + l)" },
14225
+ icon: command.icon,
14226
+ execute: (state, api) => {
14227
+ const existing = _chunkDJO7YMT3cjs.findMarkdownLinkAt.call(void 0, state.text, state.selection.start, state.selection.end);
14228
+ setPending(
14229
+ existing ? {
14230
+ api,
14231
+ range: { start: existing.start, end: existing.end },
14232
+ initial: { text: existing.text, url: existing.url, rel: existing.rel },
14233
+ editing: true
14234
+ } : {
14235
+ api,
14236
+ range: state.selection,
14237
+ initial: initialFieldsFromSelection(state.selectedText),
14238
+ editing: false
14239
+ }
14240
+ );
14241
+ }
14242
+ };
14243
+ return linkCommand;
14244
+ });
14245
+ }, [vendorCommands]);
14246
+ const write = (current, text) => {
14247
+ setPending(null);
14248
+ current.api.setSelectionRange(current.range);
14249
+ current.api.replaceSelection(text);
14250
+ };
14251
+ const linkDialog = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14252
+ MarkdownLinkDialog,
14253
+ {
14254
+ isOpen: pending !== null,
14255
+ initial: _nullishCoalesce(_optionalChain([pending, 'optionalAccess', _305 => _305.initial]), () => ( EMPTY_LINK)),
14256
+ editing: _nullishCoalesce(_optionalChain([pending, 'optionalAccess', _306 => _306.editing]), () => ( false)),
14257
+ onSubmit: (link) => {
14258
+ if (pending) write(pending, _chunkDJO7YMT3cjs.formatMarkdownLink.call(void 0, link));
14259
+ },
14260
+ onRemove: () => {
14261
+ if (pending) write(pending, pending.initial.text);
14262
+ },
14263
+ onClose: () => setPending(null)
14264
+ }
14265
+ );
14266
+ return { commands, linkDialog };
14267
+ }
14268
+
14269
+ // src/components/ui/markdown-editor.tsx
14270
+
14092
14271
  var MDEditor = _chunkDEY6XXGOcjs.dynamic.call(void 0, () => Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))), { ssr: false });
14093
14272
  var MARKDOWN_EDITOR_STYLE_ID = "ods-markdown-editor-styles";
14094
14273
  var mdEditorCSS = `
@@ -14186,13 +14365,14 @@ function MarkdownEditor({
14186
14365
  const [isUploading, setIsUploading] = _react.useState.call(void 0, false);
14187
14366
  const [uploadProgress, setUploadProgress] = _react.useState.call(void 0, "");
14188
14367
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
14368
+ const { commands: toolbarCommands, linkDialog } = useMarkdownLinkCommand();
14189
14369
  _react.useEffect.call(void 0, () => {
14190
14370
  let cancelled = false;
14191
14371
  void (async () => {
14192
14372
  try {
14193
14373
  const mod = await Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor")));
14194
14374
  if (cancelled) return;
14195
- if (_optionalChain([mod, 'access', _297 => _297.commands, 'optionalAccess', _298 => _298.getExtraCommands])) {
14375
+ if (_optionalChain([mod, 'access', _307 => _307.commands, 'optionalAccess', _308 => _308.getExtraCommands])) {
14196
14376
  setDefaultExtraCommands(mod.commands.getExtraCommands());
14197
14377
  }
14198
14378
  } catch (error) {
@@ -14230,7 +14410,7 @@ function MarkdownEditor({
14230
14410
  const isImage = _chunkLJ46XYYPcjs.fileMediaType.call(void 0, file) === "image";
14231
14411
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
14232
14412
  insertTextAtCursor(markdown);
14233
- _optionalChain([onFileUploaded, 'optionalCall', _299 => _299(url, file.name)]);
14413
+ _optionalChain([onFileUploaded, 'optionalCall', _309 => _309(url, file.name)]);
14234
14414
  } catch (error) {
14235
14415
  console.error("File upload failed:", error);
14236
14416
  setUploadProgress("Upload failed. Please try again.");
@@ -14244,7 +14424,7 @@ function MarkdownEditor({
14244
14424
  const handleFileInputChange = _react.useCallback.call(void 0,
14245
14425
  (e) => {
14246
14426
  const input = e.target;
14247
- const file = _optionalChain([input, 'access', _300 => _300.files, 'optionalAccess', _301 => _301[0]]);
14427
+ const file = _optionalChain([input, 'access', _310 => _310.files, 'optionalAccess', _311 => _311[0]]);
14248
14428
  if (file) {
14249
14429
  void handleFileUpload(file);
14250
14430
  input.value = "";
@@ -14255,7 +14435,7 @@ function MarkdownEditor({
14255
14435
  const handlePaste = _react.useCallback.call(void 0,
14256
14436
  (e) => {
14257
14437
  if (!onUploadFile) return;
14258
- const items = _optionalChain([e, 'access', _302 => _302.clipboardData, 'optionalAccess', _303 => _303.items]);
14438
+ const items = _optionalChain([e, 'access', _312 => _312.clipboardData, 'optionalAccess', _313 => _313.items]);
14259
14439
  if (!items) return;
14260
14440
  for (const item of items) {
14261
14441
  if (item.type.startsWith("image/")) {
@@ -14280,7 +14460,7 @@ function MarkdownEditor({
14280
14460
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
14281
14461
  icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-3 w-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-3 w-3" }),
14282
14462
  execute: () => {
14283
- _optionalChain([fileInputRef, 'access', _304 => _304.current, 'optionalAccess', _305 => _305.click, 'call', _306 => _306()]);
14463
+ _optionalChain([fileInputRef, 'access', _314 => _314.current, 'optionalAccess', _315 => _315.click, 'call', _316 => _316()]);
14284
14464
  }
14285
14465
  } : null;
14286
14466
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -14292,7 +14472,7 @@ function MarkdownEditor({
14292
14472
  const EDGE_ZONE = 60;
14293
14473
  const MAX_SCROLL_SPEED = 15;
14294
14474
  const findScrollParent2 = _react.useCallback.call(void 0, (el) => {
14295
- let node = _optionalChain([el, 'optionalAccess', _307 => _307.parentElement]);
14475
+ let node = _optionalChain([el, 'optionalAccess', _317 => _317.parentElement]);
14296
14476
  while (node && node !== document.documentElement) {
14297
14477
  const { overflowY } = window.getComputedStyle(node);
14298
14478
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -14371,6 +14551,7 @@ function MarkdownEditor({
14371
14551
  visibleDragbar: true,
14372
14552
  height,
14373
14553
  minHeight,
14554
+ commands: toolbarCommands,
14374
14555
  extraCommands,
14375
14556
  style: {
14376
14557
  "--md-editor-text-color": "var(--color-text-primary)",
@@ -14398,6 +14579,7 @@ function MarkdownEditor({
14398
14579
  }
14399
14580
  ),
14400
14581
  uploadProgress && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mt-1 text-ods-text-secondary text-h6", children: uploadProgress }),
14582
+ linkDialog,
14401
14583
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownEditorStyles, {})
14402
14584
  ] });
14403
14585
  }
@@ -14431,7 +14613,7 @@ function matchesAccept(file, accept) {
14431
14613
  });
14432
14614
  }
14433
14615
  function dragHasFiles(e) {
14434
- const types = _optionalChain([e, 'access', _308 => _308.dataTransfer, 'optionalAccess', _309 => _309.types]);
14616
+ const types = _optionalChain([e, 'access', _318 => _318.dataTransfer, 'optionalAccess', _319 => _319.types]);
14435
14617
  if (!types) return false;
14436
14618
  for (let i = 0; i < types.length; i++) {
14437
14619
  if (types[i] === "Files") return true;
@@ -14530,7 +14712,7 @@ function FileUpload({
14530
14712
  e.stopPropagation();
14531
14713
  setDragActive(false);
14532
14714
  if (disabled) return;
14533
- if (_optionalChain([e, 'access', _310 => _310.dataTransfer, 'access', _311 => _311.files, 'optionalAccess', _312 => _312.length])) {
14715
+ if (_optionalChain([e, 'access', _320 => _320.dataTransfer, 'access', _321 => _321.files, 'optionalAccess', _322 => _322.length])) {
14534
14716
  handleFiles(e.dataTransfer.files);
14535
14717
  }
14536
14718
  };
@@ -14558,7 +14740,7 @@ function FileUpload({
14558
14740
  e.preventDefault();
14559
14741
  dragCounter = 0;
14560
14742
  setDragActive(false);
14561
- if (_optionalChain([e, 'access', _313 => _313.dataTransfer, 'optionalAccess', _314 => _314.files, 'optionalAccess', _315 => _315.length])) {
14743
+ if (_optionalChain([e, 'access', _323 => _323.dataTransfer, 'optionalAccess', _324 => _324.files, 'optionalAccess', _325 => _325.length])) {
14562
14744
  handleFilesRef.current(e.dataTransfer.files);
14563
14745
  }
14564
14746
  };
@@ -14580,7 +14762,7 @@ function FileUpload({
14580
14762
  };
14581
14763
  }, [acceptWindowDrops, disabled]);
14582
14764
  const handleFileSelect = (e) => {
14583
- if (_optionalChain([e, 'access', _316 => _316.target, 'access', _317 => _317.files, 'optionalAccess', _318 => _318.length])) {
14765
+ if (_optionalChain([e, 'access', _326 => _326.target, 'access', _327 => _327.files, 'optionalAccess', _328 => _328.length])) {
14584
14766
  handleFiles(e.target.files);
14585
14767
  }
14586
14768
  };
@@ -14598,7 +14780,7 @@ function FileUpload({
14598
14780
  const openDialog = async () => {
14599
14781
  if (disabled) return;
14600
14782
  if (!pickFiles) {
14601
- _optionalChain([fileInputRef, 'access', _319 => _319.current, 'optionalAccess', _320 => _320.click, 'call', _321 => _321()]);
14783
+ _optionalChain([fileInputRef, 'access', _329 => _329.current, 'optionalAccess', _330 => _330.click, 'call', _331 => _331()]);
14602
14784
  return;
14603
14785
  }
14604
14786
  try {
@@ -14671,7 +14853,7 @@ function FileUpload({
14671
14853
  "button",
14672
14854
  {
14673
14855
  type: "button",
14674
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _322 => _322(entry.id)]),
14856
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _332 => _332(entry.id)]),
14675
14857
  className: "shrink-0 text-ods-error transition-opacity hover:opacity-80",
14676
14858
  "aria-label": `Remove ${entry.fileName}`,
14677
14859
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIYHH5EIOcjs.TrashIcon, { className: "size-6" })
@@ -14803,7 +14985,7 @@ function ImageUploader({
14803
14985
  onChange(file);
14804
14986
  };
14805
14987
  const handleFileSelect = (e) => {
14806
- validateAndEmit(_optionalChain([e, 'access', _323 => _323.target, 'access', _324 => _324.files, 'optionalAccess', _325 => _325[0]]));
14988
+ validateAndEmit(_optionalChain([e, 'access', _333 => _333.target, 'access', _334 => _334.files, 'optionalAccess', _335 => _335[0]]));
14807
14989
  if (inputRef.current) inputRef.current.value = "";
14808
14990
  };
14809
14991
  const handleDrag = (e) => {
@@ -14818,11 +15000,11 @@ function ImageUploader({
14818
15000
  e.stopPropagation();
14819
15001
  setDragActive(false);
14820
15002
  if (!interactive) return;
14821
- validateAndEmit(_optionalChain([e, 'access', _326 => _326.dataTransfer, 'access', _327 => _327.files, 'optionalAccess', _328 => _328[0]]));
15003
+ validateAndEmit(_optionalChain([e, 'access', _336 => _336.dataTransfer, 'access', _337 => _337.files, 'optionalAccess', _338 => _338[0]]));
14822
15004
  };
14823
15005
  const openDialog = () => {
14824
15006
  if (!interactive) return;
14825
- _optionalChain([inputRef, 'access', _329 => _329.current, 'optionalAccess', _330 => _330.click, 'call', _331 => _331()]);
15007
+ _optionalChain([inputRef, 'access', _339 => _339.current, 'optionalAccess', _340 => _340.click, 'call', _341 => _341()]);
14826
15008
  };
14827
15009
  const handleRootKeyDown = (e) => {
14828
15010
  if (hasImage || !interactive) return;
@@ -14994,8 +15176,8 @@ function ColorPresetSelect({
14994
15176
  }) {
14995
15177
  const selectedPreset = presets.find((p) => p.key === presetKey);
14996
15178
  const isCustom = !selectedPreset;
14997
- const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _332 => _332.label]), () => ( "Custom"));
14998
- const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _333 => _333.color]), () => ( value));
15179
+ const displayLabel = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _342 => _342.label]), () => ( "Custom"));
15180
+ const displayColor = _nullishCoalesce(_optionalChain([selectedPreset, 'optionalAccess', _343 => _343.color]), () => ( value));
14999
15181
  const groups = [
15000
15182
  {
15001
15183
  items: [
@@ -15291,7 +15473,7 @@ function TicketStatusConfigRow({
15291
15473
  {
15292
15474
  id: nameInputId,
15293
15475
  value: name,
15294
- onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _334 => _334(e.target.value)]),
15476
+ onChange: (e) => _optionalChain([onNameChange, 'optionalCall', _344 => _344(e.target.value)]),
15295
15477
  disabled: isSystem,
15296
15478
  readOnly: isSystem,
15297
15479
  maxLength: 50
@@ -15382,7 +15564,7 @@ function formatTestRunDuration(ms) {
15382
15564
  var RESULT_COLUMN_MIN_WIDTH = 176;
15383
15565
  var SKELETON_COLUMNS = 6;
15384
15566
  function TestResultsSkeleton() {
15385
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
15567
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
15386
15568
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-[160px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded-sm bg-ods-bg-surface" }) }, `skeleton-header-${i}`)) }),
15387
15569
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "animate-pulse overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[66px] items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)] 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, "div", { className: "h-5 w-3/4 rounded-sm bg-ods-bg-surface" }) }, `skeleton-cell-${i}`)) }) })
15388
15570
  ] }) });
@@ -15417,7 +15599,7 @@ function TestResultsTable({ rows, loading }) {
15417
15599
  if (loading) {
15418
15600
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
15419
15601
  }
15420
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.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: [
15602
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.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: [
15421
15603
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
15422
15604
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
15423
15605
  ] }) }) });
@@ -15833,14 +16015,14 @@ function TicketInfoSection({
15833
16015
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15834
16016
  _chunkABLUMGCIcjs.SquareAvatar,
15835
16017
  {
15836
- src: _optionalChain([organization, 'optionalAccess', _335 => _335.imageSrc]),
15837
- alt: _optionalChain([organization, 'optionalAccess', _336 => _336.name]),
15838
- fallback: _optionalChain([organization, 'optionalAccess', _337 => _337.name]) || "Org",
16018
+ src: _optionalChain([organization, 'optionalAccess', _345 => _345.imageSrc]),
16019
+ alt: _optionalChain([organization, 'optionalAccess', _346 => _346.name]),
16020
+ fallback: _optionalChain([organization, 'optionalAccess', _347 => _347.name]) || "Org",
15839
16021
  size: "md",
15840
16022
  className: "shrink-0"
15841
16023
  }
15842
16024
  ),
15843
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([organization, 'optionalAccess', _338 => _338.name]) || "Unassigned", label: "Organization" })
16025
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([organization, 'optionalAccess', _348 => _348.name]) || "Unassigned", label: "Organization" })
15844
16026
  ] }),
15845
16027
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15846
16028
  AssigneeDropdown,
@@ -15858,7 +16040,7 @@ function TicketInfoSection({
15858
16040
  ] }),
15859
16041
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block truncate text-ods-text-secondary text-h6", children: "Assigned" })
15860
16042
  ] }) }),
15861
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _339 => _339.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _340 => _340.icon]), onClick: _optionalChain([device, 'optionalAccess', _341 => _341.onClick]) }),
16043
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _349 => _349.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _350 => _350.icon]), onClick: _optionalChain([device, 'optionalAccess', _351 => _351.onClick]) }),
15862
16044
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
15863
16045
  (status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15864
16046
  _chunkOWGLRE74cjs.TicketStatusTag,
@@ -15900,7 +16082,7 @@ function TicketInfoSection({
15900
16082
  expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
15901
16083
  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" }) }),
15902
16084
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
15903
- description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.SimpleMarkdownRenderer, { content: description }),
16085
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.SimpleMarkdownRenderer, { content: description }),
15904
16086
  attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
15905
16087
  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, _chunkABLUMGCIcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
15906
16088
  (notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15963,7 +16145,7 @@ function TakeOverTicketModal({
15963
16145
  setAssigneeId(_nullishCoalesce(initialAssigneeId, () => ( null)));
15964
16146
  }
15965
16147
  }
15966
- const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _342 => _342[0], 'optionalAccess', _343 => _343.value]))), () => ( null));
16148
+ const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _352 => _352[0], 'optionalAccess', _353 => _353.value]))), () => ( null));
15967
16149
  const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
15968
16150
  const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
15969
16151
  const handleConfirm = () => {
@@ -16061,7 +16243,7 @@ function ReopenTicketModal({
16061
16243
  setReason("");
16062
16244
  }
16063
16245
  }
16064
- const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _344 => _344[0], 'optionalAccess', _345 => _345.value]))), () => ( null));
16246
+ const selectedStatusId = _nullishCoalesce(_nullishCoalesce(statusId, () => ( _optionalChain([statusOptions, 'access', _354 => _354[0], 'optionalAccess', _355 => _355.value]))), () => ( null));
16065
16247
  const selectedStatus = statusOptions.find((o) => o.value === selectedStatusId);
16066
16248
  const selectedAssignee = assigneeOptions.find((o) => o.value === assigneeId);
16067
16249
  const handleConfirm = () => {
@@ -16302,7 +16484,7 @@ function usePhotoOrientations(urls) {
16302
16484
  }
16303
16485
  };
16304
16486
  }, [key]);
16305
- return _optionalChain([measured, 'optionalAccess', _346 => _346.key]) === key ? measured.byUrl : null;
16487
+ return _optionalChain([measured, 'optionalAccess', _356 => _356.key]) === key ? measured.byUrl : null;
16306
16488
  }
16307
16489
  function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, loading = false }) {
16308
16490
  const rootRef = _react.useRef.call(void 0, null);
@@ -16311,7 +16493,7 @@ function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, load
16311
16493
  const root = rootRef.current;
16312
16494
  if (!root) return void 0;
16313
16495
  const read = () => setBox(
16314
- (previous) => _optionalChain([previous, 'optionalAccess', _347 => _347.width]) === root.clientWidth && previous.height === root.clientHeight ? previous : { width: root.clientWidth, height: root.clientHeight }
16496
+ (previous) => _optionalChain([previous, 'optionalAccess', _357 => _357.width]) === root.clientWidth && previous.height === root.clientHeight ? previous : { width: root.clientWidth, height: root.clientHeight }
16315
16497
  );
16316
16498
  read();
16317
16499
  if (typeof ResizeObserver === "undefined") return void 0;
@@ -16356,11 +16538,11 @@ function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, load
16356
16538
  if (images.length === 0 && !loading) return null;
16357
16539
  const columnsToDraw = loading || requestWidth === void 0 ? null : layout;
16358
16540
  const gridStyle = {
16359
- gridTemplateColumns: `repeat(${_optionalChain([columnsToDraw, 'optionalAccess', _348 => _348.length]) || columns}, minmax(0, 1fr))`,
16541
+ gridTemplateColumns: `repeat(${_optionalChain([columnsToDraw, 'optionalAccess', _358 => _358.length]) || columns}, minmax(0, 1fr))`,
16360
16542
  gap: COLUMN_GAP_PX
16361
16543
  };
16362
16544
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootRef, "aria-hidden": "true", className: _chunk3ATAYP36cjs.cn.call(void 0, "grid overflow-hidden", className), style: gridStyle, children: columnsToDraw ? columnsToDraw.map((column, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16363
- _chunk7YDF3QBNcjs.MarqueeWall,
16545
+ _chunkDJO7YMT3cjs.MarqueeWall,
16364
16546
  {
16365
16547
  axis: "y",
16366
16548
  reverse: index % 2 === 1,
@@ -16590,7 +16772,7 @@ function subscribeToClock(onTick) {
16590
16772
  }
16591
16773
  function readClock() {
16592
16774
  const parts = new Intl.DateTimeFormat(void 0, { hour: "numeric", minute: "2-digit" }).formatToParts(/* @__PURE__ */ new Date());
16593
- const part = (type) => _nullishCoalesce(_optionalChain([parts, 'access', _349 => _349.find, 'call', _350 => _350((p) => p.type === type), 'optionalAccess', _351 => _351.value]), () => ( ""));
16775
+ const part = (type) => _nullishCoalesce(_optionalChain([parts, 'access', _359 => _359.find, 'call', _360 => _360((p) => p.type === type), 'optionalAccess', _361 => _361.value]), () => ( ""));
16594
16776
  return `${part("hour")}:${part("minute")}`;
16595
16777
  }
16596
16778
  function readDate() {
@@ -16775,7 +16957,7 @@ var TRIAL_TERM_ICONS = {
16775
16957
  };
16776
16958
  var DEFAULT_TRIAL_TERMS = ["cancel", "length", "noContract"];
16777
16959
  function trialBenefits(trialDays, terms = DEFAULT_TRIAL_TERMS) {
16778
- const labels = _chunkBM6JZRVDcjs.trialLabels.call(void 0, trialDays);
16960
+ const labels = _chunkGOTEXQZNcjs.trialLabels.call(void 0, trialDays);
16779
16961
  return terms.flatMap((term) => {
16780
16962
  const label = labels[term];
16781
16963
  return label ? [{ icon: TRIAL_TERM_ICONS[term], label }] : [];
@@ -16993,7 +17175,7 @@ function SnapCarousel({
16993
17175
  const auto = _chunkCSJO7ZGNcjs.useAutoplay.call(void 0, inView);
16994
17176
  const count = items.length;
16995
17177
  const slideStep = _react.useCallback.call(void 0, () => {
16996
- const first = _optionalChain([trackRef, 'access', _352 => _352.current, 'optionalAccess', _353 => _353.firstElementChild]);
17178
+ const first = _optionalChain([trackRef, 'access', _362 => _362.current, 'optionalAccess', _363 => _363.firstElementChild]);
16997
17179
  return first ? first.offsetWidth + GAP_PX : 0;
16998
17180
  }, []);
16999
17181
  const goTo = _react.useCallback.call(void 0,
@@ -17382,10 +17564,10 @@ function AccountDetailsFields({
17382
17564
  onKeyDown,
17383
17565
  layout = "stacked"
17384
17566
  }) {
17385
- const firstNameErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _354 => _354.firstName]), firstName);
17386
- const lastNameErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _355 => _355.lastName]), lastName);
17387
- const passwordErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _356 => _356.password]), password);
17388
- const confirmErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _357 => _357.confirmPassword]), confirmPassword);
17567
+ const firstNameErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _364 => _364.firstName]), firstName);
17568
+ const lastNameErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _365 => _365.lastName]), lastName);
17569
+ const passwordErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _366 => _366.password]), password);
17570
+ const confirmErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _367 => _367.confirmPassword]), confirmPassword);
17389
17571
  const names = [
17390
17572
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17391
17573
  _chunkHTRILBJDcjs.Input,
@@ -17633,7 +17815,7 @@ function SsoProviderButtons({
17633
17815
  disabled: disabled || (enabledProviders ? !enabledProviders.includes(provider) : false),
17634
17816
  className: "disabled:bg-ods-bg",
17635
17817
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "h-5 w-5" }),
17636
- onClick: () => _optionalChain([onSsoClick, 'optionalCall', _358 => _358(provider)]),
17818
+ onClick: () => _optionalChain([onSsoClick, 'optionalCall', _368 => _368(provider)]),
17637
17819
  children: `${actionLabel} ${meta.name}`
17638
17820
  },
17639
17821
  provider
@@ -17815,9 +17997,9 @@ function CreateOrganizationForm({
17815
17997
  }) {
17816
17998
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
17817
17999
  const fieldsDisabled = disabled || loading;
17818
- const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _359 => _359.email]), _nullishCoalesce(email, () => ( "")));
17819
- const orgNameErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _360 => _360.organizationName]), organizationName);
17820
- const domainErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _361 => _361.domain]), domain);
18000
+ const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _369 => _369.email]), _nullishCoalesce(email, () => ( "")));
18001
+ const orgNameErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _370 => _370.organizationName]), organizationName);
18002
+ const domainErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _371 => _371.domain]), domain);
17821
18003
  const handleKeyDown = (event) => {
17822
18004
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
17823
18005
  onSubmit();
@@ -17842,11 +18024,11 @@ function CreateOrganizationForm({
17842
18024
  label: "Email",
17843
18025
  placeholder: "username@mail.com",
17844
18026
  value: email,
17845
- error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _362 => _362.message]))),
17846
- errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _363 => _363.variant]),
18027
+ error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _372 => _372.message]))),
18028
+ errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _373 => _373.variant]),
17847
18029
  disabled: fieldsDisabled,
17848
18030
  onBlur: emailErr.onBlur,
17849
- onChange: (event) => _optionalChain([onEmailChange, 'optionalCall', _364 => _364(event.target.value)]),
18031
+ onChange: (event) => _optionalChain([onEmailChange, 'optionalCall', _374 => _374(event.target.value)]),
17850
18032
  onKeyDown: handleKeyDown
17851
18033
  }
17852
18034
  ),
@@ -17870,8 +18052,8 @@ function CreateOrganizationForm({
17870
18052
  label: "Domain",
17871
18053
  placeholder: domainPlaceholder,
17872
18054
  value: domain,
17873
- error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _365 => _365.message]))),
17874
- errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _366 => _366.variant]),
18055
+ error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _375 => _375.message]))),
18056
+ errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _376 => _376.variant]),
17875
18057
  disabled: fieldsDisabled,
17876
18058
  onBlur: domainErr.onBlur,
17877
18059
  endAdornment: domainSuffix ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: domainSuffix }) : void 0,
@@ -17906,7 +18088,7 @@ function CreateOrganizationForm({
17906
18088
  label: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TermsAgreementLabel, { termsUrl, privacyPolicyUrl }),
17907
18089
  checked: agreedToTerms,
17908
18090
  disabled: fieldsDisabled,
17909
- error: _optionalChain([errors, 'optionalAccess', _367 => _367.terms]),
18091
+ error: _optionalChain([errors, 'optionalAccess', _377 => _377.terms]),
17910
18092
  onCheckedChange: onAgreedToTermsChange
17911
18093
  }
17912
18094
  ),
@@ -18033,10 +18215,10 @@ function LoginForm({
18033
18215
  className
18034
18216
  }) {
18035
18217
  const fieldDisabled = disabled || loading;
18036
- const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _368 => _368.email]), email);
18218
+ const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _378 => _378.email]), email);
18037
18219
  const handleKeyDown = (event) => {
18038
18220
  if (event.key !== "Enter" || fieldDisabled || submitDisabled) return;
18039
- _optionalChain([onSubmitClick, 'optionalCall', _369 => _369()]);
18221
+ _optionalChain([onSubmitClick, 'optionalCall', _379 => _379()]);
18040
18222
  };
18041
18223
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18042
18224
  "div",
@@ -18068,8 +18250,8 @@ function LoginForm({
18068
18250
  label: "Email",
18069
18251
  placeholder: emailPlaceholder,
18070
18252
  value: email,
18071
- error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _370 => _370.message]))),
18072
- errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _371 => _371.variant]),
18253
+ error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _380 => _380.message]))),
18254
+ errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _381 => _381.variant]),
18073
18255
  disabled: fieldDisabled,
18074
18256
  onBlur: emailErr.onBlur,
18075
18257
  onChange: (event) => onEmailChange(event.target.value),
@@ -18175,8 +18357,8 @@ function OpenFrameSsoLoginForm({
18175
18357
  className
18176
18358
  }) {
18177
18359
  const fieldsDisabled = disabled || loading;
18178
- const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _372 => _372.email]), email);
18179
- const passwordErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _373 => _373.password]), password);
18360
+ const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _382 => _382.email]), email);
18361
+ const passwordErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _383 => _383.password]), password);
18180
18362
  const handleKeyDown = (event) => {
18181
18363
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18182
18364
  onSubmit();
@@ -18281,7 +18463,7 @@ function OpenFrameSsoSignUpForm({
18281
18463
  className
18282
18464
  }) {
18283
18465
  const fieldsDisabled = disabled || loading;
18284
- const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _374 => _374.email]), email);
18466
+ const emailErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _384 => _384.email]), email);
18285
18467
  const handleKeyDown = (event) => {
18286
18468
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18287
18469
  onSubmit();
@@ -18386,8 +18568,8 @@ function PasswordResetForm({
18386
18568
  className
18387
18569
  }) {
18388
18570
  const fieldsDisabled = disabled || loading;
18389
- const passwordErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _375 => _375.password]), password);
18390
- const confirmErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _376 => _376.confirmPassword]), confirmPassword);
18571
+ const passwordErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _385 => _385.password]), password);
18572
+ const confirmErr = _chunk4FWURR3Wcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _386 => _386.confirmPassword]), confirmPassword);
18391
18573
  const handleKeyDown = (event) => {
18392
18574
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18393
18575
  onSubmit();
@@ -18509,7 +18691,7 @@ function SsoJoinForm({
18509
18691
  className
18510
18692
  }) {
18511
18693
  const fieldsDisabled = disabled || loading;
18512
- const displayName = _optionalChain([name, 'optionalAccess', _377 => _377.trim, 'call', _378 => _378()]) || _optionalChain([email, 'optionalAccess', _379 => _379.trim, 'call', _380 => _380()]) || "";
18694
+ const displayName = _optionalChain([name, 'optionalAccess', _387 => _387.trim, 'call', _388 => _388()]) || _optionalChain([email, 'optionalAccess', _389 => _389.trim, 'call', _390 => _390()]) || "";
18513
18695
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18514
18696
  "div",
18515
18697
  {
@@ -18691,7 +18873,7 @@ function ChangelogManager({
18691
18873
  descriptionLabel = "Description",
18692
18874
  descriptionPlaceholder = "Detailed explanation of the change..."
18693
18875
  }) {
18694
- const tagLabelOf = (value) => _optionalChain([tagOptions, 'optionalAccess', _381 => _381.find, 'call', _382 => _382((o) => o.value === value), 'optionalAccess', _383 => _383.label]);
18876
+ const tagLabelOf = (value) => _optionalChain([tagOptions, 'optionalAccess', _391 => _391.find, 'call', _392 => _392((o) => o.value === value), 'optionalAccess', _393 => _393.label]);
18695
18877
  const entryCount = entries.length;
18696
18878
  const allExpanded = () => new Set(Array.from({ length: entryCount }, (_, i) => i));
18697
18879
  const [expandedIndices, setExpandedIndices] = _react.useState.call(void 0,
@@ -18709,7 +18891,7 @@ function ChangelogManager({
18709
18891
  title: "",
18710
18892
  description: "",
18711
18893
  ...showVisibilityToggle && { visibility: "public" },
18712
- ..._optionalChain([tagOptions, 'optionalAccess', _384 => _384.length]) && { tag: tagOptions[0].value }
18894
+ ..._optionalChain([tagOptions, 'optionalAccess', _394 => _394.length]) && { tag: tagOptions[0].value }
18713
18895
  };
18714
18896
  onChange([...entries, newEntry]);
18715
18897
  setExpandedIndices((prev) => /* @__PURE__ */ new Set([...prev, entries.length]));
@@ -19204,13 +19386,13 @@ var SectionSelector = ({
19204
19386
  const listRef = _react.useRef.call(void 0, null);
19205
19387
  _react.useEffect.call(void 0, () => {
19206
19388
  const list = listRef.current;
19207
- const active = _optionalChain([list, 'optionalAccess', _385 => _385.querySelector, 'call', _386 => _386('[role="tab"][aria-selected="true"]')]);
19389
+ const active = _optionalChain([list, 'optionalAccess', _395 => _395.querySelector, 'call', _396 => _396('[role="tab"][aria-selected="true"]')]);
19208
19390
  if (!list || !active || list.scrollWidth <= list.clientWidth) return;
19209
19391
  const offset = active.getBoundingClientRect().left - list.getBoundingClientRect().left;
19210
19392
  list.scrollLeft += offset - (list.clientWidth - active.clientWidth) / 2;
19211
19393
  }, [activeSection]);
19212
19394
  const enabled = sections.filter((section) => !section.disabled && !disabled);
19213
- const tabStopId = enabled.some((section) => section.id === activeSection) ? activeSection : _optionalChain([enabled, 'access', _387 => _387[0], 'optionalAccess', _388 => _388.id]);
19395
+ const tabStopId = enabled.some((section) => section.id === activeSection) ? activeSection : _optionalChain([enabled, 'access', _397 => _397[0], 'optionalAccess', _398 => _398.id]);
19214
19396
  const onKeyDown = (event) => {
19215
19397
  const step = event.key === "ArrowRight" || event.key === "ArrowDown" ? 1 : event.key === "ArrowLeft" || event.key === "ArrowUp" ? -1 : 0;
19216
19398
  if (!step && event.key !== "Home" && event.key !== "End") return;
@@ -19223,7 +19405,7 @@ var SectionSelector = ({
19223
19405
  const next = event.key === "Home" ? enabled[0] : event.key === "End" ? enabled[enabled.length - 1] : enabled[(at + step + enabled.length) % enabled.length];
19224
19406
  onSectionChange(next.id);
19225
19407
  requestAnimationFrame(
19226
- () => _optionalChain([listRef, 'access', _389 => _389.current, 'optionalAccess', _390 => _390.querySelector, 'call', _391 => _391('[role="tab"][aria-selected="true"]'), 'optionalAccess', _392 => _392.focus, 'call', _393 => _393()])
19408
+ () => _optionalChain([listRef, 'access', _399 => _399.current, 'optionalAccess', _400 => _400.querySelector, 'call', _401 => _401('[role="tab"][aria-selected="true"]'), 'optionalAccess', _402 => _402.focus, 'call', _403 => _403()])
19227
19409
  );
19228
19410
  };
19229
19411
  const getButtonWidthClasses = () => {
@@ -19266,10 +19448,10 @@ var getContentDimensions = (config) => {
19266
19448
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
19267
19449
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
19268
19450
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
19269
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _394 => _394.mobileContentDimensions, 'optionalAccess', _395 => _395.width]))), () => ( defaultMobile.width));
19270
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _396 => _396.mobileContentDimensions, 'optionalAccess', _397 => _397.height]))), () => ( defaultMobile.height));
19271
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _398 => _398.desktopContentDimensions, 'optionalAccess', _399 => _399.width]))), () => ( defaultDesktop.width));
19272
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _400 => _400.desktopContentDimensions, 'optionalAccess', _401 => _401.height]))), () => ( defaultDesktop.height));
19451
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _404 => _404.mobileContentDimensions, 'optionalAccess', _405 => _405.width]))), () => ( defaultMobile.width));
19452
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _406 => _406.mobileContentDimensions, 'optionalAccess', _407 => _407.height]))), () => ( defaultMobile.height));
19453
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _408 => _408.desktopContentDimensions, 'optionalAccess', _409 => _409.width]))), () => ( defaultDesktop.width));
19454
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _410 => _410.desktopContentDimensions, 'optionalAccess', _411 => _411.height]))), () => ( defaultDesktop.height));
19273
19455
  return {
19274
19456
  mobile: { width: mobileWidth, height: mobileHeight },
19275
19457
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -19428,7 +19610,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
19428
19610
  const contentDimensions = getContentDimensions(config);
19429
19611
  const mobileHeight = contentDimensions.mobile.height;
19430
19612
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
19431
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _402 => _402.innerHeight]) * 0.85 || 650)}px`;
19613
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _412 => _412.innerHeight]) * 0.85 || 650)}px`;
19432
19614
  })(),
19433
19615
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
19434
19616
  const contentDimensions = getContentDimensions(config);
@@ -19531,7 +19713,7 @@ var FigmaPrototypeViewer = ({
19531
19713
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
19532
19714
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
19533
19715
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
19534
- config.defaultSectionId || _optionalChain([config, 'access', _403 => _403.sections, 'access', _404 => _404[0], 'optionalAccess', _405 => _405.id]) || ""
19716
+ config.defaultSectionId || _optionalChain([config, 'access', _413 => _413.sections, 'access', _414 => _414[0], 'optionalAccess', _415 => _415.id]) || ""
19535
19717
  );
19536
19718
  const activeSection = externalActiveSection || internalActiveSection;
19537
19719
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -19629,19 +19811,19 @@ var FigmaPrototypeViewer = ({
19629
19811
  setIframeState("READY");
19630
19812
  break;
19631
19813
  case "PRESENTED_NODE_CHANGED":
19632
- if (_optionalChain([figmaEvent, 'access', _406 => _406.data, 'optionalAccess', _407 => _407.presentedNodeId])) {
19814
+ if (_optionalChain([figmaEvent, 'access', _416 => _416.data, 'optionalAccess', _417 => _417.presentedNodeId])) {
19633
19815
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
19634
19816
  if (!isNavigating) {
19635
19817
  const matchingSection = configSections.find((s) => {
19636
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _408 => _408.data, 'optionalAccess', _409 => _409.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _410 => _410.data, 'optionalAccess', _411 => _411.presentedNodeId]);
19637
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _412 => _412.data, 'optionalAccess', _413 => _413.presentedNodeId]) || _optionalChain([s, 'access', _414 => _414.mobileStartingNodeId, 'optionalAccess', _415 => _415.replace, 'call', _416 => _416(":", "-")]) === _optionalChain([figmaEvent, 'access', _417 => _417.data, 'optionalAccess', _418 => _418.presentedNodeId]);
19818
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _418 => _418.data, 'optionalAccess', _419 => _419.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _420 => _420.data, 'optionalAccess', _421 => _421.presentedNodeId]);
19819
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _422 => _422.data, 'optionalAccess', _423 => _423.presentedNodeId]) || _optionalChain([s, 'access', _424 => _424.mobileStartingNodeId, 'optionalAccess', _425 => _425.replace, 'call', _426 => _426(":", "-")]) === _optionalChain([figmaEvent, 'access', _427 => _427.data, 'optionalAccess', _428 => _428.presentedNodeId]);
19638
19820
  return desktopMatch || mobileMatch;
19639
19821
  });
19640
19822
  if (matchingSection && matchingSection.id !== activeSection) {
19641
19823
  if (!externalActiveSection) {
19642
19824
  setInternalActiveSection(matchingSection.id);
19643
19825
  }
19644
- _optionalChain([onSectionChange, 'optionalCall', _419 => _419(matchingSection.id)]);
19826
+ _optionalChain([onSectionChange, 'optionalCall', _429 => _429(matchingSection.id)]);
19645
19827
  }
19646
19828
  }
19647
19829
  }
@@ -19655,7 +19837,7 @@ var FigmaPrototypeViewer = ({
19655
19837
  const navigateToSection = _react.useCallback.call(void 0,
19656
19838
  (sectionId) => {
19657
19839
  const section = config.sections.find((s) => s.id === sectionId);
19658
- if (!section || !_optionalChain([iframeRef, 'access', _420 => _420.current, 'optionalAccess', _421 => _421.contentWindow]) || !isInitialized) {
19840
+ if (!section || !_optionalChain([iframeRef, 'access', _430 => _430.current, 'optionalAccess', _431 => _431.contentWindow]) || !isInitialized) {
19659
19841
  return;
19660
19842
  }
19661
19843
  setIsNavigating(true);
@@ -19663,7 +19845,7 @@ var FigmaPrototypeViewer = ({
19663
19845
  if (!externalActiveSection) {
19664
19846
  setInternalActiveSection(sectionId);
19665
19847
  }
19666
- _optionalChain([config, 'access', _422 => _422.onSectionChange, 'optionalCall', _423 => _423(sectionId)]);
19848
+ _optionalChain([config, 'access', _432 => _432.onSectionChange, 'optionalCall', _433 => _433(sectionId)]);
19667
19849
  const command = {
19668
19850
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
19669
19851
  data: { nodeId }
@@ -20002,7 +20184,7 @@ var FiltersDropdown = ({
20002
20184
  defaults[section.id] = section.defaultSelected || [];
20003
20185
  });
20004
20186
  setSelectedFilters(defaults);
20005
- _optionalChain([onReset, 'optionalCall', _424 => _424()]);
20187
+ _optionalChain([onReset, 'optionalCall', _434 => _434()]);
20006
20188
  setIsOpen(false);
20007
20189
  };
20008
20190
  const handleApply = () => {
@@ -20292,7 +20474,7 @@ function useMediaIntake({ existing, onUpload, onUploaded, kinds = "both" }) {
20292
20474
  try {
20293
20475
  const url = await onUpload(file, mediaType);
20294
20476
  if (!url) throw new Error("no URL");
20295
- _optionalChain([onUploaded, 'optionalCall', _425 => _425({ file, mediaType, url })]);
20477
+ _optionalChain([onUploaded, 'optionalCall', _435 => _435({ file, mediaType, url })]);
20296
20478
  } catch (error) {
20297
20479
  console.error("Upload failed:", error);
20298
20480
  failed.push(file.name);
@@ -20315,7 +20497,7 @@ function useMediaIntake({ existing, onUpload, onUploaded, kinds = "both" }) {
20315
20497
  notice,
20316
20498
  busy: pending.length > 0,
20317
20499
  dropActive,
20318
- open: () => _optionalChain([inputRef, 'access', _426 => _426.current, 'optionalAccess', _427 => _427.click, 'call', _428 => _428()]),
20500
+ open: () => _optionalChain([inputRef, 'access', _436 => _436.current, 'optionalAccess', _437 => _437.click, 'call', _438 => _438()]),
20319
20501
  /** Spread on the element files may be dropped on (the area itself, or a whole gallery). */
20320
20502
  dropHandlers: {
20321
20503
  onDragOver: (event) => {
@@ -20592,60 +20774,60 @@ function CardSkeleton({
20592
20774
  function VendorCardContent({ showMetadata }) {
20593
20775
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 p-4", children: [
20594
20776
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start gap-3", children: [
20595
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[60px] w-[60px] flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "sm", className: "h-11 w-11" }) }),
20777
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[60px] w-[60px] flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "sm", className: "h-11 w-11" }) }),
20596
20778
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
20597
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-3/4" }),
20598
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-1/2" })
20779
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-3/4" }),
20780
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-1/2" })
20599
20781
  ] })
20600
20782
  ] }),
20601
20783
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
20602
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20603
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
20784
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
20785
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
20604
20786
  ] }) }),
20605
20787
  showMetadata && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
20606
20788
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-shrink items-center gap-3 content-md:gap-4", children: [
20607
20789
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
20608
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
20609
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-8" })
20790
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
20791
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-8" })
20610
20792
  ] }),
20611
20793
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
20612
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
20613
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-10" })
20794
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
20795
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-10" })
20614
20796
  ] })
20615
20797
  ] }),
20616
20798
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
20617
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
20618
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
20799
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
20800
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
20619
20801
  ] }) })
20620
20802
  ] })
20621
20803
  ] });
20622
20804
  }
20623
20805
  function BlogCardContent({ showActions, showMetadata }) {
20624
20806
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
20625
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "blog-card-image-container relative aspect-[1200/630] w-full overflow-hidden bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.CardImage, {}) }),
20807
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "blog-card-image-container relative aspect-[1200/630] w-full overflow-hidden bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.CardImage, {}) }),
20626
20808
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-grow flex-col p-4", children: [
20627
20809
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[50.4px] items-center content-md:min-h-[56px] content-lg:min-h-[61.6px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
20628
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-full" }),
20629
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-3/4" })
20810
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-full" }),
20811
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-3/4" })
20630
20812
  ] }) }),
20631
20813
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-3 flex h-[28px] items-center gap-2", children: [
20632
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, { className: "w-16" }),
20633
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, { className: "w-12" })
20814
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, { className: "w-16" }),
20815
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, { className: "w-12" })
20634
20816
  ] }),
20635
20817
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[42px] items-center content-md:min-h-[45px] content-lg:min-h-[48px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
20636
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20637
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-1/2" })
20818
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
20819
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-1/2" })
20638
20820
  ] }) }),
20639
- showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "h-8 w-24" }) }),
20821
+ showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "h-8 w-24" }) }),
20640
20822
  showMetadata && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-auto", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4 border-t border-ods-border pt-4", children: [
20641
20823
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
20642
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "sm" }),
20643
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
20824
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "sm" }),
20825
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
20644
20826
  ] }),
20645
20827
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-3 text-ods-text-muted", children: [
20646
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-12" }),
20828
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-12" }),
20647
20829
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-1 w-1 rounded-full bg-ods-skeleton" }),
20648
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
20830
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
20649
20831
  ] })
20650
20832
  ] }) })
20651
20833
  ] })
@@ -20653,35 +20835,35 @@ function BlogCardContent({ showActions, showMetadata }) {
20653
20835
  }
20654
20836
  function CategoryCardContent() {
20655
20837
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 p-4 content-md:p-6", children: [
20656
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-2 content-md:gap-3", children: Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "lg", className: "flex-shrink-0" }, index)) }),
20838
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-2 content-md:gap-3", children: Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "lg", className: "flex-shrink-0" }, index)) }),
20657
20839
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
20658
20840
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
20659
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-3/4" }),
20660
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-1/2" })
20841
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-3/4" }),
20842
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-1/2" })
20661
20843
  ] }),
20662
20844
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between gap-4 content-md:items-end content-md:gap-6", children: [
20663
20845
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
20664
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20665
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
20846
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
20847
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
20666
20848
  ] }),
20667
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "h-10 w-10 flex-shrink-0 content-md:h-12 content-md:w-12" })
20849
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "h-10 w-10 flex-shrink-0 content-md:h-12 content-md:w-12" })
20668
20850
  ] })
20669
20851
  ] })
20670
20852
  ] });
20671
20853
  }
20672
20854
  function AlternativeCardContent({ showActions }) {
20673
20855
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4 p-4", children: [
20674
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "md", className: "flex-shrink-0" }),
20856
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "md", className: "flex-shrink-0" }),
20675
20857
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
20676
20858
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
20677
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-1/3" }),
20678
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
20859
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-1/3" }),
20860
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
20679
20861
  ] }),
20680
20862
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
20681
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20682
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-5/6" })
20863
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
20864
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-5/6" })
20683
20865
  ] }),
20684
- showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "h-8 w-20" }) })
20866
+ showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "h-8 w-20" }) })
20685
20867
  ] })
20686
20868
  ] });
20687
20869
  }
@@ -20732,12 +20914,12 @@ function HeroSkeleton() {
20732
20914
  background: "radial-gradient(circle at 50% 0%, #242323 0%, #1A1A1A 100%)"
20733
20915
  },
20734
20916
  children: [
20735
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "mb-4 h-12 w-full max-w-4xl content-md:mb-6 content-md:h-20 content-lg:h-24" }),
20917
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "mb-4 h-12 w-full max-w-4xl content-md:mb-6 content-md:h-20 content-lg:h-24" }),
20736
20918
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-8 w-full max-w-4xl space-y-3 px-2 content-md:mb-10", children: [
20737
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "h-5 content-md:h-7" }),
20738
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "mx-auto h-5 w-3/4 content-md:h-7" })
20919
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "h-5 content-md:h-7" }),
20920
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "mx-auto h-5 w-3/4 content-md:h-7" })
20739
20921
  ] }),
20740
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "h-12 w-full content-md:w-64" })
20922
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "h-12 w-full content-md:w-64" })
20741
20923
  ]
20742
20924
  }
20743
20925
  );
@@ -20748,14 +20930,14 @@ function SearchContainerSkeleton({
20748
20930
  }) {
20749
20931
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-4", className || ""), children: [
20750
20932
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 content-md:gap-4", children: [
20751
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Input, { className: "flex-1" }),
20752
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "w-32 content-md:w-40" })
20933
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Input, { className: "flex-1" }),
20934
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "w-32 content-md:w-40" })
20753
20935
  ] }),
20754
20936
  showFilters && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap gap-2", children: [
20755
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, {}),
20756
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, { className: "w-24" }),
20757
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, { className: "w-16" }),
20758
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, { className: "w-20" })
20937
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, {}),
20938
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, { className: "w-24" }),
20939
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, { className: "w-16" }),
20940
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, { className: "w-20" })
20759
20941
  ] })
20760
20942
  ] });
20761
20943
  }
@@ -20774,7 +20956,7 @@ function CategorySidebarSkeleton({ className }) {
20774
20956
  { type: "file", width: "w-36" }
20775
20957
  ];
20776
20958
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full content-lg:w-[320px]", className), children: [
20777
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "mb-4 h-[14px] w-24 rounded" }),
20959
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "mb-4 h-[14px] w-24 rounded" }),
20778
20960
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1.5", children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20779
20961
  "div",
20780
20962
  {
@@ -20784,12 +20966,12 @@ function CategorySidebarSkeleton({ className }) {
20784
20966
  ),
20785
20967
  children: [
20786
20968
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2.5", children: [
20787
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-4 w-4 shrink-0 rounded" }),
20788
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: `h-[14px] ${item.width} rounded` })
20969
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-4 w-4 shrink-0 rounded" }),
20970
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: `h-[14px] ${item.width} rounded` })
20789
20971
  ] }),
20790
20972
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[18px] items-center gap-2", children: [
20791
- item.hasBadge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-[18px] w-14 rounded" }),
20792
- item.type === "folder" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-4 w-4 rounded" })
20973
+ item.hasBadge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-[18px] w-14 rounded" }),
20974
+ item.type === "folder" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-4 w-4 rounded" })
20793
20975
  ] })
20794
20976
  ]
20795
20977
  },
@@ -20799,13 +20981,13 @@ function CategorySidebarSkeleton({ className }) {
20799
20981
  }
20800
20982
  function BreadcrumbSkeleton({ className }) {
20801
20983
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "mb-6 flex items-center space-x-1", className), children: [
20802
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" }),
20803
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
20804
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-24" }),
20805
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
20806
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-32" }),
20807
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
20808
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-24" })
20984
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" }),
20985
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
20986
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-24" }),
20987
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
20988
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-32" }),
20989
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
20990
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-24" })
20809
20991
  ] });
20810
20992
  }
20811
20993
  function ResultsHeaderSkeleton({ className }) {
@@ -20816,7 +20998,7 @@ function ResultsHeaderSkeleton({ className }) {
20816
20998
  "mb-6 flex flex-col items-start justify-between gap-4 content-md:flex-row content-md:items-center",
20817
20999
  className
20818
21000
  ),
20819
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-48" }) })
21001
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-48" }) })
20820
21002
  }
20821
21003
  );
20822
21004
  }
@@ -20850,35 +21032,35 @@ function ArticleLayoutSkeleton({ className }) {
20850
21032
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunk3ATAYP36cjs.cn.call(void 0, "mx-auto max-w-4xl", className), children: [
20851
21033
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "header", { className: "mb-8 space-y-4 content-md:mb-12 content-md:space-y-6", children: [
20852
21034
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
20853
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, {}),
20854
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Chip, { className: "w-16" })
21035
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, {}),
21036
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Chip, { className: "w-16" })
20855
21037
  ] }),
20856
21038
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
20857
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "w-full" }),
20858
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "w-3/4" })
21039
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "w-full" }),
21040
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "w-3/4" })
20859
21041
  ] }),
20860
21042
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 border-t border-ods-divider pt-4", children: [
20861
21043
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
20862
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "sm" }),
20863
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-24" })
21044
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "sm" }),
21045
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-24" })
20864
21046
  ] }),
20865
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-20" }),
20866
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
21047
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-20" }),
21048
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
20867
21049
  ] })
20868
21050
  ] }),
20869
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 content-md:mb-12", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.CardImage, { className: "h-64 w-full content-md:h-96" }) }),
21051
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 content-md:mb-12", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.CardImage, { className: "h-64 w-full content-md:h-96" }) }),
20870
21052
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "prose prose-invert max-w-none space-y-6", children: [
20871
21053
  Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
20872
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20873
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20874
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-5/6" }),
20875
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" })
21054
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21055
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21056
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-5/6" }),
21057
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" })
20876
21058
  ] }, index)),
20877
21059
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "py-4", children: [
20878
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "mb-4 w-2/3" }),
21060
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "mb-4 w-2/3" }),
20879
21061
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
20880
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
20881
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-4/5" })
21062
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21063
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-4/5" })
20882
21064
  ] })
20883
21065
  ] })
20884
21066
  ] })
@@ -21104,11 +21286,11 @@ function StatsSectionSkeleton({ className, columns = 3 }) {
21104
21286
  className
21105
21287
  ),
21106
21288
  children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21107
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "lg" }),
21108
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-3/4" }),
21289
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "lg" }),
21290
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-3/4" }),
21109
21291
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21110
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
21111
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" })
21292
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21293
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" })
21112
21294
  ] })
21113
21295
  ] }) }, i))
21114
21296
  }
@@ -21263,7 +21445,7 @@ function useContentLoading(isLoading) {
21263
21445
 
21264
21446
  function ParagraphSkeleton({ className, lines = 4 }) {
21265
21447
  const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
21266
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: lineWidths[index % lineWidths.length] }, index)) });
21448
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: lineWidths[index % lineWidths.length] }, index)) });
21267
21449
  }
21268
21450
  function ListSkeleton({
21269
21451
  className,
@@ -21273,12 +21455,12 @@ function ListSkeleton({
21273
21455
  }) {
21274
21456
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
21275
21457
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21276
- showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm" }),
21277
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-32 content-md:w-48" })
21458
+ showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm" }),
21459
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-32 content-md:w-48" })
21278
21460
  ] }),
21279
21461
  showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21280
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-8" }),
21281
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4" })
21462
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-8" }),
21463
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "default", className: "h-4 w-4" })
21282
21464
  ] })
21283
21465
  ] }, index)) });
21284
21466
  }
@@ -21288,13 +21470,13 @@ function TableSkeleton({
21288
21470
  columns = 4
21289
21471
  }) {
21290
21472
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-4", className), children: [
21291
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
21473
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
21292
21474
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21293
21475
  "div",
21294
21476
  {
21295
21477
  className: "grid gap-4 border-b border-ods-divider py-2",
21296
21478
  style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
21297
- children: Array.from({ length: columns }).map((_cell, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" }, colIndex))
21479
+ children: Array.from({ length: columns }).map((_cell, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" }, colIndex))
21298
21480
  },
21299
21481
  rowIndex
21300
21482
  )) })
@@ -21303,13 +21485,13 @@ function TableSkeleton({
21303
21485
  function FormSkeleton({ className, fields = 4 }) {
21304
21486
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-6", className), children: [
21305
21487
  Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21306
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-24" }),
21307
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Input, {}),
21308
- index % 3 === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-48" })
21488
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-24" }),
21489
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Input, {}),
21490
+ index % 3 === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-48" })
21309
21491
  ] }, index)),
21310
21492
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 pt-4", children: [
21311
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, {}),
21312
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "bg-ods-border" })
21493
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, {}),
21494
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "bg-ods-border" })
21313
21495
  ] })
21314
21496
  ] });
21315
21497
  }
@@ -21324,7 +21506,7 @@ function NavigationSkeleton({
21324
21506
  className: _chunk3ATAYP36cjs.cn.call(void 0, "flex gap-4 content-md:gap-6", !horizontal && "flex-col", className),
21325
21507
  role: "status",
21326
21508
  "aria-label": "Loading navigation",
21327
- children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-16 content-md:w-20" }, index))
21509
+ children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-16 content-md:w-20" }, index))
21328
21510
  }
21329
21511
  );
21330
21512
  }
@@ -21335,30 +21517,30 @@ function ProfileSkeleton({
21335
21517
  }) {
21336
21518
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-4", className), children: [
21337
21519
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
21338
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "lg" }),
21520
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "lg" }),
21339
21521
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21340
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-1/2" }),
21341
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-1/3" }),
21342
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
21522
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-1/2" }),
21523
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-1/3" }),
21524
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
21343
21525
  ] })
21344
21526
  ] }),
21345
21527
  showBio && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21346
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
21347
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-4/5" }),
21348
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" })
21528
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21529
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-4/5" }),
21530
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" })
21349
21531
  ] }),
21350
21532
  showStats && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-6", children: [
21351
21533
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
21352
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21353
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "mx-auto w-12" })
21534
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21535
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "mx-auto w-12" })
21354
21536
  ] }),
21355
21537
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
21356
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21357
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "mx-auto w-16" })
21538
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21539
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "mx-auto w-16" })
21358
21540
  ] }),
21359
21541
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
21360
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21361
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "mx-auto w-14" })
21542
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21543
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "mx-auto w-14" })
21362
21544
  ] })
21363
21545
  ] })
21364
21546
  ] });
@@ -21370,32 +21552,32 @@ function CommentSkeleton({
21370
21552
  }) {
21371
21553
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-3", className), children: [
21372
21554
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21373
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "sm" }),
21555
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "sm" }),
21374
21556
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 items-center gap-4", children: [
21375
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-24" }),
21376
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" }),
21377
- showRating && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm" }, i)) })
21557
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-24" }),
21558
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" }),
21559
+ showRating && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm" }, i)) })
21378
21560
  ] })
21379
21561
  ] }),
21380
21562
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11 space-y-2", children: [
21381
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
21382
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" }),
21383
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-1/2" })
21563
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21564
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" }),
21565
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-1/2" })
21384
21566
  ] }),
21385
21567
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11 flex gap-4", children: [
21386
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-12" }),
21387
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" }),
21388
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-8" })
21568
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-12" }),
21569
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" }),
21570
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-8" })
21389
21571
  ] }),
21390
21572
  showReplies && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ml-11 space-y-4 border-l border-ods-divider pl-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21391
21573
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Avatar, { size: "sm" }),
21393
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-20" }),
21394
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-12" })
21574
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Avatar, { size: "sm" }),
21575
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-20" }),
21576
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-12" })
21395
21577
  ] }),
21396
21578
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11", children: [
21397
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
21398
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
21579
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21580
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
21399
21581
  ] })
21400
21582
  ] }, index)) })
21401
21583
  ] });
@@ -21408,31 +21590,31 @@ function FeatureListSkeleton({
21408
21590
  }) {
21409
21591
  if (grouped) {
21410
21592
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
21411
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-1/3" }),
21593
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-1/3" }),
21412
21594
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_feature, featureIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21413
- showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm" }),
21414
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
21595
+ showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm" }),
21596
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
21415
21597
  ] }, featureIndex)) })
21416
21598
  ] }, groupIndex)) });
21417
21599
  }
21418
21600
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21419
- showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm" }),
21420
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
21601
+ showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm" }),
21602
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
21421
21603
  ] }, index)) });
21422
21604
  }
21423
21605
  function TimelineSkeleton({ className, items = 5 }) {
21424
21606
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4", children: [
21425
21607
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center", children: [
21426
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm" }),
21608
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm" }),
21427
21609
  index < items - 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2 h-12 w-px bg-ods-border" })
21428
21610
  ] }),
21429
21611
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21430
21612
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21431
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-1/3" }),
21432
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
21613
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-1/3" }),
21614
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
21433
21615
  ] }),
21434
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
21435
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" })
21616
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
21617
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" })
21436
21618
  ] })
21437
21619
  ] }, index)) });
21438
21620
  }
@@ -21448,16 +21630,16 @@ function PricingSkeleton({ className, plans = 3 }) {
21448
21630
  className
21449
21631
  ),
21450
21632
  children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21451
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-1/2" }),
21633
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-1/2" }),
21452
21634
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
21453
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "w-1/3" }),
21454
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-1/4" })
21635
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "w-1/3" }),
21636
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-1/4" })
21455
21637
  ] }),
21456
21638
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_feature, featureIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21457
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm" }),
21458
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" })
21639
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm" }),
21640
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" })
21459
21641
  ] }, featureIndex)) }),
21460
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Button, { className: "w-full" })
21642
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Button, { className: "w-full" })
21461
21643
  ] }) }, index))
21462
21644
  }
21463
21645
  );
@@ -21493,12 +21675,12 @@ function MspProfileFormSkeleton({ className, fields = 4 }) {
21493
21675
  "aria-label": "Loading MSP profile form",
21494
21676
  children: [
21495
21677
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col space-y-2", children: [
21496
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-28" }),
21497
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[180px] flex-1 content-md:min-h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-full w-full rounded-lg", "aria-label": "Loading company logo" }) })
21678
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-28" }),
21679
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[180px] flex-1 content-md:min-h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-full w-full rounded-lg", "aria-label": "Loading company logo" }) })
21498
21680
  ] }),
21499
21681
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col space-y-2", children: [
21500
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-40" }),
21501
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.InteractiveSkeleton.Input, {})
21682
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-40" }),
21683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.InteractiveSkeleton.Input, {})
21502
21684
  ] }, idx)) })
21503
21685
  ]
21504
21686
  }
@@ -21518,13 +21700,13 @@ function CategoryCardSkeleton({ className }) {
21518
21700
  role: "status",
21519
21701
  "aria-label": "Loading category card",
21520
21702
  children: [
21521
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 flex items-center justify-center gap-6", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "circular", className: "h-10 w-10 flex-shrink-0", "aria-label": "Loading icon" }, i)) }),
21703
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 flex items-center justify-center gap-6", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "circular", className: "h-10 w-10 flex-shrink-0", "aria-label": "Loading icon" }, i)) }),
21522
21704
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col space-y-3", children: [
21523
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "w-3/4" }),
21524
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-1/2" }),
21525
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" })
21705
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "w-3/4" }),
21706
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-1/2" }),
21707
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" })
21526
21708
  ] }),
21527
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-12 w-12 rounded-[6px]", "aria-label": "Loading button" }) })
21709
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-12 w-12 rounded-[6px]", "aria-label": "Loading button" }) })
21528
21710
  ]
21529
21711
  }
21530
21712
  );
@@ -21541,12 +21723,12 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
21541
21723
  "aria-label": "Loading category section",
21542
21724
  children: [
21543
21725
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 max-w-xl space-y-2", children: [
21544
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "w-1/2" }),
21545
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-3/4" })
21726
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "w-1/2" }),
21727
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-3/4" })
21546
21728
  ] }),
21547
21729
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21548
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-1/3" }),
21549
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-4 content-md:grid-cols-3", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
21730
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-1/3" }),
21731
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-4 content-md:grid-cols-3", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
21550
21732
  ] }, idx)) })
21551
21733
  ]
21552
21734
  }
@@ -21557,14 +21739,14 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
21557
21739
 
21558
21740
  function WizardLayoutSkeleton({ steps = 6, className }) {
21559
21741
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
21560
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
21742
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
21561
21743
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "max-w-2xl space-y-2", children: [
21562
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Heading, { className: "w-2/3" }),
21563
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-1/2" })
21744
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Heading, { className: "w-2/3" }),
21745
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-1/2" })
21564
21746
  ] }),
21565
21747
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-10 flex justify-between", children: [
21566
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
21567
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-10 w-32 rounded" })
21748
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
21749
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-10 w-32 rounded" })
21568
21750
  ] })
21569
21751
  ] });
21570
21752
  }
@@ -21956,28 +22138,28 @@ function OrganizationCardSkeleton({
21956
22138
  }
21957
22139
  ),
21958
22140
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
21959
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Subheading, { className: "w-3/4" }),
21960
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-1/2" })
22141
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Subheading, { className: "w-3/4" }),
22142
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-1/2" })
21961
22143
  ] })
21962
22144
  ] }),
21963
22145
  showDescription && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
21964
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-full" }),
21965
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Body, { className: "w-2/3" })
22146
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-full" }),
22147
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Body, { className: "w-2/3" })
21966
22148
  ] }) }),
21967
22149
  showFooter && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
21968
22150
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-shrink items-center gap-3 content-md:gap-4", children: [
21969
22151
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
21970
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
21971
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-8" })
22152
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
22153
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-8" })
21972
22154
  ] }),
21973
22155
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
21974
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
21975
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-10" })
22156
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
22157
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-10" })
21976
22158
  ] })
21977
22159
  ] }),
21978
22160
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
21979
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
21980
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.TextSkeleton.Caption, { className: "w-16" })
22161
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
22162
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.TextSkeleton.Caption, { className: "w-16" })
21981
22163
  ] }) })
21982
22164
  ] })
21983
22165
  ] })
@@ -22054,16 +22236,16 @@ function DeviceCardSkeletonGrid({ count = 12, className }) {
22054
22236
 
22055
22237
  function PushButtonSelectorSkeleton({ count = 3, hasTitle }) {
22056
22238
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", role: "status", "aria-label": "Loading options", children: [
22057
- hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-5 w-20", "aria-label": "Loading title" }),
22239
+ hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-5 w-20", "aria-label": "Loading title" }),
22058
22240
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-bg p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
22059
22241
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
22060
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-8 w-8", "aria-label": "Loading icon" }),
22242
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-8 w-8", "aria-label": "Loading icon" }),
22061
22243
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
22062
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "text", className: "mb-2 h-4 w-24", "aria-label": "Loading name" }),
22063
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { variant: "text", className: "h-4 w-36", "aria-label": "Loading description" })
22244
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "text", className: "mb-2 h-4 w-24", "aria-label": "Loading name" }),
22245
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { variant: "text", className: "h-4 w-36", "aria-label": "Loading description" })
22064
22246
  ] })
22065
22247
  ] }),
22066
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.UnifiedSkeleton, { className: "h-6 w-6", "aria-label": "Loading selection state" })
22248
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.UnifiedSkeleton, { className: "h-6 w-6", "aria-label": "Loading selection state" })
22067
22249
  ] }) }, i)) })
22068
22250
  ] });
22069
22251
  }
@@ -22097,9 +22279,9 @@ function PushButtonSelector({
22097
22279
  }) {
22098
22280
  const scrollRef = _react.useRef.call(void 0, null);
22099
22281
  const sentinelRef = _react.useRef.call(void 0, null);
22100
- const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _429 => _429.hasMore]), () => ( false));
22101
- const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _430 => _430.isFetchingMore]), () => ( false));
22102
- const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _431 => _431.onLoadMore]);
22282
+ const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _439 => _439.hasMore]), () => ( false));
22283
+ const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _440 => _440.isFetchingMore]), () => ( false));
22284
+ const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _441 => _441.onLoadMore]);
22103
22285
  const optionCount = options.length;
22104
22286
  _react.useEffect.call(void 0, () => {
22105
22287
  const sentinel = sentinelRef.current;
@@ -22315,14 +22497,14 @@ var MODEL_TOKEN_RATES_COPY = {
22315
22497
  empty: "No token rates are in effect right now."
22316
22498
  };
22317
22499
  function providerMark(providerType, stated, className) {
22318
- const Mark = _chunkKTPR66EEcjs.findIcon.call(void 0, _chunkBM6JZRVDcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
22500
+ const Mark = _chunkKTPR66EEcjs.findIcon.call(void 0, _chunkGOTEXQZNcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
22319
22501
  return Mark ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Mark, { className }) : void 0;
22320
22502
  }
22321
22503
  var PAD_X = "px-[var(--spacing-system-s)]";
22322
22504
  var ROW = "flex items-center gap-[var(--spacing-system-s)]";
22323
22505
  var NUMBER_CELL = "w-16 shrink-0 whitespace-nowrap text-right tabular-nums";
22324
22506
  function useProviderGroup(rates) {
22325
- const groups = _chunkBM6JZRVDcjs.groupTokenRatesByProvider.call(void 0, rates);
22507
+ const groups = _chunkGOTEXQZNcjs.groupTokenRatesByProvider.call(void 0, rates);
22326
22508
  const [picked, setPicked] = _react.useState.call(void 0, null);
22327
22509
  return { groups, group: _nullishCoalesce(groups.find((candidate) => candidate.providerType === picked), () => ( groups[0])), setPicked };
22328
22510
  }
@@ -22333,7 +22515,7 @@ function ProviderTabs({
22333
22515
  className
22334
22516
  }) {
22335
22517
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22336
- _chunk7YDF3QBNcjs.TabSelector,
22518
+ _chunkDJO7YMT3cjs.TabSelector,
22337
22519
  {
22338
22520
  variant: "secondary",
22339
22521
  scrollable: true,
@@ -22341,8 +22523,8 @@ function ProviderTabs({
22341
22523
  onValueChange,
22342
22524
  items: groups.map((candidate) => ({
22343
22525
  id: candidate.providerType,
22344
- label: _chunkBM6JZRVDcjs.tokenRateProviderLabel.call(void 0, candidate.providerType, _optionalChain([candidate, 'access', _432 => _432.rates, 'access', _433 => _433[0], 'optionalAccess', _434 => _434.providerLabel])),
22345
- icon: providerMark(candidate.providerType, _optionalChain([candidate, 'access', _435 => _435.rates, 'access', _436 => _436[0], 'optionalAccess', _437 => _437.providerIcon]), "size-full")
22526
+ label: _chunkGOTEXQZNcjs.tokenRateProviderLabel.call(void 0, candidate.providerType, _optionalChain([candidate, 'access', _442 => _442.rates, 'access', _443 => _443[0], 'optionalAccess', _444 => _444.providerLabel])),
22527
+ icon: providerMark(candidate.providerType, _optionalChain([candidate, 'access', _445 => _445.rates, 'access', _446 => _446[0], 'optionalAccess', _447 => _447.providerIcon]), "size-full")
22346
22528
  })),
22347
22529
  className
22348
22530
  }
@@ -22442,8 +22624,8 @@ function ModelTokenRatesTable({ rates }) {
22442
22624
  className: _chunk3ATAYP36cjs.cn.call(void 0, ROW, PAD_X, "py-[var(--spacing-system-xxs)] text-ods-text-primary text-h6"),
22443
22625
  children: [
22444
22626
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "rowheader", className: "min-w-0 flex-1 truncate", children: rate.displayName || rate.modelName }),
22445
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBM6JZRVDcjs.formatTokenRate.call(void 0, rate.inputTokenRate) }),
22446
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkBM6JZRVDcjs.formatTokenRate.call(void 0, rate.outputTokenRate) })
22627
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkGOTEXQZNcjs.formatTokenRate.call(void 0, rate.inputTokenRate) }),
22628
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkGOTEXQZNcjs.formatTokenRate.call(void 0, rate.outputTokenRate) })
22447
22629
  ]
22448
22630
  },
22449
22631
  rate.modelName
@@ -22515,7 +22697,7 @@ function modelOption(rate) {
22515
22697
  return {
22516
22698
  label: rate.displayName || rate.modelName,
22517
22699
  value: rate.modelName,
22518
- description: _chunkBM6JZRVDcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
22700
+ description: _chunkGOTEXQZNcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
22519
22701
  icon: providerMark(rate.providerType, rate.providerIcon, "size-full text-ods-text-secondary")
22520
22702
  };
22521
22703
  }
@@ -22567,10 +22749,10 @@ function ModelTokenExchange({
22567
22749
  const failed = status === "error" || status === "ready" && !rate;
22568
22750
  const sliderId = _react.useId.call(void 0, );
22569
22751
  const [chosen, setChosen] = _react.useState.call(void 0, null);
22570
- const balance = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(chosen, () => ( defaultAmount)), () => ( _optionalChain([tokenPrice, 'optionalAccess', _438 => _438.tokens]))), () => ( MODEL_TOKEN_EXCHANGE_BALANCE));
22752
+ const balance = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(chosen, () => ( defaultAmount)), () => ( _optionalChain([tokenPrice, 'optionalAccess', _448 => _448.tokens]))), () => ( MODEL_TOKEN_EXCHANGE_BALANCE));
22571
22753
  const max = Math.max(amountRange.max, balance, ...presets.map((preset) => preset.tokens));
22572
- const tokens = _chunkBM6JZRVDcjs.formatTokenAmount.call(void 0, balance);
22573
- const cost = _chunkBM6JZRVDcjs.tokenCost.call(void 0, balance, tokenPrice);
22754
+ const tokens = _chunkGOTEXQZNcjs.formatTokenAmount.call(void 0, balance);
22755
+ const cost = _chunkGOTEXQZNcjs.tokenCost.call(void 0, balance, tokenPrice);
22574
22756
  const balancePrice = cost === null ? null : _chunkABLUMGCIcjs.formatPrice.call(void 0, cost);
22575
22757
  const model = rate ? rate.displayName || rate.modelName : "";
22576
22758
  const options = models.map(modelOption);
@@ -22612,7 +22794,7 @@ function ModelTokenExchange({
22612
22794
  variant: preset.tokens === balance ? "accent" : "outline",
22613
22795
  size: "small",
22614
22796
  onClick: () => setChosen(preset.tokens),
22615
- children: copy.buy.preset(_chunkBM6JZRVDcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
22797
+ children: copy.buy.preset(_chunkGOTEXQZNcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
22616
22798
  },
22617
22799
  preset.label
22618
22800
  )) })
@@ -22628,16 +22810,16 @@ function ModelTokenExchange({
22628
22810
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M5C6UV4cjs.Skeleton, { className: "size-8 rounded" }),
22629
22811
  disabled: true
22630
22812
  })) : providers.map((providerType) => {
22631
- const stated = _nullishCoalesce(models.find((option) => option.providerType === providerType), () => ( (_optionalChain([rate, 'optionalAccess', _439 => _439.providerType]) === providerType ? rate : null)));
22813
+ const stated = _nullishCoalesce(models.find((option) => option.providerType === providerType), () => ( (_optionalChain([rate, 'optionalAccess', _449 => _449.providerType]) === providerType ? rate : null)));
22632
22814
  return {
22633
22815
  id: providerType,
22634
- name: _chunkBM6JZRVDcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _440 => _440.providerLabel])),
22635
- icon: providerMark(providerType, _optionalChain([stated, 'optionalAccess', _441 => _441.providerIcon]), "size-8 text-ods-text-secondary")
22816
+ name: _chunkGOTEXQZNcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _450 => _450.providerLabel])),
22817
+ icon: providerMark(providerType, _optionalChain([stated, 'optionalAccess', _451 => _451.providerIcon]), "size-8 text-ods-text-secondary")
22636
22818
  };
22637
22819
  }),
22638
22820
  selectedIds: provider ? [provider] : [],
22639
22821
  onSelectionChange: (ids) => {
22640
- if (ids[0]) _optionalChain([onProviderChange, 'optionalCall', _442 => _442(ids[0])]);
22822
+ if (ids[0]) _optionalChain([onProviderChange, 'optionalCall', _452 => _452(ids[0])]);
22641
22823
  },
22642
22824
  multiSelect: false
22643
22825
  }
@@ -22646,13 +22828,13 @@ function ModelTokenExchange({
22646
22828
  _chunkU2O5YQRPcjs.Autocomplete,
22647
22829
  {
22648
22830
  label: copy.use.model,
22649
- value: _nullishCoalesce(_optionalChain([rate, 'optionalAccess', _443 => _443.modelName]), () => ( null)),
22831
+ value: _nullishCoalesce(_optionalChain([rate, 'optionalAccess', _453 => _453.modelName]), () => ( null)),
22650
22832
  onChange: (modelName) => {
22651
- if (modelName) _optionalChain([onPick, 'optionalCall', _444 => _444(modelName)]);
22833
+ if (modelName) _optionalChain([onPick, 'optionalCall', _454 => _454(modelName)]);
22652
22834
  },
22653
22835
  options,
22654
22836
  inputValue: query,
22655
- onInputChange: (value) => _optionalChain([onQueryChange, 'optionalCall', _445 => _445(value)]),
22837
+ onInputChange: (value) => _optionalChain([onQueryChange, 'optionalCall', _455 => _455(value)]),
22656
22838
  disableClientFilter: true,
22657
22839
  loading: searching,
22658
22840
  disabled: providers.length === 0,
@@ -22669,7 +22851,7 @@ function ModelTokenExchange({
22669
22851
  {
22670
22852
  size: "plain",
22671
22853
  loading,
22672
- figure: _chunkBM6JZRVDcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _446 => _446.inputTokenRate])),
22854
+ figure: _chunkGOTEXQZNcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _456 => _456.inputTokenRate])),
22673
22855
  words: copy.charge.input
22674
22856
  }
22675
22857
  ),
@@ -22678,7 +22860,7 @@ function ModelTokenExchange({
22678
22860
  {
22679
22861
  size: "plain",
22680
22862
  loading,
22681
- figure: _chunkBM6JZRVDcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _447 => _447.outputTokenRate])),
22863
+ figure: _chunkGOTEXQZNcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _457 => _457.outputTokenRate])),
22682
22864
  words: copy.charge.output
22683
22865
  }
22684
22866
  )
@@ -22690,9 +22872,9 @@ function ModelTokenExchange({
22690
22872
  className: "mt-auto flex flex-col rounded-md border border-ods-accent bg-ods-bg p-[var(--spacing-system-mf)]",
22691
22873
  children: [
22692
22874
  /* @__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, Bar, { className: "w-full max-w-xs" }) : copy.charge.so(_nullishCoalesce(balancePrice, () => ( copy.buy.tokens(tokens))), model) }),
22693
- /* @__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, Bar, { className: "w-40" }) : _chunkBM6JZRVDcjs.formatTokenAmount.call(void 0, _chunkBM6JZRVDcjs.tokensForBalance.call(void 0, balance, rate.inputTokenRate)) }),
22875
+ /* @__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, Bar, { className: "w-40" }) : _chunkGOTEXQZNcjs.formatTokenAmount.call(void 0, _chunkGOTEXQZNcjs.tokensForBalance.call(void 0, balance, rate.inputTokenRate)) }),
22694
22876
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-primary text-h3", children: copy.charge.read }),
22695
- /* @__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, Bar, { className: "w-48" }) : copy.charge.orWritten(_chunkBM6JZRVDcjs.formatTokenAmount.call(void 0, _chunkBM6JZRVDcjs.tokensForBalance.call(void 0, balance, rate.outputTokenRate))) })
22877
+ /* @__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, Bar, { className: "w-48" }) : copy.charge.orWritten(_chunkGOTEXQZNcjs.formatTokenAmount.call(void 0, _chunkGOTEXQZNcjs.tokensForBalance.call(void 0, balance, rate.outputTokenRate))) })
22696
22878
  ]
22697
22879
  }
22698
22880
  )
@@ -23190,14 +23372,14 @@ var ConfidenceBadge = ({
23190
23372
  size = "sm",
23191
23373
  className
23192
23374
  }) => {
23193
- const level = _chunkBM6JZRVDcjs.getConfidenceLevel.call(void 0, confidence);
23375
+ const level = _chunkGOTEXQZNcjs.getConfidenceLevel.call(void 0, confidence);
23194
23376
  if (level === "none") {
23195
23377
  return null;
23196
23378
  }
23197
- const label = _chunkBM6JZRVDcjs.getConfidenceLabel.call(void 0, confidence);
23198
- const borderClass = _chunkBM6JZRVDcjs.getConfidenceBorderClass.call(void 0, confidence);
23199
- const textClass = _chunkBM6JZRVDcjs.getConfidenceTextClass.call(void 0, confidence);
23200
- const bgClass = _chunkBM6JZRVDcjs.getConfidenceBgClass.call(void 0, confidence);
23379
+ const label = _chunkGOTEXQZNcjs.getConfidenceLabel.call(void 0, confidence);
23380
+ const borderClass = _chunkGOTEXQZNcjs.getConfidenceBorderClass.call(void 0, confidence);
23381
+ const textClass = _chunkGOTEXQZNcjs.getConfidenceTextClass.call(void 0, confidence);
23382
+ const bgClass = _chunkGOTEXQZNcjs.getConfidenceBgClass.call(void 0, confidence);
23201
23383
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23202
23384
  "span",
23203
23385
  {
@@ -23248,9 +23430,9 @@ function SEOEditorPreview({
23248
23430
  const [isUploading, setIsUploading] = _react.useState.call(void 0, false);
23249
23431
  const [fileInputRef, setFileInputRef] = _react.useState.call(void 0, null);
23250
23432
  const seoTitleLength = (seoTitle || "").length;
23251
- const seoTitleTooLong = seoTitleLength > _chunkBM6JZRVDcjs.SEO_TITLE_MAX_LENGTH;
23433
+ const seoTitleTooLong = seoTitleLength > _chunkGOTEXQZNcjs.SEO_TITLE_MAX_LENGTH;
23252
23434
  const seoDescriptionLength = (seoDescription || "").length;
23253
- const seoDescriptionTooLong = seoDescriptionLength > _chunkBM6JZRVDcjs.SEO_DESCRIPTION_MAX_LENGTH;
23435
+ const seoDescriptionTooLong = seoDescriptionLength > _chunkGOTEXQZNcjs.SEO_DESCRIPTION_MAX_LENGTH;
23254
23436
  const displayTitle = seoTitle.trim() || title || "Untitled";
23255
23437
  const displayDescription = seoDescription.trim() || summary || "No description";
23256
23438
  const hasOgImage = ogImageUrl.trim();
@@ -23258,7 +23440,7 @@ function SEOEditorPreview({
23258
23440
  const displayImage = hasOgImage || hasFeaturedImage;
23259
23441
  const handleImageUpload = async (event) => {
23260
23442
  if (!onOgImageUpload) return;
23261
- const file = _optionalChain([event, 'access', _448 => _448.target, 'access', _449 => _449.files, 'optionalAccess', _450 => _450[0]]);
23443
+ const file = _optionalChain([event, 'access', _458 => _458.target, 'access', _459 => _459.files, 'optionalAccess', _460 => _460[0]]);
23262
23444
  if (!file) return;
23263
23445
  setIsUploading(true);
23264
23446
  try {
@@ -23275,10 +23457,10 @@ function SEOEditorPreview({
23275
23457
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
23276
23458
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
23277
23459
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23278
- _chunkBM6JZRVDcjs.Field,
23460
+ _chunkGOTEXQZNcjs.Field,
23279
23461
  {
23280
23462
  label: "SEO Title",
23281
- error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkBM6JZRVDcjs.SEO_TITLE_MAX_LENGTH})` : null,
23463
+ error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkGOTEXQZNcjs.SEO_TITLE_MAX_LENGTH})` : null,
23282
23464
  labelExtras: aiConfidenceSeoTitle !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23283
23465
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
23284
23466
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConfidenceBadge, { confidence: aiConfidenceSeoTitle, showLabel: true, showPercentage: true, size: "sm" })
@@ -23293,7 +23475,7 @@ function SEOEditorPreview({
23293
23475
  children: [
23294
23476
  seoTitleLength,
23295
23477
  "/",
23296
- _chunkBM6JZRVDcjs.SEO_TITLE_MAX_LENGTH
23478
+ _chunkGOTEXQZNcjs.SEO_TITLE_MAX_LENGTH
23297
23479
  ]
23298
23480
  }
23299
23481
  ),
@@ -23304,7 +23486,7 @@ function SEOEditorPreview({
23304
23486
  value: seoTitle || "",
23305
23487
  onChange: (e) => onSeoTitleChange(e.target.value),
23306
23488
  disabled,
23307
- maxLength: _chunkBM6JZRVDcjs.SEO_TITLE_MAX_LENGTH,
23489
+ maxLength: _chunkGOTEXQZNcjs.SEO_TITLE_MAX_LENGTH,
23308
23490
  invalid: seoTitleTooLong,
23309
23491
  placeholder: "Enter SEO meta title...",
23310
23492
  className: "border-ods-border bg-ods-bg text-ods-text-primary"
@@ -23315,7 +23497,7 @@ function SEOEditorPreview({
23315
23497
  !seoTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-accent text-h6", children: "Auto-populated from title" })
23316
23498
  ] }),
23317
23499
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23318
- _chunkBM6JZRVDcjs.Field,
23500
+ _chunkGOTEXQZNcjs.Field,
23319
23501
  {
23320
23502
  label: "SEO Keywords",
23321
23503
  labelExtras: aiConfidenceSeoKeywords !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -23347,10 +23529,10 @@ function SEOEditorPreview({
23347
23529
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
23348
23530
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
23349
23531
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23350
- _chunkBM6JZRVDcjs.Field,
23532
+ _chunkGOTEXQZNcjs.Field,
23351
23533
  {
23352
23534
  label: "SEO Description",
23353
- error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkBM6JZRVDcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
23535
+ error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkGOTEXQZNcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
23354
23536
  labelExtras: aiConfidenceSeoDescription !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23355
23537
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
23356
23538
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23373,7 +23555,7 @@ function SEOEditorPreview({
23373
23555
  children: [
23374
23556
  seoDescriptionLength,
23375
23557
  "/",
23376
- _chunkBM6JZRVDcjs.SEO_DESCRIPTION_MAX_LENGTH
23558
+ _chunkGOTEXQZNcjs.SEO_DESCRIPTION_MAX_LENGTH
23377
23559
  ]
23378
23560
  }
23379
23561
  ),
@@ -23384,7 +23566,7 @@ function SEOEditorPreview({
23384
23566
  value: seoDescription || "",
23385
23567
  onChange: (e) => onSeoDescriptionChange(e.target.value),
23386
23568
  disabled,
23387
- maxLength: _chunkBM6JZRVDcjs.SEO_DESCRIPTION_MAX_LENGTH,
23569
+ maxLength: _chunkGOTEXQZNcjs.SEO_DESCRIPTION_MAX_LENGTH,
23388
23570
  invalid: seoDescriptionTooLong,
23389
23571
  placeholder: "Enter SEO meta description...",
23390
23572
  className: _chunk3ATAYP36cjs.cn.call(void 0, "resize-none border-ods-border bg-ods-bg text-ods-text-primary", SEO_MEDIA_BOX_HEIGHT)
@@ -23415,7 +23597,7 @@ function SEOEditorPreview({
23415
23597
  type: "button",
23416
23598
  variant: "outline",
23417
23599
  size: "icon",
23418
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _451 => _451.click, 'call', _452 => _452()]),
23600
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _461 => _461.click, 'call', _462 => _462()]),
23419
23601
  disabled: disabled || isUploading,
23420
23602
  className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
23421
23603
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -23441,7 +23623,7 @@ function SEOEditorPreview({
23441
23623
  SEO_MEDIA_BOX_HEIGHT,
23442
23624
  "flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
23443
23625
  ),
23444
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _453 => _453.click, 'call', _454 => _454()]),
23626
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _463 => _463.click, 'call', _464 => _464()]),
23445
23627
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
23446
23628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
23447
23629
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -23537,7 +23719,7 @@ function socialIcon(platform) {
23537
23719
  return _nullishCoalesce(_chunkKTPR66EEcjs.iconOf.call(void 0, SOCIAL_ICONS[platform]), () => ( void 0));
23538
23720
  }
23539
23721
  function renderSocialIcon(platform) {
23540
- const key = _nullishCoalesce(_chunkBM6JZRVDcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
23722
+ const key = _nullishCoalesce(_chunkGOTEXQZNcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
23541
23723
  const icon = _nullishCoalesce(socialIcon(key), () => ( socialIcon("website")));
23542
23724
  return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5" }) : null;
23543
23725
  }
@@ -23607,7 +23789,7 @@ function SocialLinksManager({
23607
23789
  className = ""
23608
23790
  }) {
23609
23791
  const addLink = () => {
23610
- const firstPlatform = _optionalChain([platforms, 'access', _455 => _455[0], 'optionalAccess', _456 => _456.name]) || "website";
23792
+ const firstPlatform = _optionalChain([platforms, 'access', _465 => _465[0], 'optionalAccess', _466 => _466.name]) || "website";
23611
23793
  onChange([...links, { platform: firstPlatform, url: "" }]);
23612
23794
  };
23613
23795
  const removeLink = (index) => {
@@ -23619,8 +23801,8 @@ function SocialLinksManager({
23619
23801
  onChange(updated);
23620
23802
  };
23621
23803
  const getIcon = (link, platform) => {
23622
- const iconKey = _optionalChain([platform, 'optionalAccess', _457 => _457.icon_name]) || link.platform;
23623
- const key = _chunkBM6JZRVDcjs.normalizeSocialPlatform.call(void 0, iconKey);
23804
+ const iconKey = _optionalChain([platform, 'optionalAccess', _467 => _467.icon_name]) || link.platform;
23805
+ const key = _chunkGOTEXQZNcjs.normalizeSocialPlatform.call(void 0, iconKey);
23624
23806
  if (!key) return null;
23625
23807
  const icon = socialIcon(key);
23626
23808
  return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
@@ -23643,7 +23825,7 @@ function SocialLinksManager({
23643
23825
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23644
23826
  _chunkHTRILBJDcjs.Input,
23645
23827
  {
23646
- placeholder: _optionalChain([platform, 'optionalAccess', _458 => _458.placeholder]) || "Profile URL",
23828
+ placeholder: _optionalChain([platform, 'optionalAccess', _468 => _468.placeholder]) || "Profile URL",
23647
23829
  value: link.url,
23648
23830
  onChange: (e) => updateLink(index, "url", e.target.value),
23649
23831
  onKeyDown: (e) => {
@@ -24030,7 +24212,7 @@ function VideoBitesDisplay({
24030
24212
  filterPublished = true,
24031
24213
  showTitle = true
24032
24214
  }) {
24033
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7YDF3QBNcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
24215
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDJO7YMT3cjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
24034
24216
  }
24035
24217
 
24036
24218
  // src/components/features/walkthrough-video.tsx
@@ -24040,8 +24222,8 @@ function VideoBitesDisplay({
24040
24222
  var FIRST_INTERACTION_EVENTS = ["scroll", "pointerdown", "keydown"];
24041
24223
  var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
24042
24224
  function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
24043
- const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _459 => _459.getCurrentTime, 'call', _460 => _460()]), () => ( 0));
24044
- const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _461 => _461.getDuration, 'call', _462 => _462()]), () => ( 0)), time);
24225
+ const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _469 => _469.getCurrentTime, 'call', _470 => _470()]), () => ( 0));
24226
+ const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _471 => _471.getDuration, 'call', _472 => _472()]), () => ( 0)), time);
24045
24227
  return {
24046
24228
  // At end -> start over, never rewind to an unrelated older anchor.
24047
24229
  time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
@@ -24058,7 +24240,7 @@ function WalkthroughVideo({
24058
24240
  onOpenChange,
24059
24241
  defaultOpen,
24060
24242
  defaultOpenPaused,
24061
- deepLinkParam = _chunkBM6JZRVDcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
24243
+ deepLinkParam = _chunkGOTEXQZNcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
24062
24244
  autoPlayCard = false,
24063
24245
  label = "Play Demo Video",
24064
24246
  placement,
@@ -24074,19 +24256,19 @@ function WalkthroughVideo({
24074
24256
  }) {
24075
24257
  const inline = placement === "inline";
24076
24258
  const dismissEnabled = dismissal !== false;
24077
- const storageKey = dismissEnabled && dismissal.storageKey || _chunkBM6JZRVDcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
24078
- const dismissalId = _optionalChain([video, 'optionalAccess', _463 => _463.id]) != null ? String(video.id) : "dismissed";
24259
+ const storageKey = dismissEnabled && dismissal.storageKey || _chunkGOTEXQZNcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
24260
+ const dismissalId = _optionalChain([video, 'optionalAccess', _473 => _473.id]) != null ? String(video.id) : "dismissed";
24079
24261
  const [mounted, setMounted] = _react.useState.call(void 0, false);
24080
24262
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
24081
24263
  const hasVideo = video != null;
24082
- const videoId = _optionalChain([video, 'optionalAccess', _464 => _464.id]);
24264
+ const videoId = _optionalChain([video, 'optionalAccess', _474 => _474.id]);
24083
24265
  _react.useEffect.call(void 0, () => {
24084
24266
  let idleHandle = null;
24085
24267
  if (!hasVideo) return void 0;
24086
24268
  let delayElapsed = false;
24087
24269
  let interacted = inline;
24088
24270
  const reveal = () => {
24089
- if (dismissEnabled && _chunkBM6JZRVDcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
24271
+ if (dismissEnabled && _chunkGOTEXQZNcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
24090
24272
  setDismissed(true);
24091
24273
  return;
24092
24274
  }
@@ -24123,13 +24305,13 @@ function WalkthroughVideo({
24123
24305
  if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
24124
24306
  };
24125
24307
  }, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId, inline]);
24126
- const hydrated = _chunk7YDF3QBNcjs.useIsHydrated.call(void 0, );
24308
+ const hydrated = _chunkDJO7YMT3cjs.useIsHydrated.call(void 0, );
24127
24309
  const previewSuppressed = _react.useMemo.call(void 0, () => {
24128
24310
  if (!hydrated) return false;
24129
24311
  try {
24130
- const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _465 => _465.matchMedia, 'optionalCall', _466 => _466("(prefers-reduced-motion: reduce)"), 'access', _467 => _467.matches]), () => ( false));
24312
+ const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _475 => _475.matchMedia, 'optionalCall', _476 => _476("(prefers-reduced-motion: reduce)"), 'access', _477 => _477.matches]), () => ( false));
24131
24313
  const conn = navigator.connection;
24132
- const saveData = _optionalChain([conn, 'optionalAccess', _468 => _468.saveData]) === true || _optionalChain([conn, 'optionalAccess', _469 => _469.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _470 => _470.effectiveType]) === "slow-2g";
24314
+ const saveData = _optionalChain([conn, 'optionalAccess', _478 => _478.saveData]) === true || _optionalChain([conn, 'optionalAccess', _479 => _479.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _480 => _480.effectiveType]) === "slow-2g";
24133
24315
  return Boolean(reducedMotion || saveData);
24134
24316
  } catch (e15) {
24135
24317
  return false;
@@ -24155,7 +24337,7 @@ function WalkthroughVideo({
24155
24337
  const endedLatchRef = _react.useRef.call(void 0, false);
24156
24338
  const [hovered, setHovered] = _react.useState.call(void 0, false);
24157
24339
  const [handoff, setHandoff] = _react.useState.call(void 0,
24158
- () => autoPlayCard && !_optionalChain([video, 'optionalAccess', _471 => _471.youtubeUrl]) ? { time: 0, muted: true, playing: true } : null
24340
+ () => autoPlayCard && !_optionalChain([video, 'optionalAccess', _481 => _481.youtubeUrl]) ? { time: 0, muted: true, playing: true } : null
24159
24341
  );
24160
24342
  const [suspended, setSuspended] = _react.useState.call(void 0, false);
24161
24343
  const [theaterStart, setTheaterStart] = _react.useState.call(void 0, { time: 0, muted: false });
@@ -24164,18 +24346,18 @@ function WalkthroughVideo({
24164
24346
  const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
24165
24347
  const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
24166
24348
  const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
24167
- const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _472 => _472.youtubeUrl]));
24349
+ const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _482 => _482.youtubeUrl]));
24168
24350
  const resumeMode = !open && handoff !== null && !isYouTube;
24169
24351
  const previewAllowed = !previewSuppressed && !isYouTube;
24170
24352
  const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
24171
- const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _473 => _473.key]) === footerFadeKey && footerObservation.hidden;
24353
+ const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _483 => _483.key]) === footerFadeKey && footerObservation.hidden;
24172
24354
  _react.useEffect.call(void 0, () => {
24173
24355
  if (!mounted) return void 0;
24174
24356
  if (inline) return void 0;
24175
24357
  const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
24176
24358
  if (!el || typeof IntersectionObserver === "undefined") return void 0;
24177
24359
  const io = new IntersectionObserver(
24178
- (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _474 => _474[0], 'optionalAccess', _475 => _475.isIntersecting]), () => ( false)) }),
24360
+ (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _484 => _484[0], 'optionalAccess', _485 => _485.isIntersecting]), () => ( false)) }),
24179
24361
  { rootMargin: "0px 0px -40px 0px" }
24180
24362
  );
24181
24363
  io.observe(el);
@@ -24201,7 +24383,7 @@ function WalkthroughVideo({
24201
24383
  if (!footerHidden) return;
24202
24384
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
24203
24385
  try {
24204
- _optionalChain([h, 'optionalAccess', _476 => _476.pause, 'call', _477 => _477()]);
24386
+ _optionalChain([h, 'optionalAccess', _486 => _486.pause, 'call', _487 => _487()]);
24205
24387
  } catch (e17) {
24206
24388
  }
24207
24389
  }, [footerHidden, resumeMode, hovered]);
@@ -24220,30 +24402,30 @@ function WalkthroughVideo({
24220
24402
  }, 400);
24221
24403
  }
24222
24404
  if (openProp === void 0) setOpenState(next);
24223
- _optionalChain([onOpenChange, 'optionalCall', _478 => _478(next)]);
24405
+ _optionalChain([onOpenChange, 'optionalCall', _488 => _488(next)]);
24224
24406
  },
24225
24407
  [openProp, onOpenChange]
24226
24408
  );
24227
24409
  const pausePreviewNow = _react.useCallback.call(void 0, () => {
24228
24410
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
24229
24411
  try {
24230
- _optionalChain([h, 'optionalAccess', _479 => _479.pause, 'call', _480 => _480()]);
24412
+ _optionalChain([h, 'optionalAccess', _489 => _489.pause, 'call', _490 => _490()]);
24231
24413
  } catch (e18) {
24232
24414
  }
24233
24415
  setCardPaused(true);
24234
24416
  }, [setCardPaused]);
24235
24417
  const openTheater = _react.useCallback.call(void 0, () => {
24236
24418
  const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
24237
- const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _481 => _481.getPaused, 'call', _482 => _482()]) === false;
24419
+ const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _491 => _491.getPaused, 'call', _492 => _492()]) === false;
24238
24420
  pausePreviewNow();
24239
24421
  const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
24240
- const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _483 => _483.getCurrentTime, 'call', _484 => _484()]), () => ( 0));
24241
- const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _485 => _485.getDuration, 'call', _486 => _486()]), () => ( 0));
24422
+ const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _493 => _493.getCurrentTime, 'call', _494 => _494()]), () => ( 0));
24423
+ const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _495 => _495.getDuration, 'call', _496 => _496()]), () => ( 0));
24242
24424
  const liveAtEnd = isAtEnd(liveDuration, liveTime);
24243
24425
  const start = {
24244
24426
  // At end -> start over. Falling back to `handoff.time` here would rewind
24245
24427
  // to an unrelated older anchor (e.g. 3:20) instead of restarting.
24246
- time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _487 => _487.time]), () => ( 0)),
24428
+ time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _497 => _497.time]), () => ( 0)),
24247
24429
  // Live element wins over remembered intent (the theater's own chrome may
24248
24430
  // have changed it) — EXCEPT when the element is muted only because
24249
24431
  // autoplay policy forced it, which is not intent.
@@ -24271,7 +24453,7 @@ function WalkthroughVideo({
24271
24453
  const selfDriven = selfDrivenFor === open;
24272
24454
  if (openProp !== void 0 && !selfDriven) {
24273
24455
  if (open) {
24274
- setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _488 => _488.time]), () => ( 0)), userMuted));
24456
+ setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _498 => _498.time]), () => ( 0)), userMuted));
24275
24457
  setHovered(false);
24276
24458
  setSuspended(false);
24277
24459
  setHandoff(null);
@@ -24357,8 +24539,8 @@ function WalkthroughVideo({
24357
24539
  });
24358
24540
  _react.useEffect.call(void 0, () => {
24359
24541
  if (resumeMode) {
24360
- setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _489 => _489.current, 'optionalAccess', _490 => _490.muted]), () => ( false)));
24361
- setCardPaused(_optionalChain([handoffRef, 'access', _491 => _491.current, 'optionalAccess', _492 => _492.playing]) === false);
24542
+ setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _499 => _499.current, 'optionalAccess', _500 => _500.muted]), () => ( false)));
24543
+ setCardPaused(_optionalChain([handoffRef, 'access', _501 => _501.current, 'optionalAccess', _502 => _502.playing]) === false);
24362
24544
  }
24363
24545
  }, [resumeMode]);
24364
24546
  const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
@@ -24373,7 +24555,7 @@ function WalkthroughVideo({
24373
24555
  (e) => {
24374
24556
  e.stopPropagation();
24375
24557
  pausePreviewNow();
24376
- if (dismissEnabled) _chunkBM6JZRVDcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
24558
+ if (dismissEnabled) _chunkGOTEXQZNcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
24377
24559
  setDismissed(true);
24378
24560
  },
24379
24561
  [dismissEnabled, storageKey, dismissalId, pausePreviewNow]
@@ -24440,11 +24622,11 @@ function WalkthroughVideo({
24440
24622
  },
24441
24623
  [cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
24442
24624
  );
24443
- const summaryTitle = _optionalChain([video, 'optionalAccess', _493 => _493.title]) || void 0;
24444
- const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _494 => _494.presenterAvatarUrl]), () => ( null));
24625
+ const summaryTitle = _optionalChain([video, 'optionalAccess', _503 => _503.title]) || void 0;
24626
+ const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _504 => _504.presenterAvatarUrl]), () => ( null));
24445
24627
  const embedUrlKey = _react.useMemo.call(void 0,
24446
- () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _495 => _495.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _496 => _496.youtubeUrl]), () => ( ""))}`,
24447
- [_optionalChain([video, 'optionalAccess', _497 => _497.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _498 => _498.youtubeUrl])]
24628
+ () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _505 => _505.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _506 => _506.youtubeUrl]), () => ( ""))}`,
24629
+ [_optionalChain([video, 'optionalAccess', _507 => _507.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _508 => _508.youtubeUrl])]
24448
24630
  );
24449
24631
  const cardActive = !open && previewAllowed && hovered && !resumeMode;
24450
24632
  const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
@@ -24503,7 +24685,7 @@ function WalkthroughVideo({
24503
24685
  const el = e.target;
24504
24686
  let keyboard = false;
24505
24687
  try {
24506
- keyboard = _nullishCoalesce(_optionalChain([el, 'access', _499 => _499.matches, 'optionalCall', _500 => _500(":focus-visible")]), () => ( false));
24688
+ keyboard = _nullishCoalesce(_optionalChain([el, 'access', _509 => _509.matches, 'optionalCall', _510 => _510(":focus-visible")]), () => ( false));
24507
24689
  } catch (e23) {
24508
24690
  keyboard = false;
24509
24691
  }
@@ -24538,15 +24720,15 @@ function WalkthroughVideo({
24538
24720
  previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
24539
24721
  mutedIntent: userMuted,
24540
24722
  continuation: cardMode === "resume",
24541
- autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _501 => _501.playing]) !== false && !footerHidden,
24542
- startTime: _optionalChain([resumeHandoff, 'optionalAccess', _502 => _502.time]),
24543
- startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _503 => _503.muted]), () => ( false)),
24723
+ autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _511 => _511.playing]) !== false && !footerHidden,
24724
+ startTime: _optionalChain([resumeHandoff, 'optionalAccess', _512 => _512.time]),
24725
+ startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _513 => _513.muted]), () => ( false)),
24544
24726
  onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
24545
24727
  },
24546
24728
  `card-${embedUrlKey}`
24547
24729
  ) }),
24548
24730
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24549
- _chunk7YDF3QBNcjs.CardHitLayer,
24731
+ _chunkDJO7YMT3cjs.CardHitLayer,
24550
24732
  {
24551
24733
  label: video.title ? `${label}: ${video.title}` : label,
24552
24734
  onPointerDown: pausePreviewNow,
@@ -24637,7 +24819,7 @@ function WalkthroughVideo({
24637
24819
  {
24638
24820
  onOpenAutoFocus: (e) => {
24639
24821
  e.preventDefault();
24640
- _optionalChain([closeButtonRef, 'access', _504 => _504.current, 'optionalAccess', _505 => _505.focus, 'call', _506 => _506()]);
24822
+ _optionalChain([closeButtonRef, 'access', _514 => _514.current, 'optionalAccess', _515 => _515.focus, 'call', _516 => _516()]);
24641
24823
  },
24642
24824
  className: _chunk3ATAYP36cjs.cn.call(void 0,
24643
24825
  // PURE theater: just the video, centered on a dimmed backdrop.
@@ -24712,7 +24894,7 @@ function InlineWalkthroughVideo(props) {
24712
24894
  var _reactquery = require('@tanstack/react-query');
24713
24895
  function useWalkthroughVideo(opts) {
24714
24896
  const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
24715
- const captions = _chunk7YDF3QBNcjs.useCaptions.call(void 0, );
24897
+ const captions = _chunkDJO7YMT3cjs.useCaptions.call(void 0, );
24716
24898
  const query = _reactquery.useQuery.call(void 0, {
24717
24899
  queryKey: ["walkthrough-video", endpoint],
24718
24900
  enabled,
@@ -24731,14 +24913,14 @@ function useWalkthroughVideo(opts) {
24731
24913
  if (res.status === 404) return null;
24732
24914
  if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
24733
24915
  const body = await res.json();
24734
- return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _507 => _507.walkthroughVideo]), () => ( null));
24916
+ return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _517 => _517.walkthroughVideo]), () => ( null));
24735
24917
  },
24736
24918
  // Per-observer transform — NEVER mutate the cached data. `select` also runs
24737
24919
  // over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
24738
24920
  // rewrite here (not in queryFn) means a second consumer of the same
24739
24921
  // endpoint can't inherit this observer's proxied captionsUrl from the cache.
24740
24922
  select: (video) => {
24741
- if (!_optionalChain([video, 'optionalAccess', _508 => _508.captionsUrl])) return video;
24923
+ if (!_optionalChain([video, 'optionalAccess', _518 => _518.captionsUrl])) return video;
24742
24924
  if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
24743
24925
  return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
24744
24926
  }
@@ -24785,7 +24967,7 @@ function VideoSourceSelector({
24785
24967
  input.accept = "video/*";
24786
24968
  input.onchange = async (e) => {
24787
24969
  const target = e.target;
24788
- const file = _optionalChain([target, 'access', _509 => _509.files, 'optionalAccess', _510 => _510[0]]);
24970
+ const file = _optionalChain([target, 'access', _519 => _519.files, 'optionalAccess', _520 => _520[0]]);
24789
24971
  if (!file) return;
24790
24972
  setIsUploading(true);
24791
24973
  setUploadProgress(0);
@@ -24961,7 +25143,7 @@ function SubtitlesEditor({
24961
25143
  {
24962
25144
  id,
24963
25145
  value: subtitles || "",
24964
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _511 => _511(e.target.value)]),
25146
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _521 => _521(e.target.value)]),
24965
25147
  placeholder,
24966
25148
  disabled: disabled || !onSubtitlesChange,
24967
25149
  className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
@@ -25190,7 +25372,7 @@ var AIEnrichSection = ({
25190
25372
  }) => {
25191
25373
  const hasResults = status === "success" || status === "error";
25192
25374
  const shouldDisable = disabled || !canEnrich;
25193
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _512 => _512.filter, 'call', _513 => _513((f) => !f.isFilled)]) || [];
25375
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _522 => _522.filter, 'call', _523 => _523((f) => !f.isFilled)]) || [];
25194
25376
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25195
25377
  "div",
25196
25378
  {
@@ -25222,7 +25404,7 @@ var AIEnrichSection = ({
25222
25404
  {
25223
25405
  id: "ai-enrich-custom-instructions",
25224
25406
  value: _nullishCoalesce(customInstructions, () => ( "")),
25225
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _514 => _514(e.target.value)]),
25407
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _524 => _524(e.target.value)]),
25226
25408
  placeholder: customInstructionsPlaceholder,
25227
25409
  disabled: loading,
25228
25410
  maxLength: customInstructionsMaxLength,
@@ -25344,7 +25526,7 @@ function HighlightVideoSection({
25344
25526
  input.accept = "video/*";
25345
25527
  input.onchange = async (e) => {
25346
25528
  const target = e.target;
25347
- const file = _optionalChain([target, 'access', _515 => _515.files, 'optionalAccess', _516 => _516[0]]);
25529
+ const file = _optionalChain([target, 'access', _525 => _525.files, 'optionalAccess', _526 => _526[0]]);
25348
25530
  if (!file) return;
25349
25531
  setUploadError(null);
25350
25532
  try {
@@ -25461,7 +25643,7 @@ function HighlightConfigSection({
25461
25643
  disabled = false,
25462
25644
  className = ""
25463
25645
  }) {
25464
- 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, _chunkBM6JZRVDcjs.Field, { label: "Target Duration", children: (f) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25646
+ 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, _chunkGOTEXQZNcjs.Field, { label: "Target Duration", children: (f) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25465
25647
  _chunkU2O5YQRPcjs.Select,
25466
25648
  {
25467
25649
  value: targetDurationSeconds.toString(),
@@ -25562,7 +25744,7 @@ var AIStatusIndicator = ({
25562
25744
  }) => {
25563
25745
  const config = statusConfig[status];
25564
25746
  const displayText = message || config.label;
25565
- const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkBM6JZRVDcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
25747
+ const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkGOTEXQZNcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
25566
25748
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "inline-flex items-center gap-2 rounded-lg px-3 py-1.5", config.bgColor, className), children: [
25567
25749
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25568
25750
  _chunkUNFCRSYIcjs.SparklesIcon,
@@ -25570,7 +25752,7 @@ var AIStatusIndicator = ({
25570
25752
  size: 16,
25571
25753
  className: _chunk3ATAYP36cjs.cn.call(void 0,
25572
25754
  status === "loading" && "animate-pulse",
25573
- confidence !== void 0 && status === "success" ? _chunkBM6JZRVDcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25755
+ confidence !== void 0 && status === "success" ? _chunkGOTEXQZNcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25574
25756
  )
25575
25757
  }
25576
25758
  ),
@@ -25579,7 +25761,7 @@ var AIStatusIndicator = ({
25579
25761
  {
25580
25762
  className: _chunk3ATAYP36cjs.cn.call(void 0,
25581
25763
  "text-h6",
25582
- confidence !== void 0 && status === "success" ? _chunkBM6JZRVDcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25764
+ confidence !== void 0 && status === "success" ? _chunkGOTEXQZNcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
25583
25765
  ),
25584
25766
  children: displayText
25585
25767
  }
@@ -25589,8 +25771,8 @@ var AIStatusIndicator = ({
25589
25771
  {
25590
25772
  className: _chunk3ATAYP36cjs.cn.call(void 0,
25591
25773
  "rounded-full border px-2 py-0.5 text-h6",
25592
- _chunkBM6JZRVDcjs.getConfidenceBorderClass.call(void 0, confidence),
25593
- _chunkBM6JZRVDcjs.getConfidenceTextClass.call(void 0, confidence)
25774
+ _chunkGOTEXQZNcjs.getConfidenceBorderClass.call(void 0, confidence),
25775
+ _chunkGOTEXQZNcjs.getConfidenceTextClass.call(void 0, confidence)
25594
25776
  ),
25595
25777
  children: confidenceLabel
25596
25778
  }
@@ -25780,7 +25962,7 @@ function HighlightVideoPreview({
25780
25962
  input.accept = "video/*";
25781
25963
  input.onchange = async (e) => {
25782
25964
  const target = e.target;
25783
- const file = _optionalChain([target, 'access', _517 => _517.files, 'optionalAccess', _518 => _518[0]]);
25965
+ const file = _optionalChain([target, 'access', _527 => _527.files, 'optionalAccess', _528 => _528[0]]);
25784
25966
  if (!file) return;
25785
25967
  await onUpload(file);
25786
25968
  };
@@ -25959,7 +26141,7 @@ function HighlightVideoCombinedSection({
25959
26141
  input.accept = "video/*";
25960
26142
  input.onchange = async (e) => {
25961
26143
  const target = e.target;
25962
- const file = _optionalChain([target, 'access', _519 => _519.files, 'optionalAccess', _520 => _520[0]]);
26144
+ const file = _optionalChain([target, 'access', _529 => _529.files, 'optionalAccess', _530 => _530[0]]);
25963
26145
  if (!file) return;
25964
26146
  await onUpload(file);
25965
26147
  };
@@ -26169,7 +26351,7 @@ function ApprovalLevelView({
26169
26351
  value,
26170
26352
  disabled,
26171
26353
  onValueChange: (next) => {
26172
- if (next && next !== value) _optionalChain([onChange, 'optionalCall', _521 => _521(next)]);
26354
+ if (next && next !== value) _optionalChain([onChange, 'optionalCall', _531 => _531(next)]);
26173
26355
  },
26174
26356
  "aria-labelledby": labelledBy,
26175
26357
  children: APPROVAL_LEVELS.map((level) => {
@@ -26207,7 +26389,7 @@ function ApprovalLevelView({
26207
26389
  var approvalLevelOptions = APPROVAL_LEVELS.map((value) => ({ value, label: APPROVAL_LEVEL_META[value].label }));
26208
26390
  var POLICY_LEVEL_WIDTH = "w-[180px]";
26209
26391
  var CATEGORY_LEVEL_WIDTH = "w-[256px]";
26210
- var getApprovalLevelLabel = (level) => _nullishCoalesce(_optionalChain([APPROVAL_LEVEL_META, 'access', _522 => _522[level], 'optionalAccess', _523 => _523.label]), () => ( level));
26392
+ var getApprovalLevelLabel = (level) => _nullishCoalesce(_optionalChain([APPROVAL_LEVEL_META, 'access', _532 => _532[level], 'optionalAccess', _533 => _533.label]), () => ( level));
26211
26393
  var ApprovalLevelDropdown = ({ value, onChange, allowClear = false, triggerClassName, contentClassName }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkL2RMTGOKcjs.DropdownMenu, { children: [
26212
26394
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL2RMTGOKcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26213
26395
  _chunk2QMBXGMQcjs.Button,
@@ -26486,7 +26668,7 @@ function PoliciesTable({
26486
26668
  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,
26487
26669
  _chunk2QMBXGMQcjs.Button,
26488
26670
  {
26489
- onClick: _chunkBM6JZRVDcjs.openInNewTab.call(void 0, row.original.href),
26671
+ onClick: _chunkGOTEXQZNcjs.openInNewTab.call(void 0, row.original.href),
26490
26672
  variant: "outline",
26491
26673
  size: "icon",
26492
26674
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -26604,7 +26786,7 @@ var POLICY_STATUS_CONFIG = {
26604
26786
  };
26605
26787
  function missingHostCount(policy) {
26606
26788
  const responded = policy.passing_host_count + policy.failing_host_count;
26607
- return (_nullishCoalesce(_optionalChain([policy, 'access', _524 => _524.hosts_include_any, 'optionalAccess', _525 => _525.length]), () => ( 0))) - responded;
26789
+ return (_nullishCoalesce(_optionalChain([policy, 'access', _534 => _534.hosts_include_any, 'optionalAccess', _535 => _535.length]), () => ( 0))) - responded;
26608
26790
  }
26609
26791
  function getPolicyStatus(policy) {
26610
26792
  const failing = policy.failing_host_count;
@@ -26812,7 +26994,7 @@ function TenantsTableView({
26812
26994
  /* @__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,
26813
26995
  _chunk2QMBXGMQcjs.Button,
26814
26996
  {
26815
- onClick: _chunkBM6JZRVDcjs.openInNewTab.call(void 0, getHref(row.original)),
26997
+ onClick: _chunkGOTEXQZNcjs.openInNewTab.call(void 0, getHref(row.original)),
26816
26998
  variant: "outline",
26817
26999
  size: "icon",
26818
27000
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -26893,7 +27075,7 @@ function WaitlistForm({
26893
27075
  const { toast } = _chunk4FWURR3Wcjs.useToast.call(void 0, );
26894
27076
  const { honeypotInputProps, getSignals, resetSignals } = _chunk4FWURR3Wcjs.useHumanitySignals.call(void 0, );
26895
27077
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
26896
- const isClient = _chunk7YDF3QBNcjs.useIsHydrated.call(void 0, );
27078
+ const isClient = _chunkDJO7YMT3cjs.useIsHydrated.call(void 0, );
26897
27079
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
26898
27080
  const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
26899
27081
  const rescue = _chunk4FWURR3Wcjs.useFormRescue.call(void 0, {
@@ -26908,7 +27090,7 @@ function WaitlistForm({
26908
27090
  _react.useEffect.call(void 0, () => {
26909
27091
  rescue.track({ email, phone }, null);
26910
27092
  }, [email, phone, rescue]);
26911
- const isMailDomainGeneric = _chunkBM6JZRVDcjs.hasGenericEmailDomain.call(void 0, email);
27093
+ const isMailDomainGeneric = _chunkGOTEXQZNcjs.hasGenericEmailDomain.call(void 0, email);
26912
27094
  const [syncedDefaultEmail, setSyncedDefaultEmail] = _react.useState.call(void 0, defaultEmail);
26913
27095
  if (syncedDefaultEmail !== defaultEmail) {
26914
27096
  setSyncedDefaultEmail(defaultEmail);
@@ -26942,7 +27124,7 @@ function WaitlistForm({
26942
27124
  setShowConsentError(true);
26943
27125
  return;
26944
27126
  }
26945
- const finalPhone = phone ? _chunkBM6JZRVDcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
27127
+ const finalPhone = phone ? _chunkGOTEXQZNcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
26946
27128
  try {
26947
27129
  await onRegister(email, finalPhone, getSignals(), rescue.submitFields());
26948
27130
  rescue.complete();
@@ -27203,19 +27385,19 @@ function NotificationsProvider({
27203
27385
  }, []);
27204
27386
  const markRead = _react.useCallback.call(void 0, (id) => {
27205
27387
  dispatch({ type: "markRead", id });
27206
- void _optionalChain([actionsRef, 'access', _526 => _526.current, 'optionalAccess', _527 => _527.onMarkRead, 'optionalCall', _528 => _528(id)]);
27388
+ void _optionalChain([actionsRef, 'access', _536 => _536.current, 'optionalAccess', _537 => _537.onMarkRead, 'optionalCall', _538 => _538(id)]);
27207
27389
  }, []);
27208
27390
  const markAllRead = _react.useCallback.call(void 0, () => {
27209
27391
  dispatch({ type: "markAllRead" });
27210
- void _optionalChain([actionsRef, 'access', _529 => _529.current, 'optionalAccess', _530 => _530.onMarkAllRead, 'optionalCall', _531 => _531()]);
27392
+ void _optionalChain([actionsRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.onMarkAllRead, 'optionalCall', _541 => _541()]);
27211
27393
  }, []);
27212
27394
  const markSettled = _react.useCallback.call(void 0, (id) => {
27213
27395
  dispatch({ type: "markSettled", id });
27214
- void _optionalChain([actionsRef, 'access', _532 => _532.current, 'optionalAccess', _533 => _533.onMarkSettled, 'optionalCall', _534 => _534(id)]);
27396
+ void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkSettled, 'optionalCall', _544 => _544(id)]);
27215
27397
  }, []);
27216
27398
  const remove = _react.useCallback.call(void 0, (id) => {
27217
27399
  dispatch({ type: "remove", id });
27218
- void _optionalChain([actionsRef, 'access', _535 => _535.current, 'optionalAccess', _536 => _536.onRemove, 'optionalCall', _537 => _537(id)]);
27400
+ void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onRemove, 'optionalCall', _547 => _547(id)]);
27219
27401
  }, []);
27220
27402
  const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
27221
27403
  const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
@@ -27224,14 +27406,14 @@ function NotificationsProvider({
27224
27406
  const setShowPopups = _react.useCallback.call(void 0,
27225
27407
  (value2) => {
27226
27408
  setShowPopupsState(value2);
27227
- _optionalChain([onShowPopupsChange, 'optionalCall', _538 => _538(value2)]);
27409
+ _optionalChain([onShowPopupsChange, 'optionalCall', _548 => _548(value2)]);
27228
27410
  },
27229
27411
  [onShowPopupsChange]
27230
27412
  );
27231
27413
  const setShowDesktopPopups = _react.useCallback.call(void 0,
27232
27414
  (value2) => {
27233
27415
  setShowDesktopPopupsState(value2);
27234
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _539 => _539(value2)]);
27416
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _549 => _549(value2)]);
27235
27417
  },
27236
27418
  [onShowDesktopPopupsChange]
27237
27419
  );
@@ -27347,7 +27529,7 @@ var AppLayoutDrawerRoot = ({
27347
27529
  const handleOpenChange = _react.useCallback.call(void 0,
27348
27530
  (next) => {
27349
27531
  if (!isControlled) setInternalOpen(next);
27350
- _optionalChain([onOpenChange, 'optionalCall', _540 => _540(next)]);
27532
+ _optionalChain([onOpenChange, 'optionalCall', _550 => _550(next)]);
27351
27533
  },
27352
27534
  [isControlled, onOpenChange]
27353
27535
  );
@@ -27364,9 +27546,9 @@ var AppLayoutDrawerRoot = ({
27364
27546
  }
27365
27547
  }));
27366
27548
  _react.useEffect.call(void 0, () => {
27367
- if (open) _optionalChain([coordination, 'optionalAccess', _541 => _541.notifyDrawerDidOpen, 'call', _542 => _542(selfHandle)]);
27549
+ if (open) _optionalChain([coordination, 'optionalAccess', _551 => _551.notifyDrawerDidOpen, 'call', _552 => _552(selfHandle)]);
27368
27550
  }, [open, coordination, selfHandle]);
27369
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _543 => _543.registerDrawer, 'call', _544 => _544(selfHandle)]), [coordination, selfHandle]);
27551
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _553 => _553.registerDrawer, 'call', _554 => _554(selfHandle)]), [coordination, selfHandle]);
27370
27552
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
27371
27553
  };
27372
27554
  AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
@@ -27588,10 +27770,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
27588
27770
  ),
27589
27771
  style,
27590
27772
  onInteractOutside: (event) => {
27591
- _optionalChain([onInteractOutside, 'optionalCall', _545 => _545(event)]);
27773
+ _optionalChain([onInteractOutside, 'optionalCall', _555 => _555(event)]);
27592
27774
  if (event.defaultPrevented) return;
27593
27775
  const target = event.target;
27594
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _546 => _546.contains, 'call', _547 => _547(target)]);
27776
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _556 => _556.contains, 'call', _557 => _557(target)]);
27595
27777
  if (!isInsideContainer) {
27596
27778
  event.preventDefault();
27597
27779
  return;
@@ -27709,7 +27891,7 @@ function NotificationTile({
27709
27891
  if (!counting) return void 0;
27710
27892
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
27711
27893
  const timer = window.setTimeout(() => {
27712
- _optionalChain([onSettle, 'optionalCall', _548 => _548(id)]);
27894
+ _optionalChain([onSettle, 'optionalCall', _558 => _558(id)]);
27713
27895
  }, remaining);
27714
27896
  return () => window.clearTimeout(timer);
27715
27897
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -27760,7 +27942,7 @@ function NotificationTile({
27760
27942
  active: isLive,
27761
27943
  label: "Dismiss notification",
27762
27944
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWWUSFOJ7cjs.XmarkIcon, { size: 16 }),
27763
- onClick: () => _optionalChain([onSettle, 'optionalCall', _549 => _549(id)])
27945
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _559 => _559(id)])
27764
27946
  },
27765
27947
  {
27766
27948
  active: !isLive,
@@ -27958,7 +28140,7 @@ function DrawerScrollList({
27958
28140
  if (!sentinel || !root) return void 0;
27959
28141
  const observer = new IntersectionObserver(
27960
28142
  (entries) => {
27961
- if (_optionalChain([entries, 'access', _550 => _550[0], 'optionalAccess', _551 => _551.isIntersecting])) _optionalChain([loadMoreRef, 'access', _552 => _552.current, 'optionalCall', _553 => _553()]);
28143
+ if (_optionalChain([entries, 'access', _560 => _560[0], 'optionalAccess', _561 => _561.isIntersecting])) _optionalChain([loadMoreRef, 'access', _562 => _562.current, 'optionalCall', _563 => _563()]);
27962
28144
  },
27963
28145
  { root, rootMargin: loadMoreRootMargin }
27964
28146
  );
@@ -27973,7 +28155,7 @@ function DrawerScrollList({
27973
28155
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
27974
28156
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
27975
28157
  unreadNotifications.map((n) => {
27976
- const custom = _optionalChain([renderTile, 'optionalCall', _554 => _554(n, { onComplete, onSettle, liveDurationMs })]);
28158
+ const custom = _optionalChain([renderTile, 'optionalCall', _564 => _564(n, { onComplete, onSettle, liveDurationMs })]);
27977
28159
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
27978
28160
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27979
28161
  NotificationTile,
@@ -28093,7 +28275,7 @@ function NotificationPopups({
28093
28275
  }) {
28094
28276
  const ctx = useOptionalNotifications();
28095
28277
  const [now, setNow] = _react.useState.call(void 0, () => Date.now());
28096
- const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _555 => _555.notifications, 'access', _556 => _556.some, 'call', _557 => _557((n) => !n.read && !n.settled)]));
28278
+ const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _565 => _565.notifications, 'access', _566 => _566.some, 'call', _567 => _567((n) => !n.read && !n.settled)]));
28097
28279
  _react.useEffect.call(void 0, () => {
28098
28280
  if (!hasAgeingNotifications) return void 0;
28099
28281
  const id = setInterval(() => setNow(Date.now()), 500);
@@ -28136,7 +28318,7 @@ function NotificationPopups({
28136
28318
  className
28137
28319
  ),
28138
28320
  children: live.map((n) => {
28139
- const custom = _optionalChain([renderTile, 'optionalCall', _558 => _558(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
28321
+ const custom = _optionalChain([renderTile, 'optionalCall', _568 => _568(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
28140
28322
  if (custom) {
28141
28323
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
28142
28324
  }
@@ -28183,21 +28365,21 @@ function isApprovalNotificationType(type) {
28183
28365
  return typeof type === "string" && APPROVAL_REQUEST_TYPES.has(type);
28184
28366
  }
28185
28367
  function isApprovalNotification(notification) {
28186
- return isApprovalNotificationType(_optionalChain([notification, 'access', _559 => _559.meta, 'optionalAccess', _560 => _560.notificationType]));
28368
+ return isApprovalNotificationType(_optionalChain([notification, 'access', _569 => _569.meta, 'optionalAccess', _570 => _570.notificationType]));
28187
28369
  }
28188
28370
  function getApprovalMeta(notification) {
28189
28371
  if (!isApprovalNotification(notification)) return null;
28190
28372
  const meta = notification.meta;
28191
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _561 => _561.approvalRequestId]);
28192
- const toolCalls = _optionalChain([meta, 'optionalAccess', _562 => _562.toolCalls]);
28373
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _571 => _571.approvalRequestId]);
28374
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _572 => _572.toolCalls]);
28193
28375
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
28194
28376
  return {
28195
28377
  approvalRequestId,
28196
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _563 => _563.dialogId]), () => ( null)),
28197
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _564 => _564.ticketId]), () => ( null)),
28198
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _565 => _565.approvalType]), () => ( null)),
28199
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _566 => _566.resolution]), () => ( null)),
28200
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _567 => _567.resolvedByName]), () => ( null)),
28378
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _573 => _573.dialogId]), () => ( null)),
28379
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _574 => _574.ticketId]), () => ( null)),
28380
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _575 => _575.approvalType]), () => ( null)),
28381
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _576 => _576.resolution]), () => ( null)),
28382
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.resolvedByName]), () => ( null)),
28201
28383
  toolCalls
28202
28384
  };
28203
28385
  }
@@ -28253,7 +28435,7 @@ function ApprovalRequestNotificationTile({
28253
28435
  const [processing, setProcessing] = _react.useState.call(void 0, false);
28254
28436
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
28255
28437
  const approval = getApprovalMeta(notification);
28256
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _568 => _568.resolution]));
28438
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _578 => _578.resolution]));
28257
28439
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
28258
28440
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
28259
28441
  const { innerRef, containerStyle } = _chunkOWGLRE74cjs.useCollapsible.call(void 0, { expanded });
@@ -28590,7 +28772,7 @@ function TimeTrackerPanel({
28590
28772
  error: showFieldError ? "Required if no notes added" : void 0,
28591
28773
  disableClientFilter: !!onTicketSearch,
28592
28774
  onInputChange: (value, reason) => {
28593
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _569 => _569(value)]);
28775
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _579 => _579(value)]);
28594
28776
  }
28595
28777
  }
28596
28778
  ),
@@ -28605,7 +28787,7 @@ function TimeTrackerPanel({
28605
28787
  disabled: customerLocked,
28606
28788
  disableClientFilter: !!onCustomerSearch,
28607
28789
  onInputChange: (value, reason) => {
28608
- if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _570 => _570(value)]);
28790
+ if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _580 => _580(value)]);
28609
28791
  },
28610
28792
  startAdornment: customerStartAdornment,
28611
28793
  renderOption: renderCustomerOption
@@ -28707,7 +28889,7 @@ function LastEntryRow({ entry, onClick }) {
28707
28889
  {
28708
28890
  variant: "outline",
28709
28891
  size: "icon",
28710
- onClick: () => _optionalChain([onClick, 'optionalCall', _571 => _571(entry)]),
28892
+ onClick: () => _optionalChain([onClick, 'optionalCall', _581 => _581(entry)]),
28711
28893
  disabled: !onClick,
28712
28894
  "aria-label": `Open entry: ${entry.title}`,
28713
28895
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -28791,28 +28973,28 @@ function HeaderButton({
28791
28973
  function TimeTrackerHeaderButton({ className, disabled }) {
28792
28974
  const ctx = useOptionalTimeTracker();
28793
28975
  const elapsedLabel = useTrackerClock({
28794
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _572 => _572.status]), () => ( "ready")),
28795
- runningSince: _optionalChain([ctx, 'optionalAccess', _573 => _573.runningSince]),
28796
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _574 => _574.accumulatedMs])
28976
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _582 => _582.status]), () => ( "ready")),
28977
+ runningSince: _optionalChain([ctx, 'optionalAccess', _583 => _583.runningSince]),
28978
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _584 => _584.accumulatedMs])
28797
28979
  });
28798
28980
  const layoutContainer = useAppLayoutDrawerContainer();
28799
28981
  const coordination = useAppLayoutDrawerCoordination();
28800
- const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _575 => _575.isOpen]), () => ( false));
28982
+ const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _585 => _585.isOpen]), () => ( false));
28801
28983
  const isOpenRef = _react.useRef.call(void 0, isOpen);
28802
- const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _576 => _576.close]));
28984
+ const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _586 => _586.close]));
28803
28985
  _react.useEffect.call(void 0, () => {
28804
28986
  isOpenRef.current = isOpen;
28805
- closeRef.current = _optionalChain([ctx, 'optionalAccess', _577 => _577.close]);
28987
+ closeRef.current = _optionalChain([ctx, 'optionalAccess', _587 => _587.close]);
28806
28988
  });
28807
28989
  const [selfHandle] = _react.useState.call(void 0, () => ({
28808
28990
  close: () => {
28809
- if (isOpenRef.current) _optionalChain([closeRef, 'access', _578 => _578.current, 'optionalCall', _579 => _579()]);
28991
+ if (isOpenRef.current) _optionalChain([closeRef, 'access', _588 => _588.current, 'optionalCall', _589 => _589()]);
28810
28992
  }
28811
28993
  }));
28812
28994
  _react.useEffect.call(void 0, () => {
28813
- if (isOpen) _optionalChain([coordination, 'optionalAccess', _580 => _580.notifyDrawerDidOpen, 'call', _581 => _581(selfHandle)]);
28995
+ if (isOpen) _optionalChain([coordination, 'optionalAccess', _590 => _590.notifyDrawerDidOpen, 'call', _591 => _591(selfHandle)]);
28814
28996
  }, [isOpen, coordination, selfHandle]);
28815
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _582 => _582.registerDrawer, 'call', _583 => _583(selfHandle)]), [coordination, selfHandle]);
28997
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _592 => _592.registerDrawer, 'call', _593 => _593(selfHandle)]), [coordination, selfHandle]);
28816
28998
  if (!ctx) return null;
28817
28999
  const { open, close, status } = ctx;
28818
29000
  const isPaused = status === "paused";
@@ -28890,12 +29072,12 @@ function formatLastOnline(lastSeen) {
28890
29072
 
28891
29073
  // src/components/features/devices/device-name.ts
28892
29074
  function getDeviceName(device) {
28893
- return _optionalChain([device, 'optionalAccess', _584 => _584.nickname]) || _optionalChain([device, 'optionalAccess', _585 => _585.displayName]) || _optionalChain([device, 'optionalAccess', _586 => _586.hostname]) || "";
29075
+ return _optionalChain([device, 'optionalAccess', _594 => _594.nickname]) || _optionalChain([device, 'optionalAccess', _595 => _595.displayName]) || _optionalChain([device, 'optionalAccess', _596 => _596.hostname]) || "";
28894
29076
  }
28895
29077
  function matchesDeviceName(device, search = "") {
28896
29078
  const needle = search.trim().toLowerCase();
28897
29079
  if (!needle) return true;
28898
- return getDeviceName(device).toLowerCase().includes(needle) || (_nullishCoalesce(_optionalChain([device, 'optionalAccess', _587 => _587.hostname]), () => ( ""))).toLowerCase().includes(needle);
29080
+ return getDeviceName(device).toLowerCase().includes(needle) || (_nullishCoalesce(_optionalChain([device, 'optionalAccess', _597 => _597.hostname]), () => ( ""))).toLowerCase().includes(needle);
28899
29081
  }
28900
29082
 
28901
29083
  // src/components/features/devices/devices-view-config.tsx
@@ -29034,7 +29216,7 @@ function getDeviceStatusConfig(status) {
29034
29216
  }
29035
29217
  }
29036
29218
  function getDeviceOperatingSystem(osType) {
29037
- return _chunkBM6JZRVDcjs.getOSPlatformId.call(void 0, osType);
29219
+ return _chunkGOTEXQZNcjs.getOSPlatformId.call(void 0, osType);
29038
29220
  }
29039
29221
 
29040
29222
  // src/components/features/devices/device-statuses.ts
@@ -29088,7 +29270,7 @@ var HIDDEN_DEVICE_STATUSES = [DEVICE_STATUS.ARCHIVED, DEVICE_STATUS.DELETED];
29088
29270
 
29089
29271
  var DEFAULT_CLASS_NAME = "w-6 h-6 text-ods-text-secondary";
29090
29272
  function renderDeviceTypeIcon(type, className = DEFAULT_CLASS_NAME) {
29091
- switch (_optionalChain([type, 'optionalAccess', _588 => _588.toLowerCase, 'call', _589 => _589()])) {
29273
+ switch (_optionalChain([type, 'optionalAccess', _598 => _598.toLowerCase, 'call', _599 => _599()])) {
29092
29274
  case "desktop":
29093
29275
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPTK7GOIIcjs.MonitorIcon, { className });
29094
29276
  case "laptop":
@@ -29230,7 +29412,7 @@ function getDeviceActionsColumn(renderRowActions) {
29230
29412
  }
29231
29413
  function OpenDeviceButton({ device }) {
29232
29414
  const { getDeviceHref } = useDevicesViewConfig();
29233
- const href = _optionalChain([getDeviceHref, 'optionalCall', _590 => _590(device)]);
29415
+ const href = _optionalChain([getDeviceHref, 'optionalCall', _600 => _600(device)]);
29234
29416
  const open = (event) => {
29235
29417
  event.preventDefault();
29236
29418
  if (href) window.open(href, "_blank", "noopener,noreferrer");
@@ -29321,10 +29503,10 @@ function OrganizationCell({ device }) {
29321
29503
  ] });
29322
29504
  }
29323
29505
  function buildDeviceFilterOptions(deviceFilters) {
29324
- const status = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _591 => _591.statuses]), () => ( []))).filter((s) => DEFAULT_VISIBLE_STATUSES.includes(s.value)).map((s) => ({ id: s.value, label: getDeviceStatusConfig(s.value).label, value: s.value, count: s.count }));
29325
- const os = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _592 => _592.osTypes]), () => ( []))).map((o) => ({ id: o.value, label: o.value, value: o.value, count: o.count }));
29506
+ const status = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _601 => _601.statuses]), () => ( []))).filter((s) => DEFAULT_VISIBLE_STATUSES.includes(s.value)).map((s) => ({ id: s.value, label: getDeviceStatusConfig(s.value).label, value: s.value, count: s.count }));
29507
+ const os = (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _602 => _602.osTypes]), () => ( []))).map((o) => ({ id: o.value, label: o.value, value: o.value, count: o.count }));
29326
29508
  const organization = uniqueById(
29327
- (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _593 => _593.organizationIds]), () => ( []))).map((org) => ({
29509
+ (_nullishCoalesce(_optionalChain([deviceFilters, 'optionalAccess', _603 => _603.organizationIds]), () => ( []))).map((org) => ({
29328
29510
  id: org.value,
29329
29511
  label: org.label,
29330
29512
  value: org.value,
@@ -29418,7 +29600,7 @@ function isCompleteTag(tag) {
29418
29600
  const i = tag.indexOf(":");
29419
29601
  return i > 0 && i < tag.length - 1;
29420
29602
  }
29421
- var scrollMainToTop = () => _optionalChain([document, 'access', _594 => _594.querySelector, 'call', _595 => _595("main"), 'optionalAccess', _596 => _596.scrollTo, 'call', _597 => _597({ top: 0, behavior: "instant" })]);
29603
+ var scrollMainToTop = () => _optionalChain([document, 'access', _604 => _604.querySelector, 'call', _605 => _605("main"), 'optionalAccess', _606 => _606.scrollTo, 'call', _607 => _607({ top: 0, behavior: "instant" })]);
29422
29604
  function useTagFilterModal({
29423
29605
  tags,
29424
29606
  deviceFilters,
@@ -29440,7 +29622,7 @@ function useTagFilterModal({
29440
29622
  }));
29441
29623
  }, [columns, isMdUp]);
29442
29624
  const tagFilterKeys = _react.useMemo.call(void 0, () => {
29443
- if (!_optionalChain([deviceFilters, 'optionalAccess', _598 => _598.tagKeys])) return [];
29625
+ if (!_optionalChain([deviceFilters, 'optionalAccess', _608 => _608.tagKeys])) return [];
29444
29626
  const grouped = /* @__PURE__ */ new Map();
29445
29627
  for (const tag of deviceFilters.tagKeys) {
29446
29628
  if (tag.key === "null") continue;
@@ -29608,7 +29790,7 @@ function DeviceSelector({
29608
29790
  const clientToggleDevice = _react.useCallback.call(void 0,
29609
29791
  (device) => {
29610
29792
  if (disabled) return;
29611
- if (_optionalChain([isDeviceDisabled, 'optionalCall', _599 => _599(device)])) return;
29793
+ if (_optionalChain([isDeviceDisabled, 'optionalCall', _609 => _609(device)])) return;
29612
29794
  const key = getDeviceKey(device);
29613
29795
  if (key === void 0) return;
29614
29796
  const current = selectedIdsRef.current;
@@ -29633,7 +29815,7 @@ function DeviceSelector({
29633
29815
  return;
29634
29816
  }
29635
29817
  if (disabled) return;
29636
- if (_optionalChain([isDeviceDisabled, 'optionalCall', _600 => _600(device)])) return;
29818
+ if (_optionalChain([isDeviceDisabled, 'optionalCall', _610 => _610(device)])) return;
29637
29819
  if (server.activeTab === "selected") {
29638
29820
  server.onRemove(device);
29639
29821
  return;
@@ -29694,7 +29876,7 @@ function DeviceSelector({
29694
29876
  const base = addAllBehavior === "replace" ? /* @__PURE__ */ new Set() : new Set(selectedIds);
29695
29877
  for (const d of client.filteredDevices) {
29696
29878
  if (!matchesVisibleFilters(d)) continue;
29697
- if (_optionalChain([isDeviceDisabled, 'optionalCall', _601 => _601(d)])) continue;
29879
+ if (_optionalChain([isDeviceDisabled, 'optionalCall', _611 => _611(d)])) continue;
29698
29880
  const key = getDeviceKey(d);
29699
29881
  if (key !== void 0) {
29700
29882
  base.add(key);
@@ -29723,7 +29905,7 @@ function DeviceSelector({
29723
29905
  const orgKey = _nullishCoalesce(d.organizationId, () => ( d.organization));
29724
29906
  if (orgKey) {
29725
29907
  const existing = orgCounts.get(orgKey);
29726
- orgCounts.set(orgKey, { label: _nullishCoalesce(d.organization, () => ( orgKey)), count: (_nullishCoalesce(_optionalChain([existing, 'optionalAccess', _602 => _602.count]), () => ( 0))) + 1 });
29908
+ orgCounts.set(orgKey, { label: _nullishCoalesce(d.organization, () => ( orgKey)), count: (_nullishCoalesce(_optionalChain([existing, 'optionalAccess', _612 => _612.count]), () => ( 0))) + 1 });
29727
29909
  }
29728
29910
  for (const tag of _nullishCoalesce(d.tags, () => ( []))) {
29729
29911
  const vc = _nullishCoalesce(tagSeen.get(tag.key), () => ( /* @__PURE__ */ new Map()));
@@ -29746,18 +29928,18 @@ function DeviceSelector({
29746
29928
  filteredCount: devices.length
29747
29929
  };
29748
29930
  }, [devices]);
29749
- const deviceFilters = _nullishCoalesce(_optionalChain([server, 'optionalAccess', _603 => _603.filterOptions]), () => ( clientDeviceFilters));
29750
- const serverFaceted = Boolean(_optionalChain([server, 'optionalAccess', _604 => _604.filterOptions]));
29931
+ const deviceFilters = _nullishCoalesce(_optionalChain([server, 'optionalAccess', _613 => _613.filterOptions]), () => ( clientDeviceFilters));
29932
+ const serverFaceted = Boolean(_optionalChain([server, 'optionalAccess', _614 => _614.filterOptions]));
29751
29933
  const filterColumns = _react.useMemo.call(void 0, () => {
29752
29934
  const columns2 = getDeviceFilterColumns(deviceFilters);
29753
29935
  if (serverFaceted) return columns2;
29754
29936
  return columns2.map((column) => ({
29755
29937
  ...column,
29756
- filterOptions: _optionalChain([column, 'access', _605 => _605.filterOptions, 'optionalAccess', _606 => _606.map, 'call', _607 => _607(({ count: _count, ...option }) => option)])
29938
+ filterOptions: _optionalChain([column, 'access', _615 => _615.filterOptions, 'optionalAccess', _616 => _616.map, 'call', _617 => _617(({ count: _count, ...option }) => option)])
29757
29939
  }));
29758
29940
  }, [deviceFilters, serverFaceted]);
29759
29941
  const statusFilterOptions = _react.useMemo.call(void 0, () => {
29760
- const options = _nullishCoalesce(_optionalChain([filterColumns, 'access', _608 => _608.find, 'call', _609 => _609((column) => column.key === "status"), 'optionalAccess', _610 => _610.filterOptions]), () => ( []));
29942
+ const options = _nullishCoalesce(_optionalChain([filterColumns, 'access', _618 => _618.find, 'call', _619 => _619((column) => column.key === "status"), 'optionalAccess', _620 => _620.filterOptions]), () => ( []));
29761
29943
  return [...options].sort((a, b) => {
29762
29944
  if (a.value === DEVICE_STATUS.ARCHIVED) return 1;
29763
29945
  if (b.value === DEVICE_STATUS.ARCHIVED) return -1;
@@ -29765,15 +29947,15 @@ function DeviceSelector({
29765
29947
  });
29766
29948
  }, [filterColumns]);
29767
29949
  const orgFilterOptions = _react.useMemo.call(void 0,
29768
- () => _nullishCoalesce(_optionalChain([filterColumns, 'access', _611 => _611.find, 'call', _612 => _612((column) => column.key === "organization"), 'optionalAccess', _613 => _613.filterOptions]), () => ( [])),
29950
+ () => _nullishCoalesce(_optionalChain([filterColumns, 'access', _621 => _621.find, 'call', _622 => _622((column) => column.key === "organization"), 'optionalAccess', _623 => _623.filterOptions]), () => ( [])),
29769
29951
  [filterColumns]
29770
29952
  );
29771
29953
  const handleSetParams = _react.useCallback.call(void 0,
29772
29954
  (params) => {
29773
29955
  setColumnFilters([
29774
- ..._optionalChain([params, 'access', _614 => _614.statuses, 'optionalAccess', _615 => _615.length]) ? [{ id: "status", value: params.statuses }] : [],
29775
- ..._optionalChain([params, 'access', _616 => _616.osTypes, 'optionalAccess', _617 => _617.length]) ? [{ id: "os", value: params.osTypes }] : [],
29776
- ..._optionalChain([params, 'access', _618 => _618.organizationIds, 'optionalAccess', _619 => _619.length]) ? [{ id: "organization", value: params.organizationIds }] : []
29956
+ ..._optionalChain([params, 'access', _624 => _624.statuses, 'optionalAccess', _625 => _625.length]) ? [{ id: "status", value: params.statuses }] : [],
29957
+ ..._optionalChain([params, 'access', _626 => _626.osTypes, 'optionalAccess', _627 => _627.length]) ? [{ id: "os", value: params.osTypes }] : [],
29958
+ ..._optionalChain([params, 'access', _628 => _628.organizationIds, 'optionalAccess', _629 => _629.length]) ? [{ id: "organization", value: params.organizationIds }] : []
29777
29959
  ]);
29778
29960
  setSelectedTags(_nullishCoalesce(params.tags, () => ( [])));
29779
29961
  },
@@ -29797,9 +29979,9 @@ function DeviceSelector({
29797
29979
  const tagOptions = _react.useMemo.call(void 0, () => selectedTags.map((t) => ({ label: t, value: t })), [selectedTags]);
29798
29980
  const tableFilters = _react.useMemo.call(void 0,
29799
29981
  () => ({
29800
- status: _nullishCoalesce(_optionalChain([columnFilters, 'access', _620 => _620.find, 'call', _621 => _621((f) => f.id === "status"), 'optionalAccess', _622 => _622.value]), () => ( [])),
29801
- os: _nullishCoalesce(_optionalChain([columnFilters, 'access', _623 => _623.find, 'call', _624 => _624((f) => f.id === "os"), 'optionalAccess', _625 => _625.value]), () => ( [])),
29802
- organization: _nullishCoalesce(_optionalChain([columnFilters, 'access', _626 => _626.find, 'call', _627 => _627((f) => f.id === "organization"), 'optionalAccess', _628 => _628.value]), () => ( []))
29982
+ status: _nullishCoalesce(_optionalChain([columnFilters, 'access', _630 => _630.find, 'call', _631 => _631((f) => f.id === "status"), 'optionalAccess', _632 => _632.value]), () => ( [])),
29983
+ os: _nullishCoalesce(_optionalChain([columnFilters, 'access', _633 => _633.find, 'call', _634 => _634((f) => f.id === "os"), 'optionalAccess', _635 => _635.value]), () => ( [])),
29984
+ organization: _nullishCoalesce(_optionalChain([columnFilters, 'access', _636 => _636.find, 'call', _637 => _637((f) => f.id === "organization"), 'optionalAccess', _638 => _638.value]), () => ( []))
29803
29985
  }),
29804
29986
  [columnFilters]
29805
29987
  );
@@ -29882,7 +30064,7 @@ function DeviceSelector({
29882
30064
  id: "actions",
29883
30065
  cell: ({ row }) => {
29884
30066
  const device = row.original;
29885
- const disabledReason = _optionalChain([isDeviceDisabled, 'optionalCall', _629 => _629(device)]);
30067
+ const disabledReason = _optionalChain([isDeviceDisabled, 'optionalCall', _639 => _639(device)]);
29886
30068
  if (disabledReason) {
29887
30069
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex w-full items-center justify-end gap-2", children: [
29888
30070
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-line text-right text-ods-text-secondary text-h6 content-max-md:hidden", children: disabledReason }),
@@ -30013,7 +30195,7 @@ function DeviceSelector({
30013
30195
  showHeader && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30014
30196
  DataTable.Header,
30015
30197
  {
30016
- rightSlot: _nullishCoalesce(bulkAction, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.RowCount, { itemName: "device", totalCount: _nullishCoalesce(totalCount, () => ( _optionalChain([server, 'optionalAccess', _630 => _630.totalCount]))) })))
30198
+ rightSlot: _nullishCoalesce(bulkAction, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.RowCount, { itemName: "device", totalCount: _nullishCoalesce(totalCount, () => ( _optionalChain([server, 'optionalAccess', _640 => _640.totalCount]))) })))
30017
30199
  }
30018
30200
  ),
30019
30201
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -30104,7 +30286,7 @@ function DeviceSelectorSkeleton(props) {
30104
30286
  // src/components/features/devices/device-selector/narrowing.ts
30105
30287
  var EMPTY_NARROWING = { columnFilters: [], tags: [] };
30106
30288
  function narrowingToFilter(narrowing) {
30107
- const column = (id) => _optionalChain([narrowing, 'access', _631 => _631.columnFilters, 'access', _632 => _632.find, 'call', _633 => _633((f) => f.id === id), 'optionalAccess', _634 => _634.value]);
30289
+ const column = (id) => _optionalChain([narrowing, 'access', _641 => _641.columnFilters, 'access', _642 => _642.find, 'call', _643 => _643((f) => f.id === id), 'optionalAccess', _644 => _644.value]);
30108
30290
  const tagPairs = narrowing.tags.flatMap((t) => {
30109
30291
  const i = t.indexOf(":");
30110
30292
  return i > 0 ? [{ key: t.slice(0, i), value: t.slice(i + 1) }] : [];
@@ -30113,9 +30295,9 @@ function narrowingToFilter(narrowing) {
30113
30295
  const statuses = column("status");
30114
30296
  const osTypes = column("os");
30115
30297
  const organizationIds = column("organization");
30116
- if (_optionalChain([statuses, 'optionalAccess', _635 => _635.length])) filter.statuses = statuses;
30117
- if (_optionalChain([osTypes, 'optionalAccess', _636 => _636.length])) filter.osTypes = osTypes;
30118
- if (_optionalChain([organizationIds, 'optionalAccess', _637 => _637.length])) filter.organizationIds = organizationIds;
30298
+ if (_optionalChain([statuses, 'optionalAccess', _645 => _645.length])) filter.statuses = statuses;
30299
+ if (_optionalChain([osTypes, 'optionalAccess', _646 => _646.length])) filter.osTypes = osTypes;
30300
+ if (_optionalChain([organizationIds, 'optionalAccess', _647 => _647.length])) filter.organizationIds = organizationIds;
30119
30301
  if (tagPairs.length) {
30120
30302
  filter.tagKeys = tagPairs.map((t) => t.key);
30121
30303
  filter.tagValues = tagPairs.map((t) => t.value);
@@ -30136,7 +30318,7 @@ function DevicesGrid({
30136
30318
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
30137
30319
  const { getDeviceHref } = useDevicesViewConfig();
30138
30320
  const handleDeviceClick = (device) => {
30139
- const href = device.machineId || device.id ? _optionalChain([getDeviceHref, 'optionalCall', _638 => _638(device)]) : void 0;
30321
+ const href = device.machineId || device.id ? _optionalChain([getDeviceHref, 'optionalCall', _648 => _648(device)]) : void 0;
30140
30322
  if (href) router.push(href);
30141
30323
  };
30142
30324
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: isLoading && devices.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeviceCardSkeletonGrid, { count: 12 }) : devices.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-64 items-center justify-center rounded-[6px] border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: emptyMessage }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -30299,7 +30481,7 @@ function DevicesList({
30299
30481
  const onColumnFiltersChange = _react.useCallback.call(void 0,
30300
30482
  (updater) => {
30301
30483
  const next = typeof updater === "function" ? updater(columnFilters) : updater;
30302
- const pick = (id) => _nullishCoalesce(_optionalChain([next, 'access', _639 => _639.find, 'call', _640 => _640((f) => f.id === id), 'optionalAccess', _641 => _641.value]), () => ( []));
30484
+ const pick = (id) => _nullishCoalesce(_optionalChain([next, 'access', _649 => _649.find, 'call', _650 => _650((f) => f.id === id), 'optionalAccess', _651 => _651.value]), () => ( []));
30303
30485
  patch({ statuses: pick("status"), osTypes: pick("os"), organizationIds: pick("organization") });
30304
30486
  },
30305
30487
  [columnFilters, patch]
@@ -30519,7 +30701,7 @@ function DevicesPanelView({
30519
30701
  onLoadMore = noop,
30520
30702
  gridSentinelRef
30521
30703
  }) {
30522
- const gridColumns = _nullishCoalesce(filterColumns, () => ( getDeviceFilterColumns(deviceFilters).filter((column) => !_optionalChain([hideFilters, 'optionalAccess', _642 => _642.includes, 'call', _643 => _643(column.key)]))));
30704
+ const gridColumns = _nullishCoalesce(filterColumns, () => ( getDeviceFilterColumns(deviceFilters).filter((column) => !_optionalChain([hideFilters, 'optionalAccess', _652 => _652.includes, 'call', _653 => _653(column.key)]))));
30523
30705
  const list = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
30524
30706
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DevicesFilterToolbar, { ...toolbar, isLoading: loading }),
30525
30707
  viewMode === "table" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -30581,10 +30763,10 @@ function DevicesPanelView({
30581
30763
  actionsVariant: "icon-buttons",
30582
30764
  className,
30583
30765
  selector: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30584
- _chunk7YDF3QBNcjs.TabSelector,
30766
+ _chunkDJO7YMT3cjs.TabSelector,
30585
30767
  {
30586
30768
  value: viewMode,
30587
- onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall', _644 => _644(value)]),
30769
+ onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall', _654 => _654(value)]),
30588
30770
  items: DEVICE_VIEW_MODE_ITEMS,
30589
30771
  disabled: loading
30590
30772
  }
@@ -30805,9 +30987,9 @@ function SoftwareRowFields({ row, removable, onChange, onRemove, renderPackageSe
30805
30987
  value: row.pkg,
30806
30988
  onChange: (pkg) => onChange({ ...row, pkg })
30807
30989
  }) }),
30808
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access', _645 => _645.pkg, 'optionalAccess', _646 => _646.description]), label: "Description" }),
30990
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access', _655 => _655.pkg, 'optionalAccess', _656 => _656.description]), label: "Description" }),
30809
30991
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-end gap-[var(--spacing-system-lf)]", children: [
30810
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access', _647 => _647.pkg, 'optionalAccess', _648 => _648.version]), label: "Current Version" }),
30992
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([row, 'access', _657 => _657.pkg, 'optionalAccess', _658 => _658.version]), label: "Current Version" }),
30811
30993
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30812
30994
  _chunk2QMBXGMQcjs.Button,
30813
30995
  {
@@ -31097,10 +31279,10 @@ var ToolBadge = ({
31097
31279
  className,
31098
31280
  iconClassName
31099
31281
  }) => {
31100
- const text = _nullishCoalesce(label, () => ( (toolType ? _chunkBM6JZRVDcjs.getToolLabel.call(void 0, toolType) : "")));
31282
+ const text = _nullishCoalesce(label, () => ( (toolType ? _chunkGOTEXQZNcjs.getToolLabel.call(void 0, toolType) : "")));
31101
31283
  const mark = _nullishCoalesce(icon, () => ( (toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWI2OTGKCcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }) : null)));
31102
31284
  const linked = (node, linkClassName) => href && targetPlatform ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31103
- _chunk7YDF3QBNcjs.NavLinkAnchorViaRuntime,
31285
+ _chunkDJO7YMT3cjs.NavLinkAnchorViaRuntime,
31104
31286
  {
31105
31287
  href,
31106
31288
  targetPlatform,
@@ -31193,7 +31375,7 @@ function LogsTableView({
31193
31375
  meta: {
31194
31376
  width: LOG_COLUMN_WIDTHS.status,
31195
31377
  filter: {
31196
- options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _649 => _649.severities, 'access', _650 => _650.map, 'call', _651 => _651((severity) => ({
31378
+ options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _659 => _659.severities, 'access', _660 => _660.map, 'call', _661 => _661((severity) => ({
31197
31379
  id: severity,
31198
31380
  label: severity.charAt(0).toUpperCase() + severity.slice(1).toLowerCase(),
31199
31381
  value: severity
@@ -31207,7 +31389,7 @@ function LogsTableView({
31207
31389
  cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31208
31390
  ToolBadge,
31209
31391
  {
31210
- toolType: _chunkBM6JZRVDcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
31392
+ toolType: _chunkGOTEXQZNcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
31211
31393
  iconClassName: "h-4 w-4 content-md:h-6 content-md:w-6"
31212
31394
  }
31213
31395
  ),
@@ -31217,9 +31399,9 @@ function LogsTableView({
31217
31399
  width: LOG_COLUMN_WIDTHS.tool,
31218
31400
  hideAt: "md",
31219
31401
  filter: {
31220
- options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _652 => _652.toolTypes, 'access', _653 => _653.map, 'call', _654 => _654((toolType) => ({
31402
+ options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _662 => _662.toolTypes, 'access', _663 => _663.map, 'call', _664 => _664((toolType) => ({
31221
31403
  id: toolType,
31222
- label: _chunkBM6JZRVDcjs.toToolLabel.call(void 0, toolType),
31404
+ label: _chunkGOTEXQZNcjs.toToolLabel.call(void 0, toolType),
31223
31405
  value: toolType
31224
31406
  }))]), () => ( []))
31225
31407
  }
@@ -31240,7 +31422,7 @@ function LogsTableView({
31240
31422
  meta: {
31241
31423
  width: LOG_COLUMN_WIDTHS.source,
31242
31424
  hideAt: "md",
31243
- filter: organizationLocked ? void 0 : { options: [..._nullishCoalesce(_optionalChain([facets, 'optionalAccess', _655 => _655.organizations]), () => ( []))] }
31425
+ filter: organizationLocked ? void 0 : { options: [..._nullishCoalesce(_optionalChain([facets, 'optionalAccess', _665 => _665.organizations]), () => ( []))] }
31244
31426
  }
31245
31427
  },
31246
31428
  {
@@ -31252,7 +31434,7 @@ function LogsTableView({
31252
31434
  },
31253
31435
  {
31254
31436
  id: "copy",
31255
- cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: _optionalChain([renderCopyAction, 'optionalCall', _656 => _656(row.original)]) }),
31437
+ cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: _optionalChain([renderCopyAction, 'optionalCall', _666 => _666(row.original)]) }),
31256
31438
  enableSorting: false,
31257
31439
  meta: { width: `${LOG_COLUMN_WIDTHS.action} ml-auto`, align: "right" }
31258
31440
  },
@@ -31261,7 +31443,7 @@ function LogsTableView({
31261
31443
  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,
31262
31444
  _chunk2QMBXGMQcjs.Button,
31263
31445
  {
31264
- onClick: () => _optionalChain([onQuickView, 'optionalCall', _657 => _657(row.original)]),
31446
+ onClick: () => _optionalChain([onQuickView, 'optionalCall', _667 => _667(row.original)]),
31265
31447
  variant: "outline",
31266
31448
  size: "icon",
31267
31449
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMMLT7ASAcjs.EyeIcon, { className: "h-5 w-5" }),
@@ -31277,7 +31459,7 @@ function LogsTableView({
31277
31459
  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,
31278
31460
  _chunk2QMBXGMQcjs.Button,
31279
31461
  {
31280
- onClick: getLogHref ? _chunkBM6JZRVDcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
31462
+ onClick: getLogHref ? _chunkGOTEXQZNcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
31281
31463
  variant: "outline",
31282
31464
  size: "icon",
31283
31465
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -31289,14 +31471,14 @@ function LogsTableView({
31289
31471
  meta: { width: LOG_COLUMN_WIDTHS.action, hideAt: "md", align: "right" }
31290
31472
  }
31291
31473
  ];
31292
- if (!_optionalChain([hiddenColumns, 'optionalAccess', _658 => _658.length])) return all;
31474
+ if (!_optionalChain([hiddenColumns, 'optionalAccess', _668 => _668.length])) return all;
31293
31475
  return all.filter((column) => !hiddenColumns.includes(columnId(column)));
31294
31476
  }, [facets, getLogHref, organizationLocked, logIdHeader, renderCopyAction, onQuickView, hiddenColumns]);
31295
31477
  const filterGroups = _react.useMemo.call(void 0,
31296
- () => columns.filter((column) => _optionalChain([column, 'access', _659 => _659.meta, 'optionalAccess', _660 => _660.filter, 'optionalAccess', _661 => _661.options])).map((column) => ({
31478
+ () => columns.filter((column) => _optionalChain([column, 'access', _669 => _669.meta, 'optionalAccess', _670 => _670.filter, 'optionalAccess', _671 => _671.options])).map((column) => ({
31297
31479
  id: columnId(column),
31298
31480
  title: typeof column.header === "string" ? column.header : "",
31299
- options: _optionalChain([column, 'access', _662 => _662.meta, 'optionalAccess', _663 => _663.filter, 'optionalAccess', _664 => _664.options]) || []
31481
+ options: _optionalChain([column, 'access', _672 => _672.meta, 'optionalAccess', _673 => _673.filter, 'optionalAccess', _674 => _674.options]) || []
31300
31482
  })),
31301
31483
  [columns]
31302
31484
  );
@@ -31325,14 +31507,14 @@ function LogsTableView({
31325
31507
  onColumnFiltersChange: handleColumnFiltersChange
31326
31508
  });
31327
31509
  const hasActiveFilters = Object.values(filters).some((values) => values.length > 0);
31328
- const hasQuery = Boolean(search) || hasActiveFilters || Boolean(_optionalChain([dateFilter, 'optionalAccess', _665 => _665.range]));
31510
+ const hasQuery = Boolean(search) || hasActiveFilters || Boolean(_optionalChain([dateFilter, 'optionalAccess', _675 => _675.range]));
31329
31511
  const noRows = !loading && logs.length === 0;
31330
31512
  const showEmptyState = !organizationLocked && !hasQuery && noRows;
31331
31513
  const scoped = deviceScoped || organizationLocked;
31332
31514
  const scopedEmpty = scoped && noRows;
31333
31515
  const hideSearch = showEmptyState || scopedEmpty && !hasQuery;
31334
31516
  _react.useEffect.call(void 0, () => {
31335
- _optionalChain([onHideSearchChange, 'optionalCall', _666 => _666(hideSearch)]);
31517
+ _optionalChain([onHideSearchChange, 'optionalCall', _676 => _676(hideSearch)]);
31336
31518
  }, [hideSearch, onHideSearchChange]);
31337
31519
  if (showEmptyState) {
31338
31520
  const emptyProps = deviceScoped ? { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIK3ZQW3Dcjs.ClipboardListIcon, {}), title: EMPTY_TITLE, description: EMPTY_DESCRIPTION } : {
@@ -31512,7 +31694,7 @@ function ExecutionTimestampCell({ timestamp, executionId }) {
31512
31694
  }
31513
31695
  function ExecutionStatusCell({ status }) {
31514
31696
  const presentation = scriptExecutionStatus(status);
31515
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkABLUMGCIcjs.Tag, { label: _nullishCoalesce(_optionalChain([presentation, 'optionalAccess', _667 => _667.label]), () => ( String(_nullishCoalesce(status, () => ( ""))))), variant: _nullishCoalesce(_optionalChain([presentation, 'optionalAccess', _668 => _668.variant]), () => ( "grey")) }) });
31697
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkABLUMGCIcjs.Tag, { label: _nullishCoalesce(_optionalChain([presentation, 'optionalAccess', _677 => _677.label]), () => ( String(_nullishCoalesce(status, () => ( ""))))), variant: _nullishCoalesce(_optionalChain([presentation, 'optionalAccess', _678 => _678.variant]), () => ( "grey")) }) });
31516
31698
  }
31517
31699
  function ExecutionDeviceCell({ name, organization }) {
31518
31700
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col justify-center gap-1", children: [
@@ -31652,7 +31834,7 @@ function OpenInNewTabCell({ href }) {
31652
31834
  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,
31653
31835
  _chunk2QMBXGMQcjs.Button,
31654
31836
  {
31655
- onClick: _chunkBM6JZRVDcjs.openInNewTab.call(void 0, href),
31837
+ onClick: _chunkGOTEXQZNcjs.openInNewTab.call(void 0, href),
31656
31838
  variant: "outline",
31657
31839
  size: "icon",
31658
31840
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -31703,7 +31885,7 @@ function ScriptExecutionsTable({
31703
31885
  [EXECUTION_COLUMNS.result.id]: (row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ExecutionResultCell, { result: row.result }),
31704
31886
  [EXECUTION_COLUMNS.open.id]: (row) => row.href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OpenInNewTabCell, { href: row.href }) : null
31705
31887
  };
31706
- return layout.filter((column) => renderers[column.id] && !_optionalChain([hideColumns, 'optionalAccess', _669 => _669.includes, 'call', _670 => _670(column.id)])).map((column) => ({
31888
+ return layout.filter((column) => renderers[column.id] && !_optionalChain([hideColumns, 'optionalAccess', _679 => _679.includes, 'call', _680 => _680(column.id)])).map((column) => ({
31707
31889
  id: column.id,
31708
31890
  header: _nullishCoalesce(column.header, () => ( "")),
31709
31891
  cell: ({ row }) => renderers[column.id](row.original),
@@ -31801,25 +31983,25 @@ function ScriptSchedulesTable({
31801
31983
 
31802
31984
  // src/components/features/scripts/shell-types.ts
31803
31985
  var SCRIPT_SHELL_TYPES = [
31804
- { id: _chunkBM6JZRVDcjs.ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon },
31805
- { id: _chunkBM6JZRVDcjs.ShellTypeValues.CMD, label: "CMD", value: "cmd", icon: _chunkNIVJEJSGcjs.TerminalSquareIcon },
31806
- { id: _chunkBM6JZRVDcjs.ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkTRUW6DDAcjs.TerminalIcon }
31986
+ { id: _chunkGOTEXQZNcjs.ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon },
31987
+ { id: _chunkGOTEXQZNcjs.ShellTypeValues.CMD, label: "CMD", value: "cmd", icon: _chunkNIVJEJSGcjs.TerminalSquareIcon },
31988
+ { id: _chunkGOTEXQZNcjs.ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkTRUW6DDAcjs.TerminalIcon }
31807
31989
  ];
31808
31990
  function scriptShellType(value) {
31809
31991
  return SCRIPT_SHELL_TYPES.find((shell) => shell.value === value);
31810
31992
  }
31811
31993
  function scriptShellLabel(value) {
31812
- return _nullishCoalesce(_optionalChain([scriptShellType, 'call', _671 => _671(value), 'optionalAccess', _672 => _672.label]), () => ( value));
31994
+ return _nullishCoalesce(_optionalChain([scriptShellType, 'call', _681 => _681(value), 'optionalAccess', _682 => _682.label]), () => ( value));
31813
31995
  }
31814
31996
 
31815
31997
  // src/components/features/scripts/script-shell-badge.tsx
31816
31998
 
31817
31999
  function ScriptShellBadge({ value, className, iconClassName }) {
31818
32000
  const shell = scriptShellType(value);
31819
- const Icon = _optionalChain([shell, 'optionalAccess', _673 => _673.icon]);
32001
+ const Icon = _optionalChain([shell, 'optionalAccess', _683 => _683.icon]);
31820
32002
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex items-center gap-2", className), children: [
31821
32003
  Icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: _chunk3ATAYP36cjs.cn.call(void 0, "h-5 w-5 text-ods-text-secondary", iconClassName) }),
31822
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _nullishCoalesce(_optionalChain([shell, 'optionalAccess', _674 => _674.label]), () => ( value)) })
32004
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _nullishCoalesce(_optionalChain([shell, 'optionalAccess', _684 => _684.label]), () => ( value)) })
31823
32005
  ] });
31824
32006
  }
31825
32007
 
@@ -32157,7 +32339,7 @@ function ScheduleIntervalInput(props) {
32157
32339
  onBlur: () => {
32158
32340
  focused.current = false;
32159
32341
  setText(value === null ? "" : String(value));
32160
- _optionalChain([onBlur, 'optionalCall', _675 => _675()]);
32342
+ _optionalChain([onBlur, 'optionalCall', _685 => _685()]);
32161
32343
  },
32162
32344
  onChange: (e) => {
32163
32345
  const raw = e.target.value;
@@ -32220,7 +32402,7 @@ function ScheduleOfflineFields({ showErrors, disabled = false }) {
32220
32402
  const { field: intervalField, fieldState: intervalState } = _reacthookform.useController.call(void 0, { control, name: "reconnectInterval" });
32221
32403
  const { field: unitField } = _reacthookform.useController.call(void 0, { control, name: "reconnectUnit" });
32222
32404
  const windowDisabled = disabled || !isRetryOnReconnect(behaviorField.value);
32223
- const intervalError = showErrors ? _optionalChain([intervalState, 'access', _676 => _676.error, 'optionalAccess', _677 => _677.message]) : void 0;
32405
+ const intervalError = showErrors ? _optionalChain([intervalState, 'access', _686 => _686.error, 'optionalAccess', _687 => _687.message]) : void 0;
32224
32406
  const handleUnitChange = (next) => {
32225
32407
  unitField.onChange(next);
32226
32408
  const snapped = snapReconnectInterval(intervalField.value, next);
@@ -32365,13 +32547,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
32365
32547
  const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
32366
32548
  const flipTimer = _react.useRef.call(void 0, null);
32367
32549
  const readItems = _react.useCallback.call(void 0,
32368
- () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.querySelectorAll, 'call', _680 => _680(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
32550
+ () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _688 => _688.current, 'optionalAccess', _689 => _689.querySelectorAll, 'call', _690 => _690(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
32369
32551
  []
32370
32552
  );
32371
32553
  const reorder = _react.useCallback.call(void 0,
32372
32554
  (from, to) => {
32373
32555
  if (from === to) return;
32374
- const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _681 => _681.current, 'optionalCall', _682 => _682(from)]), () => ( "Item"));
32556
+ const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _691 => _691.current, 'optionalCall', _692 => _692(from)]), () => ( "Item"));
32375
32557
  setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
32376
32558
  onReorderRef.current(from, to);
32377
32559
  },
@@ -32459,7 +32641,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
32459
32641
  moving.push(item);
32460
32642
  }
32461
32643
  if (moving.length === 0) return;
32462
- void _optionalChain([listRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.offsetHeight]);
32644
+ void _optionalChain([listRef, 'access', _693 => _693.current, 'optionalAccess', _694 => _694.offsetHeight]);
32463
32645
  for (const item of moving) {
32464
32646
  item.style.transition = `transform ${DROP_MS}ms ${EASING}`;
32465
32647
  item.style.transform = "";
@@ -32626,8 +32808,8 @@ function SortableMoveButtons({ index, count, label, className }) {
32626
32808
  if (to < 0 || to >= count) return;
32627
32809
  reorder(index, to);
32628
32810
  requestAnimationFrame(() => {
32629
- if (step === -1 && to === 0) _optionalChain([downRef, 'access', _685 => _685.current, 'optionalAccess', _686 => _686.focus, 'call', _687 => _687()]);
32630
- if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _688 => _688.current, 'optionalAccess', _689 => _689.focus, 'call', _690 => _690()]);
32811
+ if (step === -1 && to === 0) _optionalChain([downRef, 'access', _695 => _695.current, 'optionalAccess', _696 => _696.focus, 'call', _697 => _697()]);
32812
+ if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _698 => _698.current, 'optionalAccess', _699 => _699.focus, 'call', _700 => _700()]);
32631
32813
  });
32632
32814
  };
32633
32815
  const subject = _nullishCoalesce(label, () => ( "item"));
@@ -32675,7 +32857,7 @@ function useSortableItem() {
32675
32857
  const [handle, setHandle] = _react.useState.call(void 0, null);
32676
32858
  const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
32677
32859
  const itemRef = _react.useCallback.call(void 0, (node) => {
32678
- _optionalChain([node, 'optionalAccess', _691 => _691.setAttribute, 'call', _692 => _692(SORTABLE_ITEM_ATTRIBUTE, "")]);
32860
+ _optionalChain([node, 'optionalAccess', _701 => _701.setAttribute, 'call', _702 => _702(SORTABLE_ITEM_ATTRIBUTE, "")]);
32679
32861
  setItem(node);
32680
32862
  }, []);
32681
32863
  _react.useEffect.call(void 0, () => {
@@ -32705,7 +32887,7 @@ function useSortableItem() {
32705
32887
  if (from < 0 || to < 0 || to >= items.length) return;
32706
32888
  event.preventDefault();
32707
32889
  reorder(from, to);
32708
- requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _693 => _693.focus, 'call', _694 => _694()]));
32890
+ requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _703 => _703.focus, 'call', _704 => _704()]));
32709
32891
  },
32710
32892
  [inert, readItems, reorder, handle]
32711
32893
  );
@@ -32728,7 +32910,7 @@ function ScheduleScriptPickerCard({
32728
32910
  }) {
32729
32911
  const { control, setValue, watch } = _reacthookform.useFormContext.call(void 0, );
32730
32912
  const selected = watch(`scripts.${index}`);
32731
- const runParamsLocked = disabled || !_optionalChain([selected, 'optionalAccess', _695 => _695.scriptId]);
32913
+ const runParamsLocked = disabled || !_optionalChain([selected, 'optionalAccess', _705 => _705.scriptId]);
32732
32914
  const { itemRef, dragHandleProps, isDragging, dragAndDropEnabled } = useSortableItem();
32733
32915
  const isMdUp = _chunkR34JD6NPcjs.useContentMdUp.call(void 0, );
32734
32916
  const handleScriptPick = (row) => {
@@ -32760,7 +32942,7 @@ function ScheduleScriptPickerCard({
32760
32942
  type: "button",
32761
32943
  ...dragHandleProps,
32762
32944
  disabled,
32763
- "aria-label": `Reorder ${_optionalChain([selected, 'optionalAccess', _696 => _696.name]) || `script ${index + 1}`}`,
32945
+ "aria-label": `Reorder ${_optionalChain([selected, 'optionalAccess', _706 => _706.name]) || `script ${index + 1}`}`,
32764
32946
  className: `flex size-12 shrink-0 items-center justify-center rounded-[6px] text-ods-text-secondary hover:text-ods-text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-ods-border-focus disabled:cursor-not-allowed disabled:opacity-30 ${isDragging ? "cursor-grabbing text-ods-text-primary" : "cursor-grab"}`,
32765
32947
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJAWIFYB2cjs.DraggerIcon, { size: 24 })
32766
32948
  }
@@ -32771,18 +32953,18 @@ function ScheduleScriptPickerCard({
32771
32953
  name: `scripts.${index}.scriptId`,
32772
32954
  control,
32773
32955
  render: ({ fieldState }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: renderScriptSearch({
32774
- scriptId: _nullishCoalesce(_optionalChain([selected, 'optionalAccess', _697 => _697.scriptId]), () => ( "")),
32775
- name: _nullishCoalesce(_optionalChain([selected, 'optionalAccess', _698 => _698.name]), () => ( "")),
32956
+ scriptId: _nullishCoalesce(_optionalChain([selected, 'optionalAccess', _707 => _707.scriptId]), () => ( "")),
32957
+ name: _nullishCoalesce(_optionalChain([selected, 'optionalAccess', _708 => _708.name]), () => ( "")),
32776
32958
  supportedPlatforms,
32777
32959
  onPick: handleScriptPick,
32778
32960
  disabled,
32779
- error: showErrors ? _optionalChain([fieldState, 'access', _699 => _699.error, 'optionalAccess', _700 => _700.message]) : void 0,
32961
+ error: showErrors ? _optionalChain([fieldState, 'access', _709 => _709.error, 'optionalAccess', _710 => _710.message]) : void 0,
32780
32962
  invalid: showErrors && !!fieldState.error
32781
32963
  }) })
32782
32964
  }
32783
32965
  ),
32784
32966
  !dragAndDropEnabled && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32785
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableMoveButtons, { index, count, label: _optionalChain([selected, 'optionalAccess', _701 => _701.name]) || `script ${index + 1}` }),
32967
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableMoveButtons, { index, count, label: _optionalChain([selected, 'optionalAccess', _711 => _711.name]) || `script ${index + 1}` }),
32786
32968
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32787
32969
  _chunk2QMBXGMQcjs.Button,
32788
32970
  {
@@ -32823,7 +33005,7 @@ function ScheduleScriptPickerCard({
32823
33005
  onChange: (e) => field.onChange(e.target.value ? Number(e.target.value) : UNSET_TIMEOUT),
32824
33006
  disabled: runParamsLocked,
32825
33007
  endAdornment: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: "Seconds" }),
32826
- error: showErrors ? _optionalChain([fieldState, 'access', _702 => _702.error, 'optionalAccess', _703 => _703.message]) : void 0,
33008
+ error: showErrors ? _optionalChain([fieldState, 'access', _712 => _712.error, 'optionalAccess', _713 => _713.message]) : void 0,
32827
33009
  invalid: showErrors && !!fieldState.error
32828
33010
  }
32829
33011
  )
@@ -33077,7 +33259,7 @@ function ScheduleTimingFields({
33077
33259
  fromDate: minDate,
33078
33260
  disabled: fieldsDisabled,
33079
33261
  className: "w-full",
33080
- error: _nullishCoalesce(dateError, () => ( (showErrors ? _optionalChain([fieldState, 'access', _704 => _704.error, 'optionalAccess', _705 => _705.message]) : void 0))),
33262
+ error: _nullishCoalesce(dateError, () => ( (showErrors ? _optionalChain([fieldState, 'access', _714 => _714.error, 'optionalAccess', _715 => _715.message]) : void 0))),
33081
33263
  invalid: !!dateError || showErrors && !!fieldState.error
33082
33264
  }
33083
33265
  ),
@@ -33112,7 +33294,7 @@ function ScheduleTimingFields({
33112
33294
  _chunkU2O5YQRPcjs.SelectTrigger,
33113
33295
  {
33114
33296
  className: "w-full",
33115
- error: _nullishCoalesce(pastTimeError, () => ( (showErrors ? _optionalChain([fieldState, 'access', _706 => _706.error, 'optionalAccess', _707 => _707.message]) : void 0))),
33297
+ error: _nullishCoalesce(pastTimeError, () => ( (showErrors ? _optionalChain([fieldState, 'access', _716 => _716.error, 'optionalAccess', _717 => _717.message]) : void 0))),
33116
33298
  invalid: !!pastTimeError || showErrors && !!fieldState.error,
33117
33299
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU2O5YQRPcjs.SelectValue, { placeholder: "Select time" })
33118
33300
  }
@@ -33192,7 +33374,7 @@ function ScheduleTimingFields({
33192
33374
  recheckReconnectWindow();
33193
33375
  },
33194
33376
  disabled: fieldsDisabled || !repeatEnabled,
33195
- error: showErrors ? _optionalChain([fieldState, 'access', _708 => _708.error, 'optionalAccess', _709 => _709.message]) : void 0,
33377
+ error: showErrors ? _optionalChain([fieldState, 'access', _718 => _718.error, 'optionalAccess', _719 => _719.message]) : void 0,
33196
33378
  invalid: showErrors && !!fieldState.error
33197
33379
  }
33198
33380
  )
@@ -33236,7 +33418,7 @@ function ScheduleFormFields({
33236
33418
  disabled = false,
33237
33419
  renderScriptSearch,
33238
33420
  timeReferenceGate = "off",
33239
- platforms = _chunkBM6JZRVDcjs.OS_PLATFORMS,
33421
+ platforms = _chunkGOTEXQZNcjs.OS_PLATFORMS,
33240
33422
  comingSoonPlatforms = [],
33241
33423
  getTimeSlots,
33242
33424
  nameLayout = "stacked",
@@ -33277,7 +33459,7 @@ function ScheduleFormFields({
33277
33459
  onChange: field.onChange,
33278
33460
  disabled,
33279
33461
  className: "w-full",
33280
- error: showErrors ? _optionalChain([fieldState, 'access', _710 => _710.error, 'optionalAccess', _711 => _711.message]) : void 0,
33462
+ error: showErrors ? _optionalChain([fieldState, 'access', _720 => _720.error, 'optionalAccess', _721 => _721.message]) : void 0,
33281
33463
  invalid: showErrors && !!fieldState.error
33282
33464
  }
33283
33465
  )
@@ -33382,7 +33564,7 @@ function ScheduleFormFields({
33382
33564
  // src/components/features/scripts/schedule-form/schedule-script-search-field.tsx
33383
33565
 
33384
33566
  function ScriptPlatformIcons({ platforms }) {
33385
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex shrink-0 items-center gap-0.5", children: _chunkBM6JZRVDcjs.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)) });
33567
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex shrink-0 items-center gap-0.5", children: _chunkGOTEXQZNcjs.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)) });
33386
33568
  }
33387
33569
  function ScheduleScriptSearchField({
33388
33570
  scriptId,
@@ -33399,7 +33581,7 @@ function ScheduleScriptSearchField({
33399
33581
  invalid = false
33400
33582
  }) {
33401
33583
  const handleBlur = (e) => {
33402
- if (!e.currentTarget.contains(e.relatedTarget)) _optionalChain([onClose, 'optionalCall', _712 => _712()]);
33584
+ if (!e.currentTarget.contains(e.relatedTarget)) _optionalChain([onClose, 'optionalCall', _722 => _722()]);
33403
33585
  };
33404
33586
  const options = scripts.map((s) => ({ label: s.name, value: s.id }));
33405
33587
  if (scriptId && !options.some((o) => o.value === scriptId)) {
@@ -33424,7 +33606,7 @@ function ScheduleScriptSearchField({
33424
33606
  invalid,
33425
33607
  renderOption: (option, isSelected) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33426
33608
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU2O5YQRPcjs.TruncateText, { className: isSelected ? "text-ods-accent" : void 0, children: option.label }) }),
33427
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScriptPlatformIcons, { platforms: _nullishCoalesce(_optionalChain([scripts, 'access', _713 => _713.find, 'call', _714 => _714((s) => s.id === option.value), 'optionalAccess', _715 => _715.supportedPlatforms]), () => ( [])) })
33609
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ScriptPlatformIcons, { platforms: _nullishCoalesce(_optionalChain([scripts, 'access', _723 => _723.find, 'call', _724 => _724((s) => s.id === option.value), 'optionalAccess', _725 => _725.supportedPlatforms]), () => ( [])) })
33428
33610
  ] })
33429
33611
  }
33430
33612
  )
@@ -33455,7 +33637,7 @@ function getKnowledgeBaseOpenColumn(getHref) {
33455
33637
  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,
33456
33638
  _chunk2QMBXGMQcjs.Button,
33457
33639
  {
33458
- onClick: _chunkBM6JZRVDcjs.openInNewTab.call(void 0, getHref(row.original)),
33640
+ onClick: _chunkGOTEXQZNcjs.openInNewTab.call(void 0, getHref(row.original)),
33459
33641
  variant: "outline",
33460
33642
  size: "icon",
33461
33643
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
@@ -33654,7 +33836,7 @@ function TicketStatusConfigList({
33654
33836
  onReorder,
33655
33837
  getItemLabel,
33656
33838
  className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
33657
- children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _716 => _716(index)]), children: (args) => renderRow(item, args) }, item.id))
33839
+ children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _726 => _726(index)]), children: (args) => renderRow(item, args) }, item.id))
33658
33840
  }
33659
33841
  );
33660
33842
  }
@@ -33703,13 +33885,13 @@ function ConversationCard({
33703
33885
  ),
33704
33886
  style: tint,
33705
33887
  children: [
33706
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBM6JZRVDcjs.ChatTurn, { avatar: requester.avatar, name: requester.name, meta: requester.meta, time: requester.time, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "m-0 line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", title: request, children: [
33888
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGOTEXQZNcjs.ChatTurn, { avatar: requester.avatar, name: requester.name, meta: requester.meta, time: requester.time, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "m-0 line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", title: request, children: [
33707
33889
  "\u201C",
33708
33890
  request,
33709
33891
  "\u201D"
33710
33892
  ] }) }),
33711
33893
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33712
- _chunkBM6JZRVDcjs.ChatTurn,
33894
+ _chunkGOTEXQZNcjs.ChatTurn,
33713
33895
  {
33714
33896
  avatar: responder.avatar,
33715
33897
  name: responder.name,
@@ -33771,16 +33953,16 @@ function Example({
33771
33953
  ),
33772
33954
  children: [
33773
33955
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 gap-2.5", children: [
33774
- mark(_nullishCoalesce(_optionalChain([requester, 'optionalAccess', _717 => _717.mark]), () => ( requesterMark))),
33956
+ mark(_nullishCoalesce(_optionalChain([requester, 'optionalAccess', _727 => _727.mark]), () => ( requesterMark))),
33775
33957
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
33776
- who(_nullishCoalesce(_optionalChain([requester, 'optionalAccess', _718 => _718.name]), () => ( labels.requester)), _nullishCoalesce(_optionalChain([requester, 'optionalAccess', _719 => _719.note]), () => ( labels.requesterNote))),
33958
+ who(_nullishCoalesce(_optionalChain([requester, 'optionalAccess', _728 => _728.name]), () => ( labels.requester)), _nullishCoalesce(_optionalChain([requester, 'optionalAccess', _729 => _729.note]), () => ( labels.requesterNote))),
33777
33959
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU2O5YQRPcjs.TruncateText, { lines: 2, variant: "h4", className: "min-h-[2lh]", children: `\u201C${example.request}\u201D` })
33778
33960
  ] })
33779
33961
  ] }),
33780
33962
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 gap-2.5 border-t border-ods-border pt-3", children: [
33781
- mark(_nullishCoalesce(_optionalChain([responder, 'optionalAccess', _720 => _720.mark]), () => ( responderMark))),
33963
+ mark(_nullishCoalesce(_optionalChain([responder, 'optionalAccess', _730 => _730.mark]), () => ( responderMark))),
33782
33964
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
33783
- who(_nullishCoalesce(_optionalChain([responder, 'optionalAccess', _721 => _721.name]), () => ( labels.responder)), _nullishCoalesce(_optionalChain([responder, 'optionalAccess', _722 => _722.note]), () => ( labels.responderNote))),
33965
+ who(_nullishCoalesce(_optionalChain([responder, 'optionalAccess', _731 => _731.name]), () => ( labels.responder)), _nullishCoalesce(_optionalChain([responder, 'optionalAccess', _732 => _732.note]), () => ( labels.responderNote))),
33784
33966
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-start gap-2", children: [
33785
33967
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkXIBCMGBWcjs.CheckIcon, { size: 16, className: "mt-0.5 shrink-0 text-ods-flamingo-cyan" }),
33786
33968
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU2O5YQRPcjs.TruncateText, { lines: 2, variant: "h6", tone: "secondary", className: "min-h-[2lh]", triggerClassName: "flex-1", children: example.outcome })
@@ -33980,7 +34162,7 @@ function CapabilityExplorer({
33980
34162
  if (next === null) return;
33981
34163
  event.preventDefault();
33982
34164
  onActiveChange(items[next].id);
33983
- _optionalChain([listRef, 'access', _723 => _723.current, 'optionalAccess', _724 => _724.querySelectorAll, 'call', _725 => _725('[role="tab"]'), 'access', _726 => _726[next], 'optionalAccess', _727 => _727.focus, 'call', _728 => _728()]);
34165
+ _optionalChain([listRef, 'access', _733 => _733.current, 'optionalAccess', _734 => _734.querySelectorAll, 'call', _735 => _735('[role="tab"]'), 'access', _736 => _736[next], 'optionalAccess', _737 => _737.focus, 'call', _738 => _738()]);
33984
34166
  };
33985
34167
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
33986
34168
  "div",
@@ -34785,4 +34967,6 @@ function CapabilityExplorer({
34785
34967
 
34786
34968
 
34787
34969
 
34788
- exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.timezoneLabel = timezoneLabel; exports.timezoneOptions = timezoneOptions; exports.TimezoneSelect = TimezoneSelect; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormDrawer = AdminFormDrawer; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigationVariantProvider = TabNavigationVariantProvider; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FADE_PREVIEW_MAX_UNMEASURED_ITEMS = FADE_PREVIEW_MAX_UNMEASURED_ITEMS; exports.FadePreview = FadePreview; exports.TextHold = TextHold; exports.LayoutHold = LayoutHold; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.AppStoreBadge = AppStoreBadge; exports.GooglePlayBadge = GooglePlayBadge; exports.StoreBadgeLinks = StoreBadgeLinks; exports.MobileAppQr = MobileAppQr; exports.StatusIndicator = StatusIndicator; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PageShell = PageShell; exports.PageMain = PageMain; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.benefitCardBorderClass = benefitCardBorderClass; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.DataAttribution = DataAttribution; exports.DownloadButton = DownloadButton; exports.ComplianceBadge = ComplianceBadge; exports.ComplianceLogo = ComplianceLogo; exports.FeatureCardGrid = FeatureCardGrid; exports.StepNumber = StepNumber; exports.NumberedStep = NumberedStep; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.PersonCell = PersonCell; exports.PeopleCell = PeopleCell; exports.TitleContentBlock = TitleContentBlock; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.TRIAL_TERM_ICONS = TRIAL_TERM_ICONS; exports.DEFAULT_TRIAL_TERMS = DEFAULT_TRIAL_TERMS; exports.trialBenefits = trialBenefits; exports.BenefitList = BenefitList; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.CompactAuthShell = CompactAuthShell; exports.LabeledDivider = LabeledDivider; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.PolicyLink = PolicyLink; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LegalLinks = LegalLinks; exports.LoginForm = LoginForm; exports.NoAccountNotice = NoAccountNotice; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.SsoJoinForm = SsoJoinForm; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.useMediaIntake = useMediaIntake; exports.MediaUploadArea = MediaUploadArea; exports.MediaGalleryManager = MediaGalleryManager; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.MODEL_TOKEN_RATES_COPY = MODEL_TOKEN_RATES_COPY; exports.ModelTokenRates = ModelTokenRates; exports.ModelTokenRatesPopover = ModelTokenRatesPopover; exports.ModelTokenRatesUnavailable = ModelTokenRatesUnavailable; exports.ModelTokenRatesSkeleton = ModelTokenRatesSkeleton; exports.MODEL_TOKEN_EXCHANGE_BALANCE = MODEL_TOKEN_EXCHANGE_BALANCE; exports.MODEL_TOKEN_EXCHANGE_RANGE = MODEL_TOKEN_EXCHANGE_RANGE; exports.ModelTokenExchange = ModelTokenExchange; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.socialIcon = socialIcon; exports.SocialIconRow = SocialIconRow; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.APPROVAL_LEVELS = APPROVAL_LEVELS; exports.APPROVAL_LEVEL_META = APPROVAL_LEVEL_META; exports.ApprovalLevelView = ApprovalLevelView; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.DataTableEmpty = DataTableEmpty; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DATA_TABLE_HEADER_LABEL_CLASS = DATA_TABLE_HEADER_LABEL_CLASS; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.PoliciesTable = PoliciesTable; exports.PolicySummaryCards = PolicySummaryCards; exports.POLICY_STATUS_CONFIG = POLICY_STATUS_CONFIG; exports.getPolicyStatus = getPolicyStatus; exports.getPolicyTableStatus = getPolicyTableStatus; exports.computePolicySummary = computePolicySummary; exports.TENANT_EMPTY_VALUE = TENANT_EMPTY_VALUE; exports.accessStateTag = accessStateTag; exports.providerMark = providerMark2; exports.lastReadAt = lastReadAt; exports.formatLastRead = formatLastRead; exports.usersCountLabel = usersCountLabel; exports.TenantAccessCell = TenantAccessCell; exports.TenantCell = TenantCell; exports.TenantCustomerCell = TenantCustomerCell; exports.TENANT_COLUMNS = TENANT_COLUMNS; exports.TENANTS_TABLE_COLUMNS = TENANTS_TABLE_COLUMNS; exports.TenantsTableView = TenantsTableView; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.TICKET_APPROVAL_REQUEST_TYPE = TICKET_APPROVAL_REQUEST_TYPE; exports.MINGO_APPROVAL_REQUEST_TYPE = MINGO_APPROVAL_REQUEST_TYPE; exports.isApprovalNotificationType = isApprovalNotificationType; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.formatLastOnline = formatLastOnline; exports.getDeviceName = getDeviceName; exports.matchesDeviceName = matchesDeviceName; exports.DevicesViewConfigProvider = DevicesViewConfigProvider; exports.useDevicesViewConfig = useDevicesViewConfig; exports.useDeviceImageUrl = useDeviceImageUrl; exports.DeviceSelectionModeRadio = DeviceSelectionModeRadio; exports.getDeviceStatusConfig = getDeviceStatusConfig; exports.getDeviceOperatingSystem = getDeviceOperatingSystem; exports.DEVICE_STATUS = DEVICE_STATUS; exports.DEFAULT_VISIBLE_STATUSES = DEFAULT_VISIBLE_STATUSES; exports.DEFAULT_DASHBOARD_STATUSES = DEFAULT_DASHBOARD_STATUSES; exports.DEFAULT_DEVICES_LIST_STATUSES = DEFAULT_DEVICES_LIST_STATUSES; exports.DEVICE_ENRICHMENT_STATUSES = DEVICE_ENRICHMENT_STATUSES; exports.DEVICE_ENRICHMENT_FILTER = DEVICE_ENRICHMENT_FILTER; exports.HIDDEN_DEVICE_STATUSES = HIDDEN_DEVICE_STATUSES; exports.renderDeviceTypeIcon = renderDeviceTypeIcon; exports.DeviceTypeTile = DeviceTypeTile; exports.DeviceTagsFilterButton = DeviceTagsFilterButton; exports.DevicesFilterToolbar = DevicesFilterToolbar; exports.getDeviceActionsColumn = getDeviceActionsColumn; exports.getDeviceOpenColumn = getDeviceOpenColumn; exports.DevicesTableBody = DevicesTableBody; exports.getDeviceFilterColumns = getDeviceFilterColumns; exports.getDeviceTableColumns = getDeviceTableColumns; exports.useTagFilterModal = useTagFilterModal; exports.DeviceSelector = DeviceSelector; exports.DeviceSelectorSkeleton = DeviceSelectorSkeleton; exports.EMPTY_NARROWING = EMPTY_NARROWING; exports.narrowingToFilter = narrowingToFilter; exports.DevicesGrid = DevicesGrid; exports.DevicesGridFilters = DevicesGridFilters; exports.EMPTY_DEVICES_NARROWING = EMPTY_DEVICES_NARROWING; exports.isNarrowed = isNarrowed; exports.DevicesList = DevicesList; exports.DEVICE_VIEW_MODE_ITEMS = DEVICE_VIEW_MODE_ITEMS; exports.buildDevicePanelActions = buildDevicePanelActions; exports.IDLE_DEVICES_TOOLBAR = IDLE_DEVICES_TOOLBAR; exports.DevicesPanelView = DevicesPanelView; exports.PACKAGE_MANAGERS = PACKAGE_MANAGERS; exports.PACKAGE_MANAGER_LABEL = PACKAGE_MANAGER_LABEL; exports.PACKAGE_MANAGER_ICON = PACKAGE_MANAGER_ICON; exports.PACKAGE_MANAGER_OS = PACKAGE_MANAGER_OS; exports.packageManagerLabel = packageManagerLabel; exports.SOFTWARE_SOURCE_LABEL = SOFTWARE_SOURCE_LABEL; exports.PACKAGE_SEARCH_LABEL = PACKAGE_SEARCH_LABEL; exports.PACKAGE_SEARCH_PLACEHOLDER = PACKAGE_SEARCH_PLACEHOLDER; exports.PackageSearchFieldPlaceholder = PackageSearchFieldPlaceholder; exports.SoftwareScheduleFields = SoftwareScheduleFields; exports.SOFTWARE_ACTION_COPY = SOFTWARE_ACTION_COPY; exports.SOFTWARE_ACTION_DETAIL_TITLE = SOFTWARE_ACTION_DETAIL_TITLE; exports.softwareActionCopy = softwareActionCopy; exports.newSoftwareRow = newSoftwareRow; exports.SoftwareRowFields = SoftwareRowFields; exports.SoftwareActionForm = SoftwareActionForm; exports.LogDrawer = LogDrawer; exports.SYSTEM_SOURCE_LABEL = SYSTEM_SOURCE_LABEL; exports.logSourceLabels = logSourceLabels; exports.LogsPageView = LogsPageView; exports.LogCopyIconButton = LogCopyIconButton; exports.LOG_COLUMN_WIDTHS = LOG_COLUMN_WIDTHS; exports.ToolBadge = ToolBadge; exports.LogsTableView = LogsTableView; exports.LogsTableSkeleton = LogsTableSkeleton; exports.logSeverityVariant = logSeverityVariant; exports.SCRIPT_EXECUTION_STATUS_PRESENTATION = SCRIPT_EXECUTION_STATUS_PRESENTATION; exports.scriptExecutionStatus = scriptExecutionStatus; exports.ExecutionSourceBadge = ExecutionSourceBadge; exports.ExecutionTimestampCell = ExecutionTimestampCell; exports.ExecutionStatusCell = ExecutionStatusCell; exports.ExecutionDeviceCell = ExecutionDeviceCell; exports.ExecutionInitiatorCell = ExecutionInitiatorCell; exports.ExecutionResultCell = ExecutionResultCell; exports.ScriptExecutionResult = ScriptExecutionResult; exports.ScriptNameCell = ScriptNameCell; exports.ScheduleDateTimeCell = ScheduleDateTimeCell; exports.SCRIPT_COLUMNS = SCRIPT_COLUMNS; exports.SCHEDULE_COLUMNS = SCHEDULE_COLUMNS; exports.EXECUTION_COLUMNS = EXECUTION_COLUMNS; exports.SCRIPTS_TAB_WIDTHS = SCRIPTS_TAB_WIDTHS; exports.SCRIPTS_TABLE_COLUMNS = SCRIPTS_TABLE_COLUMNS; exports.SCHEDULES_TABLE_COLUMNS = SCHEDULES_TABLE_COLUMNS; exports.EXECUTIONS_TABLE_COLUMNS = EXECUTIONS_TABLE_COLUMNS; exports.scriptsColumnMeta = scriptsColumnMeta; exports.RowActionsCell = RowActionsCell; exports.OpenInNewTabCell = OpenInNewTabCell; exports.ScriptExecutionsTable = ScriptExecutionsTable; exports.ScriptSchedulesTable = ScriptSchedulesTable; exports.SCRIPT_SHELL_TYPES = SCRIPT_SHELL_TYPES; exports.scriptShellType = scriptShellType; exports.scriptShellLabel = scriptShellLabel; exports.ScriptShellBadge = ScriptShellBadge; exports.ScriptsTable = ScriptsTable; exports.SCRIPTS_TABS = SCRIPTS_TABS; exports.SCRIPT_SCHEDULE_TRIGGER = SCRIPT_SCHEDULE_TRIGGER; exports.SCHEDULE_TIME_REFERENCE = SCHEDULE_TIME_REFERENCE; exports.SCHEDULE_OFFLINE_BEHAVIOR = SCHEDULE_OFFLINE_BEHAVIOR; exports.isEventTrigger = isEventTrigger; exports.isDeviceLocalTime = isDeviceLocalTime; exports.DURATION_UNIT_VALUES = DURATION_UNIT_VALUES; exports.DURATION_UNIT_SECONDS = DURATION_UNIT_SECONDS; exports.DURATION_UNIT_LABELS = DURATION_UNIT_LABELS; exports.MIN_REPEAT_MINUTES = MIN_REPEAT_MINUTES; exports.DURATION_UNIT_OPTIONS = DURATION_UNIT_OPTIONS; exports.snapRepeatInterval = snapRepeatInterval; exports.isRetryOnReconnect = isRetryOnReconnect; exports.MIN_RECONNECT_MINUTES = MIN_RECONNECT_MINUTES; exports.snapReconnectInterval = snapReconnectInterval; exports.DEFAULT_RECONNECT_WINDOW = DEFAULT_RECONNECT_WINDOW; exports.isSlotOnGrid = isSlotOnGrid; exports.getTimeSlotOptions = getTimeSlotOptions; exports.slotToLabel = slotToLabel; exports.startOfToday = startOfToday; exports.earliestDeviceLocalDay = earliestDeviceLocalDay; exports.earliestScheduleDay = earliestScheduleDay; exports.isScheduleStartInPast = isScheduleStartInPast; exports.PAST_START_MESSAGE = PAST_START_MESSAGE; exports.NO_SLOTS_TODAY_MESSAGE = NO_SLOTS_TODAY_MESSAGE; exports.isStartInPastAndChanged = isStartInPastAndChanged; exports.dateToTimeSlot = dateToTimeSlot; exports.applyTimeSlot = applyTimeSlot; exports.fromScheduleInstant = fromScheduleInstant; exports.EMPTY_SCHEDULE_SCRIPT_ROW = EMPTY_SCHEDULE_SCRIPT_ROW; exports.SCHEDULE_TRIGGER_OPTIONS = SCHEDULE_TRIGGER_OPTIONS; exports.SCHEDULE_TIME_REFERENCE_OPTIONS = SCHEDULE_TIME_REFERENCE_OPTIONS; exports.SCHEDULE_OFFLINE_BEHAVIOR_OPTIONS = SCHEDULE_OFFLINE_BEHAVIOR_OPTIONS; exports.DEFAULT_SCHEDULE_FORM_VALUES = DEFAULT_SCHEDULE_FORM_VALUES; exports.ScheduleIntervalInput = ScheduleIntervalInput; exports.ScheduleOfflineFields = ScheduleOfflineFields; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.ScriptArguments = ScriptArguments; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.ScheduleScriptPickerCard = ScheduleScriptPickerCard; exports.ScheduleScriptsField = ScheduleScriptsField; exports.ScheduleTimingFields = ScheduleTimingFields; exports.ScheduleFormFields = ScheduleFormFields; exports.ScheduleScriptSearchField = ScheduleScriptSearchField; exports.KNOWLEDGE_BASE_ITEM_ICON = KNOWLEDGE_BASE_ITEM_ICON; exports.getKnowledgeBaseOpenColumn = getKnowledgeBaseOpenColumn; exports.getKnowledgeBaseColumns = getKnowledgeBaseColumns; exports.KnowledgeBaseTableBody = KnowledgeBaseTableBody; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.KnowledgeBaseArticleView = KnowledgeBaseArticleView; exports.SortableDragHandle = SortableDragHandle; exports.TicketStatusConfigList = TicketStatusConfigList; exports.ConversationCard = ConversationCard; exports.SnapCarouselControlsSkeleton = SnapCarouselControlsSkeleton; exports.SnapCarousel = SnapCarousel; exports.capabilityTabId = capabilityTabId; exports.CapabilityExplorerSkeleton = CapabilityExplorerSkeleton; exports.CapabilityExplorer = CapabilityExplorer; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.PHOTO_WALL_FRAME = PHOTO_WALL_FRAME; exports.photoWallRequestWidth = photoWallRequestWidth; exports.photoOrientation = photoOrientation; exports.arrangePhotoWall = arrangePhotoWall; exports.PhotoWall = PhotoWall; exports.FilterPillRow = FilterPillRow; exports.LazyMount = LazyMount; exports.AppWindowFrame = AppWindowFrame; exports.PhoneFrame = PhoneFrame; exports.NotificationStack = NotificationStack; exports.StripCard = StripCard; exports.LeaderRow = LeaderRow; exports.AnalyzingState = AnalyzingState; exports.IncidentStatusLine = IncidentStatusLine; exports.IncidentFeed = IncidentFeed; exports.useBetweenAnchors = useBetweenAnchors; exports.StickyActionBar = StickyActionBar; exports.IconTile = IconTile;
34970
+
34971
+
34972
+ exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.timezoneLabel = timezoneLabel; exports.timezoneOptions = timezoneOptions; exports.TimezoneSelect = TimezoneSelect; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormDrawer = AdminFormDrawer; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigationVariantProvider = TabNavigationVariantProvider; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FADE_PREVIEW_MAX_UNMEASURED_ITEMS = FADE_PREVIEW_MAX_UNMEASURED_ITEMS; exports.FadePreview = FadePreview; exports.TextHold = TextHold; exports.LayoutHold = LayoutHold; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.AppStoreBadge = AppStoreBadge; exports.GooglePlayBadge = GooglePlayBadge; exports.StoreBadgeLinks = StoreBadgeLinks; exports.MobileAppQr = MobileAppQr; exports.StatusIndicator = StatusIndicator; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.PageShell = PageShell; exports.PageMain = PageMain; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.benefitCardBorderClass = benefitCardBorderClass; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.DataAttribution = DataAttribution; exports.DownloadButton = DownloadButton; exports.ComplianceBadge = ComplianceBadge; exports.ComplianceLogo = ComplianceLogo; exports.FeatureCardGrid = FeatureCardGrid; exports.StepNumber = StepNumber; exports.NumberedStep = NumberedStep; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.PersonCell = PersonCell; exports.PeopleCell = PeopleCell; exports.TitleContentBlock = TitleContentBlock; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.TRIAL_TERM_ICONS = TRIAL_TERM_ICONS; exports.DEFAULT_TRIAL_TERMS = DEFAULT_TRIAL_TERMS; exports.trialBenefits = trialBenefits; exports.BenefitList = BenefitList; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.CompactAuthShell = CompactAuthShell; exports.LabeledDivider = LabeledDivider; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.PolicyLink = PolicyLink; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LegalLinks = LegalLinks; exports.LoginForm = LoginForm; exports.NoAccountNotice = NoAccountNotice; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.SsoJoinForm = SsoJoinForm; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.useMediaIntake = useMediaIntake; exports.MediaUploadArea = MediaUploadArea; exports.MediaGalleryManager = MediaGalleryManager; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.MODEL_TOKEN_RATES_COPY = MODEL_TOKEN_RATES_COPY; exports.ModelTokenRates = ModelTokenRates; exports.ModelTokenRatesPopover = ModelTokenRatesPopover; exports.ModelTokenRatesUnavailable = ModelTokenRatesUnavailable; exports.ModelTokenRatesSkeleton = ModelTokenRatesSkeleton; exports.MODEL_TOKEN_EXCHANGE_BALANCE = MODEL_TOKEN_EXCHANGE_BALANCE; exports.MODEL_TOKEN_EXCHANGE_RANGE = MODEL_TOKEN_EXCHANGE_RANGE; exports.ModelTokenExchange = ModelTokenExchange; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.socialIcon = socialIcon; exports.SocialIconRow = SocialIconRow; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.APPROVAL_LEVELS = APPROVAL_LEVELS; exports.APPROVAL_LEVEL_META = APPROVAL_LEVEL_META; exports.ApprovalLevelView = ApprovalLevelView; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.DataTableEmpty = DataTableEmpty; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DATA_TABLE_HEADER_LABEL_CLASS = DATA_TABLE_HEADER_LABEL_CLASS; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.PoliciesTable = PoliciesTable; exports.PolicySummaryCards = PolicySummaryCards; exports.POLICY_STATUS_CONFIG = POLICY_STATUS_CONFIG; exports.getPolicyStatus = getPolicyStatus; exports.getPolicyTableStatus = getPolicyTableStatus; exports.computePolicySummary = computePolicySummary; exports.TENANT_EMPTY_VALUE = TENANT_EMPTY_VALUE; exports.accessStateTag = accessStateTag; exports.providerMark = providerMark2; exports.lastReadAt = lastReadAt; exports.formatLastRead = formatLastRead; exports.usersCountLabel = usersCountLabel; exports.TenantAccessCell = TenantAccessCell; exports.TenantCell = TenantCell; exports.TenantCustomerCell = TenantCustomerCell; exports.TENANT_COLUMNS = TENANT_COLUMNS; exports.TENANTS_TABLE_COLUMNS = TENANTS_TABLE_COLUMNS; exports.TenantsTableView = TenantsTableView; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.TICKET_APPROVAL_REQUEST_TYPE = TICKET_APPROVAL_REQUEST_TYPE; exports.MINGO_APPROVAL_REQUEST_TYPE = MINGO_APPROVAL_REQUEST_TYPE; exports.isApprovalNotificationType = isApprovalNotificationType; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.formatLastOnline = formatLastOnline; exports.getDeviceName = getDeviceName; exports.matchesDeviceName = matchesDeviceName; exports.DevicesViewConfigProvider = DevicesViewConfigProvider; exports.useDevicesViewConfig = useDevicesViewConfig; exports.useDeviceImageUrl = useDeviceImageUrl; exports.DeviceSelectionModeRadio = DeviceSelectionModeRadio; exports.getDeviceStatusConfig = getDeviceStatusConfig; exports.getDeviceOperatingSystem = getDeviceOperatingSystem; exports.DEVICE_STATUS = DEVICE_STATUS; exports.DEFAULT_VISIBLE_STATUSES = DEFAULT_VISIBLE_STATUSES; exports.DEFAULT_DASHBOARD_STATUSES = DEFAULT_DASHBOARD_STATUSES; exports.DEFAULT_DEVICES_LIST_STATUSES = DEFAULT_DEVICES_LIST_STATUSES; exports.DEVICE_ENRICHMENT_STATUSES = DEVICE_ENRICHMENT_STATUSES; exports.DEVICE_ENRICHMENT_FILTER = DEVICE_ENRICHMENT_FILTER; exports.HIDDEN_DEVICE_STATUSES = HIDDEN_DEVICE_STATUSES; exports.renderDeviceTypeIcon = renderDeviceTypeIcon; exports.DeviceTypeTile = DeviceTypeTile; exports.DeviceTagsFilterButton = DeviceTagsFilterButton; exports.DevicesFilterToolbar = DevicesFilterToolbar; exports.getDeviceActionsColumn = getDeviceActionsColumn; exports.getDeviceOpenColumn = getDeviceOpenColumn; exports.DevicesTableBody = DevicesTableBody; exports.getDeviceFilterColumns = getDeviceFilterColumns; exports.getDeviceTableColumns = getDeviceTableColumns; exports.useTagFilterModal = useTagFilterModal; exports.DeviceSelector = DeviceSelector; exports.DeviceSelectorSkeleton = DeviceSelectorSkeleton; exports.EMPTY_NARROWING = EMPTY_NARROWING; exports.narrowingToFilter = narrowingToFilter; exports.DevicesGrid = DevicesGrid; exports.DevicesGridFilters = DevicesGridFilters; exports.EMPTY_DEVICES_NARROWING = EMPTY_DEVICES_NARROWING; exports.isNarrowed = isNarrowed; exports.DevicesList = DevicesList; exports.DEVICE_VIEW_MODE_ITEMS = DEVICE_VIEW_MODE_ITEMS; exports.buildDevicePanelActions = buildDevicePanelActions; exports.IDLE_DEVICES_TOOLBAR = IDLE_DEVICES_TOOLBAR; exports.DevicesPanelView = DevicesPanelView; exports.PACKAGE_MANAGERS = PACKAGE_MANAGERS; exports.PACKAGE_MANAGER_LABEL = PACKAGE_MANAGER_LABEL; exports.PACKAGE_MANAGER_ICON = PACKAGE_MANAGER_ICON; exports.PACKAGE_MANAGER_OS = PACKAGE_MANAGER_OS; exports.packageManagerLabel = packageManagerLabel; exports.SOFTWARE_SOURCE_LABEL = SOFTWARE_SOURCE_LABEL; exports.PACKAGE_SEARCH_LABEL = PACKAGE_SEARCH_LABEL; exports.PACKAGE_SEARCH_PLACEHOLDER = PACKAGE_SEARCH_PLACEHOLDER; exports.PackageSearchFieldPlaceholder = PackageSearchFieldPlaceholder; exports.SoftwareScheduleFields = SoftwareScheduleFields; exports.SOFTWARE_ACTION_COPY = SOFTWARE_ACTION_COPY; exports.SOFTWARE_ACTION_DETAIL_TITLE = SOFTWARE_ACTION_DETAIL_TITLE; exports.softwareActionCopy = softwareActionCopy; exports.newSoftwareRow = newSoftwareRow; exports.SoftwareRowFields = SoftwareRowFields; exports.SoftwareActionForm = SoftwareActionForm; exports.LogDrawer = LogDrawer; exports.SYSTEM_SOURCE_LABEL = SYSTEM_SOURCE_LABEL; exports.logSourceLabels = logSourceLabels; exports.LogsPageView = LogsPageView; exports.LogCopyIconButton = LogCopyIconButton; exports.LOG_COLUMN_WIDTHS = LOG_COLUMN_WIDTHS; exports.ToolBadge = ToolBadge; exports.LogsTableView = LogsTableView; exports.LogsTableSkeleton = LogsTableSkeleton; exports.logSeverityVariant = logSeverityVariant; exports.SCRIPT_EXECUTION_STATUS_PRESENTATION = SCRIPT_EXECUTION_STATUS_PRESENTATION; exports.scriptExecutionStatus = scriptExecutionStatus; exports.ExecutionSourceBadge = ExecutionSourceBadge; exports.ExecutionTimestampCell = ExecutionTimestampCell; exports.ExecutionStatusCell = ExecutionStatusCell; exports.ExecutionDeviceCell = ExecutionDeviceCell; exports.ExecutionInitiatorCell = ExecutionInitiatorCell; exports.ExecutionResultCell = ExecutionResultCell; exports.ScriptExecutionResult = ScriptExecutionResult; exports.ScriptNameCell = ScriptNameCell; exports.ScheduleDateTimeCell = ScheduleDateTimeCell; exports.SCRIPT_COLUMNS = SCRIPT_COLUMNS; exports.SCHEDULE_COLUMNS = SCHEDULE_COLUMNS; exports.EXECUTION_COLUMNS = EXECUTION_COLUMNS; exports.SCRIPTS_TAB_WIDTHS = SCRIPTS_TAB_WIDTHS; exports.SCRIPTS_TABLE_COLUMNS = SCRIPTS_TABLE_COLUMNS; exports.SCHEDULES_TABLE_COLUMNS = SCHEDULES_TABLE_COLUMNS; exports.EXECUTIONS_TABLE_COLUMNS = EXECUTIONS_TABLE_COLUMNS; exports.scriptsColumnMeta = scriptsColumnMeta; exports.RowActionsCell = RowActionsCell; exports.OpenInNewTabCell = OpenInNewTabCell; exports.ScriptExecutionsTable = ScriptExecutionsTable; exports.ScriptSchedulesTable = ScriptSchedulesTable; exports.SCRIPT_SHELL_TYPES = SCRIPT_SHELL_TYPES; exports.scriptShellType = scriptShellType; exports.scriptShellLabel = scriptShellLabel; exports.ScriptShellBadge = ScriptShellBadge; exports.ScriptsTable = ScriptsTable; exports.SCRIPTS_TABS = SCRIPTS_TABS; exports.SCRIPT_SCHEDULE_TRIGGER = SCRIPT_SCHEDULE_TRIGGER; exports.SCHEDULE_TIME_REFERENCE = SCHEDULE_TIME_REFERENCE; exports.SCHEDULE_OFFLINE_BEHAVIOR = SCHEDULE_OFFLINE_BEHAVIOR; exports.isEventTrigger = isEventTrigger; exports.isDeviceLocalTime = isDeviceLocalTime; exports.DURATION_UNIT_VALUES = DURATION_UNIT_VALUES; exports.DURATION_UNIT_SECONDS = DURATION_UNIT_SECONDS; exports.DURATION_UNIT_LABELS = DURATION_UNIT_LABELS; exports.MIN_REPEAT_MINUTES = MIN_REPEAT_MINUTES; exports.DURATION_UNIT_OPTIONS = DURATION_UNIT_OPTIONS; exports.snapRepeatInterval = snapRepeatInterval; exports.isRetryOnReconnect = isRetryOnReconnect; exports.MIN_RECONNECT_MINUTES = MIN_RECONNECT_MINUTES; exports.snapReconnectInterval = snapReconnectInterval; exports.DEFAULT_RECONNECT_WINDOW = DEFAULT_RECONNECT_WINDOW; exports.isSlotOnGrid = isSlotOnGrid; exports.getTimeSlotOptions = getTimeSlotOptions; exports.slotToLabel = slotToLabel; exports.startOfToday = startOfToday; exports.earliestDeviceLocalDay = earliestDeviceLocalDay; exports.earliestScheduleDay = earliestScheduleDay; exports.isScheduleStartInPast = isScheduleStartInPast; exports.PAST_START_MESSAGE = PAST_START_MESSAGE; exports.NO_SLOTS_TODAY_MESSAGE = NO_SLOTS_TODAY_MESSAGE; exports.isStartInPastAndChanged = isStartInPastAndChanged; exports.dateToTimeSlot = dateToTimeSlot; exports.applyTimeSlot = applyTimeSlot; exports.fromScheduleInstant = fromScheduleInstant; exports.EMPTY_SCHEDULE_SCRIPT_ROW = EMPTY_SCHEDULE_SCRIPT_ROW; exports.SCHEDULE_TRIGGER_OPTIONS = SCHEDULE_TRIGGER_OPTIONS; exports.SCHEDULE_TIME_REFERENCE_OPTIONS = SCHEDULE_TIME_REFERENCE_OPTIONS; exports.SCHEDULE_OFFLINE_BEHAVIOR_OPTIONS = SCHEDULE_OFFLINE_BEHAVIOR_OPTIONS; exports.DEFAULT_SCHEDULE_FORM_VALUES = DEFAULT_SCHEDULE_FORM_VALUES; exports.ScheduleIntervalInput = ScheduleIntervalInput; exports.ScheduleOfflineFields = ScheduleOfflineFields; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.ScriptArguments = ScriptArguments; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.ScheduleScriptPickerCard = ScheduleScriptPickerCard; exports.ScheduleScriptsField = ScheduleScriptsField; exports.ScheduleTimingFields = ScheduleTimingFields; exports.ScheduleFormFields = ScheduleFormFields; exports.ScheduleScriptSearchField = ScheduleScriptSearchField; exports.KNOWLEDGE_BASE_ITEM_ICON = KNOWLEDGE_BASE_ITEM_ICON; exports.getKnowledgeBaseOpenColumn = getKnowledgeBaseOpenColumn; exports.getKnowledgeBaseColumns = getKnowledgeBaseColumns; exports.KnowledgeBaseTableBody = KnowledgeBaseTableBody; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.KnowledgeBaseArticleView = KnowledgeBaseArticleView; exports.SortableDragHandle = SortableDragHandle; exports.TicketStatusConfigList = TicketStatusConfigList; exports.ConversationCard = ConversationCard; exports.SnapCarouselControlsSkeleton = SnapCarouselControlsSkeleton; exports.SnapCarousel = SnapCarousel; exports.capabilityTabId = capabilityTabId; exports.CapabilityExplorerSkeleton = CapabilityExplorerSkeleton; exports.CapabilityExplorer = CapabilityExplorer; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownLinkDialog = MarkdownLinkDialog; exports.useMarkdownLinkCommand = useMarkdownLinkCommand; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.PHOTO_WALL_FRAME = PHOTO_WALL_FRAME; exports.photoWallRequestWidth = photoWallRequestWidth; exports.photoOrientation = photoOrientation; exports.arrangePhotoWall = arrangePhotoWall; exports.PhotoWall = PhotoWall; exports.FilterPillRow = FilterPillRow; exports.LazyMount = LazyMount; exports.AppWindowFrame = AppWindowFrame; exports.PhoneFrame = PhoneFrame; exports.NotificationStack = NotificationStack; exports.StripCard = StripCard; exports.LeaderRow = LeaderRow; exports.AnalyzingState = AnalyzingState; exports.IncidentStatusLine = IncidentStatusLine; exports.IncidentFeed = IncidentFeed; exports.useBetweenAnchors = useBetweenAnchors; exports.StickyActionBar = StickyActionBar; exports.IconTile = IconTile;