@flamingo-stack/openframe-frontend-core 0.0.197 → 0.0.199-snapshot.20260520170030

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 (73) hide show
  1. package/dist/chunk-4CWSZPXH.cjs.map +1 -1
  2. package/dist/{chunk-IMDXOVYD.cjs → chunk-C3M6R6JH.cjs} +528 -286
  3. package/dist/chunk-C3M6R6JH.cjs.map +1 -0
  4. package/dist/chunk-OII2IERE.cjs.map +1 -1
  5. package/dist/chunk-UC43NICZ.cjs.map +1 -1
  6. package/dist/chunk-V2FNIPZJ.cjs.map +1 -1
  7. package/dist/chunk-VJTFBYVG.cjs.map +1 -1
  8. package/dist/chunk-VRHGVLSL.cjs.map +1 -1
  9. package/dist/chunk-WZW7C7TF.cjs.map +1 -1
  10. package/dist/chunk-XQFFGR6U.cjs.map +1 -1
  11. package/dist/{chunk-GIQZAYY5.js → chunk-ZOM75JOY.js} +398 -156
  12. package/dist/chunk-ZOM75JOY.js.map +1 -0
  13. package/dist/components/chart.d.ts +14 -7
  14. package/dist/components/chart.d.ts.map +1 -1
  15. package/dist/components/chat/chat-input.d.ts.map +1 -1
  16. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  17. package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
  18. package/dist/components/chat/types/component.types.d.ts +4 -0
  19. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  20. package/dist/components/features/index.cjs +2 -2
  21. package/dist/components/features/index.cjs.map +1 -1
  22. package/dist/components/features/index.js +1 -1
  23. package/dist/components/icons/index.cjs.map +1 -1
  24. package/dist/components/icons-v2-generated/index.cjs.map +1 -1
  25. package/dist/components/index.cjs +2 -2
  26. package/dist/components/index.cjs.map +1 -1
  27. package/dist/components/index.js +1 -1
  28. package/dist/components/navigation/index.cjs +2 -2
  29. package/dist/components/navigation/index.cjs.map +1 -1
  30. package/dist/components/navigation/index.js +1 -1
  31. package/dist/components/platform/ScriptArguments.d.ts.map +1 -1
  32. package/dist/components/resizable.d.ts +1 -1
  33. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
  34. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  35. package/dist/components/shared/product-release/product-release-card.d.ts +38 -2
  36. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  37. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  38. package/dist/components/toast/index.cjs.map +1 -1
  39. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  40. package/dist/components/ui/index.cjs +2 -2
  41. package/dist/components/ui/index.cjs.map +1 -1
  42. package/dist/components/ui/index.js +1 -1
  43. package/dist/components/ui/release-changelog-section.d.ts +7 -1
  44. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  45. package/dist/hooks/index.cjs.map +1 -1
  46. package/dist/index.cjs +2 -2
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.js +1 -1
  49. package/dist/tailwind.config.cjs +10 -7
  50. package/dist/tailwind.config.cjs.map +1 -1
  51. package/dist/tailwind.config.js +10 -7
  52. package/dist/tailwind.config.js.map +1 -1
  53. package/dist/types/index.cjs.map +1 -1
  54. package/dist/types/index.js.map +1 -1
  55. package/dist/types/product-release.d.ts +12 -0
  56. package/dist/types/product-release.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/components/chat/.chat-input.md +0 -1
  59. package/src/components/chat/chat-container.tsx +3 -3
  60. package/src/components/chat/chat-input.tsx +38 -51
  61. package/src/components/chat/chat-message-enhanced.tsx +21 -22
  62. package/src/components/chat/chat-message-list.tsx +6 -6
  63. package/src/components/chat/chat-message-skeleton.tsx +9 -10
  64. package/src/components/chat/types/component.types.ts +4 -0
  65. package/src/components/platform/ScriptArguments.tsx +7 -6
  66. package/src/components/shared/product-release/product-release-card-skeleton.tsx +69 -1
  67. package/src/components/shared/product-release/product-release-card.tsx +334 -4
  68. package/src/components/shared/product-release/release-detail-page.tsx +8 -2
  69. package/src/components/ui/release-changelog-section.tsx +29 -2
  70. package/src/types/product-release.ts +12 -0
  71. package/tailwind.config.ts +4 -0
  72. package/dist/chunk-GIQZAYY5.js.map +0 -1
  73. package/dist/chunk-IMDXOVYD.cjs.map +0 -1
@@ -125,6 +125,7 @@ var _chunkUC43NICZcjs = require('./chunk-UC43NICZ.cjs');
125
125
 
126
126
 
127
127
 
128
+
128
129
 
129
130
 
130
131
  var _chunkVJTFBYVGcjs = require('./chunk-VJTFBYVG.cjs');
@@ -4102,7 +4103,7 @@ _chunkV2FNIPZJcjs.init_button2.call(void 0, );
4102
4103
 
4103
4104
  // src/components/plus-circle-icon.tsx
4104
4105
 
4105
- function PlusCircleIcon({ className, whiteOverlay = false, iconSize = 24, ...props }) {
4106
+ function PlusCircleIcon2({ className, whiteOverlay = false, iconSize = 24, ...props }) {
4106
4107
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4107
4108
  "svg",
4108
4109
  {
@@ -4265,7 +4266,7 @@ var ChatHeader = React11.forwardRef(
4265
4266
  {
4266
4267
  ref,
4267
4268
  className: _chunkUC43NICZcjs.cn.call(void 0,
4268
- "relative mx-auto w-full max-w-3xl",
4269
+ "relative mx-auto w-full max-w-ods-content-narrow",
4269
4270
  className
4270
4271
  ),
4271
4272
  ...props,
@@ -4280,7 +4281,7 @@ var ChatHeader = React11.forwardRef(
4280
4281
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { size: 24, className: "text-ods-text-primary" }),
4281
4282
  className: _chunkUC43NICZcjs.cn.call(void 0,
4282
4283
  cardClasses,
4283
- "absolute -translate-y-1/2 right-full mr-3 my-6 hover:bg-ods-bg-hover"
4284
+ "absolute top-0 right-full mr-[var(--spacing-system-s)] hover:bg-ods-bg-hover"
4284
4285
  )
4285
4286
  }
4286
4287
  ),
@@ -4313,7 +4314,7 @@ var ChatHeader = React11.forwardRef(
4313
4314
  onClick: onNewChat,
4314
4315
  variant: "transparent",
4315
4316
  size: "small-legacy",
4316
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlusCircleIcon, { className: "w-5 h-5", whiteOverlay: true }),
4317
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PlusCircleIcon2, { className: "w-5 h-5", whiteOverlay: true }),
4317
4318
  className: "text-ods-text-primary hover:bg-ods-bg-hover",
4318
4319
  children: "New Chat"
4319
4320
  }
@@ -4377,7 +4378,7 @@ var ChatFooter = React11.forwardRef(
4377
4378
  className
4378
4379
  ),
4379
4380
  ...props,
4380
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mx-auto w-full max-w-3xl", children })
4381
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mx-auto w-full max-w-ods-content-narrow", children })
4381
4382
  }
4382
4383
  );
4383
4384
  }
@@ -4700,7 +4701,9 @@ var ChatInput = _react.forwardRef.call(void 0,
4700
4701
  sending = false,
4701
4702
  awaitingResponse = false,
4702
4703
  placeholder = "Enter your Request...",
4703
- reserveAvatarOffset = true,
4704
+ // Accepted for back-compat; consumed and discarded so the prop never
4705
+ // falls through to the underlying <textarea> as an unknown DOM attr.
4706
+ reserveAvatarOffset: _reserveAvatarOffset,
4704
4707
  disabled = false,
4705
4708
  autoFocus = false,
4706
4709
  ...inputProps
@@ -4896,73 +4899,51 @@ var ChatInput = _react.forwardRef.call(void 0,
4896
4899
  setIsStopping(false);
4897
4900
  }
4898
4901
  }, [onStop, isStopping]);
4899
- if (awaitingResponse) {
4900
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4901
- "div",
4902
- {
4903
- className: _chunkUC43NICZcjs.cn.call(void 0,
4904
- "mx-auto w-full max-w-3xl items-end gap-6",
4905
- reserveAvatarOffset ? "grid grid-cols-[32px_1fr]" : "grid grid-cols-[1fr]",
4906
- "flex-shrink-0",
4907
- className
4908
- ),
4909
- children: [
4910
- reserveAvatarOffset && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "invisible h-8 w-8", "aria-hidden": true }),
4911
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center justify-center gap-2 rounded-md bg-ods-card border border-ods-border px-3 py-3 transition-colors", children: [
4912
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatTypingIndicator, { size: "sm", dotClassName: "bg-ods-text-primary" }),
4913
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-secondary", children: "Waiting for Technician Response" })
4914
- ] })
4915
- ]
4916
- }
4917
- );
4918
- }
4919
4902
  const isStopMode = sending && !!onStop;
4920
4903
  const sendDisabled = sending || disabled || !value.trim();
4921
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
4904
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4922
4905
  "div",
4923
4906
  {
4924
4907
  className: _chunkUC43NICZcjs.cn.call(void 0,
4925
- "mx-auto w-full max-w-3xl items-end gap-6",
4926
- reserveAvatarOffset ? "grid grid-cols-[32px_1fr]" : "grid grid-cols-[1fr]",
4927
- "flex-shrink-0",
4908
+ "mx-auto w-full max-w-ods-content-narrow flex-shrink-0",
4928
4909
  className
4929
4910
  ),
4930
- children: [
4931
- reserveAvatarOffset && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "invisible h-8 w-8", "aria-hidden": true }),
4932
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", children: [
4933
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4934
- SlashCommandSuggestions,
4935
- {
4936
- commands: slashPrefix !== null ? slashSuggestions : [],
4937
- highlightedIdx,
4938
- onHover: setHighlightedIdx,
4939
- onSelect: acceptSuggestion,
4940
- resolveSourceIcon: _optionalChain([slashCommands, 'optionalAccess', _90 => _90.resolveSourceIcon]),
4941
- onAction: _optionalChain([slashCommands, 'optionalAccess', _91 => _91.onAction])
4942
- }
4943
- ),
4944
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4945
- Textarea,
4946
- {
4947
- ref: textareaRef,
4948
- value,
4949
- onChange: handleChange,
4950
- onKeyDown: handleKeyDown,
4951
- placeholder: disabled ? "Connection lost. Waiting to reconnect..." : placeholder,
4952
- disabled: sending || disabled,
4953
- rows: 1,
4954
- endIcon: isStopMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.StopCircleIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Send01Icon, { size: 20 }),
4955
- endIconAsButton: true,
4956
- endIconButtonProps: {
4957
- onClick: isStopMode ? handleStop : handleSubmit,
4958
- disabled: isStopMode ? isStopping : sendDisabled,
4959
- "aria-label": isStopMode ? "Stop generation" : "Send message"
4960
- },
4961
- ...inputProps
4962
- }
4963
- )
4964
- ] })
4965
- ]
4911
+ children: awaitingResponse ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center justify-center gap-[var(--spacing-system-xs)] rounded-md bg-ods-card border border-ods-border px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] transition-colors", children: [
4912
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChatTypingIndicator, { size: "sm", dotClassName: "bg-ods-text-primary" }),
4913
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-secondary", children: "Waiting for Technician Response" })
4914
+ ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", children: [
4915
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4916
+ SlashCommandSuggestions,
4917
+ {
4918
+ commands: slashPrefix !== null ? slashSuggestions : [],
4919
+ highlightedIdx,
4920
+ onHover: setHighlightedIdx,
4921
+ onSelect: acceptSuggestion,
4922
+ resolveSourceIcon: _optionalChain([slashCommands, 'optionalAccess', _90 => _90.resolveSourceIcon]),
4923
+ onAction: _optionalChain([slashCommands, 'optionalAccess', _91 => _91.onAction])
4924
+ }
4925
+ ),
4926
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4927
+ Textarea,
4928
+ {
4929
+ ref: textareaRef,
4930
+ value,
4931
+ onChange: handleChange,
4932
+ onKeyDown: handleKeyDown,
4933
+ placeholder: disabled ? "Connection lost. Waiting to reconnect..." : placeholder,
4934
+ disabled: sending || disabled,
4935
+ rows: 1,
4936
+ endIcon: isStopMode ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.StopCircleIcon, { size: 20 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Send01Icon, { size: 20 }),
4937
+ endIconAsButton: true,
4938
+ endIconButtonProps: {
4939
+ onClick: isStopMode ? handleStop : handleSubmit,
4940
+ disabled: isStopMode ? isStopping : sendDisabled,
4941
+ "aria-label": isStopMode ? "Stop generation" : "Send message"
4942
+ },
4943
+ ...inputProps
4944
+ }
4945
+ )
4946
+ ] })
4966
4947
  }
4967
4948
  );
4968
4949
  }
@@ -5213,7 +5194,7 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5213
5194
  variant: "round",
5214
5195
  className: _chunkUC43NICZcjs.cn.call(void 0,
5215
5196
  "flex-shrink-0",
5216
- isUser ? "invisible" : isMingo ? "bg-ods-flamingo-cyan" : "bg-ods-flamingo-pink"
5197
+ isMingo ? "bg-ods-flamingo-cyan" : "bg-ods-flamingo-pink"
5217
5198
  )
5218
5199
  };
5219
5200
  };
@@ -5224,20 +5205,20 @@ var ChatMessageEnhanced = _react.forwardRef.call(void 0,
5224
5205
  {
5225
5206
  ref,
5226
5207
  className: _chunkUC43NICZcjs.cn.call(void 0,
5227
- "flex flex-row items-start gap-2 py-3",
5208
+ "relative py-[var(--spacing-system-s)]",
5228
5209
  className
5229
5210
  ),
5230
5211
  ...props,
5231
5212
  children: [
5232
- showAvatar && (isSystem ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-12 flex-shrink-0" }) : !isUser && assistantIcon && !avatar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-12 h-12 rounded-full bg-ods-accent flex-shrink-0", children: assistantIcon }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5213
+ showAvatar && !isSystem && !isUser && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute -left-16 top-[var(--spacing-system-s)]", children: assistantIcon && !avatar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center w-12 h-12 rounded-full bg-ods-accent", children: assistantIcon }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5233
5214
  SquareAvatar,
5234
5215
  {
5235
5216
  ...avatarProps,
5236
5217
  className: _chunkUC43NICZcjs.cn.call(void 0, avatarProps.className, "w-12 h-12")
5237
5218
  }
5238
- )),
5239
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [
5240
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-1", children: [
5219
+ ) }),
5220
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] min-w-0", children: [
5221
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-[var(--spacing-system-xxs)]", children: [
5241
5222
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkUC43NICZcjs.cn.call(void 0,
5242
5223
  "text-h3 !font-mono !font-medium flex-1",
5243
5224
  authorType === "system" ? "text-ods-open-yellow" : authorType === "admin" ? "text-ods-open-yellow" : authorType === "mingo" ? "text-ods-flamingo-cyan" : authorType === "fae" ? "text-ods-flamingo-pink" : "text-ods-text-secondary"
@@ -5375,16 +5356,16 @@ function ChatMessageSkeleton({
5375
5356
  "div",
5376
5357
  {
5377
5358
  className: _chunkUC43NICZcjs.cn.call(void 0,
5378
- "flex flex-row items-start gap-4",
5359
+ "relative",
5379
5360
  !isUser && "bg-ods-card/50 rounded-lg px-4 -mx-4",
5380
5361
  className
5381
5362
  ),
5382
5363
  children: [
5383
- showAvatar && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0,
5384
- "flex-shrink-0 mt-1 w-8 h-8 rounded animate-pulse",
5385
- isUser ? "invisible" : isMingo ? "bg-gradient-to-br from-cyan-400/30 to-cyan-600/30" : "bg-gradient-to-br from-pink-400/30 to-pink-600/30"
5364
+ showAvatar && !isUser && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0,
5365
+ "absolute -left-16 top-[var(--spacing-system-s)] w-12 h-12 rounded-full animate-pulse",
5366
+ isMingo ? "bg-gradient-to-br from-cyan-400/30 to-cyan-600/30" : "bg-gradient-to-br from-pink-400/30 to-pink-600/30"
5386
5367
  ) }),
5387
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [
5368
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1 min-w-0", children: [
5388
5369
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between pr-2", children: [
5389
5370
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-16 bg-ods-border rounded animate-pulse" }),
5390
5371
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 bg-ods-border rounded animate-pulse" })
@@ -5420,7 +5401,7 @@ function ChatMessageListSkeleton({
5420
5401
  "scrollbar-thin scrollbar-track-transparent scrollbar-thumb-ods-border/30 hover:scrollbar-thumb-ods-text-secondary/30",
5421
5402
  className
5422
5403
  ),
5423
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "mx-auto flex w-full max-w-3xl flex-col pb-2 min-w-0", contentClassName || "px-4"), style: { minHeight: "100%" }, children: [
5404
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "mx-auto flex w-full max-w-ods-content-narrow flex-col pb-[var(--spacing-system-xs)] min-w-0", _nullishCoalesce(contentClassName, () => ( "px-[var(--spacing-system-m)]"))), style: { minHeight: "100%" }, children: [
5424
5405
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
5425
5406
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: messages.map((message) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5426
5407
  ChatMessageSkeleton,
@@ -5770,8 +5751,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5770
5751
  {
5771
5752
  ref: setContentRef,
5772
5753
  className: _chunkUC43NICZcjs.cn.call(void 0,
5773
- "mx-auto flex w-full max-w-3xl flex-col pb-2 min-w-0",
5774
- contentClassName || "px-4"
5754
+ "mx-auto flex w-full max-w-ods-content-narrow flex-col pb-[var(--spacing-system-xs)] min-w-0",
5755
+ _nullishCoalesce(contentClassName, () => ( "px-[var(--spacing-system-m)]"))
5775
5756
  ),
5776
5757
  style: { minHeight: "100%" },
5777
5758
  children: [
@@ -5806,8 +5787,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5806
5787
  "div",
5807
5788
  {
5808
5789
  className: _chunkUC43NICZcjs.cn.call(void 0,
5809
- "mx-auto w-full max-w-3xl flex items-center gap-1 py-2",
5810
- contentClassName || "px-4"
5790
+ "mx-auto w-full max-w-ods-content-narrow flex items-center gap-[var(--spacing-system-xxs)] py-[var(--spacing-system-xs)]",
5791
+ _nullishCoalesce(contentClassName, () => ( "px-[var(--spacing-system-m)]"))
5811
5792
  ),
5812
5793
  style: { color: "var(--color-text-muted)" },
5813
5794
  role: "status",
@@ -5820,8 +5801,8 @@ var ChatMessageList = _react.forwardRef.call(void 0,
5820
5801
  ),
5821
5802
  pendingApprovals && pendingApprovals.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0,
5822
5803
  "border-t border-ods-border bg-ods-bg/95 backdrop-blur-sm",
5823
- "mx-auto w-full max-w-3xl",
5824
- contentClassName || "px-4"
5804
+ "mx-auto w-full max-w-ods-content-narrow",
5805
+ _nullishCoalesce(contentClassName, () => ( "px-[var(--spacing-system-m)]"))
5825
5806
  ), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
5826
5807
  MemoizedChatMessageEnhanced,
5827
5808
  {
@@ -11632,9 +11613,8 @@ var ScriptInfoSection = ({
11632
11613
  ScriptInfoSection.displayName = "ScriptInfoSection";
11633
11614
 
11634
11615
  // src/components/platform/ScriptArguments.tsx
11635
- _chunkUC43NICZcjs.init_cn.call(void 0, );
11636
- _chunkV2FNIPZJcjs.init_button2.call(void 0, );
11637
11616
 
11617
+ _chunkV2FNIPZJcjs.init_button2.call(void 0, );
11638
11618
 
11639
11619
  var ScriptArguments = ({
11640
11620
  arguments: args,
@@ -11727,12 +11707,12 @@ var ScriptArguments = ({
11727
11707
  _chunkV2FNIPZJcjs.Button,
11728
11708
  {
11729
11709
  type: "button",
11730
- variant: "transparent",
11731
- className: "text-ods-text-primary",
11710
+ variant: "outline",
11711
+ size: "small",
11732
11712
  onClick: handleAdd,
11733
11713
  disabled,
11734
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.PlusCircle, { className: "size-6" }),
11735
- noPaddingX: true,
11714
+ className: "self-start",
11715
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.PlusCircleIcon, { className: "text-ods-text-secondary" }),
11736
11716
  children: addButtonLabel
11737
11717
  }
11738
11718
  ) })
@@ -13890,7 +13870,7 @@ var SunIcon = _lucidereact.Sun;
13890
13870
  var MoonIcon = _lucidereact.Moon;
13891
13871
  var CheckCircleIcon2 = _lucidereact.CheckCircle;
13892
13872
  var GitHubIcon2 = _lucidereact.Github;
13893
- var PlusCircleIcon2 = _lucidereact.PlusCircle;
13873
+ var PlusCircleIcon3 = _lucidereact.PlusCircle;
13894
13874
  var OpenmspLogo2 = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: "Logo" });
13895
13875
  var availableIcons = [
13896
13876
  VendorDirectoryIcon,
@@ -13903,7 +13883,7 @@ var availableIcons = [
13903
13883
  MoonIcon,
13904
13884
  CheckCircleIcon2,
13905
13885
  GitHubIcon2,
13906
- PlusCircleIcon2,
13886
+ PlusCircleIcon3,
13907
13887
  OpenmspLogo2
13908
13888
  ];
13909
13889
  function ResponsiveIconsBlock({ loading = false }) {
@@ -17284,9 +17264,19 @@ function OnboardingWalkthrough({
17284
17264
  }
17285
17265
 
17286
17266
  // src/components/shared/product-release/product-release-card.tsx
17267
+
17287
17268
  _chunkUC43NICZcjs.init_cn.call(void 0, );
17288
17269
 
17289
17270
 
17271
+
17272
+
17273
+
17274
+
17275
+
17276
+
17277
+
17278
+
17279
+
17290
17280
  function ProductReleaseCard({
17291
17281
  title,
17292
17282
  summary,
@@ -17295,8 +17285,181 @@ function ProductReleaseCard({
17295
17285
  onClick,
17296
17286
  anchorProps,
17297
17287
  className,
17298
- size = "default"
17288
+ size = "default",
17289
+ coverImage,
17290
+ hasVideoCover,
17291
+ releaseType,
17292
+ releaseStatus,
17293
+ releaseTypeBadgeColor,
17294
+ viewCount,
17295
+ author,
17296
+ changelogCounts
17299
17297
  }) {
17298
+ if (size === "catalog") {
17299
+ const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _437 => _437.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _438 => _438.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _439 => _439.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _440 => _440.breaking]), () => ( 0)));
17300
+ const valueCells = [];
17301
+ if (releaseType && releaseTypeBadgeColor) {
17302
+ valueCells.push({
17303
+ value: releaseType.toUpperCase(),
17304
+ label: "Type",
17305
+ uppercase: true,
17306
+ colorScheme: releaseTypeBadgeColor
17307
+ });
17308
+ }
17309
+ if (releaseStatus) {
17310
+ valueCells.push({
17311
+ value: releaseStatus.toUpperCase(),
17312
+ label: "Status",
17313
+ uppercase: true
17314
+ });
17315
+ }
17316
+ if (formattedDate) {
17317
+ valueCells.push({
17318
+ value: formattedDate,
17319
+ label: "Released",
17320
+ uppercase: false
17321
+ });
17322
+ }
17323
+ const hasAuthorCell = !!_optionalChain([author, 'optionalAccess', _441 => _441.full_name]);
17324
+ const totalCells = valueCells.length + (hasAuthorCell ? 1 : 0);
17325
+ const gridColsClass = totalCells >= 4 ? "md:grid-cols-4" : totalCells === 3 ? "md:grid-cols-3" : totalCells === 2 ? "md:grid-cols-2" : "md:grid-cols-1";
17326
+ const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
17327
+ const frameClass = _chunkUC43NICZcjs.cn.call(void 0,
17328
+ "group bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden",
17329
+ "flex flex-col p-6 gap-4",
17330
+ "transition-all duration-300 ease-out transform hover:translate-y-[-2px]",
17331
+ "hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08]",
17332
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 focus-visible:ring-offset-ods-bg",
17333
+ "no-underline",
17334
+ className
17335
+ );
17336
+ const innerLayout = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17337
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
17338
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative rounded-lg overflow-hidden w-full aspect-[16/9] bg-ods-bg", children: [
17339
+ coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17340
+ _image2.default,
17341
+ {
17342
+ src: coverImage,
17343
+ alt: title,
17344
+ fill: true,
17345
+ sizes: "(max-width: 768px) 100vw, 256px",
17346
+ className: "object-cover",
17347
+ unoptimized: true
17348
+ }
17349
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "w-8 h-8" }) }),
17350
+ hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Play, { className: "w-10 h-10 text-white", fill: "white" }) })
17351
+ ] }) }),
17352
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
17353
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 mb-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "font-mono font-semibold text-lg text-ods-text-primary truncate", children: [
17354
+ "v",
17355
+ version
17356
+ ] }) }),
17357
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight line-clamp-2 mb-3", children: title }),
17358
+ summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-sm md:text-base text-ods-text-secondary leading-relaxed line-clamp-4 flex-1", children: summary })
17359
+ ] })
17360
+ ] }),
17361
+ totalChangelog > 0 && changelogCounts && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 font-['DM_Sans'] text-sm text-ods-text-secondary", children: [
17362
+ changelogCounts.features > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
17363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "w-3.5 h-3.5" }),
17364
+ changelogCounts.features,
17365
+ " ",
17366
+ changelogCounts.features === 1 ? "feature" : "features"
17367
+ ] }),
17368
+ changelogCounts.fixes > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
17369
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "w-3.5 h-3.5" }),
17370
+ changelogCounts.fixes,
17371
+ " ",
17372
+ changelogCounts.fixes === 1 ? "fix" : "fixes"
17373
+ ] }),
17374
+ changelogCounts.improvements > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
17375
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "w-3.5 h-3.5" }),
17376
+ changelogCounts.improvements,
17377
+ " ",
17378
+ changelogCounts.improvements === 1 ? "improvement" : "improvements"
17379
+ ] }),
17380
+ changelogCounts.breaking > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5 text-[var(--ods-attention-yellow-warning)]", children: [
17381
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "w-3.5 h-3.5" }),
17382
+ changelogCounts.breaking,
17383
+ " breaking"
17384
+ ] })
17385
+ ] }),
17386
+ totalCells > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
17387
+ "div",
17388
+ {
17389
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17390
+ "grid grid-cols-1",
17391
+ gridColsClass,
17392
+ "border border-ods-border rounded-md overflow-hidden w-full"
17393
+ ),
17394
+ children: [
17395
+ valueCells.map((cell, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17396
+ "div",
17397
+ {
17398
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17399
+ "bg-ods-card p-4 flex flex-col gap-3",
17400
+ // Last value cell skips the trailing divider when no
17401
+ // author cell follows; otherwise every value cell gets it.
17402
+ (i < valueCells.length - 1 || hasAuthorCell) && dividerClass
17403
+ ),
17404
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
17405
+ cell.colorScheme ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17406
+ StatusBadge,
17407
+ {
17408
+ text: cell.value,
17409
+ variant: "card",
17410
+ colorScheme: cell.colorScheme,
17411
+ singleLine: true,
17412
+ className: "self-start"
17413
+ }
17414
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value }),
17415
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: cell.label })
17416
+ ] })
17417
+ },
17418
+ `${cell.label}-${i}`
17419
+ )),
17420
+ hasAuthorCell && author && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
17421
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17422
+ SquareAvatar,
17423
+ {
17424
+ src: _nullishCoalesce(author.avatar_url, () => ( void 0)),
17425
+ alt: author.full_name,
17426
+ fallback: author.full_name.charAt(0).toUpperCase(),
17427
+ size: "md",
17428
+ variant: "round"
17429
+ }
17430
+ ),
17431
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
17432
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: author.full_name }),
17433
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: author.job_title || "Author" })
17434
+ ] })
17435
+ ] })
17436
+ ]
17437
+ }
17438
+ ),
17439
+ typeof viewCount === "number" && viewCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 text-xs text-ods-text-secondary", children: [
17440
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "w-3.5 h-3.5" }),
17441
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
17442
+ viewCount.toLocaleString(),
17443
+ " views"
17444
+ ] })
17445
+ ] })
17446
+ ] });
17447
+ if (anchorProps) {
17448
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: frameClass, "aria-label": `Open ${title}`, children: innerLayout });
17449
+ }
17450
+ if (onClick) {
17451
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
17452
+ }
17453
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17454
+ "div",
17455
+ {
17456
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17457
+ frameClass.replace("hover:border-ods-accent", "").replace("hover:translate-y-[-2px]", "")
17458
+ ),
17459
+ children: innerLayout
17460
+ }
17461
+ );
17462
+ }
17300
17463
  if (size === "sm") {
17301
17464
  const handleKey = (e) => {
17302
17465
  if (!onClick) return;
@@ -17323,7 +17486,20 @@ function ProductReleaseCard({
17323
17486
  className
17324
17487
  );
17325
17488
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17326
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center rounded-md bg-ods-bg text-ods-accent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "h-5 w-5" }) }),
17489
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center overflow-hidden rounded-md bg-ods-bg text-ods-accent", children: [
17490
+ coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17491
+ _image2.default,
17492
+ {
17493
+ src: coverImage,
17494
+ alt: title,
17495
+ fill: true,
17496
+ sizes: "56px",
17497
+ className: "object-contain",
17498
+ unoptimized: true
17499
+ }
17500
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "h-5 w-5" }),
17501
+ hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Play, { className: "h-4 w-4 text-white", fill: "white" }) })
17502
+ ] }),
17327
17503
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14", children: [
17328
17504
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2 min-w-0 h-5", children: [
17329
17505
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-sm font-semibold leading-5 text-ods-text-primary min-w-0", children: title }),
@@ -17420,6 +17596,52 @@ function ProductReleaseCard({
17420
17596
  _chunkUC43NICZcjs.init_cn.call(void 0, );
17421
17597
 
17422
17598
  function ProductReleaseCardSkeleton({ className, size = "default" }) {
17599
+ if (size === "catalog") {
17600
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
17601
+ "div",
17602
+ {
17603
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17604
+ "bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden",
17605
+ "flex flex-col p-6 gap-4",
17606
+ "animate-pulse",
17607
+ className
17608
+ ),
17609
+ children: [
17610
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
17611
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] aspect-[16/9] bg-ods-bg rounded-lg flex-shrink-0" }),
17612
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
17613
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-20 bg-ods-bg rounded mb-3" }),
17614
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-7 w-3/4 bg-ods-bg rounded mb-2" }),
17615
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-7 w-1/2 bg-ods-bg rounded mb-3" }),
17616
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-full bg-ods-bg/60 rounded mb-1" }),
17617
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" })
17618
+ ] })
17619
+ ] }),
17620
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t border-ods-border pt-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-2/3 bg-ods-bg/60 rounded" }) }),
17621
+ /* @__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: [
17622
+ [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17623
+ "div",
17624
+ {
17625
+ className: "bg-ods-card p-4 flex flex-col gap-3 border-b md:border-b-0 md:border-r border-ods-border",
17626
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
17627
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-bg rounded" }),
17628
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 bg-ods-bg/60 rounded" })
17629
+ ] })
17630
+ },
17631
+ `cell-${i}`
17632
+ )),
17633
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
17634
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 rounded-full bg-ods-bg shrink-0" }),
17635
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
17636
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 bg-ods-bg rounded" }),
17637
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
17638
+ ] })
17639
+ ] })
17640
+ ] })
17641
+ ]
17642
+ }
17643
+ );
17644
+ }
17423
17645
  if (size === "sm") {
17424
17646
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
17425
17647
  "span",
@@ -17537,6 +17759,7 @@ function ReleaseChangelogSection({
17537
17759
  hideTitle = false,
17538
17760
  collapsible = false,
17539
17761
  defaultCollapsed = true,
17762
+ icon,
17540
17763
  SimpleMarkdownRenderer: SimpleMarkdownRenderer2
17541
17764
  }) {
17542
17765
  const [collapsed, setCollapsed] = _react.useState.call(void 0, collapsible ? defaultCollapsed : false);
@@ -17551,6 +17774,7 @@ function ReleaseChangelogSection({
17551
17774
  className: "flex items-center justify-between w-full cursor-pointer",
17552
17775
  children: [
17553
17776
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: `flex items-center gap-2 text-2xl font-bold ${isBreaking ? "text-red-500" : "text-ods-text-primary"}`, children: [
17777
+ icon,
17554
17778
  title,
17555
17779
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Badge, { variant: "secondary", className: "ml-2", children: entries.length })
17556
17780
  ] }),
@@ -17563,12 +17787,26 @@ function ReleaseChangelogSection({
17563
17787
  ]
17564
17788
  }
17565
17789
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: `flex items-center gap-2 text-2xl font-bold ${isBreaking ? "text-red-500" : "text-ods-text-primary"}`, children: [
17790
+ icon,
17566
17791
  title,
17567
17792
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Badge, { variant: "secondary", className: "ml-2", children: entries.length })
17568
17793
  ] })),
17569
17794
  showEntries && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "space-y-6", children: entries.map((entry, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "border-l-2 border-ods-border pl-4 ml-0", children: [
17570
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-semibold text-[20px] leading-[24px] text-ods-text-primary mb-2", children: entry.title }),
17571
- entry.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "[&_p]:!font-['DM_Sans'] [&_p]:!font-medium [&_p]:!text-[18px] [&_p]:!leading-[24px] [&_p]:!text-ods-text-primary [&_p]:!my-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer2, { content: entry.description }) })
17795
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 text-ods-text-primary mb-2", children: entry.title }),
17796
+ entry.description && /* Entry description body text matches the main release
17797
+ summary (release-detail-page.tsx:321) at the SAME 14/18px
17798
+ responsive `text-h4` scale. The `SimpleMarkdownRenderer`
17799
+ forces its own `<p>` typography
17800
+ (`text-[16px] md:text-[18px] lg:text-[20px]`) which
17801
+ overrides the wrapper's `text-h4` on `lg+` viewports and
17802
+ inflates the changelog body to 20px — larger than the
17803
+ main summary AND larger than the entry title.
17804
+ The `[&_p]:!` overrides pin every descendant `<p>` back
17805
+ to the h4 responsive tokens (`var(--font-size-h4-body)`
17806
+ + `var(--font-line-space-h4-body)`) — same variables
17807
+ `text-h4` itself uses, so the responsive breakpoints
17808
+ stay aligned with the rest of the page. */
17809
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-primary [&_p]:!text-[length:var(--font-size-h4-body)] [&_p]:!leading-[var(--font-line-space-h4-body)] [&_p]:!font-medium", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer2, { content: entry.description }) })
17572
17810
  ] }, index)) })
17573
17811
  ] });
17574
17812
  }
@@ -17724,7 +17962,7 @@ var SecondaryAction = ({ action }) => {
17724
17962
  e.preventDefault();
17725
17963
  return;
17726
17964
  }
17727
- _optionalChain([action, 'access', _437 => _437.onClick, 'optionalCall', _438 => _438()]);
17965
+ _optionalChain([action, 'access', _442 => _442.onClick, 'optionalCall', _443 => _443()]);
17728
17966
  },
17729
17967
  [action]
17730
17968
  );
@@ -17765,13 +18003,13 @@ var MenuItem = ({ item, onItemClick }) => {
17765
18003
  const activate = _react.useCallback.call(void 0, () => {
17766
18004
  if (item.disabled) return;
17767
18005
  if (item.type === "checkbox") {
17768
- _optionalChain([item, 'access', _439 => _439.onClick, 'optionalCall', _440 => _440()]);
17769
- _optionalChain([onItemClick, 'optionalCall', _441 => _441(item)]);
18006
+ _optionalChain([item, 'access', _444 => _444.onClick, 'optionalCall', _445 => _445()]);
18007
+ _optionalChain([onItemClick, 'optionalCall', _446 => _446(item)]);
17770
18008
  return;
17771
18009
  }
17772
18010
  if (item.type === "submenu") return;
17773
- _optionalChain([item, 'access', _442 => _442.onClick, 'optionalCall', _443 => _443()]);
17774
- _optionalChain([onItemClick, 'optionalCall', _444 => _444(item)]);
18011
+ _optionalChain([item, 'access', _447 => _447.onClick, 'optionalCall', _448 => _448()]);
18012
+ _optionalChain([onItemClick, 'optionalCall', _449 => _449(item)]);
17775
18013
  }, [item, onItemClick]);
17776
18014
  const handleClick = _react.useCallback.call(void 0,
17777
18015
  (e) => {
@@ -17797,8 +18035,8 @@ var MenuItem = ({ item, onItemClick }) => {
17797
18035
  e.stopPropagation();
17798
18036
  return;
17799
18037
  }
17800
- _optionalChain([item, 'access', _445 => _445.onClick, 'optionalCall', _446 => _446()]);
17801
- _optionalChain([onItemClick, 'optionalCall', _447 => _447(item)]);
18038
+ _optionalChain([item, 'access', _450 => _450.onClick, 'optionalCall', _451 => _451()]);
18039
+ _optionalChain([onItemClick, 'optionalCall', _452 => _452(item)]);
17802
18040
  },
17803
18041
  [item, onItemClick]
17804
18042
  );
@@ -17953,7 +18191,7 @@ var ActionsMenuDropdown = ({
17953
18191
  const [open, setOpen] = _react.useState.call(void 0, false);
17954
18192
  const handleItemClick = _react.useCallback.call(void 0,
17955
18193
  (item) => {
17956
- _optionalChain([onItemClick, 'optionalCall', _448 => _448(item)]);
18194
+ _optionalChain([onItemClick, 'optionalCall', _453 => _453(item)]);
17957
18195
  if (item.type !== "checkbox" && item.type !== "submenu") {
17958
18196
  setOpen(false);
17959
18197
  }
@@ -18124,7 +18362,7 @@ function IconButtonsVariant({
18124
18362
  }) {
18125
18363
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
18126
18364
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
18127
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _449 => _449[0], 'access', _450 => _450.submenu, 'optionalAccess', _451 => _451.length]);
18365
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _454 => _454[0], 'access', _455 => _455.submenu, 'optionalAccess', _456 => _456.length]);
18128
18366
  const singleAction = isSingleAction ? actions[0] : null;
18129
18367
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
18130
18368
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -18554,14 +18792,14 @@ function ReleaseDetailPage({
18554
18792
  releaseVersion
18555
18793
  ] })
18556
18794
  ] }) }),
18557
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _452 => _452.map, 'call', _453 => _453((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18795
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _457 => _457.map, 'call', _458 => _458((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18558
18796
  StatusBadge,
18559
18797
  {
18560
- text: (tag.name || _optionalChain([tag, 'access', _454 => _454.blog_tags, 'optionalAccess', _455 => _455.name]) || "").toUpperCase(),
18798
+ text: (tag.name || _optionalChain([tag, 'access', _459 => _459.blog_tags, 'optionalAccess', _460 => _460.name]) || "").toUpperCase(),
18561
18799
  variant: "card",
18562
18800
  className: "bg-ods-card border border-ods-border"
18563
18801
  },
18564
- tag.id || _optionalChain([tag, 'access', _456 => _456.blog_tags, 'optionalAccess', _457 => _457.id])
18802
+ tag.id || _optionalChain([tag, 'access', _461 => _461.blog_tags, 'optionalAccess', _462 => _462.id])
18565
18803
  ))]) }),
18566
18804
  /* @__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: [
18567
18805
  /* @__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: [
@@ -18580,15 +18818,15 @@ function ReleaseDetailPage({
18580
18818
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18581
18819
  SquareAvatar,
18582
18820
  {
18583
- src: _optionalChain([author, 'optionalAccess', _458 => _458.avatar_url]) || "",
18584
- alt: _optionalChain([author, 'optionalAccess', _459 => _459.full_name]) || "Author",
18585
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _460 => _460.full_name]) || "Unknown"),
18821
+ src: _optionalChain([author, 'optionalAccess', _463 => _463.avatar_url]) || "",
18822
+ alt: _optionalChain([author, 'optionalAccess', _464 => _464.full_name]) || "Author",
18823
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _465 => _465.full_name]) || "Unknown"),
18586
18824
  size: "md",
18587
18825
  variant: "round"
18588
18826
  }
18589
18827
  ),
18590
18828
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18591
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _461 => _461.full_name]) || "Unknown Author" }),
18829
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _466 => _466.full_name]) || "Unknown Author" }),
18592
18830
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18593
18831
  ] })
18594
18832
  ] })
@@ -18619,8 +18857,8 @@ function ReleaseDetailPage({
18619
18857
  videoBites,
18620
18858
  bitesTitle: "Video Clips",
18621
18859
  filterPublishedBites: true,
18622
- srtContent: _optionalChain([release, 'optionalAccess', _462 => _462.srt_content]),
18623
- captionsUrl: _optionalChain([release, 'optionalAccess', _463 => _463.captionsUrl])
18860
+ srtContent: _optionalChain([release, 'optionalAccess', _467 => _467.srt_content]),
18861
+ captionsUrl: _optionalChain([release, 'optionalAccess', _468 => _468.captionsUrl])
18624
18862
  }
18625
18863
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18626
18864
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -18636,8 +18874,8 @@ function ReleaseDetailPage({
18636
18874
  Video2,
18637
18875
  {
18638
18876
  url: mainVideoUrl,
18639
- srtContent: _optionalChain([release, 'optionalAccess', _464 => _464.srt_content]),
18640
- captionsUrl: _optionalChain([release, 'optionalAccess', _465 => _465.captionsUrl]),
18877
+ srtContent: _optionalChain([release, 'optionalAccess', _469 => _469.srt_content]),
18878
+ captionsUrl: _optionalChain([release, 'optionalAccess', _470 => _470.captionsUrl]),
18641
18879
  layout: "centered"
18642
18880
  }
18643
18881
  ),
@@ -18665,6 +18903,7 @@ function ReleaseDetailPage({
18665
18903
  entries: breakingChanges || [],
18666
18904
  isBreaking: true,
18667
18905
  hideTitle: true,
18906
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6" }),
18668
18907
  SimpleMarkdownRenderer: MarkdownRenderer
18669
18908
  }
18670
18909
  ),
@@ -18673,6 +18912,7 @@ function ReleaseDetailPage({
18673
18912
  {
18674
18913
  title: "Features Added",
18675
18914
  entries: featuresAdded || [],
18915
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-6 w-6" }),
18676
18916
  SimpleMarkdownRenderer: MarkdownRenderer
18677
18917
  }
18678
18918
  ),
@@ -18681,6 +18921,7 @@ function ReleaseDetailPage({
18681
18921
  {
18682
18922
  title: "Bugs Fixed",
18683
18923
  entries: bugFixed || [],
18924
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-6 w-6" }),
18684
18925
  SimpleMarkdownRenderer: MarkdownRenderer
18685
18926
  }
18686
18927
  ),
@@ -18689,6 +18930,7 @@ function ReleaseDetailPage({
18689
18930
  {
18690
18931
  title: "Improvements",
18691
18932
  entries: improvements || [],
18933
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-6 w-6" }),
18692
18934
  SimpleMarkdownRenderer: MarkdownRenderer
18693
18935
  }
18694
18936
  ),
@@ -18727,7 +18969,7 @@ function ReleaseDetailPage({
18727
18969
  }
18728
18970
  )
18729
18971
  ] }),
18730
- (_optionalChain([githubReleases, 'optionalAccess', _466 => _466.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _467 => _467.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18972
+ (_optionalChain([githubReleases, 'optionalAccess', _471 => _471.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _472 => _472.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18731
18973
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18732
18974
  /* @__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: [
18733
18975
  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: [
@@ -18756,7 +18998,7 @@ function ReleaseDetailPage({
18756
18998
  {
18757
18999
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18758
19000
  className: "text-h4 text-[#ffc008] hover:underline",
18759
- children: _optionalChain([path, 'access', _468 => _468.replace, 'call', _469 => _469(/^\//, ""), 'access', _470 => _470.split, 'call', _471 => _471("/"), 'access', _472 => _472.pop, 'call', _473 => _473(), 'optionalAccess', _474 => _474.replace, 'call', _475 => _475(/-/g, " ")]) || "View Article"
19001
+ children: _optionalChain([path, 'access', _473 => _473.replace, 'call', _474 => _474(/^\//, ""), 'access', _475 => _475.split, 'call', _476 => _476("/"), 'access', _477 => _477.pop, 'call', _478 => _478(), 'optionalAccess', _479 => _479.replace, 'call', _480 => _480(/-/g, " ")]) || "View Article"
18760
19002
  }
18761
19003
  ),
18762
19004
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -19402,7 +19644,7 @@ function TagsManager({
19402
19644
  const name = search.trim();
19403
19645
  if (!name) return;
19404
19646
  const result = await onCreateTag(name);
19405
- if (_optionalChain([result, 'optionalAccess', _476 => _476.id])) {
19647
+ if (_optionalChain([result, 'optionalAccess', _481 => _481.id])) {
19406
19648
  onChange([...selectedIds, result.id]);
19407
19649
  setSearch("");
19408
19650
  }
@@ -19410,7 +19652,7 @@ function TagsManager({
19410
19652
  const startEdit = React55.useCallback((id, name) => {
19411
19653
  setEditingId(id);
19412
19654
  setEditingName(name);
19413
- setTimeout(() => _optionalChain([editInputRef, 'access', _477 => _477.current, 'optionalAccess', _478 => _478.focus, 'call', _479 => _479()]), 0);
19655
+ setTimeout(() => _optionalChain([editInputRef, 'access', _482 => _482.current, 'optionalAccess', _483 => _483.focus, 'call', _484 => _484()]), 0);
19414
19656
  }, []);
19415
19657
  const confirmEdit = React55.useCallback(async () => {
19416
19658
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -19437,7 +19679,7 @@ function TagsManager({
19437
19679
  e.stopPropagation();
19438
19680
  onChange([]);
19439
19681
  setSearch("");
19440
- _optionalChain([inputRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.focus, 'call', _482 => _482()]);
19682
+ _optionalChain([inputRef, 'access', _485 => _485.current, 'optionalAccess', _486 => _486.focus, 'call', _487 => _487()]);
19441
19683
  },
19442
19684
  [onChange]
19443
19685
  );
@@ -19536,10 +19778,10 @@ function TagsManager({
19536
19778
  align: "start",
19537
19779
  onOpenAutoFocus: (e) => {
19538
19780
  e.preventDefault();
19539
- _optionalChain([inputRef, 'access', _483 => _483.current, 'optionalAccess', _484 => _484.focus, 'call', _485 => _485()]);
19781
+ _optionalChain([inputRef, 'access', _488 => _488.current, 'optionalAccess', _489 => _489.focus, 'call', _490 => _490()]);
19540
19782
  },
19541
19783
  onInteractOutside: (e) => {
19542
- if (_optionalChain([containerRef, 'access', _486 => _486.current, 'optionalAccess', _487 => _487.contains, 'call', _488 => _488(e.target)])) {
19784
+ if (_optionalChain([containerRef, 'access', _491 => _491.current, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(e.target)])) {
19543
19785
  e.preventDefault();
19544
19786
  }
19545
19787
  },
@@ -20643,19 +20885,19 @@ function TabNavigation({
20643
20885
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20644
20886
  const getInitialTab = () => {
20645
20887
  if (isUrlSyncEnabled) {
20646
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _489 => _489.get, 'call', _490 => _490(paramName)]) || "";
20888
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _494 => _494.get, 'call', _495 => _495(paramName)]) || "";
20647
20889
  if (validTabIds.has(fromUrl)) {
20648
20890
  return fromUrl;
20649
20891
  }
20650
20892
  }
20651
- return defaultTab || _optionalChain([tabs, 'access', _491 => _491[0], 'optionalAccess', _492 => _492.id]) || "";
20893
+ return defaultTab || _optionalChain([tabs, 'access', _496 => _496[0], 'optionalAccess', _497 => _497.id]) || "";
20652
20894
  };
20653
20895
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20654
20896
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20655
20897
  _react.useEffect.call(void 0, () => {
20656
20898
  if (!isUrlSyncEnabled) return;
20657
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _493 => _493.get, 'call', _494 => _494(paramName)]) || "";
20658
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.id]) || "";
20899
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _498 => _498.get, 'call', _499 => _499(paramName)]) || "";
20900
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _500 => _500[0], 'optionalAccess', _501 => _501.id]) || "";
20659
20901
  if (nextTab !== internalActiveTab) {
20660
20902
  setInternalActiveTab(nextTab);
20661
20903
  }
@@ -20663,13 +20905,13 @@ function TabNavigation({
20663
20905
  const handleTabChange = (tabId) => {
20664
20906
  if (isUrlSyncEnabled) {
20665
20907
  setInternalActiveTab(tabId);
20666
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _497 => _497.toString, 'call', _498 => _498()]));
20908
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _502 => _502.toString, 'call', _503 => _503()]));
20667
20909
  params.set(paramName, tabId);
20668
20910
  const method = replaceState ? "replace" : "push";
20669
20911
  router[method](`${pathname}?${params.toString()}`);
20670
- _optionalChain([controlledOnTabChange, 'optionalCall', _499 => _499(tabId)]);
20912
+ _optionalChain([controlledOnTabChange, 'optionalCall', _504 => _504(tabId)]);
20671
20913
  } else {
20672
- _optionalChain([controlledOnTabChange, 'optionalCall', _500 => _500(tabId)]);
20914
+ _optionalChain([controlledOnTabChange, 'optionalCall', _505 => _505(tabId)]);
20673
20915
  }
20674
20916
  };
20675
20917
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20757,7 +20999,7 @@ function TabNavigation({
20757
20999
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20758
21000
  var getTabComponent = (tabs, tabId) => {
20759
21001
  const tab = getTabById(tabs, tabId);
20760
- return _optionalChain([tab, 'optionalAccess', _501 => _501.component]) || null;
21002
+ return _optionalChain([tab, 'optionalAccess', _506 => _506.component]) || null;
20761
21003
  };
20762
21004
 
20763
21005
  // src/components/ui/alert.tsx
@@ -21094,16 +21336,16 @@ function FilterModal({
21094
21336
  };
21095
21337
  const handleReset = () => {
21096
21338
  onFilterChange({});
21097
- _optionalChain([onTagsChange, 'optionalCall', _502 => _502([])]);
21339
+ _optionalChain([onTagsChange, 'optionalCall', _507 => _507([])]);
21098
21340
  onClose();
21099
21341
  };
21100
21342
  const handleApply = () => {
21101
21343
  onFilterChange(selectedFilters);
21102
- _optionalChain([onTagsChange, 'optionalCall', _503 => _503(pendingTags)]);
21344
+ _optionalChain([onTagsChange, 'optionalCall', _508 => _508(pendingTags)]);
21103
21345
  onClose();
21104
21346
  };
21105
21347
  const getColumnDirection = (columnKey) => {
21106
- return _optionalChain([sortConfig, 'optionalAccess', _504 => _504.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21348
+ return _optionalChain([sortConfig, 'optionalAccess', _509 => _509.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21107
21349
  };
21108
21350
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
21109
21351
  const hasFilterGroups = filterGroups.length > 0;
@@ -21152,7 +21394,7 @@ function FilterModal({
21152
21394
  {
21153
21395
  column,
21154
21396
  currentDirection: getColumnDirection(column.key),
21155
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _505 => _505(column.key, direction)]),
21397
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _510 => _510(column.key, direction)]),
21156
21398
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
21157
21399
  },
21158
21400
  column.key
@@ -21318,9 +21560,9 @@ function TitleBlock({
21318
21560
  const [imageFailed, setImageFailed] = React37.default.useState(false);
21319
21561
  React37.default.useEffect(() => {
21320
21562
  setImageFailed(false);
21321
- }, [_optionalChain([image, 'optionalAccess', _506 => _506.src])]);
21563
+ }, [_optionalChain([image, 'optionalAccess', _511 => _511.src])]);
21322
21564
  const showImageFallback = !!image && (imageFailed || !image.src);
21323
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _507 => _507.alt]) || title);
21565
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _512 => _512.alt]) || title);
21324
21566
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21325
21567
  "div",
21326
21568
  {
@@ -22116,26 +22358,26 @@ function DeviceCard({
22116
22358
  ] }),
22117
22359
  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 })
22118
22360
  ] }),
22119
- _optionalChain([actions, 'access', _508 => _508.moreButton, 'optionalAccess', _509 => _509.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22361
+ _optionalChain([actions, 'access', _513 => _513.moreButton, 'optionalAccess', _514 => _514.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22120
22362
  "div",
22121
22363
  {
22122
22364
  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",
22123
22365
  onClick: (e) => {
22124
22366
  e.stopPropagation();
22125
- _optionalChain([actions, 'access', _510 => _510.moreButton, 'optionalAccess', _511 => _511.onClick, 'optionalCall', _512 => _512()]);
22367
+ _optionalChain([actions, 'access', _515 => _515.moreButton, 'optionalAccess', _516 => _516.onClick, 'optionalCall', _517 => _517()]);
22126
22368
  },
22127
22369
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22128
22370
  }
22129
22371
  ),
22130
- _optionalChain([actions, 'access', _513 => _513.detailsButton, 'optionalAccess', _514 => _514.visible]) !== false && _optionalChain([actions, 'access', _515 => _515.detailsButton, 'optionalAccess', _516 => _516.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22131
- _optionalChain([actions, 'access', _517 => _517.customActions, 'optionalAccess', _518 => _518.map, 'call', _519 => _519(
22372
+ _optionalChain([actions, 'access', _518 => _518.detailsButton, 'optionalAccess', _519 => _519.visible]) !== false && _optionalChain([actions, 'access', _520 => _520.detailsButton, 'optionalAccess', _521 => _521.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22373
+ _optionalChain([actions, 'access', _522 => _522.customActions, 'optionalAccess', _523 => _523.map, 'call', _524 => _524(
22132
22374
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22133
22375
  "div",
22134
22376
  {
22135
22377
  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",
22136
22378
  onClick: (e) => {
22137
22379
  e.stopPropagation();
22138
- _optionalChain([action, 'access', _520 => _520.onClick, 'optionalCall', _521 => _521()]);
22380
+ _optionalChain([action, 'access', _525 => _525.onClick, 'optionalCall', _526 => _526()]);
22139
22381
  },
22140
22382
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22141
22383
  },
@@ -22494,7 +22736,7 @@ function MoreActionsMenu({
22494
22736
  ] });
22495
22737
  const handleActivate = (e) => {
22496
22738
  e.stopPropagation();
22497
- if (!item.disabled) _optionalChain([item, 'access', _522 => _522.onClick, 'optionalCall', _523 => _523()]);
22739
+ if (!item.disabled) _optionalChain([item, 'access', _527 => _527.onClick, 'optionalCall', _528 => _528()]);
22498
22740
  };
22499
22741
  if (item.href) {
22500
22742
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22644,7 +22886,7 @@ function OrganizationIcon({
22644
22886
  backgroundStyle = "dark"
22645
22887
  }) {
22646
22888
  const { width, height } = imageSizeMap2[size];
22647
- const initials = _optionalChain([organizationName, 'optionalAccess', _524 => _524.substring, 'call', _525 => _525(0, 2)]) || "??";
22889
+ const initials = _optionalChain([organizationName, 'optionalAccess', _529 => _529.substring, 'call', _530 => _530(0, 2)]) || "??";
22648
22890
  const containerClasses = _chunkUC43NICZcjs.cn.call(void 0,
22649
22891
  sizeClasses3[size],
22650
22892
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22695,7 +22937,7 @@ function OrganizationCard({
22695
22937
  const handleActionClick = (e) => {
22696
22938
  e.preventDefault();
22697
22939
  e.stopPropagation();
22698
- _optionalChain([actionButton, 'optionalAccess', _526 => _526.onClick, 'call', _527 => _527(organization, e)]);
22940
+ _optionalChain([actionButton, 'optionalAccess', _531 => _531.onClick, 'call', _532 => _532(organization, e)]);
22699
22941
  };
22700
22942
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22701
22943
  "div",
@@ -22852,7 +23094,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22852
23094
  onKeyDown: (e) => {
22853
23095
  if (e.key === "Enter" || e.key === " ") {
22854
23096
  e.preventDefault();
22855
- _optionalChain([onClick, 'optionalCall', _528 => _528()]);
23097
+ _optionalChain([onClick, 'optionalCall', _533 => _533()]);
22856
23098
  }
22857
23099
  },
22858
23100
  children: [
@@ -22953,7 +23195,7 @@ var LogsList = React79.forwardRef(({
22953
23195
  log,
22954
23196
  isLast: index === logs.length - 1,
22955
23197
  showConnector,
22956
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _529 => _529(log)])
23198
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _534 => _534(log)])
22957
23199
  },
22958
23200
  log.id
22959
23201
  ))
@@ -23542,7 +23784,7 @@ function CursorPaginationSimple({
23542
23784
  {
23543
23785
  variant: "transparent",
23544
23786
  size: "icon",
23545
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _530 => _530("")]),
23787
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _535 => _535("")]),
23546
23788
  disabled: !hasPreviousPage || loading,
23547
23789
  className: "h-8 w-8",
23548
23790
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23554,7 +23796,7 @@ function CursorPaginationSimple({
23554
23796
  {
23555
23797
  variant: "transparent",
23556
23798
  size: "icon",
23557
- onClick: () => _optionalChain([onNext, 'optionalCall', _531 => _531("")]),
23799
+ onClick: () => _optionalChain([onNext, 'optionalCall', _536 => _536("")]),
23558
23800
  disabled: !hasNextPage || loading,
23559
23801
  className: "h-8 w-8",
23560
23802
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23614,7 +23856,7 @@ function TableColumnFilterDropdown({
23614
23856
  placement = "bottom-start",
23615
23857
  dropdownClassName = "min-w-[240px]"
23616
23858
  }) {
23617
- const activeCount = _optionalChain([filters, 'optionalAccess', _532 => _532[columnKey], 'optionalAccess', _533 => _533.length]) || 0;
23859
+ const activeCount = _optionalChain([filters, 'optionalAccess', _537 => _537[columnKey], 'optionalAccess', _538 => _538.length]) || 0;
23618
23860
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23619
23861
  FiltersDropdown,
23620
23862
  {
@@ -23657,7 +23899,7 @@ function TableColumnFilterDropdown({
23657
23899
  delete newFilters[columnKey];
23658
23900
  onFilterChange(newFilters);
23659
23901
  },
23660
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _534 => _534[columnKey]]) || [] },
23902
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _539 => _539[columnKey]]) || [] },
23661
23903
  placement,
23662
23904
  dropdownClassName
23663
23905
  }
@@ -23954,7 +24196,7 @@ function TableRow({
23954
24196
  const keys = column.key.split(".");
23955
24197
  let value = item;
23956
24198
  for (const key of keys) {
23957
- value = _optionalChain([value, 'optionalAccess', _535 => _535[key]]);
24199
+ value = _optionalChain([value, 'optionalAccess', _540 => _540[key]]);
23958
24200
  }
23959
24201
  if (value === null || value === void 0) {
23960
24202
  return "-";
@@ -24024,7 +24266,7 @@ function TableRow({
24024
24266
  // src/components/ui/table/table.tsx
24025
24267
 
24026
24268
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
24027
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _536 => _536.length])) || Boolean(renderRowActions);
24269
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _541 => _541.length])) || Boolean(renderRowActions);
24028
24270
  const result = [...columns];
24029
24271
  if (hasActions) {
24030
24272
  const actionsColumn = {
@@ -24118,7 +24360,7 @@ function Table({
24118
24360
  return rowKey(item);
24119
24361
  }
24120
24362
  const key = item[rowKey];
24121
- return _optionalChain([key, 'optionalAccess', _537 => _537.toString, 'call', _538 => _538()]) || index.toString();
24363
+ return _optionalChain([key, 'optionalAccess', _542 => _542.toString, 'call', _543 => _543()]) || index.toString();
24122
24364
  };
24123
24365
  const getRowClassName = (item, index) => {
24124
24366
  if (typeof rowClassName === "function") {
@@ -24152,23 +24394,23 @@ function Table({
24152
24394
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
24153
24395
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
24154
24396
  const sentinelRef = _react.useRef.call(void 0, null);
24155
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _539 => _539.onLoadMore]));
24156
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _540 => _540.onLoadMore]);
24397
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _544 => _544.onLoadMore]));
24398
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _545 => _545.onLoadMore]);
24157
24399
  _react.useEffect.call(void 0, () => {
24158
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _541 => _541.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24400
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _546 => _546.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24159
24401
  const sentinel = sentinelRef.current;
24160
24402
  if (!sentinel) return;
24161
24403
  const observer = new IntersectionObserver(
24162
24404
  (entries) => {
24163
- if (_optionalChain([entries, 'access', _542 => _542[0], 'optionalAccess', _543 => _543.isIntersecting])) {
24164
- _optionalChain([onLoadMoreRef, 'access', _544 => _544.current, 'optionalCall', _545 => _545()]);
24405
+ if (_optionalChain([entries, 'access', _547 => _547[0], 'optionalAccess', _548 => _548.isIntersecting])) {
24406
+ _optionalChain([onLoadMoreRef, 'access', _549 => _549.current, 'optionalCall', _550 => _550()]);
24165
24407
  }
24166
24408
  },
24167
24409
  { rootMargin: "200px" }
24168
24410
  );
24169
24411
  observer.observe(sentinel);
24170
24412
  return () => observer.disconnect();
24171
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _546 => _546.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _547 => _547.isFetchingNextPage])]);
24413
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _551 => _551.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _552 => _552.isFetchingNextPage])]);
24172
24414
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
24173
24415
  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: [
24174
24416
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -24239,7 +24481,7 @@ function Table({
24239
24481
  },
24240
24482
  getRowKey(item, index)
24241
24483
  )),
24242
- _optionalChain([infiniteScroll, 'optionalAccess', _548 => _548.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24484
+ _optionalChain([infiniteScroll, 'optionalAccess', _553 => _553.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24243
24485
  TableCardSkeleton,
24244
24486
  {
24245
24487
  columns,
@@ -24248,7 +24490,7 @@ function Table({
24248
24490
  hasChevron: Boolean(rowHref)
24249
24491
  }
24250
24492
  ),
24251
- _optionalChain([infiniteScroll, 'optionalAccess', _549 => _549.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24493
+ _optionalChain([infiniteScroll, 'optionalAccess', _554 => _554.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24252
24494
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24253
24495
  "div",
24254
24496
  {
@@ -24606,7 +24848,7 @@ function QueryReportTable({
24606
24848
  );
24607
24849
  const handleExport = () => {
24608
24850
  exportToCSV(data, columns, exportFilename);
24609
- _optionalChain([onExport, 'optionalCall', _550 => _550()]);
24851
+ _optionalChain([onExport, 'optionalCall', _555 => _555()]);
24610
24852
  };
24611
24853
  const tableMinWidth = columns.length * (columnWidth + 16);
24612
24854
  const {
@@ -24779,7 +25021,7 @@ function DataTableColumnFilter({
24779
25021
  align = "left"
24780
25022
  }) {
24781
25023
  const currentValue = column.getFilterValue();
24782
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _551 => _551.length]), () => ( 0));
25024
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _556 => _556.length]), () => ( 0));
24783
25025
  const sections = _react.useMemo.call(void 0,
24784
25026
  () => [
24785
25027
  {
@@ -24859,7 +25101,7 @@ function DataTableHeader({
24859
25101
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24860
25102
  if (header.isPlaceholder) return false;
24861
25103
  if (isLgUp) return true;
24862
- return Boolean(_optionalChain([header, 'access', _552 => _552.column, 'access', _553 => _553.columnDef, 'access', _554 => _554.meta, 'optionalAccess', _555 => _555.filter]));
25104
+ return Boolean(_optionalChain([header, 'access', _557 => _557.column, 'access', _558 => _558.columnDef, 'access', _559 => _559.meta, 'optionalAccess', _560 => _560.filter]));
24863
25105
  });
24864
25106
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24865
25107
  "div",
@@ -24889,20 +25131,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24889
25131
  if (header.isPlaceholder) return null;
24890
25132
  const column = header.column;
24891
25133
  const meta = column.columnDef.meta;
24892
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _556 => _556.filter]));
24893
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _557 => _557.align]), () => ( "left"));
24894
- const canSort = _optionalChain([meta, 'optionalAccess', _558 => _558.sortable]) === true;
24895
- const sortDir = _optionalChain([sort, 'optionalAccess', _559 => _559.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
25134
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _561 => _561.filter]));
25135
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _562 => _562.align]), () => ( "left"));
25136
+ const canSort = _optionalChain([meta, 'optionalAccess', _563 => _563.sortable]) === true;
25137
+ const sortDir = _optionalChain([sort, 'optionalAccess', _564 => _564.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24896
25138
  if (!isLgUp && !hasFilter) return null;
24897
25139
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24898
25140
  "div",
24899
25141
  {
24900
25142
  className: _chunkUC43NICZcjs.cn.call(void 0,
24901
25143
  "flex items-stretch",
24902
- isLgUp && (_optionalChain([meta, 'optionalAccess', _560 => _560.width]) || "flex-1 min-w-0"),
24903
- _optionalChain([meta, 'optionalAccess', _561 => _561.headerClassName]),
25144
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _565 => _565.width]) || "flex-1 min-w-0"),
25145
+ _optionalChain([meta, 'optionalAccess', _566 => _566.headerClassName]),
24904
25146
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24905
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _562 => _562.hideAt]))
25147
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _567 => _567.hideAt]))
24906
25148
  ),
24907
25149
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24908
25150
  DataTableColumnFilter,
@@ -24921,7 +25163,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24921
25163
  isLgUp && alignJustify(align),
24922
25164
  canSort && "group cursor-pointer"
24923
25165
  ),
24924
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _563 => _563(column.id)]) : void 0,
25166
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _568 => _568(column.id)]) : void 0,
24925
25167
  children: [
24926
25168
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24927
25169
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -25005,7 +25247,7 @@ function DataTableSkeleton({
25005
25247
  }) {
25006
25248
  const table = useDataTableContext();
25007
25249
  const columns = table.getVisibleFlatColumns();
25008
- const firstColumnId = _optionalChain([columns, 'access', _564 => _564[0], 'optionalAccess', _565 => _565.id]);
25250
+ const firstColumnId = _optionalChain([columns, 'access', _569 => _569[0], 'optionalAccess', _570 => _570.id]);
25009
25251
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25010
25252
  "div",
25011
25253
  {
@@ -25029,7 +25271,7 @@ function DataTableSkeleton({
25029
25271
  {
25030
25272
  className: _chunkUC43NICZcjs.cn.call(void 0,
25031
25273
  "flex flex-col justify-center shrink-0",
25032
- _optionalChain([meta, 'optionalAccess', _566 => _566.width]) || "flex-1"
25274
+ _optionalChain([meta, 'optionalAccess', _571 => _571.width]) || "flex-1"
25033
25275
  ),
25034
25276
  children: [
25035
25277
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -25075,7 +25317,7 @@ function DataTableRowImpl({
25075
25317
  (e) => {
25076
25318
  const target = e.target;
25077
25319
  if (target.closest("[data-no-row-click]")) return;
25078
- _optionalChain([onClick, 'optionalCall', _567 => _567(row.original)]);
25320
+ _optionalChain([onClick, 'optionalCall', _572 => _572(row.original)]);
25079
25321
  },
25080
25322
  [onClick, row.original]
25081
25323
  );
@@ -25113,10 +25355,10 @@ function DataTableRowImpl({
25113
25355
  {
25114
25356
  className: _chunkUC43NICZcjs.cn.call(void 0,
25115
25357
  "flex flex-col overflow-hidden",
25116
- alignJustify(_optionalChain([meta, 'optionalAccess', _568 => _568.align])),
25117
- _optionalChain([meta, 'optionalAccess', _569 => _569.width]) || "flex-1 min-w-0",
25118
- _optionalChain([meta, 'optionalAccess', _570 => _570.cellClassName]),
25119
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _571 => _571.hideAt]))
25358
+ alignJustify(_optionalChain([meta, 'optionalAccess', _573 => _573.align])),
25359
+ _optionalChain([meta, 'optionalAccess', _574 => _574.width]) || "flex-1 min-w-0",
25360
+ _optionalChain([meta, 'optionalAccess', _575 => _575.cellClassName]),
25361
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _576 => _576.hideAt]))
25120
25362
  ),
25121
25363
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
25122
25364
  },
@@ -25162,7 +25404,7 @@ function DataTableBody({
25162
25404
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
25163
25405
  rows.map((row, index) => {
25164
25406
  const item = row.original;
25165
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _572 => _572(item)]), () => ( void 0));
25407
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _577 => _577(item)]), () => ( void 0));
25166
25408
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
25167
25409
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25168
25410
  DataTableRow,
@@ -25226,7 +25468,7 @@ function DataTableInfiniteFooter({
25226
25468
  if (!sentinel) return;
25227
25469
  const observer = new IntersectionObserver(
25228
25470
  (entries) => {
25229
- if (_optionalChain([entries, 'access', _573 => _573[0], 'optionalAccess', _574 => _574.isIntersecting])) onLoadMoreRef.current();
25471
+ if (_optionalChain([entries, 'access', _578 => _578[0], 'optionalAccess', _579 => _579.isIntersecting])) onLoadMoreRef.current();
25230
25472
  },
25231
25473
  { rootMargin }
25232
25474
  );
@@ -25274,7 +25516,7 @@ function DataTableRowCount({
25274
25516
  const table = useDataTableContext();
25275
25517
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
25276
25518
  if (hideWhenEmpty && count === 0) return null;
25277
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _575 => _575(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25519
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _580 => _580(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25278
25520
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25279
25521
  "span",
25280
25522
  {
@@ -25368,12 +25610,12 @@ function PhoneInput({
25368
25610
  const runValidation = _react.useCallback.call(void 0, (phone) => {
25369
25611
  if (!phone || digitCount(phone) === 0) {
25370
25612
  setIsInvalid(false);
25371
- _optionalChain([onValidationChange, 'optionalCall', _576 => _576(false)]);
25613
+ _optionalChain([onValidationChange, 'optionalCall', _581 => _581(false)]);
25372
25614
  return;
25373
25615
  }
25374
25616
  const invalid = !validatePhoneNumber(phone, countryCode);
25375
25617
  setIsInvalid(invalid);
25376
- _optionalChain([onValidationChange, 'optionalCall', _577 => _577(invalid)]);
25618
+ _optionalChain([onValidationChange, 'optionalCall', _582 => _582(invalid)]);
25377
25619
  }, [countryCode, digitCount, onValidationChange]);
25378
25620
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
25379
25621
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -25422,7 +25664,7 @@ function PhoneInput({
25422
25664
  debouncedValidation(val);
25423
25665
  } else if (digitCount(val) === 0) {
25424
25666
  setIsInvalid(false);
25425
- _optionalChain([onValidationChange, 'optionalCall', _578 => _578(false)]);
25667
+ _optionalChain([onValidationChange, 'optionalCall', _583 => _583(false)]);
25426
25668
  }
25427
25669
  }
25428
25670
  },
@@ -25529,7 +25771,7 @@ function SearchInput({
25529
25771
  if (!showHiddenTags) return;
25530
25772
  const handleClick = (e) => {
25531
25773
  const target = e.target;
25532
- if (!_optionalChain([hiddenTagsRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.contains, 'call', _581 => _581(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _582 => _582.current, 'optionalAccess', _583 => _583.contains, 'call', _584 => _584(target)])) {
25774
+ if (!_optionalChain([hiddenTagsRef, 'access', _584 => _584.current, 'optionalAccess', _585 => _585.contains, 'call', _586 => _586(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _587 => _587.current, 'optionalAccess', _588 => _588.contains, 'call', _589 => _589(target)])) {
25533
25775
  setShowHiddenTags(false);
25534
25776
  }
25535
25777
  };
@@ -25577,10 +25819,10 @@ function SearchInput({
25577
25819
  } else {
25578
25820
  setInternalValue("");
25579
25821
  }
25580
- _optionalChain([inputRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.focus, 'call', _587 => _587()]);
25822
+ _optionalChain([inputRef, 'access', _590 => _590.current, 'optionalAccess', _591 => _591.focus, 'call', _592 => _592()]);
25581
25823
  };
25582
25824
  const handleResultClick = (result, e) => {
25583
- _optionalChain([onResultSelect, 'optionalCall', _588 => _588(
25825
+ _optionalChain([onResultSelect, 'optionalCall', _593 => _593(
25584
25826
  result,
25585
25827
  e ? {
25586
25828
  metaKey: e.metaKey,
@@ -25612,7 +25854,7 @@ function SearchInput({
25612
25854
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25613
25855
  handleResultClick(flatResults[highlightedIndex]);
25614
25856
  } else {
25615
- _optionalChain([onSubmit, 'optionalCall', _589 => _589(currentValue)]);
25857
+ _optionalChain([onSubmit, 'optionalCall', _594 => _594(currentValue)]);
25616
25858
  }
25617
25859
  break;
25618
25860
  case "Escape":
@@ -25690,7 +25932,7 @@ function SearchInput({
25690
25932
  dropdownVisible && "!border-ods-accent"
25691
25933
  ),
25692
25934
  onClick: () => {
25693
- _optionalChain([inputRef, 'access', _590 => _590.current, 'optionalAccess', _591 => _591.focus, 'call', _592 => _592()]);
25935
+ _optionalChain([inputRef, 'access', _595 => _595.current, 'optionalAccess', _596 => _596.focus, 'call', _597 => _597()]);
25694
25936
  setIsOpen(true);
25695
25937
  },
25696
25938
  children: [
@@ -25774,10 +26016,10 @@ function SearchInput({
25774
26016
  align: "start",
25775
26017
  onOpenAutoFocus: (e) => {
25776
26018
  e.preventDefault();
25777
- _optionalChain([inputRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.focus, 'call', _595 => _595()]);
26019
+ _optionalChain([inputRef, 'access', _598 => _598.current, 'optionalAccess', _599 => _599.focus, 'call', _600 => _600()]);
25778
26020
  },
25779
26021
  onInteractOutside: (e) => {
25780
- if (_optionalChain([containerRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.contains, 'call', _598 => _598(e.target)])) {
26022
+ if (_optionalChain([containerRef, 'access', _601 => _601.current, 'optionalAccess', _602 => _602.contains, 'call', _603 => _603(e.target)])) {
25781
26023
  e.preventDefault();
25782
26024
  }
25783
26025
  },
@@ -25794,10 +26036,10 @@ function SearchInput({
25794
26036
  ref: hiddenTagsPopupRef,
25795
26037
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25796
26038
  style: {
25797
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.getBoundingClientRect, 'call', _601 => _601(), 'access', _602 => _602.left]), () => ( 0))) : 0
26039
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.getBoundingClientRect, 'call', _606 => _606(), 'access', _607 => _607.left]), () => ( 0))) : 0
25798
26040
  },
25799
26041
  onRemove: (value2) => {
25800
- _optionalChain([onFilterRemove, 'optionalCall', _603 => _603(value2)]);
26042
+ _optionalChain([onFilterRemove, 'optionalCall', _608 => _608(value2)]);
25801
26043
  if (hiddenCount <= 1) setShowHiddenTags(false);
25802
26044
  }
25803
26045
  }
@@ -25848,7 +26090,7 @@ function FilterListItem({
25848
26090
  }) {
25849
26091
  const handleToggle = () => {
25850
26092
  if (disabled) return;
25851
- _optionalChain([onToggle, 'optionalCall', _604 => _604(!selected)]);
26093
+ _optionalChain([onToggle, 'optionalCall', _609 => _609(!selected)]);
25852
26094
  };
25853
26095
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25854
26096
  "div",
@@ -25895,7 +26137,7 @@ function FilterListItem({
25895
26137
  CheckboxPrimitive4.Root,
25896
26138
  {
25897
26139
  checked: selected,
25898
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _605 => _605(c === true)]),
26140
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _610 => _610(c === true)]),
25899
26141
  onClick: (e) => e.stopPropagation(),
25900
26142
  disabled,
25901
26143
  "aria-label": title,
@@ -25994,7 +26236,7 @@ function TagSearchInput({
25994
26236
  if (!showHiddenTags) return;
25995
26237
  const handleClick = (e) => {
25996
26238
  const target = e.target;
25997
- if (!_optionalChain([hiddenTagsRef, 'access', _606 => _606.current, 'optionalAccess', _607 => _607.contains, 'call', _608 => _608(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.contains, 'call', _611 => _611(target)])) {
26239
+ if (!_optionalChain([hiddenTagsRef, 'access', _611 => _611.current, 'optionalAccess', _612 => _612.contains, 'call', _613 => _613(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _614 => _614.current, 'optionalAccess', _615 => _615.contains, 'call', _616 => _616(target)])) {
25998
26240
  setShowHiddenTags(false);
25999
26241
  }
26000
26242
  };
@@ -26010,13 +26252,13 @@ function TagSearchInput({
26010
26252
  e.preventDefault();
26011
26253
  onSubmit(searchValue);
26012
26254
  }
26013
- _optionalChain([onKeyDown, 'optionalCall', _612 => _612(e)]);
26255
+ _optionalChain([onKeyDown, 'optionalCall', _617 => _617(e)]);
26014
26256
  };
26015
26257
  const handleClearAll = (e) => {
26016
26258
  e.stopPropagation();
26017
26259
  e.preventDefault();
26018
- _optionalChain([onClearAll, 'optionalCall', _613 => _613()]);
26019
- _optionalChain([inputRef, 'access', _614 => _614.current, 'optionalAccess', _615 => _615.focus, 'call', _616 => _616()]);
26260
+ _optionalChain([onClearAll, 'optionalCall', _618 => _618()]);
26261
+ _optionalChain([inputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.focus, 'call', _621 => _621()]);
26020
26262
  };
26021
26263
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
26022
26264
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -26033,7 +26275,7 @@ function TagSearchInput({
26033
26275
  className
26034
26276
  ),
26035
26277
  onClick: () => {
26036
- if (!disabled) _optionalChain([inputRef, 'access', _617 => _617.current, 'optionalAccess', _618 => _618.focus, 'call', _619 => _619()]);
26278
+ if (!disabled) _optionalChain([inputRef, 'access', _622 => _622.current, 'optionalAccess', _623 => _623.focus, 'call', _624 => _624()]);
26037
26279
  },
26038
26280
  children: [
26039
26281
  /* @__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" }) }),
@@ -26105,7 +26347,7 @@ function TagSearchInput({
26105
26347
  items: hiddenTags,
26106
26348
  disabled,
26107
26349
  style: {
26108
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _620 => _620.current, 'optionalAccess', _621 => _621.getBoundingClientRect, 'call', _622 => _622(), 'access', _623 => _623.left]), () => ( 0))) : 0
26350
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.getBoundingClientRect, 'call', _627 => _627(), 'access', _628 => _628.left]), () => ( 0))) : 0
26109
26351
  },
26110
26352
  onRemove: (value) => {
26111
26353
  onTagRemove(value);
@@ -26207,7 +26449,7 @@ function MarkdownEditor({
26207
26449
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
26208
26450
  _react.useEffect.call(void 0, () => {
26209
26451
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
26210
- if (_optionalChain([mod, 'access', _624 => _624.commands, 'optionalAccess', _625 => _625.getExtraCommands])) {
26452
+ if (_optionalChain([mod, 'access', _629 => _629.commands, 'optionalAccess', _630 => _630.getExtraCommands])) {
26211
26453
  setDefaultExtraCommands(mod.commands.getExtraCommands());
26212
26454
  }
26213
26455
  });
@@ -26241,7 +26483,7 @@ function MarkdownEditor({
26241
26483
  const isImage = file.type.startsWith("image/");
26242
26484
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
26243
26485
  insertTextAtCursor(markdown);
26244
- _optionalChain([onFileUploaded, 'optionalCall', _626 => _626(url, file.name)]);
26486
+ _optionalChain([onFileUploaded, 'optionalCall', _631 => _631(url, file.name)]);
26245
26487
  } catch (error) {
26246
26488
  console.error("File upload failed:", error);
26247
26489
  setUploadProgress("Upload failed. Please try again.");
@@ -26254,7 +26496,7 @@ function MarkdownEditor({
26254
26496
  );
26255
26497
  const handleFileInputChange = _react.useCallback.call(void 0,
26256
26498
  (e) => {
26257
- const file = _optionalChain([e, 'access', _627 => _627.target, 'access', _628 => _628.files, 'optionalAccess', _629 => _629[0]]);
26499
+ const file = _optionalChain([e, 'access', _632 => _632.target, 'access', _633 => _633.files, 'optionalAccess', _634 => _634[0]]);
26258
26500
  if (file) {
26259
26501
  handleFileUpload(file);
26260
26502
  e.target.value = "";
@@ -26265,7 +26507,7 @@ function MarkdownEditor({
26265
26507
  const handlePaste = _react.useCallback.call(void 0,
26266
26508
  (e) => {
26267
26509
  if (!onUploadFile) return;
26268
- const items = _optionalChain([e, 'access', _630 => _630.clipboardData, 'optionalAccess', _631 => _631.items]);
26510
+ const items = _optionalChain([e, 'access', _635 => _635.clipboardData, 'optionalAccess', _636 => _636.items]);
26269
26511
  if (!items) return;
26270
26512
  for (const item of items) {
26271
26513
  if (item.type.startsWith("image/")) {
@@ -26290,7 +26532,7 @@ function MarkdownEditor({
26290
26532
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
26291
26533
  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" }),
26292
26534
  execute: () => {
26293
- _optionalChain([fileInputRef, 'access', _632 => _632.current, 'optionalAccess', _633 => _633.click, 'call', _634 => _634()]);
26535
+ _optionalChain([fileInputRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.click, 'call', _639 => _639()]);
26294
26536
  }
26295
26537
  } : null;
26296
26538
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -26302,7 +26544,7 @@ function MarkdownEditor({
26302
26544
  const EDGE_ZONE = 60;
26303
26545
  const MAX_SCROLL_SPEED = 15;
26304
26546
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
26305
- let node = _optionalChain([el, 'optionalAccess', _635 => _635.parentElement]);
26547
+ let node = _optionalChain([el, 'optionalAccess', _640 => _640.parentElement]);
26306
26548
  while (node && node !== document.documentElement) {
26307
26549
  const { overflowY } = window.getComputedStyle(node);
26308
26550
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -26445,7 +26687,7 @@ function matchesAccept(file, accept) {
26445
26687
  });
26446
26688
  }
26447
26689
  function dragHasFiles(e) {
26448
- const types = _optionalChain([e, 'access', _636 => _636.dataTransfer, 'optionalAccess', _637 => _637.types]);
26690
+ const types = _optionalChain([e, 'access', _641 => _641.dataTransfer, 'optionalAccess', _642 => _642.types]);
26449
26691
  if (!types) return false;
26450
26692
  for (let i = 0; i < types.length; i++) {
26451
26693
  if (types[i] === "Files") return true;
@@ -26540,7 +26782,7 @@ function FileUpload({
26540
26782
  e.stopPropagation();
26541
26783
  setDragActive(false);
26542
26784
  if (disabled) return;
26543
- if (_optionalChain([e, 'access', _638 => _638.dataTransfer, 'access', _639 => _639.files, 'optionalAccess', _640 => _640.length])) {
26785
+ if (_optionalChain([e, 'access', _643 => _643.dataTransfer, 'access', _644 => _644.files, 'optionalAccess', _645 => _645.length])) {
26544
26786
  handleFiles(e.dataTransfer.files);
26545
26787
  }
26546
26788
  };
@@ -26568,7 +26810,7 @@ function FileUpload({
26568
26810
  e.preventDefault();
26569
26811
  dragCounter = 0;
26570
26812
  setDragActive(false);
26571
- if (_optionalChain([e, 'access', _641 => _641.dataTransfer, 'optionalAccess', _642 => _642.files, 'optionalAccess', _643 => _643.length])) {
26813
+ if (_optionalChain([e, 'access', _646 => _646.dataTransfer, 'optionalAccess', _647 => _647.files, 'optionalAccess', _648 => _648.length])) {
26572
26814
  handleFilesRef.current(e.dataTransfer.files);
26573
26815
  }
26574
26816
  };
@@ -26590,7 +26832,7 @@ function FileUpload({
26590
26832
  };
26591
26833
  }, [acceptWindowDrops, disabled]);
26592
26834
  const handleFileSelect = (e) => {
26593
- if (_optionalChain([e, 'access', _644 => _644.target, 'access', _645 => _645.files, 'optionalAccess', _646 => _646.length])) {
26835
+ if (_optionalChain([e, 'access', _649 => _649.target, 'access', _650 => _650.files, 'optionalAccess', _651 => _651.length])) {
26594
26836
  handleFiles(e.target.files);
26595
26837
  }
26596
26838
  };
@@ -26607,7 +26849,7 @@ function FileUpload({
26607
26849
  };
26608
26850
  const openDialog = async () => {
26609
26851
  if (disabled) return;
26610
- _optionalChain([fileInputRef, 'access', _647 => _647.current, 'optionalAccess', _648 => _648.click, 'call', _649 => _649()]);
26852
+ _optionalChain([fileInputRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.click, 'call', _654 => _654()]);
26611
26853
  };
26612
26854
  const displayError = error || validationError || void 0;
26613
26855
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26685,7 +26927,7 @@ function FileUpload({
26685
26927
  "button",
26686
26928
  {
26687
26929
  type: "button",
26688
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _650 => _650(entry.id)]),
26930
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _655 => _655(entry.id)]),
26689
26931
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26690
26932
  "aria-label": `Remove ${entry.fileName}`,
26691
26933
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26808,7 +27050,7 @@ function ImageUploader({
26808
27050
  onChange(file);
26809
27051
  };
26810
27052
  const handleFileSelect = (e) => {
26811
- validateAndEmit(_optionalChain([e, 'access', _651 => _651.target, 'access', _652 => _652.files, 'optionalAccess', _653 => _653[0]]));
27053
+ validateAndEmit(_optionalChain([e, 'access', _656 => _656.target, 'access', _657 => _657.files, 'optionalAccess', _658 => _658[0]]));
26812
27054
  if (inputRef.current) inputRef.current.value = "";
26813
27055
  };
26814
27056
  const handleDrag = (e) => {
@@ -26823,11 +27065,11 @@ function ImageUploader({
26823
27065
  e.stopPropagation();
26824
27066
  setDragActive(false);
26825
27067
  if (!interactive) return;
26826
- validateAndEmit(_optionalChain([e, 'access', _654 => _654.dataTransfer, 'access', _655 => _655.files, 'optionalAccess', _656 => _656[0]]));
27068
+ validateAndEmit(_optionalChain([e, 'access', _659 => _659.dataTransfer, 'access', _660 => _660.files, 'optionalAccess', _661 => _661[0]]));
26827
27069
  };
26828
27070
  const openDialog = () => {
26829
27071
  if (!interactive) return;
26830
- _optionalChain([inputRef, 'access', _657 => _657.current, 'optionalAccess', _658 => _658.click, 'call', _659 => _659()]);
27072
+ _optionalChain([inputRef, 'access', _662 => _662.current, 'optionalAccess', _663 => _663.click, 'call', _664 => _664()]);
26831
27073
  };
26832
27074
  const handleRootKeyDown = (e) => {
26833
27075
  if (hasImage || !interactive) return;
@@ -26984,7 +27226,7 @@ function CompactAssigneeDropdown({
26984
27226
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26985
27227
  }, [filtered, currentAssignee]);
26986
27228
  const handleSelect = (userId) => {
26987
- const next = _optionalChain([currentAssignee, 'optionalAccess', _660 => _660.id]) === userId ? null : userId;
27229
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _665 => _665.id]) === userId ? null : userId;
26988
27230
  onAssign(next);
26989
27231
  setIsOpen(false);
26990
27232
  };
@@ -27049,7 +27291,7 @@ function CompactAssigneeDropdown({
27049
27291
  }
27050
27292
  ) }),
27051
27293
  /* @__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) => {
27052
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _661 => _661.id]) === opt.value;
27294
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _666 => _666.id]) === opt.value;
27053
27295
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27054
27296
  "button",
27055
27297
  {
@@ -27118,7 +27360,7 @@ function DefaultAssigneeDropdown({
27118
27360
  Autocomplete,
27119
27361
  {
27120
27362
  options,
27121
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _662 => _662.id]), () => ( null)),
27363
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _667 => _667.id]), () => ( null)),
27122
27364
  onChange: (val) => {
27123
27365
  onAssign(val);
27124
27366
  setIsEditing(false);
@@ -27476,14 +27718,14 @@ function TicketInfoSection({
27476
27718
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27477
27719
  SquareAvatar,
27478
27720
  {
27479
- src: _optionalChain([organization, 'optionalAccess', _663 => _663.imageSrc]),
27480
- alt: _optionalChain([organization, 'optionalAccess', _664 => _664.name]),
27481
- fallback: _optionalChain([organization, 'optionalAccess', _665 => _665.name]) || "Org",
27721
+ src: _optionalChain([organization, 'optionalAccess', _668 => _668.imageSrc]),
27722
+ alt: _optionalChain([organization, 'optionalAccess', _669 => _669.name]),
27723
+ fallback: _optionalChain([organization, 'optionalAccess', _670 => _670.name]) || "Org",
27482
27724
  size: "md",
27483
27725
  className: "shrink-0"
27484
27726
  }
27485
27727
  ),
27486
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _666 => _666.name]) || "Unassigned", label: "Organization" })
27728
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _671 => _671.name]) || "Unassigned", label: "Organization" })
27487
27729
  ] }),
27488
27730
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27489
27731
  AssigneeDropdown,
@@ -27504,10 +27746,10 @@ function TicketInfoSection({
27504
27746
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27505
27747
  InfoCell2,
27506
27748
  {
27507
- value: _optionalChain([device, 'optionalAccess', _667 => _667.name]) || "Unassigned",
27749
+ value: _optionalChain([device, 'optionalAccess', _672 => _672.name]) || "Unassigned",
27508
27750
  label: "Device",
27509
- icon: _optionalChain([device, 'optionalAccess', _668 => _668.icon]),
27510
- onClick: _optionalChain([device, 'optionalAccess', _669 => _669.onClick])
27751
+ icon: _optionalChain([device, 'optionalAccess', _673 => _673.icon]),
27752
+ onClick: _optionalChain([device, 'optionalAccess', _674 => _674.onClick])
27511
27753
  }
27512
27754
  ),
27513
27755
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -28266,10 +28508,10 @@ var getContentDimensions = (config) => {
28266
28508
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
28267
28509
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
28268
28510
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
28269
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _670 => _670.mobileContentDimensions, 'optionalAccess', _671 => _671.width]))), () => ( defaultMobile.width));
28270
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _672 => _672.mobileContentDimensions, 'optionalAccess', _673 => _673.height]))), () => ( defaultMobile.height));
28271
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _674 => _674.desktopContentDimensions, 'optionalAccess', _675 => _675.width]))), () => ( defaultDesktop.width));
28272
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _676 => _676.desktopContentDimensions, 'optionalAccess', _677 => _677.height]))), () => ( defaultDesktop.height));
28511
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _675 => _675.mobileContentDimensions, 'optionalAccess', _676 => _676.width]))), () => ( defaultMobile.width));
28512
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _677 => _677.mobileContentDimensions, 'optionalAccess', _678 => _678.height]))), () => ( defaultMobile.height));
28513
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _679 => _679.desktopContentDimensions, 'optionalAccess', _680 => _680.width]))), () => ( defaultDesktop.width));
28514
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _681 => _681.desktopContentDimensions, 'optionalAccess', _682 => _682.height]))), () => ( defaultDesktop.height));
28273
28515
  return {
28274
28516
  mobile: { width: mobileWidth, height: mobileHeight },
28275
28517
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -28403,7 +28645,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
28403
28645
  const contentDimensions = getContentDimensions(config);
28404
28646
  const mobileHeight = contentDimensions.mobile.height;
28405
28647
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
28406
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _678 => _678.innerHeight]) * 0.85 || 650)}px`;
28648
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _683 => _683.innerHeight]) * 0.85 || 650)}px`;
28407
28649
  })(),
28408
28650
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
28409
28651
  const contentDimensions = getContentDimensions(config);
@@ -28508,7 +28750,7 @@ var FigmaPrototypeViewer = ({
28508
28750
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28509
28751
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28510
28752
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28511
- config.defaultSectionId || _optionalChain([config, 'access', _679 => _679.sections, 'access', _680 => _680[0], 'optionalAccess', _681 => _681.id]) || ""
28753
+ config.defaultSectionId || _optionalChain([config, 'access', _684 => _684.sections, 'access', _685 => _685[0], 'optionalAccess', _686 => _686.id]) || ""
28512
28754
  );
28513
28755
  const activeSection = externalActiveSection || internalActiveSection;
28514
28756
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28598,7 +28840,7 @@ var FigmaPrototypeViewer = ({
28598
28840
  const handleMessage = (event) => {
28599
28841
  if (event.origin !== "https://www.figma.com") return;
28600
28842
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28601
- if (_optionalChain([event, 'access', _682 => _682.data, 'optionalAccess', _683 => _683.type]) && validEvents.includes(event.data.type)) {
28843
+ if (_optionalChain([event, 'access', _687 => _687.data, 'optionalAccess', _688 => _688.type]) && validEvents.includes(event.data.type)) {
28602
28844
  const figmaEvent = event.data;
28603
28845
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28604
28846
  switch (figmaEvent.type) {
@@ -28608,19 +28850,19 @@ var FigmaPrototypeViewer = ({
28608
28850
  setIframeState("READY");
28609
28851
  break;
28610
28852
  case "PRESENTED_NODE_CHANGED":
28611
- if (_optionalChain([figmaEvent, 'access', _684 => _684.data, 'optionalAccess', _685 => _685.presentedNodeId])) {
28853
+ if (_optionalChain([figmaEvent, 'access', _689 => _689.data, 'optionalAccess', _690 => _690.presentedNodeId])) {
28612
28854
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28613
28855
  if (!isNavigating) {
28614
28856
  const matchingSection = config.sections.find((s) => {
28615
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _686 => _686.data, 'optionalAccess', _687 => _687.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _688 => _688.data, 'optionalAccess', _689 => _689.presentedNodeId]);
28616
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _690 => _690.data, 'optionalAccess', _691 => _691.presentedNodeId]) || _optionalChain([s, 'access', _692 => _692.mobileStartingNodeId, 'optionalAccess', _693 => _693.replace, 'call', _694 => _694(":", "-")]) === _optionalChain([figmaEvent, 'access', _695 => _695.data, 'optionalAccess', _696 => _696.presentedNodeId]);
28857
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _691 => _691.data, 'optionalAccess', _692 => _692.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _693 => _693.data, 'optionalAccess', _694 => _694.presentedNodeId]);
28858
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _695 => _695.data, 'optionalAccess', _696 => _696.presentedNodeId]) || _optionalChain([s, 'access', _697 => _697.mobileStartingNodeId, 'optionalAccess', _698 => _698.replace, 'call', _699 => _699(":", "-")]) === _optionalChain([figmaEvent, 'access', _700 => _700.data, 'optionalAccess', _701 => _701.presentedNodeId]);
28617
28859
  return desktopMatch || mobileMatch;
28618
28860
  });
28619
28861
  if (matchingSection && matchingSection.id !== activeSection) {
28620
28862
  if (!externalActiveSection) {
28621
28863
  setInternalActiveSection(matchingSection.id);
28622
28864
  }
28623
- _optionalChain([config, 'access', _697 => _697.onSectionChange, 'optionalCall', _698 => _698(matchingSection.id)]);
28865
+ _optionalChain([config, 'access', _702 => _702.onSectionChange, 'optionalCall', _703 => _703(matchingSection.id)]);
28624
28866
  }
28625
28867
  }
28626
28868
  }
@@ -28633,7 +28875,7 @@ var FigmaPrototypeViewer = ({
28633
28875
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28634
28876
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28635
28877
  const section = config.sections.find((s) => s.id === sectionId);
28636
- if (!section || !_optionalChain([iframeRef, 'access', _699 => _699.current, 'optionalAccess', _700 => _700.contentWindow]) || !isInitialized) {
28878
+ if (!section || !_optionalChain([iframeRef, 'access', _704 => _704.current, 'optionalAccess', _705 => _705.contentWindow]) || !isInitialized) {
28637
28879
  return;
28638
28880
  }
28639
28881
  setIsNavigating(true);
@@ -28641,7 +28883,7 @@ var FigmaPrototypeViewer = ({
28641
28883
  if (!externalActiveSection) {
28642
28884
  setInternalActiveSection(sectionId);
28643
28885
  }
28644
- _optionalChain([config, 'access', _701 => _701.onSectionChange, 'optionalCall', _702 => _702(sectionId)]);
28886
+ _optionalChain([config, 'access', _706 => _706.onSectionChange, 'optionalCall', _707 => _707(sectionId)]);
28645
28887
  const command = {
28646
28888
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28647
28889
  data: { nodeId }
@@ -28961,7 +29203,7 @@ var FiltersDropdown = ({
28961
29203
  defaults[section.id] = section.defaultSelected || [];
28962
29204
  });
28963
29205
  setSelectedFilters(defaults);
28964
- _optionalChain([onReset, 'optionalCall', _703 => _703()]);
29206
+ _optionalChain([onReset, 'optionalCall', _708 => _708()]);
28965
29207
  setIsOpen(false);
28966
29208
  };
28967
29209
  const handleApply = () => {
@@ -29255,7 +29497,7 @@ function MediaGalleryManager({
29255
29497
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
29256
29498
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
29257
29499
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
29258
- const file = _optionalChain([event, 'access', _704 => _704.target, 'access', _705 => _705.files, 'optionalAccess', _706 => _706[0]]);
29500
+ const file = _optionalChain([event, 'access', _709 => _709.target, 'access', _710 => _710.files, 'optionalAccess', _711 => _711[0]]);
29259
29501
  if (!file) return;
29260
29502
  let mediaType;
29261
29503
  if (file.type.startsWith("image/")) {
@@ -29370,7 +29612,7 @@ function MediaGalleryManager({
29370
29612
  {
29371
29613
  type: "button",
29372
29614
  variant: "outline",
29373
- onClick: () => _optionalChain([fileInputRef, 'access', _707 => _707.current, 'optionalAccess', _708 => _708.click, 'call', _709 => _709()]),
29615
+ onClick: () => _optionalChain([fileInputRef, 'access', _712 => _712.current, 'optionalAccess', _713 => _713.click, 'call', _714 => _714()]),
29374
29616
  disabled: isUploading,
29375
29617
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29376
29618
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30155,7 +30397,7 @@ function ReleaseMediaManager({
30155
30397
  const fileInputRef = _react.useRef.call(void 0, null);
30156
30398
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
30157
30399
  const handleFileSelect = async (event) => {
30158
- const file = _optionalChain([event, 'access', _710 => _710.target, 'access', _711 => _711.files, 'optionalAccess', _712 => _712[0]]);
30400
+ const file = _optionalChain([event, 'access', _715 => _715.target, 'access', _716 => _716.files, 'optionalAccess', _717 => _717[0]]);
30159
30401
  if (!file) return;
30160
30402
  let mediaType;
30161
30403
  if (file.type.startsWith("image/")) {
@@ -30235,7 +30477,7 @@ function ReleaseMediaManager({
30235
30477
  {
30236
30478
  type: "button",
30237
30479
  variant: "outline",
30238
- onClick: () => _optionalChain([fileInputRef, 'access', _713 => _713.current, 'optionalAccess', _714 => _714.click, 'call', _715 => _715()]),
30480
+ onClick: () => _optionalChain([fileInputRef, 'access', _718 => _718.current, 'optionalAccess', _719 => _719.click, 'call', _720 => _720()]),
30239
30481
  disabled: uploadingIndex !== null,
30240
30482
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
30241
30483
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30448,7 +30690,7 @@ function SEOEditorPreview({
30448
30690
  const displayImage = hasOgImage || hasFeaturedImage;
30449
30691
  const handleImageUpload = async (event) => {
30450
30692
  if (!onOgImageUpload) return;
30451
- const file = _optionalChain([event, 'access', _716 => _716.target, 'access', _717 => _717.files, 'optionalAccess', _718 => _718[0]]);
30693
+ const file = _optionalChain([event, 'access', _721 => _721.target, 'access', _722 => _722.files, 'optionalAccess', _723 => _723[0]]);
30452
30694
  if (!file) return;
30453
30695
  setIsUploading(true);
30454
30696
  try {
@@ -30579,7 +30821,7 @@ function SEOEditorPreview({
30579
30821
  type: "button",
30580
30822
  variant: "outline",
30581
30823
  size: "icon",
30582
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _719 => _719.click, 'call', _720 => _720()]),
30824
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _724 => _724.click, 'call', _725 => _725()]),
30583
30825
  disabled: disabled || isUploading,
30584
30826
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30585
30827
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30602,7 +30844,7 @@ function SEOEditorPreview({
30602
30844
  "div",
30603
30845
  {
30604
30846
  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",
30605
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _721 => _721.click, 'call', _722 => _722()]),
30847
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _726 => _726.click, 'call', _727 => _727()]),
30606
30848
  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: [
30607
30849
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30608
30850
  /* @__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" })
@@ -30687,7 +30929,7 @@ function SocialLinksManager({
30687
30929
  className = ""
30688
30930
  }) {
30689
30931
  const addLink = () => {
30690
- const firstPlatform = _optionalChain([platforms, 'access', _723 => _723[0], 'optionalAccess', _724 => _724.name]) || "website";
30932
+ const firstPlatform = _optionalChain([platforms, 'access', _728 => _728[0], 'optionalAccess', _729 => _729.name]) || "website";
30691
30933
  onChange([...links, { platform: firstPlatform, url: "" }]);
30692
30934
  };
30693
30935
  const removeLink = (index) => {
@@ -30699,7 +30941,7 @@ function SocialLinksManager({
30699
30941
  onChange(updated);
30700
30942
  };
30701
30943
  const getIcon = (link, platform) => {
30702
- const iconKey = _optionalChain([platform, 'optionalAccess', _725 => _725.icon_name]) || link.platform;
30944
+ const iconKey = _optionalChain([platform, 'optionalAccess', _730 => _730.icon_name]) || link.platform;
30703
30945
  const IconComponent = iconMap[iconKey];
30704
30946
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30705
30947
  };
@@ -30724,7 +30966,7 @@ function SocialLinksManager({
30724
30966
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30725
30967
  _chunkV2FNIPZJcjs.Input,
30726
30968
  {
30727
- placeholder: _optionalChain([platform, 'optionalAccess', _726 => _726.placeholder]) || "Profile URL",
30969
+ placeholder: _optionalChain([platform, 'optionalAccess', _731 => _731.placeholder]) || "Profile URL",
30728
30970
  value: link.url,
30729
30971
  onChange: (e) => updateLink(index, "url", e.target.value),
30730
30972
  onKeyDown: (e) => {
@@ -31101,7 +31343,7 @@ function VideoSourceSelector({
31101
31343
  input.accept = "video/*";
31102
31344
  input.onchange = async (e) => {
31103
31345
  const target = e.target;
31104
- const file = _optionalChain([target, 'access', _727 => _727.files, 'optionalAccess', _728 => _728[0]]);
31346
+ const file = _optionalChain([target, 'access', _732 => _732.files, 'optionalAccess', _733 => _733[0]]);
31105
31347
  if (!file) return;
31106
31348
  setIsUploading(true);
31107
31349
  setUploadProgress(0);
@@ -31431,7 +31673,7 @@ function TranscriptSummaryEditor({
31431
31673
  {
31432
31674
  id: "subtitles",
31433
31675
  value: subtitles || "",
31434
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _729 => _729(e.target.value)]),
31676
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _734 => _734(e.target.value)]),
31435
31677
  placeholder: subtitlesPlaceholder,
31436
31678
  disabled: disabled || !onSubtitlesChange,
31437
31679
  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",
@@ -31584,7 +31826,7 @@ var AIEnrichSection = ({
31584
31826
  }) => {
31585
31827
  const hasResults = status === "success" || status === "error";
31586
31828
  const shouldDisable = disabled || !canEnrich;
31587
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _730 => _730.filter, 'call', _731 => _731((f) => !f.isFilled)]) || [];
31829
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _735 => _735.filter, 'call', _736 => _736((f) => !f.isFilled)]) || [];
31588
31830
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31589
31831
  "div",
31590
31832
  {
@@ -31622,7 +31864,7 @@ var AIEnrichSection = ({
31622
31864
  {
31623
31865
  id: "ai-enrich-custom-instructions",
31624
31866
  value: _nullishCoalesce(customInstructions, () => ( "")),
31625
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _732 => _732(e.target.value)]),
31867
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _737 => _737(e.target.value)]),
31626
31868
  placeholder: customInstructionsPlaceholder,
31627
31869
  disabled: loading,
31628
31870
  maxLength: customInstructionsMaxLength,
@@ -31751,7 +31993,7 @@ function HighlightVideoSection({
31751
31993
  input.accept = "video/*";
31752
31994
  input.onchange = async (e) => {
31753
31995
  const target = e.target;
31754
- const file = _optionalChain([target, 'access', _733 => _733.files, 'optionalAccess', _734 => _734[0]]);
31996
+ const file = _optionalChain([target, 'access', _738 => _738.files, 'optionalAccess', _739 => _739[0]]);
31755
31997
  if (!file) return;
31756
31998
  setUploadError(null);
31757
31999
  try {
@@ -32253,7 +32495,7 @@ function HighlightVideoPreview({
32253
32495
  input.accept = "video/*";
32254
32496
  input.onchange = async (e) => {
32255
32497
  const target = e.target;
32256
- const file = _optionalChain([target, 'access', _735 => _735.files, 'optionalAccess', _736 => _736[0]]);
32498
+ const file = _optionalChain([target, 'access', _740 => _740.files, 'optionalAccess', _741 => _741[0]]);
32257
32499
  if (!file) return;
32258
32500
  await onUpload(file);
32259
32501
  };
@@ -32440,7 +32682,7 @@ function HighlightVideoCombinedSection({
32440
32682
  input.accept = "video/*";
32441
32683
  input.onchange = async (e) => {
32442
32684
  const target = e.target;
32443
- const file = _optionalChain([target, 'access', _737 => _737.files, 'optionalAccess', _738 => _738[0]]);
32685
+ const file = _optionalChain([target, 'access', _742 => _742.files, 'optionalAccess', _743 => _743[0]]);
32444
32686
  if (!file) return;
32445
32687
  await onUpload(file);
32446
32688
  };
@@ -32737,7 +32979,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32737
32979
  return editMode ? "Set Global Permission" : "";
32738
32980
  }
32739
32981
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32740
- return _optionalChain([option, 'optionalAccess', _739 => _739.label]) || level;
32982
+ return _optionalChain([option, 'optionalAccess', _744 => _744.label]) || level;
32741
32983
  };
32742
32984
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32743
32985
  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: [
@@ -33269,15 +33511,15 @@ function TicketCard({
33269
33511
  transform: _utilities.CSS.Transform.toString(sortable.transform),
33270
33512
  transition: sortable.transition
33271
33513
  };
33272
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _740 => _740.deviceHostnames, 'optionalAccess', _741 => _741.length]) || ticket.organizationName);
33514
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _745 => _745.deviceHostnames, 'optionalAccess', _746 => _746.length]) || ticket.organizationName);
33273
33515
  const deviceText = [
33274
- _optionalChain([ticket, 'access', _742 => _742.deviceHostnames, 'optionalAccess', _743 => _743.join, 'call', _744 => _744(", ")]),
33516
+ _optionalChain([ticket, 'access', _747 => _747.deviceHostnames, 'optionalAccess', _748 => _748.join, 'call', _749 => _749(", ")]),
33275
33517
  ticket.organizationName
33276
33518
  ].filter(Boolean).join(", ");
33277
33519
  const handleClick = (e) => {
33278
33520
  if (sortable.isDragging) e.preventDefault();
33279
33521
  };
33280
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _745 => _745.assignees, 'optionalAccess', _746 => _746.length]) || renderAssignSlot);
33522
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _750 => _750.assignees, 'optionalAccess', _751 => _751.length]) || renderAssignSlot);
33281
33523
  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: [
33282
33524
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33283
33525
  _chunkVJTFBYVGcjs.Flag02Icon,
@@ -33286,7 +33528,7 @@ function TicketCard({
33286
33528
  "aria-label": `Priority: ${ticket.priority}`
33287
33529
  }
33288
33530
  ),
33289
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _747 => _747.assignees, 'optionalAccess', _748 => _748.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33531
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _752 => _752.assignees, 'optionalAccess', _753 => _753.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33290
33532
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33291
33533
  SquareAvatar,
33292
33534
  {
@@ -33315,7 +33557,7 @@ function TicketCard({
33315
33557
  ] }),
33316
33558
  rightSection
33317
33559
  ] }),
33318
- _optionalChain([ticket, 'access', _749 => _749.tags, 'optionalAccess', _750 => _750.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33560
+ _optionalChain([ticket, 'access', _754 => _754.tags, 'optionalAccess', _755 => _755.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33319
33561
  ] });
33320
33562
  const cardClasses = _chunkUC43NICZcjs.cn.call(void 0,
33321
33563
  "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",
@@ -33488,7 +33730,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33488
33730
  const observer = new IntersectionObserver(
33489
33731
  (entries) => {
33490
33732
  if (entries.some((e) => e.isIntersecting)) {
33491
- _optionalChain([loadMoreRef, 'access', _751 => _751.current, 'optionalCall', _752 => _752(columnIdRef.current)]);
33733
+ _optionalChain([loadMoreRef, 'access', _756 => _756.current, 'optionalCall', _757 => _757(columnIdRef.current)]);
33492
33734
  }
33493
33735
  },
33494
33736
  { root, rootMargin: loadMoreRootMargin }
@@ -33517,7 +33759,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33517
33759
  {
33518
33760
  ticket: t,
33519
33761
  columnId: column.id,
33520
- href: _optionalChain([getTicketHref, 'optionalCall', _753 => _753(t.id)]),
33762
+ href: _optionalChain([getTicketHref, 'optionalCall', _758 => _758(t.id)]),
33521
33763
  renderAssignSlot,
33522
33764
  dragDisabled: column.dragDisabled
33523
33765
  },
@@ -33612,17 +33854,17 @@ function Board({
33612
33854
  const pointer = _core.pointerWithin.call(void 0, args);
33613
33855
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33614
33856
  const ticketHit = intersections.find(
33615
- (c) => _optionalChain([c, 'access', _754 => _754.data, 'optionalAccess', _755 => _755.droppableContainer, 'optionalAccess', _756 => _756.data, 'optionalAccess', _757 => _757.current, 'optionalAccess', _758 => _758.type]) === "ticket"
33857
+ (c) => _optionalChain([c, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.droppableContainer, 'optionalAccess', _761 => _761.data, 'optionalAccess', _762 => _762.current, 'optionalAccess', _763 => _763.type]) === "ticket"
33616
33858
  );
33617
33859
  if (ticketHit) return [ticketHit];
33618
33860
  const columnHit = intersections.find(
33619
- (c) => _optionalChain([c, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.droppableContainer, 'optionalAccess', _761 => _761.data, 'optionalAccess', _762 => _762.current, 'optionalAccess', _763 => _763.type]) === "column"
33861
+ (c) => _optionalChain([c, 'access', _764 => _764.data, 'optionalAccess', _765 => _765.droppableContainer, 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.current, 'optionalAccess', _768 => _768.type]) === "column"
33620
33862
  );
33621
33863
  if (columnHit) {
33622
- const columnId = _optionalChain([columnHit, 'access', _764 => _764.data, 'optionalAccess', _765 => _765.droppableContainer, 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.current, 'optionalAccess', _768 => _768.columnId]);
33864
+ const columnId = _optionalChain([columnHit, 'access', _769 => _769.data, 'optionalAccess', _770 => _770.droppableContainer, 'optionalAccess', _771 => _771.data, 'optionalAccess', _772 => _772.current, 'optionalAccess', _773 => _773.columnId]);
33623
33865
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33624
33866
  const d = c.data.current;
33625
- return _optionalChain([d, 'optionalAccess', _769 => _769.type]) === "ticket" && d.columnId === columnId;
33867
+ return _optionalChain([d, 'optionalAccess', _774 => _774.type]) === "ticket" && d.columnId === columnId;
33626
33868
  });
33627
33869
  if (ticketsInColumn.length > 0) {
33628
33870
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33647,20 +33889,20 @@ function Board({
33647
33889
  const overId = String(over.id);
33648
33890
  if (activeId === overId) return;
33649
33891
  const overData = over.data.current;
33650
- const fromColumnId = _optionalChain([locate, 'call', _770 => _770(items, activeId), 'optionalAccess', _771 => _771.columnId]);
33651
- const toColumnId = _optionalChain([overData, 'optionalAccess', _772 => _772.columnId]);
33892
+ const fromColumnId = _optionalChain([locate, 'call', _775 => _775(items, activeId), 'optionalAccess', _776 => _776.columnId]);
33893
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _777 => _777.columnId]);
33652
33894
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33653
33895
  const origin = dragOriginRef.current;
33654
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _773 => _773.fromColumnId]) === toColumnId;
33896
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _778 => _778.fromColumnId]) === toColumnId;
33655
33897
  const targetCol = items.find((c) => c.id === toColumnId);
33656
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _774 => _774.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33657
- if (_optionalChain([targetCol, 'optionalAccess', _775 => _775.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33898
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _779 => _779.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33899
+ if (_optionalChain([targetCol, 'optionalAccess', _780 => _780.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33658
33900
  setItems((prev) => {
33659
33901
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33660
33902
  const toCol = prev.find((c) => c.id === toColumnId);
33661
33903
  if (fromIndex < 0 || !toCol) return prev;
33662
33904
  let toIndex;
33663
- if (_optionalChain([overData, 'optionalAccess', _776 => _776.type]) === "column") {
33905
+ if (_optionalChain([overData, 'optionalAccess', _781 => _781.type]) === "column") {
33664
33906
  toIndex = toCol.tickets.length;
33665
33907
  } else {
33666
33908
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33702,14 +33944,14 @@ function Board({
33702
33944
  const toColumnId = located.columnId;
33703
33945
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33704
33946
  const targetCol = items.find((c) => c.id === toColumnId);
33705
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _777 => _777.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _778 => _778.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33947
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _782 => _782.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _783 => _783.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33706
33948
  setItems(columns);
33707
33949
  return;
33708
33950
  }
33709
33951
  let finalIndex = located.index;
33710
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _779 => _779.find, 'call', _780 => _780((c) => c.id === toColumnId), 'optionalAccess', _781 => _781.tickets]), () => ( []));
33952
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _784 => _784.find, 'call', _785 => _785((c) => c.id === toColumnId), 'optionalAccess', _786 => _786.tickets]), () => ( []));
33711
33953
  const overData = over.data.current;
33712
- if (_optionalChain([overData, 'optionalAccess', _782 => _782.type]) === "ticket") {
33954
+ if (_optionalChain([overData, 'optionalAccess', _787 => _787.type]) === "ticket") {
33713
33955
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33714
33956
  if (overIndex >= 0 && overIndex !== located.index) {
33715
33957
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33729,8 +33971,8 @@ function Board({
33729
33971
  ticketId: origin.ticketId,
33730
33972
  fromColumnId: origin.fromColumnId,
33731
33973
  toColumnId,
33732
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _783 => _783[finalIndex - 1], 'optionalAccess', _784 => _784.id]), () => ( null)),
33733
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _785 => _785[finalIndex + 1], 'optionalAccess', _786 => _786.id]), () => ( null))
33974
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _788 => _788[finalIndex - 1], 'optionalAccess', _789 => _789.id]), () => ( null)),
33975
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _790 => _790[finalIndex + 1], 'optionalAccess', _791 => _791.id]), () => ( null))
33734
33976
  });
33735
33977
  };
33736
33978
  const handleDragCancel = () => {
@@ -33759,8 +34001,8 @@ function Board({
33759
34001
  children: items.map((column, i) => {
33760
34002
  const prev = items[i - 1];
33761
34003
  const next = items[i + 1];
33762
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _787 => _787.system]));
33763
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _788 => _788.system]));
34004
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _792 => _792.system]));
34005
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _793 => _793.system]));
33764
34006
  const showGap = i > 0 && !joinLeft;
33765
34007
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React102.Fragment, { children: [
33766
34008
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33818,7 +34060,7 @@ function locate(cols, ticketId) {
33818
34060
  return null;
33819
34061
  }
33820
34062
  function findIndexInColumn(cols, columnId, ticketId) {
33821
- return _nullishCoalesce(_optionalChain([cols, 'access', _789 => _789.find, 'call', _790 => _790((c) => c.id === columnId), 'optionalAccess', _791 => _791.tickets, 'access', _792 => _792.findIndex, 'call', _793 => _793((t) => t.id === ticketId)]), () => ( -1));
34063
+ return _nullishCoalesce(_optionalChain([cols, 'access', _794 => _794.find, 'call', _795 => _795((c) => c.id === columnId), 'optionalAccess', _796 => _796.tickets, 'access', _797 => _797.findIndex, 'call', _798 => _798((t) => t.id === ticketId)]), () => ( -1));
33822
34064
  }
33823
34065
 
33824
34066
  // src/components/features/board/types.ts
@@ -34485,4 +34727,4 @@ function canonicalize(status) {
34485
34727
 
34486
34728
 
34487
34729
  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.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; 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.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.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;
34488
- //# sourceMappingURL=chunk-IMDXOVYD.cjs.map
34730
+ //# sourceMappingURL=chunk-C3M6R6JH.cjs.map