@flamingo-stack/openframe-frontend-core 0.0.187 → 0.0.188

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 (87) hide show
  1. package/dist/{chunk-FMWHOUFE.js → chunk-6XYXWVYY.js} +2 -2
  2. package/dist/{chunk-ALW3D72O.cjs → chunk-HIMEIPED.cjs} +9 -9
  3. package/dist/{chunk-ALW3D72O.cjs.map → chunk-HIMEIPED.cjs.map} +1 -1
  4. package/dist/{chunk-RZ3HHPQH.js → chunk-J2C2TI5Z.js} +2174 -2119
  5. package/dist/chunk-J2C2TI5Z.js.map +1 -0
  6. package/dist/{chunk-TMD5LDX4.cjs → chunk-VJTFBYVG.cjs} +57 -2
  7. package/dist/{chunk-TMD5LDX4.cjs.map → chunk-VJTFBYVG.cjs.map} +1 -1
  8. package/dist/{chunk-EUTOT74J.cjs → chunk-W5AWCFKE.cjs} +762 -760
  9. package/dist/chunk-W5AWCFKE.cjs.map +1 -0
  10. package/dist/{chunk-M36UJN3T.js → chunk-YOMHP4V3.js} +4091 -4089
  11. package/dist/chunk-YOMHP4V3.js.map +1 -0
  12. package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
  13. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  14. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  15. package/dist/components/chat/context-compaction-display.d.ts.map +1 -1
  16. package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
  17. package/dist/components/chat/types/api.types.d.ts +2 -6
  18. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  19. package/dist/components/chat/types/message.types.d.ts +20 -0
  20. package/dist/components/chat/types/message.types.d.ts.map +1 -1
  21. package/dist/components/chat/types/network.types.d.ts +2 -0
  22. package/dist/components/chat/types/network.types.d.ts.map +1 -1
  23. package/dist/components/chat/types/processing.types.d.ts +2 -6
  24. package/dist/components/chat/types/processing.types.d.ts.map +1 -1
  25. package/dist/components/chat/utils/chunk-parser.d.ts.map +1 -1
  26. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +2 -6
  27. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  28. package/dist/components/chat/utils/message-segment-accumulator.d.ts +2 -6
  29. package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
  30. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  31. package/dist/components/chat/utils/tool-call-helpers.d.ts +21 -2
  32. package/dist/components/chat/utils/tool-call-helpers.d.ts.map +1 -1
  33. package/dist/components/features/index.cjs +4 -4
  34. package/dist/components/features/index.js +3 -3
  35. package/dist/components/icons-v2-generated/index.cjs +4 -2
  36. package/dist/components/icons-v2-generated/index.cjs.map +1 -1
  37. package/dist/components/icons-v2-generated/index.d.ts +1 -0
  38. package/dist/components/icons-v2-generated/index.d.ts.map +1 -1
  39. package/dist/components/icons-v2-generated/index.js +3 -1
  40. package/dist/components/icons-v2-generated/loaders/dots-loader-icon.d.ts +8 -0
  41. package/dist/components/icons-v2-generated/loaders/dots-loader-icon.d.ts.map +1 -0
  42. package/dist/components/icons-v2-generated/loaders/index.d.ts +2 -0
  43. package/dist/components/icons-v2-generated/loaders/index.d.ts.map +1 -0
  44. package/dist/components/index.cjs +4 -6
  45. package/dist/components/index.cjs.map +1 -1
  46. package/dist/components/index.js +3 -5
  47. package/dist/components/navigation/index.cjs +4 -4
  48. package/dist/components/navigation/index.js +3 -3
  49. package/dist/components/ui/index.cjs +4 -6
  50. package/dist/components/ui/index.cjs.map +1 -1
  51. package/dist/components/ui/index.d.ts +0 -1
  52. package/dist/components/ui/index.d.ts.map +1 -1
  53. package/dist/components/ui/index.js +3 -5
  54. package/dist/hooks/index.cjs +3 -3
  55. package/dist/hooks/index.js +2 -2
  56. package/dist/index.cjs +4 -6
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.js +3 -5
  59. package/package.json +1 -1
  60. package/src/components/chat/approval-batch-message.tsx +4 -5
  61. package/src/components/chat/chat-message-enhanced.tsx +0 -37
  62. package/src/components/chat/chat-message-list.tsx +57 -0
  63. package/src/components/chat/context-compaction-display.tsx +2 -3
  64. package/src/components/chat/thinking-display.tsx +2 -2
  65. package/src/components/chat/tool-execution-display.tsx +14 -11
  66. package/src/components/chat/types/api.types.ts +2 -2
  67. package/src/components/chat/types/message.types.ts +21 -0
  68. package/src/components/chat/types/network.types.ts +2 -0
  69. package/src/components/chat/types/processing.types.ts +2 -6
  70. package/src/components/chat/utils/chunk-parser.ts +2 -0
  71. package/src/components/chat/utils/extract-incomplete-message-state.ts +4 -2
  72. package/src/components/chat/utils/message-segment-accumulator.ts +11 -2
  73. package/src/components/chat/utils/process-historical-messages.ts +2 -0
  74. package/src/components/chat/utils/tool-call-helpers.ts +97 -14
  75. package/src/components/icons-v2/loaders/dots-loader.svg +1 -0
  76. package/src/components/icons-v2-generated/index.ts +1 -0
  77. package/src/components/icons-v2-generated/loaders/dots-loader-icon.tsx +53 -0
  78. package/src/components/icons-v2-generated/loaders/index.ts +1 -0
  79. package/src/components/ui/index.ts +0 -2
  80. package/src/stories/DotsLoaderIcon.stories.tsx +103 -0
  81. package/dist/chunk-EUTOT74J.cjs.map +0 -1
  82. package/dist/chunk-M36UJN3T.js.map +0 -1
  83. package/dist/chunk-RZ3HHPQH.js.map +0 -1
  84. package/dist/components/ui/pulse-dots.d.ts +0 -7
  85. package/dist/components/ui/pulse-dots.d.ts.map +0 -1
  86. package/src/components/ui/pulse-dots.tsx +0 -56
  87. /package/dist/{chunk-FMWHOUFE.js.map → chunk-6XYXWVYY.js.map} +0 -0
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- var _chunkALW3D72Ocjs = require('./chunk-ALW3D72O.cjs');
19
+ var _chunkHIMEIPEDcjs = require('./chunk-HIMEIPED.cjs');
20
20
 
21
21
 
22
22
 
@@ -126,7 +126,8 @@ var _chunkOFAYLG6Dcjs = require('./chunk-OFAYLG6D.cjs');
126
126
 
127
127
 
128
128
 
129
- var _chunkTMD5LDX4cjs = require('./chunk-TMD5LDX4.cjs');
129
+
130
+ var _chunkVJTFBYVGcjs = require('./chunk-VJTFBYVG.cjs');
130
131
 
131
132
 
132
133
 
@@ -613,7 +614,7 @@ var HiddenTagsPopup = _react.forwardRef.call(void 0, function HiddenTagsPopup2({
613
614
  },
614
615
  className: "shrink-0 text-ods-text-secondary hover:text-ods-text-primary transition-colors",
615
616
  "aria-label": `Remove ${String(item.label)}`,
616
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { size: 20 })
617
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { size: 20 })
617
618
  }
618
619
  )
619
620
  ]
@@ -715,7 +716,7 @@ function Tag({
715
716
  disabled ? "cursor-not-allowed" : "hover:opacity-100"
716
717
  ),
717
718
  "aria-label": "Remove",
718
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "size-4" })
719
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "size-4" })
719
720
  }
720
721
  )
721
722
  ]
@@ -783,7 +784,7 @@ function AutocompleteInner(props, ref) {
783
784
  }, [valueArray, options]);
784
785
  const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
785
786
  const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
786
- const autoLimitTags = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
787
+ const autoLimitTags = _chunkHIMEIPEDcjs.useAutoLimitTags.call(void 0, {
787
788
  count: multiple ? selectedOptions.length : 0,
788
789
  limitTags: multiple ? limitTagsProp : 0,
789
790
  placeholder: inputPlaceholder
@@ -1037,7 +1038,7 @@ function AutocompleteInner(props, ref) {
1037
1038
  onClick: handleClearAll,
1038
1039
  className: "flex items-center justify-center hover:opacity-70 transition-opacity",
1039
1040
  "aria-label": "Clear all",
1040
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "text-ods-text-secondary size-4 md:size-6" })
1041
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "text-ods-text-secondary size-4 md:size-6" })
1041
1042
  }
1042
1043
  ),
1043
1044
  loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1049,7 +1050,7 @@ function AutocompleteInner(props, ref) {
1049
1050
  )
1050
1051
  }
1051
1052
  ) : showChevron && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1052
- _chunkTMD5LDX4cjs.Chevron02DownIcon,
1053
+ _chunkVJTFBYVGcjs.Chevron02DownIcon,
1053
1054
  {
1054
1055
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
1055
1056
  "transition-all duration-200 size-4 md:size-6",
@@ -1126,7 +1127,7 @@ function AutocompleteInner(props, ref) {
1126
1127
  onMouseEnter: () => setHighlightedIndex(index),
1127
1128
  children: renderOption ? renderOption(option, isSelected) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between w-full min-w-0", children: [
1128
1129
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: option.label }),
1129
- isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { className: "text-ods-accent", size: 20 })
1130
+ isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
1130
1131
  ] })
1131
1132
  },
1132
1133
  String(option.value)
@@ -1442,7 +1443,7 @@ var SelectTrigger = React6.forwardRef(({ className, children, invalid, label, er
1442
1443
  ...props,
1443
1444
  children: [
1444
1445
  children,
1445
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02DownIcon, { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
1446
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02DownIcon, { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
1446
1447
  "shrink-0 text-ods-text-secondary transition-all duration-200 group-data-[state=open]:rotate-180",
1447
1448
  isInvalid ? "text-ods-error" : "group-data-[state=open]:text-ods-accent"
1448
1449
  ), size: 24 }) })
@@ -1528,7 +1529,7 @@ var SelectItem = React6.forwardRef(({ className, children, ...props }, ref) => /
1528
1529
  ...props,
1529
1530
  children: [
1530
1531
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemText, { children }),
1531
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { className: "text-ods-accent", size: 20 }) })
1532
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { className: "text-ods-accent", size: 20 }) })
1532
1533
  ]
1533
1534
  }
1534
1535
  ));
@@ -2730,7 +2731,7 @@ function toToolLabel(input) {
2730
2731
  if (!input) return "";
2731
2732
  const toolType = normalizeToolType(input);
2732
2733
  if (toolType) {
2733
- return _chunkALW3D72Ocjs.toolLabels[toolType];
2734
+ return _chunkHIMEIPEDcjs.toolLabels[toolType];
2734
2735
  }
2735
2736
  return input;
2736
2737
  }
@@ -2741,7 +2742,7 @@ function getToolTypeAliases(toolType) {
2741
2742
  return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
2742
2743
  }
2743
2744
  function getToolLabel(toolType) {
2744
- return _chunkALW3D72Ocjs.toolLabels[toolType] || toolType;
2745
+ return _chunkHIMEIPEDcjs.toolLabels[toolType] || toolType;
2745
2746
  }
2746
2747
 
2747
2748
  // src/types/shell.types.ts
@@ -2755,10 +2756,10 @@ var ShellTypeValues = {
2755
2756
  SHELL: "SHELL"
2756
2757
  };
2757
2758
  var SHELL_TYPES = [
2758
- { id: ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkTMD5LDX4cjs.PowershellLogoIcon },
2759
+ { id: ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkVJTFBYVGcjs.PowershellLogoIcon },
2759
2760
  { id: ShellTypeValues.CMD, label: "Batch", value: "cmd", icon: _chunkEWIC26TWcjs.CmdIcon },
2760
2761
  { id: ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkEWIC26TWcjs.BashIcon },
2761
- { id: ShellTypeValues.PYTHON, label: "Python", value: "python", icon: _chunkTMD5LDX4cjs.PythonLogoIcon },
2762
+ { id: ShellTypeValues.PYTHON, label: "Python", value: "python", icon: _chunkVJTFBYVGcjs.PythonLogoIcon },
2762
2763
  { id: ShellTypeValues.NUSHELL, label: "Nu", value: "nushell", icon: _chunkEWIC26TWcjs.NushellIcon },
2763
2764
  { id: ShellTypeValues.DENO, label: "Deno", value: "deno", icon: _chunkEWIC26TWcjs.DenoIcon },
2764
2765
  { id: ShellTypeValues.SHELL, label: "Shell", value: "shell", icon: _chunkEWIC26TWcjs.ShellIcon }
@@ -2797,7 +2798,7 @@ var OS_TYPES = [
2797
2798
  id: OSTypeValues.MACOS,
2798
2799
  label: "macOS",
2799
2800
  value: OSTypeValues.MACOS,
2800
- icon: _chunkTMD5LDX4cjs.AppleLogoIcon,
2801
+ icon: _chunkVJTFBYVGcjs.AppleLogoIcon,
2801
2802
  platformId: "darwin",
2802
2803
  aliases: ["darwin", "macos", "mac os", "osx", "os x", "mac"]
2803
2804
  // Put more specific ones first, 'mac' last to avoid false matches
@@ -2806,7 +2807,7 @@ var OS_TYPES = [
2806
2807
  id: OSTypeValues.WINDOWS,
2807
2808
  label: "Windows",
2808
2809
  value: OSTypeValues.WINDOWS,
2809
- icon: _chunkTMD5LDX4cjs.WindowsLogoIcon,
2810
+ icon: _chunkVJTFBYVGcjs.WindowsLogoIcon,
2810
2811
  platformId: "windows",
2811
2812
  aliases: ["windows", "win32", "win64", "win"]
2812
2813
  // 'win' last since it's shortest
@@ -2815,7 +2816,7 @@ var OS_TYPES = [
2815
2816
  id: OSTypeValues.LINUX,
2816
2817
  label: "Linux",
2817
2818
  value: OSTypeValues.LINUX,
2818
- icon: _chunkTMD5LDX4cjs.LinuxLogoIcon,
2819
+ icon: _chunkVJTFBYVGcjs.LinuxLogoIcon,
2819
2820
  platformId: "linux",
2820
2821
  aliases: ["linux", "ubuntu", "debian", "centos", "redhat", "fedora", "pop", "pop!_os", "arch", "manjaro"]
2821
2822
  }
@@ -3093,68 +3094,12 @@ _chunkBJTOSUT4cjs.init_button2.call(void 0, );
3093
3094
 
3094
3095
 
3095
3096
 
3096
- // src/components/ui/pulse-dots.tsx
3097
- _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
3098
-
3099
-
3100
- var dotAnimation = `
3101
- @keyframes pulseDot {
3102
- 0%, 80%, 100% {
3103
- transform: scale(1);
3104
- opacity: 0.7;
3105
- }
3106
- 40% {
3107
- transform: scale(1.5);
3108
- opacity: 1;
3109
- }
3110
- }
3111
- `;
3112
- var PulseDots = _react.forwardRef.call(void 0,
3113
- ({ className, size = "sm", dotClassName, ...props }, ref) => {
3114
- const dotSize = size === "sm" ? "w-1 h-1" : "w-1.5 h-1.5";
3115
- const containerHeight = size === "sm" ? "h-4" : "h-6";
3116
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3117
- "div",
3118
- {
3119
- ref,
3120
- className: _chunkOFAYLG6Dcjs.cn.call(void 0, "inline-flex items-center gap-0.5", containerHeight, className),
3121
- ...props,
3122
- children: [
3123
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: dotAnimation } }),
3124
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3125
- "div",
3126
- {
3127
- className: _chunkOFAYLG6Dcjs.cn.call(void 0, dotSize, "rounded-full", dotClassName || "bg-ods-text-secondary"),
3128
- style: { animation: "pulseDot 1.4s ease-in-out infinite", animationDelay: "0ms" }
3129
- }
3130
- ),
3131
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3132
- "div",
3133
- {
3134
- className: _chunkOFAYLG6Dcjs.cn.call(void 0, dotSize, "rounded-full", dotClassName || "bg-ods-text-secondary"),
3135
- style: { animation: "pulseDot 1.4s ease-in-out infinite", animationDelay: "200ms" }
3136
- }
3137
- ),
3138
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3139
- "div",
3140
- {
3141
- className: _chunkOFAYLG6Dcjs.cn.call(void 0, dotSize, "rounded-full", dotClassName || "bg-ods-text-secondary"),
3142
- style: { animation: "pulseDot 1.4s ease-in-out infinite", animationDelay: "400ms" }
3143
- }
3144
- )
3145
- ]
3146
- }
3147
- );
3148
- }
3149
- );
3150
- PulseDots.displayName = "PulseDots";
3151
-
3152
3097
  // src/components/chat/expand-chevron.tsx
3153
3098
  _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
3154
3099
 
3155
3100
  function ExpandChevron({ expanded, className }) {
3156
3101
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3157
- _chunkTMD5LDX4cjs.Chevron02DownIcon,
3102
+ _chunkVJTFBYVGcjs.Chevron02DownIcon,
3158
3103
  {
3159
3104
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
3160
3105
  "w-4 h-4 text-ods-text-secondary shrink-0 transition-transform duration-200",
@@ -3207,18 +3152,62 @@ _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
3207
3152
 
3208
3153
  // src/components/chat/utils/tool-call-helpers.ts
3209
3154
  var COMMAND_BODY_ARG_KEYS = ["command", "query", "script", "scriptContent", "code"];
3210
- function getCommandText(call) {
3211
- const args = call.toolCallArguments;
3155
+ function getToolCallTitle(opts) {
3156
+ const { args, title, name } = opts;
3212
3157
  if (args && typeof args === "object") {
3213
- const a = args;
3214
3158
  for (const key of COMMAND_BODY_ARG_KEYS) {
3215
- const candidate = a[key];
3159
+ const candidate = args[key];
3216
3160
  if (typeof candidate === "string" && candidate.trim()) return candidate;
3217
3161
  }
3218
3162
  }
3219
- return call.toolTitle || call.toolName || "Tool call";
3163
+ return title || name || "Tool call";
3164
+ }
3165
+ function getCommandText(call) {
3166
+ return getToolCallTitle({
3167
+ args: call.toolCallArguments,
3168
+ title: call.toolTitle,
3169
+ name: call.toolName
3170
+ });
3220
3171
  }
3221
3172
  var INLINE_STRING_MAX = 80;
3173
+ function expandJson(value, indent) {
3174
+ const pad = (n) => " ".repeat(n);
3175
+ if (value === null) return "null";
3176
+ const t = typeof value;
3177
+ if (t === "number" || t === "boolean" || t === "bigint") return String(value);
3178
+ if (t === "string") {
3179
+ const s = value.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
3180
+ if (!s.includes("\n")) return JSON.stringify(s);
3181
+ return s.replace(/^\n+/, "").replace(/\n+$/, "").split("\n").map((line) => pad(indent) + line).join("\n");
3182
+ }
3183
+ if (Array.isArray(value)) {
3184
+ if (value.length === 0) return "[]";
3185
+ const items = value.map(
3186
+ (v) => typeof v === "string" && /[\r\n]/.test(v) ? expandJson(v, indent + 1) : pad(indent + 1) + expandJson(v, indent + 1)
3187
+ );
3188
+ return "[\n" + items.join(",\n") + "\n" + pad(indent) + "]";
3189
+ }
3190
+ if (t === "object") {
3191
+ const entries = Object.entries(value);
3192
+ if (entries.length === 0) return "{}";
3193
+ const items = entries.map(([k, v]) => {
3194
+ const key = JSON.stringify(k);
3195
+ if (typeof v === "string" && /[\r\n]/.test(v)) {
3196
+ return pad(indent + 1) + key + ":\n" + expandJson(v, indent + 2);
3197
+ }
3198
+ return pad(indent + 1) + key + ": " + expandJson(v, indent + 1);
3199
+ });
3200
+ return "{\n" + items.join(",\n") + "\n" + pad(indent) + "}";
3201
+ }
3202
+ return JSON.stringify(value);
3203
+ }
3204
+ function expandedJsonStringify(value) {
3205
+ try {
3206
+ return expandJson(value, 0);
3207
+ } catch (e3) {
3208
+ return String(value);
3209
+ }
3210
+ }
3222
3211
  function formatToolArgValue(value) {
3223
3212
  if (value === null || value === void 0) return { kind: "inline", text: "" };
3224
3213
  if (typeof value === "object") {
@@ -3228,8 +3217,8 @@ function formatToolArgValue(value) {
3228
3217
  const trimmed = value.trim();
3229
3218
  if (trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]")) {
3230
3219
  try {
3231
- return { kind: "block", text: JSON.stringify(JSON.parse(trimmed), null, 2), language: "json" };
3232
- } catch (e3) {
3220
+ return { kind: "block", text: expandedJsonStringify(JSON.parse(trimmed)), language: "json" };
3221
+ } catch (e4) {
3233
3222
  }
3234
3223
  }
3235
3224
  if (value.includes("\n") || value.length > INLINE_STRING_MAX) {
@@ -3240,11 +3229,7 @@ function formatToolArgValue(value) {
3240
3229
  return { kind: "inline", text: String(value) };
3241
3230
  }
3242
3231
  function safeStringify(value) {
3243
- try {
3244
- return JSON.stringify(value, null, 2);
3245
- } catch (e4) {
3246
- return String(value);
3247
- }
3232
+ return expandedJsonStringify(value);
3248
3233
  }
3249
3234
  function formatToolResult(value) {
3250
3235
  if (typeof value !== "string") return { kind: "inline", text: "" };
@@ -3253,7 +3238,7 @@ function formatToolResult(value) {
3253
3238
  const trimmed = body.trim();
3254
3239
  if (trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]")) {
3255
3240
  try {
3256
- return { kind: "block", text: JSON.stringify(JSON.parse(trimmed), null, 2), language: "json" };
3241
+ return { kind: "block", text: expandedJsonStringify(JSON.parse(trimmed)), language: "json" };
3257
3242
  } catch (e5) {
3258
3243
  }
3259
3244
  }
@@ -3312,9 +3297,9 @@ function ExecutionStatusIcon({
3312
3297
  execution
3313
3298
  }) {
3314
3299
  if (batchStatus !== "approved") return null;
3315
- if (!execution || execution.status === "executing") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PulseDots, { size: "sm" });
3316
- if (execution.success === false) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
3317
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckCircleIcon, { className: "w-4 h-4 text-ods-success" });
3300
+ if (!execution || execution.status === "executing") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" });
3301
+ if (execution.success === false) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
3302
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckCircleIcon, { className: "w-4 h-4 text-ods-success" });
3318
3303
  }
3319
3304
  function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
3320
3305
  const command = getCommandText(call);
@@ -3331,7 +3316,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution }) {
3331
3316
  onClick: onToggle,
3332
3317
  className: "flex gap-2 items-start w-full p-3 cursor-pointer text-left",
3333
3318
  children: [
3334
- /* @__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 }) }),
3319
+ /* @__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, _chunkHIMEIPEDcjs.ToolIcon, { toolType, size: 16 }) }),
3335
3320
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3336
3321
  "div",
3337
3322
  {
@@ -3466,7 +3451,7 @@ var ContextCompactionDisplay = _react.forwardRef.call(void 0,
3466
3451
  ...props,
3467
3452
  children: [
3468
3453
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium text-ods-text-secondary flex-1 min-w-0", children: label }),
3469
- isStarted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PulseDots, { size: "sm" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckCircleIcon, { className: "w-4 h-4 text-ods-success shrink-0" })
3454
+ isStarted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckCircleIcon, { className: "w-4 h-4 text-ods-success shrink-0" })
3470
3455
  ]
3471
3456
  }
3472
3457
  );
@@ -3603,7 +3588,7 @@ var MermaidDiagram = ({ chart }) => {
3603
3588
  }, [chart, mounted]);
3604
3589
  if (error) {
3605
3590
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "error-state bg-ods-card border border-ods-border rounded-lg p-6 my-6", children: [
3606
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.AlertCircleIcon, { className: "w-12 h-12 text-ods-error" }) }),
3591
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-icon flex justify-center mb-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.AlertCircleIcon, { className: "w-12 h-12 text-ods-error" }) }),
3607
3592
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-title text-center font-sans font-semibold text-lg text-ods-error mb-2", children: "Diagram Error" }),
3608
3593
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "error-description text-center font-sans text-sm text-ods-text-secondary mb-4 break-words overflow-hidden max-w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "pre", { className: "whitespace-pre-wrap break-words text-xs", children: error }) }) })
3609
3594
  ] });
@@ -3968,7 +3953,7 @@ var ThinkingDisplay = _react.forwardRef.call(void 0,
3968
3953
  label,
3969
3954
  ":"
3970
3955
  ] }),
3971
- isStreaming && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PulseDots, { size: "sm" })
3956
+ isStreaming && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" })
3972
3957
  ] }),
3973
3958
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-w-0", style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3974
3959
  "div",
@@ -4167,7 +4152,7 @@ var STATUS_CONFIG = {
4167
4152
  RESOLVED: {
4168
4153
  label: "Resolved",
4169
4154
  variant: "outline",
4170
- icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckCircleIcon, { size: 16, color: "var(--ods-attention-green-success)" })
4155
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckCircleIcon, { size: 16, color: "var(--ods-attention-green-success)" })
4171
4156
  },
4172
4157
  ARCHIVED: {
4173
4158
  label: "Archived",
@@ -4292,7 +4277,7 @@ var ChatHeader = React11.forwardRef(
4292
4277
  variant: "transparent",
4293
4278
  size: "icon",
4294
4279
  "aria-label": "Back",
4295
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02LeftIcon, { size: 24, className: "text-ods-text-primary" }),
4280
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { size: 24, className: "text-ods-text-primary" }),
4296
4281
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
4297
4282
  cardClasses,
4298
4283
  "absolute -translate-y-1/2 right-full mr-3 my-6 hover:bg-ods-bg-hover"
@@ -4341,7 +4326,7 @@ var ChatHeader = React11.forwardRef(
4341
4326
  size: "small-legacy",
4342
4327
  "aria-label": "Close",
4343
4328
  className: "text-ods-text-muted hover:text-ods-text-primary hover:bg-ods-bg-hover !p-1.5",
4344
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkIcon, { size: 16 })
4329
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkIcon, { size: 16 })
4345
4330
  }
4346
4331
  ),
4347
4332
  headerActions
@@ -4526,7 +4511,7 @@ var ChatTypingIndicator = React13.forwardRef(
4526
4511
  md: "h-6",
4527
4512
  lg: "h-8"
4528
4513
  };
4529
- const dotAnimation2 = `
4514
+ const dotAnimation = `
4530
4515
  @keyframes dotPulse {
4531
4516
  0%, 80%, 100% {
4532
4517
  transform: scale(1);
@@ -4545,7 +4530,7 @@ var ChatTypingIndicator = React13.forwardRef(
4545
4530
  className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex items-center gap-2", className),
4546
4531
  ...props,
4547
4532
  children: [
4548
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: dotAnimation2 } }),
4533
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: dotAnimation } }),
4549
4534
  showText && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: "Assistant is typing" }),
4550
4535
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
4551
4536
  "inline-flex items-center justify-center gap-1",
@@ -4970,7 +4955,7 @@ var ChatInput = _react.forwardRef.call(void 0,
4970
4955
  placeholder: disabled ? "Connection lost. Waiting to reconnect..." : placeholder,
4971
4956
  disabled: sending || disabled,
4972
4957
  rows: 1,
4973
- endIcon: isStopMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.StopCircleIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Send01Icon, { size: 20 }),
4958
+ endIcon: isStopMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.StopCircleIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Send01Icon, { size: 20 }),
4974
4959
  endIconAsButton: true,
4975
4960
  endIconButtonProps: {
4976
4961
  onClick: isStopMode ? handleStop : handleSubmit,
@@ -4992,91 +4977,6 @@ ChatInput.displayName = "ChatInput";
4992
4977
  _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
4993
4978
 
4994
4979
 
4995
- // src/components/chat/cycling-phrase.tsx
4996
- _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
4997
-
4998
-
4999
- var BLINK_KEYFRAMES = `
5000
- @keyframes cyclingCursorBlink {
5001
- 50% { opacity: 0; }
5002
- }
5003
- `;
5004
- function CyclingPhrase({
5005
- words,
5006
- className,
5007
- charMs = 60,
5008
- holdMs = 4500
5009
- }) {
5010
- const [wordIndex, setWordIndex] = _react.useState.call(void 0, 0);
5011
- const [text, setText] = _react.useState.call(void 0, "");
5012
- const [cursor, setCursor] = _react.useState.call(void 0, 0);
5013
- const [holding, setHolding] = _react.useState.call(void 0, false);
5014
- const placeholder = _react.useMemo.call(void 0,
5015
- () => words.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
5016
- [words]
5017
- );
5018
- _react.useEffect.call(void 0, () => {
5019
- if (words.length === 0) return;
5020
- const target = words[wordIndex];
5021
- let timeoutId;
5022
- if (holding) {
5023
- timeoutId = setTimeout(() => {
5024
- setWordIndex((i) => (i + 1) % words.length);
5025
- setCursor(0);
5026
- setHolding(false);
5027
- }, holdMs);
5028
- return () => clearTimeout(timeoutId);
5029
- }
5030
- const maxLen = Math.max(text.length, target.length);
5031
- if (cursor >= maxLen) {
5032
- if (text !== target) setText(target);
5033
- setHolding(true);
5034
- return;
5035
- }
5036
- timeoutId = setTimeout(() => {
5037
- setText((prev) => {
5038
- if (cursor < target.length) {
5039
- return target.slice(0, cursor + 1) + prev.slice(cursor + 1);
5040
- }
5041
- return prev.slice(0, cursor);
5042
- });
5043
- setCursor((c) => c + 1);
5044
- }, charMs);
5045
- return () => clearTimeout(timeoutId);
5046
- }, [wordIndex, cursor, text, holding, words, charMs, holdMs]);
5047
- if (words.length === 0) return null;
5048
- const before = text.slice(0, cursor);
5049
- const after = text.slice(cursor);
5050
- const cursorBlock = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5051
- "span",
5052
- {
5053
- "aria-hidden": true,
5054
- className: "inline-block bg-current align-baseline",
5055
- style: {
5056
- width: "0.6em",
5057
- height: "1em",
5058
- verticalAlign: "-0.1em",
5059
- marginLeft: "1px",
5060
- marginRight: "1px",
5061
- animation: "cyclingCursorBlink 1s steps(1) infinite"
5062
- }
5063
- }
5064
- );
5065
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "relative inline-block whitespace-nowrap", className), children: [
5066
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: BLINK_KEYFRAMES } }),
5067
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "aria-hidden": true, className: "invisible", children: [
5068
- placeholder,
5069
- "..."
5070
- ] }),
5071
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "absolute inset-0 inline-flex items-baseline", "aria-live": "polite", children: [
5072
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: before }),
5073
- !holding && cursorBlock,
5074
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: after }),
5075
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "..." })
5076
- ] })
5077
- ] });
5078
- }
5079
-
5080
4980
  // src/components/chat/tool-execution-display.tsx
5081
4981
  _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
5082
4982
 
@@ -5089,11 +4989,14 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5089
4989
  const isExecuting = message.type === "EXECUTING_TOOL";
5090
4990
  const isExecuted = message.type === "EXECUTED_TOOL";
5091
4991
  const integratedToolType = message.integratedToolType || "OPENFRAME";
5092
- const previewText = _react.useMemo.call(void 0, () => {
5093
- const command = _nullishCoalesce(_optionalChain([message, 'access', _92 => _92.parameters, 'optionalAccess', _93 => _93.command]), () => ( _optionalChain([message, 'access', _94 => _94.parameters, 'optionalAccess', _95 => _95.query])));
5094
- if (command) return String(command);
5095
- return _nullishCoalesce(message.toolFunction, () => ( ""));
5096
- }, [message.toolFunction, message.parameters]);
4992
+ const previewText = _react.useMemo.call(void 0,
4993
+ () => getToolCallTitle({
4994
+ args: message.parameters,
4995
+ title: message.toolTitle,
4996
+ name: message.toolFunction
4997
+ }),
4998
+ [message.parameters, message.toolTitle, message.toolFunction]
4999
+ );
5097
5000
  const argEntries = _react.useMemo.call(void 0, () => {
5098
5001
  if (!message.parameters || typeof message.parameters !== "object") return [];
5099
5002
  return Object.entries(message.parameters).filter(
@@ -5103,9 +5006,9 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5103
5006
  const hasResult = isExecuted && typeof message.result === "string" && message.result.length > 0;
5104
5007
  const hasBody = argEntries.length > 0 || hasResult || isExecuting;
5105
5008
  const renderStatusIcon = () => {
5106
- if (isExecuting) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PulseDots, { size: "sm" });
5107
- if (isExecuted && message.success === true) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckCircleIcon, { className: "w-4 h-4 text-ods-success" });
5108
- if (isExecuted && message.success === false) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
5009
+ if (isExecuting) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" });
5010
+ if (isExecuted && message.success === true) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckCircleIcon, { className: "w-4 h-4 text-ods-success" });
5011
+ if (isExecuted && message.success === false) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
5109
5012
  return null;
5110
5013
  };
5111
5014
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -5125,7 +5028,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5125
5028
  className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
5126
5029
  onClick: () => setExpanded((prev) => !prev),
5127
5030
  children: [
5128
- /* @__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 }) }),
5031
+ /* @__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, _chunkHIMEIPEDcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
5129
5032
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5130
5033
  "div",
5131
5034
  {
@@ -5133,7 +5036,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5133
5036
  "flex-1 min-w-0 text-sm font-medium leading-5",
5134
5037
  expanded ? "text-ods-text-primary whitespace-pre-wrap break-all" : "text-ods-text-secondary line-clamp-2 max-h-10 break-all"
5135
5038
  ),
5136
- children: expanded ? message.toolFunction || previewText : previewText
5039
+ children: previewText
5137
5040
  }
5138
5041
  ),
5139
5042
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: renderStatusIcon() }),
@@ -5146,7 +5049,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
5146
5049
  hasResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ResultBlock, { result: message.result }),
5147
5050
  isExecuting && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1 items-start w-full", children: [
5148
5051
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary", children: "Result:" }),
5149
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PulseDots, { size: "sm" })
5052
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.DotsLoaderIcon, { size: 16, className: "text-ods-text-secondary" })
5150
5053
  ] })
5151
5054
  ] }) }) })
5152
5055
  ]
@@ -5210,18 +5113,6 @@ function normalizeContent(content) {
5210
5113
  }
5211
5114
  return content;
5212
5115
  }
5213
- var STREAMING_WORDS = [
5214
- "Thinking",
5215
- "Vibing",
5216
- "Mingoing",
5217
- "Strutting",
5218
- "Pondering",
5219
- "Wading",
5220
- "Hatching",
5221
- "Preening",
5222
- "Conjuring",
5223
- "Riffing"
5224
- ];
5225
5116
  var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5226
5117
  ({ className, role, content, name, avatar, isTyping = false, timestamp, showAvatar = true, assistantType, authorType: authorTypeProp, assistantIcon, chatRefs, renderEntityCard, ...props }, ref) => {
5227
5118
  const isUser = role === "user";
@@ -5267,7 +5158,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5267
5158
  const refMatch = refs[key];
5268
5159
  inlineByKey.set(
5269
5160
  key,
5270
- props2.inline != null ? props2.inline : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-medium", children: _nullishCoalesce(_optionalChain([refMatch, 'optionalAccess', _96 => _96.title]), () => ( cardId)) })
5161
+ props2.inline != null ? props2.inline : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-medium", children: _nullishCoalesce(_optionalChain([refMatch, 'optionalAccess', _92 => _92.title]), () => ( cardId)) })
5271
5162
  );
5272
5163
  } else if (rendered != null) {
5273
5164
  inlineByKey.set(key, rendered);
@@ -5285,7 +5176,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5285
5176
  const cardComponentOverrides = _react.useMemo.call(void 0, () => {
5286
5177
  if (!hasMarkerSupport) return void 0;
5287
5178
  const refs = _nullishCoalesce(chatRefs, () => ( {}));
5288
- const inlineByKey = _optionalChain([renderingPlan, 'optionalAccess', _97 => _97.inlineByKey]);
5179
+ const inlineByKey = _optionalChain([renderingPlan, 'optionalAccess', _93 => _93.inlineByKey]);
5289
5180
  return {
5290
5181
  // Override `<a>` to detect `card://` URLs emitted by `remarkCardLinks`.
5291
5182
  // The render result was pre-computed in `renderingPlan` so block-level
@@ -5300,10 +5191,10 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5300
5191
  const cardType = stripped.slice(0, sepIdx);
5301
5192
  const cardId = stripped.slice(sepIdx + 1);
5302
5193
  const key = `${cardType}:${cardId}`;
5303
- const inline = _optionalChain([inlineByKey, 'optionalAccess', _98 => _98.get, 'call', _99 => _99(key)]);
5194
+ const inline = _optionalChain([inlineByKey, 'optionalAccess', _94 => _94.get, 'call', _95 => _95(key)]);
5304
5195
  if (inline != null) return inline;
5305
5196
  const refMatch = refs[key];
5306
- const fallbackTitle = _nullishCoalesce(_nullishCoalesce(_optionalChain([refMatch, 'optionalAccess', _100 => _100.title]), () => ( _optionalChain([Object, 'access', _101 => _101.values, 'call', _102 => _102(refs), 'access', _103 => _103.find, 'call', _104 => _104((r) => r.type === cardType), 'optionalAccess', _105 => _105.title]))), () => ( cardId));
5197
+ const fallbackTitle = _nullishCoalesce(_nullishCoalesce(_optionalChain([refMatch, 'optionalAccess', _96 => _96.title]), () => ( _optionalChain([Object, 'access', _97 => _97.values, 'call', _98 => _98(refs), 'access', _99 => _99.find, 'call', _100 => _100((r) => r.type === cardType), 'optionalAccess', _101 => _101.title]))), () => ( cardId));
5307
5198
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary", children: fallbackTitle });
5308
5199
  }
5309
5200
  }
@@ -5339,8 +5230,6 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5339
5230
  };
5340
5231
  const avatarProps = getAvatarProps();
5341
5232
  const isSystem = authorType === "system";
5342
- const lastSegment = segments[segments.length - 1];
5343
- const isPausedOnApproval = !!lastSegment && (lastSegment.type === "approval_request" || lastSegment.type === "approval_batch") && (lastSegment.status === void 0 || lastSegment.status === "pending");
5344
5233
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
5345
5234
  "div",
5346
5235
  {
@@ -5369,111 +5258,99 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5369
5258
  ] }),
5370
5259
  timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-sans text-heading-5 font-medium text-ods-text-secondary shrink-0 whitespace-nowrap", children: timestamp.toLocaleTimeString([], { hour: "numeric", minute: "2-digit" }) })
5371
5260
  ] }),
5372
- (!isSystem || segments.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
5373
- segments.map((segment, index) => {
5374
- if (segment.type === "text") {
5375
- const parts = _optionalChain([renderingPlan, 'optionalAccess', _106 => _106.partsBySegment, 'access', _107 => _107.get, 'call', _108 => _108(index)]);
5376
- const wrapperClass = _chunkOFAYLG6Dcjs.cn.call(void 0,
5377
- "min-w-0 w-full break-words text-h4",
5378
- isError ? "text-ods-error" : "text-ods-text-primary"
5379
- );
5380
- if (!parts || parts.length === 0) {
5381
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5261
+ (!isSystem || segments.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-2", children: segments.map((segment, index) => {
5262
+ if (segment.type === "text") {
5263
+ const parts = _optionalChain([renderingPlan, 'optionalAccess', _102 => _102.partsBySegment, 'access', _103 => _103.get, 'call', _104 => _104(index)]);
5264
+ const wrapperClass = _chunkOFAYLG6Dcjs.cn.call(void 0,
5265
+ "min-w-0 w-full break-words text-h4",
5266
+ isError ? "text-ods-error" : "text-ods-text-primary"
5267
+ );
5268
+ if (!parts || parts.length === 0) {
5269
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5270
+ SimpleMarkdownRenderer,
5271
+ {
5272
+ content: segment.text,
5273
+ textSize: "compact",
5274
+ additionalRemarkPlugins: cardRemarkPlugins,
5275
+ componentOverrides: cardComponentOverrides
5276
+ }
5277
+ ) }, index);
5278
+ }
5279
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, children: parts.map((part, pIdx) => {
5280
+ if (part.kind === "text") {
5281
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5382
5282
  SimpleMarkdownRenderer,
5383
5283
  {
5384
- content: segment.text,
5284
+ content: part.text,
5385
5285
  textSize: "compact",
5386
5286
  additionalRemarkPlugins: cardRemarkPlugins,
5387
5287
  componentOverrides: cardComponentOverrides
5388
- }
5389
- ) }, index);
5288
+ },
5289
+ `t-${pIdx}`
5290
+ );
5390
5291
  }
5391
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, children: parts.map((part, pIdx) => {
5392
- if (part.kind === "text") {
5393
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5394
- SimpleMarkdownRenderer,
5395
- {
5396
- content: part.text,
5397
- textSize: "compact",
5398
- additionalRemarkPlugins: cardRemarkPlugins,
5399
- componentOverrides: cardComponentOverrides
5400
- },
5401
- `t-${pIdx}`
5402
- );
5403
- }
5404
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "my-3", children: part.node }, `b-${part.key}`);
5405
- }) }, index);
5406
- } else if (segment.type === "tool_execution") {
5407
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5408
- ToolExecutionDisplay,
5409
- {
5410
- message: segment.data
5411
- },
5412
- index
5413
- );
5414
- } else if (segment.type === "approval_request") {
5415
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5416
- ApprovalRequestMessage,
5417
- {
5418
- data: segment.data,
5419
- status: segment.status,
5420
- onApprove: segment.onApprove,
5421
- onReject: segment.onReject
5422
- },
5423
- index
5424
- );
5425
- } else if (segment.type === "approval_batch") {
5426
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5427
- ApprovalBatchMessage,
5428
- {
5429
- data: segment.data,
5430
- status: segment.status,
5431
- onApprove: segment.onApprove,
5432
- onReject: segment.onReject
5433
- },
5434
- index
5435
- );
5436
- } else if (segment.type === "error") {
5437
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5438
- ErrorMessageDisplay,
5439
- {
5440
- title: segment.title,
5441
- details: segment.details
5442
- },
5443
- index
5444
- );
5445
- } else if (segment.type === "context_compaction") {
5446
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5447
- ContextCompactionDisplay,
5448
- {
5449
- status: segment.status
5450
- },
5451
- index
5452
- );
5453
- } else if (segment.type === "thinking") {
5454
- const isStreaming = index === segments.length - 1 && isTyping;
5455
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5456
- ThinkingDisplay,
5457
- {
5458
- text: segment.text,
5459
- isStreaming
5460
- },
5461
- index
5462
- );
5463
- }
5464
- return null;
5465
- }),
5466
- isTyping && !isPausedOnApproval && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
5467
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatTypingIndicator, {}),
5468
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5469
- CyclingPhrase,
5292
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "my-3", children: part.node }, `b-${part.key}`);
5293
+ }) }, index);
5294
+ } else if (segment.type === "tool_execution") {
5295
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5296
+ ToolExecutionDisplay,
5470
5297
  {
5471
- words: STREAMING_WORDS,
5472
- className: "text-ods-text-secondary text-body-sm"
5473
- }
5474
- )
5475
- ] })
5476
- ] })
5298
+ message: segment.data
5299
+ },
5300
+ index
5301
+ );
5302
+ } else if (segment.type === "approval_request") {
5303
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5304
+ ApprovalRequestMessage,
5305
+ {
5306
+ data: segment.data,
5307
+ status: segment.status,
5308
+ onApprove: segment.onApprove,
5309
+ onReject: segment.onReject
5310
+ },
5311
+ index
5312
+ );
5313
+ } else if (segment.type === "approval_batch") {
5314
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5315
+ ApprovalBatchMessage,
5316
+ {
5317
+ data: segment.data,
5318
+ status: segment.status,
5319
+ onApprove: segment.onApprove,
5320
+ onReject: segment.onReject
5321
+ },
5322
+ index
5323
+ );
5324
+ } else if (segment.type === "error") {
5325
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5326
+ ErrorMessageDisplay,
5327
+ {
5328
+ title: segment.title,
5329
+ details: segment.details
5330
+ },
5331
+ index
5332
+ );
5333
+ } else if (segment.type === "context_compaction") {
5334
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5335
+ ContextCompactionDisplay,
5336
+ {
5337
+ status: segment.status
5338
+ },
5339
+ index
5340
+ );
5341
+ } else if (segment.type === "thinking") {
5342
+ const isStreaming = index === segments.length - 1 && isTyping;
5343
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5344
+ ThinkingDisplay,
5345
+ {
5346
+ text: segment.text,
5347
+ isStreaming
5348
+ },
5349
+ index
5350
+ );
5351
+ }
5352
+ return null;
5353
+ }) })
5477
5354
  ] })
5478
5355
  ]
5479
5356
  }
@@ -5482,7 +5359,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5482
5359
  );
5483
5360
  ChatMessageEnhanced.displayName = "ChatMessageEnhanced";
5484
5361
  var MemoizedChatMessageEnhanced = _react.memo.call(void 0, ChatMessageEnhanced, (prevProps, nextProps) => {
5485
- return prevProps.role === nextProps.role && prevProps.content === nextProps.content && prevProps.name === nextProps.name && prevProps.avatar === nextProps.avatar && prevProps.isTyping === nextProps.isTyping && _optionalChain([prevProps, 'access', _109 => _109.timestamp, 'optionalAccess', _110 => _110.getTime, 'call', _111 => _111()]) === _optionalChain([nextProps, 'access', _112 => _112.timestamp, 'optionalAccess', _113 => _113.getTime, 'call', _114 => _114()]) && prevProps.showAvatar === nextProps.showAvatar && prevProps.assistantType === nextProps.assistantType && prevProps.authorType === nextProps.authorType && prevProps.assistantIcon === nextProps.assistantIcon && prevProps.className === nextProps.className && // Reference equality on chatRefs is sufficient — the host's hooks should
5362
+ return prevProps.role === nextProps.role && prevProps.content === nextProps.content && prevProps.name === nextProps.name && prevProps.avatar === nextProps.avatar && prevProps.isTyping === nextProps.isTyping && _optionalChain([prevProps, 'access', _105 => _105.timestamp, 'optionalAccess', _106 => _106.getTime, 'call', _107 => _107()]) === _optionalChain([nextProps, 'access', _108 => _108.timestamp, 'optionalAccess', _109 => _109.getTime, 'call', _110 => _110()]) && prevProps.showAvatar === nextProps.showAvatar && prevProps.assistantType === nextProps.assistantType && prevProps.authorType === nextProps.authorType && prevProps.assistantIcon === nextProps.assistantIcon && prevProps.className === nextProps.className && // Reference equality on chatRefs is sufficient — the host's hooks should
5486
5363
  // re-use the same Record instance per turn; mutations create a new map.
5487
5364
  // Without this check, a parent re-render with a new (but equivalent)
5488
5365
  // refs object would force a full markdown re-render every keystroke.
@@ -5570,8 +5447,105 @@ function ChatMessageListSkeleton({
5570
5447
  ) });
5571
5448
  }
5572
5449
 
5450
+ // src/components/chat/cycling-phrase.tsx
5451
+ _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
5452
+
5453
+
5454
+ var BLINK_KEYFRAMES = `
5455
+ @keyframes cyclingCursorBlink {
5456
+ 50% { opacity: 0; }
5457
+ }
5458
+ `;
5459
+ function CyclingPhrase({
5460
+ words,
5461
+ className,
5462
+ charMs = 60,
5463
+ holdMs = 4500
5464
+ }) {
5465
+ const [wordIndex, setWordIndex] = _react.useState.call(void 0, 0);
5466
+ const [text, setText] = _react.useState.call(void 0, "");
5467
+ const [cursor, setCursor] = _react.useState.call(void 0, 0);
5468
+ const [holding, setHolding] = _react.useState.call(void 0, false);
5469
+ const placeholder = _react.useMemo.call(void 0,
5470
+ () => words.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
5471
+ [words]
5472
+ );
5473
+ _react.useEffect.call(void 0, () => {
5474
+ if (words.length === 0) return;
5475
+ const target = words[wordIndex];
5476
+ let timeoutId;
5477
+ if (holding) {
5478
+ timeoutId = setTimeout(() => {
5479
+ setWordIndex((i) => (i + 1) % words.length);
5480
+ setCursor(0);
5481
+ setHolding(false);
5482
+ }, holdMs);
5483
+ return () => clearTimeout(timeoutId);
5484
+ }
5485
+ const maxLen = Math.max(text.length, target.length);
5486
+ if (cursor >= maxLen) {
5487
+ if (text !== target) setText(target);
5488
+ setHolding(true);
5489
+ return;
5490
+ }
5491
+ timeoutId = setTimeout(() => {
5492
+ setText((prev) => {
5493
+ if (cursor < target.length) {
5494
+ return target.slice(0, cursor + 1) + prev.slice(cursor + 1);
5495
+ }
5496
+ return prev.slice(0, cursor);
5497
+ });
5498
+ setCursor((c) => c + 1);
5499
+ }, charMs);
5500
+ return () => clearTimeout(timeoutId);
5501
+ }, [wordIndex, cursor, text, holding, words, charMs, holdMs]);
5502
+ if (words.length === 0) return null;
5503
+ const before = text.slice(0, cursor);
5504
+ const after = text.slice(cursor);
5505
+ const cursorBlock = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5506
+ "span",
5507
+ {
5508
+ "aria-hidden": true,
5509
+ className: "inline-block bg-current align-baseline",
5510
+ style: {
5511
+ width: "0.6em",
5512
+ height: "1em",
5513
+ verticalAlign: "-0.1em",
5514
+ marginLeft: "1px",
5515
+ marginRight: "1px",
5516
+ animation: "cyclingCursorBlink 1s steps(1) infinite"
5517
+ }
5518
+ }
5519
+ );
5520
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "relative inline-block whitespace-nowrap", className), children: [
5521
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "style", { dangerouslySetInnerHTML: { __html: BLINK_KEYFRAMES } }),
5522
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { "aria-hidden": true, className: "invisible", children: [
5523
+ placeholder,
5524
+ "..."
5525
+ ] }),
5526
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "absolute inset-0 inline-flex items-baseline", "aria-live": "polite", children: [
5527
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: before }),
5528
+ !holding && cursorBlock,
5529
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: after }),
5530
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "..." })
5531
+ ] })
5532
+ ] });
5533
+ }
5534
+
5573
5535
  // src/components/chat/chat-message-list.tsx
5574
5536
 
5537
+ var STREAMING_WORDS = [
5538
+ "Thinking",
5539
+ "Vibing",
5540
+ "Mingoing",
5541
+ "Strutting",
5542
+ "Pondering",
5543
+ "Wading",
5544
+ "Hatching",
5545
+ "Preening",
5546
+ "Conjuring",
5547
+ "Riffing"
5548
+ ];
5575
5549
  var ChatMessageList = _react.forwardRef.call(void 0,
5576
5550
  ({
5577
5551
  className,
@@ -5607,7 +5581,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5607
5581
  const dialogChanged = dialogId !== prevRenderRef.current.dialogId;
5608
5582
  const prevCount = prevRenderRef.current.messageCount;
5609
5583
  const newCount = messages.length;
5610
- const currentLastId = _optionalChain([messages, 'access', _115 => _115[messages.length - 1], 'optionalAccess', _116 => _116.id]);
5584
+ const currentLastId = _optionalChain([messages, 'access', _111 => _111[messages.length - 1], 'optionalAccess', _112 => _112.id]);
5611
5585
  prevRenderRef.current = { dialogId, messageCount: newCount, lastMessageId: currentLastId };
5612
5586
  if (dialogChanged) {
5613
5587
  void scrollToBottom({ animation: "instant", ignoreEscapes: true });
@@ -5631,8 +5605,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5631
5605
  prependRef.current = { firstMessageId: void 0, firstMessageContent: void 0, scrollHeight: 0 };
5632
5606
  return;
5633
5607
  }
5634
- const currentFirstId = _optionalChain([messages, 'access', _117 => _117[0], 'optionalAccess', _118 => _118.id]);
5635
- const currentFirstContent = _optionalChain([messages, 'access', _119 => _119[0], 'optionalAccess', _120 => _120.content]);
5608
+ const currentFirstId = _optionalChain([messages, 'access', _113 => _113[0], 'optionalAccess', _114 => _114.id]);
5609
+ const currentFirstContent = _optionalChain([messages, 'access', _115 => _115[0], 'optionalAccess', _116 => _116.content]);
5636
5610
  const prevFirstId = prependRef.current.firstMessageId;
5637
5611
  const prevHeight = prependRef.current.scrollHeight;
5638
5612
  if (currentFirstId !== prevFirstId) {
@@ -5664,7 +5638,7 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5664
5638
  const entry = entries[0];
5665
5639
  if (!entry) return;
5666
5640
  if (entry.isIntersecting && !isFetchingRef.current) {
5667
- _optionalChain([onLoadMoreRef, 'access', _121 => _121.current, 'optionalCall', _122 => _122()]);
5641
+ _optionalChain([onLoadMoreRef, 'access', _117 => _117.current, 'optionalCall', _118 => _118()]);
5668
5642
  }
5669
5643
  },
5670
5644
  { root: scrollContainer, rootMargin: "200px", threshold: 0.1 }
@@ -5691,6 +5665,11 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5691
5665
  const setContentRef = (el) => {
5692
5666
  contentRef(el);
5693
5667
  };
5668
+ const lastMessage = messages[messages.length - 1];
5669
+ const lastSegments = Array.isArray(_optionalChain([lastMessage, 'optionalAccess', _119 => _119.content])) ? lastMessage.content : null;
5670
+ const lastSegment = _optionalChain([lastSegments, 'optionalAccess', _120 => _120[lastSegments.length - 1]]);
5671
+ const isPausedOnApproval = !!lastSegment && (lastSegment.type === "approval_request" || lastSegment.type === "approval_batch") && (lastSegment.status === void 0 || lastSegment.status === "pending");
5672
+ const showStreamingLoader = isTyping && !isPausedOnApproval && !(pendingApprovals && pendingApprovals.length > 0);
5694
5673
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex-1 min-h-0 flex flex-col", children: [
5695
5674
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5696
5675
  "div",
@@ -5737,6 +5716,22 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5737
5716
  )
5738
5717
  }
5739
5718
  ),
5719
+ showStreamingLoader && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
5720
+ "div",
5721
+ {
5722
+ className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5723
+ "mx-auto w-full max-w-3xl flex items-center gap-1 py-2",
5724
+ contentClassName || "px-4"
5725
+ ),
5726
+ style: { color: "var(--color-text-muted)" },
5727
+ role: "status",
5728
+ "aria-live": "polite",
5729
+ children: [
5730
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.DotsLoaderIcon, { className: "w-6 h-6" }),
5731
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CyclingPhrase, { words: STREAMING_WORDS, className: "text-sm" })
5732
+ ]
5733
+ }
5734
+ ),
5740
5735
  pendingApprovals && pendingApprovals.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
5741
5736
  "border-t border-ods-border bg-ods-bg/95 backdrop-blur-sm",
5742
5737
  "mx-auto w-full max-w-3xl",
@@ -5808,7 +5803,7 @@ var _muxplayerreact = require('@mux/mux-player-react'); var _muxplayerreact2 = _
5808
5803
 
5809
5804
  if (typeof window !== "undefined") {
5810
5805
  const w = window;
5811
- if (!_optionalChain([w, 'access', _123 => _123.chrome, 'optionalAccess', _124 => _124.cast])) {
5806
+ if (!_optionalChain([w, 'access', _121 => _121.chrome, 'optionalAccess', _122 => _122.cast])) {
5812
5807
  w.chrome = { ..._nullishCoalesce(w.chrome, () => ( {})), cast: { isAvailable: false } };
5813
5808
  }
5814
5809
  }
@@ -5984,7 +5979,7 @@ function YouTubeFacadeInner({
5984
5979
  const iframe = iframeRef.current;
5985
5980
  if (!iframe) return;
5986
5981
  function subscribe() {
5987
- _optionalChain([iframe, 'optionalAccess', _125 => _125.contentWindow, 'optionalAccess', _126 => _126.postMessage, 'call', _127 => _127(
5982
+ _optionalChain([iframe, 'optionalAccess', _123 => _123.contentWindow, 'optionalAccess', _124 => _124.postMessage, 'call', _125 => _125(
5988
5983
  '{"event":"listening"}',
5989
5984
  YT_NOCOOKIE_ORIGIN
5990
5985
  )]);
@@ -6002,13 +5997,13 @@ function YouTubeFacadeInner({
6002
5997
  return;
6003
5998
  }
6004
5999
  if (!payload || payload.event !== "infoDelivery") return;
6005
- const state = _optionalChain([payload, 'access', _128 => _128.info, 'optionalAccess', _129 => _129.playerState]);
6000
+ const state = _optionalChain([payload, 'access', _126 => _126.info, 'optionalAccess', _127 => _127.playerState]);
6006
6001
  if (typeof state !== "number") return;
6007
6002
  if (state === YT_STATE_PLAYING) {
6008
6003
  if (blurTimer !== null) return;
6009
6004
  blurTimer = setTimeout(() => {
6010
6005
  blurTimer = null;
6011
- _optionalChain([iframeRef, 'access', _130 => _130.current, 'optionalAccess', _131 => _131.blur, 'call', _132 => _132()]);
6006
+ _optionalChain([iframeRef, 'access', _128 => _128.current, 'optionalAccess', _129 => _129.blur, 'call', _130 => _130()]);
6012
6007
  }, YT_PLAYING_BLUR_DELAY_MS);
6013
6008
  return;
6014
6009
  }
@@ -6060,7 +6055,7 @@ function YouTubeFacadeInner({
6060
6055
  }
6061
6056
  )
6062
6057
  ] }),
6063
- /* @__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, _chunkTMD5LDX4cjs.PlayIcon, { size: 24, color: "currentColor", className: "ml-1" }) }) })
6058
+ /* @__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, _chunkVJTFBYVGcjs.PlayIcon, { size: 24, color: "currentColor", className: "ml-1" }) }) })
6064
6059
  ]
6065
6060
  }
6066
6061
  ) });
@@ -6154,7 +6149,7 @@ var RATIO_TO_CSS_ASPECT = {
6154
6149
  landscape: "16 / 9"
6155
6150
  };
6156
6151
  function LazyBite({ ratio, children }) {
6157
- const { ref, isNear } = _chunkALW3D72Ocjs.useNearViewport.call(void 0, "500px");
6152
+ const { ref, isNear } = _chunkHIMEIPEDcjs.useNearViewport.call(void 0, "500px");
6158
6153
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, style: { aspectRatio: RATIO_TO_CSS_ASPECT[ratio] }, children: isNear ? children : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full h-full bg-ods-card rounded-md" }) });
6159
6154
  }
6160
6155
  function VideoBitesDisplay({
@@ -6409,7 +6404,7 @@ var ChatTicketItem = React19.forwardRef(
6409
6404
  {
6410
6405
  ref,
6411
6406
  type: "button",
6412
- onClick: () => _optionalChain([onClick, 'optionalCall', _133 => _133(ticket.id)]),
6407
+ onClick: () => _optionalChain([onClick, 'optionalCall', _131 => _131(ticket.id)]),
6413
6408
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
6414
6409
  "flex items-center gap-4 w-full h-20 px-4",
6415
6410
  "bg-ods-card border-b border-ods-border",
@@ -6537,14 +6532,14 @@ var getProviderIcon = (provider) => {
6537
6532
  switch (providerLower) {
6538
6533
  case "anthropic":
6539
6534
  case "claude":
6540
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.AnthropicLogoGreyIcon, { className: "w-4 h-4" });
6535
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.AnthropicLogoGreyIcon, { className: "w-4 h-4" });
6541
6536
  case "openai":
6542
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.OpenaiLogoGreyIcon, { size: 16, color: "currentColor" });
6537
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.OpenaiLogoGreyIcon, { size: 16, color: "currentColor" });
6543
6538
  case "google":
6544
6539
  case "gemini":
6545
6540
  case "google-gemini":
6546
6541
  case "google_gemini":
6547
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.GeminiLogoGreyIcon, { size: 16 });
6542
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.GeminiLogoGreyIcon, { size: 16 });
6548
6543
  default:
6549
6544
  return null;
6550
6545
  }
@@ -6739,7 +6734,7 @@ var ChatSidebarSkeleton = React23.forwardRef(
6739
6734
  {
6740
6735
  variant: "transparent",
6741
6736
  disabled: true,
6742
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.ChatPlusIcon, { className: "size-6 text-ods-text-secondary" }),
6737
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.ChatPlusIcon, { className: "size-6 text-ods-text-secondary" }),
6743
6738
  className: "flex-1 justify-center text-lg font-bold text-ods-text-secondary cursor-not-allowed hover:bg-transparent",
6744
6739
  children: "Start New Chat"
6745
6740
  }
@@ -6757,8 +6752,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
6757
6752
  var DialogListItem = _react.forwardRef.call(void 0,
6758
6753
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
6759
6754
  const handleClick = (e) => {
6760
- _optionalChain([onDialogSelect, 'optionalCall', _134 => _134(dialog.id)]);
6761
- _optionalChain([onClick, 'optionalCall', _135 => _135(e)]);
6755
+ _optionalChain([onDialogSelect, 'optionalCall', _132 => _132(dialog.id)]);
6756
+ _optionalChain([onClick, 'optionalCall', _133 => _133(e)]);
6762
6757
  };
6763
6758
  const formatTimestamp2 = (timestamp) => {
6764
6759
  if (!timestamp) return "";
@@ -6793,7 +6788,7 @@ var DialogListItem = _react.forwardRef.call(void 0,
6793
6788
  ), title: dialog.title || "Untitled Chat", children: dialog.title || "Untitled Chat" }) }),
6794
6789
  dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-ods-text-secondary truncate w-full min-w-0", children: formatTimestamp2(dialog.timestamp) })
6795
6790
  ] }),
6796
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 ml-2", children: dialog.unreadMessagesCount && dialog.unreadMessagesCount > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-accent flex items-center justify-center p-2 rounded-md size-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium text-ods-text-on-accent", children: dialog.unreadMessagesCount > 99 ? "99+" : dialog.unreadMessagesCount }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02RightIcon, { className: "size-6 text-ods-text-secondary" }) })
6791
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0 ml-2", children: dialog.unreadMessagesCount && dialog.unreadMessagesCount > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-accent flex items-center justify-center p-2 rounded-md size-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium text-ods-text-on-accent", children: dialog.unreadMessagesCount > 99 ? "99+" : dialog.unreadMessagesCount }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02RightIcon, { className: "size-6 text-ods-text-secondary" }) })
6797
6792
  ]
6798
6793
  }
6799
6794
  );
@@ -6817,7 +6812,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6817
6812
  (entries) => {
6818
6813
  const [entry] = entries;
6819
6814
  if (entry.isIntersecting && !isFetchingRef.current) {
6820
- _optionalChain([onLoadMoreRef, 'access', _136 => _136.current, 'optionalCall', _137 => _137()]);
6815
+ _optionalChain([onLoadMoreRef, 'access', _134 => _134.current, 'optionalCall', _135 => _135()]);
6821
6816
  }
6822
6817
  },
6823
6818
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -6853,7 +6848,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6853
6848
  onClick: onNewChat,
6854
6849
  variant: "transparent",
6855
6850
  disabled: isLoading || isCreatingDialog,
6856
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.ChatPlusIcon, { className: "size-6 text-ods-text-secondary" }),
6851
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.ChatPlusIcon, { className: "size-6 text-ods-text-secondary" }),
6857
6852
  className: "flex-1 justify-center text-lg font-bold text-ods-text-primary hover:bg-ods-bg-hover focus-visible:ring-0",
6858
6853
  children: "Start New Chat"
6859
6854
  }
@@ -6861,7 +6856,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
6861
6856
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 flex flex-col min-h-0", children: showEmptyState ? (
6862
6857
  /* Empty State */
6863
6858
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col items-center justify-center gap-6 p-6", children: [
6864
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.ChatsIcon, { className: "w-6 h-6 text-ods-text-secondary" }),
6859
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.ChatsIcon, { className: "w-6 h-6 text-ods-text-secondary" }),
6865
6860
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center space-y-2", children: [
6866
6861
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-lg font-medium text-ods-text-secondary", children: "No Current Chats" }),
6867
6862
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm font-medium text-ods-text-secondary", children: "Previous Mingo sessions will show here" })
@@ -7235,7 +7230,7 @@ function useNatsDialogSubscription({
7235
7230
  reconnectionBackoffRef.current = reconnectionBackoff;
7236
7231
  }, [reconnectionBackoff]);
7237
7232
  const acquireClient = _react.useCallback.call(void 0, (url) => {
7238
- if (_optionalChain([shared, 'optionalAccess', _138 => _138.wsUrl]) !== url) {
7233
+ if (_optionalChain([shared, 'optionalAccess', _136 => _136.wsUrl]) !== url) {
7239
7234
  if (shared) {
7240
7235
  shared.closeTimer && clearTimeout(shared.closeTimer);
7241
7236
  const old = shared;
@@ -7244,7 +7239,7 @@ function useNatsDialogSubscription({
7244
7239
  });
7245
7240
  }
7246
7241
  const { name = "openframe-frontend", user = "machine", pass = "" } = clientConfig;
7247
- const client = _chunkALW3D72Ocjs.createNatsClient.call(void 0, {
7242
+ const client = _chunkHIMEIPEDcjs.createNatsClient.call(void 0, {
7248
7243
  servers: url,
7249
7244
  name,
7250
7245
  user,
@@ -7326,7 +7321,7 @@ function useNatsDialogSubscription({
7326
7321
  if (closed) return;
7327
7322
  if (shared !== sharedConn) return;
7328
7323
  try {
7329
- await _optionalChain([onBeforeReconnectRef, 'access', _139 => _139.current, 'optionalCall', _140 => _140()]);
7324
+ await _optionalChain([onBeforeReconnectRef, 'access', _137 => _137.current, 'optionalCall', _138 => _138()]);
7330
7325
  } catch (e10) {
7331
7326
  }
7332
7327
  if (closed) return;
@@ -7359,22 +7354,22 @@ function useNatsDialogSubscription({
7359
7354
  }
7360
7355
  hadConnectionBeforeRef.current = true;
7361
7356
  retryAttempt = 0;
7362
- _optionalChain([onConnectRef, 'access', _141 => _141.current, 'optionalCall', _142 => _142()]);
7357
+ _optionalChain([onConnectRef, 'access', _139 => _139.current, 'optionalCall', _140 => _140()]);
7363
7358
  }
7364
7359
  if (disconnected) {
7365
7360
  setIsConnected(false);
7366
7361
  setIsSubscribed(false);
7367
7362
  subscriptionRefs.current.forEach((sub) => {
7368
7363
  try {
7369
- _optionalChain([sub, 'optionalAccess', _143 => _143.unsubscribe, 'call', _144 => _144()]);
7364
+ _optionalChain([sub, 'optionalAccess', _141 => _141.unsubscribe, 'call', _142 => _142()]);
7370
7365
  } catch (e12) {
7371
7366
  }
7372
7367
  });
7373
7368
  subscriptionRefs.current.clear();
7374
7369
  lastSubscribedDialogIdRef.current = null;
7375
- _optionalChain([abortControllerRef, 'access', _145 => _145.current, 'optionalAccess', _146 => _146.abort, 'call', _147 => _147()]);
7370
+ _optionalChain([abortControllerRef, 'access', _143 => _143.current, 'optionalAccess', _144 => _144.abort, 'call', _145 => _145()]);
7376
7371
  abortControllerRef.current = null;
7377
- _optionalChain([onDisconnectRef, 'access', _148 => _148.current, 'optionalCall', _149 => _149()]);
7372
+ _optionalChain([onDisconnectRef, 'access', _146 => _146.current, 'optionalCall', _147 => _147()]);
7378
7373
  scheduleRetry();
7379
7374
  }
7380
7375
  });
@@ -7390,7 +7385,7 @@ function useNatsDialogSubscription({
7390
7385
  sharedConn.connectPromise = null;
7391
7386
  if (!closed) {
7392
7387
  setIsConnected(false);
7393
- _optionalChain([onDisconnectRef, 'access', _150 => _150.current, 'optionalCall', _151 => _151()]);
7388
+ _optionalChain([onDisconnectRef, 'access', _148 => _148.current, 'optionalCall', _149 => _149()]);
7394
7389
  scheduleRetry();
7395
7390
  }
7396
7391
  }
@@ -7406,7 +7401,7 @@ function useNatsDialogSubscription({
7406
7401
  }
7407
7402
  subscriptionRefs.current.forEach((sub) => {
7408
7403
  try {
7409
- _optionalChain([sub, 'optionalAccess', _152 => _152.unsubscribe, 'call', _153 => _153()]);
7404
+ _optionalChain([sub, 'optionalAccess', _150 => _150.unsubscribe, 'call', _151 => _151()]);
7410
7405
  } catch (e14) {
7411
7406
  }
7412
7407
  });
@@ -7434,13 +7429,13 @@ function useNatsDialogSubscription({
7434
7429
  setIsSubscribed(false);
7435
7430
  subscriptionRefs.current.forEach((sub) => {
7436
7431
  try {
7437
- _optionalChain([sub, 'optionalAccess', _154 => _154.unsubscribe, 'call', _155 => _155()]);
7432
+ _optionalChain([sub, 'optionalAccess', _152 => _152.unsubscribe, 'call', _153 => _153()]);
7438
7433
  } catch (e15) {
7439
7434
  }
7440
7435
  });
7441
7436
  subscriptionRefs.current.clear();
7442
7437
  lastSubscribedDialogIdRef.current = null;
7443
- _optionalChain([abortControllerRef, 'access', _156 => _156.current, 'optionalAccess', _157 => _157.abort, 'call', _158 => _158()]);
7438
+ _optionalChain([abortControllerRef, 'access', _154 => _154.current, 'optionalAccess', _155 => _155.abort, 'call', _156 => _156()]);
7444
7439
  abortControllerRef.current = null;
7445
7440
  }
7446
7441
  return;
@@ -7452,12 +7447,12 @@ function useNatsDialogSubscription({
7452
7447
  if (subscriptionRefs.current.size > 0) {
7453
7448
  subscriptionRefs.current.forEach((sub) => {
7454
7449
  try {
7455
- _optionalChain([sub, 'optionalAccess', _159 => _159.unsubscribe, 'call', _160 => _160()]);
7450
+ _optionalChain([sub, 'optionalAccess', _157 => _157.unsubscribe, 'call', _158 => _158()]);
7456
7451
  } catch (e16) {
7457
7452
  }
7458
7453
  });
7459
7454
  subscriptionRefs.current.clear();
7460
- _optionalChain([abortControllerRef, 'access', _161 => _161.current, 'optionalAccess', _162 => _162.abort, 'call', _163 => _163()]);
7455
+ _optionalChain([abortControllerRef, 'access', _159 => _159.current, 'optionalAccess', _160 => _160.abort, 'call', _161 => _161()]);
7461
7456
  }
7462
7457
  abortControllerRef.current = new AbortController();
7463
7458
  const abort = abortControllerRef.current;
@@ -7489,7 +7484,7 @@ function useNatsDialogSubscription({
7489
7484
  });
7490
7485
  lastSubscribedDialogIdRef.current = dialogId;
7491
7486
  setIsSubscribed(true);
7492
- _optionalChain([onSubscribedRef, 'access', _164 => _164.current, 'optionalCall', _165 => _165()]);
7487
+ _optionalChain([onSubscribedRef, 'access', _162 => _162.current, 'optionalCall', _163 => _163()]);
7493
7488
  };
7494
7489
  if (isConnectedRef.current) {
7495
7490
  createSubscriptions();
@@ -7499,7 +7494,7 @@ function useNatsDialogSubscription({
7499
7494
  abort.abort();
7500
7495
  subscriptionRefs.current.forEach((sub) => {
7501
7496
  try {
7502
- _optionalChain([sub, 'optionalAccess', _166 => _166.unsubscribe, 'call', _167 => _167()]);
7497
+ _optionalChain([sub, 'optionalAccess', _164 => _164.unsubscribe, 'call', _165 => _165()]);
7503
7498
  } catch (e18) {
7504
7499
  }
7505
7500
  });
@@ -7540,7 +7535,7 @@ function useNatsDialogSubscription({
7540
7535
  });
7541
7536
  lastSubscribedDialogIdRef.current = dialogId2;
7542
7537
  setIsSubscribed(true);
7543
- _optionalChain([onSubscribedRef, 'access', _168 => _168.current, 'optionalCall', _169 => _169()]);
7538
+ _optionalChain([onSubscribedRef, 'access', _166 => _166.current, 'optionalCall', _167 => _167()]);
7544
7539
  } else if (subscriptionRefs.current.size > 0) {
7545
7540
  setIsSubscribed(true);
7546
7541
  }
@@ -7548,10 +7543,10 @@ function useNatsDialogSubscription({
7548
7543
  return { isConnected, isSubscribed, reconnectionCount };
7549
7544
  }
7550
7545
  function buildNatsWsUrl(apiBaseUrl, options) {
7551
- const path = _optionalChain([options, 'optionalAccess', _170 => _170.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
7546
+ const path = _optionalChain([options, 'optionalAccess', _168 => _168.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
7552
7547
  const u = new URL(path, apiBaseUrl);
7553
7548
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
7554
- if (_optionalChain([options, 'optionalAccess', _171 => _171.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _172 => _172.token])) {
7549
+ if (_optionalChain([options, 'optionalAccess', _169 => _169.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _170 => _170.token])) {
7555
7550
  u.searchParams.set("authorization", options.token);
7556
7551
  }
7557
7552
  return u.toString();
@@ -7615,6 +7610,7 @@ function parseChunkToAction(chunk) {
7615
7610
  type: "EXECUTING_TOOL",
7616
7611
  integratedToolType: data.integratedToolType || "",
7617
7612
  toolFunction: data.toolFunction || "",
7613
+ toolTitle: typeof data.title === "string" ? data.title : void 0,
7618
7614
  parameters: data.parameters,
7619
7615
  toolExecutionRequestId: typeof data.toolExecutionRequestId === "string" ? data.toolExecutionRequestId : void 0
7620
7616
  }
@@ -7629,6 +7625,7 @@ function parseChunkToAction(chunk) {
7629
7625
  type: "EXECUTED_TOOL",
7630
7626
  integratedToolType: data.integratedToolType || "",
7631
7627
  toolFunction: data.toolFunction || "",
7628
+ toolTitle: typeof data.title === "string" ? data.title : void 0,
7632
7629
  parameters: data.parameters,
7633
7630
  result: data.result,
7634
7631
  success: data.success,
@@ -7850,6 +7847,7 @@ var MessageSegmentAccumulator = class {
7850
7847
  this.executingTools.set(toolKey, {
7851
7848
  integratedToolType: toolData.integratedToolType,
7852
7849
  toolFunction: toolData.toolFunction,
7850
+ toolTitle: toolData.toolTitle,
7853
7851
  parameters: toolData.parameters
7854
7852
  });
7855
7853
  this.segments.push(segment);
@@ -7858,11 +7856,13 @@ var MessageSegmentAccumulator = class {
7858
7856
  (s) => s.type === "tool_execution" && s.data.type === "EXECUTING_TOOL" && (execId ? s.data.toolExecutionRequestId === execId : s.data.integratedToolType === toolData.integratedToolType && s.data.toolFunction === toolData.toolFunction)
7859
7857
  );
7860
7858
  const executingTool = this.executingTools.get(toolKey);
7859
+ const existingExecuting = existingIndex !== -1 ? this.segments[existingIndex] : void 0;
7861
7860
  const mergedSegment = {
7862
7861
  type: "tool_execution",
7863
7862
  data: {
7864
7863
  ...toolData,
7865
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _173 => _173.parameters])
7864
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _171 => _171.data, 'access', _172 => _172.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _173 => _173.toolTitle]))),
7865
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _174 => _174.parameters])
7866
7866
  }
7867
7867
  };
7868
7868
  if (existingIndex !== -1) {
@@ -7886,8 +7886,8 @@ var MessageSegmentAccumulator = class {
7886
7886
  if (seg.type !== "approval_batch") return seg;
7887
7887
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
7888
7888
  if (!hasCall) return seg;
7889
- const prev = _optionalChain([seg, 'access', _174 => _174.data, 'access', _175 => _175.executions, 'optionalAccess', _176 => _176[execId]]);
7890
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _177 => _177.result]), success: _optionalChain([prev, 'optionalAccess', _178 => _178.success]) };
7889
+ const prev = _optionalChain([seg, 'access', _175 => _175.data, 'access', _176 => _176.executions, 'optionalAccess', _177 => _177[execId]]);
7890
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _178 => _178.result]), success: _optionalChain([prev, 'optionalAccess', _179 => _179.success]) };
7891
7891
  matched = true;
7892
7892
  return {
7893
7893
  ...seg,
@@ -7983,10 +7983,10 @@ var MessageSegmentAccumulator = class {
7983
7983
  const segment = {
7984
7984
  type: "approval_request",
7985
7985
  data: {
7986
- command: _optionalChain([pendingApproval, 'optionalAccess', _179 => _179.command]) || "",
7987
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _180 => _180.explanation]),
7986
+ command: _optionalChain([pendingApproval, 'optionalAccess', _180 => _180.command]) || "",
7987
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _181 => _181.explanation]),
7988
7988
  requestId,
7989
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _181 => _181.approvalType]) || approvalType
7989
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _182 => _182.approvalType]) || approvalType
7990
7990
  },
7991
7991
  status,
7992
7992
  onApprove: this.callbacks.onApprove,
@@ -8174,7 +8174,7 @@ function useRealtimeChunkProcessor(options) {
8174
8174
  if (initialState.escalatedApprovals) {
8175
8175
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
8176
8176
  initialState.escalatedApprovals.forEach((data, requestId) => {
8177
- _optionalChain([callbacks, 'access', _182 => _182.onEscalatedApproval, 'optionalCall', _183 => _183(requestId, data)]);
8177
+ _optionalChain([callbacks, 'access', _183 => _183.onEscalatedApproval, 'optionalCall', _184 => _184(requestId, data)]);
8178
8178
  });
8179
8179
  }
8180
8180
  hasInitializedWithData.current = true;
@@ -8193,30 +8193,30 @@ function useRealtimeChunkProcessor(options) {
8193
8193
  switch (action.action) {
8194
8194
  case "message_start":
8195
8195
  isInStreamRef.current = true;
8196
- _optionalChain([callbacks, 'access', _184 => _184.onStreamStart, 'optionalCall', _185 => _185()]);
8196
+ _optionalChain([callbacks, 'access', _185 => _185.onStreamStart, 'optionalCall', _186 => _186()]);
8197
8197
  accumulator.resetSegments();
8198
8198
  break;
8199
8199
  case "message_end":
8200
8200
  isInStreamRef.current = false;
8201
- _optionalChain([callbacks, 'access', _186 => _186.onStreamEnd, 'optionalCall', _187 => _187()]);
8201
+ _optionalChain([callbacks, 'access', _187 => _187.onStreamEnd, 'optionalCall', _188 => _188()]);
8202
8202
  accumulator.resetSegments();
8203
8203
  break;
8204
8204
  case "metadata":
8205
- _optionalChain([callbacks, 'access', _188 => _188.onMetadata, 'optionalCall', _189 => _189(action)]);
8205
+ _optionalChain([callbacks, 'access', _189 => _189.onMetadata, 'optionalCall', _190 => _190(action)]);
8206
8206
  break;
8207
8207
  case "text": {
8208
8208
  const segments = accumulator.appendText(action.text);
8209
- _optionalChain([callbacks, 'access', _190 => _190.onSegmentsUpdate, 'optionalCall', _191 => _191(segments)]);
8209
+ _optionalChain([callbacks, 'access', _191 => _191.onSegmentsUpdate, 'optionalCall', _192 => _192(segments)]);
8210
8210
  break;
8211
8211
  }
8212
8212
  case "thinking": {
8213
8213
  const segments = accumulator.appendThinking(action.text);
8214
- _optionalChain([callbacks, 'access', _192 => _192.onSegmentsUpdate, 'optionalCall', _193 => _193(segments)]);
8214
+ _optionalChain([callbacks, 'access', _193 => _193.onSegmentsUpdate, 'optionalCall', _194 => _194(segments)]);
8215
8215
  break;
8216
8216
  }
8217
8217
  case "tool_execution": {
8218
8218
  const segments = accumulator.addToolExecution(action.segment);
8219
- _optionalChain([callbacks, 'access', _194 => _194.onSegmentsUpdate, 'optionalCall', _195 => _195(segments)]);
8219
+ _optionalChain([callbacks, 'access', _195 => _195.onSegmentsUpdate, 'optionalCall', _196 => _196(segments)]);
8220
8220
  break;
8221
8221
  }
8222
8222
  case "approval_request": {
@@ -8230,10 +8230,10 @@ function useRealtimeChunkProcessor(options) {
8230
8230
  approvalType,
8231
8231
  status
8232
8232
  );
8233
- _optionalChain([callbacks, 'access', _196 => _196.onSegmentsUpdate, 'optionalCall', _197 => _197(segments)]);
8233
+ _optionalChain([callbacks, 'access', _197 => _197.onSegmentsUpdate, 'optionalCall', _198 => _198(segments)]);
8234
8234
  } else {
8235
8235
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
8236
- _optionalChain([callbacks, 'access', _198 => _198.onEscalatedApproval, 'optionalCall', _199 => _199(requestId, { command, explanation, approvalType })]);
8236
+ _optionalChain([callbacks, 'access', _199 => _199.onEscalatedApproval, 'optionalCall', _200 => _200(requestId, { command, explanation, approvalType })]);
8237
8237
  }
8238
8238
  break;
8239
8239
  }
@@ -8245,20 +8245,20 @@ function useRealtimeChunkProcessor(options) {
8245
8245
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
8246
8246
  pendingEscalatedRef.current.set(requestId, {
8247
8247
  command: summary,
8248
- explanation: _optionalChain([required, 'optionalAccess', _200 => _200.toolExplanation]),
8248
+ explanation: _optionalChain([required, 'optionalAccess', _201 => _201.toolExplanation]),
8249
8249
  approvalType,
8250
8250
  toolCalls
8251
8251
  });
8252
- _optionalChain([callbacks, 'access', _201 => _201.onEscalatedApproval, 'optionalCall', _202 => _202(requestId, {
8252
+ _optionalChain([callbacks, 'access', _202 => _202.onEscalatedApproval, 'optionalCall', _203 => _203(requestId, {
8253
8253
  command: summary,
8254
- explanation: _optionalChain([required, 'optionalAccess', _203 => _203.toolExplanation]),
8254
+ explanation: _optionalChain([required, 'optionalAccess', _204 => _204.toolExplanation]),
8255
8255
  approvalType
8256
8256
  })]);
8257
8257
  break;
8258
8258
  }
8259
8259
  if (batchApprovalsEnabled) {
8260
8260
  const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
8261
- _optionalChain([callbacks, 'access', _204 => _204.onSegmentsUpdate, 'optionalCall', _205 => _205(segments2)]);
8261
+ _optionalChain([callbacks, 'access', _205 => _205.onSegmentsUpdate, 'optionalCall', _206 => _206(segments2)]);
8262
8262
  break;
8263
8263
  }
8264
8264
  let segments = accumulator.getSegments();
@@ -8272,7 +8272,7 @@ function useRealtimeChunkProcessor(options) {
8272
8272
  status
8273
8273
  );
8274
8274
  }
8275
- _optionalChain([callbacks, 'access', _206 => _206.onSegmentsUpdate, 'optionalCall', _207 => _207(segments)]);
8275
+ _optionalChain([callbacks, 'access', _207 => _207.onSegmentsUpdate, 'optionalCall', _208 => _208(segments)]);
8276
8276
  break;
8277
8277
  }
8278
8278
  case "approval_result": {
@@ -8281,7 +8281,7 @@ function useRealtimeChunkProcessor(options) {
8281
8281
  const status = approved ? "approved" : "rejected";
8282
8282
  if (escalatedData) {
8283
8283
  pendingEscalatedRef.current.delete(requestId);
8284
- _optionalChain([callbacks, 'access', _208 => _208.onEscalatedApprovalResult, 'optionalCall', _209 => _209(requestId, approved, {
8284
+ _optionalChain([callbacks, 'access', _209 => _209.onEscalatedApprovalResult, 'optionalCall', _210 => _210(requestId, approved, {
8285
8285
  command: escalatedData.command,
8286
8286
  explanation: escalatedData.explanation,
8287
8287
  approvalType: escalatedData.approvalType
@@ -8294,7 +8294,7 @@ function useRealtimeChunkProcessor(options) {
8294
8294
  escalatedData.toolCalls,
8295
8295
  status
8296
8296
  );
8297
- _optionalChain([callbacks, 'access', _210 => _210.onSegmentsUpdate, 'optionalCall', _211 => _211(segments)]);
8297
+ _optionalChain([callbacks, 'access', _211 => _211.onSegmentsUpdate, 'optionalCall', _212 => _212(segments)]);
8298
8298
  } else {
8299
8299
  let segments = accumulator.getSegments();
8300
8300
  for (const call of escalatedData.toolCalls) {
@@ -8307,7 +8307,7 @@ function useRealtimeChunkProcessor(options) {
8307
8307
  status
8308
8308
  );
8309
8309
  }
8310
- _optionalChain([callbacks, 'access', _212 => _212.onSegmentsUpdate, 'optionalCall', _213 => _213(segments)]);
8310
+ _optionalChain([callbacks, 'access', _213 => _213.onSegmentsUpdate, 'optionalCall', _214 => _214(segments)]);
8311
8311
  }
8312
8312
  } else {
8313
8313
  const segments = accumulator.addApprovalRequest(
@@ -8317,63 +8317,63 @@ function useRealtimeChunkProcessor(options) {
8317
8317
  escalatedData.approvalType,
8318
8318
  status
8319
8319
  );
8320
- _optionalChain([callbacks, 'access', _214 => _214.onSegmentsUpdate, 'optionalCall', _215 => _215(segments)]);
8320
+ _optionalChain([callbacks, 'access', _215 => _215.onSegmentsUpdate, 'optionalCall', _216 => _216(segments)]);
8321
8321
  }
8322
8322
  } else {
8323
8323
  const segments = accumulator.updateApprovalStatus(requestId, status);
8324
- _optionalChain([callbacks, 'access', _216 => _216.onSegmentsUpdate, 'optionalCall', _217 => _217(segments)]);
8324
+ _optionalChain([callbacks, 'access', _217 => _217.onSegmentsUpdate, 'optionalCall', _218 => _218(segments)]);
8325
8325
  }
8326
8326
  void approvalType;
8327
8327
  break;
8328
8328
  }
8329
8329
  case "error": {
8330
8330
  let message;
8331
- if ("details" in action && _optionalChain([action, 'optionalAccess', _218 => _218.details])) {
8331
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _219 => _219.details])) {
8332
8332
  try {
8333
- message = _optionalChain([JSON, 'access', _219 => _219.parse, 'call', _220 => _220(action.details), 'optionalAccess', _221 => _221.error, 'optionalAccess', _222 => _222.message]);
8333
+ message = _optionalChain([JSON, 'access', _220 => _220.parse, 'call', _221 => _221(action.details), 'optionalAccess', _222 => _222.error, 'optionalAccess', _223 => _223.message]);
8334
8334
  } catch (e20) {
8335
8335
  message = action.details;
8336
8336
  }
8337
8337
  }
8338
8338
  const segments = accumulator.addError(action.error, message);
8339
- _optionalChain([callbacks, 'access', _223 => _223.onSegmentsUpdate, 'optionalCall', _224 => _224(segments)]);
8340
- _optionalChain([callbacks, 'access', _225 => _225.onError, 'optionalCall', _226 => _226(action.error, message)]);
8339
+ _optionalChain([callbacks, 'access', _224 => _224.onSegmentsUpdate, 'optionalCall', _225 => _225(segments)]);
8340
+ _optionalChain([callbacks, 'access', _226 => _226.onError, 'optionalCall', _227 => _227(action.error, message)]);
8341
8341
  break;
8342
8342
  }
8343
8343
  case "system": {
8344
- _optionalChain([callbacks, 'access', _227 => _227.onSystemMessage, 'optionalCall', _228 => _228(action.text)]);
8344
+ _optionalChain([callbacks, 'access', _228 => _228.onSystemMessage, 'optionalCall', _229 => _229(action.text)]);
8345
8345
  break;
8346
8346
  }
8347
8347
  case "direct_message": {
8348
- _optionalChain([callbacks, 'access', _229 => _229.onDirectMessage, 'optionalCall', _230 => _230(action.text, {
8348
+ _optionalChain([callbacks, 'access', _230 => _230.onDirectMessage, 'optionalCall', _231 => _231(action.text, {
8349
8349
  ownerType: action.ownerType,
8350
8350
  displayName: action.displayName
8351
8351
  })]);
8352
8352
  break;
8353
8353
  }
8354
8354
  case "message_request":
8355
- _optionalChain([callbacks, 'access', _231 => _231.onUserMessage, 'optionalCall', _232 => _232(action.text, {
8355
+ _optionalChain([callbacks, 'access', _232 => _232.onUserMessage, 'optionalCall', _233 => _233(action.text, {
8356
8356
  ownerType: action.ownerType,
8357
8357
  displayName: action.displayName
8358
8358
  })]);
8359
8359
  break;
8360
8360
  case "token_usage":
8361
- _optionalChain([callbacks, 'access', _233 => _233.onTokenUsage, 'optionalCall', _234 => _234(action.data)]);
8361
+ _optionalChain([callbacks, 'access', _234 => _234.onTokenUsage, 'optionalCall', _235 => _235(action.data)]);
8362
8362
  break;
8363
8363
  case "context_compaction_start": {
8364
8364
  const standalone = !isInStreamRef.current;
8365
8365
  const segments = accumulator.addContextCompaction();
8366
- _optionalChain([callbacks, 'access', _235 => _235.onSegmentsUpdate, 'optionalCall', _236 => _236(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8366
+ _optionalChain([callbacks, 'access', _236 => _236.onSegmentsUpdate, 'optionalCall', _237 => _237(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8367
8367
  break;
8368
8368
  }
8369
8369
  case "context_compaction_end": {
8370
8370
  const standalone = !isInStreamRef.current;
8371
8371
  const segments = accumulator.completeContextCompaction(action.summary);
8372
- _optionalChain([callbacks, 'access', _237 => _237.onSegmentsUpdate, 'optionalCall', _238 => _238(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8372
+ _optionalChain([callbacks, 'access', _238 => _238.onSegmentsUpdate, 'optionalCall', _239 => _239(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
8373
8373
  break;
8374
8374
  }
8375
8375
  case "dialog_closed":
8376
- _optionalChain([callbacks, 'access', _239 => _239.onDialogClosed, 'optionalCall', _240 => _240()]);
8376
+ _optionalChain([callbacks, 'access', _240 => _240.onDialogClosed, 'optionalCall', _241 => _241()]);
8377
8377
  break;
8378
8378
  default:
8379
8379
  break;
@@ -8409,12 +8409,12 @@ function useRealtimeChunkProcessor(options) {
8409
8409
 
8410
8410
  // src/components/chat/utils/process-historical-messages.ts
8411
8411
  function getOwnerDisplayName(owner) {
8412
- if (_optionalChain([owner, 'optionalAccess', _241 => _241.type]) === OWNER_TYPE.ADMIN && owner.user) {
8412
+ if (_optionalChain([owner, 'optionalAccess', _242 => _242.type]) === OWNER_TYPE.ADMIN && owner.user) {
8413
8413
  const { firstName, lastName } = owner.user;
8414
8414
  const name = [firstName, lastName].filter(Boolean).join(" ");
8415
8415
  if (name) return name;
8416
8416
  }
8417
- return _optionalChain([owner, 'optionalAccess', _242 => _242.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
8417
+ return _optionalChain([owner, 'optionalAccess', _243 => _243.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
8418
8418
  }
8419
8419
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
8420
8420
  messageDataArray.forEach((data) => {
@@ -8477,10 +8477,10 @@ function processHistoricalMessages(messages, options = {}) {
8477
8477
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
8478
8478
  return;
8479
8479
  }
8480
- const isUserMessage = _optionalChain([msg, 'access', _243 => _243.owner, 'optionalAccess', _244 => _244.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _245 => _245.owner, 'optionalAccess', _246 => _246.type]) === OWNER_TYPE.ADMIN;
8480
+ const isUserMessage = _optionalChain([msg, 'access', _244 => _244.owner, 'optionalAccess', _245 => _245.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _246 => _246.owner, 'optionalAccess', _247 => _247.type]) === OWNER_TYPE.ADMIN;
8481
8481
  if (isUserMessage) {
8482
8482
  flushAssistantMessage();
8483
- const userAuthorType = _optionalChain([msg, 'access', _247 => _247.owner, 'optionalAccess', _248 => _248.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8483
+ const userAuthorType = _optionalChain([msg, 'access', _248 => _248.owner, 'optionalAccess', _249 => _249.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8484
8484
  messageDataArray.forEach((data) => {
8485
8485
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8486
8486
  processedMessages.push({
@@ -8504,7 +8504,7 @@ function processHistoricalMessages(messages, options = {}) {
8504
8504
  });
8505
8505
  const nextMsg = messages[index + 1];
8506
8506
  const isLastMessage = index === messages.length - 1;
8507
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _249 => _249.owner, 'optionalAccess', _250 => _250.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _251 => _251.owner, 'optionalAccess', _252 => _252.type]) === OWNER_TYPE.ADMIN);
8507
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _250 => _250.owner, 'optionalAccess', _251 => _251.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _252 => _252.owner, 'optionalAccess', _253 => _253.type]) === OWNER_TYPE.ADMIN);
8508
8508
  if (isLastMessage || nextIsFromUser) {
8509
8509
  flushAssistantMessage();
8510
8510
  }
@@ -8549,6 +8549,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8549
8549
  type: "EXECUTING_TOOL",
8550
8550
  integratedToolType: data.integratedToolType || "",
8551
8551
  toolFunction: data.toolFunction || "",
8552
+ toolTitle: typeof data.title === "string" ? data.title : void 0,
8552
8553
  parameters: data.parameters,
8553
8554
  toolExecutionRequestId: data.toolExecutionRequestId
8554
8555
  }
@@ -8563,6 +8564,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8563
8564
  type: "EXECUTED_TOOL",
8564
8565
  integratedToolType: data.integratedToolType || "",
8565
8566
  toolFunction: data.toolFunction || "",
8567
+ toolTitle: typeof data.title === "string" ? data.title : void 0,
8566
8568
  parameters: data.parameters,
8567
8569
  result: data.result,
8568
8570
  success: data.success,
@@ -8601,7 +8603,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8601
8603
  });
8602
8604
  }
8603
8605
  } else {
8604
- _optionalChain([escalatedApprovals, 'optionalAccess', _253 => _253.set, 'call', _254 => _254(data.approvalRequestId, {
8606
+ _optionalChain([escalatedApprovals, 'optionalAccess', _254 => _254.set, 'call', _255 => _255(data.approvalRequestId, {
8605
8607
  command: data.command || "",
8606
8608
  explanation: data.explanation,
8607
8609
  approvalType,
@@ -8614,8 +8616,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8614
8616
  if ("approvalRequestId" in data && data.approvalRequestId) {
8615
8617
  const existingStatus = approvalStatuses[data.approvalRequestId];
8616
8618
  const status = existingStatus || (data.approved ? "approved" : "rejected");
8617
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _255 => _255.get, 'call', _256 => _256(data.approvalRequestId)]);
8618
- if (_optionalChain([escalatedData, 'optionalAccess', _257 => _257.toolCalls]) && escalatedData.toolCalls.length > 0) {
8619
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _256 => _256.get, 'call', _257 => _257(data.approvalRequestId)]);
8620
+ if (_optionalChain([escalatedData, 'optionalAccess', _258 => _258.toolCalls]) && escalatedData.toolCalls.length > 0) {
8619
8621
  if (batchApprovalsEnabled) {
8620
8622
  accumulator.addApprovalBatch(
8621
8623
  data.approvalRequestId,
@@ -8635,7 +8637,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8635
8637
  );
8636
8638
  }
8637
8639
  }
8638
- _optionalChain([escalatedApprovals, 'optionalAccess', _258 => _258.delete, 'call', _259 => _259(data.approvalRequestId)]);
8640
+ _optionalChain([escalatedApprovals, 'optionalAccess', _259 => _259.delete, 'call', _260 => _260(data.approvalRequestId)]);
8639
8641
  break;
8640
8642
  }
8641
8643
  if (escalatedData) {
@@ -8644,7 +8646,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8644
8646
  explanation: escalatedData.explanation,
8645
8647
  approvalType: escalatedData.approvalType
8646
8648
  });
8647
- _optionalChain([escalatedApprovals, 'optionalAccess', _260 => _260.delete, 'call', _261 => _261(data.approvalRequestId)]);
8649
+ _optionalChain([escalatedApprovals, 'optionalAccess', _261 => _261.delete, 'call', _262 => _262(data.approvalRequestId)]);
8648
8650
  }
8649
8651
  const before = accumulator.getSegments();
8650
8652
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
@@ -8660,9 +8662,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
8660
8662
  case MESSAGE_TYPE.ERROR:
8661
8663
  if ("error" in data) {
8662
8664
  let message;
8663
- if ("details" in data && _optionalChain([data, 'optionalAccess', _262 => _262.details])) {
8665
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _263 => _263.details])) {
8664
8666
  try {
8665
- message = _optionalChain([JSON, 'access', _263 => _263.parse, 'call', _264 => _264(data.details), 'optionalAccess', _265 => _265.error, 'optionalAccess', _266 => _266.message]);
8667
+ message = _optionalChain([JSON, 'access', _264 => _264.parse, 'call', _265 => _265(data.details), 'optionalAccess', _266 => _266.error, 'optionalAccess', _267 => _267.message]);
8666
8668
  } catch (e21) {
8667
8669
  message = data.details;
8668
8670
  }
@@ -8745,10 +8747,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8745
8747
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
8746
8748
  return;
8747
8749
  }
8748
- const isUserMessage = _optionalChain([msg, 'access', _267 => _267.owner, 'optionalAccess', _268 => _268.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _269 => _269.owner, 'optionalAccess', _270 => _270.type]) === OWNER_TYPE.ADMIN;
8750
+ const isUserMessage = _optionalChain([msg, 'access', _268 => _268.owner, 'optionalAccess', _269 => _269.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _270 => _270.owner, 'optionalAccess', _271 => _271.type]) === OWNER_TYPE.ADMIN;
8749
8751
  if (isUserMessage) {
8750
8752
  flushAssistantMessage();
8751
- const userAuthorType = _optionalChain([msg, 'access', _271 => _271.owner, 'optionalAccess', _272 => _272.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8753
+ const userAuthorType = _optionalChain([msg, 'access', _272 => _272.owner, 'optionalAccess', _273 => _273.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
8752
8754
  messageDataArray.forEach((data) => {
8753
8755
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
8754
8756
  processedMessages.push({
@@ -8772,7 +8774,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
8772
8774
  });
8773
8775
  const nextMsg = messages[index + 1];
8774
8776
  const isLastMessage = index === messages.length - 1;
8775
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _273 => _273.owner, 'optionalAccess', _274 => _274.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _275 => _275.owner, 'optionalAccess', _276 => _276.type]) === OWNER_TYPE.ADMIN);
8777
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _274 => _274.owner, 'optionalAccess', _275 => _275.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _276 => _276.owner, 'optionalAccess', _277 => _277.type]) === OWNER_TYPE.ADMIN);
8776
8778
  if (isLastMessage || nextIsFromUser) {
8777
8779
  flushAssistantMessage();
8778
8780
  }
@@ -8814,6 +8816,7 @@ function extractIncompleteMessageState(lastMessage) {
8814
8816
  executingTools.set(toolKey, {
8815
8817
  integratedToolType: segment.data.integratedToolType,
8816
8818
  toolFunction: segment.data.toolFunction,
8819
+ toolTitle: segment.data.toolTitle,
8817
8820
  parameters: segment.data.parameters
8818
8821
  });
8819
8822
  hasIncompleteState = true;
@@ -8831,7 +8834,7 @@ function extractIncompleteMessageState(lastMessage) {
8831
8834
  break;
8832
8835
  case "approval_batch": {
8833
8836
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
8834
- (c) => _optionalChain([segment, 'access', _277 => _277.data, 'access', _278 => _278.executions, 'optionalAccess', _279 => _279[c.toolExecutionRequestId], 'optionalAccess', _280 => _280.status]) === "done"
8837
+ (c) => _optionalChain([segment, 'access', _278 => _278.data, 'access', _279 => _279.executions, 'optionalAccess', _280 => _280[c.toolExecutionRequestId], 'optionalAccess', _281 => _281.status]) === "done"
8835
8838
  );
8836
8839
  if (segment.status !== "rejected" && !allDone) {
8837
8840
  hasIncompleteState = true;
@@ -8993,7 +8996,7 @@ function Header({ config, platform }) {
8993
8996
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
8994
8997
  "flex justify-start w-full",
8995
8998
  "font-bold text-[16px] leading-none tracking-[-0.32px]",
8996
- index < (_nullishCoalesce(_optionalChain([item, 'access', _281 => _281.children, 'optionalAccess', _282 => _282.length]), () => ( 0))) - 1 && "mb-1",
8999
+ index < (_nullishCoalesce(_optionalChain([item, 'access', _282 => _282.children, 'optionalAccess', _283 => _283.length]), () => ( 0))) - 1 && "mb-1",
8997
9000
  "text-ods-text-primary",
8998
9001
  // All dropdown items use primary text color
8999
9002
  child.isActive && "bg-ods-bg-hover"
@@ -9085,7 +9088,7 @@ function Header({ config, platform }) {
9085
9088
  style: config.style,
9086
9089
  children: [
9087
9090
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
9088
- _optionalChain([config, 'access', _283 => _283.actions, 'optionalAccess', _284 => _284.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
9091
+ _optionalChain([config, 'access', _284 => _284.actions, 'optionalAccess', _285 => _285.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", children: config.actions.left }),
9089
9092
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: config.logo.href, className: "transition-opacity duration-200 hover:opacity-80", children: config.logo.element })
9090
9093
  ] }),
9091
9094
  config.navigation && config.navigation.items.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9102,7 +9105,7 @@ function Header({ config, platform }) {
9102
9105
  }
9103
9106
  ),
9104
9107
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-end gap-4 flex-shrink-0", children: [
9105
- _optionalChain([config, 'access', _285 => _285.actions, 'optionalAccess', _286 => _286.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
9108
+ _optionalChain([config, 'access', _286 => _286.actions, 'optionalAccess', _287 => _287.right]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden md:flex items-center gap-4", children: config.actions.right }),
9106
9109
  config.mobile && config.mobile.enabled && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9107
9110
  _chunkBJTOSUT4cjs.Button,
9108
9111
  {
@@ -9110,10 +9113,10 @@ function Header({ config, platform }) {
9110
9113
  size: "icon",
9111
9114
  className: "flex md:hidden",
9112
9115
  onClick: () => {
9113
- _optionalChain([config, 'access', _287 => _287.mobile, 'optionalAccess', _288 => _288.onToggle, 'optionalCall', _289 => _289()]);
9116
+ _optionalChain([config, 'access', _288 => _288.mobile, 'optionalAccess', _289 => _289.onToggle, 'optionalCall', _290 => _290()]);
9114
9117
  },
9115
- "aria-label": _optionalChain([config, 'access', _290 => _290.mobile, 'optionalAccess', _291 => _291.isOpen]) ? "Close menu" : "Open menu",
9116
- leftIcon: _optionalChain([config, 'access', _292 => _292.mobile, 'optionalAccess', _293 => _293.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, {})
9118
+ "aria-label": _optionalChain([config, 'access', _291 => _291.mobile, 'optionalAccess', _292 => _292.isOpen]) ? "Close menu" : "Open menu",
9119
+ leftIcon: _optionalChain([config, 'access', _293 => _293.mobile, 'optionalAccess', _294 => _294.menuIcon]) || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Menu01Icon, {})
9117
9120
  }
9118
9121
  )
9119
9122
  ] })
@@ -9130,10 +9133,10 @@ function Header({ config, platform }) {
9130
9133
  // src/components/navigation/header-skeleton.tsx
9131
9134
 
9132
9135
  function HeaderSkeleton({ config }) {
9133
- const showNavigation = _optionalChain([config, 'optionalAccess', _294 => _294.navigation]) && config.navigation.items.length > 0;
9134
- const showActions = _optionalChain([config, 'optionalAccess', _295 => _295.actions, 'optionalAccess', _296 => _296.right]) && config.actions.right.length > 0;
9135
- const showMobileMenu = _optionalChain([config, 'optionalAccess', _297 => _297.mobile, 'optionalAccess', _298 => _298.enabled]);
9136
- const isAdminHeader = _optionalChain([config, 'optionalAccess', _299 => _299.className, 'optionalAccess', _300 => _300.includes, 'call', _301 => _301("admin")]);
9136
+ const showNavigation = _optionalChain([config, 'optionalAccess', _295 => _295.navigation]) && config.navigation.items.length > 0;
9137
+ const showActions = _optionalChain([config, 'optionalAccess', _296 => _296.actions, 'optionalAccess', _297 => _297.right]) && config.actions.right.length > 0;
9138
+ const showMobileMenu = _optionalChain([config, 'optionalAccess', _298 => _298.mobile, 'optionalAccess', _299 => _299.enabled]);
9139
+ const isAdminHeader = _optionalChain([config, 'optionalAccess', _300 => _300.className, 'optionalAccess', _301 => _301.includes, 'call', _302 => _302("admin")]);
9137
9140
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky top-0 z-40 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
9138
9141
  "header",
9139
9142
  {
@@ -9142,11 +9145,11 @@ function HeaderSkeleton({ config }) {
9142
9145
  "bg-ods-card border-b border-ods-border backdrop-blur-sm",
9143
9146
  "px-6 py-3",
9144
9147
  "transition-opacity duration-300 ease-in-out",
9145
- _optionalChain([config, 'optionalAccess', _302 => _302.className])
9148
+ _optionalChain([config, 'optionalAccess', _303 => _303.className])
9146
9149
  ),
9147
9150
  children: [
9148
9151
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-start flex-shrink-0", children: [
9149
- isAdminHeader && _optionalChain([config, 'optionalAccess', _303 => _303.actions, 'optionalAccess', _304 => _304.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
9152
+ isAdminHeader && _optionalChain([config, 'optionalAccess', _304 => _304.actions, 'optionalAccess', _305 => _305.left]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 bg-ods-border rounded animate-pulse" }) }),
9150
9153
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
9151
9154
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 bg-ods-border rounded animate-pulse" }),
9152
9155
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-border rounded animate-pulse" })
@@ -9154,8 +9157,8 @@ function HeaderSkeleton({ config }) {
9154
9157
  ] }),
9155
9158
  showNavigation && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
9156
9159
  "hidden md:flex items-center gap-2",
9157
- _optionalChain([config, 'optionalAccess', _305 => _305.navigation, 'optionalAccess', _306 => _306.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
9158
- _optionalChain([config, 'optionalAccess', _307 => _307.navigation, 'optionalAccess', _308 => _308.position]) === "right" && "ml-auto mr-4"
9160
+ _optionalChain([config, 'optionalAccess', _306 => _306.navigation, 'optionalAccess', _307 => _307.position]) === "center" && "absolute left-1/2 transform -translate-x-1/2",
9161
+ _optionalChain([config, 'optionalAccess', _308 => _308.navigation, 'optionalAccess', _309 => _309.position]) === "right" && "ml-auto mr-4"
9159
9162
  ), children: [
9160
9163
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-20 bg-ods-border rounded animate-pulse" }),
9161
9164
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 bg-ods-border rounded animate-pulse" }),
@@ -9203,7 +9206,7 @@ function MobileNavPanel({ isOpen, config }) {
9203
9206
  _react.useEffect.call(void 0, () => {
9204
9207
  const handleKeyDown = (e) => {
9205
9208
  if (e.key === "Escape" && isOpen) {
9206
- _optionalChain([config, 'access', _309 => _309.onClose, 'optionalCall', _310 => _310()]);
9209
+ _optionalChain([config, 'access', _310 => _310.onClose, 'optionalCall', _311 => _311()]);
9207
9210
  }
9208
9211
  };
9209
9212
  if (isOpen) {
@@ -9220,7 +9223,7 @@ function MobileNavPanel({ isOpen, config }) {
9220
9223
  if (item.onClick) {
9221
9224
  item.onClick();
9222
9225
  }
9223
- _optionalChain([config, 'access', _311 => _311.onClose, 'optionalCall', _312 => _312()]);
9226
+ _optionalChain([config, 'access', _312 => _312.onClose, 'optionalCall', _313 => _313()]);
9224
9227
  };
9225
9228
  if (item.href) {
9226
9229
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -9438,7 +9441,7 @@ function SlidingSidebar({ config }) {
9438
9441
  variant: "transparent",
9439
9442
  size: "default",
9440
9443
  onClick: () => {
9441
- _optionalChain([item, 'access', _313 => _313.onClick, 'optionalCall', _314 => _314()]);
9444
+ _optionalChain([item, 'access', _314 => _314.onClick, 'optionalCall', _315 => _315()]);
9442
9445
  config.onClose();
9443
9446
  },
9444
9447
  leftIcon: item.icon,
@@ -9461,7 +9464,7 @@ function SlidingSidebar({ config }) {
9461
9464
  variant: "transparent",
9462
9465
  size: "default",
9463
9466
  onClick: () => {
9464
- _optionalChain([item, 'access', _315 => _315.onClick, 'optionalCall', _316 => _316()]);
9467
+ _optionalChain([item, 'access', _316 => _316.onClick, 'optionalCall', _317 => _317()]);
9465
9468
  config.onClose();
9466
9469
  },
9467
9470
  leftIcon: item.icon,
@@ -9588,7 +9591,7 @@ function StickySectionNav({
9588
9591
  ] });
9589
9592
  }
9590
9593
  function useSectionNavigation(sections, options) {
9591
- const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _317 => _317[0], 'optionalAccess', _318 => _318.id]) || "");
9594
+ const [activeSection, setActiveSection] = _react.useState.call(void 0, _optionalChain([sections, 'access', _318 => _318[0], 'optionalAccess', _319 => _319.id]) || "");
9592
9595
  const isScrollingFromClick = _react.useRef.call(void 0, false);
9593
9596
  const { offset: offset2 = 100 } = options || {};
9594
9597
  const handleSectionClick = _react.useCallback.call(void 0, (sectionId) => {
@@ -9613,7 +9616,7 @@ function useSectionNavigation(sections, options) {
9613
9616
  const handleScroll = () => {
9614
9617
  if (isScrollingFromClick.current) return;
9615
9618
  const scrollPosition = window.scrollY + offset2 + 50;
9616
- let currentSection = _optionalChain([sections, 'access', _319 => _319[0], 'optionalAccess', _320 => _320.id]) || "";
9619
+ let currentSection = _optionalChain([sections, 'access', _320 => _320[0], 'optionalAccess', _321 => _321.id]) || "";
9617
9620
  for (let i = sections.length - 1; i >= 0; i--) {
9618
9621
  const element = document.getElementById(sections[i].id);
9619
9622
  if (element && scrollPosition >= element.offsetTop) {
@@ -9757,7 +9760,7 @@ function NavigationSidebarToggle({
9757
9760
  "aria-label": "Hide Menu",
9758
9761
  children: [
9759
9762
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9760
- _chunkTMD5LDX4cjs.Chevrons03LeftIcon,
9763
+ _chunkVJTFBYVGcjs.Chevrons03LeftIcon,
9761
9764
  {
9762
9765
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
9763
9766
  "text-ods-text-secondary w-6 h-6 transition-transform duration-300",
@@ -9787,8 +9790,8 @@ var MINIMIZED_WIDTH = 56;
9787
9790
  var EXPANDED_WIDTH = 224;
9788
9791
  var STORAGE_KEY = "of.navigationSidebar.minimized";
9789
9792
  function NavigationSidebar({ config, disabled = false }) {
9790
- const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
9791
- const [minimized, setMinimized] = _chunkALW3D72Ocjs.useLocalStorage.call(void 0,
9793
+ const isLgUp = _nullishCoalesce(_chunkHIMEIPEDcjs.useLgUp.call(void 0, ), () => ( false));
9794
+ const [minimized, setMinimized] = _chunkHIMEIPEDcjs.useLocalStorage.call(void 0,
9792
9795
  STORAGE_KEY,
9793
9796
  !isLgUp || (_nullishCoalesce(config.minimized, () => ( false)))
9794
9797
  );
@@ -9797,14 +9800,14 @@ function NavigationSidebar({ config, disabled = false }) {
9797
9800
  const showLabel = isLgUp && !minimized;
9798
9801
  const handleToggle = _react.useCallback.call(void 0, () => {
9799
9802
  setMinimized((prev) => !prev);
9800
- _optionalChain([config, 'access', _321 => _321.onToggleMinimized, 'optionalCall', _322 => _322()]);
9803
+ _optionalChain([config, 'access', _322 => _322.onToggleMinimized, 'optionalCall', _323 => _323()]);
9801
9804
  }, [setMinimized, config]);
9802
9805
  const handleItemClick = _react.useCallback.call(void 0, (item, event) => {
9803
- _optionalChain([event, 'optionalAccess', _323 => _323.stopPropagation, 'call', _324 => _324()]);
9806
+ _optionalChain([event, 'optionalAccess', _324 => _324.stopPropagation, 'call', _325 => _325()]);
9804
9807
  if (item.onClick) {
9805
9808
  item.onClick();
9806
9809
  } else if (item.path) {
9807
- _optionalChain([config, 'access', _325 => _325.onNavigate, 'optionalCall', _326 => _326(item.path)]);
9810
+ _optionalChain([config, 'access', _326 => _326.onNavigate, 'optionalCall', _327 => _327(item.path)]);
9808
9811
  }
9809
9812
  }, [config]);
9810
9813
  const { primaryItems, secondaryItems } = _react.useMemo.call(void 0, () => ({
@@ -9944,7 +9947,7 @@ function NotificationsProvider({
9944
9947
  const setShowPopups = React28.useCallback(
9945
9948
  (value2) => {
9946
9949
  setShowPopupsState(value2);
9947
- _optionalChain([onShowPopupsChange, 'optionalCall', _327 => _327(value2)]);
9950
+ _optionalChain([onShowPopupsChange, 'optionalCall', _328 => _328(value2)]);
9948
9951
  },
9949
9952
  [onShowPopupsChange]
9950
9953
  );
@@ -10049,11 +10052,11 @@ function HeaderGlobalSearch({
10049
10052
  };
10050
10053
  const handleSubmit = (e) => {
10051
10054
  e.preventDefault();
10052
- _optionalChain([onSubmit, 'optionalCall', _328 => _328(currentValue)]);
10055
+ _optionalChain([onSubmit, 'optionalCall', _329 => _329(currentValue)]);
10053
10056
  };
10054
10057
  const handleKeyDown = (e) => {
10055
10058
  if (e.key === "Enter") {
10056
- _optionalChain([onSubmit, 'optionalCall', _329 => _329(currentValue)]);
10059
+ _optionalChain([onSubmit, 'optionalCall', _330 => _330(currentValue)]);
10057
10060
  }
10058
10061
  };
10059
10062
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -10099,8 +10102,8 @@ function HeaderOrganizationFilter({
10099
10102
  className
10100
10103
  }) {
10101
10104
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
10102
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _330 => _330.name]) || "All Organizations";
10103
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _331 => _331.deviceCount]), () => ( totalDeviceCount));
10105
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _331 => _331.name]) || "All Organizations";
10106
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _332 => _332.deviceCount]), () => ( totalDeviceCount));
10104
10107
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenu, { children: [
10105
10108
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10106
10109
  "button",
@@ -10113,7 +10116,7 @@ function HeaderOrganizationFilter({
10113
10116
  className
10114
10117
  ),
10115
10118
  children: [
10116
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Filter02Icon, { className: "w-4 h-4 shrink-0 text-ods-text-secondary" }),
10119
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Filter02Icon, { className: "w-4 h-4 shrink-0 text-ods-text-secondary" }),
10117
10120
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start justify-center min-w-0", children: [
10118
10121
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-mono text-sm font-medium leading-5 text-ods-text-primary uppercase tracking-tight truncate", children: displayName }),
10119
10122
  deviceCount !== void 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-sm font-medium leading-5 text-ods-text-secondary truncate", children: [
@@ -10125,11 +10128,11 @@ function HeaderOrganizationFilter({
10125
10128
  }
10126
10129
  ) }),
10127
10130
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
10128
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _332 => _332("")]), children: "All Organizations" }),
10131
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBJTOSUT4cjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _333 => _333("")]), children: "All Organizations" }),
10129
10132
  organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10130
10133
  _chunkBJTOSUT4cjs.DropdownMenuItem,
10131
10134
  {
10132
- onClick: () => _optionalChain([onOrgChange, 'optionalCall', _333 => _333(org.id)]),
10135
+ onClick: () => _optionalChain([onOrgChange, 'optionalCall', _334 => _334(org.id)]),
10133
10136
  children: org.name
10134
10137
  },
10135
10138
  org.id
@@ -10160,7 +10163,7 @@ var AppHeader = React37.default.memo(function AppHeader2({
10160
10163
  onToggleMobileMenu,
10161
10164
  disabled = false
10162
10165
  }) {
10163
- const isMdUp = _nullishCoalesce(_chunkALW3D72Ocjs.useMdUp.call(void 0, ), () => ( false));
10166
+ const isMdUp = _nullishCoalesce(_chunkHIMEIPEDcjs.useMdUp.call(void 0, ), () => ( false));
10164
10167
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
10165
10168
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
10166
10169
  "header",
@@ -10175,7 +10178,7 @@ var AppHeader = React37.default.memo(function AppHeader2({
10175
10178
  {
10176
10179
  onClick: onToggleMobileMenu,
10177
10180
  isActive: isMobileMenuOpen,
10178
- icon: isMobileMenuOpen ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkIcon, { className: "w-4 h-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Menu01Icon, { className: "w-4 h-4" }),
10181
+ icon: isMobileMenuOpen ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkIcon, { className: "w-4 h-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Menu01Icon, { className: "w-4 h-4" }),
10179
10182
  "aria-label": isMobileMenuOpen ? "Close menu" : "Open menu",
10180
10183
  "aria-expanded": isMobileMenuOpen
10181
10184
  }
@@ -10301,10 +10304,10 @@ function NotificationsHeaderButton({
10301
10304
  dimmedClass
10302
10305
  }) {
10303
10306
  const ctx = useOptionalNotifications();
10304
- const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _334 => _334.unreadCount]), () => ( fallbackUnreadCount));
10305
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _335 => _335.isOpen]), () => ( false));
10306
- const onClick = _optionalChain([ctx, 'optionalAccess', _336 => _336.toggle]);
10307
- const Icon2 = unreadCount > 0 ? _chunkTMD5LDX4cjs.BellRingingIcon : _chunkTMD5LDX4cjs.BellIcon;
10307
+ const unreadCount = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _335 => _335.unreadCount]), () => ( fallbackUnreadCount));
10308
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _336 => _336.isOpen]), () => ( false));
10309
+ const onClick = _optionalChain([ctx, 'optionalAccess', _337 => _337.toggle]);
10310
+ const Icon2 = unreadCount > 0 ? _chunkVJTFBYVGcjs.BellRingingIcon : _chunkVJTFBYVGcjs.BellIcon;
10308
10311
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10309
10312
  HeaderButton,
10310
10313
  {
@@ -10477,7 +10480,7 @@ var Switch = React32.forwardRef(({ className, checked, onCheckedChange, ...props
10477
10480
  }, [checked]);
10478
10481
  const handleCheckedChange = (newChecked) => {
10479
10482
  setIsChecked(newChecked);
10480
- _optionalChain([onCheckedChange, 'optionalCall', _337 => _337(newChecked)]);
10483
+ _optionalChain([onCheckedChange, 'optionalCall', _338 => _338(newChecked)]);
10481
10484
  };
10482
10485
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10483
10486
  SwitchPrimitives.Root,
@@ -10530,7 +10533,7 @@ function NotificationTile({
10530
10533
  if (!isLive) return;
10531
10534
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
10532
10535
  const timer = window.setTimeout(() => {
10533
- _optionalChain([onSettle, 'optionalCall', _338 => _338(id)]);
10536
+ _optionalChain([onSettle, 'optionalCall', _339 => _339(id)]);
10534
10537
  }, remaining);
10535
10538
  return () => window.clearTimeout(timer);
10536
10539
  }, [id, isLive, initialElapsed, liveDurationMs, onSettle]);
@@ -10543,7 +10546,7 @@ function NotificationTile({
10543
10546
  ),
10544
10547
  children: [
10545
10548
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]", children: [
10546
- /* @__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]) }) }),
10549
+ /* @__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", _chunkHIMEIPEDcjs.dotColorByVariant[variant]) }) }),
10547
10550
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col", children: [
10548
10551
  title ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-h4 text-ods-text-primary", children: title }) : null,
10549
10552
  description ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", children: description }) : null
@@ -10560,7 +10563,7 @@ function NotificationTile({
10560
10563
  "shrink-0 text-ods-text-secondary hover:text-ods-text-primary",
10561
10564
  isLive && "invisible"
10562
10565
  ),
10563
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckCircleIcon, {})
10566
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckCircleIcon, {})
10564
10567
  }
10565
10568
  )
10566
10569
  ] }),
@@ -10568,14 +10571,14 @@ function NotificationTile({
10568
10571
  "button",
10569
10572
  {
10570
10573
  type: "button",
10571
- onClick: () => _optionalChain([onSettle, 'optionalCall', _339 => _339(id)]),
10574
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _340 => _340(id)]),
10572
10575
  "aria-label": "Dismiss notification",
10573
10576
  tabIndex: isLive ? 0 : -1,
10574
10577
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
10575
10578
  "absolute right-[var(--spacing-system-xsf)] top-[var(--spacing-system-xsf)] flex size-4 items-center justify-center text-ods-text-secondary transition-opacity duration-200 hover:text-ods-text-primary",
10576
10579
  !isLive && "pointer-events-none opacity-0"
10577
10580
  ),
10578
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkIcon, { size: 16 })
10581
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkIcon, { size: 16 })
10579
10582
  }
10580
10583
  ),
10581
10584
  isLive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10584,7 +10587,7 @@ function NotificationTile({
10584
10587
  "aria-hidden": true,
10585
10588
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
10586
10589
  "absolute inset-x-0 -bottom-px h-1 origin-left",
10587
- _chunkALW3D72Ocjs.progressColorByVariant[variant]
10590
+ _chunkHIMEIPEDcjs.progressColorByVariant[variant]
10588
10591
  ),
10589
10592
  style: {
10590
10593
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -10667,7 +10670,7 @@ function NotificationDrawer({ className, liveDurationMs }) {
10667
10670
  }
10668
10671
  function EmptyState() {
10669
10672
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-xs)] py-[var(--spacing-system-l)]", children: [
10670
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.BellOffIcon, { size: 24, className: "text-ods-text-secondary" }),
10673
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.BellOffIcon, { size: 24, className: "text-ods-text-secondary" }),
10671
10674
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: "No new notifications" })
10672
10675
  ] });
10673
10676
  }
@@ -10695,7 +10698,7 @@ function NotificationsHistoryButton({ onClick }) {
10695
10698
  fullWidth: true,
10696
10699
  disabled: !onClick,
10697
10700
  onClick,
10698
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.ClockHistoryIcon, { className: "!size-6 text-ods-text-secondary" }),
10701
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.ClockHistoryIcon, { className: "!size-6 text-ods-text-secondary" }),
10699
10702
  children: "Notifications History"
10700
10703
  }
10701
10704
  );
@@ -10740,7 +10743,7 @@ var MobileBurgerMenu = React37.default.memo(function MobileBurgerMenu2({
10740
10743
  if (item.onClick) {
10741
10744
  item.onClick();
10742
10745
  } else if (item.path) {
10743
- _optionalChain([config, 'access', _340 => _340.onNavigate, 'optionalCall', _341 => _341(item.path)]);
10746
+ _optionalChain([config, 'access', _341 => _341.onNavigate, 'optionalCall', _342 => _342(item.path)]);
10744
10747
  }
10745
10748
  onClose();
10746
10749
  }, [config, onClose]);
@@ -10858,7 +10861,7 @@ var MobileBurgerMenu = React37.default.memo(function MobileBurgerMenu2({
10858
10861
  onClick: onSearchUser,
10859
10862
  variant: "outline",
10860
10863
  "aria-label": "Search users",
10861
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.UserSearchIcon, { className: "size-4 text-ods-text-primary" })
10864
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.UserSearchIcon, { className: "size-4 text-ods-text-primary" })
10862
10865
  }
10863
10866
  ),
10864
10867
  onEditProfile && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10868,7 +10871,7 @@ var MobileBurgerMenu = React37.default.memo(function MobileBurgerMenu2({
10868
10871
  onClick: onEditProfile,
10869
10872
  variant: "outline",
10870
10873
  "aria-label": "Edit profile",
10871
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PenEditIcon, { className: "size-4 text-ods-text-primary" })
10874
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.PenEditIcon, { className: "size-4 text-ods-text-primary" })
10872
10875
  }
10873
10876
  )
10874
10877
  ] })
@@ -10888,7 +10891,7 @@ var MobileBurgerMenu = React37.default.memo(function MobileBurgerMenu2({
10888
10891
  disabled && "cursor-not-allowed opacity-50"
10889
10892
  ),
10890
10893
  children: [
10891
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Logout02Icon, { className: "size-4 text-ods-error" }),
10894
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Logout02Icon, { className: "size-4 text-ods-error" }),
10892
10895
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-sm leading-5 flex-1 text-left text-ods-text-primary", children: "Log Out" })
10893
10896
  ]
10894
10897
  }
@@ -11036,7 +11039,7 @@ var ToolBadge = ({
11036
11039
  }) => {
11037
11040
  const label = getToolLabel(toolType);
11038
11041
  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: [
11039
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
11042
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHIMEIPEDcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
11040
11043
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
11041
11044
  ] });
11042
11045
  };
@@ -11047,7 +11050,7 @@ _chunkOFAYLG6Dcjs.init_cn.call(void 0, );
11047
11050
 
11048
11051
  var shellIconMap = {
11049
11052
  [ShellTypeValues.POWERSHELL]: {
11050
- icon: _chunkTMD5LDX4cjs.PowershellLogoIcon,
11053
+ icon: _chunkVJTFBYVGcjs.PowershellLogoIcon,
11051
11054
  props: { size: 16, className: "text-ods-text-secondary" }
11052
11055
  },
11053
11056
  [ShellTypeValues.CMD]: {
@@ -11059,7 +11062,7 @@ var shellIconMap = {
11059
11062
  props: { size: 16, color: "#888888" }
11060
11063
  },
11061
11064
  [ShellTypeValues.PYTHON]: {
11062
- icon: _chunkTMD5LDX4cjs.PythonLogoIcon,
11065
+ icon: _chunkVJTFBYVGcjs.PythonLogoIcon,
11063
11066
  props: { size: 16, className: "text-ods-text-secondary" }
11064
11067
  },
11065
11068
  [ShellTypeValues.NUSHELL]: {
@@ -11084,7 +11087,7 @@ var ShellTypeBadge = ({
11084
11087
  className,
11085
11088
  iconClassName
11086
11089
  }) => {
11087
- const normalizedType = _optionalChain([shellType, 'optionalAccess', _342 => _342.toUpperCase, 'call', _343 => _343()]);
11090
+ const normalizedType = _optionalChain([shellType, 'optionalAccess', _343 => _343.toUpperCase, 'call', _344 => _344()]);
11088
11091
  const label = getShellLabel(normalizedType);
11089
11092
  const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
11090
11093
  const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
@@ -11541,7 +11544,7 @@ function AnnouncementBar() {
11541
11544
  setIsVisible(false);
11542
11545
  };
11543
11546
  const handleCtaClick = () => {
11544
- if (!_optionalChain([announcement, 'optionalAccess', _344 => _344.cta_url])) return;
11547
+ if (!_optionalChain([announcement, 'optionalAccess', _345 => _345.cta_url])) return;
11545
11548
  announcement.cta_target === "_blank" ? window.open(announcement.cta_url, "_blank", "noopener,noreferrer") : window.location.href = announcement.cta_url;
11546
11549
  };
11547
11550
  const renderIcon = () => {
@@ -11667,8 +11670,8 @@ function getVendorLogo(vendor) {
11667
11670
  if (vendor.logo) {
11668
11671
  return fixSupabaseStorageUrl(vendor.logo);
11669
11672
  }
11670
- const logoMedia = _optionalChain([vendor, 'access', _345 => _345.vendor_media, 'optionalAccess', _346 => _346.find, 'call', _347 => _347((m) => m.media_type === "logo")]);
11671
- if (_optionalChain([logoMedia, 'optionalAccess', _348 => _348.media_url])) {
11673
+ const logoMedia = _optionalChain([vendor, 'access', _346 => _346.vendor_media, 'optionalAccess', _347 => _347.find, 'call', _348 => _348((m) => m.media_type === "logo")]);
11674
+ if (_optionalChain([logoMedia, 'optionalAccess', _349 => _349.media_url])) {
11672
11675
  return fixSupabaseStorageUrl(logoMedia.media_url);
11673
11676
  }
11674
11677
  return null;
@@ -11743,7 +11746,7 @@ function VendorIcon({
11743
11746
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0,
11744
11747
  "flex items-center justify-center text-xs font-medium uppercase",
11745
11748
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
11746
- ), children: _optionalChain([vendor, 'access', _349 => _349.title, 'optionalAccess', _350 => _350.substring, 'call', _351 => _351(0, 2)]) || "??" }) });
11749
+ ), children: _optionalChain([vendor, 'access', _350 => _350.title, 'optionalAccess', _351 => _351.substring, 'call', _352 => _352(0, 2)]) || "??" }) });
11747
11750
  }
11748
11751
 
11749
11752
  // src/components/categories-cart.tsx
@@ -12027,7 +12030,7 @@ function UserSummary({
12027
12030
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
12028
12031
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", children: [
12029
12032
  name,
12030
- _optionalChain([mspPreview, 'optionalAccess', _352 => _352.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
12033
+ _optionalChain([mspPreview, 'optionalAccess', _353 => _353.name]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary", children: [
12031
12034
  " \u2022 ",
12032
12035
  mspPreview.name
12033
12036
  ] })
@@ -12049,7 +12052,7 @@ function UserSummary({
12049
12052
  height: 40,
12050
12053
  className: "object-cover"
12051
12054
  }
12052
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _353 => _353.name, 'optionalAccess', _354 => _354.charAt, 'call', _355 => _355(0), 'access', _356 => _356.toUpperCase, 'call', _357 => _357()]) || "?" }) })
12055
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary font-heading text-sm font-bold", children: _optionalChain([mspPreview, 'access', _354 => _354.name, 'optionalAccess', _355 => _355.charAt, 'call', _356 => _356(0), 'access', _357 => _357.toUpperCase, 'call', _358 => _358()]) || "?" }) })
12053
12056
  ] }),
12054
12057
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 grid grid-cols-[1fr_auto] gap-4", children: [
12055
12058
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[6rem] flex flex-col justify-center space-y-3 truncate", children: [
@@ -12062,7 +12065,7 @@ function UserSummary({
12062
12065
  typeof mspPreview.annualRevenue === "number" ? `$${formatNumber2(mspPreview.annualRevenue)}` : null
12063
12066
  ].filter(Boolean).flatMap((txt, idx) => idx === 0 ? [txt] : [" \u2022 ", txt]).map((seg, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: seg === " \u2022 " ? "text-ods-text-secondary" : "", children: seg }, idx)) })
12064
12067
  ] }),
12065
- (_optionalChain([authProviders, 'optionalAccess', _358 => _358.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
12068
+ (_optionalChain([authProviders, 'optionalAccess', _359 => _359.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "hidden md:flex flex-col items-end justify-between flex-shrink-0 min-h-[6rem]", children: [
12066
12069
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
12067
12070
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
12068
12071
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -12071,7 +12074,7 @@ function UserSummary({
12071
12074
  ] })
12072
12075
  ] })
12073
12076
  ] }),
12074
- (_optionalChain([authProviders, 'optionalAccess', _359 => _359.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
12077
+ (_optionalChain([authProviders, 'optionalAccess', _360 => _360.length]) || showEditButton) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex md:hidden items-center justify-between w-full gap-4", children: [
12075
12078
  authProviders && authProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
12076
12079
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs text-ods-text-secondary whitespace-nowrap select-none", children: "Authorized by" }),
12077
12080
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-2", children: authProviders.map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-4 h-4", children: getAuthProviderIcon(p) }, p)) })
@@ -12792,7 +12795,7 @@ function FilterChip({
12792
12795
  onClick: disabled ? void 0 : (e) => {
12793
12796
  e.preventDefault();
12794
12797
  e.stopPropagation();
12795
- _optionalChain([onClick, 'optionalCall', _360 => _360()]);
12798
+ _optionalChain([onClick, 'optionalCall', _361 => _361()]);
12796
12799
  },
12797
12800
  role: onClick ? "button" : void 0,
12798
12801
  tabIndex: onClick && !disabled ? 0 : void 0,
@@ -12979,13 +12982,13 @@ function useUnifiedFiltering(config) {
12979
12982
  const searchParams = _navigation.useSearchParams.call(void 0, );
12980
12983
  const [isPending, startTransition] = _react.useTransition.call(void 0, );
12981
12984
  const getCurrentFilterState = () => {
12982
- const search = _optionalChain([searchParams, 'optionalAccess', _361 => _361.get, 'call', _362 => _362("search")]) || void 0;
12983
- const categories = _optionalChain([searchParams, 'optionalAccess', _363 => _363.get, 'call', _364 => _364("category"), 'optionalAccess', _365 => _365.split, 'call', _366 => _366(","), 'access', _367 => _367.filter, 'call', _368 => _368(Boolean)]) || [];
12984
- const subcategories = _optionalChain([searchParams, 'optionalAccess', _369 => _369.get, 'call', _370 => _370("subcategory"), 'optionalAccess', _371 => _371.split, 'call', _372 => _372(","), 'access', _373 => _373.filter, 'call', _374 => _374(Boolean)]) || [];
12985
- const tags = _optionalChain([searchParams, 'optionalAccess', _375 => _375.get, 'call', _376 => _376("tag"), 'optionalAccess', _377 => _377.split, 'call', _378 => _378(","), 'access', _379 => _379.filter, 'call', _380 => _380(Boolean)]) || [];
12986
- const filters = _optionalChain([searchParams, 'optionalAccess', _381 => _381.getAll, 'call', _382 => _382("filter")]) || [];
12987
- const pricing = _optionalChain([searchParams, 'optionalAccess', _383 => _383.get, 'call', _384 => _384("pricing")]) || void 0;
12988
- const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _385 => _385.get, 'call', _386 => _386("page")]) || "1");
12985
+ const search = _optionalChain([searchParams, 'optionalAccess', _362 => _362.get, 'call', _363 => _363("search")]) || void 0;
12986
+ const categories = _optionalChain([searchParams, 'optionalAccess', _364 => _364.get, 'call', _365 => _365("category"), 'optionalAccess', _366 => _366.split, 'call', _367 => _367(","), 'access', _368 => _368.filter, 'call', _369 => _369(Boolean)]) || [];
12987
+ const subcategories = _optionalChain([searchParams, 'optionalAccess', _370 => _370.get, 'call', _371 => _371("subcategory"), 'optionalAccess', _372 => _372.split, 'call', _373 => _373(","), 'access', _374 => _374.filter, 'call', _375 => _375(Boolean)]) || [];
12988
+ const tags = _optionalChain([searchParams, 'optionalAccess', _376 => _376.get, 'call', _377 => _377("tag"), 'optionalAccess', _378 => _378.split, 'call', _379 => _379(","), 'access', _380 => _380.filter, 'call', _381 => _381(Boolean)]) || [];
12989
+ const filters = _optionalChain([searchParams, 'optionalAccess', _382 => _382.getAll, 'call', _383 => _383("filter")]) || [];
12990
+ const pricing = _optionalChain([searchParams, 'optionalAccess', _384 => _384.get, 'call', _385 => _385("pricing")]) || void 0;
12991
+ const page = parseInt(_optionalChain([searchParams, 'optionalAccess', _386 => _386.get, 'call', _387 => _387("page")]) || "1");
12989
12992
  return {
12990
12993
  search,
12991
12994
  categories,
@@ -13266,13 +13269,13 @@ function FooterWaitlistButton({ className }) {
13266
13269
  const router = _navigation.useRouter.call(void 0, );
13267
13270
  const pathname = _navigation.usePathname.call(void 0, );
13268
13271
  const handleClick = _react.useCallback.call(void 0, () => {
13269
- if (_optionalChain([pathname, 'optionalAccess', _387 => _387.startsWith, 'call', _388 => _388("/waitlist")])) {
13272
+ if (_optionalChain([pathname, 'optionalAccess', _388 => _388.startsWith, 'call', _389 => _389("/waitlist")])) {
13270
13273
  const anchor = document.getElementById("waitlist-form");
13271
13274
  if (anchor) {
13272
13275
  anchor.scrollIntoView({ behavior: "smooth", block: "center" });
13273
13276
  setTimeout(() => {
13274
13277
  const input = anchor.querySelector('input[type="email"]');
13275
- _optionalChain([input, 'optionalAccess', _389 => _389.focus, 'call', _390 => _390()]);
13278
+ _optionalChain([input, 'optionalAccess', _390 => _390.focus, 'call', _391 => _391()]);
13276
13279
  }, 400);
13277
13280
  return;
13278
13281
  }
@@ -13297,11 +13300,11 @@ _chunkBJTOSUT4cjs.init_button2.call(void 0, );
13297
13300
 
13298
13301
  function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
13299
13302
  const inputRef = _react.useRef.call(void 0, null);
13300
- const { toast } = _chunkALW3D72Ocjs.useToast.call(void 0, );
13303
+ const { toast } = _chunkHIMEIPEDcjs.useToast.call(void 0, );
13301
13304
  const [uploading, setUploading] = _react.useState.call(void 0, false);
13302
13305
  const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
13303
13306
  const MAX_SIZE = 5 * 1024 * 1024;
13304
- const openDialog = () => _optionalChain([inputRef, 'access', _391 => _391.current, 'optionalAccess', _392 => _392.click, 'call', _393 => _393()]);
13307
+ const openDialog = () => _optionalChain([inputRef, 'access', _392 => _392.current, 'optionalAccess', _393 => _393.click, 'call', _394 => _394()]);
13305
13308
  async function handleFile(file) {
13306
13309
  if (!file) return;
13307
13310
  if (!ALLOWED_TYPES.includes(file.type)) {
@@ -13357,7 +13360,7 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
13357
13360
  }
13358
13361
  }
13359
13362
  const handleSelect = (e) => {
13360
- handleFile(_optionalChain([e, 'access', _394 => _394.target, 'access', _395 => _395.files, 'optionalAccess', _396 => _396[0]]));
13363
+ handleFile(_optionalChain([e, 'access', _395 => _395.target, 'access', _396 => _396.files, 'optionalAccess', _397 => _397[0]]));
13361
13364
  };
13362
13365
  const handleRemove = async () => {
13363
13366
  if (onDelete) {
@@ -13494,7 +13497,7 @@ function ResponsiveIconsBlock({ loading = false }) {
13494
13497
  const getIconForIndex = (index) => {
13495
13498
  const col = index % displayColumns;
13496
13499
  const row = Math.floor(index / displayColumns);
13497
- return _optionalChain([iconGrid, 'access', _397 => _397[row], 'optionalAccess', _398 => _398[col]]) || availableIcons[0];
13500
+ return _optionalChain([iconGrid, 'access', _398 => _398[row], 'optionalAccess', _399 => _399[col]]) || availableIcons[0];
13498
13501
  };
13499
13502
  if (loading || iconGrid.length === 0) {
13500
13503
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -13580,7 +13583,7 @@ var Slider = React39.forwardRef(
13580
13583
  ({ className, value = [0], onValueChange, min = 0, max = 100, step = 1, ...props }, ref) => {
13581
13584
  const handleChange = (e) => {
13582
13585
  const newValue = [Number(e.target.value)];
13583
- _optionalChain([onValueChange, 'optionalCall', _399 => _399(newValue)]);
13586
+ _optionalChain([onValueChange, 'optionalCall', _400 => _400(newValue)]);
13584
13587
  };
13585
13588
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13586
13589
  "input",
@@ -13693,7 +13696,7 @@ var ImageCropper = ({
13693
13696
  });
13694
13697
  } else if (e.key === "Escape") {
13695
13698
  e.preventDefault();
13696
- _optionalChain([onCancel, 'optionalCall', _400 => _400()]);
13699
+ _optionalChain([onCancel, 'optionalCall', _401 => _401()]);
13697
13700
  }
13698
13701
  };
13699
13702
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13939,7 +13942,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13939
13942
  loading: "lazy"
13940
13943
  }
13941
13944
  ),
13942
- (item.type === "video" || item.type === "youtube") && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-black/70 rounded-full p-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PlayIcon, { size: 12, color: "white" }) }) }),
13945
+ (item.type === "video" || item.type === "youtube") && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-black/70 rounded-full p-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.PlayIcon, { size: 12, color: "white" }) }) }),
13943
13946
  isActive && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute bottom-1 right-1 w-2 h-2 bg-[#FFC008] rounded-full" })
13944
13947
  ]
13945
13948
  },
@@ -14393,8 +14396,8 @@ function PricingDisplay({
14393
14396
  }
14394
14397
  if (pricingArray.length === 1) {
14395
14398
  const item = pricingArray[0];
14396
- const price = _optionalChain([item, 'access', _401 => _401.ranges, 'optionalAccess', _402 => _402[0], 'optionalAccess', _403 => _403.min]) || 0;
14397
- const unit = _optionalChain([item, 'access', _404 => _404.ranges, 'optionalAccess', _405 => _405[0], 'optionalAccess', _406 => _406.unit]);
14399
+ const price = _optionalChain([item, 'access', _402 => _402.ranges, 'optionalAccess', _403 => _403[0], 'optionalAccess', _404 => _404.min]) || 0;
14400
+ const unit = _optionalChain([item, 'access', _405 => _405.ranges, 'optionalAccess', _406 => _406[0], 'optionalAccess', _407 => _407.unit]);
14398
14401
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
14399
14402
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
14400
14403
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -14403,11 +14406,11 @@ function PricingDisplay({
14403
14406
  ] })
14404
14407
  ] });
14405
14408
  }
14406
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _407 => _407.ranges, 'optionalAccess', _408 => _408[0], 'optionalAccess', _409 => _409.min]) || 0, styleConfig.showTildePrefix));
14407
- const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _410 => _410.ranges, 'optionalAccess', _411 => _411[0], 'optionalAccess', _412 => _412.unit]));
14409
+ const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _408 => _408.ranges, 'optionalAccess', _409 => _409[0], 'optionalAccess', _410 => _410.min]) || 0, styleConfig.showTildePrefix));
14410
+ const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _411 => _411.ranges, 'optionalAccess', _412 => _412[0], 'optionalAccess', _413 => _413.unit]));
14408
14411
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
14409
14412
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
14410
- itemWithUnit && _optionalChain([itemWithUnit, 'access', _413 => _413.ranges, 'optionalAccess', _414 => _414[0], 'optionalAccess', _415 => _415.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
14413
+ itemWithUnit && _optionalChain([itemWithUnit, 'access', _414 => _414.ranges, 'optionalAccess', _415 => _415[0], 'optionalAccess', _416 => _416.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
14411
14414
  "/",
14412
14415
  itemWithUnit.ranges[0].unit
14413
14416
  ] })
@@ -14605,7 +14608,7 @@ function VendorTag({
14605
14608
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
14606
14609
  };
14607
14610
  case "classification":
14608
- const classificationType = _optionalChain([text, 'optionalAccess', _416 => _416.toLowerCase, 'call', _417 => _417()]);
14611
+ const classificationType = _optionalChain([text, 'optionalAccess', _417 => _417.toLowerCase, 'call', _418 => _418()]);
14609
14612
  if (classificationType === "open_source") {
14610
14613
  return {
14611
14614
  text: "Open Source",
@@ -14659,7 +14662,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14659
14662
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14660
14663
  VendorTag,
14661
14664
  {
14662
- type: _optionalChain([source, 'optionalAccess', _418 => _418.toLowerCase, 'call', _419 => _419()]),
14665
+ type: _optionalChain([source, 'optionalAccess', _419 => _419.toLowerCase, 'call', _420 => _420()]),
14663
14666
  size: "sm",
14664
14667
  hidden
14665
14668
  },
@@ -16716,7 +16719,7 @@ function OnboardingWalkthrough({
16716
16719
  isStepSkipped,
16717
16720
  allStepsComplete,
16718
16721
  markMultipleComplete
16719
- } = _chunkALW3D72Ocjs.useOnboardingState.call(void 0, storageKey);
16722
+ } = _chunkHIMEIPEDcjs.useOnboardingState.call(void 0, storageKey);
16720
16723
  const hasAutoMarkedRef = _react.useRef.call(void 0, false);
16721
16724
  const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
16722
16725
  const lastCompletionStatusRef = _react.useRef.call(void 0, null);
@@ -16779,12 +16782,12 @@ function OnboardingWalkthrough({
16779
16782
  }
16780
16783
  }, [state.completedSteps, markComplete]);
16781
16784
  const handleStepSkip = (step) => {
16782
- _optionalChain([step, 'access', _420 => _420.onSkip, 'optionalCall', _421 => _421()]);
16785
+ _optionalChain([step, 'access', _421 => _421.onSkip, 'optionalCall', _422 => _422()]);
16783
16786
  markSkipped(step.id);
16784
16787
  };
16785
16788
  const handleDismiss = () => {
16786
16789
  dismissOnboarding();
16787
- _optionalChain([onDismiss, 'optionalCall', _422 => _422()]);
16790
+ _optionalChain([onDismiss, 'optionalCall', _423 => _423()]);
16788
16791
  };
16789
16792
  if (state.dismissed) {
16790
16793
  return null;
@@ -17229,7 +17232,7 @@ var SecondaryAction = ({ action }) => {
17229
17232
  e.preventDefault();
17230
17233
  return;
17231
17234
  }
17232
- _optionalChain([action, 'access', _423 => _423.onClick, 'optionalCall', _424 => _424()]);
17235
+ _optionalChain([action, 'access', _424 => _424.onClick, 'optionalCall', _425 => _425()]);
17233
17236
  },
17234
17237
  [action]
17235
17238
  );
@@ -17270,13 +17273,13 @@ var MenuItem = ({ item, onItemClick }) => {
17270
17273
  const activate = _react.useCallback.call(void 0, () => {
17271
17274
  if (item.disabled) return;
17272
17275
  if (item.type === "checkbox") {
17273
- _optionalChain([item, 'access', _425 => _425.onClick, 'optionalCall', _426 => _426()]);
17274
- _optionalChain([onItemClick, 'optionalCall', _427 => _427(item)]);
17276
+ _optionalChain([item, 'access', _426 => _426.onClick, 'optionalCall', _427 => _427()]);
17277
+ _optionalChain([onItemClick, 'optionalCall', _428 => _428(item)]);
17275
17278
  return;
17276
17279
  }
17277
17280
  if (item.type === "submenu") return;
17278
- _optionalChain([item, 'access', _428 => _428.onClick, 'optionalCall', _429 => _429()]);
17279
- _optionalChain([onItemClick, 'optionalCall', _430 => _430(item)]);
17281
+ _optionalChain([item, 'access', _429 => _429.onClick, 'optionalCall', _430 => _430()]);
17282
+ _optionalChain([onItemClick, 'optionalCall', _431 => _431(item)]);
17280
17283
  }, [item, onItemClick]);
17281
17284
  const handleClick = _react.useCallback.call(void 0,
17282
17285
  (e) => {
@@ -17302,8 +17305,8 @@ var MenuItem = ({ item, onItemClick }) => {
17302
17305
  e.stopPropagation();
17303
17306
  return;
17304
17307
  }
17305
- _optionalChain([item, 'access', _431 => _431.onClick, 'optionalCall', _432 => _432()]);
17306
- _optionalChain([onItemClick, 'optionalCall', _433 => _433(item)]);
17308
+ _optionalChain([item, 'access', _432 => _432.onClick, 'optionalCall', _433 => _433()]);
17309
+ _optionalChain([onItemClick, 'optionalCall', _434 => _434(item)]);
17307
17310
  },
17308
17311
  [item, onItemClick]
17309
17312
  );
@@ -17350,7 +17353,7 @@ var MenuItem = ({ item, onItemClick }) => {
17350
17353
  children: item.checked && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Check, { className: "w-4 h-4 text-black", strokeWidth: 3 })
17351
17354
  }
17352
17355
  ),
17353
- item.type === "submenu" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02RightIcon, { className: "w-6 h-6 text-ods-text-secondary" })
17356
+ item.type === "submenu" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02RightIcon, { className: "w-6 h-6 text-ods-text-secondary" })
17354
17357
  ] });
17355
17358
  if (renderAsLink && item.href) {
17356
17359
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: WRAPPER_CLASSES, children: [
@@ -17458,7 +17461,7 @@ var ActionsMenuDropdown = ({
17458
17461
  const [open, setOpen] = _react.useState.call(void 0, false);
17459
17462
  const handleItemClick = _react.useCallback.call(void 0,
17460
17463
  (item) => {
17461
- _optionalChain([onItemClick, 'optionalCall', _434 => _434(item)]);
17464
+ _optionalChain([onItemClick, 'optionalCall', _435 => _435(item)]);
17462
17465
  if (item.type !== "checkbox" && item.type !== "submenu") {
17463
17466
  setOpen(false);
17464
17467
  }
@@ -17473,7 +17476,7 @@ var ActionsMenuDropdown = ({
17473
17476
  size: "icon",
17474
17477
  "aria-label": triggerAriaLabel,
17475
17478
  className: triggerClassName || "bg-ods-card border-ods-border hover:bg-ods-bg-hover flex items-center justify-center focus-visible:ring-0",
17476
- leftIcon: _nullishCoalesce(trigger, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })))
17479
+ leftIcon: _nullishCoalesce(trigger, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })))
17477
17480
  }
17478
17481
  ))) }),
17479
17482
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17562,7 +17565,7 @@ function renderActionButton(action, opts = {}) {
17562
17565
  disabled: action.disabled,
17563
17566
  loading: action.loading,
17564
17567
  leftIcon: action.icon,
17565
- splitIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02DownIcon, { className: "h-4 w-4" }),
17568
+ splitIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02DownIcon, { className: "h-4 w-4" }),
17566
17569
  className: opts.fullWidth ? "flex-1" : void 0,
17567
17570
  children: action.label
17568
17571
  }
@@ -17629,7 +17632,7 @@ function IconButtonsVariant({
17629
17632
  }) {
17630
17633
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
17631
17634
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
17632
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _435 => _435[0], 'access', _436 => _436.submenu, 'optionalAccess', _437 => _437.length]);
17635
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _436 => _436[0], 'access', _437 => _437.submenu, 'optionalAccess', _438 => _438.length]);
17633
17636
  const singleAction = isSingleAction ? actions[0] : null;
17634
17637
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
17635
17638
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -17719,7 +17722,7 @@ function BackButton({ label = "Back", className, type = "button", ...props }) {
17719
17722
  ),
17720
17723
  ...props,
17721
17724
  children: [
17722
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02LeftIcon, { className: "size-6 shrink-0" }),
17725
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { className: "size-6 shrink-0" }),
17723
17726
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: label })
17724
17727
  ]
17725
17728
  }
@@ -18059,14 +18062,14 @@ function ReleaseDetailPage({
18059
18062
  releaseVersion
18060
18063
  ] })
18061
18064
  ] }) }),
18062
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _438 => _438.map, 'call', _439 => _439((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18065
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _439 => _439.map, 'call', _440 => _440((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18063
18066
  StatusBadge,
18064
18067
  {
18065
- text: (tag.name || _optionalChain([tag, 'access', _440 => _440.blog_tags, 'optionalAccess', _441 => _441.name]) || "").toUpperCase(),
18068
+ text: (tag.name || _optionalChain([tag, 'access', _441 => _441.blog_tags, 'optionalAccess', _442 => _442.name]) || "").toUpperCase(),
18066
18069
  variant: "card",
18067
18070
  className: "bg-ods-card border border-ods-border"
18068
18071
  },
18069
- tag.id || _optionalChain([tag, 'access', _442 => _442.blog_tags, 'optionalAccess', _443 => _443.id])
18072
+ tag.id || _optionalChain([tag, 'access', _443 => _443.blog_tags, 'optionalAccess', _444 => _444.id])
18070
18073
  ))]) }),
18071
18074
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
18072
18075
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
@@ -18085,15 +18088,15 @@ function ReleaseDetailPage({
18085
18088
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18086
18089
  SquareAvatar,
18087
18090
  {
18088
- src: _optionalChain([author, 'optionalAccess', _444 => _444.avatar_url]) || "",
18089
- alt: _optionalChain([author, 'optionalAccess', _445 => _445.full_name]) || "Author",
18090
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _446 => _446.full_name]) || "Unknown"),
18091
+ src: _optionalChain([author, 'optionalAccess', _445 => _445.avatar_url]) || "",
18092
+ alt: _optionalChain([author, 'optionalAccess', _446 => _446.full_name]) || "Author",
18093
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _447 => _447.full_name]) || "Unknown"),
18091
18094
  size: "md",
18092
18095
  variant: "round"
18093
18096
  }
18094
18097
  ),
18095
18098
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18096
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _447 => _447.full_name]) || "Unknown Author" }),
18099
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _448 => _448.full_name]) || "Unknown Author" }),
18097
18100
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18098
18101
  ] })
18099
18102
  ] })
@@ -18124,8 +18127,8 @@ function ReleaseDetailPage({
18124
18127
  videoBites,
18125
18128
  bitesTitle: "Video Clips",
18126
18129
  filterPublishedBites: true,
18127
- srtContent: _optionalChain([release, 'optionalAccess', _448 => _448.srt_content]),
18128
- captionsUrl: _optionalChain([release, 'optionalAccess', _449 => _449.captionsUrl])
18130
+ srtContent: _optionalChain([release, 'optionalAccess', _449 => _449.srt_content]),
18131
+ captionsUrl: _optionalChain([release, 'optionalAccess', _450 => _450.captionsUrl])
18129
18132
  }
18130
18133
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18131
18134
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -18141,8 +18144,8 @@ function ReleaseDetailPage({
18141
18144
  Video2,
18142
18145
  {
18143
18146
  url: mainVideoUrl,
18144
- srtContent: _optionalChain([release, 'optionalAccess', _450 => _450.srt_content]),
18145
- captionsUrl: _optionalChain([release, 'optionalAccess', _451 => _451.captionsUrl]),
18147
+ srtContent: _optionalChain([release, 'optionalAccess', _451 => _451.srt_content]),
18148
+ captionsUrl: _optionalChain([release, 'optionalAccess', _452 => _452.captionsUrl]),
18146
18149
  layout: "centered"
18147
18150
  }
18148
18151
  ),
@@ -18232,7 +18235,7 @@ function ReleaseDetailPage({
18232
18235
  }
18233
18236
  )
18234
18237
  ] }),
18235
- (_optionalChain([githubReleases, 'optionalAccess', _452 => _452.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _453 => _453.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18238
+ (_optionalChain([githubReleases, 'optionalAccess', _453 => _453.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _454 => _454.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18236
18239
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18237
18240
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
18238
18241
  githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
@@ -18261,7 +18264,7 @@ function ReleaseDetailPage({
18261
18264
  {
18262
18265
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18263
18266
  className: "text-h4 text-[#ffc008] hover:underline",
18264
- children: _optionalChain([path, 'access', _454 => _454.replace, 'call', _455 => _455(/^\//, ""), 'access', _456 => _456.split, 'call', _457 => _457("/"), 'access', _458 => _458.pop, 'call', _459 => _459(), 'optionalAccess', _460 => _460.replace, 'call', _461 => _461(/-/g, " ")]) || "View Article"
18267
+ children: _optionalChain([path, 'access', _455 => _455.replace, 'call', _456 => _456(/^\//, ""), 'access', _457 => _457.split, 'call', _458 => _458("/"), 'access', _459 => _459.pop, 'call', _460 => _460(), 'optionalAccess', _461 => _461.replace, 'call', _462 => _462(/-/g, " ")]) || "View Article"
18265
18268
  }
18266
18269
  ),
18267
18270
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -18360,7 +18363,7 @@ function InfoCard({ data, className = "" }) {
18360
18363
  );
18361
18364
  }
18362
18365
  function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel }) {
18363
- const { copy, copied } = _chunkALW3D72Ocjs.useCopyToClipboard.call(void 0, );
18366
+ const { copy, copied } = _chunkHIMEIPEDcjs.useCopyToClipboard.call(void 0, );
18364
18367
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
18365
18368
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
18366
18369
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
@@ -18383,7 +18386,7 @@ function InfoCardValueRow({ label, value, showLabel, copyable, copyAriaLabel })
18383
18386
  copied ? "text-ods-success" : "text-ods-text-secondary hover:text-ods-text-primary"
18384
18387
  ),
18385
18388
  "aria-label": copyAriaLabel,
18386
- children: copied ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { size: 16 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Copy01Icon, { size: 16 })
18389
+ children: copied ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { size: 16 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Copy01Icon, { size: 16 })
18387
18390
  }
18388
18391
  )
18389
18392
  ] })
@@ -18572,7 +18575,7 @@ var ProgressBar = ({
18572
18575
  mobileHeight = 8,
18573
18576
  inverted = false
18574
18577
  }) => {
18575
- const isMdUp = _nullishCoalesce(_chunkALW3D72Ocjs.useMdUp.call(void 0, ), () => ( true));
18578
+ const isMdUp = _nullishCoalesce(_chunkHIMEIPEDcjs.useMdUp.call(void 0, ), () => ( true));
18576
18579
  const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
18577
18580
  const effectiveHeight = isMdUp ? height : mobileHeight;
18578
18581
  const containerRef = _react.useRef.call(void 0, null);
@@ -18907,7 +18910,7 @@ function TagsManager({
18907
18910
  const name = search.trim();
18908
18911
  if (!name) return;
18909
18912
  const result = await onCreateTag(name);
18910
- if (_optionalChain([result, 'optionalAccess', _462 => _462.id])) {
18913
+ if (_optionalChain([result, 'optionalAccess', _463 => _463.id])) {
18911
18914
  onChange([...selectedIds, result.id]);
18912
18915
  setSearch("");
18913
18916
  }
@@ -18915,7 +18918,7 @@ function TagsManager({
18915
18918
  const startEdit = React55.useCallback((id, name) => {
18916
18919
  setEditingId(id);
18917
18920
  setEditingName(name);
18918
- setTimeout(() => _optionalChain([editInputRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.focus, 'call', _465 => _465()]), 0);
18921
+ setTimeout(() => _optionalChain([editInputRef, 'access', _464 => _464.current, 'optionalAccess', _465 => _465.focus, 'call', _466 => _466()]), 0);
18919
18922
  }, []);
18920
18923
  const confirmEdit = React55.useCallback(async () => {
18921
18924
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -18942,7 +18945,7 @@ function TagsManager({
18942
18945
  e.stopPropagation();
18943
18946
  onChange([]);
18944
18947
  setSearch("");
18945
- _optionalChain([inputRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.focus, 'call', _468 => _468()]);
18948
+ _optionalChain([inputRef, 'access', _467 => _467.current, 'optionalAccess', _468 => _468.focus, 'call', _469 => _469()]);
18946
18949
  },
18947
18950
  [onChange]
18948
18951
  );
@@ -19020,7 +19023,7 @@ function TagsManager({
19020
19023
  onClick: handleClearAll,
19021
19024
  className: "flex-shrink-0 flex items-center justify-center hover:opacity-70 transition-opacity [&_svg]:size-4 md:[&_svg]:size-6",
19022
19025
  "aria-label": "Clear all tags",
19023
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "text-ods-text-secondary" })
19026
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "text-ods-text-secondary" })
19024
19027
  }
19025
19028
  )
19026
19029
  ]
@@ -19041,10 +19044,10 @@ function TagsManager({
19041
19044
  align: "start",
19042
19045
  onOpenAutoFocus: (e) => {
19043
19046
  e.preventDefault();
19044
- _optionalChain([inputRef, 'access', _469 => _469.current, 'optionalAccess', _470 => _470.focus, 'call', _471 => _471()]);
19047
+ _optionalChain([inputRef, 'access', _470 => _470.current, 'optionalAccess', _471 => _471.focus, 'call', _472 => _472()]);
19045
19048
  },
19046
19049
  onInteractOutside: (e) => {
19047
- if (_optionalChain([containerRef, 'access', _472 => _472.current, 'optionalAccess', _473 => _473.contains, 'call', _474 => _474(e.target)])) {
19050
+ if (_optionalChain([containerRef, 'access', _473 => _473.current, 'optionalAccess', _474 => _474.contains, 'call', _475 => _475(e.target)])) {
19048
19051
  e.preventDefault();
19049
19052
  }
19050
19053
  },
@@ -19080,7 +19083,7 @@ function TagsManager({
19080
19083
  size: "icon",
19081
19084
  onClick: confirmEdit,
19082
19085
  disabled: isUpdating,
19083
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { size: 14, className: "text-ods-success" })
19086
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { size: 14, className: "text-ods-success" })
19084
19087
  }
19085
19088
  ),
19086
19089
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -19091,7 +19094,7 @@ function TagsManager({
19091
19094
  size: "icon",
19092
19095
  onClick: cancelEdit,
19093
19096
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19094
- _chunkTMD5LDX4cjs.XmarkIcon,
19097
+ _chunkVJTFBYVGcjs.XmarkIcon,
19095
19098
  {
19096
19099
  size: 14,
19097
19100
  className: "text-ods-text-secondary"
@@ -19127,7 +19130,7 @@ function TagsManager({
19127
19130
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: tag.name }),
19128
19131
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1 shrink-0", children: [
19129
19132
  isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19130
- _chunkTMD5LDX4cjs.CheckIcon,
19133
+ _chunkVJTFBYVGcjs.CheckIcon,
19131
19134
  {
19132
19135
  className: "text-ods-accent",
19133
19136
  size: 20
@@ -19145,7 +19148,7 @@ function TagsManager({
19145
19148
  startEdit(tag.id, tag.name);
19146
19149
  },
19147
19150
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19148
- _chunkTMD5LDX4cjs.PencilIcon,
19151
+ _chunkVJTFBYVGcjs.PencilIcon,
19149
19152
  {
19150
19153
  size: 14,
19151
19154
  className: "text-ods-text-secondary"
@@ -19165,7 +19168,7 @@ function TagsManager({
19165
19168
  },
19166
19169
  disabled: isDeleting,
19167
19170
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19168
- _chunkTMD5LDX4cjs.TrashIcon,
19171
+ _chunkVJTFBYVGcjs.TrashIcon,
19169
19172
  {
19170
19173
  size: 14,
19171
19174
  className: "text-ods-error"
@@ -19199,7 +19202,7 @@ function TagsManager({
19199
19202
  },
19200
19203
  children: [
19201
19204
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
19202
- _chunkTMD5LDX4cjs.PlusIcon,
19205
+ _chunkVJTFBYVGcjs.PlusIcon,
19203
19206
  {
19204
19207
  size: 16,
19205
19208
  className: "text-ods-accent shrink-0"
@@ -19560,7 +19563,7 @@ var ModalHeader2 = React59.forwardRef(
19560
19563
  onClick: onClose,
19561
19564
  className: "hidden md:flex shrink-0 text-ods-text-secondary hover:text-ods-text-primary transition-colors",
19562
19565
  "aria-label": "Close",
19563
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkIcon, { className: "size-6" })
19566
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkIcon, { className: "size-6" })
19564
19567
  }
19565
19568
  )
19566
19569
  ]
@@ -20148,19 +20151,19 @@ function TabNavigation({
20148
20151
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20149
20152
  const getInitialTab = () => {
20150
20153
  if (isUrlSyncEnabled) {
20151
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _475 => _475.get, 'call', _476 => _476(paramName)]) || "";
20154
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _476 => _476.get, 'call', _477 => _477(paramName)]) || "";
20152
20155
  if (validTabIds.has(fromUrl)) {
20153
20156
  return fromUrl;
20154
20157
  }
20155
20158
  }
20156
- return defaultTab || _optionalChain([tabs, 'access', _477 => _477[0], 'optionalAccess', _478 => _478.id]) || "";
20159
+ return defaultTab || _optionalChain([tabs, 'access', _478 => _478[0], 'optionalAccess', _479 => _479.id]) || "";
20157
20160
  };
20158
20161
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20159
20162
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20160
20163
  _react.useEffect.call(void 0, () => {
20161
20164
  if (!isUrlSyncEnabled) return;
20162
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _479 => _479.get, 'call', _480 => _480(paramName)]) || "";
20163
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _481 => _481[0], 'optionalAccess', _482 => _482.id]) || "";
20165
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _480 => _480.get, 'call', _481 => _481(paramName)]) || "";
20166
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _482 => _482[0], 'optionalAccess', _483 => _483.id]) || "";
20164
20167
  if (nextTab !== internalActiveTab) {
20165
20168
  setInternalActiveTab(nextTab);
20166
20169
  }
@@ -20168,13 +20171,13 @@ function TabNavigation({
20168
20171
  const handleTabChange = (tabId) => {
20169
20172
  if (isUrlSyncEnabled) {
20170
20173
  setInternalActiveTab(tabId);
20171
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _483 => _483.toString, 'call', _484 => _484()]));
20174
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _484 => _484.toString, 'call', _485 => _485()]));
20172
20175
  params.set(paramName, tabId);
20173
20176
  const method = replaceState ? "replace" : "push";
20174
20177
  router[method](`${pathname}?${params.toString()}`);
20175
- _optionalChain([controlledOnTabChange, 'optionalCall', _485 => _485(tabId)]);
20176
- } else {
20177
20178
  _optionalChain([controlledOnTabChange, 'optionalCall', _486 => _486(tabId)]);
20179
+ } else {
20180
+ _optionalChain([controlledOnTabChange, 'optionalCall', _487 => _487(tabId)]);
20178
20181
  }
20179
20182
  };
20180
20183
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20262,7 +20265,7 @@ function TabNavigation({
20262
20265
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20263
20266
  var getTabComponent = (tabs, tabId) => {
20264
20267
  const tab = getTabById(tabs, tabId);
20265
- return _optionalChain([tab, 'optionalAccess', _487 => _487.component]) || null;
20268
+ return _optionalChain([tab, 'optionalAccess', _488 => _488.component]) || null;
20266
20269
  };
20267
20270
 
20268
20271
  // src/components/ui/alert.tsx
@@ -20444,12 +20447,12 @@ function SortColumnItem({ column, currentDirection, onSort, onClear }) {
20444
20447
  };
20445
20448
  const getSortIcon = () => {
20446
20449
  if (currentDirection === "asc") {
20447
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
20450
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
20448
20451
  }
20449
20452
  if (currentDirection === "desc") {
20450
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
20453
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
20451
20454
  }
20452
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.SwitchVrIcon, { className: "w-4 h-4 text-ods-text-secondary" });
20455
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.SwitchVrIcon, { className: "w-4 h-4 text-ods-text-secondary" });
20453
20456
  };
20454
20457
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20455
20458
  "div",
@@ -20599,16 +20602,16 @@ function FilterModal({
20599
20602
  };
20600
20603
  const handleReset = () => {
20601
20604
  onFilterChange({});
20602
- _optionalChain([onTagsChange, 'optionalCall', _488 => _488([])]);
20605
+ _optionalChain([onTagsChange, 'optionalCall', _489 => _489([])]);
20603
20606
  onClose();
20604
20607
  };
20605
20608
  const handleApply = () => {
20606
20609
  onFilterChange(selectedFilters);
20607
- _optionalChain([onTagsChange, 'optionalCall', _489 => _489(pendingTags)]);
20610
+ _optionalChain([onTagsChange, 'optionalCall', _490 => _490(pendingTags)]);
20608
20611
  onClose();
20609
20612
  };
20610
20613
  const getColumnDirection = (columnKey) => {
20611
- return _optionalChain([sortConfig, 'optionalAccess', _490 => _490.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20614
+ return _optionalChain([sortConfig, 'optionalAccess', _491 => _491.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20612
20615
  };
20613
20616
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
20614
20617
  const hasFilterGroups = filterGroups.length > 0;
@@ -20644,7 +20647,7 @@ function FilterModal({
20644
20647
  row
20645
20648
  )) })
20646
20649
  ] }, group)) }) : isEmpty ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center gap-6 h-[240px] p-6", children: [
20647
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Filter02Icon, { className: "text-ods-text-secondary", size: 24 }),
20650
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Filter02Icon, { className: "text-ods-text-secondary", size: 24 }),
20648
20651
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center text-center text-ods-text-secondary", children: [
20649
20652
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: emptyStateTitle }),
20650
20653
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6", children: emptyStateDescription })
@@ -20657,7 +20660,7 @@ function FilterModal({
20657
20660
  {
20658
20661
  column,
20659
20662
  currentDirection: getColumnDirection(column.key),
20660
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _491 => _491(column.key, direction)]),
20663
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _492 => _492(column.key, direction)]),
20661
20664
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
20662
20665
  },
20663
20666
  column.key
@@ -20724,7 +20727,7 @@ function ListPageLayout({
20724
20727
  }) {
20725
20728
  const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
20726
20729
  const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
20727
- const debouncedSearchValue = _chunkALW3D72Ocjs.useDebounce.call(void 0, localSearchValue, 500);
20730
+ const debouncedSearchValue = _chunkHIMEIPEDcjs.useDebounce.call(void 0, localSearchValue, 500);
20728
20731
  _react.useEffect.call(void 0, () => {
20729
20732
  setLocalSearchValue(searchValue);
20730
20733
  }, [searchValue]);
@@ -20770,7 +20773,7 @@ function ListPageLayout({
20770
20773
  className: "md:hidden",
20771
20774
  onClick: () => setMobileFilterOpen(true),
20772
20775
  "aria-label": "Open filters",
20773
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Filter02Icon, {})
20776
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Filter02Icon, {})
20774
20777
  }
20775
20778
  )
20776
20779
  ] }),
@@ -20823,9 +20826,9 @@ function TitleBlock({
20823
20826
  const [imageFailed, setImageFailed] = React37.default.useState(false);
20824
20827
  React37.default.useEffect(() => {
20825
20828
  setImageFailed(false);
20826
- }, [_optionalChain([image, 'optionalAccess', _492 => _492.src])]);
20829
+ }, [_optionalChain([image, 'optionalAccess', _493 => _493.src])]);
20827
20830
  const showImageFallback = !!image && (imageFailed || !image.src);
20828
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _493 => _493.alt]) || title);
20831
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _494 => _494.alt]) || title);
20829
20832
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20830
20833
  "div",
20831
20834
  {
@@ -21463,7 +21466,7 @@ function DashboardInfoCard({
21463
21466
  percentage,
21464
21467
  "%)"
21465
21468
  ] })),
21466
- tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FloatingTooltip, { content: tooltip, side: "top", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "cursor-help text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.QuestionCircleIcon, { size: 20 }) }) })
21469
+ tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FloatingTooltip, { content: tooltip, side: "top", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "cursor-help text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.QuestionCircleIcon, { size: 20 }) }) })
21467
21470
  ] })
21468
21471
  ] }),
21469
21472
  showProgress && percentage !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -21621,26 +21624,26 @@ function DeviceCard({
21621
21624
  ] }),
21622
21625
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", children: device.organization })
21623
21626
  ] }),
21624
- _optionalChain([actions, 'access', _494 => _494.moreButton, 'optionalAccess', _495 => _495.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21627
+ _optionalChain([actions, 'access', _495 => _495.moreButton, 'optionalAccess', _496 => _496.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21625
21628
  "div",
21626
21629
  {
21627
21630
  className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
21628
21631
  onClick: (e) => {
21629
21632
  e.stopPropagation();
21630
- _optionalChain([actions, 'access', _496 => _496.moreButton, 'optionalAccess', _497 => _497.onClick, 'optionalCall', _498 => _498()]);
21633
+ _optionalChain([actions, 'access', _497 => _497.moreButton, 'optionalAccess', _498 => _498.onClick, 'optionalCall', _499 => _499()]);
21631
21634
  },
21632
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
21635
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
21633
21636
  }
21634
21637
  ),
21635
- _optionalChain([actions, 'access', _499 => _499.detailsButton, 'optionalAccess', _500 => _500.visible]) !== false && _optionalChain([actions, 'access', _501 => _501.detailsButton, 'optionalAccess', _502 => _502.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21636
- _optionalChain([actions, 'access', _503 => _503.customActions, 'optionalAccess', _504 => _504.map, 'call', _505 => _505(
21638
+ _optionalChain([actions, 'access', _500 => _500.detailsButton, 'optionalAccess', _501 => _501.visible]) !== false && _optionalChain([actions, 'access', _502 => _502.detailsButton, 'optionalAccess', _503 => _503.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21639
+ _optionalChain([actions, 'access', _504 => _504.customActions, 'optionalAccess', _505 => _505.map, 'call', _506 => _506(
21637
21640
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21638
21641
  "div",
21639
21642
  {
21640
21643
  className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
21641
21644
  onClick: (e) => {
21642
21645
  e.stopPropagation();
21643
- _optionalChain([action, 'access', _506 => _506.onClick, 'optionalCall', _507 => _507()]);
21646
+ _optionalChain([action, 'access', _507 => _507.onClick, 'optionalCall', _508 => _508()]);
21644
21647
  },
21645
21648
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
21646
21649
  },
@@ -21981,7 +21984,7 @@ function MoreActionsMenu({
21981
21984
  size: "icon",
21982
21985
  className: className || "bg-ods-card border-ods-border hover:bg-ods-bg-hover flex items-center justify-center",
21983
21986
  "aria-label": ariaLabel,
21984
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })
21987
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { size: 24, className: "text-ods-text-primary" })
21985
21988
  }
21986
21989
  ) }),
21987
21990
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -21999,7 +22002,7 @@ function MoreActionsMenu({
21999
22002
  ] });
22000
22003
  const handleActivate = (e) => {
22001
22004
  e.stopPropagation();
22002
- if (!item.disabled) _optionalChain([item, 'access', _508 => _508.onClick, 'optionalCall', _509 => _509()]);
22005
+ if (!item.disabled) _optionalChain([item, 'access', _509 => _509.onClick, 'optionalCall', _510 => _510()]);
22003
22006
  };
22004
22007
  if (item.href) {
22005
22008
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22098,7 +22101,7 @@ function DropdownButton({
22098
22101
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: label })
22099
22102
  ] }),
22100
22103
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center justify-center border-l border-ods-border p-[var(--spacing-system-sf)] [&_svg]:w-6 [&_svg]:h-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22101
- _chunkTMD5LDX4cjs.Chevron02DownIcon,
22104
+ _chunkVJTFBYVGcjs.Chevron02DownIcon,
22102
22105
  {
22103
22106
  className: _chunkOFAYLG6Dcjs.cn.call(void 0, "transition-transform duration-fast", open && "rotate-180")
22104
22107
  }
@@ -22149,7 +22152,7 @@ function OrganizationIcon({
22149
22152
  backgroundStyle = "dark"
22150
22153
  }) {
22151
22154
  const { width, height } = imageSizeMap2[size];
22152
- const initials = _optionalChain([organizationName, 'optionalAccess', _510 => _510.substring, 'call', _511 => _511(0, 2)]) || "??";
22155
+ const initials = _optionalChain([organizationName, 'optionalAccess', _511 => _511.substring, 'call', _512 => _512(0, 2)]) || "??";
22153
22156
  const containerClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
22154
22157
  sizeClasses3[size],
22155
22158
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22200,7 +22203,7 @@ function OrganizationCard({
22200
22203
  const handleActionClick = (e) => {
22201
22204
  e.preventDefault();
22202
22205
  e.stopPropagation();
22203
- _optionalChain([actionButton, 'optionalAccess', _512 => _512.onClick, 'call', _513 => _513(organization, e)]);
22206
+ _optionalChain([actionButton, 'optionalAccess', _513 => _513.onClick, 'call', _514 => _514(organization, e)]);
22204
22207
  };
22205
22208
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22206
22209
  "div",
@@ -22357,7 +22360,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22357
22360
  onKeyDown: (e) => {
22358
22361
  if (e.key === "Enter" || e.key === " ") {
22359
22362
  e.preventDefault();
22360
- _optionalChain([onClick, 'optionalCall', _514 => _514()]);
22363
+ _optionalChain([onClick, 'optionalCall', _515 => _515()]);
22361
22364
  }
22362
22365
  },
22363
22366
  children: [
@@ -22366,7 +22369,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22366
22369
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-5 text-white", children: log.title }),
22367
22370
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
22368
22371
  /* @__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) }),
22369
- log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkALW3D72Ocjs.ToolIcon, { toolType: log.toolType, size: 16 })
22372
+ log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHIMEIPEDcjs.ToolIcon, { toolType: log.toolType, size: 16 })
22370
22373
  ] })
22371
22374
  ] })
22372
22375
  ]
@@ -22458,7 +22461,7 @@ var LogsList = React79.forwardRef(({
22458
22461
  log,
22459
22462
  isLast: index === logs.length - 1,
22460
22463
  showConnector,
22461
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _515 => _515(log)])
22464
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _516 => _516(log)])
22462
22465
  },
22463
22466
  log.id
22464
22467
  ))
@@ -22571,7 +22574,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
22571
22574
  }
22572
22575
  function ServiceCardRowItem({ row }) {
22573
22576
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
22574
- const { copy, copied } = _chunkALW3D72Ocjs.useCopyToClipboard.call(void 0, );
22577
+ const { copy, copied } = _chunkHIMEIPEDcjs.useCopyToClipboard.call(void 0, );
22575
22578
  const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
22576
22579
  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 });
22577
22580
  const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
@@ -22602,7 +22605,7 @@ function ServiceCardRowItem({ row }) {
22602
22605
  copied ? "text-ods-success" : "text-ods-text-secondary"
22603
22606
  ),
22604
22607
  "aria-label": `Copy ${_nullishCoalesce(row.label, () => ( "value"))}`,
22605
- children: copied ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Copy01Icon, { size: 20 })
22608
+ children: copied ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Copy01Icon, { size: 20 })
22606
22609
  }
22607
22610
  ),
22608
22611
  actions.open && row.href && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -23047,7 +23050,7 @@ function CursorPaginationSimple({
23047
23050
  {
23048
23051
  variant: "transparent",
23049
23052
  size: "icon",
23050
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _516 => _516("")]),
23053
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _517 => _517("")]),
23051
23054
  disabled: !hasPreviousPage || loading,
23052
23055
  className: "h-8 w-8",
23053
23056
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23059,7 +23062,7 @@ function CursorPaginationSimple({
23059
23062
  {
23060
23063
  variant: "transparent",
23061
23064
  size: "icon",
23062
- onClick: () => _optionalChain([onNext, 'optionalCall', _517 => _517("")]),
23065
+ onClick: () => _optionalChain([onNext, 'optionalCall', _518 => _518("")]),
23063
23066
  disabled: !hasNextPage || loading,
23064
23067
  className: "h-8 w-8",
23065
23068
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23119,7 +23122,7 @@ function TableColumnFilterDropdown({
23119
23122
  placement = "bottom-start",
23120
23123
  dropdownClassName = "min-w-[240px]"
23121
23124
  }) {
23122
- const activeCount = _optionalChain([filters, 'optionalAccess', _518 => _518[columnKey], 'optionalAccess', _519 => _519.length]) || 0;
23125
+ const activeCount = _optionalChain([filters, 'optionalAccess', _519 => _519[columnKey], 'optionalAccess', _520 => _520.length]) || 0;
23123
23126
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23124
23127
  FiltersDropdown,
23125
23128
  {
@@ -23131,7 +23134,7 @@ function TableColumnFilterDropdown({
23131
23134
  children: [
23132
23135
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-medium text-[12px] leading-[16px] uppercase text-ods-text-secondary select-none", children: columnLabel }),
23133
23136
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23134
- _chunkTMD5LDX4cjs.Filter02Icon,
23137
+ _chunkVJTFBYVGcjs.Filter02Icon,
23135
23138
  {
23136
23139
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
23137
23140
  "w-4 h-4 transition-colors",
@@ -23162,7 +23165,7 @@ function TableColumnFilterDropdown({
23162
23165
  delete newFilters[columnKey];
23163
23166
  onFilterChange(newFilters);
23164
23167
  },
23165
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _520 => _520[columnKey]]) || [] },
23168
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _521 => _521[columnKey]]) || [] },
23166
23169
  placement,
23167
23170
  dropdownClassName
23168
23171
  }
@@ -23233,11 +23236,11 @@ function TableHeader({
23233
23236
  const columnKey = column.sortKey || column.key;
23234
23237
  const isActive = sortBy === columnKey;
23235
23238
  if (!isActive) {
23236
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.SwitchVrIcon, { className: "w-4 h-4 text-ods-text-secondary" });
23239
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.SwitchVrIcon, { className: "w-4 h-4 text-ods-text-secondary" });
23237
23240
  }
23238
- 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" });
23241
+ return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
23239
23242
  };
23240
- const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
23243
+ const isLgUp = _nullishCoalesce(_chunkHIMEIPEDcjs.useLgUp.call(void 0, ), () => ( false));
23241
23244
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23242
23245
  "div",
23243
23246
  {
@@ -23459,7 +23462,7 @@ function TableRow({
23459
23462
  const keys = column.key.split(".");
23460
23463
  let value = item;
23461
23464
  for (const key of keys) {
23462
- value = _optionalChain([value, 'optionalAccess', _521 => _521[key]]);
23465
+ value = _optionalChain([value, 'optionalAccess', _522 => _522[key]]);
23463
23466
  }
23464
23467
  if (value === null || value === void 0) {
23465
23468
  return "-";
@@ -23529,7 +23532,7 @@ function TableRow({
23529
23532
  // src/components/ui/table/table.tsx
23530
23533
 
23531
23534
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23532
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _522 => _522.length])) || Boolean(renderRowActions);
23535
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _523 => _523.length])) || Boolean(renderRowActions);
23533
23536
  const result = [...columns];
23534
23537
  if (hasActions) {
23535
23538
  const actionsColumn = {
@@ -23570,7 +23573,7 @@ function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref)
23570
23573
  prefetch: false,
23571
23574
  variant: "outline",
23572
23575
  size: "icon",
23573
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Chevron02RightIcon, { className: "w-6 h-6" }),
23576
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02RightIcon, { className: "w-6 h-6" }),
23574
23577
  "aria-label": "View details"
23575
23578
  }
23576
23579
  ) });
@@ -23623,7 +23626,7 @@ function Table({
23623
23626
  return rowKey(item);
23624
23627
  }
23625
23628
  const key = item[rowKey];
23626
- return _optionalChain([key, 'optionalAccess', _523 => _523.toString, 'call', _524 => _524()]) || index.toString();
23629
+ return _optionalChain([key, 'optionalAccess', _524 => _524.toString, 'call', _525 => _525()]) || index.toString();
23627
23630
  };
23628
23631
  const getRowClassName = (item, index) => {
23629
23632
  if (typeof rowClassName === "function") {
@@ -23657,23 +23660,23 @@ function Table({
23657
23660
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
23658
23661
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
23659
23662
  const sentinelRef = _react.useRef.call(void 0, null);
23660
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _525 => _525.onLoadMore]));
23661
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.onLoadMore]);
23663
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.onLoadMore]));
23664
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _527 => _527.onLoadMore]);
23662
23665
  _react.useEffect.call(void 0, () => {
23663
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _527 => _527.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23666
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _528 => _528.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23664
23667
  const sentinel = sentinelRef.current;
23665
23668
  if (!sentinel) return;
23666
23669
  const observer = new IntersectionObserver(
23667
23670
  (entries) => {
23668
- if (_optionalChain([entries, 'access', _528 => _528[0], 'optionalAccess', _529 => _529.isIntersecting])) {
23669
- _optionalChain([onLoadMoreRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
23671
+ if (_optionalChain([entries, 'access', _529 => _529[0], 'optionalAccess', _530 => _530.isIntersecting])) {
23672
+ _optionalChain([onLoadMoreRef, 'access', _531 => _531.current, 'optionalCall', _532 => _532()]);
23670
23673
  }
23671
23674
  },
23672
23675
  { rootMargin: "200px" }
23673
23676
  );
23674
23677
  observer.observe(sentinel);
23675
23678
  return () => observer.disconnect();
23676
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _532 => _532.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _533 => _533.isFetchingNextPage])]);
23679
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _533 => _533.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _534 => _534.isFetchingNextPage])]);
23677
23680
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
23678
23681
  showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
23679
23682
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -23744,7 +23747,7 @@ function Table({
23744
23747
  },
23745
23748
  getRowKey(item, index)
23746
23749
  )),
23747
- _optionalChain([infiniteScroll, 'optionalAccess', _534 => _534.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23750
+ _optionalChain([infiniteScroll, 'optionalAccess', _535 => _535.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23748
23751
  TableCardSkeleton,
23749
23752
  {
23750
23753
  columns,
@@ -23753,7 +23756,7 @@ function Table({
23753
23756
  hasChevron: Boolean(rowHref)
23754
23757
  }
23755
23758
  ),
23756
- _optionalChain([infiniteScroll, 'optionalAccess', _535 => _535.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23759
+ _optionalChain([infiniteScroll, 'optionalAccess', _536 => _536.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23757
23760
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23758
23761
  "div",
23759
23762
  {
@@ -24111,7 +24114,7 @@ function QueryReportTable({
24111
24114
  );
24112
24115
  const handleExport = () => {
24113
24116
  exportToCSV(data, columns, exportFilename);
24114
- _optionalChain([onExport, 'optionalCall', _536 => _536()]);
24117
+ _optionalChain([onExport, 'optionalCall', _537 => _537()]);
24115
24118
  };
24116
24119
  const tableMinWidth = columns.length * (columnWidth + 16);
24117
24120
  const {
@@ -24127,7 +24130,7 @@ function QueryReportTable({
24127
24130
  onThumbPointerDown,
24128
24131
  onThumbPointerMove,
24129
24132
  onThumbPointerUp
24130
- } = _chunkALW3D72Ocjs.useHorizontalScrollbar.call(void 0, );
24133
+ } = _chunkHIMEIPEDcjs.useHorizontalScrollbar.call(void 0, );
24131
24134
  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: [
24132
24135
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
24133
24136
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "font-mono font-semibold text-[32px] leading-[40px] text-ods-text-primary", children: title }),
@@ -24139,7 +24142,7 @@ function QueryReportTable({
24139
24142
  className: "bg-ods-card",
24140
24143
  variant: "outline",
24141
24144
  size: "small-legacy",
24142
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Download02Icon, { size: 18 }),
24145
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Download02Icon, { size: 18 }),
24143
24146
  onClick: handleExport,
24144
24147
  children: "Export CSV"
24145
24148
  }
@@ -24284,7 +24287,7 @@ function DataTableColumnFilter({
24284
24287
  align = "left"
24285
24288
  }) {
24286
24289
  const currentValue = column.getFilterValue();
24287
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _537 => _537.length]), () => ( 0));
24290
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _538 => _538.length]), () => ( 0));
24288
24291
  const sections = _react.useMemo.call(void 0,
24289
24292
  () => [
24290
24293
  {
@@ -24326,7 +24329,7 @@ function DataTableColumnFilter({
24326
24329
  children: [
24327
24330
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5 text-ods-text-secondary whitespace-nowrap transition-colors duration-200 group-hover:text-ods-text-primary", children: label }),
24328
24331
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24329
- _chunkTMD5LDX4cjs.Filter02Icon,
24332
+ _chunkVJTFBYVGcjs.Filter02Icon,
24330
24333
  {
24331
24334
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24332
24335
  "w-4 h-4 transition-colors",
@@ -24358,13 +24361,13 @@ function DataTableHeader({
24358
24361
  onSortChange
24359
24362
  }) {
24360
24363
  const table = useDataTableContext();
24361
- const isLgUp = _nullishCoalesce(_chunkALW3D72Ocjs.useLgUp.call(void 0, ), () => ( false));
24364
+ const isLgUp = _nullishCoalesce(_chunkHIMEIPEDcjs.useLgUp.call(void 0, ), () => ( false));
24362
24365
  const headerGroup = table.getHeaderGroups()[0];
24363
24366
  if (!headerGroup) return null;
24364
24367
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24365
24368
  if (header.isPlaceholder) return false;
24366
24369
  if (isLgUp) return true;
24367
- return Boolean(_optionalChain([header, 'access', _538 => _538.column, 'access', _539 => _539.columnDef, 'access', _540 => _540.meta, 'optionalAccess', _541 => _541.filter]));
24370
+ return Boolean(_optionalChain([header, 'access', _539 => _539.column, 'access', _540 => _540.columnDef, 'access', _541 => _541.meta, 'optionalAccess', _542 => _542.filter]));
24368
24371
  });
24369
24372
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24370
24373
  "div",
@@ -24394,20 +24397,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24394
24397
  if (header.isPlaceholder) return null;
24395
24398
  const column = header.column;
24396
24399
  const meta = column.columnDef.meta;
24397
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _542 => _542.filter]));
24398
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _543 => _543.align]), () => ( "left"));
24399
- const canSort = _optionalChain([meta, 'optionalAccess', _544 => _544.sortable]) === true;
24400
- const sortDir = _optionalChain([sort, 'optionalAccess', _545 => _545.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24400
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _543 => _543.filter]));
24401
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _544 => _544.align]), () => ( "left"));
24402
+ const canSort = _optionalChain([meta, 'optionalAccess', _545 => _545.sortable]) === true;
24403
+ const sortDir = _optionalChain([sort, 'optionalAccess', _546 => _546.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24401
24404
  if (!isLgUp && !hasFilter) return null;
24402
24405
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24403
24406
  "div",
24404
24407
  {
24405
24408
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24406
24409
  "flex items-stretch",
24407
- isLgUp && (_optionalChain([meta, 'optionalAccess', _546 => _546.width]) || "flex-1 min-w-0"),
24408
- _optionalChain([meta, 'optionalAccess', _547 => _547.headerClassName]),
24410
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _547 => _547.width]) || "flex-1 min-w-0"),
24411
+ _optionalChain([meta, 'optionalAccess', _548 => _548.headerClassName]),
24409
24412
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24410
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _548 => _548.hideAt]))
24413
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _549 => _549.hideAt]))
24411
24414
  ),
24412
24415
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24413
24416
  DataTableColumnFilter,
@@ -24426,7 +24429,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24426
24429
  isLgUp && alignJustify(align),
24427
24430
  canSort && "group cursor-pointer"
24428
24431
  ),
24429
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _549 => _549(column.id)]) : void 0,
24432
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _550 => _550(column.id)]) : void 0,
24430
24433
  children: [
24431
24434
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24432
24435
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24445,9 +24448,9 @@ function HeaderLabel({ header }) {
24445
24448
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _reacttable.flexRender.call(void 0, headerDef, header.getContext()) });
24446
24449
  }
24447
24450
  function SortIcon({ sorted }) {
24448
- if (sorted === "asc") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
24449
- if (sorted === "desc") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
24450
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.SwitchVrIcon, { className: "w-4 h-4 text-ods-text-secondary transition-colors duration-200 group-hover:text-ods-text-primary" });
24451
+ if (sorted === "asc") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
24452
+ if (sorted === "desc") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
24453
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.SwitchVrIcon, { className: "w-4 h-4 text-ods-text-secondary transition-colors duration-200 group-hover:text-ods-text-primary" });
24451
24454
  }
24452
24455
  function resolveHeaderLabel(header) {
24453
24456
  const h = header.column.columnDef.header;
@@ -24510,7 +24513,7 @@ function DataTableSkeleton({
24510
24513
  }) {
24511
24514
  const table = useDataTableContext();
24512
24515
  const columns = table.getVisibleFlatColumns();
24513
- const firstColumnId = _optionalChain([columns, 'access', _550 => _550[0], 'optionalAccess', _551 => _551.id]);
24516
+ const firstColumnId = _optionalChain([columns, 'access', _551 => _551[0], 'optionalAccess', _552 => _552.id]);
24514
24517
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24515
24518
  "div",
24516
24519
  {
@@ -24534,7 +24537,7 @@ function DataTableSkeleton({
24534
24537
  {
24535
24538
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24536
24539
  "flex flex-col justify-center shrink-0",
24537
- _optionalChain([meta, 'optionalAccess', _552 => _552.width]) || "flex-1"
24540
+ _optionalChain([meta, 'optionalAccess', _553 => _553.width]) || "flex-1"
24538
24541
  ),
24539
24542
  children: [
24540
24543
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -24580,7 +24583,7 @@ function DataTableRowImpl({
24580
24583
  (e) => {
24581
24584
  const target = e.target;
24582
24585
  if (target.closest("[data-no-row-click]")) return;
24583
- _optionalChain([onClick, 'optionalCall', _553 => _553(row.original)]);
24586
+ _optionalChain([onClick, 'optionalCall', _554 => _554(row.original)]);
24584
24587
  },
24585
24588
  [onClick, row.original]
24586
24589
  );
@@ -24618,10 +24621,10 @@ function DataTableRowImpl({
24618
24621
  {
24619
24622
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24620
24623
  "flex flex-col overflow-hidden",
24621
- alignJustify(_optionalChain([meta, 'optionalAccess', _554 => _554.align])),
24622
- _optionalChain([meta, 'optionalAccess', _555 => _555.width]) || "flex-1 min-w-0",
24623
- _optionalChain([meta, 'optionalAccess', _556 => _556.cellClassName]),
24624
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _557 => _557.hideAt]))
24624
+ alignJustify(_optionalChain([meta, 'optionalAccess', _555 => _555.align])),
24625
+ _optionalChain([meta, 'optionalAccess', _556 => _556.width]) || "flex-1 min-w-0",
24626
+ _optionalChain([meta, 'optionalAccess', _557 => _557.cellClassName]),
24627
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _558 => _558.hideAt]))
24625
24628
  ),
24626
24629
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
24627
24630
  },
@@ -24667,7 +24670,7 @@ function DataTableBody({
24667
24670
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
24668
24671
  rows.map((row, index) => {
24669
24672
  const item = row.original;
24670
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _558 => _558(item)]), () => ( void 0));
24673
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _559 => _559(item)]), () => ( void 0));
24671
24674
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
24672
24675
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24673
24676
  DataTableRow,
@@ -24731,7 +24734,7 @@ function DataTableInfiniteFooter({
24731
24734
  if (!sentinel) return;
24732
24735
  const observer = new IntersectionObserver(
24733
24736
  (entries) => {
24734
- if (_optionalChain([entries, 'access', _559 => _559[0], 'optionalAccess', _560 => _560.isIntersecting])) onLoadMoreRef.current();
24737
+ if (_optionalChain([entries, 'access', _560 => _560[0], 'optionalAccess', _561 => _561.isIntersecting])) onLoadMoreRef.current();
24735
24738
  },
24736
24739
  { rootMargin }
24737
24740
  );
@@ -24779,7 +24782,7 @@ function DataTableRowCount({
24779
24782
  const table = useDataTableContext();
24780
24783
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
24781
24784
  if (hideWhenEmpty && count === 0) return null;
24782
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _561 => _561(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24785
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _562 => _562(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24783
24786
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24784
24787
  "span",
24785
24788
  {
@@ -24873,12 +24876,12 @@ function PhoneInput({
24873
24876
  const runValidation = _react.useCallback.call(void 0, (phone) => {
24874
24877
  if (!phone || digitCount(phone) === 0) {
24875
24878
  setIsInvalid(false);
24876
- _optionalChain([onValidationChange, 'optionalCall', _562 => _562(false)]);
24879
+ _optionalChain([onValidationChange, 'optionalCall', _563 => _563(false)]);
24877
24880
  return;
24878
24881
  }
24879
24882
  const invalid = !validatePhoneNumber(phone, countryCode);
24880
24883
  setIsInvalid(invalid);
24881
- _optionalChain([onValidationChange, 'optionalCall', _563 => _563(invalid)]);
24884
+ _optionalChain([onValidationChange, 'optionalCall', _564 => _564(invalid)]);
24882
24885
  }, [countryCode, digitCount, onValidationChange]);
24883
24886
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
24884
24887
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -24927,7 +24930,7 @@ function PhoneInput({
24927
24930
  debouncedValidation(val);
24928
24931
  } else if (digitCount(val) === 0) {
24929
24932
  setIsInvalid(false);
24930
- _optionalChain([onValidationChange, 'optionalCall', _564 => _564(false)]);
24933
+ _optionalChain([onValidationChange, 'optionalCall', _565 => _565(false)]);
24931
24934
  }
24932
24935
  }
24933
24936
  },
@@ -25007,7 +25010,7 @@ function SearchInput({
25007
25010
  }) {
25008
25011
  const [internalValue, setInternalValue] = React83.useState(defaultValue);
25009
25012
  const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
25010
- const debouncedValue = _chunkALW3D72Ocjs.useDebounce.call(void 0, currentValue, debounceMs);
25013
+ const debouncedValue = _chunkHIMEIPEDcjs.useDebounce.call(void 0, currentValue, debounceMs);
25011
25014
  const [isOpen, setIsOpen] = React83.useState(false);
25012
25015
  const [highlightedIndex, setHighlightedIndex] = React83.useState(-1);
25013
25016
  const containerRef = React83.useRef(null);
@@ -25019,7 +25022,7 @@ function SearchInput({
25019
25022
  textMeasureRef,
25020
25023
  badgeRef,
25021
25024
  inputRef
25022
- } = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
25025
+ } = _chunkHIMEIPEDcjs.useAutoLimitTags.call(void 0, {
25023
25026
  count: filterChips.length,
25024
25027
  limitTags,
25025
25028
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -25034,7 +25037,7 @@ function SearchInput({
25034
25037
  if (!showHiddenTags) return;
25035
25038
  const handleClick = (e) => {
25036
25039
  const target = e.target;
25037
- if (!_optionalChain([hiddenTagsRef, 'access', _565 => _565.current, 'optionalAccess', _566 => _566.contains, 'call', _567 => _567(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _568 => _568.current, 'optionalAccess', _569 => _569.contains, 'call', _570 => _570(target)])) {
25040
+ if (!_optionalChain([hiddenTagsRef, 'access', _566 => _566.current, 'optionalAccess', _567 => _567.contains, 'call', _568 => _568(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _569 => _569.current, 'optionalAccess', _570 => _570.contains, 'call', _571 => _571(target)])) {
25038
25041
  setShowHiddenTags(false);
25039
25042
  }
25040
25043
  };
@@ -25082,10 +25085,10 @@ function SearchInput({
25082
25085
  } else {
25083
25086
  setInternalValue("");
25084
25087
  }
25085
- _optionalChain([inputRef, 'access', _571 => _571.current, 'optionalAccess', _572 => _572.focus, 'call', _573 => _573()]);
25088
+ _optionalChain([inputRef, 'access', _572 => _572.current, 'optionalAccess', _573 => _573.focus, 'call', _574 => _574()]);
25086
25089
  };
25087
25090
  const handleResultClick = (result) => {
25088
- _optionalChain([onResultSelect, 'optionalCall', _574 => _574(result)]);
25091
+ _optionalChain([onResultSelect, 'optionalCall', _575 => _575(result)]);
25089
25092
  setIsOpen(false);
25090
25093
  };
25091
25094
  const handleKeyDown = (e) => {
@@ -25108,7 +25111,7 @@ function SearchInput({
25108
25111
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25109
25112
  handleResultClick(flatResults[highlightedIndex]);
25110
25113
  } else {
25111
- _optionalChain([onSubmit, 'optionalCall', _575 => _575(currentValue)]);
25114
+ _optionalChain([onSubmit, 'optionalCall', _576 => _576(currentValue)]);
25112
25115
  }
25113
25116
  break;
25114
25117
  case "Escape":
@@ -25186,7 +25189,7 @@ function SearchInput({
25186
25189
  dropdownVisible && "!border-ods-accent"
25187
25190
  ),
25188
25191
  onClick: () => {
25189
- _optionalChain([inputRef, 'access', _576 => _576.current, 'optionalAccess', _577 => _577.focus, 'call', _578 => _578()]);
25192
+ _optionalChain([inputRef, 'access', _577 => _577.current, 'optionalAccess', _578 => _578.focus, 'call', _579 => _579()]);
25190
25193
  setIsOpen(true);
25191
25194
  },
25192
25195
  children: [
@@ -25246,7 +25249,7 @@ function SearchInput({
25246
25249
  onClick: handleClear,
25247
25250
  className: "flex items-center justify-center hover:opacity-70 transition-opacity",
25248
25251
  "aria-label": "Clear search",
25249
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "text-ods-text-secondary", size: 24 })
25252
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "text-ods-text-secondary", size: 24 })
25250
25253
  }
25251
25254
  ),
25252
25255
  endAdornment
@@ -25270,10 +25273,10 @@ function SearchInput({
25270
25273
  align: "start",
25271
25274
  onOpenAutoFocus: (e) => {
25272
25275
  e.preventDefault();
25273
- _optionalChain([inputRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.focus, 'call', _581 => _581()]);
25276
+ _optionalChain([inputRef, 'access', _580 => _580.current, 'optionalAccess', _581 => _581.focus, 'call', _582 => _582()]);
25274
25277
  },
25275
25278
  onInteractOutside: (e) => {
25276
- if (_optionalChain([containerRef, 'access', _582 => _582.current, 'optionalAccess', _583 => _583.contains, 'call', _584 => _584(e.target)])) {
25279
+ if (_optionalChain([containerRef, 'access', _583 => _583.current, 'optionalAccess', _584 => _584.contains, 'call', _585 => _585(e.target)])) {
25277
25280
  e.preventDefault();
25278
25281
  }
25279
25282
  },
@@ -25290,10 +25293,10 @@ function SearchInput({
25290
25293
  ref: hiddenTagsPopupRef,
25291
25294
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25292
25295
  style: {
25293
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.getBoundingClientRect, 'call', _587 => _587(), 'access', _588 => _588.left]), () => ( 0))) : 0
25296
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _586 => _586.current, 'optionalAccess', _587 => _587.getBoundingClientRect, 'call', _588 => _588(), 'access', _589 => _589.left]), () => ( 0))) : 0
25294
25297
  },
25295
25298
  onRemove: (value2) => {
25296
- _optionalChain([onFilterRemove, 'optionalCall', _589 => _589(value2)]);
25299
+ _optionalChain([onFilterRemove, 'optionalCall', _590 => _590(value2)]);
25297
25300
  if (hiddenCount <= 1) setShowHiddenTags(false);
25298
25301
  }
25299
25302
  }
@@ -25344,7 +25347,7 @@ function FilterListItem({
25344
25347
  }) {
25345
25348
  const handleToggle = () => {
25346
25349
  if (disabled) return;
25347
- _optionalChain([onToggle, 'optionalCall', _590 => _590(!selected)]);
25350
+ _optionalChain([onToggle, 'optionalCall', _591 => _591(!selected)]);
25348
25351
  };
25349
25352
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25350
25353
  "div",
@@ -25391,7 +25394,7 @@ function FilterListItem({
25391
25394
  CheckboxPrimitive4.Root,
25392
25395
  {
25393
25396
  checked: selected,
25394
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _591 => _591(c === true)]),
25397
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _592 => _592(c === true)]),
25395
25398
  onClick: (e) => e.stopPropagation(),
25396
25399
  disabled,
25397
25400
  "aria-label": title,
@@ -25477,7 +25480,7 @@ function TagSearchInput({
25477
25480
  textMeasureRef,
25478
25481
  badgeRef,
25479
25482
  inputRef
25480
- } = _chunkALW3D72Ocjs.useAutoLimitTags.call(void 0, {
25483
+ } = _chunkHIMEIPEDcjs.useAutoLimitTags.call(void 0, {
25481
25484
  count: tags.length,
25482
25485
  limitTags,
25483
25486
  placeholder: currentPlaceholder
@@ -25490,7 +25493,7 @@ function TagSearchInput({
25490
25493
  if (!showHiddenTags) return;
25491
25494
  const handleClick = (e) => {
25492
25495
  const target = e.target;
25493
- if (!_optionalChain([hiddenTagsRef, 'access', _592 => _592.current, 'optionalAccess', _593 => _593.contains, 'call', _594 => _594(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _595 => _595.current, 'optionalAccess', _596 => _596.contains, 'call', _597 => _597(target)])) {
25496
+ if (!_optionalChain([hiddenTagsRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.contains, 'call', _595 => _595(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.contains, 'call', _598 => _598(target)])) {
25494
25497
  setShowHiddenTags(false);
25495
25498
  }
25496
25499
  };
@@ -25506,13 +25509,13 @@ function TagSearchInput({
25506
25509
  e.preventDefault();
25507
25510
  onSubmit(searchValue);
25508
25511
  }
25509
- _optionalChain([onKeyDown, 'optionalCall', _598 => _598(e)]);
25512
+ _optionalChain([onKeyDown, 'optionalCall', _599 => _599(e)]);
25510
25513
  };
25511
25514
  const handleClearAll = (e) => {
25512
25515
  e.stopPropagation();
25513
25516
  e.preventDefault();
25514
- _optionalChain([onClearAll, 'optionalCall', _599 => _599()]);
25515
- _optionalChain([inputRef, 'access', _600 => _600.current, 'optionalAccess', _601 => _601.focus, 'call', _602 => _602()]);
25517
+ _optionalChain([onClearAll, 'optionalCall', _600 => _600()]);
25518
+ _optionalChain([inputRef, 'access', _601 => _601.current, 'optionalAccess', _602 => _602.focus, 'call', _603 => _603()]);
25516
25519
  };
25517
25520
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25518
25521
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25529,7 +25532,7 @@ function TagSearchInput({
25529
25532
  className
25530
25533
  ),
25531
25534
  onClick: () => {
25532
- if (!disabled) _optionalChain([inputRef, 'access', _603 => _603.current, 'optionalAccess', _604 => _604.focus, 'call', _605 => _605()]);
25535
+ if (!disabled) _optionalChain([inputRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.focus, 'call', _606 => _606()]);
25533
25536
  },
25534
25537
  children: [
25535
25538
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
@@ -25588,7 +25591,7 @@ function TagSearchInput({
25588
25591
  onClick: handleClearAll,
25589
25592
  className: "shrink-0 flex items-center justify-center pr-3 hover:opacity-70 transition-opacity cursor-pointer",
25590
25593
  "aria-label": "Clear all",
25591
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkCircleIcon, { className: "text-ods-text-secondary size-4 md:size-6" })
25594
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkCircleIcon, { className: "text-ods-text-secondary size-4 md:size-6" })
25592
25595
  }
25593
25596
  )
25594
25597
  ]
@@ -25601,7 +25604,7 @@ function TagSearchInput({
25601
25604
  items: hiddenTags,
25602
25605
  disabled,
25603
25606
  style: {
25604
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _606 => _606.current, 'optionalAccess', _607 => _607.getBoundingClientRect, 'call', _608 => _608(), 'access', _609 => _609.left]), () => ( 0))) : 0
25607
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _607 => _607.current, 'optionalAccess', _608 => _608.getBoundingClientRect, 'call', _609 => _609(), 'access', _610 => _610.left]), () => ( 0))) : 0
25605
25608
  },
25606
25609
  onRemove: (value) => {
25607
25610
  onTagRemove(value);
@@ -25703,7 +25706,7 @@ function MarkdownEditor({
25703
25706
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
25704
25707
  _react.useEffect.call(void 0, () => {
25705
25708
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
25706
- if (_optionalChain([mod, 'access', _610 => _610.commands, 'optionalAccess', _611 => _611.getExtraCommands])) {
25709
+ if (_optionalChain([mod, 'access', _611 => _611.commands, 'optionalAccess', _612 => _612.getExtraCommands])) {
25707
25710
  setDefaultExtraCommands(mod.commands.getExtraCommands());
25708
25711
  }
25709
25712
  });
@@ -25737,7 +25740,7 @@ function MarkdownEditor({
25737
25740
  const isImage = file.type.startsWith("image/");
25738
25741
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
25739
25742
  insertTextAtCursor(markdown);
25740
- _optionalChain([onFileUploaded, 'optionalCall', _612 => _612(url, file.name)]);
25743
+ _optionalChain([onFileUploaded, 'optionalCall', _613 => _613(url, file.name)]);
25741
25744
  } catch (error) {
25742
25745
  console.error("File upload failed:", error);
25743
25746
  setUploadProgress("Upload failed. Please try again.");
@@ -25750,7 +25753,7 @@ function MarkdownEditor({
25750
25753
  );
25751
25754
  const handleFileInputChange = _react.useCallback.call(void 0,
25752
25755
  (e) => {
25753
- const file = _optionalChain([e, 'access', _613 => _613.target, 'access', _614 => _614.files, 'optionalAccess', _615 => _615[0]]);
25756
+ const file = _optionalChain([e, 'access', _614 => _614.target, 'access', _615 => _615.files, 'optionalAccess', _616 => _616[0]]);
25754
25757
  if (file) {
25755
25758
  handleFileUpload(file);
25756
25759
  e.target.value = "";
@@ -25761,7 +25764,7 @@ function MarkdownEditor({
25761
25764
  const handlePaste = _react.useCallback.call(void 0,
25762
25765
  (e) => {
25763
25766
  if (!onUploadFile) return;
25764
- const items = _optionalChain([e, 'access', _616 => _616.clipboardData, 'optionalAccess', _617 => _617.items]);
25767
+ const items = _optionalChain([e, 'access', _617 => _617.clipboardData, 'optionalAccess', _618 => _618.items]);
25765
25768
  if (!items) return;
25766
25769
  for (const item of items) {
25767
25770
  if (item.type.startsWith("image/")) {
@@ -25786,7 +25789,7 @@ function MarkdownEditor({
25786
25789
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
25787
25790
  icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
25788
25791
  execute: () => {
25789
- _optionalChain([fileInputRef, 'access', _618 => _618.current, 'optionalAccess', _619 => _619.click, 'call', _620 => _620()]);
25792
+ _optionalChain([fileInputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.click, 'call', _621 => _621()]);
25790
25793
  }
25791
25794
  } : null;
25792
25795
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -25798,7 +25801,7 @@ function MarkdownEditor({
25798
25801
  const EDGE_ZONE = 60;
25799
25802
  const MAX_SCROLL_SPEED = 15;
25800
25803
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
25801
- let node = _optionalChain([el, 'optionalAccess', _621 => _621.parentElement]);
25804
+ let node = _optionalChain([el, 'optionalAccess', _622 => _622.parentElement]);
25802
25805
  while (node && node !== document.documentElement) {
25803
25806
  const { overflowY } = window.getComputedStyle(node);
25804
25807
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -25941,7 +25944,7 @@ function matchesAccept(file, accept) {
25941
25944
  });
25942
25945
  }
25943
25946
  function dragHasFiles(e) {
25944
- const types = _optionalChain([e, 'access', _622 => _622.dataTransfer, 'optionalAccess', _623 => _623.types]);
25947
+ const types = _optionalChain([e, 'access', _623 => _623.dataTransfer, 'optionalAccess', _624 => _624.types]);
25945
25948
  if (!types) return false;
25946
25949
  for (let i = 0; i < types.length; i++) {
25947
25950
  if (types[i] === "Files") return true;
@@ -26036,7 +26039,7 @@ function FileUpload({
26036
26039
  e.stopPropagation();
26037
26040
  setDragActive(false);
26038
26041
  if (disabled) return;
26039
- if (_optionalChain([e, 'access', _624 => _624.dataTransfer, 'access', _625 => _625.files, 'optionalAccess', _626 => _626.length])) {
26042
+ if (_optionalChain([e, 'access', _625 => _625.dataTransfer, 'access', _626 => _626.files, 'optionalAccess', _627 => _627.length])) {
26040
26043
  handleFiles(e.dataTransfer.files);
26041
26044
  }
26042
26045
  };
@@ -26064,7 +26067,7 @@ function FileUpload({
26064
26067
  e.preventDefault();
26065
26068
  dragCounter = 0;
26066
26069
  setDragActive(false);
26067
- if (_optionalChain([e, 'access', _627 => _627.dataTransfer, 'optionalAccess', _628 => _628.files, 'optionalAccess', _629 => _629.length])) {
26070
+ if (_optionalChain([e, 'access', _628 => _628.dataTransfer, 'optionalAccess', _629 => _629.files, 'optionalAccess', _630 => _630.length])) {
26068
26071
  handleFilesRef.current(e.dataTransfer.files);
26069
26072
  }
26070
26073
  };
@@ -26086,7 +26089,7 @@ function FileUpload({
26086
26089
  };
26087
26090
  }, [acceptWindowDrops, disabled]);
26088
26091
  const handleFileSelect = (e) => {
26089
- if (_optionalChain([e, 'access', _630 => _630.target, 'access', _631 => _631.files, 'optionalAccess', _632 => _632.length])) {
26092
+ if (_optionalChain([e, 'access', _631 => _631.target, 'access', _632 => _632.files, 'optionalAccess', _633 => _633.length])) {
26090
26093
  handleFiles(e.target.files);
26091
26094
  }
26092
26095
  };
@@ -26103,7 +26106,7 @@ function FileUpload({
26103
26106
  };
26104
26107
  const openDialog = async () => {
26105
26108
  if (disabled) return;
26106
- _optionalChain([fileInputRef, 'access', _633 => _633.current, 'optionalAccess', _634 => _634.click, 'call', _635 => _635()]);
26109
+ _optionalChain([fileInputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.click, 'call', _636 => _636()]);
26107
26110
  };
26108
26111
  const displayError = error || validationError || void 0;
26109
26112
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26141,7 +26144,7 @@ function FileUpload({
26141
26144
  disabled && "opacity-50 cursor-not-allowed hover:border-ods-border"
26142
26145
  ),
26143
26146
  children: [
26144
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center p-3 rounded-full bg-ods-card border border-ods-border shrink-0", children: icon || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
26147
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center p-3 rounded-full bg-ods-card border border-ods-border shrink-0", children: icon || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
26145
26148
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col font-['DM_Sans'] font-medium min-w-0", children: [
26146
26149
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-heading-4 text-ods-text-primary", children: label }),
26147
26150
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-heading-5 text-ods-text-secondary", children: description })
@@ -26181,7 +26184,7 @@ function FileUpload({
26181
26184
  "button",
26182
26185
  {
26183
26186
  type: "button",
26184
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _636 => _636(entry.id)]),
26187
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _637 => _637(entry.id)]),
26185
26188
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26186
26189
  "aria-label": `Remove ${entry.fileName}`,
26187
26190
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26304,7 +26307,7 @@ function ImageUploader({
26304
26307
  onChange(file);
26305
26308
  };
26306
26309
  const handleFileSelect = (e) => {
26307
- validateAndEmit(_optionalChain([e, 'access', _637 => _637.target, 'access', _638 => _638.files, 'optionalAccess', _639 => _639[0]]));
26310
+ validateAndEmit(_optionalChain([e, 'access', _638 => _638.target, 'access', _639 => _639.files, 'optionalAccess', _640 => _640[0]]));
26308
26311
  if (inputRef.current) inputRef.current.value = "";
26309
26312
  };
26310
26313
  const handleDrag = (e) => {
@@ -26319,11 +26322,11 @@ function ImageUploader({
26319
26322
  e.stopPropagation();
26320
26323
  setDragActive(false);
26321
26324
  if (!interactive) return;
26322
- validateAndEmit(_optionalChain([e, 'access', _640 => _640.dataTransfer, 'access', _641 => _641.files, 'optionalAccess', _642 => _642[0]]));
26325
+ validateAndEmit(_optionalChain([e, 'access', _641 => _641.dataTransfer, 'access', _642 => _642.files, 'optionalAccess', _643 => _643[0]]));
26323
26326
  };
26324
26327
  const openDialog = () => {
26325
26328
  if (!interactive) return;
26326
- _optionalChain([inputRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.click, 'call', _645 => _645()]);
26329
+ _optionalChain([inputRef, 'access', _644 => _644.current, 'optionalAccess', _645 => _645.click, 'call', _646 => _646()]);
26327
26330
  };
26328
26331
  const handleRootKeyDown = (e) => {
26329
26332
  if (hasImage || !interactive) return;
@@ -26393,7 +26396,7 @@ function ImageUploader({
26393
26396
  onClick: openDialog,
26394
26397
  disabled: !interactive,
26395
26398
  ariaLabel: "Replace image",
26396
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Refresh02VrIcon, { className: "size-6" })
26399
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Refresh02VrIcon, { className: "size-6" })
26397
26400
  }
26398
26401
  ),
26399
26402
  onRemove && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -26402,13 +26405,13 @@ function ImageUploader({
26402
26405
  onClick: onRemove,
26403
26406
  disabled: !interactive,
26404
26407
  ariaLabel: "Remove image",
26405
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.TrashIcon, { className: "size-6" })
26408
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.TrashIcon, { className: "size-6" })
26406
26409
  }
26407
26410
  )
26408
26411
  ] }),
26409
26412
  loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center rounded-md bg-ods-overlay", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "size-8 animate-spin text-ods-text-on-dark" }) })
26410
26413
  ] }) : loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
26411
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-card p-[var(--spacing-system-s)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
26414
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-card p-[var(--spacing-system-s)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
26412
26415
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col items-center text-center", children: [
26413
26416
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: label }),
26414
26417
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: description }),
@@ -26480,7 +26483,7 @@ function CompactAssigneeDropdown({
26480
26483
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26481
26484
  }, [filtered, currentAssignee]);
26482
26485
  const handleSelect = (userId) => {
26483
- const next = _optionalChain([currentAssignee, 'optionalAccess', _646 => _646.id]) === userId ? null : userId;
26486
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _647 => _647.id]) === userId ? null : userId;
26484
26487
  onAssign(next);
26485
26488
  setIsOpen(false);
26486
26489
  };
@@ -26515,7 +26518,7 @@ function CompactAssigneeDropdown({
26515
26518
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
26516
26519
  className
26517
26520
  ),
26518
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.UserPlusIcon, { className: "size-4" })
26521
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.UserPlusIcon, { className: "size-4" })
26519
26522
  }
26520
26523
  );
26521
26524
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PopoverPrimitive4.Root, { open: isOpen, onOpenChange: setIsOpen, modal: false, children: [
@@ -26545,7 +26548,7 @@ function CompactAssigneeDropdown({
26545
26548
  }
26546
26549
  ) }),
26547
26550
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
26548
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _647 => _647.id]) === opt.value;
26551
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _648 => _648.id]) === opt.value;
26549
26552
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26550
26553
  "button",
26551
26554
  {
@@ -26571,7 +26574,7 @@ function CompactAssigneeDropdown({
26571
26574
  }
26572
26575
  ),
26573
26576
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-1 truncate text-h4 text-ods-text-primary", children: opt.label }),
26574
- isCurrent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { className: "size-4 shrink-0 text-ods-accent" })
26577
+ isCurrent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { className: "size-4 shrink-0 text-ods-accent" })
26575
26578
  ]
26576
26579
  },
26577
26580
  opt.value
@@ -26614,7 +26617,7 @@ function DefaultAssigneeDropdown({
26614
26617
  Autocomplete,
26615
26618
  {
26616
26619
  options,
26617
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _648 => _648.id]), () => ( null)),
26620
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _649 => _649.id]), () => ( null)),
26618
26621
  onChange: (val) => {
26619
26622
  onAssign(val);
26620
26623
  setIsEditing(false);
@@ -26632,7 +26635,7 @@ function DefaultAssigneeDropdown({
26632
26635
  variant: "round",
26633
26636
  className: "h-6 w-6"
26634
26637
  }
26635
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.UserIcon, { className: "size-5 text-ods-text-secondary" }),
26638
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.UserIcon, { className: "size-5 text-ods-text-secondary" }),
26636
26639
  renderOption
26637
26640
  }
26638
26641
  ),
@@ -26660,7 +26663,7 @@ function DefaultAssigneeDropdown({
26660
26663
  onClick: () => setIsEditing(true),
26661
26664
  className: "flex items-center gap-[var(--spacing-system-xxs)] cursor-pointer group text-left",
26662
26665
  children: [
26663
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PenEditIcon, { className: "size-4 shrink-0 text-ods-text-secondary group-hover:text-ods-accent transition-colors" }),
26666
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.PenEditIcon, { className: "size-4 shrink-0 text-ods-text-secondary group-hover:text-ods-accent transition-colors" }),
26664
26667
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary truncate", children: currentAssignee.name })
26665
26668
  ]
26666
26669
  }
@@ -26677,7 +26680,7 @@ function DefaultAssigneeDropdown({
26677
26680
  onClick: () => setIsEditing(true),
26678
26681
  className: "flex items-center gap-[var(--spacing-system-xxs)] text-h4 text-ods-accent underline truncate cursor-pointer hover:opacity-80 transition-opacity text-left",
26679
26682
  children: [
26680
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.UserIcon, { className: "size-4 shrink-0" }),
26683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.UserIcon, { className: "size-4 shrink-0" }),
26681
26684
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: "Assign User" })
26682
26685
  ]
26683
26686
  }
@@ -26810,7 +26813,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
26810
26813
  disabled: !editText.trim(),
26811
26814
  className: "shrink-0 text-ods-success hover:text-ods-success/80 transition-colors disabled:opacity-50",
26812
26815
  "aria-label": "Save note",
26813
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.CheckIcon, { className: "size-5" })
26816
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.CheckIcon, { className: "size-5" })
26814
26817
  }
26815
26818
  ),
26816
26819
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -26820,7 +26823,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
26820
26823
  onClick: handleCancel,
26821
26824
  className: "shrink-0 text-ods-text-secondary hover:text-ods-text-primary transition-colors",
26822
26825
  "aria-label": "Cancel editing",
26823
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.XmarkIcon, { className: "size-5" })
26826
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.XmarkIcon, { className: "size-5" })
26824
26827
  }
26825
26828
  )
26826
26829
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -26839,7 +26842,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
26839
26842
  onClick: () => onDelete(note.id),
26840
26843
  className: "text-ods-text-secondary hover:text-ods-error transition-colors",
26841
26844
  "aria-label": "Delete note",
26842
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.TrashIcon, { className: "size-6" })
26845
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.TrashIcon, { className: "size-6" })
26843
26846
  }
26844
26847
  ),
26845
26848
  onEdit && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -26849,7 +26852,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
26849
26852
  onClick: () => setIsEditing(true),
26850
26853
  className: "text-ods-text-secondary hover:text-ods-text-primary transition-colors",
26851
26854
  "aria-label": "Edit note",
26852
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PenEditIcon, { className: "size-6" })
26855
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.PenEditIcon, { className: "size-6" })
26853
26856
  }
26854
26857
  )
26855
26858
  ] })
@@ -26915,7 +26918,7 @@ function TicketNotesSection({
26915
26918
  "disabled:opacity-50 disabled:cursor-not-allowed"
26916
26919
  ),
26917
26920
  "aria-label": "Send note",
26918
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Send03Icon, { className: "size-6 text-ods-text-secondary" })
26921
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Send03Icon, { className: "size-6 text-ods-text-secondary" })
26919
26922
  }
26920
26923
  )
26921
26924
  ] })
@@ -26972,14 +26975,14 @@ function TicketInfoSection({
26972
26975
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26973
26976
  SquareAvatar,
26974
26977
  {
26975
- src: _optionalChain([organization, 'optionalAccess', _649 => _649.imageSrc]),
26976
- alt: _optionalChain([organization, 'optionalAccess', _650 => _650.name]),
26977
- fallback: _optionalChain([organization, 'optionalAccess', _651 => _651.name]) || "Org",
26978
+ src: _optionalChain([organization, 'optionalAccess', _650 => _650.imageSrc]),
26979
+ alt: _optionalChain([organization, 'optionalAccess', _651 => _651.name]),
26980
+ fallback: _optionalChain([organization, 'optionalAccess', _652 => _652.name]) || "Org",
26978
26981
  size: "md",
26979
26982
  className: "shrink-0"
26980
26983
  }
26981
26984
  ),
26982
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _652 => _652.name]) || "Unassigned", label: "Organization" })
26985
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _653 => _653.name]) || "Unassigned", label: "Organization" })
26983
26986
  ] }),
26984
26987
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26985
26988
  AssigneeDropdown,
@@ -26992,7 +26995,7 @@ function TicketInfoSection({
26992
26995
  }
26993
26996
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0", children: [
26994
26997
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1 text-h4 text-ods-text-secondary", children: [
26995
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.UserIcon, { className: "size-4 shrink-0" }),
26998
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.UserIcon, { className: "size-4 shrink-0" }),
26996
26999
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: "Unassigned" })
26997
27000
  ] }),
26998
27001
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h6 text-ods-text-secondary truncate block", children: "Assigned" })
@@ -27000,10 +27003,10 @@ function TicketInfoSection({
27000
27003
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27001
27004
  InfoCell2,
27002
27005
  {
27003
- value: _optionalChain([device, 'optionalAccess', _653 => _653.name]) || "Unassigned",
27006
+ value: _optionalChain([device, 'optionalAccess', _654 => _654.name]) || "Unassigned",
27004
27007
  label: "Device",
27005
- icon: _optionalChain([device, 'optionalAccess', _654 => _654.icon]),
27006
- onClick: _optionalChain([device, 'optionalAccess', _655 => _655.onClick])
27008
+ icon: _optionalChain([device, 'optionalAccess', _655 => _655.icon]),
27009
+ onClick: _optionalChain([device, 'optionalAccess', _656 => _656.onClick])
27007
27010
  }
27008
27011
  ),
27009
27012
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -27020,7 +27023,7 @@ function TicketInfoSection({
27020
27023
  ),
27021
27024
  "aria-label": expanded ? "Collapse" : "Expand",
27022
27025
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27023
- _chunkTMD5LDX4cjs.Chevron02DownIcon,
27026
+ _chunkVJTFBYVGcjs.Chevron02DownIcon,
27024
27027
  {
27025
27028
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
27026
27029
  "size-6 text-ods-text-primary transition-transform duration-200",
@@ -27762,10 +27765,10 @@ var getContentDimensions = (config) => {
27762
27765
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
27763
27766
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
27764
27767
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
27765
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _656 => _656.mobileContentDimensions, 'optionalAccess', _657 => _657.width]))), () => ( defaultMobile.width));
27766
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _658 => _658.mobileContentDimensions, 'optionalAccess', _659 => _659.height]))), () => ( defaultMobile.height));
27767
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _660 => _660.desktopContentDimensions, 'optionalAccess', _661 => _661.width]))), () => ( defaultDesktop.width));
27768
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _662 => _662.desktopContentDimensions, 'optionalAccess', _663 => _663.height]))), () => ( defaultDesktop.height));
27768
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _657 => _657.mobileContentDimensions, 'optionalAccess', _658 => _658.width]))), () => ( defaultMobile.width));
27769
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _659 => _659.mobileContentDimensions, 'optionalAccess', _660 => _660.height]))), () => ( defaultMobile.height));
27770
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _661 => _661.desktopContentDimensions, 'optionalAccess', _662 => _662.width]))), () => ( defaultDesktop.width));
27771
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _663 => _663.desktopContentDimensions, 'optionalAccess', _664 => _664.height]))), () => ( defaultDesktop.height));
27769
27772
  return {
27770
27773
  mobile: { width: mobileWidth, height: mobileHeight },
27771
27774
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -27899,7 +27902,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
27899
27902
  const contentDimensions = getContentDimensions(config);
27900
27903
  const mobileHeight = contentDimensions.mobile.height;
27901
27904
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
27902
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _664 => _664.innerHeight]) * 0.85 || 650)}px`;
27905
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _665 => _665.innerHeight]) * 0.85 || 650)}px`;
27903
27906
  })(),
27904
27907
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
27905
27908
  const contentDimensions = getContentDimensions(config);
@@ -28004,7 +28007,7 @@ var FigmaPrototypeViewer = ({
28004
28007
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28005
28008
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28006
28009
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28007
- config.defaultSectionId || _optionalChain([config, 'access', _665 => _665.sections, 'access', _666 => _666[0], 'optionalAccess', _667 => _667.id]) || ""
28010
+ config.defaultSectionId || _optionalChain([config, 'access', _666 => _666.sections, 'access', _667 => _667[0], 'optionalAccess', _668 => _668.id]) || ""
28008
28011
  );
28009
28012
  const activeSection = externalActiveSection || internalActiveSection;
28010
28013
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28094,7 +28097,7 @@ var FigmaPrototypeViewer = ({
28094
28097
  const handleMessage = (event) => {
28095
28098
  if (event.origin !== "https://www.figma.com") return;
28096
28099
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28097
- if (_optionalChain([event, 'access', _668 => _668.data, 'optionalAccess', _669 => _669.type]) && validEvents.includes(event.data.type)) {
28100
+ if (_optionalChain([event, 'access', _669 => _669.data, 'optionalAccess', _670 => _670.type]) && validEvents.includes(event.data.type)) {
28098
28101
  const figmaEvent = event.data;
28099
28102
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28100
28103
  switch (figmaEvent.type) {
@@ -28104,19 +28107,19 @@ var FigmaPrototypeViewer = ({
28104
28107
  setIframeState("READY");
28105
28108
  break;
28106
28109
  case "PRESENTED_NODE_CHANGED":
28107
- if (_optionalChain([figmaEvent, 'access', _670 => _670.data, 'optionalAccess', _671 => _671.presentedNodeId])) {
28110
+ if (_optionalChain([figmaEvent, 'access', _671 => _671.data, 'optionalAccess', _672 => _672.presentedNodeId])) {
28108
28111
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28109
28112
  if (!isNavigating) {
28110
28113
  const matchingSection = config.sections.find((s) => {
28111
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _672 => _672.data, 'optionalAccess', _673 => _673.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _674 => _674.data, 'optionalAccess', _675 => _675.presentedNodeId]);
28112
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _676 => _676.data, 'optionalAccess', _677 => _677.presentedNodeId]) || _optionalChain([s, 'access', _678 => _678.mobileStartingNodeId, 'optionalAccess', _679 => _679.replace, 'call', _680 => _680(":", "-")]) === _optionalChain([figmaEvent, 'access', _681 => _681.data, 'optionalAccess', _682 => _682.presentedNodeId]);
28114
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _673 => _673.data, 'optionalAccess', _674 => _674.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _675 => _675.data, 'optionalAccess', _676 => _676.presentedNodeId]);
28115
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _677 => _677.data, 'optionalAccess', _678 => _678.presentedNodeId]) || _optionalChain([s, 'access', _679 => _679.mobileStartingNodeId, 'optionalAccess', _680 => _680.replace, 'call', _681 => _681(":", "-")]) === _optionalChain([figmaEvent, 'access', _682 => _682.data, 'optionalAccess', _683 => _683.presentedNodeId]);
28113
28116
  return desktopMatch || mobileMatch;
28114
28117
  });
28115
28118
  if (matchingSection && matchingSection.id !== activeSection) {
28116
28119
  if (!externalActiveSection) {
28117
28120
  setInternalActiveSection(matchingSection.id);
28118
28121
  }
28119
- _optionalChain([config, 'access', _683 => _683.onSectionChange, 'optionalCall', _684 => _684(matchingSection.id)]);
28122
+ _optionalChain([config, 'access', _684 => _684.onSectionChange, 'optionalCall', _685 => _685(matchingSection.id)]);
28120
28123
  }
28121
28124
  }
28122
28125
  }
@@ -28129,7 +28132,7 @@ var FigmaPrototypeViewer = ({
28129
28132
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28130
28133
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28131
28134
  const section = config.sections.find((s) => s.id === sectionId);
28132
- if (!section || !_optionalChain([iframeRef, 'access', _685 => _685.current, 'optionalAccess', _686 => _686.contentWindow]) || !isInitialized) {
28135
+ if (!section || !_optionalChain([iframeRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.contentWindow]) || !isInitialized) {
28133
28136
  return;
28134
28137
  }
28135
28138
  setIsNavigating(true);
@@ -28137,7 +28140,7 @@ var FigmaPrototypeViewer = ({
28137
28140
  if (!externalActiveSection) {
28138
28141
  setInternalActiveSection(sectionId);
28139
28142
  }
28140
- _optionalChain([config, 'access', _687 => _687.onSectionChange, 'optionalCall', _688 => _688(sectionId)]);
28143
+ _optionalChain([config, 'access', _688 => _688.onSectionChange, 'optionalCall', _689 => _689(sectionId)]);
28141
28144
  const command = {
28142
28145
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28143
28146
  data: { nodeId }
@@ -28457,7 +28460,7 @@ var FiltersDropdown = ({
28457
28460
  defaults[section.id] = section.defaultSelected || [];
28458
28461
  });
28459
28462
  setSelectedFilters(defaults);
28460
- _optionalChain([onReset, 'optionalCall', _689 => _689()]);
28463
+ _optionalChain([onReset, 'optionalCall', _690 => _690()]);
28461
28464
  setIsOpen(false);
28462
28465
  };
28463
28466
  const handleApply = () => {
@@ -28751,7 +28754,7 @@ function MediaGalleryManager({
28751
28754
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
28752
28755
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
28753
28756
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
28754
- const file = _optionalChain([event, 'access', _690 => _690.target, 'access', _691 => _691.files, 'optionalAccess', _692 => _692[0]]);
28757
+ const file = _optionalChain([event, 'access', _691 => _691.target, 'access', _692 => _692.files, 'optionalAccess', _693 => _693[0]]);
28755
28758
  if (!file) return;
28756
28759
  let mediaType;
28757
28760
  if (file.type.startsWith("image/")) {
@@ -28866,7 +28869,7 @@ function MediaGalleryManager({
28866
28869
  {
28867
28870
  type: "button",
28868
28871
  variant: "outline",
28869
- onClick: () => _optionalChain([fileInputRef, 'access', _693 => _693.current, 'optionalAccess', _694 => _694.click, 'call', _695 => _695()]),
28872
+ onClick: () => _optionalChain([fileInputRef, 'access', _694 => _694.current, 'optionalAccess', _695 => _695.click, 'call', _696 => _696()]),
28870
28873
  disabled: isUploading,
28871
28874
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
28872
28875
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29476,7 +29479,7 @@ function PlatformFilterComponent({
29476
29479
  variant: selectedPlatform === platform.value ? "accent" : "outline",
29477
29480
  size,
29478
29481
  onClick: () => onPlatformChange(platform.value),
29479
- leftIcon: showIcons ? _chunkALW3D72Ocjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29482
+ leftIcon: showIcons ? _chunkHIMEIPEDcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
29480
29483
  className: "text-h3",
29481
29484
  children: platform.label
29482
29485
  },
@@ -29651,7 +29654,7 @@ function ReleaseMediaManager({
29651
29654
  const fileInputRef = _react.useRef.call(void 0, null);
29652
29655
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
29653
29656
  const handleFileSelect = async (event) => {
29654
- const file = _optionalChain([event, 'access', _696 => _696.target, 'access', _697 => _697.files, 'optionalAccess', _698 => _698[0]]);
29657
+ const file = _optionalChain([event, 'access', _697 => _697.target, 'access', _698 => _698.files, 'optionalAccess', _699 => _699[0]]);
29655
29658
  if (!file) return;
29656
29659
  let mediaType;
29657
29660
  if (file.type.startsWith("image/")) {
@@ -29731,7 +29734,7 @@ function ReleaseMediaManager({
29731
29734
  {
29732
29735
  type: "button",
29733
29736
  variant: "outline",
29734
- onClick: () => _optionalChain([fileInputRef, 'access', _699 => _699.current, 'optionalAccess', _700 => _700.click, 'call', _701 => _701()]),
29737
+ onClick: () => _optionalChain([fileInputRef, 'access', _700 => _700.current, 'optionalAccess', _701 => _701.click, 'call', _702 => _702()]),
29735
29738
  disabled: uploadingIndex !== null,
29736
29739
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29737
29740
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29897,7 +29900,7 @@ var SelectButton = React37.default.forwardRef(
29897
29900
  ] }),
29898
29901
  tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
29899
29902
  selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29900
- _chunkTMD5LDX4cjs.CheckCircleIcon,
29903
+ _chunkVJTFBYVGcjs.CheckCircleIcon,
29901
29904
  {
29902
29905
  className: "shrink-0 size-4 md:size-6 text-ods-accent"
29903
29906
  }
@@ -29944,7 +29947,7 @@ function SEOEditorPreview({
29944
29947
  const displayImage = hasOgImage || hasFeaturedImage;
29945
29948
  const handleImageUpload = async (event) => {
29946
29949
  if (!onOgImageUpload) return;
29947
- const file = _optionalChain([event, 'access', _702 => _702.target, 'access', _703 => _703.files, 'optionalAccess', _704 => _704[0]]);
29950
+ const file = _optionalChain([event, 'access', _703 => _703.target, 'access', _704 => _704.files, 'optionalAccess', _705 => _705[0]]);
29948
29951
  if (!file) return;
29949
29952
  setIsUploading(true);
29950
29953
  try {
@@ -30075,7 +30078,7 @@ function SEOEditorPreview({
30075
30078
  type: "button",
30076
30079
  variant: "outline",
30077
30080
  size: "icon",
30078
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _705 => _705.click, 'call', _706 => _706()]),
30081
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _706 => _706.click, 'call', _707 => _707()]),
30079
30082
  disabled: disabled || isUploading,
30080
30083
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30081
30084
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30098,7 +30101,7 @@ function SEOEditorPreview({
30098
30101
  "div",
30099
30102
  {
30100
30103
  className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
30101
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _707 => _707.click, 'call', _708 => _708()]),
30104
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _708 => _708.click, 'call', _709 => _709()]),
30102
30105
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
30103
30106
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30104
30107
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-ods-text-secondary font-['DM_Sans']", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -30183,7 +30186,7 @@ function SocialLinksManager({
30183
30186
  className = ""
30184
30187
  }) {
30185
30188
  const addLink = () => {
30186
- const firstPlatform = _optionalChain([platforms, 'access', _709 => _709[0], 'optionalAccess', _710 => _710.name]) || "website";
30189
+ const firstPlatform = _optionalChain([platforms, 'access', _710 => _710[0], 'optionalAccess', _711 => _711.name]) || "website";
30187
30190
  onChange([...links, { platform: firstPlatform, url: "" }]);
30188
30191
  };
30189
30192
  const removeLink = (index) => {
@@ -30195,7 +30198,7 @@ function SocialLinksManager({
30195
30198
  onChange(updated);
30196
30199
  };
30197
30200
  const getIcon = (link, platform) => {
30198
- const iconKey = _optionalChain([platform, 'optionalAccess', _711 => _711.icon_name]) || link.platform;
30201
+ const iconKey = _optionalChain([platform, 'optionalAccess', _712 => _712.icon_name]) || link.platform;
30199
30202
  const IconComponent = iconMap[iconKey];
30200
30203
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30201
30204
  };
@@ -30220,7 +30223,7 @@ function SocialLinksManager({
30220
30223
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30221
30224
  _chunkBJTOSUT4cjs.Input,
30222
30225
  {
30223
- placeholder: _optionalChain([platform, 'optionalAccess', _712 => _712.placeholder]) || "Profile URL",
30226
+ placeholder: _optionalChain([platform, 'optionalAccess', _713 => _713.placeholder]) || "Profile URL",
30224
30227
  value: link.url,
30225
30228
  onChange: (e) => updateLink(index, "url", e.target.value),
30226
30229
  onKeyDown: (e) => {
@@ -30597,7 +30600,7 @@ function VideoSourceSelector({
30597
30600
  input.accept = "video/*";
30598
30601
  input.onchange = async (e) => {
30599
30602
  const target = e.target;
30600
- const file = _optionalChain([target, 'access', _713 => _713.files, 'optionalAccess', _714 => _714[0]]);
30603
+ const file = _optionalChain([target, 'access', _714 => _714.files, 'optionalAccess', _715 => _715[0]]);
30601
30604
  if (!file) return;
30602
30605
  setIsUploading(true);
30603
30606
  setUploadProgress(0);
@@ -30911,7 +30914,7 @@ function TranscriptSummaryEditor({
30911
30914
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
30912
30915
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Label, { htmlFor: "subtitles", children: subtitlesLabel }),
30913
30916
  isAIGenerated && subtitles && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
30914
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.StandardCcIcon, { size: 12 }),
30917
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.StandardCcIcon, { size: 12 }),
30915
30918
  "AI Generated"
30916
30919
  ] })
30917
30920
  ] }),
@@ -30927,7 +30930,7 @@ function TranscriptSummaryEditor({
30927
30930
  {
30928
30931
  id: "subtitles",
30929
30932
  value: subtitles || "",
30930
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _715 => _715(e.target.value)]),
30933
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _716 => _716(e.target.value)]),
30931
30934
  placeholder: subtitlesPlaceholder,
30932
30935
  disabled: disabled || !onSubtitlesChange,
30933
30936
  className: "h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm",
@@ -31080,7 +31083,7 @@ var AIEnrichSection = ({
31080
31083
  }) => {
31081
31084
  const hasResults = status === "success" || status === "error";
31082
31085
  const shouldDisable = disabled || !canEnrich;
31083
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _716 => _716.filter, 'call', _717 => _717((f) => !f.isFilled)]) || [];
31086
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _717 => _717.filter, 'call', _718 => _718((f) => !f.isFilled)]) || [];
31084
31087
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31085
31088
  "div",
31086
31089
  {
@@ -31118,7 +31121,7 @@ var AIEnrichSection = ({
31118
31121
  {
31119
31122
  id: "ai-enrich-custom-instructions",
31120
31123
  value: _nullishCoalesce(customInstructions, () => ( "")),
31121
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _718 => _718(e.target.value)]),
31124
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _719 => _719(e.target.value)]),
31122
31125
  placeholder: customInstructionsPlaceholder,
31123
31126
  disabled: loading,
31124
31127
  maxLength: customInstructionsMaxLength,
@@ -31247,7 +31250,7 @@ function HighlightVideoSection({
31247
31250
  input.accept = "video/*";
31248
31251
  input.onchange = async (e) => {
31249
31252
  const target = e.target;
31250
- const file = _optionalChain([target, 'access', _719 => _719.files, 'optionalAccess', _720 => _720[0]]);
31253
+ const file = _optionalChain([target, 'access', _720 => _720.files, 'optionalAccess', _721 => _721[0]]);
31251
31254
  if (!file) return;
31252
31255
  setUploadError(null);
31253
31256
  try {
@@ -31749,7 +31752,7 @@ function HighlightVideoPreview({
31749
31752
  input.accept = "video/*";
31750
31753
  input.onchange = async (e) => {
31751
31754
  const target = e.target;
31752
- const file = _optionalChain([target, 'access', _721 => _721.files, 'optionalAccess', _722 => _722[0]]);
31755
+ const file = _optionalChain([target, 'access', _722 => _722.files, 'optionalAccess', _723 => _723[0]]);
31753
31756
  if (!file) return;
31754
31757
  await onUpload(file);
31755
31758
  };
@@ -31936,7 +31939,7 @@ function HighlightVideoCombinedSection({
31936
31939
  input.accept = "video/*";
31937
31940
  input.onchange = async (e) => {
31938
31941
  const target = e.target;
31939
- const file = _optionalChain([target, 'access', _723 => _723.files, 'optionalAccess', _724 => _724[0]]);
31942
+ const file = _optionalChain([target, 'access', _724 => _724.files, 'optionalAccess', _725 => _725[0]]);
31940
31943
  if (!file) return;
31941
31944
  await onUpload(file);
31942
31945
  };
@@ -32233,11 +32236,11 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32233
32236
  return editMode ? "Set Global Permission" : "";
32234
32237
  }
32235
32238
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32236
- return _optionalChain([option, 'optionalAccess', _725 => _725.label]) || level;
32239
+ return _optionalChain([option, 'optionalAccess', _726 => _726.label]) || level;
32237
32240
  };
32238
32241
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32239
32242
  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: [
32240
- /* @__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 }) }),
32243
+ /* @__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, _chunkHIMEIPEDcjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
32241
32244
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
32242
32245
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[16px] font-medium text-ods-text-primary truncate", children: policy.name }),
32243
32246
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-[12px] text-ods-text-secondary break-all font-mono", children: policy.commandPattern })
@@ -32446,7 +32449,7 @@ function WaitlistForm({
32446
32449
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
32447
32450
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
32448
32451
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
32449
- const { toast } = _chunkALW3D72Ocjs.useToast.call(void 0, );
32452
+ const { toast } = _chunkHIMEIPEDcjs.useToast.call(void 0, );
32450
32453
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
32451
32454
  const [isClient, setIsClient] = _react.useState.call(void 0, false);
32452
32455
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -32657,7 +32660,7 @@ function BoardColumnHeader({
32657
32660
  className: "h-8 w-8 md:h-8 md:w-8 p-0",
32658
32661
  onClick: onToggleCollapse,
32659
32662
  "aria-label": "Expand column",
32660
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow02RightIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32663
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow02RightIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32661
32664
  }
32662
32665
  ),
32663
32666
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32700,7 +32703,7 @@ function BoardColumnHeader({
32700
32703
  className: "h-8 w-8 md:h-8 md:w-8 p-0",
32701
32704
  onClick: onToggleCollapse,
32702
32705
  "aria-label": "Collapse column",
32703
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Arrow02LeftIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32706
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Arrow02LeftIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32704
32707
  }
32705
32708
  ),
32706
32709
  onAddTicket && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32711,7 +32714,7 @@ function BoardColumnHeader({
32711
32714
  className: "h-8 w-8 md:h-8 md:w-8 p-0",
32712
32715
  onClick: onAddTicket,
32713
32716
  "aria-label": "Add ticket",
32714
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PlusIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32717
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.PlusIcon, { className: "h-6 w-6 text-ods-text-secondary" })
32715
32718
  }
32716
32719
  )
32717
32720
  ] })
@@ -32765,24 +32768,24 @@ function TicketCard({
32765
32768
  transform: _utilities.CSS.Transform.toString(sortable.transform),
32766
32769
  transition: sortable.transition
32767
32770
  };
32768
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _726 => _726.deviceHostnames, 'optionalAccess', _727 => _727.length]) || ticket.organizationName);
32771
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _727 => _727.deviceHostnames, 'optionalAccess', _728 => _728.length]) || ticket.organizationName);
32769
32772
  const deviceText = [
32770
- _optionalChain([ticket, 'access', _728 => _728.deviceHostnames, 'optionalAccess', _729 => _729.join, 'call', _730 => _730(", ")]),
32773
+ _optionalChain([ticket, 'access', _729 => _729.deviceHostnames, 'optionalAccess', _730 => _730.join, 'call', _731 => _731(", ")]),
32771
32774
  ticket.organizationName
32772
32775
  ].filter(Boolean).join(", ");
32773
32776
  const handleClick = (e) => {
32774
32777
  if (sortable.isDragging) e.preventDefault();
32775
32778
  };
32776
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _731 => _731.assignees, 'optionalAccess', _732 => _732.length]) || renderAssignSlot);
32779
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _732 => _732.assignees, 'optionalAccess', _733 => _733.length]) || renderAssignSlot);
32777
32780
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
32778
32781
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32779
- _chunkTMD5LDX4cjs.Flag02Icon,
32782
+ _chunkVJTFBYVGcjs.Flag02Icon,
32780
32783
  {
32781
32784
  className: _chunkOFAYLG6Dcjs.cn.call(void 0, "size-4", PRIORITY_COLOR_CLASS[ticket.priority]),
32782
32785
  "aria-label": `Priority: ${ticket.priority}`
32783
32786
  }
32784
32787
  ),
32785
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _733 => _733.assignees, 'optionalAccess', _734 => _734.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32788
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _734 => _734.assignees, 'optionalAccess', _735 => _735.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32786
32789
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32787
32790
  SquareAvatar,
32788
32791
  {
@@ -32811,7 +32814,7 @@ function TicketCard({
32811
32814
  ] }),
32812
32815
  rightSection
32813
32816
  ] }),
32814
- _optionalChain([ticket, 'access', _735 => _735.tags, 'optionalAccess', _736 => _736.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32817
+ _optionalChain([ticket, 'access', _736 => _736.tags, 'optionalAccess', _737 => _737.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32815
32818
  ] });
32816
32819
  const cardClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
32817
32820
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -32971,7 +32974,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
32971
32974
  const observer = new IntersectionObserver(
32972
32975
  (entries) => {
32973
32976
  if (entries.some((e) => e.isIntersecting)) {
32974
- _optionalChain([loadMoreRef, 'access', _737 => _737.current, 'optionalCall', _738 => _738(columnIdRef.current)]);
32977
+ _optionalChain([loadMoreRef, 'access', _738 => _738.current, 'optionalCall', _739 => _739(columnIdRef.current)]);
32975
32978
  }
32976
32979
  },
32977
32980
  { root, rootMargin: loadMoreRootMargin }
@@ -33000,7 +33003,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33000
33003
  {
33001
33004
  ticket: t,
33002
33005
  columnId: column.id,
33003
- href: _optionalChain([getTicketHref, 'optionalCall', _739 => _739(t.id)]),
33006
+ href: _optionalChain([getTicketHref, 'optionalCall', _740 => _740(t.id)]),
33004
33007
  renderAssignSlot,
33005
33008
  dragDisabled: column.dragDisabled
33006
33009
  },
@@ -33021,7 +33024,7 @@ function SkeletonStack({ count = 4 }) {
33021
33024
  }
33022
33025
  function EmptyState3() {
33023
33026
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-lf)] p-[var(--spacing-system-lf)] text-center text-ods-text-secondary", children: [
33024
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.TagIcon, { className: "h-6 w-6 shrink-0" }),
33027
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.TagIcon, { className: "h-6 w-6 shrink-0" }),
33025
33028
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col", children: [
33026
33029
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4", children: "No tickets here" }),
33027
33030
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6", children: "Drag a ticket here or change its status to move it to this column" })
@@ -33032,7 +33035,7 @@ function EmptyState3() {
33032
33035
  // src/components/features/board/use-board-collapse.ts
33033
33036
 
33034
33037
  function useBoardCollapse(storageKey) {
33035
- const [persisted, setPersisted] = _chunkALW3D72Ocjs.useLocalStorage.call(void 0,
33038
+ const [persisted, setPersisted] = _chunkHIMEIPEDcjs.useLocalStorage.call(void 0,
33036
33039
  _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
33037
33040
  {}
33038
33041
  );
@@ -33083,17 +33086,17 @@ function Board({
33083
33086
  const pointer = _core.pointerWithin.call(void 0, args);
33084
33087
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33085
33088
  const ticketHit = intersections.find(
33086
- (c) => _optionalChain([c, 'access', _740 => _740.data, 'optionalAccess', _741 => _741.droppableContainer, 'optionalAccess', _742 => _742.data, 'optionalAccess', _743 => _743.current, 'optionalAccess', _744 => _744.type]) === "ticket"
33089
+ (c) => _optionalChain([c, 'access', _741 => _741.data, 'optionalAccess', _742 => _742.droppableContainer, 'optionalAccess', _743 => _743.data, 'optionalAccess', _744 => _744.current, 'optionalAccess', _745 => _745.type]) === "ticket"
33087
33090
  );
33088
33091
  if (ticketHit) return [ticketHit];
33089
33092
  const columnHit = intersections.find(
33090
- (c) => _optionalChain([c, 'access', _745 => _745.data, 'optionalAccess', _746 => _746.droppableContainer, 'optionalAccess', _747 => _747.data, 'optionalAccess', _748 => _748.current, 'optionalAccess', _749 => _749.type]) === "column"
33093
+ (c) => _optionalChain([c, 'access', _746 => _746.data, 'optionalAccess', _747 => _747.droppableContainer, 'optionalAccess', _748 => _748.data, 'optionalAccess', _749 => _749.current, 'optionalAccess', _750 => _750.type]) === "column"
33091
33094
  );
33092
33095
  if (columnHit) {
33093
- const columnId = _optionalChain([columnHit, 'access', _750 => _750.data, 'optionalAccess', _751 => _751.droppableContainer, 'optionalAccess', _752 => _752.data, 'optionalAccess', _753 => _753.current, 'optionalAccess', _754 => _754.columnId]);
33096
+ const columnId = _optionalChain([columnHit, 'access', _751 => _751.data, 'optionalAccess', _752 => _752.droppableContainer, 'optionalAccess', _753 => _753.data, 'optionalAccess', _754 => _754.current, 'optionalAccess', _755 => _755.columnId]);
33094
33097
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33095
33098
  const d = c.data.current;
33096
- return _optionalChain([d, 'optionalAccess', _755 => _755.type]) === "ticket" && d.columnId === columnId;
33099
+ return _optionalChain([d, 'optionalAccess', _756 => _756.type]) === "ticket" && d.columnId === columnId;
33097
33100
  });
33098
33101
  if (ticketsInColumn.length > 0) {
33099
33102
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33118,20 +33121,20 @@ function Board({
33118
33121
  const overId = String(over.id);
33119
33122
  if (activeId === overId) return;
33120
33123
  const overData = over.data.current;
33121
- const fromColumnId = _optionalChain([locate, 'call', _756 => _756(items, activeId), 'optionalAccess', _757 => _757.columnId]);
33122
- const toColumnId = _optionalChain([overData, 'optionalAccess', _758 => _758.columnId]);
33124
+ const fromColumnId = _optionalChain([locate, 'call', _757 => _757(items, activeId), 'optionalAccess', _758 => _758.columnId]);
33125
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _759 => _759.columnId]);
33123
33126
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33124
33127
  const origin = dragOriginRef.current;
33125
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _759 => _759.fromColumnId]) === toColumnId;
33128
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _760 => _760.fromColumnId]) === toColumnId;
33126
33129
  const targetCol = items.find((c) => c.id === toColumnId);
33127
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _760 => _760.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33128
- if (_optionalChain([targetCol, 'optionalAccess', _761 => _761.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33130
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _761 => _761.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33131
+ if (_optionalChain([targetCol, 'optionalAccess', _762 => _762.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33129
33132
  setItems((prev) => {
33130
33133
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33131
33134
  const toCol = prev.find((c) => c.id === toColumnId);
33132
33135
  if (fromIndex < 0 || !toCol) return prev;
33133
33136
  let toIndex;
33134
- if (_optionalChain([overData, 'optionalAccess', _762 => _762.type]) === "column") {
33137
+ if (_optionalChain([overData, 'optionalAccess', _763 => _763.type]) === "column") {
33135
33138
  toIndex = toCol.tickets.length;
33136
33139
  } else {
33137
33140
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33173,14 +33176,14 @@ function Board({
33173
33176
  const toColumnId = located.columnId;
33174
33177
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33175
33178
  const targetCol = items.find((c) => c.id === toColumnId);
33176
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _763 => _763.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _764 => _764.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33179
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _764 => _764.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _765 => _765.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33177
33180
  setItems(columns);
33178
33181
  return;
33179
33182
  }
33180
33183
  let finalIndex = located.index;
33181
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _765 => _765.find, 'call', _766 => _766((c) => c.id === toColumnId), 'optionalAccess', _767 => _767.tickets]), () => ( []));
33184
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _766 => _766.find, 'call', _767 => _767((c) => c.id === toColumnId), 'optionalAccess', _768 => _768.tickets]), () => ( []));
33182
33185
  const overData = over.data.current;
33183
- if (_optionalChain([overData, 'optionalAccess', _768 => _768.type]) === "ticket") {
33186
+ if (_optionalChain([overData, 'optionalAccess', _769 => _769.type]) === "ticket") {
33184
33187
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33185
33188
  if (overIndex >= 0 && overIndex !== located.index) {
33186
33189
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33200,8 +33203,8 @@ function Board({
33200
33203
  ticketId: origin.ticketId,
33201
33204
  fromColumnId: origin.fromColumnId,
33202
33205
  toColumnId,
33203
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _769 => _769[finalIndex - 1], 'optionalAccess', _770 => _770.id]), () => ( null)),
33204
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _771 => _771[finalIndex + 1], 'optionalAccess', _772 => _772.id]), () => ( null))
33206
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _770 => _770[finalIndex - 1], 'optionalAccess', _771 => _771.id]), () => ( null)),
33207
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _772 => _772[finalIndex + 1], 'optionalAccess', _773 => _773.id]), () => ( null))
33205
33208
  });
33206
33209
  };
33207
33210
  const handleDragCancel = () => {
@@ -33223,8 +33226,8 @@ function Board({
33223
33226
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex h-full overflow-x-auto", className), children: items.map((column, i) => {
33224
33227
  const prev = items[i - 1];
33225
33228
  const next = items[i + 1];
33226
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _773 => _773.system]));
33227
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _774 => _774.system]));
33229
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _774 => _774.system]));
33230
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _775 => _775.system]));
33228
33231
  const showGap = i > 0 && !joinLeft;
33229
33232
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React102.Fragment, { children: [
33230
33233
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33258,7 +33261,7 @@ function locate(cols, ticketId) {
33258
33261
  return null;
33259
33262
  }
33260
33263
  function findIndexInColumn(cols, columnId, ticketId) {
33261
- return _nullishCoalesce(_optionalChain([cols, 'access', _775 => _775.find, 'call', _776 => _776((c) => c.id === columnId), 'optionalAccess', _777 => _777.tickets, 'access', _778 => _778.findIndex, 'call', _779 => _779((t) => t.id === ticketId)]), () => ( -1));
33264
+ return _nullishCoalesce(_optionalChain([cols, 'access', _776 => _776.find, 'call', _777 => _777((c) => c.id === columnId), 'optionalAccess', _778 => _778.tickets, 'access', _779 => _779.findIndex, 'call', _780 => _780((t) => t.id === ticketId)]), () => ( -1));
33262
33265
  }
33263
33266
 
33264
33267
  // src/components/features/board/types.ts
@@ -33922,6 +33925,5 @@ function canonicalize(status) {
33922
33925
 
33923
33926
 
33924
33927
 
33925
-
33926
- 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.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; 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.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.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.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.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;
33927
- //# sourceMappingURL=chunk-EUTOT74J.cjs.map
33928
+ 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.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.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; 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.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.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.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.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;
33929
+ //# sourceMappingURL=chunk-W5AWCFKE.cjs.map