@flamingo-stack/openframe-frontend-core 0.0.442 → 0.0.443-snapshot.20260717175152

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 (112) hide show
  1. package/dist/{chunk-J5NO7PAG.cjs → chunk-2CJ734N2.cjs} +3 -3
  2. package/dist/{chunk-J5NO7PAG.cjs.map → chunk-2CJ734N2.cjs.map} +1 -1
  3. package/dist/{chunk-KUXGQ2FQ.cjs → chunk-2PLNDTRG.cjs} +32 -32
  4. package/dist/{chunk-KUXGQ2FQ.cjs.map → chunk-2PLNDTRG.cjs.map} +1 -1
  5. package/dist/{chunk-Y3NFB6HR.js → chunk-37ZZQXHK.js} +4 -4
  6. package/dist/{chunk-YZJUHEPZ.js → chunk-3SCNEGL2.js} +5 -5
  7. package/dist/{chunk-DUQQEQ7G.cjs → chunk-4R3SVOKH.cjs} +190 -156
  8. package/dist/chunk-4R3SVOKH.cjs.map +1 -0
  9. package/dist/{chunk-QO6MCQYE.cjs → chunk-7CZ4MJSI.cjs} +13 -10
  10. package/dist/chunk-7CZ4MJSI.cjs.map +1 -0
  11. package/dist/{chunk-W3JZXLJ2.js → chunk-ABIRMYG5.js} +6 -6
  12. package/dist/{chunk-TAQMYVO6.cjs → chunk-BYTJNRJW.cjs} +40 -40
  13. package/dist/{chunk-TAQMYVO6.cjs.map → chunk-BYTJNRJW.cjs.map} +1 -1
  14. package/dist/{chunk-IAZ5AN2E.js → chunk-CE3AITV2.js} +6 -6
  15. package/dist/{chunk-FPE3SQ5D.js → chunk-DCDB3SM4.js} +3 -3
  16. package/dist/{chunk-LFWPWIAC.cjs → chunk-DSW6FIEF.cjs} +7 -7
  17. package/dist/{chunk-LFWPWIAC.cjs.map → chunk-DSW6FIEF.cjs.map} +1 -1
  18. package/dist/{chunk-JYI4R25Q.js → chunk-DTMJWBDQ.js} +3 -3
  19. package/dist/{chunk-SM26C2L7.js → chunk-F2XHBAHT.js} +2 -2
  20. package/dist/{chunk-JNC4LVD6.cjs → chunk-F6NMMPDL.cjs} +29 -29
  21. package/dist/{chunk-JNC4LVD6.cjs.map → chunk-F6NMMPDL.cjs.map} +1 -1
  22. package/dist/{chunk-7QP65IE4.cjs → chunk-FO4CI4R5.cjs} +5 -5
  23. package/dist/{chunk-7QP65IE4.cjs.map → chunk-FO4CI4R5.cjs.map} +1 -1
  24. package/dist/{chunk-7KDR5P23.js → chunk-FQASXKBK.js} +2 -2
  25. package/dist/{chunk-7KNOHGMI.js → chunk-H7H3AFLF.js} +2 -2
  26. package/dist/{chunk-QAG357PE.js → chunk-LCJGOV6P.js} +2 -2
  27. package/dist/{chunk-2BTDPDME.js → chunk-MG4AMIFX.js} +4 -1
  28. package/dist/chunk-MG4AMIFX.js.map +1 -0
  29. package/dist/{chunk-ZQYFDYWV.js → chunk-NDWIFCLS.js} +120 -86
  30. package/dist/chunk-NDWIFCLS.js.map +1 -0
  31. package/dist/{chunk-UFBUQO7Z.cjs → chunk-OXZLBIR7.cjs} +18 -18
  32. package/dist/{chunk-UFBUQO7Z.cjs.map → chunk-OXZLBIR7.cjs.map} +1 -1
  33. package/dist/{chunk-63TSTDME.js → chunk-PMTR5W5G.js} +5 -5
  34. package/dist/{chunk-XMCVUYKC.cjs → chunk-Q6XOEVPH.cjs} +12 -12
  35. package/dist/{chunk-XMCVUYKC.cjs.map → chunk-Q6XOEVPH.cjs.map} +1 -1
  36. package/dist/{chunk-IZ6A6K6N.cjs → chunk-RALJEQWM.cjs} +15 -15
  37. package/dist/{chunk-IZ6A6K6N.cjs.map → chunk-RALJEQWM.cjs.map} +1 -1
  38. package/dist/{chunk-AGV26PUR.js → chunk-U7U2CZBZ.js} +3 -3
  39. package/dist/{chunk-LUKRPHEW.cjs → chunk-VI2QQIGR.cjs} +73 -73
  40. package/dist/{chunk-LUKRPHEW.cjs.map → chunk-VI2QQIGR.cjs.map} +1 -1
  41. package/dist/{chunk-JOH5D76X.cjs → chunk-WXU6A6CA.cjs} +73 -73
  42. package/dist/{chunk-JOH5D76X.cjs.map → chunk-WXU6A6CA.cjs.map} +1 -1
  43. package/dist/{chunk-IPEIOR77.cjs → chunk-YP7VJPCJ.cjs} +40 -40
  44. package/dist/{chunk-IPEIOR77.cjs.map → chunk-YP7VJPCJ.cjs.map} +1 -1
  45. package/dist/components/case-studies/index.cjs +9 -9
  46. package/dist/components/case-studies/index.js +3 -3
  47. package/dist/components/chat/index.cjs +3 -3
  48. package/dist/components/chat/index.js +2 -2
  49. package/dist/components/contact/index.cjs +4 -4
  50. package/dist/components/contact/index.js +3 -3
  51. package/dist/components/docs/index.cjs +6 -6
  52. package/dist/components/docs/index.js +5 -5
  53. package/dist/components/embeds/index.cjs +4 -4
  54. package/dist/components/embeds/index.js +3 -3
  55. package/dist/components/faq/index.cjs +5 -5
  56. package/dist/components/faq/index.js +4 -4
  57. package/dist/components/features/index.cjs +3 -3
  58. package/dist/components/features/index.js +2 -2
  59. package/dist/components/features/policy-configuration-panel.d.ts +11 -0
  60. package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
  61. package/dist/components/help-center-pages/index.cjs +22 -22
  62. package/dist/components/help-center-pages/index.js +13 -13
  63. package/dist/components/index.cjs +135 -135
  64. package/dist/components/index.js +11 -11
  65. package/dist/components/navigation/index.cjs +3 -3
  66. package/dist/components/navigation/index.js +2 -2
  67. package/dist/components/onboarding-guides/index.cjs +7 -7
  68. package/dist/components/onboarding-guides/index.js +6 -6
  69. package/dist/components/related-content/index.cjs +5 -5
  70. package/dist/components/related-content/index.js +4 -4
  71. package/dist/components/tickets/index.cjs +6 -6
  72. package/dist/components/tickets/index.js +5 -5
  73. package/dist/components/ui/checkbox-block.d.ts +6 -0
  74. package/dist/components/ui/checkbox-block.d.ts.map +1 -1
  75. package/dist/components/ui/index.cjs +3 -3
  76. package/dist/components/ui/index.js +2 -2
  77. package/dist/hooks/index.cjs +2 -2
  78. package/dist/hooks/index.js +1 -1
  79. package/dist/index.cjs +3 -3
  80. package/dist/index.js +2 -2
  81. package/dist/types/permissions.d.ts +9 -6
  82. package/dist/types/permissions.d.ts.map +1 -1
  83. package/dist/utils/embed-authed-fetch.d.ts +19 -3
  84. package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
  85. package/dist/utils/index.cjs +3 -0
  86. package/dist/utils/index.cjs.map +1 -1
  87. package/dist/utils/index.js +3 -0
  88. package/dist/utils/index.js.map +1 -1
  89. package/package.json +1 -1
  90. package/src/components/features/policy-configuration-panel.tsx +182 -122
  91. package/src/components/ui/checkbox-block.tsx +12 -1
  92. package/src/stories/CheckboxBlock.stories.tsx +18 -0
  93. package/src/stories/PolicyConfigurationPanel.stories.tsx +254 -0
  94. package/src/types/permissions.ts +10 -7
  95. package/src/utils/__tests__/embed-authed-fetch.test.ts +39 -0
  96. package/src/utils/embed-authed-fetch.ts +27 -3
  97. package/dist/chunk-2BTDPDME.js.map +0 -1
  98. package/dist/chunk-DUQQEQ7G.cjs.map +0 -1
  99. package/dist/chunk-QO6MCQYE.cjs.map +0 -1
  100. package/dist/chunk-ZQYFDYWV.js.map +0 -1
  101. /package/dist/{chunk-Y3NFB6HR.js.map → chunk-37ZZQXHK.js.map} +0 -0
  102. /package/dist/{chunk-YZJUHEPZ.js.map → chunk-3SCNEGL2.js.map} +0 -0
  103. /package/dist/{chunk-W3JZXLJ2.js.map → chunk-ABIRMYG5.js.map} +0 -0
  104. /package/dist/{chunk-IAZ5AN2E.js.map → chunk-CE3AITV2.js.map} +0 -0
  105. /package/dist/{chunk-FPE3SQ5D.js.map → chunk-DCDB3SM4.js.map} +0 -0
  106. /package/dist/{chunk-JYI4R25Q.js.map → chunk-DTMJWBDQ.js.map} +0 -0
  107. /package/dist/{chunk-SM26C2L7.js.map → chunk-F2XHBAHT.js.map} +0 -0
  108. /package/dist/{chunk-7KDR5P23.js.map → chunk-FQASXKBK.js.map} +0 -0
  109. /package/dist/{chunk-7KNOHGMI.js.map → chunk-H7H3AFLF.js.map} +0 -0
  110. /package/dist/{chunk-QAG357PE.js.map → chunk-LCJGOV6P.js.map} +0 -0
  111. /package/dist/{chunk-63TSTDME.js.map → chunk-PMTR5W5G.js.map} +0 -0
  112. /package/dist/{chunk-AGV26PUR.js.map → chunk-U7U2CZBZ.js.map} +0 -0
@@ -27,7 +27,7 @@
27
27
 
28
28
 
29
29
 
30
- var _chunkQO6MCQYEcjs = require('./chunk-QO6MCQYE.cjs');
30
+ var _chunk7CZ4MJSIcjs = require('./chunk-7CZ4MJSI.cjs');
31
31
 
32
32
 
33
33
 
@@ -799,7 +799,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution, showExe
799
799
  onClick: onToggle,
800
800
  className: "flex gap-[var(--spacing-system-xsf)] items-start w-full p-[var(--spacing-system-sf)] cursor-pointer text-left",
801
801
  children: [
802
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQO6MCQYEcjs.ToolIcon, { toolType, size: 16 }) }),
802
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType, size: 16 }) }),
803
803
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
804
804
  "div",
805
805
  {
@@ -4886,7 +4886,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
4886
4886
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
4887
4887
  onClick: () => setExpanded((prev) => !prev),
4888
4888
  children: [
4889
- !isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQO6MCQYEcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
4889
+ !isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
4890
4890
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4891
4891
  "div",
4892
4892
  {
@@ -6624,7 +6624,7 @@ function ChatQuickActionRow({
6624
6624
  skeletonCount = 8,
6625
6625
  className
6626
6626
  }) {
6627
- const auto = _chunkQO6MCQYEcjs.useAutoLimitTags.call(void 0, {
6627
+ const auto = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
6628
6628
  count: chips.length,
6629
6629
  reserveInputWidth: false
6630
6630
  });
@@ -8027,7 +8027,7 @@ function ChatHeaderSearchField({
8027
8027
  className
8028
8028
  }) {
8029
8029
  const [value, setValue] = React24.useState(_nullishCoalesce(initialValue, () => ( "")));
8030
- const debounced = _chunkQO6MCQYEcjs.useDebounce.call(void 0, value, 300);
8030
+ const debounced = _chunk7CZ4MJSIcjs.useDebounce.call(void 0, value, 300);
8031
8031
  const lastEmitted = React24.useRef(_nullishCoalesce(initialValue, () => ( "")));
8032
8032
  const [exiting, setExiting] = React24.useState(false);
8033
8033
  const collapsedRef = React24.useRef(false);
@@ -9231,7 +9231,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
9231
9231
  return;
9232
9232
  }
9233
9233
  const target = stripSameOriginToPath(href);
9234
- if (target.includes("#") && _chunkQO6MCQYEcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkQO6MCQYEcjs.STICKY_HEADER_OFFSET_PX })) {
9234
+ if (target.includes("#") && _chunk7CZ4MJSIcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunk7CZ4MJSIcjs.STICKY_HEADER_OFFSET_PX })) {
9235
9235
  return;
9236
9236
  }
9237
9237
  const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _144 => _144.navigation, 'access', _145 => _145.navigate, 'optionalCall', _146 => _146({ href, path, targetPlatform })]), () => ( false));
@@ -9691,7 +9691,7 @@ function EntityPortraitCard({
9691
9691
  setIsWide(img.naturalWidth / img.naturalHeight >= MIN_WIDE_RATIO);
9692
9692
  }
9693
9693
  };
9694
- const edgeColor = _chunkQO6MCQYEcjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
9694
+ const edgeColor = _chunk7CZ4MJSIcjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
9695
9695
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target, rel, className: _chunkFIG2RKZFcjs.cn.call(void 0, "block h-full", className), "aria-label": `Open ${title}`, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: "bg-ods-card border border-ods-border hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08] transition-all duration-200 p-6 flex flex-col gap-6 overflow-hidden h-full", children: [
9696
9696
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9697
9697
  "div",
@@ -9998,7 +9998,7 @@ function AdminContentCard({
9998
9998
  const [imageError, setImageError] = _react.useState.call(void 0, false);
9999
9999
  const [imageLoaded, setImageLoaded] = _react.useState.call(void 0, false);
10000
10000
  const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
10001
- const imageBgColor = _chunkQO6MCQYEcjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
10001
+ const imageBgColor = _chunk7CZ4MJSIcjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
10002
10002
  _react.useEffect.call(void 0, () => {
10003
10003
  setImageLoaded(false);
10004
10004
  }, [displayUrl]);
@@ -10718,7 +10718,7 @@ function useVideoWarmup({
10718
10718
  const runtime = _chunk2B6773QMcjs.useChatRuntime.call(void 0, );
10719
10719
  const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _188 => _188.endpoints, 'access', _189 => _189.supabaseStorageOrigin])));
10720
10720
  useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
10721
- const { ref, isNear } = _chunkQO6MCQYEcjs.useNearViewport.call(void 0, nearMargin);
10721
+ const { ref, isNear } = _chunk7CZ4MJSIcjs.useNearViewport.call(void 0, nearMargin);
10722
10722
  _react.useEffect.call(void 0, () => {
10723
10723
  if (!isNear || !videoUrl || !resolvedOrigin) return;
10724
10724
  const conn = navigator.connection;
@@ -12292,7 +12292,7 @@ function useEntityCardPlaceholder({
12292
12292
  siteName = "",
12293
12293
  aspect = "wide"
12294
12294
  }) {
12295
- const derived = _chunkQO6MCQYEcjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
12295
+ const derived = _chunk7CZ4MJSIcjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
12296
12296
  return placeholderUrl !== void 0 ? placeholderUrl : derived;
12297
12297
  }
12298
12298
 
@@ -13560,7 +13560,7 @@ function AutocompleteInner(props, ref) {
13560
13560
  }, [valueArray, options]);
13561
13561
  const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
13562
13562
  const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
13563
- const autoLimitTags = _chunkQO6MCQYEcjs.useAutoLimitTags.call(void 0, {
13563
+ const autoLimitTags = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
13564
13564
  count: multiple ? selectedOptions.length : 0,
13565
13565
  limitTags: multiple ? limitTagsProp : 0,
13566
13566
  placeholder: inputPlaceholder
@@ -14000,13 +14000,15 @@ var _reactcheckbox = require('@radix-ui/react-checkbox'); var CheckboxPrimitive
14000
14000
 
14001
14001
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
14002
14002
 
14003
- var CheckboxBlock = React40.forwardRef(({ id, checked, defaultChecked, onCheckedChange, label, description, truncateLabel, disabled, error, className }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative flex w-full flex-col", className), children: [
14003
+ var CheckboxBlock = React40.forwardRef(({ id, checked, defaultChecked, onCheckedChange, label, description, truncateLabel, trailing, disabled, error, className }, ref) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "relative flex w-full flex-col", className), children: [
14004
14004
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
14005
14005
  "label",
14006
14006
  {
14007
14007
  htmlFor: id,
14008
14008
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
14009
14009
  "flex items-center gap-[var(--spacing-system-s)] rounded-md ring-1 ring-inset w-full",
14010
+ // Trailing content stacks full-width below the text on mobile.
14011
+ trailing && "flex-wrap md:flex-nowrap",
14010
14012
  "p-[var(--spacing-system-sf)]",
14011
14013
  !description && "min-h-[44px] md:min-h-[48px]",
14012
14014
  description && "min-h-[60px] md:min-h-[64px]",
@@ -14054,7 +14056,8 @@ var CheckboxBlock = React40.forwardRef(({ id, checked, defaultChecked, onChecked
14054
14056
  "text-h6 !leading-4",
14055
14057
  "text-ods-text-secondary select-none break-words"
14056
14058
  ), children: description })
14057
- ] })
14059
+ ] }),
14060
+ trailing && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full shrink-0 items-center md:ml-auto md:w-auto", children: trailing })
14058
14061
  ]
14059
14062
  }
14060
14063
  ),
@@ -14301,7 +14304,7 @@ function DatePickerCalendar({
14301
14304
  fluid = false
14302
14305
  }) {
14303
14306
  const today = /* @__PURE__ */ new Date();
14304
- const isMdUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useMdUp.call(void 0, ), () => ( true));
14307
+ const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( true));
14305
14308
  const monthsToShow = isMdUp ? numberOfMonths : 1;
14306
14309
  const [draftRange, setDraftRange] = React43.useState(
14307
14310
  mode === "range" ? selected : void 0
@@ -15325,7 +15328,7 @@ var ProgressBar = ({
15325
15328
  mobileHeight = 8,
15326
15329
  inverted = false
15327
15330
  }) => {
15328
- const isMdUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useMdUp.call(void 0, ), () => ( true));
15331
+ const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( true));
15329
15332
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
15330
15333
  const effectiveHeight = isMdUp ? height : mobileHeight;
15331
15334
  const containerRef = _react.useRef.call(void 0, null);
@@ -15452,7 +15455,7 @@ function InfoCardFooter({ footer }) {
15452
15455
  ] });
15453
15456
  }
15454
15457
  function InfoCardValueRow({ label, value, showLabel, copyable, icon, copyAriaLabel }) {
15455
- const { copy, copied } = _chunkQO6MCQYEcjs.useCopyToClipboard.call(void 0, );
15458
+ const { copy, copied } = _chunk7CZ4MJSIcjs.useCopyToClipboard.call(void 0, );
15456
15459
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
15457
15460
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
15458
15461
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -17742,7 +17745,7 @@ var DrawerContent = React63.forwardRef(
17742
17745
  const resolvedSide = _nullishCoalesce(side, () => ( "right"));
17743
17746
  const isHorizontal = HORIZONTAL_SIDES.has(resolvedSide);
17744
17747
  const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
17745
- const headerHeight = _chunkQO6MCQYEcjs.useHeaderHeight.call(void 0, );
17748
+ const headerHeight = _chunk7CZ4MJSIcjs.useHeaderHeight.call(void 0, );
17746
17749
  const [isMobile, setIsMobile] = React63.useState(false);
17747
17750
  React63.useEffect(() => {
17748
17751
  if (typeof window === "undefined") return;
@@ -19964,7 +19967,7 @@ var OGLinkPreview = ({
19964
19967
  const hasImage = !!resolvedImageUrl;
19965
19968
  const isFallbackImage = resolvedImageUrl === fallbackImage;
19966
19969
  const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage;
19967
- const bgColor = _chunkQO6MCQYEcjs.useImageEdgeColor.call(void 0, _nullishCoalesce(resolvedImageUrl, () => ( null)), "var(--color-bg-surface)");
19970
+ const bgColor = _chunk7CZ4MJSIcjs.useImageEdgeColor.call(void 0, _nullishCoalesce(resolvedImageUrl, () => ( null)), "var(--color-bg-surface)");
19968
19971
  const renderSkeleton = () => isCompact ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "my-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-row border border-ods-border rounded-lg overflow-hidden bg-ods-card h-[120px]", children: [
19969
19972
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[200px] h-full flex-shrink-0 bg-ods-border animate-pulse" }),
19970
19973
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 p-3 flex flex-col justify-center", children: [
@@ -22415,7 +22418,7 @@ function ListPageLayout({
22415
22418
  }) {
22416
22419
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
22417
22420
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
22418
- const debouncedSearchValue = _chunkQO6MCQYEcjs.useDebounce.call(void 0, localSearchValue, 500);
22421
+ const debouncedSearchValue = _chunk7CZ4MJSIcjs.useDebounce.call(void 0, localSearchValue, 500);
22419
22422
  _react.useEffect.call(void 0, () => {
22420
22423
  setLocalSearchValue(searchValue);
22421
22424
  }, [searchValue]);
@@ -23081,7 +23084,7 @@ function toToolLabel(input) {
23081
23084
  if (!input) return "";
23082
23085
  const toolType = normalizeToolType(input);
23083
23086
  if (toolType) {
23084
- return _chunkQO6MCQYEcjs.toolLabels[toolType];
23087
+ return _chunk7CZ4MJSIcjs.toolLabels[toolType];
23085
23088
  }
23086
23089
  return input;
23087
23090
  }
@@ -23092,7 +23095,7 @@ function getToolTypeAliases(toolType) {
23092
23095
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
23093
23096
  }
23094
23097
  function getToolLabel(toolType) {
23095
- return _chunkQO6MCQYEcjs.toolLabels[toolType] || toolType;
23098
+ return _chunk7CZ4MJSIcjs.toolLabels[toolType] || toolType;
23096
23099
  }
23097
23100
 
23098
23101
  // src/types/shell.types.ts
@@ -26245,10 +26248,10 @@ function CompleteAccountForm({
26245
26248
  children
26246
26249
  }) {
26247
26250
  const fieldsDisabled = disabled || loading;
26248
- const firstNameErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _521 => _521.firstName]), firstName);
26249
- const lastNameErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _522 => _522.lastName]), lastName);
26250
- const passwordErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _523 => _523.password]), password);
26251
- const confirmErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _524 => _524.confirmPassword]), confirmPassword);
26251
+ const firstNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _521 => _521.firstName]), firstName);
26252
+ const lastNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _522 => _522.lastName]), lastName);
26253
+ const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _523 => _523.password]), password);
26254
+ const confirmErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _524 => _524.confirmPassword]), confirmPassword);
26252
26255
  const handleKeyDown = (event) => {
26253
26256
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
26254
26257
  onSubmit();
@@ -26439,9 +26442,9 @@ function CreateOrganizationForm({
26439
26442
  }) {
26440
26443
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
26441
26444
  const fieldsDisabled = disabled || loading;
26442
- const emailErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _525 => _525.email]), email);
26443
- const orgNameErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _526 => _526.organizationName]), organizationName);
26444
- const domainErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _527 => _527.domain]), domain);
26445
+ const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _525 => _525.email]), email);
26446
+ const orgNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _526 => _526.organizationName]), organizationName);
26447
+ const domainErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _527 => _527.domain]), domain);
26445
26448
  const handleKeyDown = (event) => {
26446
26449
  if (event.key === "Enter" && !fieldsDisabled) {
26447
26450
  onSubmit();
@@ -26595,7 +26598,7 @@ function LoginForm({
26595
26598
  className
26596
26599
  }) {
26597
26600
  const fieldDisabled = disabled || loading;
26598
- const emailErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _533 => _533.email]), email);
26601
+ const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _533 => _533.email]), email);
26599
26602
  const handleKeyDown = (event) => {
26600
26603
  if (event.key === "Enter" && !fieldDisabled) {
26601
26604
  _optionalChain([onSubmit, 'optionalCall', _534 => _534()]);
@@ -26669,8 +26672,8 @@ function OpenFrameSsoLoginForm({
26669
26672
  className
26670
26673
  }) {
26671
26674
  const fieldsDisabled = disabled || loading;
26672
- const emailErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _537 => _537.email]), email);
26673
- const passwordErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _538 => _538.password]), password);
26675
+ const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _537 => _537.email]), email);
26676
+ const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _538 => _538.password]), password);
26674
26677
  const handleKeyDown = (event) => {
26675
26678
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
26676
26679
  onSubmit();
@@ -26777,11 +26780,11 @@ function OpenFrameSsoSignUpForm({
26777
26780
  className
26778
26781
  }) {
26779
26782
  const fieldsDisabled = disabled || loading;
26780
- const emailErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _539 => _539.email]), email);
26781
- const firstNameErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _540 => _540.firstName]), firstName);
26782
- const lastNameErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _541 => _541.lastName]), lastName);
26783
- const passwordErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _542 => _542.password]), password);
26784
- const confirmErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _543 => _543.confirmPassword]), confirmPassword);
26783
+ const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _539 => _539.email]), email);
26784
+ const firstNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _540 => _540.firstName]), firstName);
26785
+ const lastNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _541 => _541.lastName]), lastName);
26786
+ const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _542 => _542.password]), password);
26787
+ const confirmErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _543 => _543.confirmPassword]), confirmPassword);
26785
26788
  const handleKeyDown = (event) => {
26786
26789
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
26787
26790
  onSubmit();
@@ -26924,8 +26927,8 @@ function PasswordResetForm({
26924
26927
  className
26925
26928
  }) {
26926
26929
  const fieldsDisabled = disabled || loading;
26927
- const passwordErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _544 => _544.password]), password);
26928
- const confirmErr = _chunkQO6MCQYEcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _545 => _545.confirmPassword]), confirmPassword);
26930
+ const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _544 => _544.password]), password);
26931
+ const confirmErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _545 => _545.confirmPassword]), confirmPassword);
26929
26932
  const handleKeyDown = (event) => {
26930
26933
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
26931
26934
  onSubmit();
@@ -29214,7 +29217,7 @@ function PlatformFilterComponent({
29214
29217
  variant: selectedPlatform === platform.value ? "accent" : "outline",
29215
29218
  size: size2,
29216
29219
  onClick: () => onPlatformChange(platform.value),
29217
- leftIcon: showIcons ? _chunkQO6MCQYEcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29220
+ leftIcon: showIcons ? _chunk7CZ4MJSIcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29218
29221
  className: "text-h3",
29219
29222
  children: platform.label
29220
29223
  },
@@ -31953,33 +31956,61 @@ var getApprovalLevelLabel = (level, editMode = false) => {
31953
31956
  const option = approvalLevelOptions.find((opt) => opt.value === level);
31954
31957
  return _optionalChain([option, 'optionalAccess', _615 => _615.label]) || level;
31955
31958
  };
31959
+ var ApprovalLevelDropdown = ({ value, onChange, allowClear = false, triggerClassName, contentClassName }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPYR4LVAFcjs.DropdownMenu, { children: [
31960
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31961
+ _chunkPYR4LVAFcjs.Button,
31962
+ {
31963
+ variant: "outline",
31964
+ rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, { className: "h-6 w-6 text-ods-text-secondary" }),
31965
+ className: _chunkFIG2RKZFcjs.cn.call(void 0,
31966
+ "!text-h6 bg-ods-card border border-ods-border rounded-md flex gap-[var(--spacing-system-xsf)] items-center justify-between !px-[var(--spacing-system-xsf)] py-[var(--spacing-system-xsf)] hover:bg-ods-bg-hover transition-colors h-auto",
31967
+ value ? "text-ods-text-primary" : "text-ods-text-secondary",
31968
+ triggerClassName
31969
+ ),
31970
+ children: getApprovalLevelLabel(value, true)
31971
+ }
31972
+ ) }),
31973
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuContent, { align: "end", className: contentClassName, children: [
31974
+ allowClear && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuItem, { onClick: () => onChange(void 0), className: "text-h6", children: "Clear Global Permission" }),
31975
+ approvalLevelOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31976
+ _chunkPYR4LVAFcjs.DropdownMenuItem,
31977
+ {
31978
+ onClick: () => onChange(option.value),
31979
+ className: "text-h6",
31980
+ children: option.label
31981
+ },
31982
+ option.value
31983
+ ))
31984
+ ] })
31985
+ ] });
31956
31986
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
31957
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b border-ods-border flex gap-4 items-center px-4 py-3", children: [
31958
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQO6MCQYEcjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
31987
+ const handleChange = (level) => {
31988
+ if (level) onPermissionChange(categoryId, policy.id, level);
31989
+ };
31990
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b last:border-b-0 border-ods-border flex gap-[var(--spacing-system-m)] items-start md:items-center px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)]", children: [
31991
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8 shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
31959
31992
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
31960
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-primary truncate", title: policy.name, children: policy.name }),
31961
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-code text-ods-text-secondary break-all", children: policy.commandPattern })
31962
- ] }),
31963
- editMode ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPYR4LVAFcjs.DropdownMenu, { children: [
31964
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31965
- _chunkPYR4LVAFcjs.Button,
31993
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", title: policy.name, children: policy.name }),
31994
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary break-all", children: policy.commandPattern }),
31995
+ editMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden mt-[var(--spacing-system-xsf)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31996
+ ApprovalLevelDropdown,
31966
31997
  {
31967
- variant: "outline",
31968
- rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, { className: "h-6 w-6 text-ods-text-secondary" }),
31969
- className: "md:!text-sm bg-ods-card border border-ods-border rounded-md flex gap-2 items-center justify-between !px-2 py-2 w-[180px] hover:bg-ods-bg-hover transition-colors text-ods-text-primary h-auto",
31970
- children: getApprovalLevelLabel(policy.approvalLevel, editMode)
31998
+ value: policy.approvalLevel,
31999
+ onChange: handleChange,
32000
+ triggerClassName: "w-full",
32001
+ contentClassName: "w-[180px]"
31971
32002
  }
31972
- ) }),
31973
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuContent, { align: "end", className: "w-[180px]", children: approvalLevelOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31974
- _chunkPYR4LVAFcjs.DropdownMenuItem,
31975
- {
31976
- onClick: () => onPermissionChange(categoryId, policy.id, option.value),
31977
- className: "text-h6",
31978
- children: option.label
31979
- },
31980
- option.value
31981
- )) })
31982
- ] }) : policy.approvalLevel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-2 w-[180px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-primary", children: getApprovalLevelLabel(policy.approvalLevel, editMode) }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-3 py-2 w-[180px]" })
32003
+ ) }) : policy.approvalLevel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "md:hidden text-h4 text-ods-text-primary", children: getApprovalLevelLabel(policy.approvalLevel) }) : null
32004
+ ] }),
32005
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block shrink-0", children: editMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32006
+ ApprovalLevelDropdown,
32007
+ {
32008
+ value: policy.approvalLevel,
32009
+ onChange: handleChange,
32010
+ triggerClassName: "w-[180px]",
32011
+ contentClassName: "w-[180px]"
32012
+ }
32013
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-xsf)] w-[180px]", children: policy.approvalLevel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary", children: getApprovalLevelLabel(policy.approvalLevel) }) }) })
31983
32014
  ] });
31984
32015
  };
31985
32016
  var useAnimatedHeight = (isExpanded) => {
@@ -31996,69 +32027,52 @@ var useAnimatedHeight = (isExpanded) => {
31996
32027
  var CategorySection = ({
31997
32028
  category,
31998
32029
  editMode,
31999
- onCategoryToggle,
32000
- onGlobalPermissionChange,
32030
+ isExpanded,
32031
+ bulkLevel,
32032
+ onToggle,
32033
+ onBulkLevelChange,
32001
32034
  onPolicyPermissionChange
32002
32035
  }) => {
32003
- const { contentRef, height } = useAnimatedHeight(category.isExpanded);
32036
+ const { contentRef, height } = useAnimatedHeight(isExpanded);
32037
+ const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
32004
32038
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
32005
32039
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
32006
32040
  "div",
32007
32041
  {
32008
- className: "bg-ods-card border-t border-ods-border flex gap-4 items-center pl-4 pr-2 py-3 cursor-pointer hover:bg-ods-bg-hover transition-colors",
32009
- onClick: () => onCategoryToggle(category.id),
32042
+ className: "bg-ods-card border-t first:border-t-0 border-ods-border flex gap-[var(--spacing-system-m)] items-center pl-[var(--spacing-system-m)] pr-[var(--spacing-system-xsf)] py-[var(--spacing-system-s)] cursor-pointer hover:bg-ods-bg-hover transition-colors",
32043
+ onClick: () => onToggle(category.id),
32010
32044
  children: [
32011
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary", children: category.icon }) }),
32012
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col", children: [
32013
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "md:!text-sm font-medium text-ods-text-primary", children: category.name }),
32045
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8 shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary", children: _nullishCoalesce(category.icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Shield, { className: "w-4 h-4" }))) }) }),
32046
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
32047
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", title: category.name, children: category.name }),
32014
32048
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: [
32015
- category.configurationsCount,
32049
+ category.policies.length,
32016
32050
  " Configurations"
32017
- ] })
32018
- ] }),
32019
- editMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPYR4LVAFcjs.DropdownMenu, { children: [
32020
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32021
- _chunkPYR4LVAFcjs.Button,
32051
+ ] }),
32052
+ editMode && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "md:hidden mt-[var(--spacing-system-xsf)]", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32053
+ ApprovalLevelDropdown,
32022
32054
  {
32023
- variant: "outline",
32024
- rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, { className: "h-6 w-6 text-ods-text-secondary" }),
32025
- className: "md:!text-sm bg-ods-card border border-ods-border rounded-md flex gap-2 items-center justify-between !px-2 py-2 w-[256px] hover:bg-ods-bg-hover transition-colors h-auto",
32026
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
32027
- "md:!text-sm font-medium",
32028
- category.globalPermission ? "text-ods-text-primary" : "text-ods-text-secondary"
32029
- ), children: getApprovalLevelLabel(category.globalPermission, editMode) })
32055
+ value: bulkLevel,
32056
+ onChange: handleBulkChange,
32057
+ allowClear: true,
32058
+ triggerClassName: "w-full",
32059
+ contentClassName: "w-[256px]"
32030
32060
  }
32031
- ) }),
32032
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPYR4LVAFcjs.DropdownMenuContent, { align: "end", className: "w-[256px]", children: [
32033
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32034
- _chunkPYR4LVAFcjs.DropdownMenuItem,
32035
- {
32036
- onClick: () => onGlobalPermissionChange(category.id, void 0),
32037
- className: "md:!text-sm",
32038
- children: "Clear Global Permission"
32039
- }
32040
- ),
32041
- approvalLevelOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32042
- _chunkPYR4LVAFcjs.DropdownMenuItem,
32043
- {
32044
- onClick: () => onGlobalPermissionChange(category.id, option.value),
32045
- className: "md:!text-sm",
32046
- children: option.label
32047
- },
32048
- option.value
32049
- ))
32050
- ] })
32051
- ] }) }) : category.globalPermission ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32052
- "div",
32061
+ ) })
32062
+ ] }),
32063
+ editMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:block shrink-0", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32064
+ ApprovalLevelDropdown,
32053
32065
  {
32054
- className: "px-3 py-2 w-[256px]",
32055
- onClick: (e) => e.stopPropagation(),
32056
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "md:!text-sm font-medium text-ods-text-primary", children: getApprovalLevelLabel(category.globalPermission, editMode) })
32066
+ value: bulkLevel,
32067
+ onChange: handleBulkChange,
32068
+ allowClear: true,
32069
+ triggerClassName: "w-[256px]",
32070
+ contentClassName: "w-[256px]"
32057
32071
  }
32058
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32072
+ ) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32059
32073
  "div",
32060
32074
  {
32061
- className: "px-3 py-2 w-[256px]",
32075
+ className: "hidden md:block px-[var(--spacing-system-sf)] py-[var(--spacing-system-xsf)] w-[256px] shrink-0",
32062
32076
  onClick: (e) => e.stopPropagation()
32063
32077
  }
32064
32078
  ),
@@ -32069,19 +32083,19 @@ var CategorySection = ({
32069
32083
  variant: "transparent",
32070
32084
  onClick: (e) => {
32071
32085
  e.stopPropagation();
32072
- onCategoryToggle(category.id);
32086
+ onToggle(category.id);
32073
32087
  },
32074
32088
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32075
32089
  _lucidereact.ChevronDown,
32076
32090
  {
32077
32091
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
32078
32092
  "h-6 w-6 text-ods-text-primary transition-transform duration-300",
32079
- category.isExpanded && "rotate-180"
32093
+ isExpanded && "rotate-180"
32080
32094
  )
32081
32095
  }
32082
32096
  ),
32083
- className: "rounded-md h-auto w-auto",
32084
- "aria-label": category.isExpanded ? "Collapse" : "Expand"
32097
+ className: "rounded-md h-auto w-auto shrink-0",
32098
+ "aria-label": isExpanded ? "Collapse" : "Expand"
32085
32099
  }
32086
32100
  )
32087
32101
  ]
@@ -32097,9 +32111,9 @@ var CategorySection = ({
32097
32111
  },
32098
32112
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
32099
32113
  "overflow-hidden",
32100
- category.isExpanded ? "opacity-100" : "opacity-0"
32114
+ isExpanded ? "opacity-100" : "opacity-0"
32101
32115
  ),
32102
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-4 pb-4 pt-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border border-ods-border rounded-md overflow-hidden", children: category.policies.map((policy) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32116
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-mf)] pb-[var(--spacing-system-mf)] pt-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border border-ods-border rounded-md overflow-hidden", children: category.policies.map((policy) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32103
32117
  PolicyRow,
32104
32118
  {
32105
32119
  policy,
@@ -32116,11 +32130,29 @@ var CategorySection = ({
32116
32130
  var PolicyConfigurationPanel = ({
32117
32131
  categories,
32118
32132
  editMode,
32119
- onCategoryToggle,
32120
- onGlobalPermissionChange,
32121
32133
  onPolicyPermissionChange,
32134
+ onCategoryPermissionChange,
32122
32135
  className
32123
32136
  }) => {
32137
+ const [expandedIds, setExpandedIds] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
32138
+ const [bulkLevels, setBulkLevels] = _react.useState.call(void 0, {});
32139
+ _react.useEffect.call(void 0, () => {
32140
+ setBulkLevels({});
32141
+ }, [editMode]);
32142
+ const handleToggle = (categoryId) => {
32143
+ setExpandedIds((prev) => {
32144
+ const next = new Set(prev);
32145
+ if (next.has(categoryId)) next.delete(categoryId);
32146
+ else next.add(categoryId);
32147
+ return next;
32148
+ });
32149
+ };
32150
+ const handleBulkLevelChange = (categoryId, level) => {
32151
+ setBulkLevels((prev) => ({ ...prev, [categoryId]: level }));
32152
+ if (level) {
32153
+ onCategoryPermissionChange(categoryId, level);
32154
+ }
32155
+ };
32124
32156
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0,
32125
32157
  "bg-ods-card border border-ods-border rounded-md overflow-hidden",
32126
32158
  className
@@ -32129,8 +32161,10 @@ var PolicyConfigurationPanel = ({
32129
32161
  {
32130
32162
  category,
32131
32163
  editMode,
32132
- onCategoryToggle,
32133
- onGlobalPermissionChange,
32164
+ isExpanded: expandedIds.has(category.id),
32165
+ bulkLevel: bulkLevels[category.id],
32166
+ onToggle: handleToggle,
32167
+ onBulkLevelChange: handleBulkLevelChange,
32134
32168
  onPolicyPermissionChange
32135
32169
  },
32136
32170
  category.id
@@ -32266,8 +32300,8 @@ function WaitlistForm({
32266
32300
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
32267
32301
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
32268
32302
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
32269
- const { toast } = _chunkQO6MCQYEcjs.useToast.call(void 0, );
32270
- const { honeypotInputProps, getSignals, resetSignals } = _chunkQO6MCQYEcjs.useHumanitySignals.call(void 0, );
32303
+ const { toast } = _chunk7CZ4MJSIcjs.useToast.call(void 0, );
32304
+ const { honeypotInputProps, getSignals, resetSignals } = _chunk7CZ4MJSIcjs.useHumanitySignals.call(void 0, );
32271
32305
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
32272
32306
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
32273
32307
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -33249,7 +33283,7 @@ function NotificationTile({
33249
33283
  onError: () => setFailedImageUrl(image),
33250
33284
  className: "size-4 rounded-[2px] object-cover"
33251
33285
  }
33252
- ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkQO6MCQYEcjs.dotColorByVariant[accentVariant]) })))
33286
+ ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "size-1.5 rounded-full", _chunk7CZ4MJSIcjs.dotColorByVariant[accentVariant]) })))
33253
33287
  }
33254
33288
  ),
33255
33289
  type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -33297,7 +33331,7 @@ function NotificationTile({
33297
33331
  "aria-hidden": true,
33298
33332
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
33299
33333
  "absolute inset-x-0 -bottom-px h-1 origin-left",
33300
- _chunkQO6MCQYEcjs.progressColorByVariant[accentVariant]
33334
+ _chunk7CZ4MJSIcjs.progressColorByVariant[accentVariant]
33301
33335
  ),
33302
33336
  style: {
33303
33337
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -33520,7 +33554,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
33520
33554
  ] });
33521
33555
  }
33522
33556
  function DesktopNotificationsToggleRow({ checked, onChange }) {
33523
- const { supported, permission, request } = _chunkQO6MCQYEcjs.useNotificationPermission.call(void 0, );
33557
+ const { supported, permission, request } = _chunk7CZ4MJSIcjs.useNotificationPermission.call(void 0, );
33524
33558
  if (!supported) return null;
33525
33559
  const blocked = permission === "denied";
33526
33560
  const handleChange = async (value) => {
@@ -34978,7 +35012,7 @@ function EmptyState2() {
34978
35012
  // src/components/features/board/use-board-collapse.ts
34979
35013
 
34980
35014
  function useBoardCollapse(storageKey) {
34981
- const [persisted, setPersisted] = _chunkQO6MCQYEcjs.useLocalStorage.call(void 0,
35015
+ const [persisted, setPersisted] = _chunk7CZ4MJSIcjs.useLocalStorage.call(void 0,
34982
35016
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
34983
35017
  {}
34984
35018
  );
@@ -35028,7 +35062,7 @@ function Board({
35028
35062
  onThumbPointerDown,
35029
35063
  onThumbPointerMove,
35030
35064
  onThumbPointerUp
35031
- } = _chunkQO6MCQYEcjs.useHorizontalScrollbar.call(void 0, );
35065
+ } = _chunk7CZ4MJSIcjs.useHorizontalScrollbar.call(void 0, );
35032
35066
  const [items, setItems] = React105.useState(columns);
35033
35067
  const isDraggingRef = React105.useRef(false);
35034
35068
  React105.useEffect(() => {
@@ -35386,8 +35420,8 @@ var MOBILE_NAV_PANEL_ID = "mobile-nav-panel";
35386
35420
  function MobileNavPanel({ isOpen, config }) {
35387
35421
  const panelRef = _react.useRef.call(void 0, null);
35388
35422
  _overlays.usePreventScroll.call(void 0, { isDisabled: !isOpen });
35389
- _chunkQO6MCQYEcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: config.onClose });
35390
- const headerHeight = _chunkQO6MCQYEcjs.useHeaderHeight.call(void 0, 64, { enabled: isOpen });
35423
+ _chunk7CZ4MJSIcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: config.onClose });
35424
+ const headerHeight = _chunk7CZ4MJSIcjs.useHeaderHeight.call(void 0, 64, { enabled: isOpen });
35391
35425
  if (!isOpen) return null;
35392
35426
  const renderNavigationItem = (item) => {
35393
35427
  if (item.element) {
@@ -35880,11 +35914,11 @@ _chunkPYR4LVAFcjs.init_button2.call(void 0, );
35880
35914
  function SlidingSidebar({ config }) {
35881
35915
  const [expandedItems, setExpandedItems] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
35882
35916
  const [mounted, setMounted] = _react.useState.call(void 0, false);
35883
- const headerHeight = _chunkQO6MCQYEcjs.useHeaderHeight.call(void 0, );
35917
+ const headerHeight = _chunk7CZ4MJSIcjs.useHeaderHeight.call(void 0, );
35884
35918
  const asideRef = _react.useRef.call(void 0, null);
35885
35919
  const prefersReducedMotion2 = _framermotion.useReducedMotion.call(void 0, );
35886
35920
  _overlays.usePreventScroll.call(void 0, { isDisabled: !config.isOpen });
35887
- _chunkQO6MCQYEcjs.useFocusTrap.call(void 0, asideRef, config.isOpen, { onEscape: config.onClose, contain: false });
35921
+ _chunk7CZ4MJSIcjs.useFocusTrap.call(void 0, asideRef, config.isOpen, { onEscape: config.onClose, contain: false });
35888
35922
  _react.useEffect.call(void 0, () => {
35889
35923
  setMounted(true);
35890
35924
  }, []);
@@ -36122,7 +36156,7 @@ function useSectionNavigation(sections, options) {
36122
36156
  if (!targetElement) return;
36123
36157
  isScrollingFromClick.current = true;
36124
36158
  setActiveSection(sectionId);
36125
- _chunkQO6MCQYEcjs.scrollElementIntoView.call(void 0, targetElement, { headerOffset: offset2 });
36159
+ _chunk7CZ4MJSIcjs.scrollElementIntoView.call(void 0, targetElement, { headerOffset: offset2 });
36126
36160
  setTimeout(() => {
36127
36161
  isScrollingFromClick.current = false;
36128
36162
  }, 500);
@@ -36308,10 +36342,10 @@ var MINIMIZED_WIDTH = 56;
36308
36342
  var EXPANDED_WIDTH = 224;
36309
36343
  var STORAGE_KEY = "of.navigationSidebar.minimized";
36310
36344
  function NavigationSidebar({ config, disabled = false }) {
36311
- const isMdUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useMdUp.call(void 0, ), () => ( false));
36312
- const isLgUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useLgUp.call(void 0, ), () => ( false));
36345
+ const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( false));
36346
+ const isLgUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useLgUp.call(void 0, ), () => ( false));
36313
36347
  const isTablet = isMdUp && !isLgUp;
36314
- const [desktopMinimized, setDesktopMinimized] = _chunkQO6MCQYEcjs.useLocalStorage.call(void 0,
36348
+ const [desktopMinimized, setDesktopMinimized] = _chunk7CZ4MJSIcjs.useLocalStorage.call(void 0,
36315
36349
  STORAGE_KEY,
36316
36350
  _nullishCoalesce(config.minimized, () => ( false))
36317
36351
  );
@@ -36635,7 +36669,7 @@ var AppHeader = React120.default.memo(function AppHeader2({
36635
36669
  onToggleMobileMenu,
36636
36670
  disabled = false
36637
36671
  }) {
36638
- const isMdUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useMdUp.call(void 0, ), () => ( false));
36672
+ const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( false));
36639
36673
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
36640
36674
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
36641
36675
  "header",
@@ -36834,7 +36868,7 @@ var MobileBurgerMenu = React120.default.memo(function MobileBurgerMenu2({
36834
36868
  }) {
36835
36869
  const panelRef = _react.useRef.call(void 0, null);
36836
36870
  _overlays.usePreventScroll.call(void 0, { isDisabled: !isOpen });
36837
- _chunkQO6MCQYEcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: onClose });
36871
+ _chunk7CZ4MJSIcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: onClose });
36838
36872
  const handleItemClick = _react.useCallback.call(void 0, (item) => {
36839
36873
  if (item.onClick) {
36840
36874
  item.onClick();
@@ -37397,7 +37431,7 @@ var ToolBadge = ({
37397
37431
  }) => {
37398
37432
  const label = getToolLabel(toolType);
37399
37433
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
37400
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQO6MCQYEcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
37434
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
37401
37435
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
37402
37436
  ] });
37403
37437
  };
@@ -37769,7 +37803,7 @@ function OnboardingWalkthrough({
37769
37803
  isStepSkipped,
37770
37804
  allStepsComplete,
37771
37805
  markMultipleComplete
37772
- } = _chunkQO6MCQYEcjs.useOnboardingState.call(void 0, storageKey);
37806
+ } = _chunk7CZ4MJSIcjs.useOnboardingState.call(void 0, storageKey);
37773
37807
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
37774
37808
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
37775
37809
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -37976,7 +38010,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
37976
38010
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-primary", children: log.title }),
37977
38011
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
37978
38012
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 text-ods-text-secondary", children: formatTimestamp(log.timestamp) }),
37979
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQO6MCQYEcjs.ToolIcon, { toolType: log.toolType, size: 16 })
38013
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType: log.toolType, size: 16 })
37980
38014
  ] })
37981
38015
  ] })
37982
38016
  ]
@@ -38113,7 +38147,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
38113
38147
  }
38114
38148
  function ServiceCardRowItem({ row }) {
38115
38149
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
38116
- const { copy, copied } = _chunkQO6MCQYEcjs.useCopyToClipboard.call(void 0, );
38150
+ const { copy, copied } = _chunk7CZ4MJSIcjs.useCopyToClipboard.call(void 0, );
38117
38151
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
38118
38152
  const displayValue = row.isSecret ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MaskedValue, { value: row.value, isRevealed: revealed }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.value });
38119
38153
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -38775,7 +38809,7 @@ function TableHeader({
38775
38809
  }
38776
38810
  return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGD345ZVcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGD345ZVcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
38777
38811
  };
38778
- const isLgUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useLgUp.call(void 0, ), () => ( false));
38812
+ const isLgUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useLgUp.call(void 0, ), () => ( false));
38779
38813
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
38780
38814
  "div",
38781
38815
  {
@@ -39698,7 +39732,7 @@ function QueryReportTable({
39698
39732
  onThumbPointerDown,
39699
39733
  onThumbPointerMove,
39700
39734
  onThumbPointerUp
39701
- } = _chunkQO6MCQYEcjs.useHorizontalScrollbar.call(void 0, );
39735
+ } = _chunk7CZ4MJSIcjs.useHorizontalScrollbar.call(void 0, );
39702
39736
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
39703
39737
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
39704
39738
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-h2 text-ods-text-primary", children: title }),
@@ -39929,7 +39963,7 @@ function DataTableHeader({
39929
39963
  onSortChange
39930
39964
  }) {
39931
39965
  const table = useDataTableContext();
39932
- const isLgUp = _nullishCoalesce(_chunkQO6MCQYEcjs.useLgUp.call(void 0, ), () => ( false));
39966
+ const isLgUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useLgUp.call(void 0, ), () => ( false));
39933
39967
  const headerGroup = table.getHeaderGroups()[0];
39934
39968
  if (!headerGroup) return null;
39935
39969
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
@@ -40500,7 +40534,7 @@ function SearchInput({
40500
40534
  }) {
40501
40535
  const [internalValue, setInternalValue] = React122.useState(defaultValue);
40502
40536
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
40503
- const debouncedValue = _chunkQO6MCQYEcjs.useDebounce.call(void 0, currentValue, debounceMs);
40537
+ const debouncedValue = _chunk7CZ4MJSIcjs.useDebounce.call(void 0, currentValue, debounceMs);
40504
40538
  const [isOpen, setIsOpen] = React122.useState(false);
40505
40539
  const [highlightedIndex, setHighlightedIndex] = React122.useState(-1);
40506
40540
  const containerRef = React122.useRef(null);
@@ -40512,7 +40546,7 @@ function SearchInput({
40512
40546
  textMeasureRef,
40513
40547
  badgeRef,
40514
40548
  inputRef
40515
- } = _chunkQO6MCQYEcjs.useAutoLimitTags.call(void 0, {
40549
+ } = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
40516
40550
  count: filterChips.length,
40517
40551
  limitTags,
40518
40552
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -40979,7 +41013,7 @@ function TagSearchInput({
40979
41013
  textMeasureRef,
40980
41014
  badgeRef,
40981
41015
  inputRef
40982
- } = _chunkQO6MCQYEcjs.useAutoLimitTags.call(void 0, {
41016
+ } = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
40983
41017
  count: tags.length,
40984
41018
  limitTags,
40985
41019
  placeholder: currentPlaceholder
@@ -45677,7 +45711,7 @@ function useChatCardItem(type, id) {
45677
45711
  queryKey: ["chat-card-item", type, id],
45678
45712
  queryFn: async () => {
45679
45713
  if (!url) return null;
45680
- const res = await _chunkQO6MCQYEcjs.embedAuthedFetch.call(void 0, url);
45714
+ const res = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url);
45681
45715
  if (!res.ok) return null;
45682
45716
  const data = await res.json();
45683
45717
  const items = extractItems(data);
@@ -48609,7 +48643,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
48609
48643
  try {
48610
48644
  const url = new URL(commandsUrl, window.location.origin);
48611
48645
  if (prefix) url.searchParams.set("q", prefix);
48612
- const res = await _chunkQO6MCQYEcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
48646
+ const res = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
48613
48647
  if (!res.ok) return [];
48614
48648
  const data = await res.json();
48615
48649
  return _nullishCoalesce(data.commands, () => ( []));
@@ -48684,7 +48718,7 @@ var EMPTY_STATE_FALLBACK = {
48684
48718
  async function fetchEmptyStateConfig(signal, emptyStateUrl) {
48685
48719
  try {
48686
48720
  const url = new URL(emptyStateUrl, window.location.origin);
48687
- const res = await _chunkQO6MCQYEcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
48721
+ const res = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
48688
48722
  if (!res.ok) {
48689
48723
  if (res.status >= 500) {
48690
48724
  console.error(`[chat] empty-state config fetch failed (${res.status}): ${url.pathname}`);
@@ -48846,7 +48880,7 @@ function useChatAttachments() {
48846
48880
  );
48847
48881
  }
48848
48882
  updateOne(att.id, { status: "uploading", progress: 5 });
48849
- const urlResp = await _chunkQO6MCQYEcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
48883
+ const urlResp = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
48850
48884
  method: "POST",
48851
48885
  headers: { "Content-Type": "application/json" },
48852
48886
  signal: _optionalChain([ctrl, 'optionalAccess', _1235 => _1235.signal]),
@@ -49036,7 +49070,7 @@ var ANON_DEFAULTS = {
49036
49070
  function useResolveChatIdentity(enabled) {
49037
49071
  const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
49038
49072
  const url = runtime.endpoints.identityUrl;
49039
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkQO6MCQYEcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1241 => _1241.email]), () => ( null));
49073
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunk7CZ4MJSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1241 => _1241.email]), () => ( null));
49040
49074
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
49041
49075
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
49042
49076
  _react.useEffect.call(void 0, () => {
@@ -49044,7 +49078,7 @@ function useResolveChatIdentity(enabled) {
49044
49078
  let cancelled = false;
49045
49079
  const ctrl = new AbortController();
49046
49080
  setIsLoading(true);
49047
- _chunkQO6MCQYEcjs.embedAuthedFetch.call(void 0, url, { signal: ctrl.signal }).then(async (resp) => {
49081
+ _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url, { signal: ctrl.signal }).then(async (resp) => {
49048
49082
  if (!resp.ok) return ANON_DEFAULTS;
49049
49083
  return await resp.json();
49050
49084
  }).then((next) => {
@@ -49507,7 +49541,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49507
49541
  ..._optionalChain([extra, 'optionalAccess', _1256 => _1256.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
49508
49542
  ..._optionalChain([extra, 'optionalAccess', _1257 => _1257.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
49509
49543
  };
49510
- const response = await _chunkQO6MCQYEcjs.embedAuthedFetch.call(void 0, targetPath, {
49544
+ const response = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, targetPath, {
49511
49545
  method: "POST",
49512
49546
  body: JSON.stringify(requestBody),
49513
49547
  signal
@@ -49730,7 +49764,7 @@ var CHAT_STORAGE_VERSION = 1;
49730
49764
  var DEFAULT_CHAT_SOURCE = "embed";
49731
49765
  var chatStorageKey = (source) => {
49732
49766
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
49733
- const auth = _chunkQO6MCQYEcjs.getEmbedProxyAuth.call(void 0, );
49767
+ const auth = _chunk7CZ4MJSIcjs.getEmbedProxyAuth.call(void 0, );
49734
49768
  if (_optionalChain([auth, 'optionalAccess', _1266 => _1266.email])) {
49735
49769
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
49736
49770
  }
@@ -54084,4 +54118,4 @@ function EmbeddableChatInner({
54084
54118
 
54085
54119
 
54086
54120
  exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; 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.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; 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.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.VideoPlayBadge = VideoPlayBadge; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.EntityIcon = EntityIcon; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.UserDisplay = UserDisplay; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.programItemToStripProfile = programItemToStripProfile; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.announcementDismissCookieName = announcementDismissCookieName; exports.isDismissedCookieValue = isDismissedCookieValue; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; 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.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; 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.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.MOBILE_NAV_PANEL_ID = MOBILE_NAV_PANEL_ID; exports.MobileNavPanel = MobileNavPanel; exports.MingoAiButton = MingoAiButton; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
54087
- //# sourceMappingURL=chunk-DUQQEQ7G.cjs.map
54121
+ //# sourceMappingURL=chunk-4R3SVOKH.cjs.map