@flamingo-stack/openframe-frontend-core 0.0.383-snapshot.20260708154433 → 0.0.383

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 (98) hide show
  1. package/dist/{chunk-FBUTS5UQ.js → chunk-6SR7HXGW.js} +4 -4
  2. package/dist/{chunk-FV2FQQYF.cjs → chunk-7TU6MLIQ.cjs} +12 -12
  3. package/dist/{chunk-FV2FQQYF.cjs.map → chunk-7TU6MLIQ.cjs.map} +1 -1
  4. package/dist/{chunk-Q6EGRFVE.cjs → chunk-AHCBZ6TC.cjs} +62 -62
  5. package/dist/{chunk-Q6EGRFVE.cjs.map → chunk-AHCBZ6TC.cjs.map} +1 -1
  6. package/dist/{chunk-UOLDL3U3.js → chunk-AJJF43ZL.js} +2 -2
  7. package/dist/{chunk-FQR2CNKB.js → chunk-B45U4FY5.js} +2 -2
  8. package/dist/{chunk-Q2OBKYTK.cjs → chunk-BALSUWWU.cjs} +37 -37
  9. package/dist/{chunk-Q2OBKYTK.cjs.map → chunk-BALSUWWU.cjs.map} +1 -1
  10. package/dist/{chunk-VZ4NJBQT.js → chunk-CNDLMBFN.js} +283 -345
  11. package/dist/chunk-CNDLMBFN.js.map +1 -0
  12. package/dist/{chunk-MVLWQ6OZ.js → chunk-EBOK7SG7.js} +2 -2
  13. package/dist/{chunk-KJ3O7A65.js → chunk-EGFLSQEJ.js} +4 -4
  14. package/dist/{chunk-MMYAOMD4.cjs → chunk-FL6YJLPC.cjs} +7 -7
  15. package/dist/{chunk-MMYAOMD4.cjs.map → chunk-FL6YJLPC.cjs.map} +1 -1
  16. package/dist/{chunk-XGE53EOX.js → chunk-KBG3PLKS.js} +2 -2
  17. package/dist/{chunk-KJTGCH3I.cjs → chunk-KFTCNBSJ.cjs} +5 -5
  18. package/dist/{chunk-KJTGCH3I.cjs.map → chunk-KFTCNBSJ.cjs.map} +1 -1
  19. package/dist/{chunk-FSN3GIUJ.cjs → chunk-KGSOMSHT.cjs} +25 -25
  20. package/dist/{chunk-FSN3GIUJ.cjs.map → chunk-KGSOMSHT.cjs.map} +1 -1
  21. package/dist/{chunk-K7YBWMJ6.js → chunk-KQQ6U4UW.js} +4 -4
  22. package/dist/{chunk-JEADRVBL.js → chunk-LI7OAUSA.js} +4 -4
  23. package/dist/{chunk-LMIN2CWQ.js → chunk-MY7TV47R.js} +2 -2
  24. package/dist/{chunk-KI5QS5C2.cjs → chunk-S2V4EPKL.cjs} +15 -15
  25. package/dist/{chunk-KI5QS5C2.cjs.map → chunk-S2V4EPKL.cjs.map} +1 -1
  26. package/dist/{chunk-EEUUTWFQ.js → chunk-SGMZQTP6.js} +2 -2
  27. package/dist/{chunk-NGWYDTZZ.cjs → chunk-VQCV3GGI.cjs} +120 -182
  28. package/dist/chunk-VQCV3GGI.cjs.map +1 -0
  29. package/dist/{chunk-AZOME5YC.cjs → chunk-W456FUZG.cjs} +57 -57
  30. package/dist/{chunk-AZOME5YC.cjs.map → chunk-W456FUZG.cjs.map} +1 -1
  31. package/dist/{chunk-H7PRWFAQ.cjs → chunk-WVJFSCXR.cjs} +26 -26
  32. package/dist/{chunk-H7PRWFAQ.cjs.map → chunk-WVJFSCXR.cjs.map} +1 -1
  33. package/dist/{chunk-FG4J67VX.cjs → chunk-YW6K7IYF.cjs} +31 -31
  34. package/dist/{chunk-FG4J67VX.cjs.map → chunk-YW6K7IYF.cjs.map} +1 -1
  35. package/dist/{chunk-U22GJXOD.js → chunk-ZD6GZX7E.js} +2 -2
  36. package/dist/{chunk-WRAECAST.cjs → chunk-ZFIDR55N.cjs} +9 -9
  37. package/dist/{chunk-WRAECAST.cjs.map → chunk-ZFIDR55N.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/approval-batch-message.d.ts +0 -20
  41. package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
  42. package/dist/components/chat/index.cjs +2 -4
  43. package/dist/components/chat/index.cjs.map +1 -1
  44. package/dist/components/chat/index.js +1 -3
  45. package/dist/components/contact/index.cjs +3 -3
  46. package/dist/components/contact/index.js +2 -2
  47. package/dist/components/docs/index.cjs +5 -5
  48. package/dist/components/docs/index.js +4 -4
  49. package/dist/components/embeds/index.cjs +3 -3
  50. package/dist/components/embeds/index.js +2 -2
  51. package/dist/components/faq/index.cjs +3 -3
  52. package/dist/components/faq/index.js +2 -2
  53. package/dist/components/features/index.cjs +2 -2
  54. package/dist/components/features/index.js +1 -1
  55. package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
  56. package/dist/components/features/notifications/notification-tile.d.ts +2 -8
  57. package/dist/components/features/notifications/notification-tile.d.ts.map +1 -1
  58. package/dist/components/features/notifications/types.d.ts +1 -11
  59. package/dist/components/features/notifications/types.d.ts.map +1 -1
  60. package/dist/components/help-center-pages/index.cjs +20 -20
  61. package/dist/components/help-center-pages/index.js +11 -11
  62. package/dist/components/index.cjs +120 -122
  63. package/dist/components/index.cjs.map +1 -1
  64. package/dist/components/index.js +9 -11
  65. package/dist/components/index.js.map +1 -1
  66. package/dist/components/navigation/index.cjs +2 -2
  67. package/dist/components/navigation/index.js +1 -1
  68. package/dist/components/onboarding-guides/index.cjs +5 -5
  69. package/dist/components/onboarding-guides/index.js +4 -4
  70. package/dist/components/related-content/index.cjs +3 -3
  71. package/dist/components/related-content/index.js +2 -2
  72. package/dist/components/tickets/index.cjs +5 -5
  73. package/dist/components/tickets/index.js +4 -4
  74. package/dist/components/ui/index.cjs +2 -4
  75. package/dist/components/ui/index.cjs.map +1 -1
  76. package/dist/components/ui/index.js +1 -3
  77. package/dist/index.cjs +2 -4
  78. package/dist/index.cjs.map +1 -1
  79. package/dist/index.js +1 -3
  80. package/package.json +1 -1
  81. package/src/components/chat/approval-batch-message.tsx +15 -28
  82. package/src/components/features/notifications/approval-request-notification-tile.tsx +46 -70
  83. package/src/components/features/notifications/notification-tile.tsx +41 -125
  84. package/src/components/features/notifications/types.ts +1 -11
  85. package/src/stories/NotificationDrawer.stories.tsx +31 -220
  86. package/dist/chunk-NGWYDTZZ.cjs.map +0 -1
  87. package/dist/chunk-VZ4NJBQT.js.map +0 -1
  88. /package/dist/{chunk-FBUTS5UQ.js.map → chunk-6SR7HXGW.js.map} +0 -0
  89. /package/dist/{chunk-UOLDL3U3.js.map → chunk-AJJF43ZL.js.map} +0 -0
  90. /package/dist/{chunk-FQR2CNKB.js.map → chunk-B45U4FY5.js.map} +0 -0
  91. /package/dist/{chunk-MVLWQ6OZ.js.map → chunk-EBOK7SG7.js.map} +0 -0
  92. /package/dist/{chunk-KJ3O7A65.js.map → chunk-EGFLSQEJ.js.map} +0 -0
  93. /package/dist/{chunk-XGE53EOX.js.map → chunk-KBG3PLKS.js.map} +0 -0
  94. /package/dist/{chunk-K7YBWMJ6.js.map → chunk-KQQ6U4UW.js.map} +0 -0
  95. /package/dist/{chunk-JEADRVBL.js.map → chunk-LI7OAUSA.js.map} +0 -0
  96. /package/dist/{chunk-LMIN2CWQ.js.map → chunk-MY7TV47R.js.map} +0 -0
  97. /package/dist/{chunk-EEUUTWFQ.js.map → chunk-SGMZQTP6.js.map} +0 -0
  98. /package/dist/{chunk-U22GJXOD.js.map → chunk-ZD6GZX7E.js.map} +0 -0
@@ -826,18 +826,15 @@ function CommandBlock({ command, className }) {
826
826
  // src/components/chat/approval-batch-message.tsx
827
827
  import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
828
828
  var COMMAND_BODY_KEYS = new Set(COMMAND_BODY_ARG_KEYS);
829
- function ApprovalStatusTag({ status, resolvedByName, inlineResolver = false }) {
830
- const suffix = inlineResolver && resolvedByName ? ` by ${resolvedByName}` : "";
829
+ function renderStatusTag(status, isClient, resolvedByName) {
830
+ const suffix = isClient && resolvedByName ? ` by ${resolvedByName}` : "";
831
831
  if (status === "approved") {
832
832
  return /* @__PURE__ */ jsx5(Tag, { label: `Approved${suffix}`, variant: "success", icon: /* @__PURE__ */ jsx5(CheckCircleIcon, { className: "w-4 h-4" }) });
833
833
  }
834
834
  if (status === "cancelled") {
835
835
  return /* @__PURE__ */ jsx5(Tag, { label: `Canceled${suffix}`, variant: "grey", icon: /* @__PURE__ */ jsx5(XmarkIcon, { className: "w-4 h-4" }) });
836
836
  }
837
- if (status === "rejected") {
838
- return /* @__PURE__ */ jsx5(Tag, { label: `Rejected${suffix}`, variant: "error", icon: /* @__PURE__ */ jsx5(XmarkCircleIcon, { className: "w-4 h-4" }) });
839
- }
840
- return null;
837
+ return /* @__PURE__ */ jsx5(Tag, { label: `Rejected${suffix}`, variant: "error", icon: /* @__PURE__ */ jsx5(XmarkCircleIcon, { className: "w-4 h-4" }) });
841
838
  }
842
839
  function getArgEntries(call) {
843
840
  const args = call.toolCallArguments;
@@ -919,7 +916,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution, showExe
919
916
  );
920
917
  }
921
918
  var ApprovalBatchMessage = forwardRef2(
922
- ({ className, data, onApprove, onReject, status = "pending", maxBodyHeight, resolvedByName, showExecutionStatus = true, assistantType, showFooterActions = true, ...props }, ref) => {
919
+ ({ className, data, onApprove, onReject, status = "pending", maxBodyHeight, resolvedByName, showExecutionStatus = true, assistantType, ...props }, ref) => {
923
920
  const [expandedId, setExpandedId] = useState3(null);
924
921
  const [isProcessing, setIsProcessing] = useState3(false);
925
922
  const isClient = assistantType === "fae";
@@ -940,7 +937,7 @@ var ApprovalBatchMessage = forwardRef2(
940
937
  setIsProcessing(false);
941
938
  }
942
939
  };
943
- const showFooterBlock = explanations.length > 0 || showFooterActions;
940
+ const showFooterBlock = explanations.length > 0 || status !== void 0;
944
941
  return /* @__PURE__ */ jsxs4(
945
942
  "div",
946
943
  {
@@ -991,7 +988,7 @@ var ApprovalBatchMessage = forwardRef2(
991
988
  ),
992
989
  children: [
993
990
  explanations.length > 0 && /* @__PURE__ */ jsx5("ul", { className: "list-disc pl-5 text-h6 text-ods-text-primary w-full", children: explanations.map((expl, i) => /* @__PURE__ */ jsx5("li", { children: expl }, i)) }),
994
- showFooterActions && (status === "pending" ? /* @__PURE__ */ jsxs4("div", { className: "flex gap-[var(--spacing-system-xsf)] items-center", children: [
991
+ status === "pending" ? /* @__PURE__ */ jsxs4("div", { className: "flex gap-[var(--spacing-system-xsf)] items-center", children: [
995
992
  /* @__PURE__ */ jsx5(
996
993
  Button,
997
994
  {
@@ -1023,12 +1020,12 @@ var ApprovalBatchMessage = forwardRef2(
1023
1020
  }
1024
1021
  )
1025
1022
  ] }) : /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
1026
- /* @__PURE__ */ jsx5(ApprovalStatusTag, { status, resolvedByName, inlineResolver: isClient }),
1023
+ renderStatusTag(status, isClient, resolvedByName),
1027
1024
  !isClient && resolvedByName && /* @__PURE__ */ jsxs4("span", { className: "text-h6 text-ods-text-secondary", children: [
1028
1025
  "by ",
1029
1026
  resolvedByName
1030
1027
  ] })
1031
- ] }))
1028
+ ] })
1032
1029
  ]
1033
1030
  }
1034
1031
  )
@@ -11552,7 +11549,7 @@ function OnboardingGuideCard({
11552
11549
  }
11553
11550
 
11554
11551
  // src/components/chat/entity-cards/roadmap-card.tsx
11555
- import { useState as useState101 } from "react";
11552
+ import { useState as useState100 } from "react";
11556
11553
  import { ThumbsUp, ThumbsDown } from "lucide-react";
11557
11554
 
11558
11555
  // src/components/chat/entity-cards/roadmap-vote-button.tsx
@@ -11593,7 +11590,7 @@ function RoadmapVoteButton({
11593
11590
  init_button();
11594
11591
 
11595
11592
  // src/components/ui/image-gallery-modal.tsx
11596
- import { useState as useState100, useEffect as useEffect74 } from "react";
11593
+ import { useState as useState99, useEffect as useEffect74 } from "react";
11597
11594
 
11598
11595
  // src/components/ui/allowed-domains-input.tsx
11599
11596
  init_cn();
@@ -24102,7 +24099,7 @@ function OrganizationCard({
24102
24099
 
24103
24100
  // src/components/ui/service-card.tsx
24104
24101
  init_cn();
24105
- import { useMemo as useMemo35, useState as useState87 } from "react";
24102
+ import { useMemo as useMemo35, useState as useState86 } from "react";
24106
24103
  import { ExternalLink as ExternalLink7 } from "lucide-react";
24107
24104
 
24108
24105
  // src/components/providers/dynamic-theme-provider.tsx
@@ -31051,51 +31048,20 @@ init_button2();
31051
31048
  init_cn();
31052
31049
 
31053
31050
  // src/components/features/notifications/notification-tile.tsx
31054
- import { useMemo as useMemo28, useEffect as useEffect52, useState as useState72 } from "react";
31051
+ import { useMemo as useMemo28, useEffect as useEffect52 } from "react";
31052
+ init_button();
31055
31053
  init_cn();
31056
31054
  import { jsx as jsx247, jsxs as jsxs194 } from "react/jsx-runtime";
31057
- var variantBySeverity = {
31058
- INFO: "info",
31059
- SUCCESS: "success",
31060
- WARNING: "warning",
31061
- DANGER: "error"
31062
- };
31063
- var typeColorByVariant = {
31064
- default: "text-ods-text-secondary",
31065
- info: "text-ods-text-secondary",
31066
- success: "text-ods-success",
31067
- warning: "text-ods-warning",
31068
- error: "text-ods-error"
31069
- };
31070
- var headerControlClass = "absolute inset-0 flex items-center justify-center text-ods-text-secondary transition-opacity duration-200 hover:text-ods-text-primary";
31071
31055
  function NotificationTile({
31072
31056
  notification,
31073
31057
  liveDurationMs = 4e3,
31074
31058
  onComplete,
31075
31059
  onSettle,
31076
31060
  className,
31077
- actions,
31078
31061
  children,
31079
31062
  paused = false
31080
31063
  }) {
31081
- const {
31082
- id,
31083
- variant = "default",
31084
- severity,
31085
- type,
31086
- icon,
31087
- imageUrl,
31088
- title,
31089
- description,
31090
- createdAt,
31091
- read,
31092
- settled
31093
- } = notification;
31094
- const accentVariant = (severity ? variantBySeverity[severity] : void 0) ?? variant;
31095
- const [failedImageUrl, setFailedImageUrl] = useState72(null);
31096
- const image = imageUrl && imageUrl !== failedImageUrl ? imageUrl : void 0;
31097
- const createdAtDate = new Date(createdAt);
31098
- const createdAtIso = Number.isNaN(createdAtDate.getTime()) ? null : createdAtDate.toISOString();
31064
+ const { id, variant = "default", title, description, createdAt, read, settled } = notification;
31099
31065
  const initialElapsed = useMemo28(() => Date.now() - createdAt, [createdAt]);
31100
31066
  const isLive = !read && !settled && initialElapsed < liveDurationMs;
31101
31067
  const counting = isLive && !paused;
@@ -31119,75 +31085,37 @@ function NotificationTile({
31119
31085
  "div",
31120
31086
  {
31121
31087
  className: cn(
31122
- "relative flex flex-col gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]",
31123
- isLive && "pb-[var(--spacing-system-m)]"
31088
+ "relative flex items-center gap-[var(--spacing-system-xs)] p-[var(--spacing-system-s)]",
31089
+ children ? "border-b border-ods-border" : null
31124
31090
  ),
31125
31091
  children: [
31126
- /* @__PURE__ */ jsxs194("div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
31127
- /* @__PURE__ */ jsx247(
31128
- "span",
31129
- {
31130
- className: cn(
31131
- "flex size-4 shrink-0 items-center justify-center",
31132
- typeColorByVariant[accentVariant]
31133
- ),
31134
- children: image ? /* @__PURE__ */ jsx247(
31135
- "img",
31136
- {
31137
- src: image,
31138
- alt: "",
31139
- onError: () => setFailedImageUrl(image),
31140
- className: "size-4 rounded-[2px] object-cover"
31141
- }
31142
- ) : icon ?? /* @__PURE__ */ jsx247("span", { className: cn("size-1.5 rounded-full", dotColorByVariant[accentVariant]) })
31143
- }
31144
- ),
31145
- type ? /* @__PURE__ */ jsx247(
31146
- "p",
31147
- {
31148
- className: cn("min-w-0 flex-1 truncate text-h5", typeColorByVariant[accentVariant]),
31149
- title: type,
31150
- children: type
31151
- }
31152
- ) : /* @__PURE__ */ jsx247("span", { className: "min-w-0 flex-1" }),
31153
- !isLive && createdAtIso ? /* @__PURE__ */ jsx247(
31154
- "time",
31155
- {
31156
- dateTime: createdAtIso,
31157
- className: "shrink-0 whitespace-nowrap text-h6 text-ods-text-secondary",
31158
- children: formatTicketRelativeTime(createdAtIso)
31159
- }
31160
- ) : null,
31161
- /* @__PURE__ */ jsx247("span", { className: "relative size-4 shrink-0", children: [
31162
- { active: isLive, label: "Dismiss notification", icon: /* @__PURE__ */ jsx247(XmarkIcon, { size: 16 }), onClick: () => onSettle?.(id) },
31163
- { active: !isLive, label: "Mark notification complete", icon: /* @__PURE__ */ jsx247(CheckCircleIcon, { size: 16 }), onClick: () => onComplete(id) }
31164
- ].map(({ active, label, icon: icon2, onClick }) => /* @__PURE__ */ jsx247(
31165
- "button",
31166
- {
31167
- type: "button",
31168
- onClick,
31169
- "aria-label": label,
31170
- "aria-hidden": !active,
31171
- disabled: !active,
31172
- tabIndex: active ? 0 : -1,
31173
- className: cn(headerControlClass, !active && "pointer-events-none opacity-0"),
31174
- children: icon2
31175
- },
31176
- label
31177
- )) })
31178
- ] }),
31179
- /* @__PURE__ */ jsxs194("div", { className: "flex min-w-0 flex-col", children: [
31092
+ /* @__PURE__ */ jsx247("div", { className: "flex size-6 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx247("span", { className: cn("size-1.5 rounded-full", dotColorByVariant[variant]) }) }),
31093
+ /* @__PURE__ */ jsxs194("div", { className: "flex min-w-0 flex-1 flex-col", children: [
31180
31094
  title ? /* @__PURE__ */ jsx247("p", { className: "truncate text-h4 text-ods-text-primary", title: typeof title === "string" ? title : void 0, children: title }) : null,
31181
- description ? /* @__PURE__ */ jsx247("p", { className: "text-h6 line-clamp-3 text-ods-text-secondary", title: typeof description === "string" ? description : void 0, children: description }) : null
31095
+ description ? /* @__PURE__ */ jsx247("p", { className: "text-h6 line-clamp-2 text-ods-text-secondary", title: typeof description === "string" ? description : void 0, children: description }) : null
31182
31096
  ] }),
31183
- actions,
31097
+ /* @__PURE__ */ jsx247(
31098
+ Button,
31099
+ {
31100
+ variant: "outline",
31101
+ size: "small",
31102
+ onClick: () => onComplete(id),
31103
+ "aria-label": "Mark notification complete",
31104
+ tabIndex: isLive ? -1 : 0,
31105
+ className: cn(
31106
+ "shrink-0 hover:text-ods-text-primary",
31107
+ isLive && "invisible"
31108
+ ),
31109
+ children: /* @__PURE__ */ jsx247(CheckCircleIcon, {})
31110
+ }
31111
+ ),
31184
31112
  counting ? /* @__PURE__ */ jsx247(
31185
31113
  "div",
31186
31114
  {
31187
31115
  "aria-hidden": true,
31188
31116
  className: cn(
31189
31117
  "absolute inset-x-0 -bottom-px h-1 origin-left",
31190
- progressColorByVariant[accentVariant]
31118
+ progressColorByVariant[variant]
31191
31119
  ),
31192
31120
  style: {
31193
31121
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
@@ -31198,7 +31126,21 @@ function NotificationTile({
31198
31126
  ]
31199
31127
  }
31200
31128
  ),
31201
- children
31129
+ children,
31130
+ /* @__PURE__ */ jsx247(
31131
+ "button",
31132
+ {
31133
+ type: "button",
31134
+ onClick: () => onSettle?.(id),
31135
+ "aria-label": "Dismiss notification",
31136
+ tabIndex: isLive ? 0 : -1,
31137
+ className: cn(
31138
+ "absolute right-[var(--spacing-system-xsf)] top-[var(--spacing-system-xsf)] flex size-4 items-center justify-center text-ods-text-secondary transition-opacity duration-200 hover:text-ods-text-primary",
31139
+ !isLive && "pointer-events-none opacity-0"
31140
+ ),
31141
+ children: /* @__PURE__ */ jsx247(XmarkIcon, { size: 16 })
31142
+ }
31143
+ )
31202
31144
  ]
31203
31145
  }
31204
31146
  );
@@ -31534,8 +31476,8 @@ function NotificationPopups({
31534
31476
  }
31535
31477
 
31536
31478
  // src/components/features/notifications/approval-request-notification-tile.tsx
31537
- init_button2();
31538
- import { useMemo as useMemo29, useState as useState73 } from "react";
31479
+ init_cn();
31480
+ import { useMemo as useMemo29, useState as useState72 } from "react";
31539
31481
 
31540
31482
  // src/components/chat/types/chat.types.ts
31541
31483
  var CHAT_TYPE = {
@@ -31729,7 +31671,7 @@ function approvalMetaToBatchData(approval) {
31729
31671
  }
31730
31672
 
31731
31673
  // src/components/features/notifications/approval-request-notification-tile.tsx
31732
- import { Fragment as Fragment41, jsx as jsx250, jsxs as jsxs196 } from "react/jsx-runtime";
31674
+ import { jsx as jsx250, jsxs as jsxs196 } from "react/jsx-runtime";
31733
31675
  function ApprovalRequestNotificationTile({
31734
31676
  notification,
31735
31677
  onApprove,
@@ -31740,81 +31682,78 @@ function ApprovalRequestNotificationTile({
31740
31682
  defaultExpanded = false,
31741
31683
  className
31742
31684
  }) {
31743
- const [expanded, setExpanded] = useState73(defaultExpanded);
31744
- const [pinned, setPinned] = useState73(defaultExpanded);
31745
- const [processing, setProcessing] = useState73(false);
31746
- const [localStatus, setLocalStatus] = useState73(null);
31685
+ const [expanded, setExpanded] = useState72(defaultExpanded);
31686
+ const [pinned, setPinned] = useState72(defaultExpanded);
31687
+ const [localStatus, setLocalStatus] = useState72(null);
31747
31688
  const approval = getApprovalMeta(notification);
31748
31689
  const resolvedStatus = resolutionToStatus(approval?.resolution);
31749
31690
  const status = resolvedStatus !== "pending" ? resolvedStatus : localStatus ?? "pending";
31750
31691
  const batchData = useMemo29(() => approval ? approvalMetaToBatchData(approval) : null, [approval]);
31751
31692
  const { innerRef, containerStyle } = useCollapsible({ expanded });
31752
31693
  if (!approval || !batchData) return null;
31753
- const tileNotification = {
31754
- ...notification,
31755
- type: notification.type ?? "Approval Required"
31756
- };
31757
- const commandWord = batchData.toolCalls.length > 1 ? "commands" : "command";
31758
- const toggleLabel = `${expanded ? "Hide" : "Show"} ${commandWord} section`;
31759
- const resolve = async (nextStatus, action) => {
31760
- setProcessing(true);
31761
- setLocalStatus(nextStatus);
31694
+ const commandWord = batchData.toolCalls.length > 1 ? "Commands" : "Command";
31695
+ const toggleLabel = `${expanded ? "Hide" : "Show"} ${commandWord}`;
31696
+ const handleApprove = async () => {
31697
+ setLocalStatus("approved");
31762
31698
  try {
31763
- await action(batchData.approvalRequestId);
31699
+ await onApprove(batchData.approvalRequestId);
31700
+ onComplete(notification.id);
31701
+ } catch {
31702
+ setLocalStatus(null);
31703
+ }
31704
+ };
31705
+ const handleReject = async () => {
31706
+ setLocalStatus("rejected");
31707
+ try {
31708
+ await onReject(batchData.approvalRequestId);
31709
+ onComplete(notification.id);
31764
31710
  } catch {
31765
31711
  setLocalStatus(null);
31766
- return;
31767
- } finally {
31768
- setProcessing(false);
31769
31712
  }
31770
- onComplete(notification.id);
31771
31713
  };
31772
- return /* @__PURE__ */ jsx250(
31714
+ return /* @__PURE__ */ jsxs196(
31773
31715
  NotificationTile,
31774
31716
  {
31775
- notification: tileNotification,
31717
+ notification,
31776
31718
  liveDurationMs,
31777
31719
  onComplete,
31778
31720
  onSettle,
31779
31721
  className,
31780
- paused: pinned || processing,
31781
- actions: /* @__PURE__ */ jsxs196("div", { className: "flex w-full items-center gap-[var(--spacing-system-xs)]", children: [
31782
- status === "pending" ? /* @__PURE__ */ jsxs196(Fragment41, { children: [
31783
- /* @__PURE__ */ jsx250(Button, { variant: "accent", size: "small", onClick: () => resolve("approved", onApprove), disabled: processing, children: "Approve" }),
31784
- /* @__PURE__ */ jsx250(Button, { variant: "outline", size: "small", onClick: () => resolve("rejected", onReject), disabled: processing, children: "Reject" })
31785
- ] }) : /* @__PURE__ */ jsxs196("span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
31786
- /* @__PURE__ */ jsx250(ApprovalStatusTag, { status }),
31787
- approval.resolvedByName ? /* @__PURE__ */ jsxs196("span", { className: "truncate text-h6 text-ods-text-secondary", children: [
31788
- "by ",
31789
- approval.resolvedByName
31790
- ] }) : null
31791
- ] }),
31792
- /* @__PURE__ */ jsx250(
31793
- Button,
31722
+ paused: pinned,
31723
+ children: [
31724
+ /* @__PURE__ */ jsxs196(
31725
+ "button",
31794
31726
  {
31795
- variant: "outline",
31796
- size: "small",
31727
+ type: "button",
31797
31728
  onClick: () => {
31798
31729
  setExpanded((prev) => !prev);
31799
31730
  setPinned(true);
31800
31731
  },
31801
31732
  "aria-expanded": expanded,
31802
- "aria-label": toggleLabel,
31803
- className: "ml-auto w-6 shrink-0 px-0 md:w-8",
31804
- children: /* @__PURE__ */ jsx250(ExpandChevron, { expanded })
31733
+ className: cn(
31734
+ "flex w-full items-center gap-[var(--spacing-system-xs)] bg-ods-card px-[var(--spacing-system-s)] py-[var(--spacing-system-xs)] text-left",
31735
+ expanded && "border-b border-ods-border"
31736
+ ),
31737
+ children: [
31738
+ /* @__PURE__ */ jsx250("span", { className: "min-w-0 flex-1 text-h6 text-ods-text-primary", children: toggleLabel }),
31739
+ /* @__PURE__ */ jsx250(ExpandChevron, { expanded })
31740
+ ]
31805
31741
  }
31806
- )
31807
- ] }),
31808
- children: /* @__PURE__ */ jsx250("div", { style: containerStyle, children: /* @__PURE__ */ jsx250("div", { ref: innerRef, children: /* @__PURE__ */ jsx250("div", { className: "border-t border-ods-border", children: /* @__PURE__ */ jsx250(
31809
- ApprovalBatchMessage,
31810
- {
31811
- data: batchData,
31812
- showExecutionStatus: false,
31813
- showFooterActions: false,
31814
- maxBodyHeight: "50vh",
31815
- className: "mb-0 rounded-none border-0"
31816
- }
31817
- ) }) }) })
31742
+ ),
31743
+ /* @__PURE__ */ jsx250("div", { style: containerStyle, children: /* @__PURE__ */ jsx250("div", { ref: innerRef, children: /* @__PURE__ */ jsx250(
31744
+ ApprovalBatchMessage,
31745
+ {
31746
+ data: batchData,
31747
+ status,
31748
+ resolvedByName: approval.resolvedByName,
31749
+ showExecutionStatus: false,
31750
+ onApprove: handleApprove,
31751
+ onReject: handleReject,
31752
+ maxBodyHeight: "50vh",
31753
+ className: "mb-0 rounded-none border-0"
31754
+ }
31755
+ ) }) })
31756
+ ]
31818
31757
  }
31819
31758
  );
31820
31759
  }
@@ -31844,12 +31783,12 @@ function useOptionalTimeTracker() {
31844
31783
 
31845
31784
  // src/components/features/time-tracker/time-tracker-panel.tsx
31846
31785
  init_cn();
31847
- import { useEffect as useEffect55, useState as useState76 } from "react";
31786
+ import { useEffect as useEffect55, useState as useState75 } from "react";
31848
31787
  init_button();
31849
31788
  init_split_button();
31850
31789
 
31851
31790
  // src/components/features/time-tracker/use-tracker-clock.ts
31852
- import { useEffect as useEffect54, useState as useState75 } from "react";
31791
+ import { useEffect as useEffect54, useState as useState74 } from "react";
31853
31792
  function formatElapsed(totalMs) {
31854
31793
  const totalSeconds = Math.max(0, Math.floor(totalMs / 1e3));
31855
31794
  const hours = Math.floor(totalSeconds / 3600);
@@ -31859,7 +31798,7 @@ function formatElapsed(totalMs) {
31859
31798
  return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;
31860
31799
  }
31861
31800
  function useTrackerClock({ status, runningSince, accumulatedMs = 0 }) {
31862
- const [now, setNow] = useState75(() => Date.now());
31801
+ const [now, setNow] = useState74(() => Date.now());
31863
31802
  useEffect54(() => {
31864
31803
  if (status !== "tracking") return;
31865
31804
  setNow(Date.now());
@@ -31915,7 +31854,7 @@ function TimeTrackerPanel({
31915
31854
  className
31916
31855
  }) {
31917
31856
  const elapsedLabel = useTrackerClock({ status, runningSince, accumulatedMs });
31918
- const [showValidationError, setShowValidationError] = useState76(false);
31857
+ const [showValidationError, setShowValidationError] = useState75(false);
31919
31858
  const isRunning = status === "tracking";
31920
31859
  const isActive = status !== "ready";
31921
31860
  const hasContent = selectedTicketId != null || notes.trim() !== "";
@@ -32197,7 +32136,7 @@ function HeaderButton({
32197
32136
  }
32198
32137
 
32199
32138
  // src/components/features/time-tracker/time-tracker-header-button.tsx
32200
- import { Fragment as Fragment42, jsx as jsx254, jsxs as jsxs198 } from "react/jsx-runtime";
32139
+ import { Fragment as Fragment41, jsx as jsx254, jsxs as jsxs198 } from "react/jsx-runtime";
32201
32140
  function TimeTrackerHeaderButton({ className, disabled }) {
32202
32141
  const ctx = useOptionalTimeTracker();
32203
32142
  const elapsedLabel = useTrackerClock({
@@ -32221,7 +32160,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
32221
32160
  isActive && "w-auto gap-[var(--spacing-system-xsf)] px-[var(--spacing-system-sf)] md:w-auto",
32222
32161
  className
32223
32162
  ),
32224
- icon: /* @__PURE__ */ jsxs198(Fragment42, { children: [
32163
+ icon: /* @__PURE__ */ jsxs198(Fragment41, { children: [
32225
32164
  /* @__PURE__ */ jsx254(
32226
32165
  ClockHistoryIcon,
32227
32166
  {
@@ -32463,7 +32402,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
32463
32402
  }
32464
32403
 
32465
32404
  // src/components/features/board/ticket-card.tsx
32466
- import { Fragment as Fragment43, jsx as jsx257, jsxs as jsxs201 } from "react/jsx-runtime";
32405
+ import { Fragment as Fragment42, jsx as jsx257, jsxs as jsxs201 } from "react/jsx-runtime";
32467
32406
  var PRIORITY_COLOR_CLASS = {
32468
32407
  low: "text-ods-text-secondary",
32469
32408
  medium: "text-ods-info",
@@ -32536,7 +32475,7 @@ function TicketCard({
32536
32475
  ] }) : null;
32537
32476
  const timestampLabel = ticket.createdAt ? formatTicketRelativeTime(ticket.createdAt) : null;
32538
32477
  const tooltipLabel = ticket.createdAt ? formatTicketFullTimestamp(ticket.createdAt) : null;
32539
- const body = /* @__PURE__ */ jsxs201(Fragment43, { children: [
32478
+ const body = /* @__PURE__ */ jsxs201(Fragment42, { children: [
32540
32479
  /* @__PURE__ */ jsxs201("div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
32541
32480
  /* @__PURE__ */ jsxs201("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
32542
32481
  /* @__PURE__ */ jsx257("p", { className: "text-h3 truncate text-ods-text-primary", children: ticket.title }),
@@ -32664,7 +32603,7 @@ var TicketCardSkeleton = React100.forwardRef(
32664
32603
  TicketCardSkeleton.displayName = "TicketCardSkeleton";
32665
32604
 
32666
32605
  // src/components/features/board/board-column.tsx
32667
- import { Fragment as Fragment44, jsx as jsx259, jsxs as jsxs203 } from "react/jsx-runtime";
32606
+ import { Fragment as Fragment43, jsx as jsx259, jsxs as jsxs203 } from "react/jsx-runtime";
32668
32607
  function BoardColumn({
32669
32608
  column,
32670
32609
  collapsed = false,
@@ -32703,7 +32642,7 @@ function BoardColumn({
32703
32642
  onArchive: !collapsed && column.archivable && onArchive ? () => onArchive(column.id) : void 0
32704
32643
  }
32705
32644
  ),
32706
- !collapsed && /* @__PURE__ */ jsxs203(Fragment44, { children: [
32645
+ !collapsed && /* @__PURE__ */ jsxs203(Fragment43, { children: [
32707
32646
  /* @__PURE__ */ jsx259("div", { "aria-hidden": true, className: "-mx-[var(--spacing-system-sf)] h-px shrink-0 bg-ods-border" }),
32708
32647
  /* @__PURE__ */ jsx259(
32709
32648
  ColumnBody,
@@ -32796,7 +32735,7 @@ function SkeletonStack({ count = 4 }) {
32796
32735
  () => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
32797
32736
  [count]
32798
32737
  );
32799
- return /* @__PURE__ */ jsx259(Fragment44, { children: keys.map((k) => /* @__PURE__ */ jsx259(TicketCardSkeleton, {}, k)) });
32738
+ return /* @__PURE__ */ jsx259(Fragment43, { children: keys.map((k) => /* @__PURE__ */ jsx259(TicketCardSkeleton, {}, k)) });
32800
32739
  }
32801
32740
  function EmptyState2() {
32802
32741
  return /* @__PURE__ */ jsxs203("div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-lf)] p-[var(--spacing-system-lf)] text-center text-ods-text-secondary", children: [
@@ -32809,13 +32748,13 @@ function EmptyState2() {
32809
32748
  }
32810
32749
 
32811
32750
  // src/components/features/board/use-board-collapse.ts
32812
- import { useCallback as useCallback30, useState as useState78 } from "react";
32751
+ import { useCallback as useCallback30, useState as useState77 } from "react";
32813
32752
  function useBoardCollapse(storageKey) {
32814
32753
  const [persisted, setPersisted] = useLocalStorage(
32815
32754
  storageKey ?? "__board_collapse_unused__",
32816
32755
  {}
32817
32756
  );
32818
- const [memory, setMemory] = useState78({});
32757
+ const [memory, setMemory] = useState77({});
32819
32758
  const collapsed = storageKey ? persisted : memory;
32820
32759
  const setMap = storageKey ? setPersisted : setMemory;
32821
32760
  const toggle = useCallback30(
@@ -33206,13 +33145,13 @@ function SortableRow({
33206
33145
 
33207
33146
  // src/components/navigation/header.tsx
33208
33147
  init_next_link();
33209
- import React104, { useEffect as useEffect58, useRef as useRef42, useState as useState80 } from "react";
33148
+ import React104, { useEffect as useEffect58, useRef as useRef42, useState as useState79 } from "react";
33210
33149
  init_button2();
33211
- import { Fragment as Fragment46, jsx as jsx262, jsxs as jsxs205 } from "react/jsx-runtime";
33150
+ import { Fragment as Fragment45, jsx as jsx262, jsxs as jsxs205 } from "react/jsx-runtime";
33212
33151
  function Header2({ config, platform }) {
33213
- const [show, setShow] = useState80(true);
33214
- const [lastScrollY, setLastScrollY] = useState80(0);
33215
- const [openDropdowns, setOpenDropdowns] = useState80({});
33152
+ const [show, setShow] = useState79(true);
33153
+ const [lastScrollY, setLastScrollY] = useState79(0);
33154
+ const [openDropdowns, setOpenDropdowns] = useState79({});
33216
33155
  const dropdownRefs = useRef42({});
33217
33156
  const triggerRefs = useRef42({});
33218
33157
  useEffect58(() => {
@@ -33353,7 +33292,7 @@ function Header2({ config, platform }) {
33353
33292
  },
33354
33293
  child.id
33355
33294
  )) }),
33356
- item.dropdownContent && /* @__PURE__ */ jsxs205(Fragment46, { children: [
33295
+ item.dropdownContent && /* @__PURE__ */ jsxs205(Fragment45, { children: [
33357
33296
  item.showDropdownDivider !== false && /* @__PURE__ */ jsx262("div", { className: "h-px my-2 mx-2 bg-ods-border" }),
33358
33297
  /* @__PURE__ */ jsx262("div", { className: "px-2 pb-2", children: item.dropdownContent })
33359
33298
  ] })
@@ -33474,7 +33413,7 @@ function Header2({ config, platform }) {
33474
33413
  }
33475
33414
 
33476
33415
  // src/components/navigation/client-only-header.tsx
33477
- import { useState as useState81, useEffect as useEffect59 } from "react";
33416
+ import { useState as useState80, useEffect as useEffect59 } from "react";
33478
33417
 
33479
33418
  // src/components/navigation/header-skeleton.tsx
33480
33419
  import { jsx as jsx263, jsxs as jsxs206 } from "react/jsx-runtime";
@@ -33522,7 +33461,7 @@ function HeaderSkeleton({ config }) {
33522
33461
  // src/components/navigation/client-only-header.tsx
33523
33462
  import { jsx as jsx264 } from "react/jsx-runtime";
33524
33463
  function ClientOnlyHeader({ config, skeleton }) {
33525
- const [isClient, setIsClient] = useState81(false);
33464
+ const [isClient, setIsClient] = useState80(false);
33526
33465
  useEffect59(() => {
33527
33466
  setIsClient(true);
33528
33467
  }, []);
@@ -33536,7 +33475,7 @@ function ClientOnlyHeader({ config, skeleton }) {
33536
33475
  import { useEffect as useEffect60, useRef as useRef43 } from "react";
33537
33476
  init_button2();
33538
33477
  import { X as X10 } from "lucide-react";
33539
- import { Fragment as Fragment47, jsx as jsx265, jsxs as jsxs207 } from "react/jsx-runtime";
33478
+ import { Fragment as Fragment46, jsx as jsx265, jsxs as jsxs207 } from "react/jsx-runtime";
33540
33479
  function MobileNavPanel({ isOpen, config }) {
33541
33480
  const panelRef = useRef43(null);
33542
33481
  useEffect60(() => {
@@ -33609,7 +33548,7 @@ function MobileNavPanel({ isOpen, config }) {
33609
33548
  item.id
33610
33549
  );
33611
33550
  };
33612
- return /* @__PURE__ */ jsxs207(Fragment47, { children: [
33551
+ return /* @__PURE__ */ jsxs207(Fragment46, { children: [
33613
33552
  /* @__PURE__ */ jsx265(
33614
33553
  "div",
33615
33554
  {
@@ -33657,13 +33596,13 @@ function MobileNavPanel({ isOpen, config }) {
33657
33596
  }
33658
33597
 
33659
33598
  // src/components/navigation/sliding-sidebar.tsx
33660
- import { useState as useState82, useEffect as useEffect61 } from "react";
33599
+ import { useState as useState81, useEffect as useEffect61 } from "react";
33661
33600
  import { motion as motion2, AnimatePresence } from "framer-motion";
33662
33601
  init_button2();
33663
- import { Fragment as Fragment48, jsx as jsx266, jsxs as jsxs208 } from "react/jsx-runtime";
33602
+ import { Fragment as Fragment47, jsx as jsx266, jsxs as jsxs208 } from "react/jsx-runtime";
33664
33603
  function SlidingSidebar({ config }) {
33665
- const [expandedItems, setExpandedItems] = useState82(/* @__PURE__ */ new Set());
33666
- const [mounted, setMounted] = useState82(false);
33604
+ const [expandedItems, setExpandedItems] = useState81(/* @__PURE__ */ new Set());
33605
+ const [mounted, setMounted] = useState81(false);
33667
33606
  const headerHeight = useHeaderHeight();
33668
33607
  useEffect61(() => {
33669
33608
  setMounted(true);
@@ -33782,7 +33721,7 @@ function SlidingSidebar({ config }) {
33782
33721
  if (!mounted) {
33783
33722
  return null;
33784
33723
  }
33785
- return /* @__PURE__ */ jsxs208(Fragment48, { children: [
33724
+ return /* @__PURE__ */ jsxs208(Fragment47, { children: [
33786
33725
  /* @__PURE__ */ jsx266(AnimatePresence, { children: config.isOpen && /* @__PURE__ */ jsx266(
33787
33726
  motion2.div,
33788
33727
  {
@@ -33828,7 +33767,7 @@ function SlidingSidebar({ config }) {
33828
33767
  }
33829
33768
 
33830
33769
  // src/components/navigation/sticky-section-nav.tsx
33831
- import { useEffect as useEffect62, useState as useState83, useCallback as useCallback32, useRef as useRef44 } from "react";
33770
+ import { useEffect as useEffect62, useState as useState82, useCallback as useCallback32, useRef as useRef44 } from "react";
33832
33771
  import { jsx as jsx267, jsxs as jsxs209 } from "react/jsx-runtime";
33833
33772
  function StickySectionNav({
33834
33773
  sections,
@@ -33889,7 +33828,7 @@ function StickySectionNav({
33889
33828
  ] });
33890
33829
  }
33891
33830
  function useSectionNavigation(sections, options) {
33892
- const [activeSection, setActiveSection] = useState83(sections[0]?.id || "");
33831
+ const [activeSection, setActiveSection] = useState82(sections[0]?.id || "");
33893
33832
  const isScrollingFromClick = useRef44(false);
33894
33833
  const { offset: offset2 = 100 } = options || {};
33895
33834
  const handleSectionClick = useCallback32((sectionId) => {
@@ -33942,7 +33881,7 @@ function useSectionNavigation(sections, options) {
33942
33881
  }
33943
33882
 
33944
33883
  // src/components/navigation/navigation-sidebar.tsx
33945
- import { useCallback as useCallback33, useEffect as useEffect63, useLayoutEffect as useLayoutEffect6, useMemo as useMemo33, useState as useState84 } from "react";
33884
+ import { useCallback as useCallback33, useEffect as useEffect63, useLayoutEffect as useLayoutEffect6, useMemo as useMemo33, useState as useState83 } from "react";
33946
33885
 
33947
33886
  // src/components/navigation/navigation-sidebar-header.tsx
33948
33887
  import { jsx as jsx268, jsxs as jsxs210 } from "react/jsx-runtime";
@@ -34088,7 +34027,7 @@ function NavigationSidebarToggle({
34088
34027
  }
34089
34028
 
34090
34029
  // src/components/navigation/navigation-sidebar.tsx
34091
- import { Fragment as Fragment49, jsx as jsx271, jsxs as jsxs213 } from "react/jsx-runtime";
34030
+ import { Fragment as Fragment48, jsx as jsx271, jsxs as jsxs213 } from "react/jsx-runtime";
34092
34031
  var MINIMIZED_WIDTH = 56;
34093
34032
  var EXPANDED_WIDTH = 224;
34094
34033
  var STORAGE_KEY = "of.navigationSidebar.minimized";
@@ -34100,12 +34039,12 @@ function NavigationSidebar({ config, disabled = false }) {
34100
34039
  STORAGE_KEY,
34101
34040
  config.minimized ?? false
34102
34041
  );
34103
- const [tabletMinimized, setTabletMinimized] = useState84(true);
34042
+ const [tabletMinimized, setTabletMinimized] = useState83(true);
34104
34043
  useEffect63(() => {
34105
34044
  if (isTablet) setTabletMinimized(true);
34106
34045
  }, [isTablet]);
34107
34046
  const minimized = isTablet ? tabletMinimized : desktopMinimized;
34108
- const [transitionsEnabled, setTransitionsEnabled] = useState84(false);
34047
+ const [transitionsEnabled, setTransitionsEnabled] = useState83(false);
34109
34048
  const isOverlayOpen = isTablet && !minimized;
34110
34049
  const showLabel = !minimized;
34111
34050
  const handleToggle = useCallback33(() => {
@@ -34153,7 +34092,7 @@ function NavigationSidebar({ config, disabled = false }) {
34153
34092
  return () => cancelAnimationFrame(id);
34154
34093
  }
34155
34094
  }, [isHydrated, transitionsEnabled]);
34156
- return /* @__PURE__ */ jsxs213(Fragment49, { children: [
34095
+ return /* @__PURE__ */ jsxs213(Fragment48, { children: [
34157
34096
  /* @__PURE__ */ jsx271(
34158
34097
  "div",
34159
34098
  {
@@ -34187,7 +34126,7 @@ function NavigationSidebar({ config, disabled = false }) {
34187
34126
  ),
34188
34127
  style: { width: sidebarWidth },
34189
34128
  "aria-label": "Main navigation sidebar",
34190
- children: isHydrated && /* @__PURE__ */ jsxs213(Fragment49, { children: [
34129
+ children: isHydrated && /* @__PURE__ */ jsxs213(Fragment48, { children: [
34191
34130
  /* @__PURE__ */ jsx271(NavigationSidebarHeader, { minimized }),
34192
34131
  /* @__PURE__ */ jsxs213("div", { className: "flex-1 flex flex-col justify-between py-4 overflow-y-auto", children: [
34193
34132
  /* @__PURE__ */ jsx271("nav", { className: "flex flex-col", "aria-label": "Primary navigation", children: primaryItems.map((item) => /* @__PURE__ */ jsx271(
@@ -34595,11 +34534,11 @@ function NotificationsHeaderButton({
34595
34534
  }
34596
34535
 
34597
34536
  // src/components/navigation/app-layout.tsx
34598
- import { createContext as createContext9, Suspense as Suspense2, useCallback as useCallback35, useContext as useContext9, useMemo as useMemo34, useRef as useRef45, useState as useState85 } from "react";
34537
+ import { createContext as createContext9, Suspense as Suspense2, useCallback as useCallback35, useContext as useContext9, useMemo as useMemo34, useRef as useRef45, useState as useState84 } from "react";
34599
34538
 
34600
34539
  // src/components/navigation/mobile-burger-menu.tsx
34601
34540
  import React110, { useCallback as useCallback34, useEffect as useEffect64 } from "react";
34602
- import { Fragment as Fragment50, jsx as jsx276, jsxs as jsxs218 } from "react/jsx-runtime";
34541
+ import { Fragment as Fragment49, jsx as jsx276, jsxs as jsxs218 } from "react/jsx-runtime";
34603
34542
  var HEADER_HEIGHT = 48;
34604
34543
  var MobileBurgerMenu = React110.memo(function MobileBurgerMenu2({
34605
34544
  isOpen,
@@ -34685,7 +34624,7 @@ var MobileBurgerMenu = React110.memo(function MobileBurgerMenu2({
34685
34624
  row.length === 1 && /* @__PURE__ */ jsx276("div", { className: "flex-1" })
34686
34625
  ] }, rowIndex)) });
34687
34626
  };
34688
- return /* @__PURE__ */ jsxs218(Fragment50, { children: [
34627
+ return /* @__PURE__ */ jsxs218(Fragment49, { children: [
34689
34628
  /* @__PURE__ */ jsx276(
34690
34629
  "div",
34691
34630
  {
@@ -34816,8 +34755,8 @@ function AppLayout({
34816
34755
  disabled = false,
34817
34756
  drawer
34818
34757
  }) {
34819
- const [mobileMenuOpen, setMobileMenuOpen] = useState85(false);
34820
- const [drawerContainer, setDrawerContainer] = useState85(null);
34758
+ const [mobileMenuOpen, setMobileMenuOpen] = useState84(false);
34759
+ const [drawerContainer, setDrawerContainer] = useState84(null);
34821
34760
  const mobileMenuOpenRef = useRef45(mobileMenuOpen);
34822
34761
  mobileMenuOpenRef.current = mobileMenuOpen;
34823
34762
  const drawerHandlesRef = useRef45(/* @__PURE__ */ new Set());
@@ -35917,7 +35856,7 @@ import React113, { useRef as useRef47, useCallback as useCallback37 } from "reac
35917
35856
  import React112 from "react";
35918
35857
  init_button2();
35919
35858
  init_cn();
35920
- import { Fragment as Fragment51, jsx as jsx287, jsxs as jsxs229 } from "react/jsx-runtime";
35859
+ import { Fragment as Fragment50, jsx as jsx287, jsxs as jsxs229 } from "react/jsx-runtime";
35921
35860
  function OnboardingStepCard({
35922
35861
  step,
35923
35862
  isCompleted,
@@ -35959,10 +35898,10 @@ function OnboardingStepCard({
35959
35898
  /* @__PURE__ */ jsx287("h3", { className: "text-h4 text-ods-text-primary truncate", title: step.title, children: step.title }),
35960
35899
  /* @__PURE__ */ jsx287("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate h-[20px]", title: step.description, children: step.description })
35961
35900
  ] }),
35962
- /* @__PURE__ */ jsx287("div", { className: "flex items-center gap-2 w-full md:w-auto justify-start md:justify-end shrink-0", onClick: (e) => e.stopPropagation(), children: isCheckingCompletion ? /* @__PURE__ */ jsxs229(Fragment51, { children: [
35901
+ /* @__PURE__ */ jsx287("div", { className: "flex items-center gap-2 w-full md:w-auto justify-start md:justify-end shrink-0", onClick: (e) => e.stopPropagation(), children: isCheckingCompletion ? /* @__PURE__ */ jsxs229(Fragment50, { children: [
35963
35902
  /* @__PURE__ */ jsx287("div", { className: "h-[32px] w-[100px] bg-ods-border rounded-[6px] animate-pulse" }),
35964
35903
  /* @__PURE__ */ jsx287("div", { className: "h-[32px] w-[120px] bg-ods-border rounded-[6px] animate-pulse" })
35965
- ] }) : isCompleted ? /* @__PURE__ */ jsxs229(Fragment51, { children: [
35904
+ ] }) : isCompleted ? /* @__PURE__ */ jsxs229(Fragment50, { children: [
35966
35905
  /* @__PURE__ */ jsx287(
35967
35906
  StatusBadge,
35968
35907
  {
@@ -35981,14 +35920,14 @@ function OnboardingStepCard({
35981
35920
  children: step.completedText
35982
35921
  }
35983
35922
  )
35984
- ] }) : isSkipped ? /* @__PURE__ */ jsx287(Fragment51, { children: /* @__PURE__ */ jsx287(
35923
+ ] }) : isSkipped ? /* @__PURE__ */ jsx287(Fragment50, { children: /* @__PURE__ */ jsx287(
35985
35924
  StatusBadge,
35986
35925
  {
35987
35926
  text: "SKIPPED",
35988
35927
  variant: "card",
35989
35928
  colorScheme: "default"
35990
35929
  }
35991
- ) }) : /* @__PURE__ */ jsxs229(Fragment51, { children: [
35930
+ ) }) : /* @__PURE__ */ jsxs229(Fragment50, { children: [
35992
35931
  /* @__PURE__ */ jsx287(
35993
35932
  Button,
35994
35933
  {
@@ -36377,7 +36316,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
36377
36316
  ] });
36378
36317
  }
36379
36318
  function ServiceCardRowItem({ row }) {
36380
- const [revealed, setRevealed] = useState87(false);
36319
+ const [revealed, setRevealed] = useState86(false);
36381
36320
  const { copy, copied } = useCopyToClipboard();
36382
36321
  const actions = useMemo35(() => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
36383
36322
  const displayValue = row.isSecret ? /* @__PURE__ */ jsx291(MaskedValue, { value: row.value, isRevealed: revealed }) : /* @__PURE__ */ jsx291("span", { children: row.value });
@@ -36995,7 +36934,7 @@ function getHideClasses(hideAt) {
36995
36934
  }
36996
36935
 
36997
36936
  // src/components/ui/table/table-header.tsx
36998
- import { Fragment as Fragment52, jsx as jsx301, jsxs as jsxs240 } from "react/jsx-runtime";
36937
+ import { Fragment as Fragment51, jsx as jsx301, jsxs as jsxs240 } from "react/jsx-runtime";
36999
36938
  function TableHeader({
37000
36939
  columns,
37001
36940
  className,
@@ -37106,10 +37045,10 @@ function TableHeader({
37106
37045
  column.sortable && "cursor-pointer hover:text-ods-text-primary transition-colors"
37107
37046
  ),
37108
37047
  onClick: () => handleSort(column),
37109
- children: column.renderHeader ? /* @__PURE__ */ jsxs240(Fragment52, { children: [
37048
+ children: column.renderHeader ? /* @__PURE__ */ jsxs240(Fragment51, { children: [
37110
37049
  column.renderHeader(),
37111
37050
  getSortIcon(column)
37112
- ] }) : /* @__PURE__ */ jsxs240(Fragment52, { children: [
37051
+ ] }) : /* @__PURE__ */ jsxs240(Fragment51, { children: [
37113
37052
  /* @__PURE__ */ jsx301("span", { className: "text-h5 text-ods-text-secondary uppercase whitespace-nowrap", children: column.label }),
37114
37053
  getSortIcon(column)
37115
37054
  ] })
@@ -37164,7 +37103,7 @@ function TableCell({
37164
37103
 
37165
37104
  // src/components/ui/table/table-skeleton.tsx
37166
37105
  init_cn();
37167
- import { Fragment as Fragment53, jsx as jsx303, jsxs as jsxs241 } from "react/jsx-runtime";
37106
+ import { Fragment as Fragment52, jsx as jsx303, jsxs as jsxs241 } from "react/jsx-runtime";
37168
37107
  var ROW_HEIGHT_DESKTOP = "h-[68px] md:h-[80px]";
37169
37108
  var ROW_HEIGHT_MOBILE = "h-[68px]";
37170
37109
  function TableCardSkeleton({
@@ -37176,7 +37115,7 @@ function TableCardSkeleton({
37176
37115
  rowClassName
37177
37116
  }) {
37178
37117
  const primaryKey = (columns.find((c) => /flex-(1|\[)/.test(c.width || "")) ?? columns[0])?.key;
37179
- return /* @__PURE__ */ jsx303(Fragment53, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs241(
37118
+ return /* @__PURE__ */ jsx303(Fragment52, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs241(
37180
37119
  "div",
37181
37120
  {
37182
37121
  className: cn(
@@ -37337,9 +37276,9 @@ function TableRow({
37337
37276
  }
37338
37277
 
37339
37278
  // src/components/ui/table/use-table-motion.ts
37340
- import { useEffect as useEffect66, useState as useState88 } from "react";
37279
+ import { useEffect as useEffect66, useState as useState87 } from "react";
37341
37280
  function useTableMotion(enabled) {
37342
- const [runtime, setRuntime] = useState88(null);
37281
+ const [runtime, setRuntime] = useState87(null);
37343
37282
  useEffect66(() => {
37344
37283
  if (!enabled || runtime) return;
37345
37284
  let active = true;
@@ -37355,7 +37294,7 @@ function useTableMotion(enabled) {
37355
37294
  }
37356
37295
 
37357
37296
  // src/components/ui/table/table.tsx
37358
- import { Fragment as Fragment54, jsx as jsx305, jsxs as jsxs243 } from "react/jsx-runtime";
37297
+ import { Fragment as Fragment53, jsx as jsx305, jsxs as jsxs243 } from "react/jsx-runtime";
37359
37298
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
37360
37299
  const hasActions = Boolean(rowActions?.length) || Boolean(renderRowActions);
37361
37300
  const result = [...columns];
@@ -37557,7 +37496,7 @@ function Table({
37557
37496
  hasActions: Boolean(rowActions) && rowActions.length > 0,
37558
37497
  hasChevron: Boolean(rowHref)
37559
37498
  }
37560
- ) : data.length === 0 ? /* @__PURE__ */ jsx305(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs243(Fragment54, { children: [
37499
+ ) : data.length === 0 ? /* @__PURE__ */ jsx305(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs243(Fragment53, { children: [
37561
37500
  (() => {
37562
37501
  const rows = data.map((item, index) => /* @__PURE__ */ jsx305(
37563
37502
  TableRow,
@@ -37707,7 +37646,7 @@ import { useMemo as useMemo36 } from "react";
37707
37646
 
37708
37647
  // src/components/ui/query-report-table/query-report-table-header.tsx
37709
37648
  init_cn();
37710
- import { useRef as useRef50, useState as useState89, useCallback as useCallback38 } from "react";
37649
+ import { useRef as useRef50, useState as useState88, useCallback as useCallback38 } from "react";
37711
37650
  import { jsx as jsx308, jsxs as jsxs245 } from "react/jsx-runtime";
37712
37651
  function QueryReportTableHeader({
37713
37652
  columns,
@@ -37737,7 +37676,7 @@ function QueryReportTableHeader({
37737
37676
  }
37738
37677
  function TruncatedHeaderCell({ value, width }) {
37739
37678
  const textRef = useRef50(null);
37740
- const [isTruncated, setIsTruncated] = useState89(false);
37679
+ const [isTruncated, setIsTruncated] = useState88(false);
37741
37680
  const checkTruncation = useCallback38(() => {
37742
37681
  const el = textRef.current;
37743
37682
  if (el) {
@@ -37766,7 +37705,7 @@ function TruncatedHeaderCell({ value, width }) {
37766
37705
 
37767
37706
  // src/components/ui/query-report-table/query-report-table-row.tsx
37768
37707
  init_cn();
37769
- import { useRef as useRef51, useState as useState90, useCallback as useCallback39 } from "react";
37708
+ import { useRef as useRef51, useState as useState89, useCallback as useCallback39 } from "react";
37770
37709
  import { jsx as jsx309, jsxs as jsxs246 } from "react/jsx-runtime";
37771
37710
  function QueryReportTableRow({
37772
37711
  row,
@@ -37813,7 +37752,7 @@ function QueryReportTableRow({
37813
37752
  }
37814
37753
  function TruncatedCell({ value, className }) {
37815
37754
  const textRef = useRef51(null);
37816
- const [isTruncated, setIsTruncated] = useState90(false);
37755
+ const [isTruncated, setIsTruncated] = useState89(false);
37817
37756
  const checkTruncation = useCallback39(() => {
37818
37757
  const el = textRef.current;
37819
37758
  if (el) {
@@ -38184,7 +38123,7 @@ function DataTableColumnFilter({
38184
38123
  }
38185
38124
 
38186
38125
  // src/components/ui/data-table/data-table-header.tsx
38187
- import { Fragment as Fragment55, jsx as jsx314, jsxs as jsxs250 } from "react/jsx-runtime";
38126
+ import { Fragment as Fragment54, jsx as jsx314, jsxs as jsxs250 } from "react/jsx-runtime";
38188
38127
  function DataTableHeader({
38189
38128
  className,
38190
38129
  stickyHeader,
@@ -38278,7 +38217,7 @@ function HeaderLabel({ header }) {
38278
38217
  if (typeof headerDef === "string") {
38279
38218
  return /* @__PURE__ */ jsx314("span", { className: "text-h5 text-ods-text-secondary uppercase whitespace-nowrap transition-colors duration-200 group-hover:text-ods-text-primary", children: headerDef });
38280
38219
  }
38281
- return /* @__PURE__ */ jsx314(Fragment55, { children: flexRender(headerDef, header.getContext()) });
38220
+ return /* @__PURE__ */ jsx314(Fragment54, { children: flexRender(headerDef, header.getContext()) });
38282
38221
  }
38283
38222
  function SortIcon({ sorted }) {
38284
38223
  if (sorted === "asc") return /* @__PURE__ */ jsx314(Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
@@ -38317,7 +38256,7 @@ import { flexRender as flexRender2 } from "@tanstack/react-table";
38317
38256
 
38318
38257
  // src/components/ui/data-table/data-table-skeleton.tsx
38319
38258
  init_cn();
38320
- import { Fragment as Fragment56, jsx as jsx316, jsxs as jsxs251 } from "react/jsx-runtime";
38259
+ import { Fragment as Fragment55, jsx as jsx316, jsxs as jsxs251 } from "react/jsx-runtime";
38321
38260
  var ROW_HEIGHT_DESKTOP2 = "h-[68px] md:h-[80px]";
38322
38261
  var ROW_HEIGHT_MOBILE2 = "h-[68px]";
38323
38262
  function DataTableSkeleton({
@@ -38328,7 +38267,7 @@ function DataTableSkeleton({
38328
38267
  const table = useDataTableContext();
38329
38268
  const columns = table.getVisibleFlatColumns();
38330
38269
  const firstColumnId = columns[0]?.id;
38331
- return /* @__PURE__ */ jsx316(Fragment56, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs251(
38270
+ return /* @__PURE__ */ jsx316(Fragment55, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs251(
38332
38271
  "div",
38333
38272
  {
38334
38273
  className: cn(
@@ -38384,7 +38323,7 @@ function DataTableSkeleton({
38384
38323
  }
38385
38324
 
38386
38325
  // src/components/ui/data-table/data-table-row.tsx
38387
- import { Fragment as Fragment57, jsx as jsx317, jsxs as jsxs252 } from "react/jsx-runtime";
38326
+ import { Fragment as Fragment56, jsx as jsx317, jsxs as jsxs252 } from "react/jsx-runtime";
38388
38327
  function DataTableRowImpl({
38389
38328
  row,
38390
38329
  onClick,
@@ -38485,7 +38424,7 @@ function CellContent({ children }) {
38485
38424
  if (typeof children === "string" || typeof children === "number") {
38486
38425
  return /* @__PURE__ */ jsx317("span", { className: "text-h4 text-ods-text-primary truncate", title: String(children), children });
38487
38426
  }
38488
- return /* @__PURE__ */ jsx317(Fragment57, { children });
38427
+ return /* @__PURE__ */ jsx317(Fragment56, { children });
38489
38428
  }
38490
38429
 
38491
38430
  // src/components/ui/data-table/data-table-body.tsx
@@ -38563,7 +38502,7 @@ function DataTableBody({
38563
38502
 
38564
38503
  // src/components/ui/data-table/data-table-infinite-footer.tsx
38565
38504
  import { useEffect as useEffect68, useRef as useRef53 } from "react";
38566
- import { Fragment as Fragment58, jsx as jsx319, jsxs as jsxs254 } from "react/jsx-runtime";
38505
+ import { Fragment as Fragment57, jsx as jsx319, jsxs as jsxs254 } from "react/jsx-runtime";
38567
38506
  function DataTableInfiniteFooter({
38568
38507
  hasNextPage,
38569
38508
  isFetchingNextPage,
@@ -38587,7 +38526,7 @@ function DataTableInfiniteFooter({
38587
38526
  observer.observe(sentinel);
38588
38527
  return () => observer.disconnect();
38589
38528
  }, [hasNextPage, isFetchingNextPage, rootMargin]);
38590
- return /* @__PURE__ */ jsxs254(Fragment58, { children: [
38529
+ return /* @__PURE__ */ jsxs254(Fragment57, { children: [
38591
38530
  isFetchingNextPage && /* @__PURE__ */ jsx319(DataTableSkeleton, { rows: skeletonRows }),
38592
38531
  hasNextPage && /* @__PURE__ */ jsx319("div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" })
38593
38532
  ] });
@@ -39210,7 +39149,7 @@ function FilterList({
39210
39149
  import {
39211
39150
  useEffect as useEffect70,
39212
39151
  useRef as useRef55,
39213
- useState as useState92
39152
+ useState as useState91
39214
39153
  } from "react";
39215
39154
  init_cn();
39216
39155
  import { jsx as jsx323, jsxs as jsxs258 } from "react/jsx-runtime";
@@ -39247,7 +39186,7 @@ function TagSearchInput({
39247
39186
  const wrapperRef = useRef55(null);
39248
39187
  const hiddenTagsRef = useRef55(null);
39249
39188
  const hiddenTagsPopupRef = useRef55(null);
39250
- const [showHiddenTags, setShowHiddenTags] = useState92(false);
39189
+ const [showHiddenTags, setShowHiddenTags] = useState91(false);
39251
39190
  useEffect70(() => {
39252
39191
  if (!showHiddenTags) return;
39253
39192
  const handleClick = (e) => {
@@ -39403,7 +39342,7 @@ function TagSearchInput({
39403
39342
  }
39404
39343
 
39405
39344
  // src/components/ui/markdown-editor.tsx
39406
- import { useRef as useRef56, useCallback as useCallback42, useState as useState93, useEffect as useEffect71 } from "react";
39345
+ import { useRef as useRef56, useCallback as useCallback42, useState as useState92, useEffect as useEffect71 } from "react";
39407
39346
  init_cn();
39408
39347
  import { Loader2 as Loader29, Upload as Upload8 } from "lucide-react";
39409
39348
  import { jsx as jsx324, jsxs as jsxs259 } from "react/jsx-runtime";
@@ -39459,9 +39398,9 @@ function MarkdownEditor({
39459
39398
  renderPreview
39460
39399
  }) {
39461
39400
  const fileInputRef = useRef56(null);
39462
- const [isUploading, setIsUploading] = useState93(false);
39463
- const [uploadProgress, setUploadProgress] = useState93("");
39464
- const [defaultExtraCommands, setDefaultExtraCommands] = useState93([]);
39401
+ const [isUploading, setIsUploading] = useState92(false);
39402
+ const [uploadProgress, setUploadProgress] = useState92("");
39403
+ const [defaultExtraCommands, setDefaultExtraCommands] = useState92([]);
39465
39404
  useEffect71(() => {
39466
39405
  import("@uiw/react-md-editor").then((mod) => {
39467
39406
  if (mod.commands?.getExtraCommands) {
@@ -39997,7 +39936,7 @@ function FileUpload({
39997
39936
  import * as React124 from "react";
39998
39937
  import { Loader2 as Loader211 } from "lucide-react";
39999
39938
  init_cn();
40000
- import { Fragment as Fragment60, jsx as jsx326, jsxs as jsxs261 } from "react/jsx-runtime";
39939
+ import { Fragment as Fragment59, jsx as jsx326, jsxs as jsxs261 } from "react/jsx-runtime";
40001
39940
  var DEFAULT_MAX_SIZE = 25 * 1024 * 1024;
40002
39941
  function formatSize(bytes) {
40003
39942
  const mb = bytes / (1024 * 1024);
@@ -40125,7 +40064,7 @@ function ImageUploader({
40125
40064
  !hasImage && !interactive && "cursor-not-allowed",
40126
40065
  dropzoneClassName
40127
40066
  ),
40128
- children: hasImage ? /* @__PURE__ */ jsxs261(Fragment60, { children: [
40067
+ children: hasImage ? /* @__PURE__ */ jsxs261(Fragment59, { children: [
40129
40068
  /* @__PURE__ */ jsx326("div", { className: "relative min-h-0 w-full flex-1 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx326(
40130
40069
  "img",
40131
40070
  {
@@ -40162,7 +40101,7 @@ function ImageUploader({
40162
40101
  )
40163
40102
  ] }),
40164
40103
  loading && /* @__PURE__ */ jsx326("div", { className: "absolute inset-0 flex items-center justify-center rounded-md bg-ods-overlay", children: /* @__PURE__ */ jsx326(Loader211, { className: "size-8 animate-spin text-ods-text-on-dark" }) })
40165
- ] }) : loading ? /* @__PURE__ */ jsx326(Loader211, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs261(Fragment60, { children: [
40104
+ ] }) : loading ? /* @__PURE__ */ jsx326(Loader211, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs261(Fragment59, { children: [
40166
40105
  /* @__PURE__ */ jsx326("div", { className: "flex shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-card p-[var(--spacing-system-s)]", children: /* @__PURE__ */ jsx326(ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
40167
40106
  /* @__PURE__ */ jsxs261("div", { className: "flex w-full flex-col items-center text-center", children: [
40168
40107
  /* @__PURE__ */ jsx326("p", { className: "text-h4 text-ods-text-primary", children: label }),
@@ -40232,7 +40171,7 @@ PopoverContent.displayName = PopoverPrimitive7.Content.displayName;
40232
40171
 
40233
40172
  // src/components/ui/color-preset-select.tsx
40234
40173
  init_cn();
40235
- import { Fragment as Fragment61, jsx as jsx328, jsxs as jsxs262 } from "react/jsx-runtime";
40174
+ import { Fragment as Fragment60, jsx as jsx328, jsxs as jsxs262 } from "react/jsx-runtime";
40236
40175
  var TICKET_STATUS_COLOR_PRESETS = [
40237
40176
  { key: "green", label: "Green", color: "#5ea62e" },
40238
40177
  { key: "lime", label: "Lime", color: "#8bc34a" },
@@ -40383,7 +40322,7 @@ function RgbInputs({ value, onChange }) {
40383
40322
  const b = next.b ?? rgb.b;
40384
40323
  onChange(rgbToHex(r, g, b));
40385
40324
  };
40386
- return /* @__PURE__ */ jsxs262(Fragment61, { children: [
40325
+ return /* @__PURE__ */ jsxs262(Fragment60, { children: [
40387
40326
  /* @__PURE__ */ jsx328(ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
40388
40327
  /* @__PURE__ */ jsx328(ChannelInput, { value: rgb.g, min: 0, max: 255, ariaLabel: "Green", onCommit: (g) => update({ g }) }),
40389
40328
  /* @__PURE__ */ jsx328(ChannelInput, { value: rgb.b, min: 0, max: 255, ariaLabel: "Blue", onCommit: (b) => update({ b }) })
@@ -40399,7 +40338,7 @@ function HslInputs({ value, onChange }) {
40399
40338
  const out = hslToRgb(h, s, l);
40400
40339
  onChange(rgbToHex(out.r, out.g, out.b));
40401
40340
  };
40402
- return /* @__PURE__ */ jsxs262(Fragment61, { children: [
40341
+ return /* @__PURE__ */ jsxs262(Fragment60, { children: [
40403
40342
  /* @__PURE__ */ jsx328(ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
40404
40343
  /* @__PURE__ */ jsx328(ChannelInput, { value: hsl.s, min: 0, max: 100, ariaLabel: "Saturation", onCommit: (s) => update({ s }) }),
40405
40344
  /* @__PURE__ */ jsx328(ChannelInput, { value: hsl.l, min: 0, max: 100, ariaLabel: "Lightness", onCommit: (l) => update({ l }) })
@@ -40696,7 +40635,7 @@ init_cn();
40696
40635
  // src/components/ui/ticket-note-card.tsx
40697
40636
  import * as React128 from "react";
40698
40637
  init_cn();
40699
- import { Fragment as Fragment62, jsx as jsx332, jsxs as jsxs266 } from "react/jsx-runtime";
40638
+ import { Fragment as Fragment61, jsx as jsx332, jsxs as jsxs266 } from "react/jsx-runtime";
40700
40639
  function TicketNoteCard({ note, onEdit, onDelete, className }) {
40701
40640
  const [isEditing, setIsEditing] = React128.useState(false);
40702
40641
  const [editText, setEditText] = React128.useState(note.text);
@@ -40770,7 +40709,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
40770
40709
  children: /* @__PURE__ */ jsx332(XmarkIcon, { className: "size-5" })
40771
40710
  }
40772
40711
  )
40773
- ] }) : /* @__PURE__ */ jsxs266(Fragment62, { children: [
40712
+ ] }) : /* @__PURE__ */ jsxs266(Fragment61, { children: [
40774
40713
  /* @__PURE__ */ jsx332("p", { className: "text-h4 text-ods-text-primary", children: note.text }),
40775
40714
  /* @__PURE__ */ jsxs266(
40776
40715
  "p",
@@ -40877,7 +40816,7 @@ function TicketNotesSection({
40877
40816
  }
40878
40817
 
40879
40818
  // src/components/ui/ticket-info-section.tsx
40880
- import { Fragment as Fragment63, jsx as jsx334, jsxs as jsxs268 } from "react/jsx-runtime";
40819
+ import { Fragment as Fragment62, jsx as jsx334, jsxs as jsxs268 } from "react/jsx-runtime";
40881
40820
  function InfoCell2({ value, label, icon, onClick }) {
40882
40821
  return /* @__PURE__ */ jsx334("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxs268("div", { className: "flex flex-col justify-center", children: [
40883
40822
  /* @__PURE__ */ jsxs268("div", { className: "flex items-center gap-1 w-full min-w-0", children: [
@@ -41002,7 +40941,7 @@ function TicketInfoSection({
41002
40941
  )
41003
40942
  ] })
41004
40943
  ] }),
41005
- expanded && /* @__PURE__ */ jsxs268(Fragment63, { children: [
40944
+ expanded && /* @__PURE__ */ jsxs268(Fragment62, { children: [
41006
40945
  createdAt && /* @__PURE__ */ jsx334("div", { className: "grid grid-cols-2 gap-4 px-4 py-3 bg-ods-bg border-b border-ods-border items-center", children: /* @__PURE__ */ jsx334(InfoCell2, { value: createdAt, label: "Created" }) }),
41007
40946
  /* @__PURE__ */ jsxs268("div", { className: "flex flex-col gap-4 p-4 bg-ods-bg border-b border-ods-border", children: [
41008
40947
  description && /* @__PURE__ */ jsx334(SimpleMarkdownRenderer, { content: description }),
@@ -41060,14 +40999,14 @@ function FilterPillRow({
41060
40999
 
41061
41000
  // src/components/ui/image-gallery-modal.tsx
41062
41001
  import { ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight10 } from "lucide-react";
41063
- import { Fragment as Fragment64, jsx as jsx336, jsxs as jsxs270 } from "react/jsx-runtime";
41002
+ import { Fragment as Fragment63, jsx as jsx336, jsxs as jsxs270 } from "react/jsx-runtime";
41064
41003
  function ImageGalleryModal({
41065
41004
  images,
41066
41005
  isOpen,
41067
41006
  onClose,
41068
41007
  initialIndex = 0
41069
41008
  }) {
41070
- const [selectedImageIndex, setSelectedImageIndex] = useState100(initialIndex);
41009
+ const [selectedImageIndex, setSelectedImageIndex] = useState99(initialIndex);
41071
41010
  useEffect74(() => {
41072
41011
  if (isOpen) {
41073
41012
  setSelectedImageIndex(initialIndex);
@@ -41116,7 +41055,7 @@ function ImageGalleryModal({
41116
41055
  onClose,
41117
41056
  className: "max-w-[95vw]",
41118
41057
  children: /* @__PURE__ */ jsxs270("div", { className: "relative flex items-center justify-center bg-black rounded-lg", children: [
41119
- images.length > 1 && /* @__PURE__ */ jsxs270(Fragment64, { children: [
41058
+ images.length > 1 && /* @__PURE__ */ jsxs270(Fragment63, { children: [
41120
41059
  selectedImageIndex > 0 && /* @__PURE__ */ jsx336("div", { className: "absolute left-4 top-1/2 -translate-y-1/2 z-[10000]", children: /* @__PURE__ */ jsx336(
41121
41060
  Button,
41122
41061
  {
@@ -41234,7 +41173,7 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
41234
41173
  }
41235
41174
 
41236
41175
  // src/components/chat/entity-cards/roadmap-card.tsx
41237
- import { Fragment as Fragment65, jsx as jsx338, jsxs as jsxs271 } from "react/jsx-runtime";
41176
+ import { Fragment as Fragment64, jsx as jsx338, jsxs as jsxs271 } from "react/jsx-runtime";
41238
41177
  function RoadmapCardSkeleton({ size: size2 = "default" }) {
41239
41178
  if (size2 === "sm") {
41240
41179
  return /* @__PURE__ */ jsxs271("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
@@ -41286,7 +41225,7 @@ function RoadmapCard({
41286
41225
  onVote,
41287
41226
  isVoting = false
41288
41227
  }) {
41289
- const [showScreenshots, setShowScreenshots] = useState101(false);
41228
+ const [showScreenshots, setShowScreenshots] = useState100(false);
41290
41229
  const logoUrl = item.icon && item.icon.startsWith("http") ? item.icon : null;
41291
41230
  const iconSrc = logoUrl ? getProxiedImageUrl(logoUrl, { directHttps: true }) || logoUrl : null;
41292
41231
  if (size2 === "sm") {
@@ -41296,7 +41235,7 @@ function RoadmapCard({
41296
41235
  const hasScreenshots = (item.screenshots?.length ?? 0) > 0;
41297
41236
  const typeLabel = getTaskTypeLabel(item.customItemId);
41298
41237
  const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
41299
- const body = /* @__PURE__ */ jsxs271(Fragment65, { children: [
41238
+ const body = /* @__PURE__ */ jsxs271(Fragment64, { children: [
41300
41239
  /* @__PURE__ */ jsx338(
41301
41240
  "span",
41302
41241
  {
@@ -41488,7 +41427,7 @@ function RoadmapCard({
41488
41427
  // src/components/chat/entity-cards/github-activity-card.tsx
41489
41428
  import React131 from "react";
41490
41429
  import { GitPullRequest, Eye as Eye4, ExternalLink as ExternalLink8 } from "lucide-react";
41491
- import { Fragment as Fragment66, jsx as jsx339, jsxs as jsxs272 } from "react/jsx-runtime";
41430
+ import { Fragment as Fragment65, jsx as jsx339, jsxs as jsxs272 } from "react/jsx-runtime";
41492
41431
  function parseRepoFromUrl(url) {
41493
41432
  if (!url) return null;
41494
41433
  try {
@@ -41620,7 +41559,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
41620
41559
  if (repo) metaParts.push(/* @__PURE__ */ jsx339("span", { className: "font-mono truncate", children: repo }, "repo"));
41621
41560
  if (dateText) metaParts.push(/* @__PURE__ */ jsx339("span", { className: "whitespace-nowrap", children: dateText }, "date"));
41622
41561
  const href = safeHref(item.url);
41623
- const body = /* @__PURE__ */ jsxs272(Fragment66, { children: [
41562
+ const body = /* @__PURE__ */ jsxs272(Fragment65, { children: [
41624
41563
  /* @__PURE__ */ jsx339("span", { className: COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
41625
41564
  /* @__PURE__ */ jsxs272("span", { className: COMPACT_CARD_TEXT_COL, children: [
41626
41565
  /* @__PURE__ */ jsxs272("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
@@ -41675,7 +41614,7 @@ function GitHubActivityCardSkeleton({ variant = "compact", className }) {
41675
41614
  // src/components/chat/entity-cards/slack-message-card.tsx
41676
41615
  import React132 from "react";
41677
41616
  import { ExternalLink as ExternalLink9, Hash } from "lucide-react";
41678
- import { Fragment as Fragment67, jsx as jsx340, jsxs as jsxs273 } from "react/jsx-runtime";
41617
+ import { Fragment as Fragment66, jsx as jsx340, jsxs as jsxs273 } from "react/jsx-runtime";
41679
41618
  function parseChannelFromUrl(url) {
41680
41619
  if (!url) return null;
41681
41620
  try {
@@ -41714,7 +41653,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
41714
41653
  }
41715
41654
  if (dateText) metaParts.push(/* @__PURE__ */ jsx340("span", { className: "whitespace-nowrap", children: dateText }, "date"));
41716
41655
  const href = safeHref(item.url);
41717
- const body = /* @__PURE__ */ jsxs273(Fragment67, { children: [
41656
+ const body = /* @__PURE__ */ jsxs273(Fragment66, { children: [
41718
41657
  /* @__PURE__ */ jsx340("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx340(SlackIcon, { className: "h-5 w-5" }) }),
41719
41658
  /* @__PURE__ */ jsxs273("span", { className: COMPACT_CARD_TEXT_COL, children: [
41720
41659
  /* @__PURE__ */ jsx340("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx340("span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
@@ -41764,7 +41703,7 @@ function SlackMessageCardSkeleton({ variant = "compact", className }) {
41764
41703
  // src/components/chat/entity-cards/hubspot-ticket-card.tsx
41765
41704
  import React133 from "react";
41766
41705
  import { ExternalLink as ExternalLink10 } from "lucide-react";
41767
- import { Fragment as Fragment68, jsx as jsx341, jsxs as jsxs274 } from "react/jsx-runtime";
41706
+ import { Fragment as Fragment67, jsx as jsx341, jsxs as jsxs274 } from "react/jsx-runtime";
41768
41707
  function formatToken(token) {
41769
41708
  if (!token) return null;
41770
41709
  const lower = token.toLowerCase().replace(/_/g, " ");
@@ -41803,7 +41742,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
41803
41742
  }
41804
41743
  if (dateText) metaParts.push(/* @__PURE__ */ jsx341("span", { className: "whitespace-nowrap", children: dateText }, "date"));
41805
41744
  const href = safeHref(item.url);
41806
- const body = /* @__PURE__ */ jsxs274(Fragment68, { children: [
41745
+ const body = /* @__PURE__ */ jsxs274(Fragment67, { children: [
41807
41746
  /* @__PURE__ */ jsxs274("span", { className: COMPACT_CARD_TEXT_COL, children: [
41808
41747
  /* @__PURE__ */ jsxs274("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
41809
41748
  /* @__PURE__ */ jsx341("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
@@ -41883,9 +41822,9 @@ function HubspotTicketCardSkeleton({ variant = "compact", className }) {
41883
41822
 
41884
41823
  // src/components/chat/entity-cards/data-room-doc-card.tsx
41885
41824
  import { ExternalLink as ExternalLink11 } from "lucide-react";
41886
- import { Fragment as Fragment69, jsx as jsx342, jsxs as jsxs275 } from "react/jsx-runtime";
41825
+ import { Fragment as Fragment68, jsx as jsx342, jsxs as jsxs275 } from "react/jsx-runtime";
41887
41826
  function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
41888
- const body = /* @__PURE__ */ jsxs275(Fragment69, { children: [
41827
+ const body = /* @__PURE__ */ jsxs275(Fragment68, { children: [
41889
41828
  /* @__PURE__ */ jsxs275("span", { className: COMPACT_CARD_TEXT_COL, children: [
41890
41829
  /* @__PURE__ */ jsxs275("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
41891
41830
  /* @__PURE__ */ jsx342("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
@@ -41922,7 +41861,7 @@ function DataRoomDocCardSkeleton({ className }) {
41922
41861
  }
41923
41862
 
41924
41863
  // src/components/chat/entity-cards/program-card.tsx
41925
- import { useState as useState102 } from "react";
41864
+ import { useState as useState101 } from "react";
41926
41865
 
41927
41866
  // node_modules/date-fns/toDate.mjs
41928
41867
  function toDate(argument) {
@@ -43495,7 +43434,7 @@ function cleanEscapedString(input) {
43495
43434
  init_button();
43496
43435
  import { ExternalLink as ExternalLink12, Clock as Clock2, Play as Play4, Video as Video8 } from "lucide-react";
43497
43436
  init_cn();
43498
- import { Fragment as Fragment70, jsx as jsx343, jsxs as jsxs276 } from "react/jsx-runtime";
43437
+ import { Fragment as Fragment69, jsx as jsx343, jsxs as jsxs276 } from "react/jsx-runtime";
43499
43438
  function formatUtc(date, fmt) {
43500
43439
  return format(new Date(date.getTime() + date.getTimezoneOffset() * 6e4), fmt);
43501
43440
  }
@@ -43559,8 +43498,8 @@ function getHosts(hosts) {
43559
43498
  return [];
43560
43499
  }
43561
43500
  function MediaGallery({ images, title }) {
43562
- const [selectedImageIndex, setSelectedImageIndex] = useState102(null);
43563
- const [isModalOpen, setIsModalOpen] = useState102(false);
43501
+ const [selectedImageIndex, setSelectedImageIndex] = useState101(null);
43502
+ const [isModalOpen, setIsModalOpen] = useState101(false);
43564
43503
  const openImageModal = (index, event) => {
43565
43504
  if (event) event.stopPropagation();
43566
43505
  setSelectedImageIndex(index);
@@ -43570,7 +43509,7 @@ function MediaGallery({ images, title }) {
43570
43509
  setIsModalOpen(false);
43571
43510
  setSelectedImageIndex(null);
43572
43511
  };
43573
- return /* @__PURE__ */ jsxs276(Fragment70, { children: [
43512
+ return /* @__PURE__ */ jsxs276(Fragment69, { children: [
43574
43513
  /* @__PURE__ */ jsx343("div", { className: "p-6 pt-4", children: /* @__PURE__ */ jsx343("div", { className: "overflow-x-auto mb-4", children: /* @__PURE__ */ jsx343("div", { className: "flex gap-3 pb-2", style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ jsxs276(
43575
43514
  "div",
43576
43515
  {
@@ -43687,7 +43626,7 @@ function ProgramCard({
43687
43626
  const dateFormat = formatUtc(itemDate, "EEEE d MMMM");
43688
43627
  const defaultRenderMeta = () => {
43689
43628
  if (config.type === "podcast" && "duration_seconds" in item && !isScheduled) {
43690
- return /* @__PURE__ */ jsxs276(Fragment70, { children: [
43629
+ return /* @__PURE__ */ jsxs276(Fragment69, { children: [
43691
43630
  /* @__PURE__ */ jsx343(Clock2, { className: "w-4 h-4 text-ods-text-secondary" }),
43692
43631
  /* @__PURE__ */ jsx343("span", { className: "font-['DM_Sans'] text-ods-text-secondary", children: formatDurationCompact(item.duration_seconds) })
43693
43632
  ] });
@@ -43698,7 +43637,7 @@ function ProgramCard({
43698
43637
  if (config.type === "webinar" && "start_at" in item) {
43699
43638
  const webinarItem = item;
43700
43639
  const duration = formatDurationFromRange(webinarItem.start_at, webinarItem.end_at);
43701
- return /* @__PURE__ */ jsxs276(Fragment70, { children: [
43640
+ return /* @__PURE__ */ jsxs276(Fragment69, { children: [
43702
43641
  /* @__PURE__ */ jsx343(Video8, { className: "w-4 h-4 text-ods-text-secondary" }),
43703
43642
  /* @__PURE__ */ jsxs276("span", { className: "font-['DM_Sans'] text-ods-text-secondary", children: [
43704
43643
  formatTimeWithTimezone(webinarItem.start_at, webinarItem.timezone ?? null),
@@ -43732,10 +43671,10 @@ function ProgramCard({
43732
43671
  /* @__PURE__ */ jsx343("h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight mb-3 min-h-[3rem] md:min-h-[3.5rem] line-clamp-2 flex items-center", children: item.title }),
43733
43672
  /* @__PURE__ */ jsxs276("div", { className: "flex flex-col md:flex-row md:items-center gap-2 md:gap-4 mb-4", children: [
43734
43673
  /* @__PURE__ */ jsx343("span", { className: "font-['DM_Sans'] font-medium", style: { color: accentColor }, children: dateFormat }),
43735
- renderMeta ? /* @__PURE__ */ jsxs276(Fragment70, { children: [
43674
+ renderMeta ? /* @__PURE__ */ jsxs276(Fragment69, { children: [
43736
43675
  /* @__PURE__ */ jsx343("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
43737
43676
  renderMeta(item)
43738
- ] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs276(Fragment70, { children: [
43677
+ ] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs276(Fragment69, { children: [
43739
43678
  /* @__PURE__ */ jsx343("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
43740
43679
  /* @__PURE__ */ jsx343("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
43741
43680
  ] })
@@ -43812,10 +43751,10 @@ function ProgramCard({
43812
43751
 
43813
43752
  // src/components/chat/entity-cards/campaign-card-admin.tsx
43814
43753
  import { Megaphone as Megaphone3 } from "lucide-react";
43815
- import { Fragment as Fragment71, jsx as jsx344, jsxs as jsxs277 } from "react/jsx-runtime";
43754
+ import { Fragment as Fragment70, jsx as jsx344, jsxs as jsxs277 } from "react/jsx-runtime";
43816
43755
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
43817
43756
  const goalsCount = campaign.goals?.length || 0;
43818
- const innerChildren = /* @__PURE__ */ jsxs277(Fragment71, { children: [
43757
+ const innerChildren = /* @__PURE__ */ jsxs277(Fragment70, { children: [
43819
43758
  /* @__PURE__ */ jsx344("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx344(Megaphone3, { className: "h-5 w-5" }) }),
43820
43759
  /* @__PURE__ */ jsxs277("span", { className: COMPACT_CARD_TEXT_COL, children: [
43821
43760
  /* @__PURE__ */ jsx344("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx344("span", { className: COMPACT_CARD_TITLE, children: campaign.name }) }),
@@ -43845,11 +43784,11 @@ function CampaignCardAdminSkeleton({ className }) {
43845
43784
 
43846
43785
  // src/components/chat/entity-cards/generic-entity-card.tsx
43847
43786
  import { ExternalLink as ExternalLink13 } from "lucide-react";
43848
- import { Fragment as Fragment72, jsx as jsx345, jsxs as jsxs278 } from "react/jsx-runtime";
43787
+ import { Fragment as Fragment71, jsx as jsx345, jsxs as jsxs278 } from "react/jsx-runtime";
43849
43788
  function GenericEntityCard({ item, className, anchorProps }) {
43850
43789
  const href = safeHref(item.url);
43851
43790
  const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
43852
- const body = /* @__PURE__ */ jsxs278(Fragment72, { children: [
43791
+ const body = /* @__PURE__ */ jsxs278(Fragment71, { children: [
43853
43792
  /* @__PURE__ */ jsxs278("span", { className: COMPACT_CARD_TEXT_COL, children: [
43854
43793
  /* @__PURE__ */ jsxs278("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
43855
43794
  /* @__PURE__ */ jsx345("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
@@ -44034,7 +43973,7 @@ function resolveSourceIcon(input, ctx = {}) {
44034
43973
 
44035
43974
  // src/components/chat/mingo-info-card.tsx
44036
43975
  init_cn();
44037
- import { Fragment as Fragment73, jsx as jsx346, jsxs as jsxs279 } from "react/jsx-runtime";
43976
+ import { Fragment as Fragment72, jsx as jsx346, jsxs as jsxs279 } from "react/jsx-runtime";
44038
43977
  function CardMedia({
44039
43978
  imageSrc,
44040
43979
  imageAlt,
@@ -44078,7 +44017,7 @@ function MingoInfoCard({
44078
44017
  const hasMenu = !!menuGroups && menuGroups.length > 0;
44079
44018
  const isAnchor = !!anchorProps;
44080
44019
  const isInteractive = isAnchor || !!onClick;
44081
- const content = /* @__PURE__ */ jsxs279(Fragment73, { children: [
44020
+ const content = /* @__PURE__ */ jsxs279(Fragment72, { children: [
44082
44021
  hasMedia && /* @__PURE__ */ jsx346(CardMedia, { imageSrc, imageAlt, icon }),
44083
44022
  /* @__PURE__ */ jsxs279("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
44084
44023
  /* @__PURE__ */ jsx346("span", { className: "truncate text-h4 font-medium text-ods-text-primary", children: title }),
@@ -44127,7 +44066,7 @@ function MingoInfoCard({
44127
44066
  }
44128
44067
 
44129
44068
  // src/components/chat/entity-cards/dispatch.tsx
44130
- import { Fragment as Fragment74, jsx as jsx347, jsxs as jsxs280 } from "react/jsx-runtime";
44069
+ import { Fragment as Fragment73, jsx as jsx347, jsxs as jsxs280 } from "react/jsx-runtime";
44131
44070
  function githubKindIcon(kind) {
44132
44071
  switch (kind) {
44133
44072
  case "pull_request":
@@ -45095,10 +45034,10 @@ function ChatCardLoader({
45095
45034
  }
45096
45035
  );
45097
45036
  }
45098
- if (isLoading) return /* @__PURE__ */ jsx347(Fragment74, { children: entry.skeleton() });
45037
+ if (isLoading) return /* @__PURE__ */ jsx347(Fragment73, { children: entry.skeleton() });
45099
45038
  if (!item) return null;
45100
45039
  if (entry.bareInline) {
45101
- return /* @__PURE__ */ jsx347(Fragment74, { children: navWrap(entry.render(item, finalChatRef, renderOpts)) });
45040
+ return /* @__PURE__ */ jsx347(Fragment73, { children: navWrap(entry.render(item, finalChatRef, renderOpts)) });
45102
45041
  }
45103
45042
  return /* @__PURE__ */ jsx347(
45104
45043
  ChatCardWithDiscuss,
@@ -45345,7 +45284,7 @@ function useChunkCatchup({
45345
45284
  }
45346
45285
 
45347
45286
  // src/components/chat/hooks/use-jetstream-dialog-subscription.ts
45348
- import { useEffect as useEffect75, useRef as useRef61, useState as useState103 } from "react";
45287
+ import { useEffect as useEffect75, useRef as useRef61, useState as useState102 } from "react";
45349
45288
  var DEFAULT_INACTIVE_THRESHOLD_MS = 5 * 6e4;
45350
45289
  var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
45351
45290
  function useJetStreamDialogSubscription({
@@ -45364,10 +45303,10 @@ function useJetStreamDialogSubscription({
45364
45303
  reconnectionBackoff,
45365
45304
  inactiveThresholdMs
45366
45305
  }) {
45367
- const [isConnected, setIsConnected] = useState103(false);
45368
- const [isSubscribed, setIsSubscribed] = useState103(false);
45369
- const [reconnectionCount, setReconnectionCount] = useState103(0);
45370
- const [currentStreamSeq, setCurrentStreamSeq] = useState103(null);
45306
+ const [isConnected, setIsConnected] = useState102(false);
45307
+ const [isSubscribed, setIsSubscribed] = useState102(false);
45308
+ const [reconnectionCount, setReconnectionCount] = useState102(0);
45309
+ const [currentStreamSeq, setCurrentStreamSeq] = useState102(null);
45371
45310
  const clientRef = useRef61(null);
45372
45311
  const subscriptionRef = useRef61(null);
45373
45312
  const highestStreamSeqRef = useRef61(null);
@@ -45586,7 +45525,7 @@ function useJetStreamDialogSubscription({
45586
45525
  }
45587
45526
 
45588
45527
  // src/components/chat/hooks/use-nats-dialog-subscription.ts
45589
- import { useEffect as useEffect76, useRef as useRef62, useState as useState104 } from "react";
45528
+ import { useEffect as useEffect76, useRef as useRef62, useState as useState103 } from "react";
45590
45529
  function useNatsDialogSubscription({
45591
45530
  enabled,
45592
45531
  dialogId,
@@ -45600,9 +45539,9 @@ function useNatsDialogSubscription({
45600
45539
  clientConfig = {},
45601
45540
  reconnectionBackoff
45602
45541
  }) {
45603
- const [isConnected, setIsConnected] = useState104(false);
45604
- const [isSubscribed, setIsSubscribed] = useState104(false);
45605
- const [reconnectionCount, setReconnectionCount] = useState104(0);
45542
+ const [isConnected, setIsConnected] = useState103(false);
45543
+ const [isSubscribed, setIsSubscribed] = useState103(false);
45544
+ const [reconnectionCount, setReconnectionCount] = useState103(0);
45606
45545
  const clientRef = useRef62(null);
45607
45546
  const subscriptionRefs = useRef62(/* @__PURE__ */ new Map());
45608
45547
  const onEventRef = useRef62(onEvent);
@@ -46796,7 +46735,7 @@ function useRealtimeChunkProcessor(options) {
46796
46735
  }
46797
46736
 
46798
46737
  // src/components/chat/hooks/use-slash-commands.ts
46799
- import { useEffect as useEffect78, useState as useState105 } from "react";
46738
+ import { useEffect as useEffect78, useState as useState104 } from "react";
46800
46739
  import { useQuery as useQuery2 } from "@tanstack/react-query";
46801
46740
  async function fetchSlashCommands(prefix, signal, commandsUrl) {
46802
46741
  try {
@@ -46813,8 +46752,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
46813
46752
  }
46814
46753
  }
46815
46754
  function useSlashCommands(prefix, commandsUrl) {
46816
- const [commands, setCommands] = useState105([]);
46817
- const [loading, setLoading] = useState105(false);
46755
+ const [commands, setCommands] = useState104([]);
46756
+ const [loading, setLoading] = useState104(false);
46818
46757
  useEffect78(() => {
46819
46758
  if (prefix == null) {
46820
46759
  setCommands([]);
@@ -46921,7 +46860,7 @@ function useEmptyStateConfig(emptyStateUrl, options) {
46921
46860
  }
46922
46861
 
46923
46862
  // src/components/chat/hooks/use-chat-attachments.ts
46924
- import { useCallback as useCallback46, useMemo as useMemo40, useRef as useRef64, useState as useState106 } from "react";
46863
+ import { useCallback as useCallback46, useMemo as useMemo40, useRef as useRef64, useState as useState105 } from "react";
46925
46864
  import { fileTypeFromBlob } from "file-type";
46926
46865
  var CHAT_ATTACHMENTS_BUCKET = "chat-attachments";
46927
46866
  var CHAT_ATTACHMENTS_FOLDER = "chat";
@@ -46997,7 +46936,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
46997
46936
  function useChatAttachments() {
46998
46937
  const runtime = useRequiredChatRuntime();
46999
46938
  const uploadUrlEndpoint = runtime.endpoints.attachmentUploadUrl;
47000
- const [attachments, setAttachments] = useState106([]);
46939
+ const [attachments, setAttachments] = useState105([]);
47001
46940
  const controllersRef = useRef64(/* @__PURE__ */ new Map());
47002
46941
  const updateOne = useCallback46((id, patch) => {
47003
46942
  setAttachments((prev) => prev.map((a) => a.id === id ? { ...a, ...patch } : a));
@@ -47164,14 +47103,14 @@ function useChatAttachments() {
47164
47103
  }
47165
47104
 
47166
47105
  // src/components/chat/hooks/use-chat-attachment-image-gallery.tsx
47167
- import { useCallback as useCallback47, useEffect as useEffect79, useRef as useRef65, useState as useState107 } from "react";
47106
+ import { useCallback as useCallback47, useEffect as useEffect79, useRef as useRef65, useState as useState106 } from "react";
47168
47107
  import { jsx as jsx348 } from "react/jsx-runtime";
47169
47108
  var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
47170
47109
  function useChatAttachmentImageGallery() {
47171
47110
  const runtime = useRequiredChatRuntime();
47172
47111
  const viewUrlPrefix = runtime.endpoints.attachmentViewUrlPrefix;
47173
47112
  const panelRef = useRef65(null);
47174
- const [state, setState] = useState107(CLOSED);
47113
+ const [state, setState] = useState106(CLOSED);
47175
47114
  const handleClose = useCallback47(() => setState(CLOSED), []);
47176
47115
  useEffect79(() => {
47177
47116
  const root = panelRef.current;
@@ -47219,7 +47158,7 @@ function absolutize(prefix) {
47219
47158
  }
47220
47159
 
47221
47160
  // src/components/chat/hooks/use-chat-identity.ts
47222
- import { createContext as createContext12, createElement as createElement2, useContext as useContext12, useEffect as useEffect80, useState as useState108 } from "react";
47161
+ import { createContext as createContext12, createElement as createElement2, useContext as useContext12, useEffect as useEffect80, useState as useState107 } from "react";
47223
47162
  var ANON_DEFAULTS = {
47224
47163
  authTier: "anon",
47225
47164
  source: null,
@@ -47230,8 +47169,8 @@ function useResolveChatIdentity(enabled) {
47230
47169
  const runtime = useRequiredChatRuntime();
47231
47170
  const url = runtime.endpoints.identityUrl;
47232
47171
  const proxyEmail = getEmbedProxyAuth()?.email ?? null;
47233
- const [data, setData] = useState108(ANON_DEFAULTS);
47234
- const [isLoading, setIsLoading] = useState108(enabled);
47172
+ const [data, setData] = useState107(ANON_DEFAULTS);
47173
+ const [isLoading, setIsLoading] = useState107(enabled);
47235
47174
  useEffect80(() => {
47236
47175
  if (!enabled) return;
47237
47176
  let cancelled = false;
@@ -47292,13 +47231,13 @@ function useCloseOnNavigation(close, pathname) {
47292
47231
  }
47293
47232
 
47294
47233
  // src/components/chat/hooks/use-chat.ts
47295
- import { useState as useState110, useCallback as useCallback49, useEffect as useEffect82, useRef as useRef68 } from "react";
47234
+ import { useState as useState109, useCallback as useCallback49, useEffect as useEffect82, useRef as useRef68 } from "react";
47296
47235
 
47297
47236
  // src/components/chat/hooks/use-sse.ts
47298
- import { useState as useState109, useCallback as useCallback48, useRef as useRef67 } from "react";
47237
+ import { useState as useState108, useCallback as useCallback48, useRef as useRef67 } from "react";
47299
47238
  function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
47300
- const [isStreaming, setIsStreaming] = useState109(false);
47301
- const [error, setError] = useState109(null);
47239
+ const [isStreaming, setIsStreaming] = useState108(false);
47240
+ const [error, setError] = useState108(null);
47302
47241
  const abortControllerRef = useRef67(null);
47303
47242
  const fallbackStream = useCallback48(async function* () {
47304
47243
  throw new Error(
@@ -47365,8 +47304,8 @@ function useChat({
47365
47304
  initialMessages,
47366
47305
  onMessagesChange
47367
47306
  } = {}) {
47368
- const [messages, setMessages] = useState110(() => initialMessages ?? []);
47369
- const [isTyping, setIsTyping] = useState110(false);
47307
+ const [messages, setMessages] = useState109(() => initialMessages ?? []);
47308
+ const [isTyping, setIsTyping] = useState109(false);
47370
47309
  const currentAssistantSegmentsRef = useRef68([]);
47371
47310
  const onMessagesChangeRef = useRef68(onMessagesChange);
47372
47311
  onMessagesChangeRef.current = onMessagesChange;
@@ -47659,7 +47598,7 @@ function useChat({
47659
47598
  }
47660
47599
 
47661
47600
  // src/components/chat/hooks/use-sse-chat-adapter.ts
47662
- import { useState as useState111, useEffect as useEffect83, useCallback as useCallback50, useMemo as useMemo41, useRef as useRef69 } from "react";
47601
+ import { useState as useState110, useEffect as useEffect83, useCallback as useCallback50, useMemo as useMemo41, useRef as useRef69 } from "react";
47663
47602
  function createEmptyTurnMeta() {
47664
47603
  return {
47665
47604
  provider: null,
@@ -47994,8 +47933,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
47994
47933
  const metaMapRef = useRef69(/* @__PURE__ */ new Map());
47995
47934
  const messagesRef = useRef69(persistedRef.current.messages);
47996
47935
  const sendCountRef = useRef69(persistedRef.current.sendCount);
47997
- const [streamingPhase, setStreamingPhase] = useState111("idle");
47998
- const [metaTick, setMetaTick] = useState111(0);
47936
+ const [streamingPhase, setStreamingPhase] = useState110("idle");
47937
+ const [metaTick, setMetaTick] = useState110(0);
47999
47938
  const bumpMetaTick = useCallback50(() => setMetaTick((t) => t + 1), []);
48000
47939
  const streamFn = useMemo41(
48001
47940
  () => createDocStreamFn(
@@ -48268,7 +48207,7 @@ import {
48268
48207
  useEffect as useEffect84,
48269
48208
  useMemo as useMemo42,
48270
48209
  useRef as useRef70,
48271
- useState as useState112
48210
+ useState as useState111
48272
48211
  } from "react";
48273
48212
 
48274
48213
  // src/components/chat/utils/process-historical-messages.ts
@@ -48758,23 +48697,23 @@ function useNatsChatAdapter(config, options = {}) {
48758
48697
  modelLabel = null
48759
48698
  } = config;
48760
48699
  const isManagedMode = fetchDialogs !== void 0;
48761
- const [internalDialogId, setInternalDialogId] = useState112(null);
48700
+ const [internalDialogId, setInternalDialogId] = useState111(null);
48762
48701
  const dialogId = isManagedMode ? internalDialogId : controlledDialogId !== void 0 ? controlledDialogId : null;
48763
- const [messages, setMessages] = useState112([]);
48764
- const [streamingPhase, setStreamingPhase] = useState112("idle");
48765
- const [approvalStatuses, setApprovalStatuses] = useState112({});
48766
- const [dialogs, setDialogs] = useState112([]);
48767
- const [dialogsNextCursor, setDialogsNextCursor] = useState112(null);
48768
- const [isDialogsLoading, setIsDialogsLoading] = useState112(false);
48769
- const [dialogsError, setDialogsError] = useState112(false);
48770
- const [isCreatingDialog, setIsCreatingDialog] = useState112(false);
48771
- const [messagesNextCursor, setMessagesNextCursor] = useState112(null);
48772
- const [isMessagesLoading, setIsMessagesLoading] = useState112(false);
48773
- const [dialogTokenUsage, setDialogTokenUsage] = useState112(
48702
+ const [messages, setMessages] = useState111([]);
48703
+ const [streamingPhase, setStreamingPhase] = useState111("idle");
48704
+ const [approvalStatuses, setApprovalStatuses] = useState111({});
48705
+ const [dialogs, setDialogs] = useState111([]);
48706
+ const [dialogsNextCursor, setDialogsNextCursor] = useState111(null);
48707
+ const [isDialogsLoading, setIsDialogsLoading] = useState111(false);
48708
+ const [dialogsError, setDialogsError] = useState111(false);
48709
+ const [isCreatingDialog, setIsCreatingDialog] = useState111(false);
48710
+ const [messagesNextCursor, setMessagesNextCursor] = useState111(null);
48711
+ const [isMessagesLoading, setIsMessagesLoading] = useState111(false);
48712
+ const [dialogTokenUsage, setDialogTokenUsage] = useState111(
48774
48713
  null
48775
48714
  );
48776
- const [liveModel, setLiveModel] = useState112(null);
48777
- const [connectionState, setConnectionState] = useState112("connecting");
48715
+ const [liveModel, setLiveModel] = useState111(null);
48716
+ const [connectionState, setConnectionState] = useState111("connecting");
48778
48717
  const handleApprove = useCallback51(
48779
48718
  async (requestId) => {
48780
48719
  if (!approveRequestCallback) return;
@@ -49570,7 +49509,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
49570
49509
  }
49571
49510
 
49572
49511
  // src/components/chat/embeddable-chat.tsx
49573
- import { useCallback as useCallback54, useEffect as useEffect85, useMemo as useMemo45, useRef as useRef72, useState as useState114 } from "react";
49512
+ import { useCallback as useCallback54, useEffect as useEffect85, useMemo as useMemo45, useRef as useRef72, useState as useState113 } from "react";
49574
49513
  import * as DialogPrimitive4 from "@radix-ui/react-dialog";
49575
49514
  import { usePreventScroll } from "@react-aria/overlays";
49576
49515
  import { isIOS } from "@react-aria/utils";
@@ -49651,7 +49590,7 @@ init_button2();
49651
49590
  import { FileText as FileText8, MessageSquare as MessageSquare3 } from "lucide-react";
49652
49591
 
49653
49592
  // src/components/chat/hooks/use-chat-dialog-manager.ts
49654
- import { useCallback as useCallback53, useMemo as useMemo44, useState as useState113 } from "react";
49593
+ import { useCallback as useCallback53, useMemo as useMemo44, useState as useState112 } from "react";
49655
49594
  function useChatDialogManager({
49656
49595
  dialogs,
49657
49596
  activeDialogId,
@@ -49662,8 +49601,8 @@ function useChatDialogManager({
49662
49601
  fetchArchivedDialogs,
49663
49602
  unarchiveDialog
49664
49603
  }) {
49665
- const [renameTarget, setRenameTarget] = useState113(null);
49666
- const [archiveTarget, setArchiveTarget] = useState113(null);
49604
+ const [renameTarget, setRenameTarget] = useState112(null);
49605
+ const [archiveTarget, setArchiveTarget] = useState112(null);
49667
49606
  const handleConfirmRename = useCallback53(
49668
49607
  (name) => {
49669
49608
  if (renameTarget) void renameDialog(renameTarget.id, name);
@@ -49686,10 +49625,10 @@ function useChatDialogManager({
49686
49625
  }
49687
49626
  setArchiveTarget(null);
49688
49627
  }, [archiveTarget, archiveDialog, activeDialogId, clearMessages]);
49689
- const [archiveOpen, setArchiveOpen] = useState113(false);
49690
- const [archivedDialogs, setArchivedDialogs] = useState113([]);
49691
- const [archivedCursor, setArchivedCursor] = useState113(null);
49692
- const [archivedLoading, setArchivedLoading] = useState113(false);
49628
+ const [archiveOpen, setArchiveOpen] = useState112(false);
49629
+ const [archivedDialogs, setArchivedDialogs] = useState112([]);
49630
+ const [archivedCursor, setArchivedCursor] = useState112(null);
49631
+ const [archivedLoading, setArchivedLoading] = useState112(false);
49693
49632
  const loadArchivedPage = useCallback53(
49694
49633
  async (cursor) => {
49695
49634
  if (!fetchArchivedDialogs) return;
@@ -49715,10 +49654,10 @@ function useChatDialogManager({
49715
49654
  void loadArchivedPage();
49716
49655
  }, [loadArchivedPage]);
49717
49656
  const closeArchive = useCallback53(() => setArchiveOpen(false), []);
49718
- const [viewingArchivedId, setViewingArchivedId] = useState113(
49657
+ const [viewingArchivedId, setViewingArchivedId] = useState112(
49719
49658
  null
49720
49659
  );
49721
- const [openingDialogId, setOpeningDialogId] = useState113(null);
49660
+ const [openingDialogId, setOpeningDialogId] = useState112(null);
49722
49661
  const handleSelectDialog = useCallback53(
49723
49662
  (id) => {
49724
49663
  setViewingArchivedId(null);
@@ -49737,7 +49676,7 @@ function useChatDialogManager({
49737
49676
  },
49738
49677
  [selectDialog]
49739
49678
  );
49740
- const [restoreTarget, setRestoreTarget] = useState113(null);
49679
+ const [restoreTarget, setRestoreTarget] = useState112(null);
49741
49680
  const handleConfirmRestore = useCallback53(async () => {
49742
49681
  if (restoreTarget) {
49743
49682
  try {
@@ -49799,7 +49738,7 @@ function useChatDialogManager({
49799
49738
 
49800
49739
  // src/components/chat/embeddable-chat.tsx
49801
49740
  init_next_navigation();
49802
- import { Fragment as Fragment75, jsx as jsx351, jsxs as jsxs281 } from "react/jsx-runtime";
49741
+ import { Fragment as Fragment74, jsx as jsx351, jsxs as jsxs281 } from "react/jsx-runtime";
49803
49742
  var formatRelativePath = (p) => p.replace(/^\/+/, "").replace(/\/+$/, "");
49804
49743
  var mentionTokenOf = (key, markerByType) => {
49805
49744
  const ci = key.indexOf(":");
@@ -49919,7 +49858,7 @@ function SourceChip({
49919
49858
  );
49920
49859
  }
49921
49860
  const displayName = src.name || formatRelativePath(src.path);
49922
- const chipBody = (label) => /* @__PURE__ */ jsxs281(Fragment75, { children: [
49861
+ const chipBody = (label) => /* @__PURE__ */ jsxs281(Fragment74, { children: [
49923
49862
  icon,
49924
49863
  /* @__PURE__ */ jsxs281("span", { className: "truncate max-w-[160px]", children: [
49925
49864
  "[",
@@ -49989,7 +49928,7 @@ function SourceChips({
49989
49928
  onClose,
49990
49929
  onDiscuss
49991
49930
  }) {
49992
- const [expanded, setExpanded] = useState114(false);
49931
+ const [expanded, setExpanded] = useState113(false);
49993
49932
  if (cited.length === 0) {
49994
49933
  const fallback = uncited.slice(0, FALLBACK_TOP_RETRIEVED);
49995
49934
  if (fallback.length === 0) return null;
@@ -50110,7 +50049,7 @@ function EmbeddableChatInner({
50110
50049
  defaultProp: defaultOpen ?? false,
50111
50050
  onChange: onOpenChange
50112
50051
  });
50113
- const [autoFocusInput] = useState114(() => {
50052
+ const [autoFocusInput] = useState113(() => {
50114
50053
  if (typeof window === "undefined") return false;
50115
50054
  return !window.matchMedia("(pointer: coarse)").matches;
50116
50055
  });
@@ -50143,7 +50082,7 @@ function EmbeddableChatInner({
50143
50082
  };
50144
50083
  }, [isOpen, shellLess]);
50145
50084
  const chatInputRef = useRef72(null);
50146
- const [quickActionPreview, setQuickActionPreview] = useState114(null);
50085
+ const [quickActionPreview, setQuickActionPreview] = useState113(null);
50147
50086
  const slashCommandsProp = useMemo45(
50148
50087
  () => ({
50149
50088
  fetchCommands: (prefix, signal) => fetchSlashCommands(prefix, signal, commandsUrl),
@@ -50186,7 +50125,7 @@ function EmbeddableChatInner({
50186
50125
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
50187
50126
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
50188
50127
  const initialActiveMode = controlledActiveMode ?? defaultActiveMode ?? (effectiveModes.guide ? "guide" : "mingo");
50189
- const [uncontrolledActiveMode, setUncontrolledActiveMode] = useState114(initialActiveMode);
50128
+ const [uncontrolledActiveMode, setUncontrolledActiveMode] = useState113(initialActiveMode);
50190
50129
  const activeMode = controlledActiveMode ?? uncontrolledActiveMode;
50191
50130
  const handleActiveModeChange = useCallback54(
50192
50131
  (next) => {
@@ -50268,9 +50207,9 @@ function EmbeddableChatInner({
50268
50207
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
50269
50208
  const contextMaxItems = contextPicker?.maxItems ?? 10;
50270
50209
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
50271
- const [contextItems, setContextItems] = useState114([]);
50272
- const [contextPickerOpen, setContextPickerOpen] = useState114(false);
50273
- const [mentionQuery, setMentionQuery] = useState114(null);
50210
+ const [contextItems, setContextItems] = useState113([]);
50211
+ const [contextPickerOpen, setContextPickerOpen] = useState113(false);
50212
+ const [mentionQuery, setMentionQuery] = useState113(null);
50274
50213
  const mentionActiveRef = useRef72(false);
50275
50214
  useEffect85(() => {
50276
50215
  mentionActiveRef.current = mentionQuery !== null;
@@ -50557,7 +50496,7 @@ function EmbeddableChatInner({
50557
50496
  const uncited = sources.filter((s) => !seenOrder.has(s.index));
50558
50497
  return { cited, uncited };
50559
50498
  }, [lastAssistantMsg, chatLoading]);
50560
- const [portalHost, setPortalHost] = useState114(null);
50499
+ const [portalHost, setPortalHost] = useState113(null);
50561
50500
  const body = /* @__PURE__ */ jsxs281(PortalContainerContext.Provider, { value: portalHost, children: [
50562
50501
  /* @__PURE__ */ jsx351(
50563
50502
  "div",
@@ -50865,7 +50804,7 @@ function EmbeddableChatInner({
50865
50804
  ]
50866
50805
  }
50867
50806
  ) }) });
50868
- return /* @__PURE__ */ jsxs281(Fragment75, { children: [
50807
+ return /* @__PURE__ */ jsxs281(Fragment74, { children: [
50869
50808
  showInternalTrigger && !shellLess && /* @__PURE__ */ jsx351(
50870
50809
  "div",
50871
50810
  {
@@ -51142,7 +51081,6 @@ export {
51142
51081
  ArgRow,
51143
51082
  ResultBlock,
51144
51083
  CommandBlock,
51145
- ApprovalStatusTag,
51146
51084
  ApprovalBatchMessage,
51147
51085
  ContextCompactionDisplay,
51148
51086
  SimpleMarkdownRenderer,
@@ -51826,4 +51764,4 @@ export {
51826
51764
  LogsList,
51827
51765
  assets
51828
51766
  };
51829
- //# sourceMappingURL=chunk-VZ4NJBQT.js.map
51767
+ //# sourceMappingURL=chunk-CNDLMBFN.js.map