@flamingo-stack/openframe-frontend-core 0.0.294 → 0.0.295-snapshot.20260619154913

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 (86) hide show
  1. package/dist/{chunk-6SG25O2N.js → chunk-5P3B2LZW.js} +3 -3
  2. package/dist/{chunk-AFKRDSRS.cjs → chunk-66AANIOC.cjs} +9 -9
  3. package/dist/{chunk-AFKRDSRS.cjs.map → chunk-66AANIOC.cjs.map} +1 -1
  4. package/dist/{chunk-4W7NYJ3B.cjs → chunk-BOCFIKYS.cjs} +17 -17
  5. package/dist/{chunk-4W7NYJ3B.cjs.map → chunk-BOCFIKYS.cjs.map} +1 -1
  6. package/dist/{chunk-NSPOYUBH.js → chunk-D652TJBQ.js} +2 -2
  7. package/dist/{chunk-5IJ46KAV.js → chunk-EL6QLAWX.js} +4 -3
  8. package/dist/chunk-EL6QLAWX.js.map +1 -0
  9. package/dist/{chunk-FT4FCV7L.cjs → chunk-GLLDTKZK.cjs} +3 -3
  10. package/dist/{chunk-FT4FCV7L.cjs.map → chunk-GLLDTKZK.cjs.map} +1 -1
  11. package/dist/{chunk-XXI7BNB6.cjs → chunk-IE6OU3WQ.cjs} +4 -3
  12. package/dist/chunk-IE6OU3WQ.cjs.map +1 -0
  13. package/dist/{chunk-ZYZWD7LS.js → chunk-K2PFPBMF.js} +127 -92
  14. package/dist/chunk-K2PFPBMF.js.map +1 -0
  15. package/dist/{chunk-RT6DJB3C.js → chunk-MBFWU2EM.js} +3 -3
  16. package/dist/{chunk-QFG4G62D.js → chunk-ME4EVDFP.js} +3 -3
  17. package/dist/{chunk-DEBURY5R.js → chunk-OY7OF7E7.js} +4 -4
  18. package/dist/{chunk-V6YZGLHZ.cjs → chunk-QHIXS3W2.cjs} +392 -357
  19. package/dist/chunk-QHIXS3W2.cjs.map +1 -0
  20. package/dist/{chunk-CLWQ7MHW.cjs → chunk-W6M2FLLT.cjs} +26 -26
  21. package/dist/{chunk-CLWQ7MHW.cjs.map → chunk-W6M2FLLT.cjs.map} +1 -1
  22. package/dist/{chunk-E24HKKIE.js → chunk-WHMATDVP.js} +3 -3
  23. package/dist/{chunk-6LUVYHKD.cjs → chunk-X647HY3F.cjs} +27 -27
  24. package/dist/{chunk-6LUVYHKD.cjs.map → chunk-X647HY3F.cjs.map} +1 -1
  25. package/dist/{chunk-73QT66LJ.cjs → chunk-X6BV7MB7.cjs} +13 -13
  26. package/dist/{chunk-73QT66LJ.cjs.map → chunk-X6BV7MB7.cjs.map} +1 -1
  27. package/dist/{chunk-B4T3RTFX.cjs → chunk-XREEV72C.cjs} +5 -5
  28. package/dist/{chunk-B4T3RTFX.cjs.map → chunk-XREEV72C.cjs.map} +1 -1
  29. package/dist/{chunk-EJXHZX2E.js → chunk-ZP4AVIZP.js} +2 -2
  30. package/dist/components/chat/chat-container.d.ts.map +1 -1
  31. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  32. package/dist/components/chat/chat-ticket-list.d.ts.map +1 -1
  33. package/dist/components/chat/error-message-display.d.ts.map +1 -1
  34. package/dist/components/chat/index.cjs +4 -4
  35. package/dist/components/chat/index.js +3 -3
  36. package/dist/components/chat/types/component.types.d.ts +2 -0
  37. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  38. package/dist/components/contact/index.cjs +5 -5
  39. package/dist/components/contact/index.js +4 -4
  40. package/dist/components/embeds/index.cjs +5 -5
  41. package/dist/components/embeds/index.js +4 -4
  42. package/dist/components/faq/index.cjs +5 -5
  43. package/dist/components/faq/index.js +4 -4
  44. package/dist/components/features/index.cjs +4 -4
  45. package/dist/components/features/index.js +3 -3
  46. package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
  47. package/dist/components/features/notifications/notifications-context.d.ts +5 -1
  48. package/dist/components/features/notifications/notifications-context.d.ts.map +1 -1
  49. package/dist/components/index.cjs +88 -88
  50. package/dist/components/index.js +8 -8
  51. package/dist/components/navigation/index.cjs +4 -4
  52. package/dist/components/navigation/index.js +3 -3
  53. package/dist/components/onboarding-guides/index.cjs +19 -19
  54. package/dist/components/onboarding-guides/index.js +3 -3
  55. package/dist/components/related-content/index.cjs +5 -5
  56. package/dist/components/related-content/index.js +4 -4
  57. package/dist/components/tickets/index.cjs +65 -65
  58. package/dist/components/tickets/index.js +5 -5
  59. package/dist/components/ui/button/split-button.d.ts.map +1 -1
  60. package/dist/components/ui/file-manager/index.cjs +20 -20
  61. package/dist/components/ui/file-manager/index.js +1 -1
  62. package/dist/components/ui/index.cjs +4 -4
  63. package/dist/components/ui/index.js +3 -3
  64. package/dist/index.cjs +4 -4
  65. package/dist/index.js +3 -3
  66. package/package.json +1 -1
  67. package/src/components/chat/chat-container.tsx +5 -7
  68. package/src/components/chat/chat-message-enhanced.tsx +8 -5
  69. package/src/components/chat/chat-ticket-list.tsx +25 -16
  70. package/src/components/chat/error-message-display.tsx +49 -31
  71. package/src/components/chat/types/component.types.ts +2 -0
  72. package/src/components/features/notifications/notification-drawer.tsx +18 -7
  73. package/src/components/features/notifications/notifications-context.tsx +7 -0
  74. package/src/components/ui/button/split-button.tsx +5 -2
  75. package/src/stories/NotificationDrawer.stories.tsx +2 -0
  76. package/dist/chunk-5IJ46KAV.js.map +0 -1
  77. package/dist/chunk-V6YZGLHZ.cjs.map +0 -1
  78. package/dist/chunk-XXI7BNB6.cjs.map +0 -1
  79. package/dist/chunk-ZYZWD7LS.js.map +0 -1
  80. /package/dist/{chunk-6SG25O2N.js.map → chunk-5P3B2LZW.js.map} +0 -0
  81. /package/dist/{chunk-NSPOYUBH.js.map → chunk-D652TJBQ.js.map} +0 -0
  82. /package/dist/{chunk-RT6DJB3C.js.map → chunk-MBFWU2EM.js.map} +0 -0
  83. /package/dist/{chunk-QFG4G62D.js.map → chunk-ME4EVDFP.js.map} +0 -0
  84. /package/dist/{chunk-DEBURY5R.js.map → chunk-OY7OF7E7.js.map} +0 -0
  85. /package/dist/{chunk-E24HKKIE.js.map → chunk-WHMATDVP.js.map} +0 -0
  86. /package/dist/{chunk-EJXHZX2E.js.map → chunk-ZP4AVIZP.js.map} +0 -0
@@ -93,7 +93,7 @@ import {
93
93
  useControllableState,
94
94
  useEntityCardLink,
95
95
  useEntityCardPlaceholder
96
- } from "./chunk-NSPOYUBH.js";
96
+ } from "./chunk-D652TJBQ.js";
97
97
  import {
98
98
  COMPACT_CARD_ICON_SLOT,
99
99
  COMPACT_CARD_IMAGE_SLOT,
@@ -168,7 +168,7 @@ import {
168
168
  init_button2,
169
169
  init_split_button,
170
170
  usePortalContainer
171
- } from "./chunk-5IJ46KAV.js";
171
+ } from "./chunk-EL6QLAWX.js";
172
172
  import {
173
173
  init_next_link,
174
174
  next_link_default
@@ -1080,47 +1080,63 @@ ThinkingDisplay.displayName = "ThinkingDisplay";
1080
1080
  // src/components/chat/error-message-display.tsx
1081
1081
  init_cn();
1082
1082
  import { forwardRef as forwardRef5, useState as useState5 } from "react";
1083
- import { AlertCircle, ChevronDown } from "lucide-react";
1084
1083
  import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1084
+ var iconTint = {
1085
+ error: "text-ods-error",
1086
+ warning: "text-ods-warning",
1087
+ info: "text-ods-text-secondary"
1088
+ };
1085
1089
  var ErrorMessageDisplay = forwardRef5(
1086
- ({ className, title, details, ...props }, ref) => {
1087
- const [isExpanded, setIsExpanded] = useState5(false);
1090
+ ({ className, title, details, type = "error", ...props }, ref) => {
1091
+ const [expanded, setExpanded] = useState5(false);
1092
+ const { innerRef, containerStyle } = useCollapsible({ expanded });
1093
+ const hasDetails = Boolean(details);
1088
1094
  return /* @__PURE__ */ jsxs6(
1089
1095
  "div",
1090
1096
  {
1091
1097
  ref,
1092
1098
  className: cn(
1093
- "bg-[var(--ods-attention-red-error-secondary)] border border-ods-error rounded-[6px] p-3 mb-2 flex items-start gap-3",
1099
+ "bg-ods-card rounded-md p-[var(--spacing-system-xsf)] mb-[var(--spacing-system-xsf)]",
1094
1100
  className
1095
1101
  ),
1096
1102
  ...props,
1097
1103
  children: [
1098
- /* @__PURE__ */ jsx7(AlertCircle, { className: "w-6 h-6 text-white flex-shrink-0 mt-0.5" }),
1099
- /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-0.5 min-w-0 flex-1", children: [
1100
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between gap-2", children: [
1101
- /* @__PURE__ */ jsx7("span", { className: "text-lg leading-6 text-white font-['DM_Sans'] font-medium", children: title }),
1102
- details && /* @__PURE__ */ jsx7(
1103
- "button",
1104
- {
1105
- type: "button",
1106
- onClick: () => setIsExpanded((prev) => !prev),
1107
- className: "flex-shrink-0 p-0.5 rounded hover:bg-white/10 transition-colors",
1108
- "aria-expanded": isExpanded,
1109
- "aria-label": isExpanded ? "Collapse error details" : "Expand error details",
1110
- children: /* @__PURE__ */ jsx7(
1111
- ChevronDown,
1112
- {
1113
- className: cn(
1114
- "w-5 h-5 text-white transition-transform duration-200",
1115
- isExpanded && "rotate-180"
1116
- )
1117
- }
1118
- )
1119
- }
1120
- )
1121
- ] }),
1122
- details && isExpanded && /* @__PURE__ */ jsx7("span", { className: "text-sm leading-5 text-white font-['DM_Sans'] font-medium mt-1", children: details })
1123
- ] })
1104
+ /* @__PURE__ */ jsxs6(
1105
+ "button",
1106
+ {
1107
+ type: "button",
1108
+ onClick: hasDetails ? () => setExpanded((prev) => !prev) : void 0,
1109
+ "aria-expanded": hasDetails ? expanded : void 0,
1110
+ "aria-label": hasDetails ? expanded ? "Collapse details" : "Expand details" : void 0,
1111
+ disabled: !hasDetails,
1112
+ className: cn(
1113
+ "flex w-full items-center gap-[var(--spacing-system-xsf)] text-left",
1114
+ hasDetails ? "cursor-pointer" : "cursor-default"
1115
+ ),
1116
+ children: [
1117
+ /* @__PURE__ */ jsx7(AlertCircleIcon, { size: 16, className: cn("shrink-0", iconTint[type]) }),
1118
+ /* @__PURE__ */ jsx7(
1119
+ "span",
1120
+ {
1121
+ className: cn(
1122
+ "min-w-0 flex-1 font-mono text-sm font-medium uppercase leading-5 tracking-[-0.28px]",
1123
+ expanded ? "text-ods-text-primary" : "truncate text-ods-text-secondary"
1124
+ ),
1125
+ children: title
1126
+ }
1127
+ ),
1128
+ hasDetails && /* @__PURE__ */ jsx7(ExpandChevron, { expanded })
1129
+ ]
1130
+ }
1131
+ ),
1132
+ hasDetails && /* @__PURE__ */ jsx7("div", { style: containerStyle, children: /* @__PURE__ */ jsx7(
1133
+ "div",
1134
+ {
1135
+ ref: innerRef,
1136
+ className: "px-[var(--spacing-system-lf)] pt-[var(--spacing-system-xsf)]",
1137
+ children: /* @__PURE__ */ jsx7("p", { className: "text-sm font-medium leading-5 text-ods-text-primary", children: details })
1138
+ }
1139
+ ) })
1124
1140
  ]
1125
1141
  }
1126
1142
  );
@@ -1355,16 +1371,14 @@ import { Fragment, jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
1355
1371
  var ConnectionIndicator = ({ status }) => {
1356
1372
  const getStatusStyles = () => {
1357
1373
  switch (status) {
1358
- // ODS attention tokens — same scheme used by the rest of the chat
1359
- // shell (StatusBadge, error toast, etc.). Hex Tailwind palette
1360
- // (`bg-green-500` / `bg-red-500`) would diverge from the theme and
1361
- // is forbidden by the host's design-token policy.
1374
+ // ODS semantic status tokens — preset-defined utilities aliasing the same
1375
+ // green/yellow/red as the raw ods-attention palette (which is CSS-vars only).
1362
1376
  case "connected":
1363
- return "bg-ods-attention-green-success";
1377
+ return "bg-ods-success";
1364
1378
  case "connecting":
1365
- return "bg-ods-attention-yellow-warning animate-pulse";
1379
+ return "bg-ods-warning animate-pulse";
1366
1380
  case "disconnected":
1367
- return "bg-ods-attention-red-error";
1381
+ return "bg-ods-error";
1368
1382
  default:
1369
1383
  return "bg-ods-text-tertiary";
1370
1384
  }
@@ -3277,7 +3291,7 @@ var ChatMessageEnhanced = forwardRef11(
3277
3291
  ...props,
3278
3292
  children: /* @__PURE__ */ jsxs17("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] min-w-0", children: [
3279
3293
  /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
3280
- showAvatar && !isSystem && (!isUser && assistantIcon && !avatar ? (
3294
+ showAvatar && !isSystem && !(isUser && !avatar) && (!isUser && assistantIcon && !avatar ? (
3281
3295
  // Host-supplied brand icon (e.g. Mingo): render it directly,
3282
3296
  // no filled pill — the icon carries its own brand accent.
3283
3297
  /* @__PURE__ */ jsx21("div", { className: "flex items-center justify-center flex-shrink-0", children: assistantIcon })
@@ -4196,12 +4210,6 @@ ChatTicketItem.displayName = "ChatTicketItem";
4196
4210
 
4197
4211
  // src/components/chat/chat-ticket-list.tsx
4198
4212
  import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
4199
- function getMask(top, bottom) {
4200
- if (top && bottom) return "linear-gradient(to bottom, transparent, black 64px, black calc(100% - 64px), transparent)";
4201
- if (top) return "linear-gradient(to bottom, transparent, black 64px)";
4202
- if (bottom) return "linear-gradient(to bottom, black calc(100% - 64px), transparent)";
4203
- return "none";
4204
- }
4205
4213
  var ChatTicketList = React8.forwardRef(
4206
4214
  ({ className, tickets, onTicketClick, isLoading = false, skeletonCount = 5, ...props }, ref) => {
4207
4215
  const scrollRef = React8.useRef(null);
@@ -4227,34 +4235,48 @@ var ChatTicketList = React8.forwardRef(
4227
4235
  ] });
4228
4236
  }
4229
4237
  if (tickets.length === 0) return null;
4230
- const mask = getMask(fadeTop, fadeBottom);
4231
4238
  return /* @__PURE__ */ jsxs25("div", { ref, className: cn("flex flex-col gap-2 min-h-0", className), ...props, children: [
4232
4239
  /* @__PURE__ */ jsx29("p", { className: "text-h5 text-ods-text-secondary shrink-0", children: "Your Chats:" }),
4233
- /* @__PURE__ */ jsx29(
4240
+ /* @__PURE__ */ jsxs25(
4234
4241
  "div",
4235
4242
  {
4236
4243
  className: cn(
4237
- "border-x border-ods-border flex-1 min-h-0 overflow-hidden",
4244
+ "relative border-x border-ods-border flex-1 min-h-0 overflow-hidden",
4238
4245
  !fadeTop && "border-t rounded-t-md",
4239
4246
  !fadeBottom && "border-b rounded-b-md"
4240
4247
  ),
4241
- children: /* @__PURE__ */ jsx29(
4242
- "div",
4243
- {
4244
- ref: scrollRef,
4245
- className: "overflow-y-auto h-full",
4246
- onScroll: updateFade,
4247
- style: mask !== "none" ? { maskImage: mask, WebkitMaskImage: mask } : void 0,
4248
- children: tickets.map((ticket) => /* @__PURE__ */ jsx29(
4249
- ChatTicketItem,
4250
- {
4251
- ticket,
4252
- onClick: onTicketClick
4253
- },
4254
- ticket.id
4255
- ))
4256
- }
4257
- )
4248
+ children: [
4249
+ /* @__PURE__ */ jsx29("div", { ref: scrollRef, className: "overflow-y-auto h-full", onScroll: updateFade, children: tickets.map((ticket) => /* @__PURE__ */ jsx29(
4250
+ ChatTicketItem,
4251
+ {
4252
+ ticket,
4253
+ onClick: onTicketClick
4254
+ },
4255
+ ticket.id
4256
+ )) }),
4257
+ /* @__PURE__ */ jsx29(
4258
+ "div",
4259
+ {
4260
+ "aria-hidden": true,
4261
+ className: cn(
4262
+ "pointer-events-none absolute inset-x-0 top-0 h-16 transition-opacity duration-150",
4263
+ fadeTop ? "opacity-100" : "opacity-0"
4264
+ ),
4265
+ style: { background: "linear-gradient(0deg, transparent 0%, var(--color-bg) 100%)" }
4266
+ }
4267
+ ),
4268
+ /* @__PURE__ */ jsx29(
4269
+ "div",
4270
+ {
4271
+ "aria-hidden": true,
4272
+ className: cn(
4273
+ "pointer-events-none absolute inset-x-0 bottom-0 h-16 transition-opacity duration-150",
4274
+ fadeBottom ? "opacity-100" : "opacity-0"
4275
+ ),
4276
+ style: { background: "linear-gradient(180deg, transparent 0%, var(--color-bg) 100%)" }
4277
+ }
4278
+ )
4279
+ ]
4258
4280
  }
4259
4281
  )
4260
4282
  ] });
@@ -8616,7 +8638,7 @@ import {
8616
8638
 
8617
8639
  // src/components/ui/select.tsx
8618
8640
  import * as SelectPrimitive from "@radix-ui/react-select";
8619
- import { ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
8641
+ import { ChevronDown, ChevronUp } from "lucide-react";
8620
8642
  init_cn();
8621
8643
  import * as React27 from "react";
8622
8644
  import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime";
@@ -8681,7 +8703,7 @@ var SelectScrollDownButton = React27.forwardRef(({ className, ...props }, ref) =
8681
8703
  className
8682
8704
  ),
8683
8705
  ...props,
8684
- children: /* @__PURE__ */ jsx69(ChevronDown2, { className: "h-4 w-4" })
8706
+ children: /* @__PURE__ */ jsx69(ChevronDown, { className: "h-4 w-4" })
8685
8707
  }
8686
8708
  ));
8687
8709
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
@@ -11402,7 +11424,7 @@ DrawerFooter.displayName = "DrawerFooter";
11402
11424
  init_cn();
11403
11425
  import * as React46 from "react";
11404
11426
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
11405
- import { ChevronDown as ChevronDown3 } from "lucide-react";
11427
+ import { ChevronDown as ChevronDown2 } from "lucide-react";
11406
11428
  import { jsx as jsx92, jsxs as jsxs73 } from "react/jsx-runtime";
11407
11429
  var Accordion = AccordionPrimitive.Root;
11408
11430
  var AccordionItem = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx92(AccordionPrimitive.Item, { ref, className: cn("border-b", className), ...props }));
@@ -11418,7 +11440,7 @@ var AccordionTrigger = React46.forwardRef(({ className, children, ...props }, re
11418
11440
  ...props,
11419
11441
  children: [
11420
11442
  children,
11421
- /* @__PURE__ */ jsx92(ChevronDown3, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
11443
+ /* @__PURE__ */ jsx92(ChevronDown2, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
11422
11444
  ]
11423
11445
  }
11424
11446
  ) }));
@@ -11694,7 +11716,7 @@ init_cn();
11694
11716
  import * as React49 from "react";
11695
11717
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
11696
11718
  import { cva as cva6 } from "class-variance-authority";
11697
- import { ChevronDown as ChevronDown4 } from "lucide-react";
11719
+ import { ChevronDown as ChevronDown3 } from "lucide-react";
11698
11720
  import { jsx as jsx95, jsxs as jsxs76 } from "react/jsx-runtime";
11699
11721
  var NavigationMenu = React49.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs76(
11700
11722
  NavigationMenuPrimitive.Root,
@@ -11738,7 +11760,7 @@ var NavigationMenuTrigger = React49.forwardRef(({ className, children, ...props
11738
11760
  children,
11739
11761
  " ",
11740
11762
  /* @__PURE__ */ jsx95(
11741
- ChevronDown4,
11763
+ ChevronDown3,
11742
11764
  {
11743
11765
  className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
11744
11766
  "aria-hidden": "true"
@@ -12021,7 +12043,7 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
12021
12043
 
12022
12044
  // src/components/ui/release-changelog-section.tsx
12023
12045
  import { useState as useState30, useRef as useRef17, useEffect as useEffect20 } from "react";
12024
- import { ChevronDown as ChevronDown5 } from "lucide-react";
12046
+ import { ChevronDown as ChevronDown4 } from "lucide-react";
12025
12047
  import { jsx as jsx100, jsxs as jsxs79 } from "react/jsx-runtime";
12026
12048
  var PREVIEW_COLLAPSED_HEIGHT = 120;
12027
12049
  function ReleaseChangelogSection({
@@ -12059,7 +12081,7 @@ function ReleaseChangelogSection({
12059
12081
  /* @__PURE__ */ jsx100(Badge, { variant: "secondary", className: "ml-2", children: entries.length })
12060
12082
  ] }),
12061
12083
  /* @__PURE__ */ jsx100(
12062
- ChevronDown5,
12084
+ ChevronDown4,
12063
12085
  {
12064
12086
  className: `h-4 w-4 text-ods-text-secondary shrink-0 transition-transform duration-200 ${!collapsed ? "rotate-180" : ""}`
12065
12087
  }
@@ -12104,7 +12126,7 @@ function ReleaseChangelogSection({
12104
12126
  children: [
12105
12127
  /* @__PURE__ */ jsx100("span", { children: previewExpanded ? "Show less" : `Show ${entries.length - 1} more` }),
12106
12128
  /* @__PURE__ */ jsx100(
12107
- ChevronDown5,
12129
+ ChevronDown4,
12108
12130
  {
12109
12131
  className: `w-3.5 h-3.5 transition-transform duration-300 ${previewExpanded ? "rotate-180" : ""}`
12110
12132
  }
@@ -13184,11 +13206,11 @@ function BulletList({
13184
13206
  // src/components/ui/chevron-button.tsx
13185
13207
  init_cn();
13186
13208
  import * as React60 from "react";
13187
- import { ChevronUp as ChevronUp2, ChevronDown as ChevronDown6 } from "lucide-react";
13209
+ import { ChevronUp as ChevronUp2, ChevronDown as ChevronDown5 } from "lucide-react";
13188
13210
  import { jsx as jsx115 } from "react/jsx-runtime";
13189
13211
  var ChevronButton = React60.forwardRef(
13190
13212
  ({ className, direction = "down", size = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
13191
- const Icon2 = (isExpanded ? ChevronUp2 : ChevronDown6) || (direction === "up" ? ChevronUp2 : ChevronDown6);
13213
+ const Icon2 = (isExpanded ? ChevronUp2 : ChevronDown5) || (direction === "up" ? ChevronUp2 : ChevronDown5);
13192
13214
  const sizeClasses2 = {
13193
13215
  sm: "h-4 w-4",
13194
13216
  md: "h-5 w-5",
@@ -14654,7 +14676,7 @@ function AuthProvidersList({
14654
14676
  }
14655
14677
 
14656
14678
  // src/components/features/changelog-manager.tsx
14657
- import { Trash2 as Trash22, Plus as Plus3, ChevronDown as ChevronDown7, ChevronUp as ChevronUp3, Eye as Eye3, EyeOff } from "lucide-react";
14679
+ import { Trash2 as Trash22, Plus as Plus3, ChevronDown as ChevronDown6, ChevronUp as ChevronUp3, Eye as Eye3, EyeOff } from "lucide-react";
14658
14680
  import { useState as useState40, useEffect as useEffect27 } from "react";
14659
14681
  import { jsx as jsx136, jsxs as jsxs106 } from "react/jsx-runtime";
14660
14682
  function ChangelogManager({
@@ -14742,7 +14764,7 @@ function ChangelogManager({
14742
14764
  size: "icon",
14743
14765
  onClick: () => toggleExpanded(index),
14744
14766
  className: "shrink-0",
14745
- children: isExpanded ? /* @__PURE__ */ jsx136(ChevronUp3, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx136(ChevronDown7, { className: "h-4 w-4" })
14767
+ children: isExpanded ? /* @__PURE__ */ jsx136(ChevronUp3, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx136(ChevronDown6, { className: "h-4 w-4" })
14746
14768
  }
14747
14769
  ),
14748
14770
  /* @__PURE__ */ jsx136("div", { className: "flex-1 min-w-0", children: hasContent ? /* @__PURE__ */ jsx136("p", { className: "font-['DM_Sans'] font-medium text-[14px] text-ods-text-primary truncate", children: entry.title }) : /* @__PURE__ */ jsx136("p", { className: "font-['DM_Sans'] font-medium text-[14px] text-ods-text-secondary italic", children: "New entry (click to edit)" }) }),
@@ -18299,7 +18321,7 @@ var AIWarningsSection = ({
18299
18321
 
18300
18322
  // src/components/features/ai-enrich/AIEnrichSection.tsx
18301
18323
  init_button2();
18302
- import { CheckCircle as CheckCircle2, AlertCircle as AlertCircle2, Loader2 as Loader28, X as X9 } from "lucide-react";
18324
+ import { CheckCircle as CheckCircle2, AlertCircle, Loader2 as Loader28, X as X9 } from "lucide-react";
18303
18325
  import { jsx as jsx165, jsxs as jsxs129 } from "react/jsx-runtime";
18304
18326
  var AIEnrichSection = ({
18305
18327
  onEnrich,
@@ -18440,7 +18462,7 @@ var AIEnrichSection = ({
18440
18462
  "flex items-center gap-3 p-3 rounded-lg",
18441
18463
  status === "success" ? "bg-[--ods-attention-green-success]/10" : "bg-[--ods-attention-red-error]/10"
18442
18464
  ), children: [
18443
- status === "success" ? /* @__PURE__ */ jsx165(CheckCircle2, { className: "h-5 w-5 text-[--ods-attention-green-success]" }) : /* @__PURE__ */ jsx165(AlertCircle2, { className: "h-5 w-5 text-[--ods-attention-red-error]" }),
18465
+ status === "success" ? /* @__PURE__ */ jsx165(CheckCircle2, { className: "h-5 w-5 text-[--ods-attention-green-success]" }) : /* @__PURE__ */ jsx165(AlertCircle, { className: "h-5 w-5 text-[--ods-attention-red-error]" }),
18444
18466
  /* @__PURE__ */ jsx165("span", { className: cn(
18445
18467
  "text-sm font-medium",
18446
18468
  status === "success" ? "text-[--ods-attention-green-success]" : "text-[--ods-attention-red-error]"
@@ -19341,7 +19363,7 @@ function ViewToggle({
19341
19363
  // src/components/features/policy-configuration-panel.tsx
19342
19364
  init_cn();
19343
19365
  import { useRef as useRef26, useEffect as useEffect33, useState as useState51 } from "react";
19344
- import { ChevronDown as ChevronDown8 } from "lucide-react";
19366
+ import { ChevronDown as ChevronDown7 } from "lucide-react";
19345
19367
  init_button2();
19346
19368
 
19347
19369
  // src/components/dropdown-menu.tsx
@@ -19503,7 +19525,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
19503
19525
  Button,
19504
19526
  {
19505
19527
  variant: "outline",
19506
- rightIcon: /* @__PURE__ */ jsx179(ChevronDown8, { className: "h-6 w-6 text-ods-text-secondary" }),
19528
+ rightIcon: /* @__PURE__ */ jsx179(ChevronDown7, { className: "h-6 w-6 text-ods-text-secondary" }),
19507
19529
  className: "md:!text-sm bg-ods-card border border-ods-border rounded-md flex gap-2 items-center justify-between !px-2 py-2 w-[180px] hover:bg-ods-bg-hover transition-colors text-ods-text-primary h-auto",
19508
19530
  children: getApprovalLevelLabel(policy.approvalLevel, editMode)
19509
19531
  }
@@ -19559,7 +19581,7 @@ var CategorySection = ({
19559
19581
  Button,
19560
19582
  {
19561
19583
  variant: "outline",
19562
- rightIcon: /* @__PURE__ */ jsx179(ChevronDown8, { className: "h-6 w-6 text-ods-text-secondary" }),
19584
+ rightIcon: /* @__PURE__ */ jsx179(ChevronDown7, { className: "h-6 w-6 text-ods-text-secondary" }),
19563
19585
  className: "md:!text-sm bg-ods-card border border-ods-border rounded-md flex gap-2 items-center justify-between !px-2 py-2 w-[256px] hover:bg-ods-bg-hover transition-colors h-auto",
19564
19586
  children: /* @__PURE__ */ jsx179("span", { className: cn(
19565
19587
  "md:!text-sm font-medium",
@@ -19610,7 +19632,7 @@ var CategorySection = ({
19610
19632
  onCategoryToggle(category.id);
19611
19633
  },
19612
19634
  leftIcon: /* @__PURE__ */ jsx179(
19613
- ChevronDown8,
19635
+ ChevronDown7,
19614
19636
  {
19615
19637
  className: cn(
19616
19638
  "h-6 w-6 text-ods-text-primary transition-transform duration-300",
@@ -20050,6 +20072,7 @@ function NotificationsProvider({
20050
20072
  defaultShowDesktopPopups = false,
20051
20073
  onShowDesktopPopupsChange,
20052
20074
  onHistoryClick,
20075
+ historyHref,
20053
20076
  actions,
20054
20077
  hasMore = false,
20055
20078
  isLoadingMore = false,
@@ -20155,6 +20178,7 @@ function NotificationsProvider({
20155
20178
  setShowDesktopPopups,
20156
20179
  desktopPopupsConfigured,
20157
20180
  onHistoryClick,
20181
+ historyHref,
20158
20182
  hasMore,
20159
20183
  isLoadingMore,
20160
20184
  loadMore: onLoadMore,
@@ -20181,6 +20205,7 @@ function NotificationsProvider({
20181
20205
  toggle,
20182
20206
  setShowPopups,
20183
20207
  onHistoryClick,
20208
+ historyHref,
20184
20209
  hasMore,
20185
20210
  isLoadingMore,
20186
20211
  onLoadMore,
@@ -20202,7 +20227,7 @@ function useOptionalNotifications() {
20202
20227
 
20203
20228
  // src/components/features/notifications/notification-drawer.tsx
20204
20229
  import { useEffect as useEffect38, useRef as useRef29 } from "react";
20205
- init_button();
20230
+ init_button2();
20206
20231
  init_cn();
20207
20232
 
20208
20233
  // src/components/features/notifications/notification-tile.tsx
@@ -20329,6 +20354,7 @@ function NotificationDrawer({
20329
20354
  setShowDesktopPopups,
20330
20355
  desktopPopupsConfigured,
20331
20356
  onHistoryClick,
20357
+ historyHref,
20332
20358
  hasMore,
20333
20359
  isLoadingMore,
20334
20360
  loadMore,
@@ -20390,7 +20416,8 @@ function NotificationDrawer({
20390
20416
  onClick: onHistoryClick ? () => {
20391
20417
  onHistoryClick();
20392
20418
  close();
20393
- } : void 0
20419
+ } : void 0,
20420
+ historyHref
20394
20421
  }
20395
20422
  )
20396
20423
  ] })
@@ -20521,15 +20548,23 @@ function DesktopNotificationsToggleRow({ checked, onChange }) {
20521
20548
  ] })
20522
20549
  ] });
20523
20550
  }
20524
- function NotificationsHistoryButton({ onClick }) {
20551
+ function NotificationsHistoryButton({ onClick, historyHref }) {
20525
20552
  return /* @__PURE__ */ jsx184(
20526
- Button,
20553
+ SplitButton,
20527
20554
  {
20528
20555
  variant: "outline",
20529
20556
  fullWidth: true,
20530
- disabled: !onClick,
20531
20557
  onClick,
20532
- leftIcon: /* @__PURE__ */ jsx184(ClockHistoryIcon, { className: "!size-6 text-ods-text-secondary" }),
20558
+ mainDisabled: !onClick,
20559
+ leftIcon: /* @__PURE__ */ jsx184(ClockHistoryIcon, { className: "text-ods-text-secondary" }),
20560
+ groupAriaLabel: "Notifications history",
20561
+ iconAction: {
20562
+ icon: /* @__PURE__ */ jsx184(ArrowRightUpIcon, { className: "text-ods-text-secondary" }),
20563
+ "aria-label": "Open notifications history in a new tab",
20564
+ href: historyHref,
20565
+ openInNewTab: true,
20566
+ disabled: !historyHref
20567
+ },
20533
20568
  children: "Notifications History"
20534
20569
  }
20535
20570
  );
@@ -39555,4 +39590,4 @@ export {
39555
39590
  LogsList,
39556
39591
  assets
39557
39592
  };
39558
- //# sourceMappingURL=chunk-ZYZWD7LS.js.map
39593
+ //# sourceMappingURL=chunk-K2PFPBMF.js.map