@flamingo-stack/openframe-frontend-core 0.0.177 → 0.0.178

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 (42) hide show
  1. package/dist/{chunk-6LDN3CIY.js → chunk-AAX27BCR.js} +189 -348
  2. package/dist/chunk-AAX27BCR.js.map +1 -0
  3. package/dist/{chunk-WX7PT5C7.cjs → chunk-ALW3D72O.cjs} +61 -2
  4. package/dist/chunk-ALW3D72O.cjs.map +1 -0
  5. package/dist/{chunk-KB2N44BY.js → chunk-FMWHOUFE.js} +61 -2
  6. package/dist/chunk-FMWHOUFE.js.map +1 -0
  7. package/dist/{chunk-C6ZMI4UB.cjs → chunk-L4T24AN4.cjs} +113 -272
  8. package/dist/chunk-L4T24AN4.cjs.map +1 -0
  9. package/dist/components/features/index.cjs +3 -5
  10. package/dist/components/features/index.cjs.map +1 -1
  11. package/dist/components/features/index.js +2 -4
  12. package/dist/components/features/video-player.d.ts +17 -20
  13. package/dist/components/features/video-player.d.ts.map +1 -1
  14. package/dist/components/features/youtube-embed.d.ts +18 -4
  15. package/dist/components/features/youtube-embed.d.ts.map +1 -1
  16. package/dist/components/index.cjs +3 -5
  17. package/dist/components/index.cjs.map +1 -1
  18. package/dist/components/index.js +2 -4
  19. package/dist/components/navigation/index.cjs +3 -3
  20. package/dist/components/navigation/index.js +2 -2
  21. package/dist/components/ui/index.cjs +3 -3
  22. package/dist/components/ui/index.js +2 -2
  23. package/dist/hooks/index.cjs +4 -2
  24. package/dist/hooks/index.cjs.map +1 -1
  25. package/dist/hooks/index.d.ts +1 -0
  26. package/dist/hooks/index.d.ts.map +1 -1
  27. package/dist/hooks/index.js +3 -1
  28. package/dist/hooks/use-near-viewport.d.ts +42 -0
  29. package/dist/hooks/use-near-viewport.d.ts.map +1 -0
  30. package/dist/index.cjs +3 -3
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +4 -4
  33. package/package.json +1 -1
  34. package/src/components/features/video-player.tsx +39 -176
  35. package/src/components/features/youtube-embed.tsx +107 -224
  36. package/src/hooks/index.ts +3 -0
  37. package/src/hooks/use-near-viewport.ts +118 -0
  38. package/dist/chunk-6LDN3CIY.js.map +0 -1
  39. package/dist/chunk-C6ZMI4UB.cjs.map +0 -1
  40. package/dist/chunk-KB2N44BY.js.map +0 -1
  41. package/dist/chunk-WX7PT5C7.cjs.map +0 -1
  42. package/src/components/features/__tests__/video-player.test.tsx +0 -142
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- var _chunkWX7PT5C7cjs = require('./chunk-WX7PT5C7.cjs');
19
+ var _chunkALW3D72Ocjs = require('./chunk-ALW3D72O.cjs');
20
20
 
21
21
 
22
22
 
@@ -790,7 +790,7 @@ function AutocompleteInner(props, ref) {
790
790
  }, [valueArray, options]);
791
791
  const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
792
792
  const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
793
- const autoLimitTags = _chunkWX7PT5C7cjs.useAutoLimitTags.call(void 0, {
793
+ const autoLimitTags = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
794
794
  count: multiple ? selectedOptions.length : 0,
795
795
  limitTags: multiple ? limitTagsProp : 0,
796
796
  placeholder: inputPlaceholder
@@ -2737,7 +2737,7 @@ function toToolLabel(input) {
2737
2737
  if (!input) return "";
2738
2738
  const toolType = normalizeToolType(input);
2739
2739
  if (toolType) {
2740
- return _chunkWX7PT5C7cjs.toolLabels[toolType];
2740
+ return _chunkALW3D72Ocjs.toolLabels[toolType];
2741
2741
  }
2742
2742
  return input;
2743
2743
  }
@@ -2748,7 +2748,7 @@ function getToolTypeAliases(toolType) {
2748
2748
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
2749
2749
  }
2750
2750
  function getToolLabel(toolType) {
2751
- return _chunkWX7PT5C7cjs.toolLabels[toolType] || toolType;
2751
+ return _chunkALW3D72Ocjs.toolLabels[toolType] || toolType;
2752
2752
  }
2753
2753
 
2754
2754
  // src/types/shell.types.ts
@@ -3338,7 +3338,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
3338
3338
  onClick: onToggle,
3339
3339
  className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
3340
3340
  children: [
3341
- /* @__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, _chunkWX7PT5C7cjs.ToolIcon, { toolType, size: 16 }) }),
3341
+ /* @__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, _chunkALW3D72Ocjs.ToolIcon, { toolType, size: 16 }) }),
3342
3342
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3343
3343
  "div",
3344
3344
  {
@@ -5047,7 +5047,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5047
5047
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
5048
5048
  onClick: () => setExpanded((prev) => !prev),
5049
5049
  children: [
5050
- /* @__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, _chunkWX7PT5C7cjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5050
+ /* @__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, _chunkALW3D72Ocjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5051
5051
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5052
5052
  "div",
5053
5053
  {
@@ -6494,7 +6494,7 @@ function useNatsDialogSubscription({
6494
6494
  });
6495
6495
  }
6496
6496
  const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
6497
- const client = _chunkWX7PT5C7cjs.createNatsClient.call(void 0, {
6497
+ const client = _chunkALW3D72Ocjs.createNatsClient.call(void 0, {
6498
6498
  servers: url,
6499
6499
  name,
6500
6500
  user,
@@ -9037,8 +9037,8 @@ var MINIMIZED_WIDTH = 56;
9037
9037
  var EXPANDED_WIDTH = 224;
9038
9038
  var STORAGE_KEY = "of.navigationSidebar.minimized";
9039
9039
  function NavigationSidebar({ config, disabled = false }) {
9040
- const isLgUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useLgUp.call(void 0, ), () => ( false));
9041
- const [minimized, setMinimized] = _chunkWX7PT5C7cjs.useLocalStorage.call(void 0,
9040
+ const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
9041
+ const [minimized, setMinimized] = _chunkALW3D72Ocjs.useLocalStorage.call(void 0,
9042
9042
  STORAGE_KEY,
9043
9043
  !isLgUp || (_nullishCoalesce(config.minimized, () => ( false)))
9044
9044
  );
@@ -9410,7 +9410,7 @@ var AppHeader = React33.default.memo(function AppHeader2({
9410
9410
  onToggleMobileMenu,
9411
9411
  disabled = false
9412
9412
  }) {
9413
- const isMdUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useMdUp.call(void 0, ), () => ( false));
9413
+ const isMdUp = _nullishCoalesce(_chunkALW3D72Ocjs.useMdUp.call(void 0, ), () => ( false));
9414
9414
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
9415
9415
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9416
9416
  "header",
@@ -9793,7 +9793,7 @@ function NotificationTile({
9793
9793
  ),
9794
9794
  children: [
9795
9795
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
9796
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkWX7PT5C7cjs.dotColorByVariant[variant]) }) }),
9796
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkALW3D72Ocjs.dotColorByVariant[variant]) }) }),
9797
9797
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
9798
9798
  title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", children: title }) : null,
9799
9799
  description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", children: description }) : null
@@ -9834,7 +9834,7 @@ function NotificationTile({
9834
9834
  "aria-hidden": true,
9835
9835
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
9836
9836
  "absolute inset-x-0 -bottom-px h-1 origin-left",
9837
- _chunkWX7PT5C7cjs.progressColorByVariant[variant]
9837
+ _chunkALW3D72Ocjs.progressColorByVariant[variant]
9838
9838
  ),
9839
9839
  style: {
9840
9840
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -10286,7 +10286,7 @@ var ToolBadge = ({
10286
10286
  }) => {
10287
10287
  const label = getToolLabel(toolType);
10288
10288
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
10289
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
10289
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
10290
10290
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
10291
10291
  ] });
10292
10292
  };
@@ -12547,7 +12547,7 @@ _chunkBJTOSUT4cjs.init_button2.call(void 0, );
12547
12547
 
12548
12548
  function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
12549
12549
  const inputRef = _react.useRef.call(void 0, null);
12550
- const { toast } = _chunkWX7PT5C7cjs.useToast.call(void 0, );
12550
+ const { toast } = _chunkALW3D72Ocjs.useToast.call(void 0, );
12551
12551
  const [uploading, setUploading] = _react.useState.call(void 0, false);
12552
12552
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
12553
12553
  const MAX_SIZE = 5 * 1024 * 1024;
@@ -16128,7 +16128,7 @@ function OnboardingWalkthrough({
16128
16128
  isStepSkipped,
16129
16129
  allStepsComplete,
16130
16130
  markMultipleComplete
16131
- } = _chunkWX7PT5C7cjs.useOnboardingState.call(void 0, storageKey);
16131
+ } = _chunkALW3D72Ocjs.useOnboardingState.call(void 0, storageKey);
16132
16132
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
16133
16133
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
16134
16134
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -16617,57 +16617,19 @@ function ImageGalleryModal({
16617
16617
 
16618
16618
  // src/components/features/youtube-embed.tsx
16619
16619
 
16620
- var _youtube = require('react-player/youtube'); var _youtube2 = _interopRequireDefault(_youtube);
16621
-
16622
- var Play = ({ size = 16, className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: size, height: size, fill: "currentColor", viewBox: "0 0 24 24", className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polygon", { points: "5,3 19,12 5,21" }) });
16623
- var Loader = ({ size = 16, className }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { width: size, height: size, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", className, children: [
16624
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "12", y1: "2", x2: "12", y2: "6" }),
16625
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "12", y1: "18", x2: "12", y2: "22" }),
16626
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }),
16627
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }),
16628
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "2", y1: "12", x2: "6", y2: "12" }),
16629
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "18", y1: "12", x2: "22", y2: "12" }),
16630
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }),
16631
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })
16632
- ] });
16620
+
16633
16621
  var YouTubeEmbed = ({
16634
16622
  videoId,
16635
16623
  title = "YouTube Video",
16636
16624
  className = "",
16637
16625
  showTitle = true,
16638
16626
  showMeta = true,
16639
- minimalControls = false
16627
+ minimalControls = false,
16628
+ aboveTheFold = false
16640
16629
  }) => {
16641
- const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
16642
- const [hasError, setHasError] = _react.useState.call(void 0, false);
16643
- const [isPlaying, setIsPlaying] = _react.useState.call(void 0, false);
16644
- const [useIframe, setUseIframe] = _react.useState.call(void 0, false);
16645
- const [mounted, setMounted] = _react.useState.call(void 0, false);
16646
- _react.useEffect.call(void 0, () => {
16647
- setMounted(true);
16648
- setUseIframe(true);
16649
- setIsLoading(false);
16650
- }, []);
16651
- const handleReady = () => {
16652
- setIsLoading(false);
16653
- };
16654
- const handleError = () => {
16655
- setIsLoading(false);
16656
- setHasError(true);
16657
- setUseIframe(true);
16658
- };
16659
- const handlePlay = () => {
16660
- setIsPlaying(true);
16661
- };
16662
- const handlePause = () => {
16663
- setIsPlaying(false);
16664
- };
16665
- const videoUrl = `https://www.youtube.com/watch?v=${videoId}`;
16666
- const embedParams = new URLSearchParams({
16667
- rel: "0",
16668
- modestbranding: "1",
16669
- playsinline: "1"
16670
- });
16630
+ const [activated, setActivated] = _react.useState.call(void 0, false);
16631
+ const iframeSlotRef = _react.useRef.call(void 0, null);
16632
+ const embedParams = new URLSearchParams({ autoplay: "1", rel: "0", modestbranding: "1", playsinline: "1" });
16671
16633
  if (minimalControls) {
16672
16634
  embedParams.set("controls", "0");
16673
16635
  embedParams.set("showinfo", "0");
@@ -16675,96 +16637,60 @@ var YouTubeEmbed = ({
16675
16637
  embedParams.set("iv_load_policy", "3");
16676
16638
  embedParams.set("cc_load_policy", "0");
16677
16639
  embedParams.set("disablekb", "1");
16678
- embedParams.set("rel", "0");
16679
- }
16680
- const embedUrl = `https://www.youtube.com/embed/${videoId}?${embedParams.toString()}`;
16681
- if (!mounted) {
16682
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `youtube-embed-container my-6 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-wrapper relative w-full", style: { paddingBottom: "56.25%" }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "loading-overlay absolute inset-0 bg-ods-card border border-ods-border rounded-lg flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "loading-content flex flex-col items-center gap-3", children: [
16683
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Loader, { className: "animate-spin text-ods-accent", size: 32 }),
16684
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-sans text-sm text-ods-text-secondary", children: "Loading video..." })
16685
- ] }) }) }) });
16686
- }
16687
- if (hasError) {
16688
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `youtube-embed-error ${className}`, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "error-state bg-ods-card border border-ods-error rounded-lg p-6 text-center my-6", children: [
16689
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: "48", height: "48", fill: "currentColor", viewBox: "0 0 24 24", className: "text-ods-error", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }) }),
16690
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-title font-sans font-semibold text-lg text-ods-error mb-2", children: "Video Unavailable" }),
16691
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-description font-sans text-sm text-ods-text-secondary mb-4", children: "Unable to load YouTube video. The video may be private or deleted." }),
16692
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16693
- "a",
16694
- {
16695
- href: videoUrl,
16696
- target: "_blank",
16697
- rel: "noopener noreferrer",
16698
- className: "error-retry-button bg-ods-error hover:bg-ods-error-hover text-ods-text-on-error border-none rounded px-4 py-2 font-sans font-medium text-sm cursor-pointer transition-colors duration-200",
16699
- children: "Watch on YouTube"
16700
- }
16701
- )
16702
- ] }) });
16703
16640
  }
16641
+ const embedUrl = `https://www.youtube-nocookie.com/embed/${videoId}?${embedParams.toString()}`;
16642
+ const watchUrl = `https://www.youtube.com/watch?v=${videoId}`;
16643
+ const posterJpg = `https://i.ytimg.com/vi/${videoId}/mqdefault.jpg`;
16644
+ const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/mqdefault.webp`;
16645
+ const handleActivate = () => {
16646
+ const slot = iframeSlotRef.current;
16647
+ if (!slot || activated) return;
16648
+ const iframe = document.createElement("iframe");
16649
+ iframe.setAttribute("allow", "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share");
16650
+ iframe.setAttribute("allowfullscreen", "");
16651
+ iframe.setAttribute("title", title);
16652
+ iframe.className = "absolute inset-0 w-full h-full border-0";
16653
+ iframe.src = embedUrl;
16654
+ slot.appendChild(iframe);
16655
+ setActivated(true);
16656
+ };
16704
16657
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `youtube-embed-container my-6 ${className}`, children: [
16705
16658
  title && showTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-title font-sans text-lg font-medium text-ods-text-primary mb-3", children: title }),
16706
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "video-wrapper relative w-full", style: { paddingBottom: "56.25%" }, children: [
16707
- isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "loading-overlay absolute inset-0 bg-ods-card border border-ods-border rounded-lg flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "loading-content flex flex-col items-center gap-3", children: [
16708
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Loader, { className: "animate-spin text-ods-accent", size: 32 }),
16709
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-sans text-sm text-ods-text-secondary", children: "Loading video..." })
16710
- ] }) }),
16711
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-player absolute inset-0 rounded-lg overflow-hidden border border-ods-border bg-ods-bg-inverse", children: useIframe ? (
16712
- // Iframe fallback for mobile and error cases
16713
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16714
- "iframe",
16715
- {
16716
- src: embedUrl,
16717
- title,
16718
- className: "w-full h-full border-0",
16719
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
16720
- allowFullScreen: true,
16721
- style: { border: "none" }
16722
- }
16723
- )
16724
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16725
- _youtube2.default,
16726
- {
16727
- url: videoUrl,
16728
- width: "100%",
16729
- height: "100%",
16730
- onReady: handleReady,
16731
- onError: handleError,
16732
- onPlay: handlePlay,
16733
- onPause: handlePause,
16734
- config: {
16735
- youtube: {
16736
- playerVars: {
16737
- autoplay: 0,
16738
- controls: 1,
16739
- rel: 0,
16740
- showinfo: 0,
16741
- modestbranding: 1,
16742
- iv_load_policy: 3,
16743
- cc_load_policy: 0,
16744
- playsinline: 1
16745
- }
16746
- }
16747
- },
16748
- light: false,
16749
- playing: false
16750
- }
16751
- ) }),
16752
- !useIframe && !isPlaying && !isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "play-overlay absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 rounded-lg transition-opacity duration-300 hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16659
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-wrapper relative w-full", style: { paddingBottom: "56.25%" }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute inset-0 rounded-lg overflow-hidden border border-ods-border bg-ods-card", children: [
16660
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: iframeSlotRef, className: "absolute inset-0", "aria-hidden": !activated }),
16661
+ !activated && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
16753
16662
  "button",
16754
16663
  {
16755
- onClick: () => setIsPlaying(true),
16756
- className: "play-button bg-ods-accent hover:bg-ods-accent-hover text-ods-text-on-accent w-16 h-16 rounded-full flex items-center justify-center transition-all duration-200 transform hover:scale-110 shadow-lg",
16757
- "aria-label": "Play video",
16758
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Play, { size: 24, className: "ml-1" })
16664
+ type: "button",
16665
+ "aria-label": `Play: ${title}`,
16666
+ onClick: handleActivate,
16667
+ className: "group absolute inset-0 p-0 m-0 border-0 cursor-pointer bg-transparent",
16668
+ children: [
16669
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "picture", { children: [
16670
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "source", { type: "image/webp", srcSet: posterWebp }),
16671
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16672
+ "img",
16673
+ {
16674
+ src: posterJpg,
16675
+ alt: title,
16676
+ loading: "lazy",
16677
+ fetchPriority: aboveTheFold ? "high" : "low",
16678
+ decoding: aboveTheFold ? "sync" : "async",
16679
+ className: "absolute inset-0 w-full h-full object-cover"
16680
+ }
16681
+ )
16682
+ ] }),
16683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center justify-center w-16 h-16 rounded-full bg-ods-accent text-ods-text-on-accent shadow-lg transition-transform duration-200 group-hover:scale-110", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: 24, height: 24, fill: "currentColor", viewBox: "0 0 24 24", className: "ml-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polygon", { points: "5,3 19,12 5,21" }) }) }) })
16684
+ ]
16759
16685
  }
16760
- ) })
16761
- ] }),
16686
+ )
16687
+ ] }) }),
16762
16688
  showMeta && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "video-meta flex items-center justify-between mt-3 text-sm text-ods-text-secondary", children: [
16763
16689
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "video-platform font-sans", children: "YouTube" }),
16764
16690
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16765
16691
  "a",
16766
16692
  {
16767
- href: videoUrl,
16693
+ href: watchUrl,
16768
16694
  target: "_blank",
16769
16695
  rel: "noopener noreferrer",
16770
16696
  className: "video-link font-sans text-ods-accent hover:text-ods-accent-hover transition-colors duration-200",
@@ -16774,35 +16700,30 @@ var YouTubeEmbed = ({
16774
16700
  ] })
16775
16701
  ] });
16776
16702
  };
16703
+ var YT_HOSTS = /* @__PURE__ */ new Set([
16704
+ "youtube.com",
16705
+ "www.youtube.com",
16706
+ "m.youtube.com",
16707
+ "youtu.be",
16708
+ "youtube-nocookie.com",
16709
+ "www.youtube-nocookie.com"
16710
+ ]);
16711
+ var YT_PATH_RE = /^\/(?:embed|v|shorts)\/([^/]+)\/?$/;
16777
16712
  var extractYouTubeId = (url) => {
16778
- const patterns = [
16779
- /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\n?#]+)/,
16780
- /youtube\.com\/v\/([^&\n?#]+)/,
16781
- /youtube\.com\/watch\?.*v=([^&\n?#]+)/
16782
- ];
16783
- for (const pattern of patterns) {
16784
- const match = url.match(pattern);
16785
- if (match) {
16786
- return match[1];
16787
- }
16713
+ let u;
16714
+ try {
16715
+ u = new URL(url);
16716
+ } catch (e22) {
16717
+ return null;
16788
16718
  }
16789
- return null;
16790
- };
16791
- var YouTubeLinkParser = ({ href, children }) => {
16792
- const videoId = extractYouTubeId(href);
16793
- if (videoId) {
16794
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, YouTubeEmbed, { videoId, title: typeof children === "string" ? children : void 0 });
16719
+ if (!YT_HOSTS.has(u.hostname.toLowerCase())) return null;
16720
+ if (u.hostname.toLowerCase().endsWith("youtu.be")) {
16721
+ return _nullishCoalesce(u.pathname.split("/").filter(Boolean)[0], () => ( null));
16795
16722
  }
16796
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16797
- "a",
16798
- {
16799
- href,
16800
- target: "_blank",
16801
- rel: "noopener noreferrer",
16802
- className: "text-ods-accent hover:text-ods-accent-hover transition-colors duration-200",
16803
- children
16804
- }
16805
- );
16723
+ const v = u.searchParams.get("v");
16724
+ if (v) return v;
16725
+ const m = u.pathname.match(YT_PATH_RE);
16726
+ return m ? m[1] : null;
16806
16727
  };
16807
16728
 
16808
16729
  // src/components/features/video-player.tsx
@@ -16810,75 +16731,6 @@ var YouTubeLinkParser = ({ href, children }) => {
16810
16731
  var _reactplayer = require('react-player'); var _reactplayer2 = _interopRequireDefault(_reactplayer);
16811
16732
  _chunkBJTOSUT4cjs.init_button2.call(void 0, );
16812
16733
 
16813
- function useVideoFirstFramePoster(url, enabled) {
16814
- const [poster, setPoster] = _react.useState.call(void 0, null);
16815
- _react.useEffect.call(void 0, () => {
16816
- if (!enabled || !url) {
16817
- setPoster(null);
16818
- return;
16819
- }
16820
- const isDirectFile = /\.(mp4|webm|mov|m4v)(\?|#|$)/i.test(url);
16821
- if (!isDirectFile) {
16822
- setPoster(null);
16823
- return;
16824
- }
16825
- let cancelled = false;
16826
- const video = document.createElement("video");
16827
- video.crossOrigin = "anonymous";
16828
- video.preload = "metadata";
16829
- video.muted = true;
16830
- video.playsInline = true;
16831
- video.setAttribute("data-poster-extractor", "true");
16832
- const cleanup = () => {
16833
- video.removeAttribute("src");
16834
- try {
16835
- video.load();
16836
- } catch (e22) {
16837
- }
16838
- };
16839
- const onLoadedMetadata = () => {
16840
- if (cancelled) return;
16841
- const dur = video.duration || 10;
16842
- const target = Math.max(2, Math.min(dur * 0.1, 30));
16843
- video.currentTime = target;
16844
- };
16845
- const onSeeked = () => {
16846
- if (cancelled) return;
16847
- try {
16848
- const canvas = document.createElement("canvas");
16849
- canvas.width = video.videoWidth;
16850
- canvas.height = video.videoHeight;
16851
- const ctx = canvas.getContext("2d");
16852
- if (!ctx || !canvas.width || !canvas.height) {
16853
- cleanup();
16854
- return;
16855
- }
16856
- ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
16857
- const dataUrl = canvas.toDataURL("image/jpeg", 0.82);
16858
- if (!cancelled) setPoster(dataUrl);
16859
- } catch (err) {
16860
- console.warn("[VideoPlayer] first-frame extraction failed", err);
16861
- } finally {
16862
- cleanup();
16863
- }
16864
- };
16865
- const onError = () => {
16866
- cleanup();
16867
- };
16868
- video.addEventListener("loadedmetadata", onLoadedMetadata);
16869
- video.addEventListener("seeked", onSeeked);
16870
- video.addEventListener("error", onError);
16871
- video.src = url;
16872
- return () => {
16873
- cancelled = true;
16874
- video.removeEventListener("loadedmetadata", onLoadedMetadata);
16875
- video.removeEventListener("seeked", onSeeked);
16876
- video.removeEventListener("error", onError);
16877
- cleanup();
16878
- };
16879
- }, [url, enabled]);
16880
- return poster;
16881
- }
16882
16734
  var webkitCaptionCSSInjected = false;
16883
16735
  function ensureWebkitCaptionCSS() {
16884
16736
  if (webkitCaptionCSSInjected || typeof document === "undefined") return;
@@ -16929,7 +16781,6 @@ function useSubtitleOverlay(srtContent) {
16929
16781
  return { activeText, updateTime, hasCues: cues.length > 0 };
16930
16782
  }
16931
16783
  var SPEED_OPTIONS = [0.5, 0.75, 1, 1.25, 1.5, 2];
16932
- var LAZY_MOUNT_PLAY_FAILURE_GRACE_MS = 2e3;
16933
16784
  function formatTime(secs) {
16934
16785
  if (!secs || !isFinite(secs)) return "0:00";
16935
16786
  const h = Math.floor(secs / 3600);
@@ -16951,7 +16802,7 @@ var VideoPlayer = ({
16951
16802
  srtContent,
16952
16803
  captionsUrl,
16953
16804
  subtitleLabel,
16954
- lazyMount = false
16805
+ preloadStrategy = "metadata"
16955
16806
  }) => {
16956
16807
  const [hasError, setHasError] = _react.useState.call(void 0, false);
16957
16808
  const [isPlaying, setIsPlaying] = _react.useState.call(void 0, autoPlay);
@@ -16970,7 +16821,6 @@ var VideoPlayer = ({
16970
16821
  const hideTimeoutRef = _react.useRef.call(void 0, void 0);
16971
16822
  const clickTimerRef = _react.useRef.call(void 0, void 0);
16972
16823
  const iosFullscreenTimerRef = _react.useRef.call(void 0, void 0);
16973
- const lazyMountFailureTimerRef = _react.useRef.call(void 0, void 0);
16974
16824
  const [captionsEnabled, setCaptionsEnabled] = _react.useState.call(void 0, true);
16975
16825
  const [isFullscreen, setIsFullscreen] = _react.useState.call(void 0, false);
16976
16826
  const { activeText, updateTime, hasCues } = useSubtitleOverlay(srtContent);
@@ -17249,16 +17099,14 @@ var VideoPlayer = ({
17249
17099
  if (!hasStarted) return;
17250
17100
  handleTouchToggle();
17251
17101
  }, [hasStarted, handleTouchToggle]);
17252
- const extractedPoster = useVideoFirstFramePoster(url, !lazyMount && !hasStarted && !poster);
17253
- const effectivePoster = poster || extractedPoster || void 0;
17254
- const posterBgColor = _chunkWX7PT5C7cjs.useImageEdgeColor.call(void 0, effectivePoster);
17102
+ const effectivePoster = poster || void 0;
17103
+ const posterBgColor = _chunkALW3D72Ocjs.useImageEdgeColor.call(void 0, effectivePoster);
17255
17104
  _react.useEffect.call(void 0, () => {
17256
17105
  setMounted(true);
17257
17106
  return () => {
17258
17107
  clearTimeout(clickTimerRef.current);
17259
17108
  clearTimeout(hideTimeoutRef.current);
17260
17109
  clearTimeout(iosFullscreenTimerRef.current);
17261
- clearTimeout(lazyMountFailureTimerRef.current);
17262
17110
  isDraggingRef.current = false;
17263
17111
  if (dragListenersRef.current) {
17264
17112
  document.removeEventListener("mousemove", dragListenersRef.current.move);
@@ -17283,22 +17131,16 @@ var VideoPlayer = ({
17283
17131
  const handlePause = _react.useCallback.call(void 0, () => setIsPlaying(false), []);
17284
17132
  const handleEnded = _react.useCallback.call(void 0, () => setIsPlaying(false), []);
17285
17133
  const handlePlayClick = _react.useCallback.call(void 0, () => {
17286
- if (lazyMount) {
17287
- const native = _optionalChain([playerRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.getInternalPlayer, 'call', _482 => _482()]);
17288
- if (native instanceof HTMLVideoElement) {
17289
- native.play().catch(() => {
17290
- clearTimeout(lazyMountFailureTimerRef.current);
17291
- lazyMountFailureTimerRef.current = setTimeout(() => {
17292
- if (native.paused && native.error) setHasError(true);
17293
- }, LAZY_MOUNT_PLAY_FAILURE_GRACE_MS);
17294
- });
17295
- } else if (process.env.NODE_ENV !== "production") {
17296
- console.warn("[VideoPlayer] lazyMount sync play(): no native HTMLVideoElement yet");
17297
- }
17134
+ const native = _optionalChain([playerRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.getInternalPlayer, 'call', _482 => _482()]);
17135
+ if (native instanceof HTMLVideoElement) {
17136
+ native.play().catch(() => {
17137
+ });
17138
+ } else if (process.env.NODE_ENV !== "production") {
17139
+ console.warn("[VideoPlayer] sync play(): no native HTMLVideoElement yet");
17298
17140
  }
17299
17141
  setHasStarted(true);
17300
17142
  setIsPlaying(true);
17301
- }, [lazyMount]);
17143
+ }, []);
17302
17144
  const handleProgress = _react.useCallback.call(void 0, ({ played: p, loaded: l, playedSeconds }) => {
17303
17145
  setPlayed(p);
17304
17146
  setLoaded(l);
@@ -17373,7 +17215,7 @@ var VideoPlayer = ({
17373
17215
  onBufferEnd: handleBufferEnd,
17374
17216
  onProgress: handleProgress,
17375
17217
  progressInterval: 200,
17376
- config: { file: { attributes: { controlsList: "nodownload", playsInline: true, preload: lazyMount && !hasStarted ? "none" : hasStarted ? "auto" : "metadata" } } },
17218
+ config: { file: { attributes: { controlsList: "nodownload", playsInline: true, preload: hasStarted ? "auto" : preloadStrategy } } },
17377
17219
  light: false,
17378
17220
  playsinline: true
17379
17221
  }
@@ -18714,7 +18556,7 @@ function InfoCard({ data, className = "" }) {
18714
18556
  );
18715
18557
  }
18716
18558
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
18717
- const { copy, copied } = _chunkWX7PT5C7cjs.useCopyToClipboard.call(void 0, );
18559
+ const { copy, copied } = _chunkALW3D72Ocjs.useCopyToClipboard.call(void 0, );
18718
18560
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
18719
18561
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
18720
18562
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -18926,7 +18768,7 @@ var ProgressBar = ({
18926
18768
  mobileHeight = 8,
18927
18769
  inverted = false
18928
18770
  }) => {
18929
- const isMdUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useMdUp.call(void 0, ), () => ( true));
18771
+ const isMdUp = _nullishCoalesce(_chunkALW3D72Ocjs.useMdUp.call(void 0, ), () => ( true));
18930
18772
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
18931
18773
  const effectiveHeight = isMdUp ? height : mobileHeight;
18932
18774
  const containerRef = _react.useRef.call(void 0, null);
@@ -21121,7 +20963,7 @@ function ListPageLayout({
21121
20963
  }) {
21122
20964
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
21123
20965
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
21124
- const debouncedSearchValue = _chunkWX7PT5C7cjs.useDebounce.call(void 0, localSearchValue, 500);
20966
+ const debouncedSearchValue = _chunkALW3D72Ocjs.useDebounce.call(void 0, localSearchValue, 500);
21125
20967
  _react.useEffect.call(void 0, () => {
21126
20968
  setLocalSearchValue(searchValue);
21127
20969
  }, [searchValue]);
@@ -22763,7 +22605,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22763
22605
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
22764
22606
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22765
22607
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['Azeret_Mono'] font-normal text-[13px] leading-4 text-[#888888] uppercase tracking-wider", children: formatTimestamp(log.timestamp) }),
22766
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWX7PT5C7cjs.ToolIcon, { toolType: log.toolType, size: 16 })
22608
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType: log.toolType, size: 16 })
22767
22609
  ] })
22768
22610
  ] })
22769
22611
  ]
@@ -22968,7 +22810,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
22968
22810
  }
22969
22811
  function ServiceCardRowItem({ row }) {
22970
22812
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
22971
- const { copy, copied } = _chunkWX7PT5C7cjs.useCopyToClipboard.call(void 0, );
22813
+ const { copy, copied } = _chunkALW3D72Ocjs.useCopyToClipboard.call(void 0, );
22972
22814
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
22973
22815
  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 });
22974
22816
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -23634,7 +23476,7 @@ function TableHeader({
23634
23476
  }
23635
23477
  return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
23636
23478
  };
23637
- const isLgUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useLgUp.call(void 0, ), () => ( false));
23479
+ const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
23638
23480
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23639
23481
  "div",
23640
23482
  {
@@ -24524,7 +24366,7 @@ function QueryReportTable({
24524
24366
  onThumbPointerDown,
24525
24367
  onThumbPointerMove,
24526
24368
  onThumbPointerUp
24527
- } = _chunkWX7PT5C7cjs.useHorizontalScrollbar.call(void 0, );
24369
+ } = _chunkALW3D72Ocjs.useHorizontalScrollbar.call(void 0, );
24528
24370
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
24529
24371
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
24530
24372
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -24755,7 +24597,7 @@ function DataTableHeader({
24755
24597
  onSortChange
24756
24598
  }) {
24757
24599
  const table = useDataTableContext();
24758
- const isLgUp = _nullishCoalesce(_chunkWX7PT5C7cjs.useLgUp.call(void 0, ), () => ( false));
24600
+ const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
24759
24601
  const headerGroup = table.getHeaderGroups()[0];
24760
24602
  if (!headerGroup) return null;
24761
24603
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
@@ -25404,7 +25246,7 @@ function SearchInput({
25404
25246
  }) {
25405
25247
  const [internalValue, setInternalValue] = React82.useState(defaultValue);
25406
25248
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
25407
- const debouncedValue = _chunkWX7PT5C7cjs.useDebounce.call(void 0, currentValue, debounceMs);
25249
+ const debouncedValue = _chunkALW3D72Ocjs.useDebounce.call(void 0, currentValue, debounceMs);
25408
25250
  const [isOpen, setIsOpen] = React82.useState(false);
25409
25251
  const [highlightedIndex, setHighlightedIndex] = React82.useState(-1);
25410
25252
  const containerRef = React82.useRef(null);
@@ -25416,7 +25258,7 @@ function SearchInput({
25416
25258
  textMeasureRef,
25417
25259
  badgeRef,
25418
25260
  inputRef
25419
- } = _chunkWX7PT5C7cjs.useAutoLimitTags.call(void 0, {
25261
+ } = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
25420
25262
  count: filterChips.length,
25421
25263
  limitTags,
25422
25264
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -25874,7 +25716,7 @@ function TagSearchInput({
25874
25716
  textMeasureRef,
25875
25717
  badgeRef,
25876
25718
  inputRef
25877
- } = _chunkWX7PT5C7cjs.useAutoLimitTags.call(void 0, {
25719
+ } = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
25878
25720
  count: tags.length,
25879
25721
  limitTags,
25880
25722
  placeholder: currentPlaceholder
@@ -29903,7 +29745,7 @@ function PlatformFilterComponent({
29903
29745
  variant: selectedPlatform === platform.value ? "accent" : "outline",
29904
29746
  size,
29905
29747
  onClick: () => onPlatformChange(platform.value),
29906
- leftIcon: showIcons ? _chunkWX7PT5C7cjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29748
+ leftIcon: showIcons ? _chunkALW3D72Ocjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29907
29749
  className: "text-h3",
29908
29750
  children: platform.label
29909
29751
  },
@@ -32664,7 +32506,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32664
32506
  };
32665
32507
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32666
32508
  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: [
32667
- /* @__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, _chunkWX7PT5C7cjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32509
+ /* @__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, _chunkALW3D72Ocjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32668
32510
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
32669
32511
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", children: policy.name }),
32670
32512
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -32873,7 +32715,7 @@ function WaitlistForm({
32873
32715
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
32874
32716
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
32875
32717
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
32876
- const { toast } = _chunkWX7PT5C7cjs.useToast.call(void 0, );
32718
+ const { toast } = _chunkALW3D72Ocjs.useToast.call(void 0, );
32877
32719
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
32878
32720
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
32879
32721
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -33459,7 +33301,7 @@ function EmptyState3() {
33459
33301
  // src/components/features/board/use-board-collapse.ts
33460
33302
 
33461
33303
  function useBoardCollapse(storageKey) {
33462
- const [persisted, setPersisted] = _chunkWX7PT5C7cjs.useLocalStorage.call(void 0,
33304
+ const [persisted, setPersisted] = _chunkALW3D72Ocjs.useLocalStorage.call(void 0,
33463
33305
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
33464
33306
  {}
33465
33307
  );
@@ -34343,6 +34185,5 @@ function canonicalize(status) {
34343
34185
 
34344
34186
 
34345
34187
 
34346
-
34347
- 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.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; 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.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; 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.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.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageListLoader = ChatMessageListLoader; exports.useDelayedFlag = useDelayedFlag; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; 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.CONNECTION_STATUS = CONNECTION_STATUS; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; 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.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; 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.VideoPlayer = VideoPlayer; 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.YouTubeEmbed = YouTubeEmbed; exports.extractYouTubeId = extractYouTubeId; exports.YouTubeLinkParser = YouTubeLinkParser; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; 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.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; 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.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; 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.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.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; 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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketKnowledgeBaseList = TicketKnowledgeBaseList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
34348
- //# sourceMappingURL=chunk-C6ZMI4UB.cjs.map
34188
+ 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.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; 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.formatReleaseDate = formatReleaseDate; exports.formatRelativeTime = formatRelativeTime; exports.getDynamicIcon = getDynamicIcon; 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.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.ApprovalRequestMessage = ApprovalRequestMessage; exports.PulseDots = PulseDots; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageListLoader = ChatMessageListLoader; exports.useDelayedFlag = useDelayedFlag; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; 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.CONNECTION_STATUS = CONNECTION_STATUS; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; 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.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OrganizationIcon = OrganizationIcon; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformBadge = PlatformBadge; 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.VideoPlayer = VideoPlayer; 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.YouTubeEmbed = YouTubeEmbed; exports.extractYouTubeId = extractYouTubeId; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; 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.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState2; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; 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.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; 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.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.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; 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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketKnowledgeBaseList = TicketKnowledgeBaseList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
34189
+ //# sourceMappingURL=chunk-L4T24AN4.cjs.map