@keboola/design 3.0.0 → 3.1.1

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.
package/dist/index.cjs CHANGED
@@ -7,6 +7,7 @@ var clsx = require('clsx');
7
7
  var tailwindMerge = require('tailwind-merge');
8
8
  var reactTooltip = require('@radix-ui/react-tooltip');
9
9
  var classVarianceAuthority = require('class-variance-authority');
10
+ var brandRegistry = require('@keboola/brand-registry');
10
11
  var jsxRuntime = require('react/jsx-runtime');
11
12
  var DropdownMenuPrimitive3 = require('@radix-ui/react-dropdown-menu');
12
13
  var ScrollAreaPrimitive2 = require('@radix-ui/react-scroll-area');
@@ -34,7 +35,6 @@ var BoringAvatar = require('boring-avatars');
34
35
  var reactProgress = require('@radix-ui/react-progress');
35
36
  var reactCollapsible = require('@radix-ui/react-collapsible');
36
37
  var sonner = require('sonner');
37
- var brandRegistry = require('@keboola/brand-registry');
38
38
  var ResizablePrimitive = require('react-resizable-panels');
39
39
  var RadixAvatar = require('@radix-ui/react-avatar');
40
40
  var RadixTabs = require('@radix-ui/react-tabs');
@@ -45,6 +45,7 @@ var colors3 = require('@keboola/tailwind-config/colors');
45
45
  var state = require('@codemirror/state');
46
46
  var nodeDiff3 = require('node-diff3');
47
47
  var reactForm = require('@tanstack/react-form');
48
+ var DOMPurify = require('dompurify');
48
49
  var autocomplete = require('@codemirror/autocomplete');
49
50
  var langJson = require('@codemirror/lang-json');
50
51
  var lint = require('@codemirror/lint');
@@ -96,6 +97,7 @@ var RadixAvatar__namespace = /*#__PURE__*/_interopNamespace(RadixAvatar);
96
97
  var RadixTabs__namespace = /*#__PURE__*/_interopNamespace(RadixTabs);
97
98
  var CodeMirror__default = /*#__PURE__*/_interopDefault(CodeMirror);
98
99
  var colors3__default = /*#__PURE__*/_interopDefault(colors3);
100
+ var DOMPurify__default = /*#__PURE__*/_interopDefault(DOMPurify);
99
101
 
100
102
  var __defProp = Object.defineProperty;
101
103
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -169,17 +171,49 @@ var keyCodes = {
169
171
  ESCAPE: "Escape",
170
172
  SPACE: " "
171
173
  };
174
+ var ThemeContext = react.createContext(null);
175
+
176
+ // src/components/internal/useIsLegacyBrand.ts
177
+ var useIsLegacyBrand = () => {
178
+ const context = react.use(ThemeContext);
179
+ return context === null || context.brand.id === brandRegistry.keboolaLegacy.id;
180
+ };
172
181
  var tooltipVariants = classVarianceAuthority.cva(
173
182
  [
174
183
  "tailwindcss-preflight",
175
184
  "tw-inline-block",
176
- "tw-rounded",
177
- "tw-bg-neutral-800",
178
- "tw-text-white",
179
185
  "tw-break-anywhere",
180
186
  "tw-max-h-96",
181
187
  "tw-overflow-y-auto",
182
- "tw-z-[1060]"
188
+ "tw-z-[1060]",
189
+ // legacy (dark) chrome — default
190
+ "tw-rounded",
191
+ "tw-bg-neutral-800",
192
+ "tw-text-white",
193
+ // argo chrome overrides — semantic floating-panel tokens
194
+ "data-[argo=true]:tw-rounded-2xl",
195
+ "data-[argo=true]:tw-border",
196
+ "data-[argo=true]:tw-border-solid",
197
+ "data-[argo=true]:tw-border-border",
198
+ "data-[argo=true]:tw-bg-popover",
199
+ "data-[argo=true]:tw-text-popover-foreground",
200
+ "data-[argo=true]:tw-shadow-md",
201
+ // argo open animation
202
+ "data-[argo=true]:data-[state=delayed-open]:tw-animate-in",
203
+ "data-[argo=true]:data-[state=instant-open]:tw-animate-in",
204
+ "data-[argo=true]:data-[state=delayed-open]:tw-fade-in-0",
205
+ "data-[argo=true]:data-[state=instant-open]:tw-fade-in-0",
206
+ "data-[argo=true]:data-[state=delayed-open]:tw-zoom-in-95",
207
+ "data-[argo=true]:data-[state=instant-open]:tw-zoom-in-95",
208
+ // argo closed animation
209
+ "data-[argo=true]:data-[state=closed]:tw-animate-out",
210
+ "data-[argo=true]:data-[state=closed]:tw-fade-out-0",
211
+ "data-[argo=true]:data-[state=closed]:tw-zoom-out-95",
212
+ // argo position animation
213
+ "data-[argo=true]:data-[side=bottom]:tw-slide-in-from-top-2",
214
+ "data-[argo=true]:data-[side=left]:tw-slide-in-from-right-2",
215
+ "data-[argo=true]:data-[side=right]:tw-slide-in-from-left-2",
216
+ "data-[argo=true]:data-[side=top]:tw-slide-in-from-bottom-2"
183
217
  ],
184
218
  {
185
219
  defaultVariants: {
@@ -212,6 +246,7 @@ var tooltipVariants = classVarianceAuthority.cva(
212
246
  var TooltipContent = ({
213
247
  className,
214
248
  variant,
249
+ argo,
215
250
  keepOpenOnPointerDownOutside = false,
216
251
  children,
217
252
  onPointerDownOutside,
@@ -221,6 +256,8 @@ var TooltipContent = ({
221
256
  placement = "right",
222
257
  ...rest
223
258
  }) => {
259
+ const isLegacy = useIsLegacyBrand();
260
+ const renderArgo = !isLegacy || argo === true;
224
261
  const handlePointerDownOutside = (event) => {
225
262
  if (keepOpenOnPointerDownOutside) event.preventDefault();
226
263
  onPointerDownOutside?.(event);
@@ -229,7 +266,8 @@ var TooltipContent = ({
229
266
  reactTooltip.Content,
230
267
  {
231
268
  ...rest,
232
- "data-tooltip-content": true,
269
+ "data-tooltip-content": renderArgo ? void 0 : true,
270
+ "data-argo": renderArgo,
233
271
  sideOffset,
234
272
  collisionPadding,
235
273
  onPointerDownOutside: handlePointerDownOutside,
@@ -289,6 +327,7 @@ var Tooltip = ({
289
327
  className,
290
328
  keepOpenOnTriggerClick = false,
291
329
  variant,
330
+ argo,
292
331
  placement = "right",
293
332
  forceHide = false,
294
333
  forceShow = false,
@@ -327,6 +366,7 @@ var Tooltip = ({
327
366
  {
328
367
  className,
329
368
  variant: resolvedVariant,
369
+ argo,
330
370
  placement,
331
371
  keepOpenOnPointerDownOutside: keepOpenOnTriggerClick,
332
372
  children: tooltip
@@ -386,26 +426,6 @@ var getIsMac = () => {
386
426
  return false;
387
427
  };
388
428
  var isMac = getIsMac();
389
-
390
- // src/utils/legacyIcon.tsx
391
- var isFAIconValue = (value) => typeof value === "string" || Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && typeof value[1] === "string";
392
- var registeredRenderer = null;
393
- var setLegacyIconRenderer = (renderer) => {
394
- registeredRenderer = renderer;
395
- };
396
- var warnedOnce = false;
397
- var renderLegacyIcon = (value) => {
398
- if (!isFAIconValue(value)) return value;
399
- if (registeredRenderer) return registeredRenderer(value);
400
- if (!warnedOnce) {
401
- warnedOnce = true;
402
- console.warn(
403
- "[@keboola/design] renderLegacyIcon received a legacy FontAwesome icon value but no renderer is registered. Call setLegacyIconRenderer at app boot. Returning null.",
404
- value
405
- );
406
- }
407
- return null;
408
- };
409
429
  var sha256 = async (text) => {
410
430
  const msgUint8 = new TextEncoder().encode(text);
411
431
  const hashBuffer = await crypto.subtle.digest("SHA-256", msgUint8);
@@ -415,10 +435,7 @@ var sha256 = async (text) => {
415
435
  var useSHA256 = (text) => {
416
436
  const [hash, setHash] = react.useState("");
417
437
  react.useEffect(() => {
418
- if (!text) {
419
- setHash("");
420
- return;
421
- }
438
+ if (!text) return;
422
439
  let cancelled = false;
423
440
  sha256(text).then((h) => {
424
441
  if (!cancelled) setHash(h);
@@ -427,7 +444,7 @@ var useSHA256 = (text) => {
427
444
  cancelled = true;
428
445
  };
429
446
  }, [text]);
430
- return hash;
447
+ return text ? hash : "";
431
448
  };
432
449
  var Keboola = react.forwardRef(
433
450
  ({ size = 24, color = "currentColor", className, children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -636,6 +653,8 @@ var argoVariants = classVarianceAuthority.cva(
636
653
  "tw-bg-clip-padding",
637
654
  // anchor support
638
655
  "!tw-no-underline",
656
+ "aria-disabled:tw-cursor-not-allowed",
657
+ "aria-disabled:tw-opacity-50",
639
658
  // icon
640
659
  "tw-shrink-0",
641
660
  "[&_svg]:tw-pointer-events-none",
@@ -738,14 +757,11 @@ var Button = ({
738
757
  block = false,
739
758
  ...buttonProps
740
759
  }) => {
760
+ const isLegacy = useIsLegacyBrand();
761
+ const renderArgo = !isLegacy || argo;
741
762
  const Comp = asChild ? reactSlot.Root : "button";
742
763
  const isIconOnly = String(size).startsWith("icon");
743
- const classNames = argo ? argoVariants({ variant, size, block, className }) : variants({
744
- size,
745
- variant,
746
- block,
747
- className
748
- });
764
+ const classNames = renderArgo ? argoVariants({ variant, size, block, className }) : variants({ size, variant, block, className });
749
765
  const handleClick = (event) => {
750
766
  const isAnchor = event.currentTarget.tagName === "A";
751
767
  if (isAnchor && disabled) {
@@ -796,11 +812,7 @@ var buttonInlineVariants = classVarianceAuthority.cva(
796
812
  },
797
813
  variants: {
798
814
  color: {
799
- link: [
800
- "tw-text-secondary-500",
801
- "hover:tw-text-secondary-600",
802
- "[&_svg]:tw-text-secondary-500"
803
- ],
815
+ link: ["tw-text-primary", "hover:tw-text-primary/90", "[&_svg]:tw-text-primary"],
804
816
  dark: ["tw-text-neutral-800 [&_svg]:tw-text-neutral-400"],
805
817
  danger: ["tw-text-error-500 [&_svg]:tw-text-error-500"],
806
818
  muted: ["tw-text-muted-foreground [&_svg]:tw-text-muted-foreground"],
@@ -1039,17 +1051,16 @@ var itemVariants = cn(
1039
1051
  "group-data-[variant=default]/dropdown-menu-content:hover:tw-bg-neutral-100",
1040
1052
  "group-data-[variant=default]/dropdown-menu-content:hover:tw-text-neutral-900",
1041
1053
  "group-data-[variant=argo]/dropdown-menu-content:tw-rounded-md",
1042
- "group-data-[variant=argo]/dropdown-menu-content:tw-text-slate-800",
1043
- "group-data-[variant=argo]/dropdown-menu-content:focus:tw-text-slate-800",
1044
- "group-data-[variant=argo]/dropdown-menu-content:focus:tw-bg-sky-100",
1045
- "group-data-[variant=argo]/dropdown-menu-content:hover:tw-text-slate-800",
1046
- "group-data-[variant=argo]/dropdown-menu-content:hover:tw-bg-sky-100"
1054
+ "group-data-[variant=argo]/dropdown-menu-content:tw-text-popover-foreground",
1055
+ "group-data-[variant=argo]/dropdown-menu-content:focus:tw-text-accent-foreground",
1056
+ "group-data-[variant=argo]/dropdown-menu-content:focus:tw-bg-accent",
1057
+ "group-data-[variant=argo]/dropdown-menu-content:hover:tw-text-accent-foreground",
1058
+ "group-data-[variant=argo]/dropdown-menu-content:hover:tw-bg-accent"
1047
1059
  );
1048
1060
  var contentVariants = cn(
1049
1061
  "tailwindcss-preflight",
1050
1062
  "tw-group/dropdown-menu-content",
1051
1063
  "tw-z-[1040]",
1052
- "tw-bg-white",
1053
1064
  // positioning
1054
1065
  "tw-flex",
1055
1066
  "tw-flex-col",
@@ -1060,8 +1071,16 @@ var contentVariants = cn(
1060
1071
  // border
1061
1072
  "tw-border",
1062
1073
  "tw-shadow-md",
1074
+ // Legacy surface — fixed white panel.
1063
1075
  "data-[variant=default]:tw-rounded-md",
1076
+ "data-[variant=default]:tw-bg-white",
1077
+ "data-[variant=default]:tw-border-neutral-100",
1078
+ "data-[variant=default]:tw-text-neutral-800",
1079
+ // Argo surface — semantic popover tokens (brand + dark aware).
1064
1080
  "data-[variant=argo]:tw-rounded-2xl",
1081
+ "data-[variant=argo]:tw-bg-popover",
1082
+ "data-[variant=argo]:tw-text-popover-foreground",
1083
+ "data-[variant=argo]:tw-border-border",
1065
1084
  // animations
1066
1085
  "data-[state=open]:tw-animate-in",
1067
1086
  "data-[state=open]:tw-fade-in-0",
@@ -1112,7 +1131,6 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
1112
1131
  orientation,
1113
1132
  className: cn(
1114
1133
  "tw-flex tw-touch-none tw-select-none tw-transition-color",
1115
- '[data-state="hidden"]:tw-bg-pink-500',
1116
1134
  {
1117
1135
  "tw-h-full tw-w-2.5 tw-p-px": orientation === "vertical",
1118
1136
  "tw-h-2.5 tw-flex-col tw-p-px": orientation === "horizontal"
@@ -1127,8 +1145,8 @@ var ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PUR
1127
1145
  "tw-relative",
1128
1146
  "tw-flex-1",
1129
1147
  "tw-rounded-full",
1130
- "tw-bg-neutral-200",
1131
- "hover:tw-bg-neutral-400"
1148
+ "tw-bg-border",
1149
+ "hover:tw-bg-muted-foreground"
1132
1150
  )
1133
1151
  }
1134
1152
  )
@@ -1223,7 +1241,7 @@ var DropdownMenuItem = ({
1223
1241
  ...props
1224
1242
  }) => {
1225
1243
  const Comp = asChild ? reactSlot.Root : "div";
1226
- const adornment = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) : renderLegacyIcon(icon);
1244
+ const adornment = isLoading ? /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" }) : icon;
1227
1245
  const handleOnSelect = (event) => {
1228
1246
  if (asModalTrigger) event.preventDefault();
1229
1247
  onSelect?.(event);
@@ -1349,7 +1367,7 @@ var DropdownMenuRadioItem = ({
1349
1367
  ...props,
1350
1368
  children: [
1351
1369
  isAtStart && indicatorEle,
1352
- icon && /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: iconClassName, children: renderLegacyIcon(icon) }),
1370
+ icon && /* @__PURE__ */ jsxRuntime.jsx(ItemIcon, { className: iconClassName, children: icon }),
1353
1371
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-flex tw-min-w-0 tw-flex-1 tw-items-center tw-gap-2", children }),
1354
1372
  !isAtStart && indicatorEle
1355
1373
  ]
@@ -1414,10 +1432,12 @@ var DropdownMenuTrigger = ({
1414
1432
  var DropdownMenu = ({
1415
1433
  // change a default value to false, for modal property, as it is not used in most cases
1416
1434
  modal = false,
1417
- variant = "default",
1435
+ variant,
1418
1436
  ...props
1419
1437
  }) => {
1420
- const contextValue = react.useMemo(() => ({ variant }), [variant]);
1438
+ const isLegacy = useIsLegacyBrand();
1439
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : "default";
1440
+ const contextValue = react.useMemo(() => ({ variant: effectiveVariant }), [effectiveVariant]);
1421
1441
  return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContext, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive3.Root, { ...props, modal }) });
1422
1442
  };
1423
1443
  DropdownMenu.Trigger = DropdownMenuTrigger;
@@ -1450,33 +1470,37 @@ var SplitButtonBase = ({
1450
1470
  icon,
1451
1471
  children,
1452
1472
  ...rest
1453
- }) => /* @__PURE__ */ jsxRuntime.jsxs(ButtonGroup, { space: "compact", children: [
1454
- /* @__PURE__ */ jsxRuntime.jsxs(Button, { ...rest, ref, disabled, variant, size, argo, children: [
1455
- !rest.isLoading && renderLegacyIcon(icon),
1456
- children
1457
- ] }),
1458
- actions && /* @__PURE__ */ jsxRuntime.jsxs(
1459
- DropdownMenu,
1460
- {
1461
- open: isActionsOpen,
1462
- onOpenChange: onActionsOpenChange,
1463
- variant: argo ? "argo" : "default",
1464
- children: [
1465
- /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxRuntime.jsx(
1466
- Button,
1467
- {
1468
- argo,
1469
- size: iconSizeMap[size],
1470
- variant,
1471
- "aria-label": "Additional actions",
1472
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: "tw-size-5" })
1473
- }
1474
- ) }),
1475
- /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Content, { align: "end", children: actions })
1476
- ]
1477
- }
1478
- )
1479
- ] });
1473
+ }) => {
1474
+ const isLegacy = useIsLegacyBrand();
1475
+ const renderArgo = !isLegacy || argo;
1476
+ return /* @__PURE__ */ jsxRuntime.jsxs(ButtonGroup, { space: "compact", children: [
1477
+ /* @__PURE__ */ jsxRuntime.jsxs(Button, { ...rest, ref, disabled, variant, size, argo, children: [
1478
+ !rest.isLoading && icon,
1479
+ children
1480
+ ] }),
1481
+ actions && /* @__PURE__ */ jsxRuntime.jsxs(
1482
+ DropdownMenu,
1483
+ {
1484
+ open: isActionsOpen,
1485
+ onOpenChange: onActionsOpenChange,
1486
+ variant: renderArgo ? "argo" : "default",
1487
+ children: [
1488
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxRuntime.jsx(
1489
+ Button,
1490
+ {
1491
+ argo,
1492
+ size: iconSizeMap[size],
1493
+ variant,
1494
+ "aria-label": "Additional actions",
1495
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: "tw-size-5" })
1496
+ }
1497
+ ) }),
1498
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu.Content, { align: "end", children: actions })
1499
+ ]
1500
+ }
1501
+ )
1502
+ ] });
1503
+ };
1480
1504
  var SplitButton = Object.assign(SplitButtonBase, {
1481
1505
  Action: DropdownMenu.Item,
1482
1506
  Actions: DropdownMenu.Group
@@ -1500,7 +1524,7 @@ var MultiActionButton = ({
1500
1524
  variant: "invisible",
1501
1525
  size: "icon",
1502
1526
  "data-testid": dataTestId,
1503
- children: !isLoading && renderLegacyIcon(icon)
1527
+ children: !isLoading && icon
1504
1528
  }
1505
1529
  ) });
1506
1530
  var MultiActionButtonGroup = ({ children, className }) => /* @__PURE__ */ jsxRuntime.jsx(ButtonGroup, { className: cn("tw-text-nowrap", className), children });
@@ -1609,6 +1633,33 @@ var toggleVariants = classVarianceAuthority.cva(
1609
1633
  // hover on pressed state
1610
1634
  "not-disabled:hover:aria-pressed:tw-bg-secondary-200",
1611
1635
  "[&_svg]:not-disabled:hover:aria-pressed:tw-text-secondary-600"
1636
+ ],
1637
+ argo: [
1638
+ // chrome — semantic tokens, opt-in via variant="argo"
1639
+ "tw-border-border",
1640
+ "tw-rounded-lg",
1641
+ "tw-text-foreground",
1642
+ // typography — override base uppercase / tw-text-xs / tracking from outer class list
1643
+ // so argo matches `Button argo` (sentence case, sm text)
1644
+ "tw-normal-case",
1645
+ "tw-tracking-normal",
1646
+ "tw-text-sm",
1647
+ // default state - transparent background
1648
+ "tw-bg-transparent",
1649
+ "[&_svg]:tw-text-muted-foreground",
1650
+ // hover state (off only — explicit so pressed doesn't double-up) — muted bg
1651
+ // is visibly subtler than the accent pressed bg, so hover and active read distinct.
1652
+ "not-disabled:hover:tw-border-border",
1653
+ "data-[state=off]:not-disabled:hover:tw-bg-muted",
1654
+ "data-[state=off]:not-disabled:hover:[&_svg]:tw-text-primary",
1655
+ // pressed state — stronger accent bg; hover-on keeps the same colour to avoid flicker
1656
+ "data-[state=on]:tw-bg-accent",
1657
+ "data-[state=on]:[&_svg]:tw-text-primary",
1658
+ // focus-visible ring (overrides base outline + shadow)
1659
+ "!tw-outline-none",
1660
+ "focus-visible:!tw-shadow-none",
1661
+ "focus-visible:tw-ring-2",
1662
+ "focus-visible:tw-ring-primary/50"
1612
1663
  ]
1613
1664
  },
1614
1665
  size: {
@@ -1624,7 +1675,27 @@ var toggleVariants = classVarianceAuthority.cva(
1624
1675
  compoundVariants: [
1625
1676
  { iconOnly: true, size: "small", className: "tw-size-8" },
1626
1677
  { iconOnly: true, size: "medium", className: "tw-size-10" },
1627
- { iconOnly: true, size: "large", className: "tw-size-12" }
1678
+ { iconOnly: true, size: "large", className: "tw-size-12" },
1679
+ // argo sizes match `Button argo` (small 32px / medium 36px / large 40px)
1680
+ // and `InputGroup argo` heights so argo Toggle aligns vertically next to them.
1681
+ {
1682
+ variant: "argo",
1683
+ size: "small",
1684
+ className: "tw-max-h-8 tw-min-h-8 tw-px-3 tw-py-2"
1685
+ },
1686
+ {
1687
+ variant: "argo",
1688
+ size: "medium",
1689
+ className: "tw-max-h-9 tw-min-h-9 tw-px-4 tw-py-2"
1690
+ },
1691
+ {
1692
+ variant: "argo",
1693
+ size: "large",
1694
+ className: "tw-max-h-10 tw-min-h-10 tw-px-6 tw-py-2.5"
1695
+ },
1696
+ { variant: "argo", iconOnly: true, size: "small", className: "tw-size-8" },
1697
+ { variant: "argo", iconOnly: true, size: "medium", className: "tw-size-9" },
1698
+ { variant: "argo", iconOnly: true, size: "large", className: "tw-size-10" }
1628
1699
  ],
1629
1700
  defaultVariants: {
1630
1701
  variant: "ai",
@@ -1655,7 +1726,7 @@ var Toggle = ({
1655
1726
  disabled,
1656
1727
  children: [
1657
1728
  badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-absolute tw-right-0 tw-top-0 -tw-translate-y-1/2 tw-translate-x-1/4", children: badge }),
1658
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-inline-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-align-middle [&_svg:not([class*='tw-size-'])]:tw-size-4", children: renderLegacyIcon(icon) }),
1729
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-inline-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-align-middle [&_svg:not([class*='tw-size-'])]:tw-size-4", children: icon }),
1659
1730
  isAiVariant ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-bg-gradient-to-br tw-from-secondary-700 tw-to-purple-700 tw-bg-clip-text tw-text-transparent", children }) : children
1660
1731
  ]
1661
1732
  }
@@ -1869,7 +1940,7 @@ var Link = ({
1869
1940
  rel,
1870
1941
  onClick: handleOnClick,
1871
1942
  className: cn(
1872
- "tw-text-secondary-500 tw-underline hover:tw-text-secondary-600 hover:tw-no-underline",
1943
+ "tw-text-primary tw-underline hover:tw-text-primary/90 hover:tw-no-underline",
1873
1944
  className
1874
1945
  ),
1875
1946
  children
@@ -1896,6 +1967,8 @@ var ModalBody = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
1896
1967
  ...props
1897
1968
  }
1898
1969
  );
1970
+ var ModalArgoContext = react.createContext(false);
1971
+ var useModalArgo = () => react.use(ModalArgoContext);
1899
1972
  var ModalOverlay = ({
1900
1973
  ref,
1901
1974
  className,
@@ -1932,8 +2005,11 @@ var ModalContent = ({
1932
2005
  className,
1933
2006
  children,
1934
2007
  onEscapeKeyDown,
2008
+ argo,
1935
2009
  ...props
1936
2010
  }) => {
2011
+ const isLegacy = useIsLegacyBrand();
2012
+ const renderArgo = !isLegacy || argo === true;
1937
2013
  const handleEscapeKeyDown = (event) => {
1938
2014
  event.stopPropagation();
1939
2015
  onEscapeKeyDown?.(event);
@@ -1942,6 +2018,7 @@ var ModalContent = ({
1942
2018
  DialogPrimitive.Content,
1943
2019
  {
1944
2020
  "aria-describedby": void 0,
2021
+ "data-argo": renderArgo,
1945
2022
  className: cn(
1946
2023
  // reset
1947
2024
  "tailwindcss-preflight",
@@ -1960,7 +2037,7 @@ var ModalContent = ({
1960
2037
  "tw-flex-col",
1961
2038
  "tw-gap-4",
1962
2039
  "tw-rounded-lg",
1963
- "tw-bg-white",
2040
+ "tw-bg-surface",
1964
2041
  "tw-px-7",
1965
2042
  // 4 px less padding to prevent input focus rings/outlines from being clipped by overflow
1966
2043
  "tw-py-8",
@@ -1985,7 +2062,7 @@ var ModalContent = ({
1985
2062
  ),
1986
2063
  onEscapeKeyDown: handleEscapeKeyDown,
1987
2064
  ...props,
1988
- children
2065
+ children: /* @__PURE__ */ jsxRuntime.jsx(ModalArgoContext, { value: renderArgo, children })
1989
2066
  }
1990
2067
  ) }) });
1991
2068
  };
@@ -2000,34 +2077,37 @@ var ModalFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
2000
2077
  ...props
2001
2078
  }
2002
2079
  );
2003
- var ModalCloseIcon = ({ className, ...rest }) => /* @__PURE__ */ jsxRuntime.jsxs(
2004
- DialogPrimitive.Close,
2005
- {
2006
- ...rest,
2007
- className: cn(
2008
- "tw-group/modal-close-icon",
2009
- "tw-flex",
2010
- "tw-items-center",
2011
- "tw-justify-center",
2012
- "focus:tw-outline-none",
2013
- className
2014
- ),
2015
- children: [
2016
- /* @__PURE__ */ jsxRuntime.jsx(
2017
- icons_exports.X,
2018
- {
2019
- className: cn(
2020
- "tw-size-4",
2021
- "tw-text-neutral-400",
2022
- "group-focus/modal-close-icon:tw-text-neutral-500",
2023
- "group-hover/modal-close-icon:tw-text-neutral-500"
2024
- )
2025
- }
2080
+ var ModalCloseIcon = ({ className, ...rest }) => {
2081
+ const argo = useModalArgo();
2082
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2083
+ DialogPrimitive.Close,
2084
+ {
2085
+ ...rest,
2086
+ className: cn(
2087
+ "tw-group/modal-close-icon",
2088
+ "tw-flex",
2089
+ "tw-items-center",
2090
+ "tw-justify-center",
2091
+ "focus:tw-outline-none",
2092
+ className
2026
2093
  ),
2027
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-sr-only", children: "Close" })
2028
- ]
2029
- }
2030
- );
2094
+ children: [
2095
+ /* @__PURE__ */ jsxRuntime.jsx(
2096
+ icons_exports.X,
2097
+ {
2098
+ className: cn(
2099
+ "tw-size-4",
2100
+ argo ? "tw-text-muted-foreground" : "tw-text-neutral-400",
2101
+ argo ? "group-focus/modal-close-icon:tw-text-foreground" : "group-focus/modal-close-icon:tw-text-neutral-500",
2102
+ argo ? "group-hover/modal-close-icon:tw-text-foreground" : "group-hover/modal-close-icon:tw-text-neutral-500"
2103
+ )
2104
+ }
2105
+ ),
2106
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-sr-only", children: "Close" })
2107
+ ]
2108
+ }
2109
+ );
2110
+ };
2031
2111
  var ModalDescription = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
2032
2112
  DialogPrimitive__namespace.Description,
2033
2113
  {
@@ -2050,37 +2130,40 @@ var ModalHeader = ({
2050
2130
  hideCloseIcon = false,
2051
2131
  children,
2052
2132
  ...props
2053
- }) => /* @__PURE__ */ jsxRuntime.jsxs(
2054
- "div",
2055
- {
2056
- className: cn(
2057
- "tw-flex",
2058
- "tw-flex-col",
2059
- "tw-gap-3",
2060
- "tw-pb-5",
2061
- // Show border separator only if body is visible
2062
- "[&:has(~[data-slot=modal-body])]:tw-border-b",
2063
- // Tabs render their own bottom border — drop header border + padding to avoid the double-line look
2064
- "[&:has(~[data-slot=modal-body]_[data-slot=tabs-root])]:!tw-border-b-0",
2065
- "[&:has(~[data-slot=modal-body]_[data-slot=tabs-root])]:!tw-pb-0",
2066
- "tw-border-neutral-150",
2067
- "tw-px-1",
2068
- // 4 px to complement ModalContent and still keep input focus outline visible
2069
- className
2070
- ),
2071
- ...props,
2072
- children: [
2073
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-flex-col", children: [
2074
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-justify-end tw-gap-2", children: [
2075
- title && /* @__PURE__ */ jsxRuntime.jsx(ModalTitle, { children: title }),
2076
- !hideCloseIcon && /* @__PURE__ */ jsxRuntime.jsx(ModalCloseIcon, {})
2133
+ }) => {
2134
+ const argo = useModalArgo();
2135
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2136
+ "div",
2137
+ {
2138
+ className: cn(
2139
+ "tw-flex",
2140
+ "tw-flex-col",
2141
+ "tw-gap-3",
2142
+ "tw-pb-5",
2143
+ // Show border separator only if body is visible
2144
+ "[&:has(~[data-slot=modal-body])]:tw-border-b",
2145
+ // Tabs render their own bottom border — drop header border + padding to avoid the double-line look
2146
+ "[&:has(~[data-slot=modal-body]_[data-slot=tabs-root])]:!tw-border-b-0",
2147
+ "[&:has(~[data-slot=modal-body]_[data-slot=tabs-root])]:!tw-pb-0",
2148
+ argo ? "tw-border-border" : "tw-border-neutral-150",
2149
+ "tw-px-1",
2150
+ // 4 px to complement ModalContent and still keep input focus outline visible
2151
+ className
2152
+ ),
2153
+ ...props,
2154
+ children: [
2155
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-flex-col", children: [
2156
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-justify-end tw-gap-2", children: [
2157
+ title && /* @__PURE__ */ jsxRuntime.jsx(ModalTitle, { children: title }),
2158
+ !hideCloseIcon && /* @__PURE__ */ jsxRuntime.jsx(ModalCloseIcon, {})
2159
+ ] }),
2160
+ description && /* @__PURE__ */ jsxRuntime.jsx(ModalDescription, { children: description })
2077
2161
  ] }),
2078
- description && /* @__PURE__ */ jsxRuntime.jsx(ModalDescription, { children: description })
2079
- ] }),
2080
- children
2081
- ]
2082
- }
2083
- );
2162
+ children
2163
+ ]
2164
+ }
2165
+ );
2166
+ };
2084
2167
  var NAMED_COLORS = /* @__PURE__ */ new Set(["orange", "blue", "red", "green", "gray", "violet"]);
2085
2168
  var ModalIcon = (props) => {
2086
2169
  const [hasImageError, setHasImageError] = react.useState(false);
@@ -2131,7 +2214,7 @@ var ModalIcon = (props) => {
2131
2214
  '[&_svg:not([class*="tw-size-"])]:tw-size-6',
2132
2215
  "[&_svg]:tw-aspect-square"
2133
2216
  ),
2134
- children: renderLegacyIcon(props.icon)
2217
+ children: props.icon
2135
2218
  }
2136
2219
  )
2137
2220
  }
@@ -2284,10 +2367,13 @@ var FullScreenModalRoot = ({
2284
2367
  className,
2285
2368
  lockBodyScroll = true,
2286
2369
  onEscapeKeyDown,
2287
- argo = false,
2370
+ onKeyDown,
2371
+ argo,
2288
2372
  ...props
2289
2373
  }) => {
2290
2374
  const modalRef = react.useRef(null);
2375
+ const isLegacy = useIsLegacyBrand();
2376
+ const renderArgo = !isLegacy || argo === true;
2291
2377
  react.useEffect(() => {
2292
2378
  const modalElement = modalRef.current;
2293
2379
  if (lockBodyScroll) {
@@ -2303,6 +2389,7 @@ var FullScreenModalRoot = ({
2303
2389
  };
2304
2390
  }, [lockBodyScroll]);
2305
2391
  const handleKeyDown2 = (event) => {
2392
+ onKeyDown?.(event);
2306
2393
  if (event.key === "Escape" && !event.defaultPrevented) {
2307
2394
  onEscapeKeyDown?.(event);
2308
2395
  }
@@ -2311,12 +2398,13 @@ var FullScreenModalRoot = ({
2311
2398
  /* @__PURE__ */ jsxRuntime.jsx(
2312
2399
  "div",
2313
2400
  {
2401
+ ...props,
2314
2402
  ref: modalRef,
2315
2403
  role: "dialog",
2316
2404
  "aria-modal": "true",
2317
2405
  tabIndex: -1,
2318
2406
  "data-fullscreen-modal": true,
2319
- "data-argo": argo,
2407
+ "data-argo": renderArgo,
2320
2408
  onKeyDown: handleKeyDown2,
2321
2409
  className: cn(
2322
2410
  "tailwindcss-preflight",
@@ -2330,7 +2418,6 @@ var FullScreenModalRoot = ({
2330
2418
  "focus-visible:tw-outline-none",
2331
2419
  className
2332
2420
  ),
2333
- ...props,
2334
2421
  children
2335
2422
  }
2336
2423
  ),
@@ -2364,8 +2451,14 @@ var sheetContentVariants = classVarianceAuthority.cva(
2364
2451
  "tw-z-[1051]",
2365
2452
  "tw-flex",
2366
2453
  "tw-flex-col",
2367
- "tw-bg-white",
2454
+ "tw-bg-surface",
2368
2455
  "tw-shadow-lg",
2456
+ // argo chrome overrides
2457
+ "data-[argo=true]:tw-border",
2458
+ "data-[argo=true]:tw-border-border",
2459
+ "data-[argo=true]:focus-visible:tw-outline-none",
2460
+ "data-[argo=true]:focus-visible:tw-ring-2",
2461
+ "data-[argo=true]:focus-visible:tw-ring-primary/50",
2369
2462
  "tw-ease-in-out",
2370
2463
  // opening animation
2371
2464
  "data-[state=open]:tw-duration-200",
@@ -2388,14 +2481,16 @@ var sheetContentVariants = classVarianceAuthority.cva(
2388
2481
  "tw-top-0",
2389
2482
  "tw-h-auto",
2390
2483
  "data-[state=closed]:tw-slide-out-to-top",
2391
- "data-[state=open]:tw-slide-in-from-top"
2484
+ "data-[state=open]:tw-slide-in-from-top",
2485
+ "data-[argo=true]:tw-rounded-b-lg"
2392
2486
  ],
2393
2487
  right: [
2394
2488
  "tw-inset-y-0",
2395
2489
  "tw-right-0",
2396
2490
  "tw-h-full",
2397
2491
  "data-[state=closed]:tw-slide-out-to-right",
2398
- "data-[state=open]:tw-slide-in-from-right"
2492
+ "data-[state=open]:tw-slide-in-from-right",
2493
+ "data-[argo=true]:tw-rounded-l-lg"
2399
2494
  ],
2400
2495
  bottom: [
2401
2496
  "tw-inset-x-0",
@@ -2403,15 +2498,17 @@ var sheetContentVariants = classVarianceAuthority.cva(
2403
2498
  "tw-h-auto",
2404
2499
  "data-[state=closed]:tw-slide-out-to-bottom",
2405
2500
  "data-[state=open]:tw-slide-in-from-bottom",
2406
- "tw-drop-shadow-2xl"
2501
+ "tw-drop-shadow-2xl",
2407
2502
  // standard tailwindcss shadow is invisible for a bottom sheet because of positioning
2503
+ "data-[argo=true]:tw-rounded-t-lg"
2408
2504
  ],
2409
2505
  left: [
2410
2506
  "tw-inset-y-0",
2411
2507
  "tw-left-0",
2412
2508
  "tw-h-full",
2413
2509
  "data-[state=closed]:tw-slide-out-to-left",
2414
- "data-[state=open]:tw-slide-in-from-left"
2510
+ "data-[state=open]:tw-slide-in-from-left",
2511
+ "data-[argo=true]:tw-rounded-r-lg"
2415
2512
  ]
2416
2513
  }
2417
2514
  }
@@ -2427,8 +2524,11 @@ var SheetContent = ({
2427
2524
  onPointerDownOutside,
2428
2525
  onInteractOutside,
2429
2526
  container,
2527
+ argo,
2430
2528
  ...props
2431
2529
  }) => {
2530
+ const isLegacy = useIsLegacyBrand();
2531
+ const renderArgo = !isLegacy || argo === true;
2432
2532
  const handleOnPointerDownOutside = (event) => {
2433
2533
  if (keepOpenOnPointerDownOutside) event.preventDefault();
2434
2534
  onPointerDownOutside?.(event);
@@ -2448,6 +2548,7 @@ var SheetContent = ({
2448
2548
  onPointerDownOutside: handleOnPointerDownOutside,
2449
2549
  onInteractOutside: handleOnInteractOutside,
2450
2550
  "data-side": side,
2551
+ "data-argo": renderArgo,
2451
2552
  children
2452
2553
  }
2453
2554
  )
@@ -2475,7 +2576,7 @@ var SheetHeader = ({
2475
2576
  ] });
2476
2577
  };
2477
2578
  var SheetTitle = ({ className, visuallyHidden = false, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive.Title, { className: cn({ "tw-sr-only": visuallyHidden }, className), ...props });
2478
- var Sheet = ({ ...props }) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive.Root, { ...props });
2579
+ var Sheet = (props) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive.Root, { ...props });
2479
2580
  Sheet.Close = DialogPrimitive.Close;
2480
2581
  Sheet.Trigger = DialogPrimitive.Trigger;
2481
2582
  Sheet.Content = SheetContent;
@@ -2501,11 +2602,7 @@ var variants3 = classVarianceAuthority.cva(
2501
2602
  "tw-box-border",
2502
2603
  "tw-border",
2503
2604
  "tw-border-solid",
2504
- "tw-border-neutral-100",
2505
2605
  "tw-shadow-lg",
2506
- // colors
2507
- "tw-bg-white",
2508
- "tw-text-neutral-800",
2509
2606
  // open animation
2510
2607
  "data-[state=open]:tw-animate-in",
2511
2608
  "data-[state=open]:tw-fade-in-0",
@@ -2530,8 +2627,10 @@ var variants3 = classVarianceAuthority.cva(
2530
2627
  },
2531
2628
  variants: {
2532
2629
  variant: {
2533
- default: ["tw-rounded-md"],
2534
- argo: ["tw-rounded-2xl"]
2630
+ // Legacy surface — fixed white panel.
2631
+ default: ["tw-rounded-md", "tw-border-neutral-100", "tw-bg-white", "tw-text-neutral-800"],
2632
+ // Argo surface — semantic popover tokens (brand + dark aware).
2633
+ argo: ["tw-rounded-2xl", "tw-border-border", "tw-bg-popover", "tw-text-popover-foreground"]
2535
2634
  },
2536
2635
  matchTriggerWidth: {
2537
2636
  true: ["tw-w-[var(--radix-popover-trigger-width)]"],
@@ -2550,21 +2649,25 @@ var PopoverContent = ({
2550
2649
  variant,
2551
2650
  onEscapeKeyDown,
2552
2651
  ...props
2553
- }) => /* @__PURE__ */ jsxRuntime.jsx(reactPopover.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2554
- reactPopover.Content,
2555
- {
2556
- ref,
2557
- align: matchTriggerWidth ? "start" : align,
2558
- sideOffset,
2559
- className: cn(variants3({ className, matchTriggerWidth, variant })),
2560
- onEscapeKeyDown: (event) => {
2561
- event.stopPropagation();
2562
- onEscapeKeyDown?.(event);
2563
- },
2564
- ...props,
2565
- children
2566
- }
2567
- ) });
2652
+ }) => {
2653
+ const isLegacy = useIsLegacyBrand();
2654
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : "default";
2655
+ return /* @__PURE__ */ jsxRuntime.jsx(reactPopover.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2656
+ reactPopover.Content,
2657
+ {
2658
+ ref,
2659
+ align: matchTriggerWidth ? "start" : align,
2660
+ sideOffset,
2661
+ className: cn(variants3({ className, matchTriggerWidth, variant: effectiveVariant })),
2662
+ onEscapeKeyDown: (event) => {
2663
+ event.stopPropagation();
2664
+ onEscapeKeyDown?.(event);
2665
+ },
2666
+ ...props,
2667
+ children
2668
+ }
2669
+ ) });
2670
+ };
2568
2671
  var Popover = (props) => /* @__PURE__ */ jsxRuntime.jsx(reactPopover.Root, { ...props });
2569
2672
  Popover.Content = PopoverContent;
2570
2673
  Popover.Trigger = reactPopover.Trigger;
@@ -2633,15 +2736,7 @@ var PopconfirmContent = ({ className, onInteractOutside, ...props }) => {
2633
2736
  {
2634
2737
  ...props,
2635
2738
  onInteractOutside: handleOnInteractOutside,
2636
- className: cn(
2637
- "tw-flex",
2638
- "tw-flex-col",
2639
- "tw-gap-2",
2640
- "tw-gap-3",
2641
- "tw-px-4 ",
2642
- "tw-py-3",
2643
- className
2644
- )
2739
+ className: cn("tw-flex", "tw-flex-col", "tw-gap-3", "tw-px-4", "tw-py-3", className)
2645
2740
  }
2646
2741
  );
2647
2742
  };
@@ -2713,53 +2808,61 @@ var HoverCardContent = ({
2713
2808
  className,
2714
2809
  align = "center",
2715
2810
  sideOffset = 4,
2811
+ argo,
2716
2812
  children,
2717
2813
  ...props
2718
- }) => /* @__PURE__ */ jsxRuntime.jsx(reactHoverCard.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2719
- reactHoverCard.Content,
2720
- {
2721
- ref,
2722
- align,
2723
- sideOffset,
2724
- "data-slot": "hover-card-content",
2725
- className: cn(
2726
- "tailwindcss-preflight",
2727
- "tw-group/hover-card-content",
2728
- "tw-z-50",
2729
- // border
2730
- "tw-box-border",
2731
- "tw-border",
2732
- "tw-border-neutral-150",
2733
- "tw-rounded-2xl",
2734
- // sizing
2735
- "tw-min-w-32",
2736
- "tw-origin-[--radix-hover-card-content-transform-origin]",
2737
- "tw-max-h-[var(--radix-hover-card-content-available-height)]",
2738
- // styles
2739
- "tw-bg-white",
2740
- "tw-p-4",
2741
- "tw-shadow-md",
2742
- // directional animations
2743
- "data-[side=bottom]:tw-slide-in-from-top-2",
2744
- "data-[side=left]:tw-slide-in-from-right-2",
2745
- "data-[side=right]:tw-slide-in-from-left-2",
2746
- "data-[side=top]:tw-slide-in-from-bottom-2",
2747
- // animations
2748
- "data-[state=open]:tw-animate-in",
2749
- "data-[state=open]:tw-fade-in-0",
2750
- "data-[state=open]:tw-zoom-in-95",
2751
- "data-[state=closed]:tw-animate-out",
2752
- "data-[state=closed]:tw-fade-out-0",
2753
- "data-[state=closed]:tw-zoom-out-95",
2754
- // Default size for nested Lucide icons; callers can override on the icon.
2755
- "[&_svg.lucide:not([class*='tw-size-'])]:tw-size-4",
2756
- "[&_svg]:tw-shrink-0",
2757
- className
2758
- ),
2759
- ...props,
2760
- children
2761
- }
2762
- ) });
2814
+ }) => {
2815
+ const isLegacy = useIsLegacyBrand();
2816
+ const renderArgo = !isLegacy || argo === true;
2817
+ return /* @__PURE__ */ jsxRuntime.jsx(reactHoverCard.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2818
+ reactHoverCard.Content,
2819
+ {
2820
+ ref,
2821
+ align,
2822
+ sideOffset,
2823
+ "data-slot": "hover-card-content",
2824
+ "data-argo": renderArgo,
2825
+ className: cn(
2826
+ "tailwindcss-preflight",
2827
+ "tw-group/hover-card-content",
2828
+ "tw-z-50",
2829
+ // border
2830
+ "tw-box-border",
2831
+ "tw-border",
2832
+ "tw-rounded-2xl",
2833
+ // sizing
2834
+ "tw-min-w-32",
2835
+ "tw-origin-[--radix-hover-card-content-transform-origin]",
2836
+ "tw-max-h-[var(--radix-hover-card-content-available-height)]",
2837
+ // padding + shared shadow
2838
+ "tw-p-4",
2839
+ "tw-shadow-md",
2840
+ // legacy chrome — default
2841
+ "tw-border-neutral-150 tw-bg-white",
2842
+ // argo chrome overrides — semantic floating-panel tokens
2843
+ "data-[argo=true]:tw-border-solid data-[argo=true]:tw-border-border data-[argo=true]:tw-bg-popover data-[argo=true]:tw-text-popover-foreground",
2844
+ // directional animations
2845
+ "data-[side=bottom]:tw-slide-in-from-top-2",
2846
+ "data-[side=left]:tw-slide-in-from-right-2",
2847
+ "data-[side=right]:tw-slide-in-from-left-2",
2848
+ "data-[side=top]:tw-slide-in-from-bottom-2",
2849
+ // animations
2850
+ "data-[state=open]:tw-animate-in",
2851
+ "data-[state=open]:tw-fade-in-0",
2852
+ "data-[state=open]:tw-zoom-in-95",
2853
+ "data-[state=closed]:tw-animate-out",
2854
+ "data-[state=closed]:tw-fade-out-0",
2855
+ "data-[state=closed]:tw-zoom-out-95",
2856
+ // Default size for nested Lucide icons; callers can override on the icon.
2857
+ "[&_svg.lucide:not([class*='tw-size-'])]:tw-size-4",
2858
+ "[&_svg]:tw-shrink-0",
2859
+ className
2860
+ ),
2861
+ ...props,
2862
+ children
2863
+ }
2864
+ ) });
2865
+ };
2763
2866
  var HoverCard = ({ openDelay = 200, closeDelay = 200, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(reactHoverCard.Root, { ...rest, openDelay, closeDelay });
2764
2867
  HoverCard.Content = HoverCardContent;
2765
2868
  HoverCard.Trigger = reactHoverCard.Trigger;
@@ -2788,10 +2891,10 @@ var CommandGroup = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
2788
2891
  "[&_[cmdk-group-heading]]:tw-py-0.5",
2789
2892
  "[&_[cmdk-group-heading]]:tw-uppercase",
2790
2893
  "[&_[cmdk-group-heading]]:tw-text-[11px]",
2791
- "[&_[cmdk-group-heading]]:tw-text-neutral-400",
2894
+ "[&_[cmdk-group-heading]]:tw-text-muted-foreground",
2792
2895
  "[&_[cmdk-group-heading]]:tw-tracking-[1px]",
2793
2896
  "[&_[cmdk-group-heading]]:tw-border-b",
2794
- "[&_[cmdk-group-heading]]:tw-border-neutral-150",
2897
+ "[&_[cmdk-group-heading]]:tw-border-border",
2795
2898
  "[&_[cmdk-group-heading]]:tw-my-2",
2796
2899
  className
2797
2900
  ),
@@ -2799,13 +2902,13 @@ var CommandGroup = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
2799
2902
  }
2800
2903
  );
2801
2904
  var dayPickerClassNames = {
2802
- selected: `tw-bg-secondary-500 tw-border-secondary-500 tw-font-medium hover:tw-bg-secondary-600 hover:tw-border-secondary-600 tw-text-white tw-rounded`
2905
+ selected: `tw-bg-primary tw-border-primary tw-font-medium hover:tw-bg-primary/90 hover:tw-border-primary/90 tw-text-primary-foreground tw-rounded`
2803
2906
  };
2804
2907
  var rangePickerClassNames = {
2805
- range_start: `tw-bg-secondary-500 tw-rounded-r-none tw-font-medium tw-border-secondary-500 hover:tw-bg-secondary-600 hover:tw-border-secondary-600 tw-text-white`,
2806
- range_end: `tw-bg-secondary-500 tw-rounded-l-none tw-font-medium tw-border-secondary-500 hover:tw-bg-secondary-600 hover:tw-border-secondary-600 tw-text-white`,
2908
+ range_start: `tw-bg-primary tw-rounded-r-none tw-font-medium tw-border-primary hover:tw-bg-primary/90 hover:tw-border-primary/90 tw-text-primary-foreground`,
2909
+ range_end: `tw-bg-primary tw-rounded-l-none tw-font-medium tw-border-primary hover:tw-bg-primary/90 hover:tw-border-primary/90 tw-text-primary-foreground`,
2807
2910
  selected: `tw-font-medium tw-rounded`,
2808
- range_middle: `tw-bg-secondary-300 tw-border-secondary-300 tw-rounded-none tw-font-medium`
2911
+ range_middle: `tw-bg-accent tw-border-accent tw-text-accent-foreground tw-rounded-none tw-font-medium`
2809
2912
  };
2810
2913
  var Calendar = ({ className, classNames, ...props }) => {
2811
2914
  const defaultClassNames = reactDayPicker.getDefaultClassNames();
@@ -2816,10 +2919,10 @@ var Calendar = ({ className, classNames, ...props }) => {
2816
2919
  captionLayout: "dropdown",
2817
2920
  className: cn(className, "tw-p-3"),
2818
2921
  classNames: {
2819
- chevron: `${defaultClassNames.chevron} tw-fill-secondary-500`,
2820
- day: `${defaultClassNames.day} hover:tw-bg-secondary-200 tw-rounded`,
2922
+ chevron: `${defaultClassNames.chevron} tw-fill-foreground`,
2923
+ day: `${defaultClassNames.day} hover:tw-bg-accent tw-rounded`,
2821
2924
  day_button: `${defaultClassNames.day_button} tw-rounded`,
2822
- today: `tw-bg-secondary-100 tw-font-medium`,
2925
+ today: `tw-bg-accent tw-text-accent-foreground tw-font-medium`,
2823
2926
  ...dayPickerClassNames,
2824
2927
  ...rangePickerClassNames,
2825
2928
  selected: `${props.mode === "range" ? rangePickerClassNames.selected : dayPickerClassNames.selected}`,
@@ -2833,27 +2936,31 @@ Calendar.displayName = "Calendar";
2833
2936
  var DatePicker = ({
2834
2937
  align = "end",
2835
2938
  alignOffset = -18,
2836
- argo = false,
2939
+ argo,
2837
2940
  children,
2838
2941
  defaultOpen,
2839
2942
  onOpenChange,
2840
2943
  open,
2841
2944
  sideOffset = 12,
2842
2945
  ...calendarProps
2843
- }) => /* @__PURE__ */ jsxRuntime.jsxs(Popover, { defaultOpen, open, onOpenChange, children: [
2844
- /* @__PURE__ */ jsxRuntime.jsx(Popover.Trigger, { asChild: true, children }),
2845
- /* @__PURE__ */ jsxRuntime.jsx(
2846
- Popover.Content,
2847
- {
2848
- align,
2849
- alignOffset,
2850
- className: "tw-w-auto tw-p-0",
2851
- sideOffset,
2852
- variant: argo ? "argo" : "default",
2853
- children: /* @__PURE__ */ jsxRuntime.jsx(Calendar, { ...calendarProps })
2854
- }
2855
- )
2856
- ] });
2946
+ }) => {
2947
+ const isLegacy = useIsLegacyBrand();
2948
+ const renderArgo = !isLegacy || argo === true;
2949
+ return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { defaultOpen, open, onOpenChange, children: [
2950
+ /* @__PURE__ */ jsxRuntime.jsx(Popover.Trigger, { asChild: true, children }),
2951
+ /* @__PURE__ */ jsxRuntime.jsx(
2952
+ Popover.Content,
2953
+ {
2954
+ align,
2955
+ alignOffset,
2956
+ className: "tw-w-auto tw-p-0",
2957
+ sideOffset,
2958
+ variant: renderArgo ? "argo" : "default",
2959
+ children: /* @__PURE__ */ jsxRuntime.jsx(Calendar, { ...calendarProps })
2960
+ }
2961
+ )
2962
+ ] });
2963
+ };
2857
2964
  DatePicker.displayName = "DatePicker";
2858
2965
  var addonVariants = classVarianceAuthority.cva(
2859
2966
  [
@@ -3137,7 +3244,8 @@ var inputGroupVariants = classVarianceAuthority.cva(
3137
3244
  "has-[:is(input,textarea):disabled]:tw-opacity-40"
3138
3245
  ],
3139
3246
  argo: [
3140
- "tw-bg-background",
3247
+ // muted filled input surface — gray, distinct from white containers; not the app-background token
3248
+ "tw-bg-muted",
3141
3249
  "tw-border-input",
3142
3250
  "tw-rounded-lg",
3143
3251
  "tw-text-foreground",
@@ -3191,15 +3299,28 @@ var InputGroupRoot = ({
3191
3299
  focusVariant,
3192
3300
  className,
3193
3301
  ...props
3194
- }) => /* @__PURE__ */ jsxRuntime.jsx(
3195
- "div",
3196
- {
3197
- ...props,
3198
- ref,
3199
- className: cn(inputGroupVariants({ state, variant, sizing, focusVariant, className })),
3200
- children
3201
- }
3202
- );
3302
+ }) => {
3303
+ const isLegacy = useIsLegacyBrand();
3304
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : variant;
3305
+ const effectiveSizing = effectiveVariant === "argo" ? "medium" : sizing;
3306
+ return /* @__PURE__ */ jsxRuntime.jsx(
3307
+ "div",
3308
+ {
3309
+ ...props,
3310
+ ref,
3311
+ className: cn(
3312
+ inputGroupVariants({
3313
+ state,
3314
+ variant: effectiveVariant,
3315
+ sizing: effectiveSizing,
3316
+ focusVariant,
3317
+ className
3318
+ })
3319
+ ),
3320
+ children
3321
+ }
3322
+ );
3323
+ };
3203
3324
  var InputGroup = InputGroupRoot;
3204
3325
  InputGroup.Input = InputGroupInput;
3205
3326
  InputGroup.Addon = InputGroupAddon;
@@ -3312,7 +3433,7 @@ var Input = ({
3312
3433
  "div",
3313
3434
  {
3314
3435
  className: cn({
3315
- "tw-whitespace-nowrap tw-bg-neutral-200 tw-px-4 -tw-mr-4 tw-py-2.5": rightSuffixVariant === "addon"
3436
+ "tw-whitespace-nowrap tw-bg-muted tw-px-4 -tw-mr-4 tw-py-2.5": rightSuffixVariant === "addon"
3316
3437
  }),
3317
3438
  children: rightSuffix
3318
3439
  }
@@ -3376,6 +3497,7 @@ var DateInput = ({
3376
3497
  readOnly,
3377
3498
  startMonth,
3378
3499
  value,
3500
+ variant,
3379
3501
  ...props
3380
3502
  }) => {
3381
3503
  const [inputValue, setInputValue] = react.useState("");
@@ -3445,6 +3567,7 @@ var DateInput = ({
3445
3567
  readOnly,
3446
3568
  ref,
3447
3569
  value: displayValue,
3570
+ variant,
3448
3571
  rightSuffix: !disabled && !readOnly ? /* @__PURE__ */ jsxRuntime.jsx(
3449
3572
  DatePicker,
3450
3573
  {
@@ -3601,6 +3724,7 @@ var TextInput = ({
3601
3724
  value,
3602
3725
  defaultValue,
3603
3726
  type = "text",
3727
+ variant,
3604
3728
  onValueChange,
3605
3729
  onChange,
3606
3730
  onValueBlur,
@@ -3623,6 +3747,7 @@ var TextInput = ({
3623
3747
  onChange: handleChange,
3624
3748
  onBlur: handleBlur,
3625
3749
  type,
3750
+ variant,
3626
3751
  value: sanitizeTextInputValue(value),
3627
3752
  defaultValue: sanitizeTextInputValue(defaultValue)
3628
3753
  }
@@ -3648,12 +3773,12 @@ var TimePickerButton = ({
3648
3773
  "tw-rounded",
3649
3774
  "tw-transition-colors",
3650
3775
  "tw-select-none",
3651
- "hover:tw-bg-secondary-200",
3776
+ "hover:tw-bg-accent",
3652
3777
  "focus-visible:tw-outline",
3653
3778
  "focus-visible:tw-outline-2",
3654
- "focus-visible:tw-outline-secondary-500",
3655
- "aria-selected:tw-bg-secondary-500",
3656
- "aria-selected:tw-text-white",
3779
+ "focus-visible:tw-outline-primary",
3780
+ "aria-selected:tw-bg-primary",
3781
+ "aria-selected:tw-text-primary-foreground",
3657
3782
  className
3658
3783
  ),
3659
3784
  children
@@ -3684,7 +3809,7 @@ var MINUTES = Array.from({ length: 60 }, (_, i) => i);
3684
3809
  var TimePicker = ({
3685
3810
  align = "end",
3686
3811
  alignOffset = -18,
3687
- argo = false,
3812
+ argo,
3688
3813
  children,
3689
3814
  defaultOpen,
3690
3815
  defaultSelected,
@@ -3694,6 +3819,8 @@ var TimePicker = ({
3694
3819
  selected,
3695
3820
  sideOffset = 12
3696
3821
  }) => {
3822
+ const isLegacy = useIsLegacyBrand();
3823
+ const renderArgo = !isLegacy || argo;
3697
3824
  const [internalSelected, setInternalSelected] = react.useState(defaultSelected ?? null);
3698
3825
  const isControlled = selected !== void 0;
3699
3826
  const currentValue = isControlled ? selected : internalSelected;
@@ -3723,7 +3850,7 @@ var TimePicker = ({
3723
3850
  alignOffset,
3724
3851
  sideOffset,
3725
3852
  className: "tw-flex tw-flex-row",
3726
- variant: argo ? "argo" : "default",
3853
+ variant: renderArgo ? "argo" : "default",
3727
3854
  children: [
3728
3855
  /* @__PURE__ */ jsxRuntime.jsx(ScrollArea, { type: "always", ref: scrollToSelected, viewPortClassName: "tw-h-60 tw-px-3", children: HOURS.map((value) => /* @__PURE__ */ jsxRuntime.jsx(
3729
3856
  TimePickerButton,
@@ -3759,6 +3886,7 @@ var TimeInput = ({
3759
3886
  placeholder = "Select time",
3760
3887
  readOnly,
3761
3888
  value,
3889
+ variant,
3762
3890
  className,
3763
3891
  ...props
3764
3892
  }) => {
@@ -3804,6 +3932,7 @@ var TimeInput = ({
3804
3932
  placeholder,
3805
3933
  className: cn("[&_input::-webkit-calendar-picker-indicator]:tw-hidden", className),
3806
3934
  value: currentValue,
3935
+ variant,
3807
3936
  onChange: handleChange,
3808
3937
  onBlur: handleBlur,
3809
3938
  onClear: currentValue ? handleClear : void 0,
@@ -3962,7 +4091,7 @@ var CommandItem = ({
3962
4091
  ),
3963
4092
  children: [
3964
4093
  /* @__PURE__ */ jsxRuntime.jsx(CheckIndicator, { variant }),
3965
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-inline-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-text-neutral-400 [&_svg:not([class*='tw-size-'])]:tw-size-4", children: icon }),
4094
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-inline-flex tw-size-4 tw-shrink-0 tw-items-center tw-justify-center tw-text-muted-foreground [&_svg:not([class*='tw-size-'])]:tw-size-4", children: icon }),
3966
4095
  children
3967
4096
  ]
3968
4097
  }
@@ -4012,14 +4141,18 @@ var CommandSeparator = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.j
4012
4141
  ...props
4013
4142
  }
4014
4143
  );
4015
- var Command = ({ className, variant = "default", ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(
4016
- cmdk.Command,
4017
- {
4018
- "data-variant": variant,
4019
- className: cn("tw-group/command", "tailwindcss-preflight", className),
4020
- ...rest
4021
- }
4022
- );
4144
+ var Command = ({ className, variant, ...rest }) => {
4145
+ const isLegacy = useIsLegacyBrand();
4146
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : "default";
4147
+ return /* @__PURE__ */ jsxRuntime.jsx(
4148
+ cmdk.Command,
4149
+ {
4150
+ "data-variant": effectiveVariant,
4151
+ className: cn("tw-group/command", "tailwindcss-preflight", className),
4152
+ ...rest
4153
+ }
4154
+ );
4155
+ };
4023
4156
  Command.Content = CommandContent;
4024
4157
  Command.Separator = CommandSeparator;
4025
4158
  Command.List = CommandList;
@@ -4064,7 +4197,7 @@ var DateRangePicker = ({
4064
4197
  }
4065
4198
  ) }),
4066
4199
  /* @__PURE__ */ jsxRuntime.jsx(Popover.Content, { variant: "argo", align: "start", className: "tw-w-auto tw-p-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex", children: [
4067
- presets && presets.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-flex-col tw-gap-1 tw-border-r tw-border-solid tw-border-neutral-100 tw-p-2", children: presets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx(
4200
+ presets && presets.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-flex-col tw-gap-1 tw-border-r tw-border-solid tw-border-border tw-p-2", children: presets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx(
4068
4201
  Button,
4069
4202
  {
4070
4203
  argo: true,
@@ -4095,7 +4228,7 @@ var DateRangePicker = ({
4095
4228
  ] }) })
4096
4229
  ] });
4097
4230
  DateRangePicker.displayName = "DateRangePicker";
4098
- var Optional = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("tw-text-neutral-400", className), children: "(optional)" });
4231
+ var Optional = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("tw-text-muted-foreground", className), children: "(optional)" });
4099
4232
  var Label2 = ({ className, children, id, htmlFor, ...rest }) => {
4100
4233
  return /* @__PURE__ */ jsxRuntime.jsx(
4101
4234
  RLabel__namespace.Root,
@@ -4104,7 +4237,7 @@ var Label2 = ({ className, children, id, htmlFor, ...rest }) => {
4104
4237
  id: id?.toString(),
4105
4238
  htmlFor: htmlFor?.toString(),
4106
4239
  className: cn(
4107
- "tw-m-0 tw-text-neutral-800 tw-font-normal peer-disabled:tw-opacity-50",
4240
+ "tw-m-0 tw-text-foreground tw-font-normal peer-disabled:tw-opacity-50",
4108
4241
  className
4109
4242
  ),
4110
4243
  children
@@ -4375,7 +4508,8 @@ var Switch = ({
4375
4508
  }) => {
4376
4509
  const fallbackId = react.useId();
4377
4510
  const id = idProp?.toString() ?? fallbackId;
4378
- const switchVariant = argo ? "argo" : "default";
4511
+ const isLegacy = useIsLegacyBrand();
4512
+ const switchVariant = !isLegacy || argo ? "argo" : "default";
4379
4513
  const switchElement = /* @__PURE__ */ jsxRuntime.jsx(
4380
4514
  reactSwitch.Root,
4381
4515
  {
@@ -4395,110 +4529,163 @@ var Switch = ({
4395
4529
  };
4396
4530
  var RadioGroupContext = react.createContext({
4397
4531
  variant: "radio",
4398
- orientation: "horizontal"
4532
+ orientation: "horizontal",
4533
+ groupArgo: false
4399
4534
  });
4400
4535
  var RadioGroupProvider = RadioGroupContext;
4401
4536
  var useRadioGroupContext = () => react.use(RadioGroupContext);
4402
- var Radio = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
4403
- RRadioGroup.Item,
4537
+ var radioVariants = classVarianceAuthority.cva(
4538
+ [
4539
+ // reset
4540
+ "tw-bg-transparent",
4541
+ "tw-p-0",
4542
+ "tw-peer",
4543
+ "tw-cursor-pointer",
4544
+ "tw-whitespace-nowrap",
4545
+ "tw-shrink-0",
4546
+ // position
4547
+ "tw-flex",
4548
+ "tw-items-center",
4549
+ "tw-justify-center",
4550
+ "disabled:tw-cursor-not-allowed",
4551
+ "tw-size-4",
4552
+ // border
4553
+ "tw-rounded-full",
4554
+ "tw-border",
4555
+ "tw-border-solid"
4556
+ ],
4404
4557
  {
4405
- ...props,
4406
- className: cn(
4407
- // reset
4408
- "tw-bg-transparent",
4409
- "tw-p-0",
4410
- "tw-peer",
4411
- "tw-cursor-pointer",
4412
- "tw-whitespace-nowrap",
4413
- "tw-shrink-0",
4414
- // position
4415
- "tw-flex",
4416
- "tw-items-center",
4417
- "tw-justify-center",
4418
- // disabled
4419
- "disabled:tw-opacity-40",
4420
- "disabled:tw-cursor-not-allowed",
4421
- "tw-size-4",
4422
- // border
4423
- "tw-rounded-full",
4424
- "tw-border",
4425
- "tw-border-solid",
4426
- // checked state - border only
4427
- "data-[state=checked]:tw-border-primary",
4428
- // unchecked state
4429
- "data-[state=unchecked]:tw-border-neutral-200",
4430
- // unchecked:hover state
4431
- "data-[state=unchecked]:hover:tw-border-primary",
4432
- // unchecked:hover:disabled state
4433
- "data-[state=unchecked]:disabled:hover:tw-border-neutral-200",
4434
- // focus-visible ring
4435
- "focus-visible:tw-ring-2",
4436
- "focus-visible:tw-ring-secondary-200",
4437
- className
4438
- ),
4439
- children: /* @__PURE__ */ jsxRuntime.jsx(RRadioGroup.Indicator, { className: cn("tw-flex", "tw-items-center", "tw-justify-center"), children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Circle, { className: "tw-size-2.5 tw-fill-current tw-text-primary" }) })
4558
+ defaultVariants: {
4559
+ variant: "default"
4560
+ },
4561
+ variants: {
4562
+ variant: {
4563
+ default: [
4564
+ "disabled:tw-opacity-40",
4565
+ "data-[state=checked]:tw-border-primary",
4566
+ "data-[state=unchecked]:tw-border-neutral-200",
4567
+ "data-[state=unchecked]:hover:tw-border-primary",
4568
+ "data-[state=unchecked]:disabled:hover:tw-border-neutral-200",
4569
+ "focus-visible:tw-ring-2",
4570
+ "focus-visible:tw-ring-secondary-200"
4571
+ ],
4572
+ argo: [
4573
+ "disabled:tw-opacity-50",
4574
+ "tw-border-input",
4575
+ "tw-transition-colors",
4576
+ "data-[state=checked]:tw-bg-primary",
4577
+ "data-[state=checked]:tw-border-primary",
4578
+ "data-[state=unchecked]:not-disabled:hover:tw-bg-accent",
4579
+ "data-[state=checked]:not-disabled:hover:tw-bg-primary",
4580
+ "focus-visible:tw-outline-none",
4581
+ "focus-visible:tw-border-primary",
4582
+ "focus-visible:tw-ring-2",
4583
+ "focus-visible:tw-ring-primary/50"
4584
+ ]
4585
+ }
4586
+ }
4440
4587
  }
4441
4588
  );
4589
+ var radioIndicatorVariants = classVarianceAuthority.cva(["tw-size-2.5", "tw-fill-current"], {
4590
+ defaultVariants: {
4591
+ variant: "default"
4592
+ },
4593
+ variants: {
4594
+ variant: {
4595
+ default: ["tw-text-primary"],
4596
+ argo: ["tw-text-primary-foreground"]
4597
+ }
4598
+ }
4599
+ });
4600
+ var radioItemButtonVariants = classVarianceAuthority.cva(
4601
+ [
4602
+ // reset
4603
+ "tw-bg-transparent",
4604
+ "tw-p-0",
4605
+ "tw-peer",
4606
+ "tw-cursor-pointer",
4607
+ "tw-whitespace-nowrap",
4608
+ // position
4609
+ "tw-flex",
4610
+ "tw-items-center",
4611
+ "tw-justify-center",
4612
+ "disabled:tw-cursor-not-allowed",
4613
+ // layouts
4614
+ "tw-w-full",
4615
+ "tw-px-2",
4616
+ "tw-py-1.5",
4617
+ // fonts
4618
+ "tw-uppercase",
4619
+ "tw-font-semibold",
4620
+ "tw-font-sans",
4621
+ "tw-text-[11px]",
4622
+ "tw-whitespace-nowrap",
4623
+ "tw-tracking-widest",
4624
+ "tw-leading-[18px]",
4625
+ // border
4626
+ "tw-border",
4627
+ "tw-border-solid",
4628
+ "tw-rounded"
4629
+ ],
4630
+ {
4631
+ defaultVariants: {
4632
+ variant: "default"
4633
+ },
4634
+ variants: {
4635
+ variant: {
4636
+ default: [
4637
+ "disabled:tw-opacity-40",
4638
+ "tw-text-secondary-600",
4639
+ "tw-border-secondary-500",
4640
+ "data-[state=unchecked]:hover:tw-bg-secondary-500",
4641
+ "data-[state=unchecked]:hover:tw-text-white",
4642
+ "data-[state=unchecked]:disabled:hover:tw-bg-white",
4643
+ "data-[state=unchecked]:disabled:hover:tw-text-secondary-500",
4644
+ "data-[state=checked]:disabled:tw-cursor-not-allowed",
4645
+ "data-[state=unchecked]:tw-bg-white",
4646
+ "data-[state=checked]:tw-bg-secondary-500",
4647
+ "data-[state=checked]:tw-text-white",
4648
+ "data-[state=checked]:tw-cursor-default",
4649
+ "focus-visible:tw-outline",
4650
+ "focus-visible:tw-outline-secondary-500",
4651
+ "focus-visible:tw-ring-4",
4652
+ "focus-visible:tw-ring-secondary-200"
4653
+ ],
4654
+ argo: [
4655
+ "disabled:tw-opacity-50",
4656
+ "tw-text-foreground",
4657
+ "tw-border-input",
4658
+ "tw-transition-colors",
4659
+ // muted filled control surface — gray, distinct from white containers; not the app-background token
4660
+ "data-[state=unchecked]:tw-bg-muted",
4661
+ "data-[state=unchecked]:not-disabled:hover:tw-bg-accent",
4662
+ "data-[state=unchecked]:not-disabled:hover:tw-text-accent-foreground",
4663
+ "data-[state=checked]:tw-bg-primary",
4664
+ "data-[state=checked]:tw-border-primary",
4665
+ "data-[state=checked]:tw-text-primary-foreground",
4666
+ "data-[state=checked]:not-disabled:tw-cursor-default",
4667
+ "focus-visible:tw-outline-none",
4668
+ "focus-visible:tw-border-primary",
4669
+ "focus-visible:tw-ring-2",
4670
+ "focus-visible:tw-ring-primary/50"
4671
+ ]
4672
+ }
4673
+ }
4674
+ }
4675
+ );
4676
+ var Radio = ({ className, styleVariant = "default", ...props }) => /* @__PURE__ */ jsxRuntime.jsx(RRadioGroup.Item, { ...props, className: cn(radioVariants({ variant: styleVariant }), className), children: /* @__PURE__ */ jsxRuntime.jsx(RRadioGroup.Indicator, { className: cn("tw-flex", "tw-items-center", "tw-justify-center"), children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Circle, { className: radioIndicatorVariants({ variant: styleVariant }) }) }) });
4442
4677
  var RadioGroupItemButton = ({
4443
4678
  ref,
4444
4679
  className,
4445
4680
  children,
4681
+ styleVariant = "default",
4446
4682
  ...props
4447
4683
  }) => /* @__PURE__ */ jsxRuntime.jsx(
4448
4684
  RRadioGroup.Item,
4449
4685
  {
4450
4686
  ref,
4451
4687
  ...props,
4452
- className: cn(
4453
- // reset
4454
- "tw-bg-transparent",
4455
- "tw-p-0",
4456
- "tw-peer",
4457
- "tw-cursor-pointer",
4458
- "tw-whitespace-nowrap",
4459
- // position
4460
- "tw-flex",
4461
- "tw-items-center",
4462
- "tw-justify-center",
4463
- // disabled
4464
- "disabled:tw-opacity-40",
4465
- "disabled:tw-cursor-not-allowed",
4466
- // layouts
4467
- "tw-w-full",
4468
- "tw-px-2",
4469
- "tw-py-1.5",
4470
- // fonts
4471
- "tw-text-secondary-600",
4472
- "tw-uppercase",
4473
- "tw-font-semibold",
4474
- "tw-font-sans",
4475
- "tw-text-[11px]",
4476
- "tw-whitespace-nowrap",
4477
- "tw-tracking-widest",
4478
- "tw-leading-[18px]",
4479
- // border
4480
- "tw-border",
4481
- "tw-border-solid",
4482
- "tw-border-secondary-500",
4483
- "tw-rounded",
4484
- // hover
4485
- "data-[state=unchecked]:hover:tw-bg-secondary-500",
4486
- "data-[state=unchecked]:hover:tw-text-white",
4487
- // disabled
4488
- "data-[state=unchecked]:disabled:hover:tw-bg-white",
4489
- "data-[state=unchecked]:disabled:hover:tw-text-secondary-500",
4490
- "data-[state=checked]:disabled:tw-cursor-not-allowed",
4491
- // states
4492
- "data-[state=unchecked]:tw-bg-white",
4493
- "data-[state=checked]:tw-bg-secondary-500",
4494
- "data-[state=checked]:tw-text-white",
4495
- "data-[state=checked]:tw-cursor-default",
4496
- "focus-visible:tw-outline",
4497
- "focus-visible:tw-outline-secondary-500",
4498
- "focus-visible:tw-ring-4",
4499
- "focus-visible:tw-ring-secondary-200",
4500
- className
4501
- ),
4688
+ className: cn(radioItemButtonVariants({ variant: styleVariant }), className),
4502
4689
  children
4503
4690
  }
4504
4691
  );
@@ -4508,19 +4695,22 @@ var RadioGroupItem = ({
4508
4695
  tooltipVariant,
4509
4696
  tooltipPlacement,
4510
4697
  description,
4698
+ argo,
4511
4699
  ...props
4512
4700
  }) => {
4513
- const { variant } = useRadioGroupContext();
4701
+ const { variant, groupArgo } = useRadioGroupContext();
4702
+ const isLegacy = useIsLegacyBrand();
4703
+ const styleVariant = argo === true || groupArgo || !isLegacy ? "argo" : "default";
4514
4704
  const id = react.useId();
4515
4705
  const item = (() => {
4516
4706
  if (variant === "button")
4517
- return /* @__PURE__ */ jsxRuntime.jsx(RadioGroupItemButton, { ...props, children });
4707
+ return /* @__PURE__ */ jsxRuntime.jsx(RadioGroupItemButton, { styleVariant, ...props, children });
4518
4708
  return /* @__PURE__ */ jsxRuntime.jsxs(
4519
4709
  FieldBox,
4520
4710
  {
4521
4711
  variant: variant === "radio-block" ? "boxed" : "default",
4522
4712
  htmlFor: id,
4523
- control: /* @__PURE__ */ jsxRuntime.jsx(Radio, { ...props, id }),
4713
+ control: /* @__PURE__ */ jsxRuntime.jsx(Radio, { styleVariant, ...props, id }),
4524
4714
  className: variant === "radio-block" ? "tw-flex-1" : void 0,
4525
4715
  children: [
4526
4716
  /* @__PURE__ */ jsxRuntime.jsx(FieldBox.Title, { children }),
@@ -4655,12 +4845,15 @@ var RadioGroup2 = ({
4655
4845
  className,
4656
4846
  disabled = false,
4657
4847
  orientation = "horizontal",
4848
+ argo,
4658
4849
  onValueChange,
4659
4850
  children,
4660
4851
  value,
4661
4852
  defaultValue,
4662
4853
  ...props
4663
4854
  }) => {
4855
+ const isLegacy = useIsLegacyBrand();
4856
+ const groupArgo = !isLegacy || argo === true;
4664
4857
  return /* @__PURE__ */ jsxRuntime.jsx(
4665
4858
  RRadioGroup__namespace.Root,
4666
4859
  {
@@ -4671,7 +4864,7 @@ var RadioGroup2 = ({
4671
4864
  disabled,
4672
4865
  value: value ?? void 0,
4673
4866
  defaultValue: defaultValue ?? void 0,
4674
- children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroupProvider, { value: { variant, orientation }, children })
4867
+ children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroupProvider, { value: { variant, orientation, groupArgo }, children })
4675
4868
  }
4676
4869
  );
4677
4870
  };
@@ -5119,67 +5312,72 @@ var SelectContent = ({
5119
5312
  container,
5120
5313
  position = "popper",
5121
5314
  sideOffset = 4,
5122
- variant = "default",
5315
+ variant,
5123
5316
  ...props
5124
- }) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { container, children: /* @__PURE__ */ jsxRuntime.jsxs(
5125
- SelectPrimitive__namespace.Content,
5126
- {
5127
- ...props,
5128
- ref,
5129
- position,
5130
- sideOffset,
5131
- "data-variant": variant,
5132
- className: cn(
5133
- "tailwindcss-preflight",
5134
- "tw-group/select-content",
5135
- "tw-z-[1040]",
5136
- // layout
5137
- "tw-flex tw-flex-col",
5138
- "tw-p-1",
5139
- "data-[variant=default]:tw-p-0",
5140
- "tw-overflow-hidden",
5141
- "tw-origin-[--radix-select-content-transform-origin]",
5142
- // sizing
5143
- "tw-max-h-[var(--radix-select-content-available-height)]",
5144
- "tw-min-w-[var(--radix-select-trigger-width)]",
5145
- // appearance
5146
- "tw-bg-popover",
5147
- "tw-text-popover-foreground",
5148
- "tw-shadow-md",
5149
- "tw-ring-1",
5150
- "tw-ring-foreground/10",
5151
- "tw-rounded-lg",
5152
- "data-[variant=default]:tw-rounded",
5153
- // open animation
5154
- "data-[state=open]:tw-animate-in",
5155
- "data-[state=open]:tw-fade-in-0",
5156
- "data-[state=open]:tw-zoom-in-95",
5157
- // closed animation
5158
- "data-[state=closed]:tw-animate-out",
5159
- "data-[state=closed]:tw-fade-out-0",
5160
- "data-[state=closed]:tw-zoom-out-95",
5161
- // position animations
5162
- "data-[side=bottom]:tw-slide-in-from-top-2",
5163
- "data-[side=left]:tw-slide-in-from-right-2",
5164
- "data-[side=right]:tw-slide-in-from-left-2",
5165
- "data-[side=top]:tw-slide-in-from-bottom-2",
5166
- className
5167
- ),
5168
- children: [
5169
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ScrollUpButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronUp, {}) }),
5170
- /* @__PURE__ */ jsxRuntime.jsx(
5171
- SelectPrimitive__namespace.Viewport,
5172
- {
5173
- className: cn({
5174
- "tw-h-[var(--radix-select-trigger-height)] tw-w-full tw-min-w-[var(--radix-select-trigger-width)]": position === "popper"
5175
- }),
5176
- children
5177
- }
5317
+ }) => {
5318
+ const isLegacy = useIsLegacyBrand();
5319
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : "default";
5320
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { container, children: /* @__PURE__ */ jsxRuntime.jsxs(
5321
+ SelectPrimitive__namespace.Content,
5322
+ {
5323
+ ...props,
5324
+ ref,
5325
+ position,
5326
+ sideOffset,
5327
+ "data-variant": effectiveVariant,
5328
+ className: cn(
5329
+ "tailwindcss-preflight",
5330
+ "tw-group/select-content",
5331
+ // Floating tier above Modal (1051): Tooltip 1060 / Combobox·Popover·Select 1055 / Modal 1051 / DropdownMenu.SubContent 1041 / FullScreenModal 1039
5332
+ "tw-z-[1055]",
5333
+ // layout
5334
+ "tw-flex tw-flex-col",
5335
+ "tw-p-1",
5336
+ "data-[variant=default]:tw-p-0",
5337
+ "tw-overflow-hidden",
5338
+ "tw-origin-[--radix-select-content-transform-origin]",
5339
+ // sizing
5340
+ "tw-max-h-[var(--radix-select-content-available-height)]",
5341
+ "tw-min-w-[var(--radix-select-trigger-width)]",
5342
+ // appearance
5343
+ "tw-bg-popover",
5344
+ "tw-text-popover-foreground",
5345
+ "tw-shadow-md",
5346
+ "tw-ring-1",
5347
+ "tw-ring-foreground/10",
5348
+ "tw-rounded-lg",
5349
+ "data-[variant=default]:tw-rounded",
5350
+ // open animation
5351
+ "data-[state=open]:tw-animate-in",
5352
+ "data-[state=open]:tw-fade-in-0",
5353
+ "data-[state=open]:tw-zoom-in-95",
5354
+ // closed animation
5355
+ "data-[state=closed]:tw-animate-out",
5356
+ "data-[state=closed]:tw-fade-out-0",
5357
+ "data-[state=closed]:tw-zoom-out-95",
5358
+ // position animations
5359
+ "data-[side=bottom]:tw-slide-in-from-top-2",
5360
+ "data-[side=left]:tw-slide-in-from-right-2",
5361
+ "data-[side=right]:tw-slide-in-from-left-2",
5362
+ "data-[side=top]:tw-slide-in-from-bottom-2",
5363
+ className
5178
5364
  ),
5179
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ScrollDownButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, {}) })
5180
- ]
5181
- }
5182
- ) });
5365
+ children: [
5366
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ScrollUpButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronUp, {}) }),
5367
+ /* @__PURE__ */ jsxRuntime.jsx(
5368
+ SelectPrimitive__namespace.Viewport,
5369
+ {
5370
+ className: cn({
5371
+ "tw-h-[var(--radix-select-trigger-height)] tw-w-full tw-min-w-[var(--radix-select-trigger-width)]": position === "popper"
5372
+ }),
5373
+ children
5374
+ }
5375
+ ),
5376
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ScrollDownButton, { className: scrollButtonStyles, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, {}) })
5377
+ ]
5378
+ }
5379
+ ) });
5380
+ };
5183
5381
  var SelectGroup = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { ...props, className: cn("tw-flex tw-flex-col tw-gap-0.5", className) });
5184
5382
  var SelectItem = ({
5185
5383
  ref,
@@ -5228,7 +5426,7 @@ var SelectItem = ({
5228
5426
  className
5229
5427
  ),
5230
5428
  children: [
5231
- renderLegacyIcon(icon),
5429
+ icon,
5232
5430
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tw-flex-1 tw-truncate", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children }) }),
5233
5431
  /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { className: "tw-pointer-events-none", children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Check, { className: "tw-size-4" }) })
5234
5432
  ]
@@ -5245,7 +5443,7 @@ var SelectLabel = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
5245
5443
  "tw-text-xs",
5246
5444
  "tw-font-medium",
5247
5445
  "tw-leading-none",
5248
- "tw-text-neutral-500",
5446
+ "tw-text-muted-foreground",
5249
5447
  // Default variant — uppercase tracked label, matches Combobox default
5250
5448
  "group-data-[variant=default]/select-content:tw-uppercase",
5251
5449
  "group-data-[variant=default]/select-content:tw-font-semibold",
@@ -5263,7 +5461,7 @@ var SelectSeparator = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.js
5263
5461
  SelectPrimitive__namespace.Separator,
5264
5462
  {
5265
5463
  ...props,
5266
- className: cn("tw-mx-2 tw-my-1 tw-h-px tw-bg-neutral-100", className)
5464
+ className: cn("tw-mx-2 tw-my-1 tw-h-px tw-bg-border", className)
5267
5465
  }
5268
5466
  );
5269
5467
  var variants4 = classVarianceAuthority.cva(
@@ -5350,7 +5548,8 @@ var variants4 = classVarianceAuthority.cva(
5350
5548
  "aria-disabled:tw-opacity-40"
5351
5549
  ],
5352
5550
  argo: [
5353
- "tw-bg-background",
5551
+ // muted filled input surface — gray, distinct from white containers; not the app-background token
5552
+ "tw-bg-muted",
5354
5553
  "tw-border-input",
5355
5554
  "tw-rounded-lg",
5356
5555
  "tw-text-foreground",
@@ -5397,18 +5596,22 @@ var SelectTrigger = ({
5397
5596
  sizing,
5398
5597
  placeholder,
5399
5598
  ...props
5400
- }) => /* @__PURE__ */ jsxRuntime.jsxs(
5401
- SelectPrimitive__namespace.Trigger,
5402
- {
5403
- ref,
5404
- className: cn(variants4({ variant, state, sizing }), className),
5405
- ...props,
5406
- children: [
5407
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { placeholder }),
5408
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: "tw-size-5 tw-text-muted-foreground" }) })
5409
- ]
5410
- }
5411
- );
5599
+ }) => {
5600
+ const isLegacy = useIsLegacyBrand();
5601
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : variant;
5602
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5603
+ SelectPrimitive__namespace.Trigger,
5604
+ {
5605
+ ref,
5606
+ className: cn(variants4({ variant: effectiveVariant, state, sizing }), className),
5607
+ ...props,
5608
+ children: [
5609
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { placeholder }),
5610
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: "tw-size-5 tw-text-muted-foreground" }) })
5611
+ ]
5612
+ }
5613
+ );
5614
+ };
5412
5615
  var isGroup = (itemOrGroup) => "items" in itemOrGroup;
5413
5616
  var Select = ({
5414
5617
  // root
@@ -5569,7 +5772,8 @@ function Checkbox({
5569
5772
  }) {
5570
5773
  const fallbackId = react.useId();
5571
5774
  const id = idProp?.toString() ?? fallbackId;
5572
- const styleVariant = argo ? "argo" : "default";
5775
+ const isLegacy = useIsLegacyBrand();
5776
+ const styleVariant = !isLegacy || argo ? "argo" : "default";
5573
5777
  const checkboxElement = /* @__PURE__ */ jsxRuntime.jsx(reactCheckbox.Root, { id, ...rest, className: cn(rootVariants2({ variant: styleVariant, className })), children: /* @__PURE__ */ jsxRuntime.jsxs(reactCheckbox.Indicator, { className: cn(indicatorVariants({ variant: styleVariant })), children: [
5574
5778
  /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Check, { className: "tw-hidden tw-size-3 tw-stroke-[4px] group-data-[state=checked]:tw-block" }),
5575
5779
  /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Minus, { className: "tw-hidden tw-size-3 tw-stroke-[4px] group-data-[state=indeterminate]:tw-block" })
@@ -5890,77 +6094,81 @@ var ComboboxChips = ({
5890
6094
  overflow.length
5891
6095
  ] }) })
5892
6096
  ] });
5893
- } });
5894
- var ComboboxContent = ({
5895
- ref,
5896
- align = "start",
5897
- side = "bottom",
5898
- sideOffset = 4,
5899
- alignOffset,
5900
- anchor,
5901
- container,
5902
- className,
5903
- children,
5904
- variant = "default",
5905
- ...popupProps
5906
- }) => /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Portal, { container, children: /* @__PURE__ */ jsxRuntime.jsx(
5907
- combobox.Combobox.Positioner,
5908
- {
5909
- align,
5910
- side,
5911
- sideOffset,
5912
- alignOffset,
5913
- anchor,
5914
- className: "tailwindcss-preflight tw-isolate tw-z-[1055]",
5915
- children: /* @__PURE__ */ jsxRuntime.jsx(
5916
- combobox.Combobox.Popup,
5917
- {
5918
- ref,
5919
- "data-chips": !!anchor,
5920
- "data-variant": variant,
5921
- className: cn(
5922
- "!tw-pointer-events-auto",
5923
- "tw-group/combobox-content",
5924
- "tw-relative",
5925
- "tw-flex tw-flex-col tw-overflow-hidden",
5926
- // sizing
5927
- "tw-max-h-[var(--available-height)]",
5928
- "tw-w-[var(--anchor-width)]",
5929
- "tw-max-w-[var(--available-width)]",
5930
- "tw-origin-[var(--transform-origin)]",
5931
- "data-[chips=true]:tw-min-w-[var(--anchor-width)]",
5932
- // appearance
5933
- "tw-rounded-lg",
5934
- "data-[variant=default]:tw-rounded",
5935
- "tw-bg-popover",
5936
- "tw-text-popover-foreground",
5937
- "tw-shadow-md",
5938
- "tw-ring-1",
5939
- "tw-ring-foreground/10",
5940
- "tw-duration-100",
5941
- // open animation
5942
- "data-open:animate-in",
5943
- "data-open:fade-in-0",
5944
- "data-open:zoom-in-95",
5945
- // closed animation
5946
- "data-closed:animate-out",
5947
- "data-closed:fade-out-0",
5948
- "data-closed:zoom-out-95",
5949
- // position animations
5950
- "data-[side=bottom]:tw-slide-in-from-top-2",
5951
- "data-[side=top]:tw-slide-in-from-bottom-2",
5952
- "data-[side=left]:tw-slide-in-from-right-2",
5953
- "data-[side=right]:tw-slide-in-from-left-2",
5954
- "data-[side=inline-start]:tw-slide-in-from-right-2",
5955
- "data-[side=inline-end]:tw-slide-in-from-left-2",
5956
- className
5957
- ),
5958
- ...popupProps,
5959
- children
5960
- }
5961
- )
5962
- }
5963
- ) });
6097
+ } });
6098
+ var ComboboxContent = ({
6099
+ ref,
6100
+ align = "start",
6101
+ side = "bottom",
6102
+ sideOffset = 4,
6103
+ alignOffset,
6104
+ anchor,
6105
+ container,
6106
+ className,
6107
+ children,
6108
+ variant,
6109
+ ...popupProps
6110
+ }) => {
6111
+ const isLegacy = useIsLegacyBrand();
6112
+ const effectiveVariant = !isLegacy || variant === "argo" ? "argo" : "default";
6113
+ return /* @__PURE__ */ jsxRuntime.jsx(combobox.Combobox.Portal, { container, children: /* @__PURE__ */ jsxRuntime.jsx(
6114
+ combobox.Combobox.Positioner,
6115
+ {
6116
+ align,
6117
+ side,
6118
+ sideOffset,
6119
+ alignOffset,
6120
+ anchor,
6121
+ className: "tailwindcss-preflight tw-isolate tw-z-[1055]",
6122
+ children: /* @__PURE__ */ jsxRuntime.jsx(
6123
+ combobox.Combobox.Popup,
6124
+ {
6125
+ ref,
6126
+ "data-chips": !!anchor,
6127
+ "data-variant": effectiveVariant,
6128
+ className: cn(
6129
+ "!tw-pointer-events-auto",
6130
+ "tw-group/combobox-content",
6131
+ "tw-relative",
6132
+ "tw-flex tw-flex-col tw-overflow-hidden",
6133
+ // sizing
6134
+ "tw-max-h-[var(--available-height)]",
6135
+ "tw-w-[var(--anchor-width)]",
6136
+ "tw-max-w-[var(--available-width)]",
6137
+ "tw-origin-[var(--transform-origin)]",
6138
+ "data-[chips=true]:tw-min-w-[var(--anchor-width)]",
6139
+ // appearance
6140
+ "tw-rounded-lg",
6141
+ "data-[variant=default]:tw-rounded",
6142
+ "tw-bg-popover",
6143
+ "tw-text-popover-foreground",
6144
+ "tw-shadow-md",
6145
+ "tw-ring-1",
6146
+ "tw-ring-foreground/10",
6147
+ "tw-duration-100",
6148
+ // open animation
6149
+ "data-open:animate-in",
6150
+ "data-open:fade-in-0",
6151
+ "data-open:zoom-in-95",
6152
+ // closed animation
6153
+ "data-closed:animate-out",
6154
+ "data-closed:fade-out-0",
6155
+ "data-closed:zoom-out-95",
6156
+ // position animations
6157
+ "data-[side=bottom]:tw-slide-in-from-top-2",
6158
+ "data-[side=top]:tw-slide-in-from-bottom-2",
6159
+ "data-[side=left]:tw-slide-in-from-right-2",
6160
+ "data-[side=right]:tw-slide-in-from-left-2",
6161
+ "data-[side=inline-start]:tw-slide-in-from-right-2",
6162
+ "data-[side=inline-end]:tw-slide-in-from-left-2",
6163
+ className
6164
+ ),
6165
+ ...popupProps,
6166
+ children
6167
+ }
6168
+ )
6169
+ }
6170
+ ) });
6171
+ };
5964
6172
  var ComboboxEmpty = ({
5965
6173
  ref,
5966
6174
  className,
@@ -6159,7 +6367,7 @@ var ComboboxSeparator = ({
6159
6367
  combobox.Combobox.Separator,
6160
6368
  {
6161
6369
  ref,
6162
- className: cn("tw-mx-2 tw-my-1 tw-h-px tw-bg-neutral-100", className),
6370
+ className: cn("tw-mx-2 tw-my-1 tw-h-px tw-bg-border", className),
6163
6371
  ...props
6164
6372
  }
6165
6373
  );
@@ -6193,7 +6401,7 @@ var ComboboxGroupLabel = ({
6193
6401
  "tw-text-xs",
6194
6402
  "tw-font-medium",
6195
6403
  "tw-leading-none",
6196
- "tw-text-neutral-500",
6404
+ "tw-text-muted-foreground",
6197
6405
  "group-data-[variant=default]/combobox-content:tw-uppercase",
6198
6406
  "group-data-[variant=default]/combobox-content:tw-font-semibold",
6199
6407
  "group-data-[variant=default]/combobox-content:tw-tracking-wider",
@@ -6437,10 +6645,12 @@ var MultiCombobox = ({
6437
6645
  itemToChipColor,
6438
6646
  maxVisible = 3
6439
6647
  }) => {
6648
+ const isLegacy = useIsLegacyBrand();
6440
6649
  const itemsProp = _itemsProp ?? [];
6441
6650
  const valueProp = _valueProp ?? [];
6442
- const contentVariant = variant === "argo" ? "argo" : "default";
6443
- const chipVariant = variant === "argo" ? "pill" : "default";
6651
+ const renderArgo = !isLegacy || variant === "argo";
6652
+ const contentVariant = renderArgo ? "argo" : "default";
6653
+ const chipVariant = renderArgo ? "pill" : "default";
6444
6654
  const allFlatItems = itemsProp.flatMap((item) => isGroupItem(item) ? item.items : item);
6445
6655
  const isAllSelected = allFlatItems.length === (valueProp?.length ?? 0);
6446
6656
  const defaultFilter3 = combobox.Combobox.useFilter({
@@ -6555,7 +6765,7 @@ var Textarea = ({
6555
6765
  containerClassName,
6556
6766
  // group props
6557
6767
  state = "default",
6558
- variant = "primary",
6768
+ variant,
6559
6769
  sizing,
6560
6770
  focusVariant,
6561
6771
  ...rest
@@ -7068,7 +7278,8 @@ var slotVariants = classVarianceAuthority.cva(
7068
7278
  "tw-justify-center",
7069
7279
  "tw-border",
7070
7280
  "tw-border-input",
7071
- "tw-bg-background",
7281
+ // muted filled input surface — gray, distinct from white containers; not the app-background token
7282
+ "tw-bg-muted",
7072
7283
  "tw-text-foreground",
7073
7284
  "tw-font-medium",
7074
7285
  "tw-tabular-nums",
@@ -7763,8 +7974,8 @@ var helpVariants = classVarianceAuthority.cva(["tw-m-0", "tw-text-xs"], {
7763
7974
  },
7764
7975
  variants: {
7765
7976
  state: {
7766
- default: ["tw-text-neutral-500"],
7767
- error: ["tw-text-error-500"],
7977
+ default: ["tw-text-muted-foreground"],
7978
+ error: ["tw-text-destructive"],
7768
7979
  warning: ["tw-text-warning-500"]
7769
7980
  }
7770
7981
  }
@@ -7881,6 +8092,8 @@ var AnswerSummary = ({
7881
8092
  const [isExpanded, setIsExpanded] = react.useState(false);
7882
8093
  const toggle = () => setIsExpanded((prev) => !prev);
7883
8094
  const count = items.length;
8095
+ const [firstItem] = items;
8096
+ const label = count === 1 && firstItem ? firstItem.question : `${count} questions`;
7884
8097
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "tw-mt-4 tw-flex tw-flex-col tw-gap-4", "aria-label": SECTION_LABELS[variant], children: [
7885
8098
  /* @__PURE__ */ jsxRuntime.jsx(
7886
8099
  CollapsibleStepHeader,
@@ -7888,7 +8101,7 @@ var AnswerSummary = ({
7888
8101
  isExpanded,
7889
8102
  onToggle: toggle,
7890
8103
  variant,
7891
- label: `${count} question${count !== 1 ? "s" : ""}`
8104
+ label
7892
8105
  }
7893
8106
  ),
7894
8107
  isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-flex-col tw-gap-4 tw-pl-5", children: items.map(({ question, answer }, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-flex-col tw-gap-1", children: [
@@ -8392,6 +8605,7 @@ var PromptInputSubmit = ({
8392
8605
  getTooltipText() && /* @__PURE__ */ jsxRuntime.jsx(Tooltip.Content, { placement: "top", variant: "action", children: getTooltipText() })
8393
8606
  ] });
8394
8607
  };
8608
+ var CMDK_HIJACKED_KEYS = /* @__PURE__ */ new Set(["ArrowUp", "ArrowDown", "Home", "End", "Enter"]);
8395
8609
  var promptInputVariants = classVarianceAuthority.cva(
8396
8610
  [
8397
8611
  "tailwindcss-preflight",
@@ -8463,15 +8677,11 @@ var PromptInput = ({
8463
8677
  const textareaId = react.useId();
8464
8678
  const textareaRef = react.useRef(null);
8465
8679
  const [dismissedValue, setDismissedValue] = react.useState(null);
8680
+ if (dismissedValue !== null && value !== dismissedValue) setDismissedValue(null);
8466
8681
  const hasCommands = !!commands && commands.length > 0;
8467
8682
  const valueLooksLikeSlashCommand = value.startsWith("/") && !/\s/.test(value);
8468
8683
  const commandsOpen = hasCommands && valueLooksLikeSlashCommand && value !== dismissedValue;
8469
8684
  const slashFilter = commandsOpen ? value.slice(1) : "";
8470
- react.useEffect(() => {
8471
- if (dismissedValue !== null && value !== dismissedValue) {
8472
- setDismissedValue(null);
8473
- }
8474
- }, [value, dismissedValue]);
8475
8685
  const handleSubmit = () => {
8476
8686
  if (isDisabled) return;
8477
8687
  if (status === "streaming") onAbort?.();
@@ -8499,6 +8709,8 @@ var PromptInput = ({
8499
8709
  if (event.key === "ArrowUp" || event.key === "ArrowDown" || event.key === "Enter") {
8500
8710
  return;
8501
8711
  }
8712
+ } else if (hasCommands && CMDK_HIJACKED_KEYS.has(event.key)) {
8713
+ event.stopPropagation();
8502
8714
  }
8503
8715
  if (event.key === "Enter" && !event.shiftKey && !event.ctrlKey && !event.metaKey) {
8504
8716
  event.preventDefault();
@@ -9106,44 +9318,48 @@ var AlertRoot = ({
9106
9318
  variant,
9107
9319
  argo = false,
9108
9320
  ...rest
9109
- }) => /* @__PURE__ */ jsxRuntime.jsx(
9110
- "div",
9111
- {
9112
- ...rest,
9113
- ref,
9114
- "data-variant": variant,
9115
- "data-argo": argo,
9116
- className: cn(
9117
- "tw-group/alert",
9118
- // layout
9119
- "tw-grid",
9120
- "tw-grid-cols-[0_1fr_auto]",
9121
- "has-[[data-slot=alert-icon]]:tw-grid-cols-[auto_1fr_auto]",
9122
- "has-[[data-slot=alert-icon]]:tw-gap-x-2",
9123
- // fonts
9124
- "tw-text-sm",
9125
- "tw-text-neutral-800",
9126
- "tw-text-left",
9127
- "tw-p-4",
9128
- // border
9129
- "tw-rounded",
9130
- "data-[argo=true]:tw-rounded-lg",
9131
- "tw-border",
9132
- "tw-border-solid",
9133
- // border variants
9134
- "data-[variant=info]:tw-bg-secondary-100",
9135
- "data-[variant=info]:tw-border-secondary-200",
9136
- "data-[variant=warning]:tw-bg-warning-100",
9137
- "data-[variant=warning]:tw-border-warning-300",
9138
- "data-[variant=error]:tw-bg-error-100",
9139
- "data-[variant=error]:tw-border-error-200",
9140
- "data-[variant=success]:tw-bg-primary-100",
9141
- "data-[variant=success]:tw-border-primary-200",
9142
- className
9143
- ),
9144
- children
9145
- }
9146
- );
9321
+ }) => {
9322
+ const isLegacy = useIsLegacyBrand();
9323
+ const renderArgo = !isLegacy || argo;
9324
+ return /* @__PURE__ */ jsxRuntime.jsx(
9325
+ "div",
9326
+ {
9327
+ ...rest,
9328
+ ref,
9329
+ "data-variant": variant,
9330
+ "data-argo": renderArgo,
9331
+ className: cn(
9332
+ "tw-group/alert",
9333
+ // layout
9334
+ "tw-grid",
9335
+ "tw-grid-cols-[0_1fr_auto]",
9336
+ "has-[[data-slot=alert-icon]]:tw-grid-cols-[auto_1fr_auto]",
9337
+ "has-[[data-slot=alert-icon]]:tw-gap-x-2",
9338
+ // fonts
9339
+ "tw-text-sm",
9340
+ "tw-text-neutral-800",
9341
+ "tw-text-left",
9342
+ "tw-p-4",
9343
+ // border
9344
+ "tw-rounded",
9345
+ "data-[argo=true]:tw-rounded-lg",
9346
+ "tw-border",
9347
+ "tw-border-solid",
9348
+ // border variants
9349
+ "data-[variant=info]:tw-bg-secondary-100",
9350
+ "data-[variant=info]:tw-border-secondary-200",
9351
+ "data-[variant=warning]:tw-bg-warning-100",
9352
+ "data-[variant=warning]:tw-border-warning-300",
9353
+ "data-[variant=error]:tw-bg-error-100",
9354
+ "data-[variant=error]:tw-border-error-200",
9355
+ "data-[variant=success]:tw-bg-primary-100",
9356
+ "data-[variant=success]:tw-border-primary-200",
9357
+ className
9358
+ ),
9359
+ children
9360
+ }
9361
+ );
9362
+ };
9147
9363
  var AlertTitle = ({
9148
9364
  ref,
9149
9365
  className,
@@ -9295,6 +9511,7 @@ var ToastDismiss = ({
9295
9511
  "[&_svg]:tw-m-1",
9296
9512
  "tw-text-white",
9297
9513
  "group-data-[variant=default]/toast:[&_svg]:tw-text-popover-foreground",
9514
+ "group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:tw-text-foreground",
9298
9515
  className
9299
9516
  ),
9300
9517
  type: "button",
@@ -9319,6 +9536,7 @@ var ToastDuration = ({
9319
9536
  className: cn(
9320
9537
  "tw-bg-white/30",
9321
9538
  "group-data-[variant=default]/toast:tw-bg-popover-foreground/20",
9539
+ "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-bg-foreground/20",
9322
9540
  "tw-rounded-bl-lg",
9323
9541
  "tw-mx-px",
9324
9542
  // positioning
@@ -9356,6 +9574,7 @@ var ToastTitle = ({
9356
9574
  "tw-self-center",
9357
9575
  "tw-text-white",
9358
9576
  "group-data-[variant=default]/toast:tw-text-popover-foreground",
9577
+ "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground",
9359
9578
  "tw-break-words",
9360
9579
  "tw-font-medium",
9361
9580
  className
@@ -9415,11 +9634,14 @@ var ToastRoot = ({
9415
9634
  duration = Infinity,
9416
9635
  variant = "info",
9417
9636
  loading = false,
9418
- icon: iconProp
9637
+ icon: iconProp,
9638
+ argo
9419
9639
  }) => {
9640
+ const isLegacy = useIsLegacyBrand();
9641
+ const renderArgo = !isLegacy || argo;
9420
9642
  const icon = (() => {
9421
9643
  if (loading) return /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Loader2, { className: "tw-animate-spin" });
9422
- if (iconProp) return renderLegacyIcon(iconProp);
9644
+ if (iconProp) return iconProp;
9423
9645
  if (variant === "default" || variant === null) return null;
9424
9646
  return DEFAULT_VARIANT_ICON[variant];
9425
9647
  })();
@@ -9427,35 +9649,44 @@ var ToastRoot = ({
9427
9649
  sonner.toast.dismiss(id);
9428
9650
  action?.onClick(event);
9429
9651
  };
9430
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-variant": variant, className: cn(variants6({ variant })), children: [
9431
- icon && /* @__PURE__ */ jsxRuntime.jsx(
9432
- "span",
9433
- {
9434
- "data-slot": "toast-icon",
9435
- className: cn(
9436
- "tw-inline-flex",
9437
- "tw-items-center",
9438
- "tw-justify-center",
9439
- "tw-self-center",
9440
- // styles — container at 20px with no padding so the 20px Lucide
9441
- // glyph fills the slot (previous tw-size-4 + tw-p-1 clipped a
9442
- // 16px child into 8px of visible space)
9443
- "tw-aspect-square",
9444
- "tw-size-5",
9445
- "tw-shrink-0",
9446
- '[&_svg:not([class*="tw-size-"])]:tw-size-5',
9447
- "tw-text-white",
9448
- "group-data-[variant=default]/toast:tw-text-popover-foreground"
9652
+ return /* @__PURE__ */ jsxRuntime.jsxs(
9653
+ "div",
9654
+ {
9655
+ "data-variant": variant,
9656
+ "data-argo": renderArgo,
9657
+ className: cn(
9658
+ variants6({ variant }),
9659
+ "data-[variant=default]:data-[argo=true]:tw-bg-background"
9660
+ ),
9661
+ children: [
9662
+ icon && /* @__PURE__ */ jsxRuntime.jsx(
9663
+ "span",
9664
+ {
9665
+ "data-slot": "toast-icon",
9666
+ className: cn(
9667
+ "tw-inline-flex",
9668
+ "tw-items-center",
9669
+ "tw-justify-center",
9670
+ "tw-self-center",
9671
+ "tw-aspect-square",
9672
+ "tw-size-5",
9673
+ "tw-shrink-0",
9674
+ '[&_svg:not([class*="tw-size-"])]:tw-size-5',
9675
+ "tw-text-white",
9676
+ "group-data-[variant=default]/toast:tw-text-popover-foreground",
9677
+ "group-data-[variant=default]/toast:group-data-[argo=true]/toast:tw-text-foreground"
9678
+ ),
9679
+ children: icon
9680
+ }
9449
9681
  ),
9450
- children: icon
9451
- }
9452
- ),
9453
- /* @__PURE__ */ jsxRuntime.jsx(ToastTitle, { children: title }),
9454
- description && /* @__PURE__ */ jsxRuntime.jsx(ToastDescription, { children: description }),
9455
- action && /* @__PURE__ */ jsxRuntime.jsx(ToastAction, { style: action?.actionButtonStyle, onClick: handleActionClick, children: action.label }),
9456
- /* @__PURE__ */ jsxRuntime.jsx(ToastDismiss, { onClick: () => sonner.toast.dismiss(id) }),
9457
- duration !== Infinity && /* @__PURE__ */ jsxRuntime.jsx(ToastDuration, { duration })
9458
- ] });
9682
+ /* @__PURE__ */ jsxRuntime.jsx(ToastTitle, { children: title }),
9683
+ description && /* @__PURE__ */ jsxRuntime.jsx(ToastDescription, { children: description }),
9684
+ action && /* @__PURE__ */ jsxRuntime.jsx(ToastAction, { style: action?.actionButtonStyle, onClick: handleActionClick, children: action.label }),
9685
+ /* @__PURE__ */ jsxRuntime.jsx(ToastDismiss, { onClick: () => sonner.toast.dismiss(id) }),
9686
+ duration !== Infinity && /* @__PURE__ */ jsxRuntime.jsx(ToastDuration, { duration })
9687
+ ]
9688
+ }
9689
+ );
9459
9690
  };
9460
9691
  var toast = ({
9461
9692
  onAutoClose,
@@ -9552,20 +9783,20 @@ var Toaster = ({ gap = 12, visibleToasts = 5, ...props }) => (
9552
9783
  ) })
9553
9784
  );
9554
9785
  var EmptySearchContent = ({ children = "No results found." }) => {
9555
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-px-0 tw-py-[30px] tw-text-center tw-text-sm tw-text-neutral-400", children });
9786
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-px-0 tw-py-[30px] tw-text-center tw-text-sm tw-text-muted-foreground", children });
9556
9787
  };
9557
9788
  var CardContent = ({ children, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, children });
9558
9789
  var CardHeader = ({ children, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx("div", { ...rest, children });
9559
9790
  var cardClassnames = classVarianceAuthority.cva(
9560
- ["tw-bg-white", "tw-flex", "tw-flex-col", "tw-rounded-lg", "tw-gap-4"],
9791
+ ["tw-flex", "tw-flex-col", "tw-rounded-lg", "tw-gap-4", "tw-bg-surface"],
9561
9792
  {
9562
9793
  defaultVariants: {
9563
9794
  padding: "small"
9564
9795
  },
9565
9796
  variants: {
9566
9797
  bordered: {
9567
- true: "tw-border tw-border-solid tw-border-neutral-200",
9568
- false: "tw-shadow-[0_2px_6px_0_rgba(100,135,153,0.13)]"
9798
+ true: "tw-border tw-border-solid tw-border-neutral-200 data-[argo=true]:tw-border-border",
9799
+ false: "tw-shadow-[0_2px_6px_0_rgba(100,135,153,0.13)] data-[argo=true]:tw-shadow-sm"
9569
9800
  },
9570
9801
  padding: {
9571
9802
  none: "tw-p-0",
@@ -9581,7 +9812,7 @@ var cardTitleClassnames = cn(
9581
9812
  "tw-leading-6",
9582
9813
  "tw-font-medium",
9583
9814
  "tw-text-base",
9584
- "tw-neutral-800"
9815
+ "tw-text-foreground"
9585
9816
  );
9586
9817
  var CardTitle = ({ children, className, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn(cardTitleClassnames, className), ...rest, children });
9587
9818
  var Card = ({
@@ -9589,8 +9820,21 @@ var Card = ({
9589
9820
  className,
9590
9821
  bordered = false,
9591
9822
  padding = "small",
9823
+ argo = false,
9592
9824
  ...rest
9593
- }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cardClassnames({ className, bordered, padding }), ...rest, children });
9825
+ }) => {
9826
+ const isLegacy = useIsLegacyBrand();
9827
+ const renderArgo = !isLegacy || argo;
9828
+ return /* @__PURE__ */ jsxRuntime.jsx(
9829
+ "div",
9830
+ {
9831
+ ...rest,
9832
+ "data-argo": renderArgo,
9833
+ className: cardClassnames({ className, bordered, padding }),
9834
+ children
9835
+ }
9836
+ );
9837
+ };
9594
9838
  Card.Header = CardHeader;
9595
9839
  Card.Content = CardContent;
9596
9840
  Card.Title = CardTitle;
@@ -9777,7 +10021,7 @@ var ANIMATION_CLASS_NAME = cn(
9777
10021
  "tw-relative",
9778
10022
  "tw-overflow-hidden",
9779
10023
  "tw-pointer-events-none",
9780
- "tw-bg-neutral-150",
10024
+ "tw-bg-muted",
9781
10025
  // before
9782
10026
  'before:tw-content-[""]',
9783
10027
  "before:tw-opacity-100",
@@ -9845,7 +10089,7 @@ var SkeletonList = ({
9845
10089
  }
9846
10090
  )
9847
10091
  ] });
9848
- var DOT_CLASS_NAME = cn("tw-h-1.5", "tw-w-1.5", "tw-rounded-full", "tw-bg-neutral-700");
10092
+ var DOT_CLASS_NAME = cn("tw-h-1.5", "tw-w-1.5", "tw-rounded-full", "tw-bg-muted-foreground");
9849
10093
  var DotsLoader = ({ className }) => {
9850
10094
  return /* @__PURE__ */ jsxRuntime.jsxs(
9851
10095
  "div",
@@ -9909,11 +10153,13 @@ var Collapse = ({
9909
10153
  );
9910
10154
  };
9911
10155
  var headerVariants = classVarianceAuthority.cva(
9912
- "tw-flex tw-flex-1 tw-items-center tw-gap-2 tw-rounded tw-px-4 tw-py-2.5 tw-text-sm tw-text-neutral-400",
10156
+ "tw-flex tw-flex-1 tw-items-center tw-gap-2 tw-rounded tw-px-4 tw-py-2.5 tw-text-sm tw-text-muted-foreground",
9913
10157
  {
9914
10158
  variants: {
9915
10159
  variant: {
9916
- default: "tw-bg-neutral-100",
10160
+ default: "tw-bg-muted",
10161
+ // White surface kept literal until a `card` token exists (UT-4396);
10162
+ // `background` is the page base, not an elevated panel surface.
9917
10163
  white: "tw-bg-white"
9918
10164
  },
9919
10165
  isDisabled: {
@@ -9929,7 +10175,7 @@ var headerVariants = classVarianceAuthority.cva(
9929
10175
  {
9930
10176
  isDisabled: false,
9931
10177
  hasEnforcedState: false,
9932
- class: "tw-cursor-pointer hover:tw-text-secondary-500"
10178
+ class: "tw-cursor-pointer hover:tw-text-primary"
9933
10179
  }
9934
10180
  ],
9935
10181
  defaultVariants: {
@@ -9979,7 +10225,7 @@ var CollapsiblePanel = ({
9979
10225
  {
9980
10226
  open,
9981
10227
  className: cn(
9982
- "tw-rounded !tw-border !tw-border-solid !tw-border-neutral-200 tw-bg-white",
10228
+ "tw-rounded !tw-border !tw-border-solid !tw-border-border tw-bg-white",
9983
10229
  className
9984
10230
  ),
9985
10231
  header: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -9993,7 +10239,7 @@ var CollapsiblePanel = ({
9993
10239
  onKeyUp: handleKeyUp
9994
10240
  },
9995
10241
  children: [
9996
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-flex-1 tw-items-center tw-gap-2 tw-py-px tw-text-sm tw-font-medium tw-text-neutral-800", children: header }),
10242
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-flex-1 tw-items-center tw-gap-2 tw-py-px tw-text-sm tw-font-medium tw-text-foreground", children: header }),
9997
10243
  !isDisabled && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-ml-auto tw-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.ChevronDown, { className: cn("tw-size-5 group-data-[state=open]:tw-rotate-180") }) })
9998
10244
  ]
9999
10245
  }
@@ -10027,8 +10273,8 @@ var PanelWithDetails = ({
10027
10273
  role: "button",
10028
10274
  tabIndex: 0,
10029
10275
  className: cn(
10030
- "tw-flex tw-cursor-pointer tw-items-center tw-rounded-sm tw-bg-neutral-100 tw-px-4 tw-py-3 tw-text-sm tw-text-neutral-400",
10031
- "hover:tw-text-secondary-500"
10276
+ "tw-flex tw-cursor-pointer tw-items-center tw-rounded-sm tw-bg-muted tw-px-4 tw-py-3 tw-text-sm tw-text-muted-foreground",
10277
+ "hover:tw-text-primary"
10032
10278
  ),
10033
10279
  onClick: () => setIsOpen(!isOpen),
10034
10280
  onKeyUp: handleKeyUp,
@@ -10063,35 +10309,18 @@ var AIGradientsSvg = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "0", h
10063
10309
  ] }) });
10064
10310
 
10065
10311
  // src/components/ThemeProvider/brandToCssVars.ts
10066
- var hexToRgbTriplet = (hex) => {
10067
- const match = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(hex.trim());
10068
- if (!match) return null;
10069
- let body = match[1];
10070
- if (body.length === 3) {
10071
- body = body.split("").map((c) => c + c).join("");
10072
- }
10073
- const r2 = parseInt(body.slice(0, 2), 16);
10074
- const g = parseInt(body.slice(2, 4), 16);
10075
- const b = parseInt(body.slice(4, 6), 16);
10076
- return `${r2} ${g} ${b}`;
10077
- };
10078
10312
  var brandToCssVars = (brand) => {
10079
- const vars = {};
10080
- const colorMap = [
10081
- ["--color-background", brand.colors.background],
10082
- ["--color-foreground", brand.colors.foreground],
10083
- ["--color-muted", brand.colors.muted],
10084
- ["--color-muted-foreground", brand.colors.mutedForeground],
10085
- ["--color-border", brand.colors.border],
10086
- ["--color-primary", brand.colors.primary],
10087
- ["--color-primary-foreground", brand.colors.primaryForeground],
10088
- ["--color-destructive", brand.colors.destructive],
10089
- ["--color-destructive-foreground", brand.colors.destructiveForeground]
10090
- ];
10091
- for (const [name, hex] of colorMap) {
10092
- const triplet = hexToRgbTriplet(hex);
10093
- if (triplet !== null) vars[name] = triplet;
10094
- }
10313
+ const vars = {
10314
+ "--color-background": brand.colors.background,
10315
+ "--color-foreground": brand.colors.foreground,
10316
+ "--color-muted": brand.colors.muted,
10317
+ "--color-muted-foreground": brand.colors.mutedForeground,
10318
+ "--color-border": brand.colors.border,
10319
+ "--color-primary": brand.colors.primary,
10320
+ "--color-primary-foreground": brand.colors.primaryForeground,
10321
+ "--color-destructive": brand.colors.destructive,
10322
+ "--color-destructive-foreground": brand.colors.destructiveForeground
10323
+ };
10095
10324
  if (brand.radii) {
10096
10325
  vars["--radius-sm"] = brand.radii.sm;
10097
10326
  vars["--radius-md"] = brand.radii.md;
@@ -10099,7 +10328,6 @@ var brandToCssVars = (brand) => {
10099
10328
  }
10100
10329
  return vars;
10101
10330
  };
10102
- var ThemeContext = react.createContext(null);
10103
10331
  var ThemeProvider = ({ brand = brandRegistry.keboola, setBrand, children }) => {
10104
10332
  react.useEffect(() => {
10105
10333
  if (typeof document === "undefined") return;
@@ -10327,7 +10555,7 @@ var Root25 = ({
10327
10555
  {
10328
10556
  ref,
10329
10557
  className: cn(
10330
- "tw-flex tw-flex-col tw-gap-4 tw-w-full tw-mx-auto tw-px-6 tw-py-4",
10558
+ "tw-flex tw-flex-col tw-gap-4 tw-w-full tw-mx-auto",
10331
10559
  maxWidthClass[maxWidth],
10332
10560
  className
10333
10561
  ),
@@ -10619,14 +10847,14 @@ var PageToolbar = Object.assign(Root26, {
10619
10847
  });
10620
10848
  var resizableHandleVariants = classVarianceAuthority.cva([
10621
10849
  // base styles
10622
- "tw-bg-neutral-50",
10850
+ "tw-bg-border",
10623
10851
  "tw-relative",
10624
10852
  "tw-flex",
10625
10853
  "tw-w-px",
10626
10854
  "tw-items-center",
10627
10855
  "tw-justify-center",
10628
10856
  // focus styles
10629
- "focus-visible:tw-ring-ring",
10857
+ "focus-visible:tw-ring-primary",
10630
10858
  "focus-visible:tw-ring-1",
10631
10859
  "focus-visible:tw-ring-offset-1",
10632
10860
  "focus-visible:tw-outline-hidden",
@@ -10795,8 +11023,8 @@ var SidebarContent = ({
10795
11023
  "group-last/sidebar-content:after:tw-hidden",
10796
11024
  "!tw-box-border",
10797
11025
  {
10798
- 'before:tw-absolute before:tw-top-0 before:tw-left-0 before:tw-right-0 before:tw-h-px before:tw-bg-neutral-100 before:tw-z-10 before:tw-content-[""]': isBottom || isMiddle,
10799
- 'after:tw-absolute after:tw-bottom-0 after:tw-left-0 after:tw-right-0 after:tw-h-px after:tw-bg-neutral-100 after:tw-z-10 after:tw-content-[""]': isTop || isMiddle
11026
+ 'before:tw-absolute before:tw-top-0 before:tw-left-0 before:tw-right-0 before:tw-h-px before:tw-bg-sidebar-border before:tw-z-10 before:tw-content-[""]': isBottom || isMiddle,
11027
+ 'after:tw-absolute after:tw-bottom-0 after:tw-left-0 after:tw-right-0 after:tw-h-px after:tw-bg-sidebar-border after:tw-z-10 after:tw-content-[""]': isTop || isMiddle
10800
11028
  }
10801
11029
  ),
10802
11030
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -10982,12 +11210,8 @@ var SidebarProvider = ({
10982
11210
  const [isRightDragging, setIsRightDragging] = react.useState(false);
10983
11211
  const [leftDragWidth, setLeftDragWidth] = react.useState(null);
10984
11212
  const [rightDragWidth, setRightDragWidth] = react.useState(null);
10985
- react.useEffect(() => {
10986
- if (leftDragWidth !== null && leftWidth === leftDragWidth) setLeftDragWidth(null);
10987
- }, [leftWidth, leftDragWidth]);
10988
- react.useEffect(() => {
10989
- if (rightDragWidth !== null && rightWidth === rightDragWidth) setRightDragWidth(null);
10990
- }, [rightWidth, rightDragWidth]);
11213
+ if (leftDragWidth !== null && leftWidth === leftDragWidth) setLeftDragWidth(null);
11214
+ if (rightDragWidth !== null && rightWidth === rightDragWidth) setRightDragWidth(null);
10991
11215
  const leftState = useSidebarState({
10992
11216
  defaultMode: defaultLeftMode,
10993
11217
  mode: leftMode,
@@ -11218,7 +11442,7 @@ var SidebarGroupLabel = ({
11218
11442
  "group-data-[state=collapsed]/sidebar:tw-opacity-0",
11219
11443
  "tw-items-center",
11220
11444
  "tw-flex-1",
11221
- "tw-text-neutral-400",
11445
+ "tw-text-muted-foreground",
11222
11446
  "tw-whitespace-nowrap",
11223
11447
  // transition
11224
11448
  "tw-transition-opacity",
@@ -11368,7 +11592,7 @@ var SidebarMenuButton = ({
11368
11592
  ),
11369
11593
  tabIndex: 0,
11370
11594
  children: [
11371
- icon && /* @__PURE__ */ jsxRuntime.jsx(SidebarMenuIcon, { children: renderLegacyIcon(icon) }),
11595
+ icon && /* @__PURE__ */ jsxRuntime.jsx(SidebarMenuIcon, { children: icon }),
11372
11596
  /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slottable, { children })
11373
11597
  ]
11374
11598
  }
@@ -11567,7 +11791,7 @@ var SidebarMenuCard = ({ children, className, icon, title, ...rest }) => {
11567
11791
  ),
11568
11792
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-flex tw-flex-col tw-gap-2", children: [
11569
11793
  /* @__PURE__ */ jsxRuntime.jsxs(Title3, { children: [
11570
- /* @__PURE__ */ jsxRuntime.jsx(SidebarMenuIcon, { className: "tw-p-px", children: renderLegacyIcon(icon) }),
11794
+ /* @__PURE__ */ jsxRuntime.jsx(SidebarMenuIcon, { className: "tw-p-px", children: icon }),
11571
11795
  title
11572
11796
  ] }),
11573
11797
  /* @__PURE__ */ jsxRuntime.jsx(Content10, { className, children })
@@ -12332,7 +12556,7 @@ var NavbarMenuButton = ({
12332
12556
  const Comp = asChild ? reactSlot.Root : "button";
12333
12557
  const isSearchVariant = variant === "search";
12334
12558
  const isEmphasizedVariant = variant === "emphasized";
12335
- const adornment = isSearchVariant ? /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Search, {}) : renderLegacyIcon(icon);
12559
+ const adornment = isSearchVariant ? /* @__PURE__ */ jsxRuntime.jsx(icons_exports.Search, {}) : icon;
12336
12560
  const adornmentVariant = (() => {
12337
12561
  if (isSearchVariant || variant === "icon") return "icon-button";
12338
12562
  if (isEmphasizedVariant) return "icon-accent-emphasized";
@@ -12537,15 +12761,22 @@ Breadcrumb.Link = BreadcrumbLink;
12537
12761
  Breadcrumb.Page = BreadcrumbPage;
12538
12762
  Breadcrumb.Separator = BreadcrumbSeparator;
12539
12763
  Breadcrumb.Ellipsis = BreadcrumbEllipsis;
12540
- var TRIGGER_COMMON = {
12541
- main: "tw-flex tw-justify-center tw-items-center tw-gap-1.5 tw-bg-transparent tw-group/tab-trigger tw-shrink-0",
12542
- border: "tw-border-0 tw-border-b-[3px] tw-border-solid tw-border-transparent",
12543
- spacing: "tw-pt-2.5 tw-pb-5 tw-px-0 tw-m-0",
12544
- font: "tw-font-medium tw-leading-5 tw-text-neutral-400 tw-text-base",
12545
- active: "data-[state=active]:tw-text-secondary-500 data-[state=active]:tw-border-secondary-500",
12546
- disabled: "data-[disabled]:tw-text-neutral-400 data-[disabled]:tw-opacity-50 data-[disabled]:tw-cursor-not-allowed",
12547
- hover: "hover:enabled:tw-text-secondary-500 hover:enabled:tw-border-secondary-500 hover:enabled:tw-cursor-pointer"
12548
- };
12764
+
12765
+ // src/components/Tabs/styles.ts
12766
+ var tabsListWrapperClass = "tw-shrink-0 tw-border-0 tw-border-b tw-border-solid tw-border-border";
12767
+ var tabsListClass = "tw-flex tw-gap-8 tw-shrink-0 tw-w-max";
12768
+ var tabsTriggerGroupClass = "tw-group/tab-trigger-group tw-flex tw-shrink-0 tw-items-center";
12769
+ var tabsTriggerClass = "tw-flex tw-justify-center tw-items-center tw-gap-1.5 tw-bg-transparent tw-shrink-0 tw-border-0 tw-border-b-[3px] tw-border-solid tw-border-transparent tw-pt-2.5 tw-pb-5 tw-px-0 tw-m-0 tw-font-medium tw-leading-5 tw-text-muted-foreground tw-text-base data-[state=active]:tw-text-primary data-[state=active]:tw-border-primary data-[disabled]:tw-text-muted-foreground data-[disabled]:tw-opacity-50 data-[disabled]:tw-cursor-not-allowed group-hover/tab-trigger-group:enabled:tw-text-primary group-hover/tab-trigger-group:enabled:tw-border-primary group-hover/tab-trigger-group:enabled:tw-cursor-pointer";
12770
+ var tabsTriggerCompactClass = "tw-text-sm tw-pb-4";
12771
+ var TabsList = ({ className, children, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(ScrollArea, { orientation: "horizontal", className: tabsListWrapperClass, children: /* @__PURE__ */ jsxRuntime.jsx(RadixTabs__namespace.List, { ...rest, "data-slot": "tabs-list", className: cn(tabsListClass, className), children }) });
12772
+ var TabsTrigger = ({ className, compact = false, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(
12773
+ RadixTabs__namespace.Trigger,
12774
+ {
12775
+ "data-slot": "tabs-trigger",
12776
+ ...rest,
12777
+ className: cn(tabsTriggerClass, compact && tabsTriggerCompactClass, className)
12778
+ }
12779
+ );
12549
12780
  var Tabs2 = ({
12550
12781
  triggers,
12551
12782
  compact = false,
@@ -12555,66 +12786,56 @@ var Tabs2 = ({
12555
12786
  rootClassName,
12556
12787
  listClassName,
12557
12788
  triggerClassName,
12789
+ triggerGroupClassName,
12558
12790
  ...rest
12559
- }) => {
12560
- const triggerClasses = cn(
12561
- ...Object.values(TRIGGER_COMMON),
12562
- { "tw-text-sm tw-pb-4": compact },
12563
- triggerClassName
12564
- );
12565
- return /* @__PURE__ */ jsxRuntime.jsxs(
12566
- RadixTabs__namespace.Root,
12567
- {
12568
- ...rest,
12569
- "data-slot": "tabs-root",
12570
- className: cn("tw-flex tw-flex-col tw-gap-6", rootClassName),
12571
- defaultValue: defaultValue || triggers[0]?.value,
12572
- onValueChange,
12573
- children: [
12574
- /* @__PURE__ */ jsxRuntime.jsx(
12575
- ScrollArea,
12576
- {
12577
- orientation: "horizontal",
12578
- className: "tw-shrink-0 tw-border-0 tw-border-b tw-border-solid tw-border-neutral-200",
12579
- children: /* @__PURE__ */ jsxRuntime.jsx(RadixTabs__namespace.List, { className: cn("tw-flex tw-gap-8 tw-shrink-0", listClassName), children: triggers.map(({ value, title, onClose, ...rest2 }) => {
12580
- if (onClose) {
12581
- return /* @__PURE__ */ jsxRuntime.jsx(
12582
- RadixTabs__namespace.Trigger,
12583
- {
12584
- asChild: true,
12585
- value,
12586
- className: triggerClasses,
12587
- ...rest2,
12588
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
12589
- title,
12590
- /* @__PURE__ */ jsxRuntime.jsx(
12591
- Button,
12592
- {
12593
- variant: "inline",
12594
- size: "icon-3xs",
12595
- disabled: rest2.disabled,
12596
- onClick: () => onClose(value),
12597
- onMouseDown: (e) => e.preventDefault(),
12598
- className: "!tw-size-8 tw-opacity-0 tw-duration-200 group-hover/tab-trigger:tw-opacity-100",
12599
- "aria-label": "Close tab",
12600
- children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.X, { className: "tw-size-4" })
12601
- }
12602
- )
12603
- ] })
12604
- },
12605
- value
12606
- );
12791
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(
12792
+ RadixTabs__namespace.Root,
12793
+ {
12794
+ ...rest,
12795
+ "data-slot": "tabs-root",
12796
+ className: cn("tw-flex tw-flex-col tw-gap-6", rootClassName),
12797
+ defaultValue: defaultValue ?? triggers[0]?.value,
12798
+ onValueChange,
12799
+ children: [
12800
+ /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: listClassName, children: triggers.map(({ value, title, onClose, className: callerClassName, ...triggerRest }) => /* @__PURE__ */ jsxRuntime.jsxs(
12801
+ "div",
12802
+ {
12803
+ className: cn(tabsTriggerGroupClass, triggerGroupClassName),
12804
+ "data-slot": "tabs-trigger-group",
12805
+ children: [
12806
+ /* @__PURE__ */ jsxRuntime.jsx(
12807
+ TabsTrigger,
12808
+ {
12809
+ value,
12810
+ compact,
12811
+ ...triggerRest,
12812
+ className: cn(triggerClassName, callerClassName),
12813
+ children: title
12607
12814
  }
12608
- return /* @__PURE__ */ jsxRuntime.jsx(RadixTabs__namespace.Trigger, { value, className: triggerClasses, ...rest2, children: title }, value);
12609
- }) })
12610
- }
12611
- ),
12612
- children
12613
- ]
12614
- }
12615
- );
12616
- };
12617
- var TabsContent = (props) => /* @__PURE__ */ jsxRuntime.jsx(RadixTabs__namespace.Content, { tabIndex: -1, ...props });
12815
+ ),
12816
+ onClose && /* @__PURE__ */ jsxRuntime.jsx(
12817
+ Button,
12818
+ {
12819
+ type: "button",
12820
+ variant: "inline",
12821
+ size: "icon-3xs",
12822
+ disabled: triggerRest.disabled,
12823
+ onClick: () => onClose(value),
12824
+ onMouseDown: (e) => e.preventDefault(),
12825
+ className: "!tw-size-8 tw-opacity-0 tw-duration-200 focus-visible:tw-opacity-100 group-hover/tab-trigger-group:tw-opacity-100 group-focus-within/tab-trigger-group:tw-opacity-100",
12826
+ "aria-label": typeof title === "string" ? `Close ${title}` : "Close tab",
12827
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons_exports.X, { className: "tw-size-4" })
12828
+ }
12829
+ )
12830
+ ]
12831
+ },
12832
+ value
12833
+ )) }),
12834
+ children
12835
+ ]
12836
+ }
12837
+ );
12838
+ var TabsContent = (props) => /* @__PURE__ */ jsxRuntime.jsx(RadixTabs__namespace.Content, { "data-slot": "tabs-content", tabIndex: -1, ...props });
12618
12839
  var StepperContext = react.createContext({
12619
12840
  orientation: "horizontal"
12620
12841
  });
@@ -12869,7 +13090,7 @@ var TableBody = ({
12869
13090
  {
12870
13091
  className: cn(
12871
13092
  {
12872
- "[&_tr]:tw-border-0 [&_tr]:tw-border-b-neutral-150 [&_tr]:tw-border-b [&_tr]:tw-border-solid [&_tr:last-child]:tw-border-0": withBorderSeparator
13093
+ "[&_tr]:tw-border-0 [&_tr]:tw-border-b-border [&_tr]:tw-border-b [&_tr]:tw-border-solid [&_tr:last-child]:tw-border-0": withBorderSeparator
12873
13094
  },
12874
13095
  className
12875
13096
  ),
@@ -12897,7 +13118,7 @@ var TableHead = ({ className, ...props }) => {
12897
13118
  "th",
12898
13119
  {
12899
13120
  className: cn(
12900
- "tw-px-3 tw-py-2 tw-text-left tw-font-medium tw-whitespace-nowrap [&:has([role=checkbox])]:tw-pr-0 [&>[role=checkbox]]:tw-translate-y-[2px]",
13121
+ "tw-px-3 tw-py-2 tw-text-left tw-font-medium tw-whitespace-nowrap [&:has([role=checkbox])]:tw-pr-0 [&>[role=checkbox]]:tw-translate-y-[2px] focus-within:tw-ring-2 focus-within:tw-ring-primary/50",
12901
13122
  className
12902
13123
  ),
12903
13124
  ...props
@@ -12913,7 +13134,7 @@ var TableHeader = ({
12913
13134
  "thead",
12914
13135
  {
12915
13136
  className: cn(
12916
- "tw-sticky tw-top-0 tw-z-10 [&_tr]:tw-bg-neutral-100 [&_tr]:tw-border-b [&_tr]:tw-border-neutral-150",
13137
+ "tw-sticky tw-top-0 tw-z-10 [&_tr]:tw-bg-muted [&_tr]:tw-border-b [&_tr]:tw-border-border",
12917
13138
  { "tw-shadow-table": withShadow },
12918
13139
  className
12919
13140
  ),
@@ -12925,7 +13146,17 @@ var TableRow = ({
12925
13146
  ref,
12926
13147
  className,
12927
13148
  ...props
12928
- }) => /* @__PURE__ */ jsxRuntime.jsx("tr", { ref, className: cn("hover:tw-bg-neutral-100", className), ...props });
13149
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
13150
+ "tr",
13151
+ {
13152
+ ref,
13153
+ className: cn(
13154
+ "hover:tw-bg-muted/50 aria-selected:tw-bg-accent aria-selected:hover:tw-bg-accent",
13155
+ className
13156
+ ),
13157
+ ...props
13158
+ }
13159
+ );
12929
13160
  var Table = ({
12930
13161
  borderCollapsed = true,
12931
13162
  bordered = false,
@@ -12938,7 +13169,7 @@ var Table = ({
12938
13169
  {
12939
13170
  className: cn(
12940
13171
  "tw-relative tw-w-full",
12941
- bordered && "tw-overflow-auto tw-rounded-[10px] tw-border tw-border-solid tw-border-neutral-150",
13172
+ bordered && "tw-overflow-auto tw-rounded-[10px] tw-border tw-border-solid tw-border-border",
12942
13173
  containerClassName
12943
13174
  ),
12944
13175
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -13005,10 +13236,10 @@ var connectorWrapper = classVarianceAuthority.cva(
13005
13236
  "before:tw-h-full",
13006
13237
  "before:group-last/timeline-item:tw-h-[--connector-line-height]",
13007
13238
  // Solid line
13008
- "before:group-data-[variant=solid]/timeline:tw-bg-neutral-200",
13239
+ "before:group-data-[variant=solid]/timeline:tw-bg-border",
13009
13240
  // Dashed line using gradient
13010
13241
  "before:group-data-[variant=dashed]/timeline:tw-bg-gradient-to-b",
13011
- "before:group-data-[variant=dashed]/timeline:tw-from-neutral-200",
13242
+ "before:group-data-[variant=dashed]/timeline:tw-from-border",
13012
13243
  "before:group-data-[variant=dashed]/timeline:tw-from-50%",
13013
13244
  "before:group-data-[variant=dashed]/timeline:tw-to-transparent",
13014
13245
  "before:group-data-[variant=dashed]/timeline:tw-to-50%",
@@ -13042,17 +13273,17 @@ var connector = classVarianceAuthority.cva(
13042
13273
  variant: {
13043
13274
  none: [],
13044
13275
  label: [
13045
- "tw-bg-neutral-100",
13046
- "tw-text-neutral-300",
13276
+ "tw-bg-muted",
13277
+ "tw-text-muted-foreground",
13047
13278
  "tw-rounded",
13048
13279
  "tw-p-1.5",
13049
13280
  "tw-text-nowrap",
13050
13281
  "tw-text-xs"
13051
13282
  ],
13052
13283
  icon: [
13053
- "tw-bg-white",
13284
+ "tw-bg-background",
13054
13285
  '[&_svg:not([class*="tw-size-"])]:tw-size-4',
13055
- "[&_svg]:tw-text-neutral-300"
13286
+ "[&_svg]:tw-text-muted-foreground"
13056
13287
  ],
13057
13288
  line: [
13058
13289
  "tw-min-w-8",
@@ -13073,7 +13304,7 @@ var connector = classVarianceAuthority.cva(
13073
13304
  // l-shape
13074
13305
  "before:tw-border-l",
13075
13306
  "before:tw-border-b",
13076
- "before:tw-border-neutral-200",
13307
+ "before:tw-border-border",
13077
13308
  "before:tw-rounded-bl",
13078
13309
  // Solid or dashed
13079
13310
  "before:group-data-[variant=dashed]/timeline:tw-border-dashed",
@@ -13393,7 +13624,7 @@ var variants11 = classVarianceAuthority.cva(
13393
13624
  {
13394
13625
  variant: "gutter",
13395
13626
  diff: "default",
13396
- className: ["tw-bg-neutral-100", "tw-text-neutral-400"]
13627
+ className: ["tw-bg-muted", "tw-text-muted-foreground"]
13397
13628
  },
13398
13629
  {
13399
13630
  variant: "gutter",
@@ -13408,7 +13639,7 @@ var variants11 = classVarianceAuthority.cva(
13408
13639
  {
13409
13640
  variant: "code",
13410
13641
  diff: "default",
13411
- className: ["tw-bg-neutral-50", "tw-text-neutral-800"]
13642
+ className: ["tw-bg-background", "tw-text-foreground"]
13412
13643
  },
13413
13644
  {
13414
13645
  variant: "code",
@@ -13432,7 +13663,7 @@ var DiffViewTh = ({ variant = "default", children, className, ...props }) => /*
13432
13663
  {
13433
13664
  ...props,
13434
13665
  className: cn(
13435
- "tw-bg-white",
13666
+ "tw-bg-background",
13436
13667
  "tw-py-3",
13437
13668
  "tw-border-b",
13438
13669
  { "tw-w-14": variant === "gutter" },
@@ -13653,13 +13884,13 @@ var DiffView = ({
13653
13884
  {
13654
13885
  className: cn(
13655
13886
  "tailwindcss-preflight",
13656
- "tw-bg-neutral-100",
13887
+ "tw-bg-muted",
13657
13888
  "tw-border",
13658
13889
  "tw-rounded-2xl",
13659
13890
  "tw-overflow-auto",
13660
13891
  className
13661
13892
  ),
13662
- children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "tw-w-full tw-table-fixed tw-bg-neutral-50", children: [
13893
+ children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "tw-w-full tw-table-fixed tw-bg-background", children: [
13663
13894
  /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "tw-sticky tw-top-0 tw-z-10 tw-shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
13664
13895
  /* @__PURE__ */ jsxRuntime.jsx(DiffViewTh, { variant: "gutter", children: leftTitleGutter }),
13665
13896
  /* @__PURE__ */ jsxRuntime.jsx(DiffViewTh, { children: leftTitle }),
@@ -13676,8 +13907,8 @@ var DiffView = ({
13676
13907
  className: cn(
13677
13908
  "tw-w-full",
13678
13909
  "tw-text-center",
13679
- "tw-bg-secondary-100",
13680
- "hover:tw-bg-secondary-200",
13910
+ "tw-bg-muted",
13911
+ "hover:tw-bg-accent",
13681
13912
  "tw-underline",
13682
13913
  "tw-p-2"
13683
13914
  ),
@@ -13857,6 +14088,8 @@ var createDiffHighlightExtension = () => {
13857
14088
  var updateHighlightedLines = (view, lines, classification) => {
13858
14089
  view.dispatch({ effects: setHighlightedLines.of({ lines, classification }) });
13859
14090
  };
14091
+ var EMPTY_LINES = /* @__PURE__ */ new Set();
14092
+ var EMPTY_CLASSIFICATION = /* @__PURE__ */ new Map();
13860
14093
  var MergePane = ({
13861
14094
  value,
13862
14095
  highlightedLines,
@@ -13866,7 +14099,8 @@ var MergePane = ({
13866
14099
  header,
13867
14100
  headerClassName,
13868
14101
  className,
13869
- onScrollDOMReady
14102
+ onScrollDOMReady,
14103
+ deleted = false
13870
14104
  }) => {
13871
14105
  const editorRef = react.useRef(null);
13872
14106
  const extensions = react.useMemo(
@@ -13875,11 +14109,11 @@ var MergePane = ({
13875
14109
  view.EditorView.theme({
13876
14110
  "&.cm-editor": {
13877
14111
  height: "100%",
13878
- backgroundColor: colors3__default.default.neutral[50],
14112
+ backgroundColor: deleted ? colors3__default.default.error[100] : colors3__default.default.neutral[50],
13879
14113
  outline: "none"
13880
14114
  },
13881
14115
  ".cm-gutters": {
13882
- backgroundColor: colors3__default.default.neutral[100]
14116
+ backgroundColor: deleted ? colors3__default.default.error[200] : colors3__default.default.neutral[100]
13883
14117
  },
13884
14118
  "*": { lineHeight: `${LINE_HEIGHT_PX}px` },
13885
14119
  ".cm-lineNumbers .cm-gutterElement": { padding: "0 0 0 25px" }
@@ -13892,20 +14126,27 @@ var MergePane = ({
13892
14126
  }
13893
14127
  })
13894
14128
  ],
13895
- []
14129
+ [deleted]
13896
14130
  );
13897
14131
  react.useEffect(() => {
13898
14132
  const view = editorRef.current?.view;
13899
- if (view) {
13900
- updateHighlightedLines(view, highlightedLines, lineClassification);
13901
- }
13902
- }, [highlightedLines, lineClassification]);
14133
+ if (!view) return;
14134
+ updateHighlightedLines(
14135
+ view,
14136
+ deleted ? EMPTY_LINES : highlightedLines,
14137
+ deleted ? EMPTY_CLASSIFICATION : lineClassification
14138
+ );
14139
+ }, [highlightedLines, lineClassification, deleted]);
13903
14140
  const handleCreateEditor = react.useCallback(
13904
14141
  (view) => {
13905
- updateHighlightedLines(view, highlightedLines, lineClassification);
14142
+ updateHighlightedLines(
14143
+ view,
14144
+ deleted ? EMPTY_LINES : highlightedLines,
14145
+ deleted ? EMPTY_CLASSIFICATION : lineClassification
14146
+ );
13906
14147
  onScrollDOMReady?.(view.scrollDOM);
13907
14148
  },
13908
- [highlightedLines, lineClassification, onScrollDOMReady]
14149
+ [highlightedLines, lineClassification, onScrollDOMReady, deleted]
13909
14150
  );
13910
14151
  react.useEffect(() => {
13911
14152
  return () => onScrollDOMReady?.(null);
@@ -13918,22 +14159,42 @@ var MergePane = ({
13918
14159
  observer.observe(wrapper);
13919
14160
  return () => observer.disconnect();
13920
14161
  }, []);
13921
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("tw-flex tw-min-w-0 tw-flex-1 tw-flex-col tw-overflow-hidden", className), children: [
13922
- header && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("tw-bg-white tw-px-4 tw-py-3", headerClassName), children: header }),
13923
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-h-0 tw-flex-1 tw-flex-col [&_>div]:tw-h-full", children: /* @__PURE__ */ jsxRuntime.jsx(
13924
- CodeMirror__default.default,
13925
- {
13926
- ref: editorRef,
13927
- height: "100%",
13928
- value,
13929
- onChange,
13930
- extensions,
13931
- readOnly,
13932
- onCreateEditor: handleCreateEditor,
13933
- basicSetup: { lineNumbers: true, drawSelection: false }
13934
- }
13935
- ) })
13936
- ] });
14162
+ return /* @__PURE__ */ jsxRuntime.jsxs(
14163
+ "div",
14164
+ {
14165
+ className: cn(
14166
+ "tw-flex tw-min-w-0 tw-flex-1 tw-flex-col tw-overflow-hidden",
14167
+ className,
14168
+ deleted && "tw-border-error-300"
14169
+ ),
14170
+ children: [
14171
+ header && /* @__PURE__ */ jsxRuntime.jsx(
14172
+ "div",
14173
+ {
14174
+ className: cn(
14175
+ "tw-px-4 tw-py-3",
14176
+ deleted ? "tw-border-b tw-border-error-200 tw-bg-error-100" : "tw-bg-background",
14177
+ headerClassName
14178
+ ),
14179
+ children: header
14180
+ }
14181
+ ),
14182
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "tw-flex tw-h-0 tw-flex-1 tw-flex-col [&_>div]:tw-h-full", children: /* @__PURE__ */ jsxRuntime.jsx(
14183
+ CodeMirror__default.default,
14184
+ {
14185
+ ref: editorRef,
14186
+ height: "100%",
14187
+ value,
14188
+ onChange,
14189
+ extensions,
14190
+ readOnly,
14191
+ onCreateEditor: handleCreateEditor,
14192
+ basicSetup: { lineNumbers: true, drawSelection: false }
14193
+ }
14194
+ ) })
14195
+ ]
14196
+ }
14197
+ );
13937
14198
  };
13938
14199
  var useScrollSync = () => {
13939
14200
  const scrollersRef = react.useRef([]);
@@ -13994,6 +14255,8 @@ var useScrollSync = () => {
13994
14255
  }, []);
13995
14256
  return { registerScroller, registerFollower };
13996
14257
  };
14258
+ var EMPTY_LINES2 = /* @__PURE__ */ new Set();
14259
+ var EMPTY_CLASSIFICATION2 = /* @__PURE__ */ new Map();
13997
14260
  var MergeEditor = ({
13998
14261
  mergeValue,
13999
14262
  handleMergeChange,
@@ -14017,14 +14280,17 @@ var MergeEditor = ({
14017
14280
  middleClassName,
14018
14281
  rightHeader,
14019
14282
  className,
14020
- argo
14283
+ argo,
14284
+ leftDeleted = false,
14285
+ rightDeleted = false
14021
14286
  }) => {
14022
14287
  const { registerScroller, registerFollower } = useScrollSync();
14288
+ const anySideDeleted = leftDeleted || rightDeleted;
14023
14289
  return /* @__PURE__ */ jsxRuntime.jsxs(
14024
14290
  "div",
14025
14291
  {
14026
14292
  className: cn(
14027
- "tw-flex tw-h-full tw-min-h-0 tw-overflow-hidden tw-bg-white tw-gap-3",
14293
+ "tw-flex tw-h-full tw-min-h-0 tw-overflow-hidden tw-bg-background tw-gap-3",
14028
14294
  className
14029
14295
  ),
14030
14296
  children: [
@@ -14036,14 +14302,15 @@ var MergeEditor = ({
14036
14302
  lineClassification: leftClassification,
14037
14303
  readOnly: true,
14038
14304
  header: leftHeader,
14039
- className: "tw-rounded-r-lg tw-border tw-border-neutral-200",
14040
- onScrollDOMReady: registerScroller(0)
14305
+ className: "tw-rounded-r-lg tw-border tw-border-border",
14306
+ onScrollDOMReady: registerScroller(0),
14307
+ deleted: leftDeleted
14041
14308
  }
14042
14309
  ),
14043
14310
  /* @__PURE__ */ jsxRuntime.jsx(
14044
14311
  AcceptControls,
14045
14312
  {
14046
- conflicts: leftConflicts,
14313
+ conflicts: leftDeleted ? [] : leftConflicts,
14047
14314
  side: "left",
14048
14315
  onAccept: acceptLeft,
14049
14316
  onDismiss: dismissLeft,
@@ -14055,19 +14322,19 @@ var MergeEditor = ({
14055
14322
  MergePane,
14056
14323
  {
14057
14324
  value: mergeValue,
14058
- highlightedLines: mergeHighlightedLines,
14059
- lineClassification: mergeClassification,
14325
+ highlightedLines: anySideDeleted ? EMPTY_LINES2 : mergeHighlightedLines,
14326
+ lineClassification: anySideDeleted ? EMPTY_CLASSIFICATION2 : mergeClassification,
14060
14327
  onChange: handleMergeChange,
14061
14328
  header: middleHeader,
14062
14329
  headerClassName: middleHeaderClassName,
14063
- className: cn("tw-border tw-border-neutral-200 tw-rounded-lg", middleClassName),
14330
+ className: cn("tw-border tw-border-border tw-rounded-lg", middleClassName),
14064
14331
  onScrollDOMReady: registerScroller(1)
14065
14332
  }
14066
14333
  ),
14067
14334
  /* @__PURE__ */ jsxRuntime.jsx(
14068
14335
  AcceptControls,
14069
14336
  {
14070
- conflicts: rightConflicts,
14337
+ conflicts: rightDeleted ? [] : rightConflicts,
14071
14338
  side: "right",
14072
14339
  onAccept: acceptRight,
14073
14340
  onDismiss: dismissRight,
@@ -14083,8 +14350,9 @@ var MergeEditor = ({
14083
14350
  lineClassification: rightClassification,
14084
14351
  readOnly: true,
14085
14352
  header: rightHeader,
14086
- className: "tw-rounded-l-lg tw-border tw-border-neutral-200",
14087
- onScrollDOMReady: registerScroller(2)
14353
+ className: "tw-rounded-l-lg tw-border tw-border-border",
14354
+ onScrollDOMReady: registerScroller(2),
14355
+ deleted: rightDeleted
14088
14356
  }
14089
14357
  )
14090
14358
  ]
@@ -14092,13 +14360,13 @@ var MergeEditor = ({
14092
14360
  );
14093
14361
  };
14094
14362
  var PaneHeader = ({ label, sublabel }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
14095
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "tw-m-0 tw-text-sm tw-font-medium tw-text-neutral-900", children: label }),
14096
- sublabel && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "tw-m-0 tw-text-xs tw-text-neutral-400", children: sublabel })
14363
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "tw-m-0 tw-text-sm tw-font-medium tw-text-foreground", children: label }),
14364
+ sublabel && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "tw-m-0 tw-text-xs tw-text-muted-foreground", children: sublabel })
14097
14365
  ] });
14098
14366
  var ConflictStatusIndicator = ({ remainingConflicts, remainingSafeChanges }) => {
14099
14367
  const hasConflicts = remainingConflicts > 0;
14100
14368
  const allDone = !hasConflicts && remainingSafeChanges === 0;
14101
- const colorClass = hasConflicts ? "tw-text-warning-500" : allDone ? "tw-text-primary-500" : "tw-text-neutral-400";
14369
+ const colorClass = hasConflicts ? "tw-text-warning-500" : allDone ? "tw-text-primary-500" : "tw-text-muted-foreground";
14102
14370
  const parts = [];
14103
14371
  if (hasConflicts) {
14104
14372
  parts.push(`${remainingConflicts} conflict${remainingConflicts !== 1 ? "s" : ""}`);
@@ -14918,6 +15186,10 @@ var MIN_SCALE = 0.5;
14918
15186
  var MAX_SCALE = 3;
14919
15187
  var ZOOM_STEP = 0.1;
14920
15188
  var ZoomableSvg = ({ html, copyText, className }) => {
15189
+ const safeHtml = react.useMemo(
15190
+ () => DOMPurify__default.default.sanitize(html, { USE_PROFILES: { svg: true, svgFilters: true } }),
15191
+ [html]
15192
+ );
14921
15193
  const containerRef = react.useRef(null);
14922
15194
  const [scale, setScale] = react.useState(1);
14923
15195
  const [translate, setTranslate] = react.useState({ x: 0, y: 0 });
@@ -15013,7 +15285,7 @@ var ZoomableSvg = ({ html, copyText, className }) => {
15013
15285
  isFullscreen && "tw-h-full [&>svg]:tw-h-full"
15014
15286
  ),
15015
15287
  style: { transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})` },
15016
- dangerouslySetInnerHTML: { __html: html }
15288
+ dangerouslySetInnerHTML: { __html: safeHtml }
15017
15289
  }
15018
15290
  )
15019
15291
  }
@@ -15066,7 +15338,7 @@ var ZoomableSvg = ({ html, copyText, className }) => {
15066
15338
  "div",
15067
15339
  {
15068
15340
  role: "presentation",
15069
- className: "tw-fixed tw-inset-0 tw-z-[1060] tw-bg-neutral-50 tw-p-4",
15341
+ className: "tw-fixed tw-inset-0 tw-z-[1060] tw-bg-muted tw-p-4",
15070
15342
  onClick: stopPropagation2,
15071
15343
  children: diagramContent
15072
15344
  }
@@ -15076,7 +15348,7 @@ var ZoomableSvg = ({ html, copyText, className }) => {
15076
15348
  "div",
15077
15349
  {
15078
15350
  className: cn(
15079
- "tw-overflow-hidden tw-rounded-md tw-border tw-border-neutral-150 tw-bg-neutral-50",
15351
+ "tw-overflow-hidden tw-rounded-md tw-border tw-border-border tw-bg-muted",
15080
15352
  className
15081
15353
  ),
15082
15354
  children: diagramContent
@@ -15085,7 +15357,7 @@ var ZoomableSvg = ({ html, copyText, className }) => {
15085
15357
  };
15086
15358
  var ButtonToolbar = ({ value, children }) => {
15087
15359
  if (!value && !children) return null;
15088
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-pointer-events-auto tw-ml-auto tw-mr-4 tw-flex tw-w-fit tw-gap-1 tw-overflow-visible tw-rounded-lg tw-border tw-border-solid tw-border-neutral-150 !tw-bg-white tw-p-[3px] tw-shadow", children: [
15360
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "tw-pointer-events-auto tw-ml-auto tw-mr-4 tw-flex tw-w-fit tw-gap-1 tw-overflow-visible tw-rounded-lg tw-border tw-border-solid tw-border-border !tw-bg-background tw-p-[3px] tw-shadow", children: [
15089
15361
  !!value && /* @__PURE__ */ jsxRuntime.jsx(ClipboardButton, { size: "icon-sm", variant: "invisible", text: value }),
15090
15362
  children
15091
15363
  ] });
@@ -15239,7 +15511,7 @@ var CodeEditor = ({
15239
15511
  "div",
15240
15512
  {
15241
15513
  className: cn(
15242
- "tw-relative tw-flex tw-min-h-0 tw-flex-col [&_.cm-mergeViewEditor]:tw-overflow-visible [&_.cm-mergeViewEditors]:tw-h-full [&_.cm-mergeView]:tw-h-full [&_>div]:tw-h-full [&_>div]:tw-overflow-auto [&_>div]:tw-bg-neutral-50",
15514
+ "tw-relative tw-flex tw-min-h-0 tw-flex-col [&_.cm-mergeViewEditor]:tw-overflow-visible [&_.cm-mergeViewEditors]:tw-h-full [&_.cm-mergeView]:tw-h-full [&_>div]:tw-h-full [&_>div]:tw-overflow-auto [&_>div]:tw-bg-background",
15243
15515
  { "tw-mt-5": !!renderAdditionalButtons },
15244
15516
  className
15245
15517
  ),
@@ -15833,26 +16105,6 @@ Object.defineProperty(exports, "Slot", {
15833
16105
  enumerable: true,
15834
16106
  get: function () { return reactSlot.Slot; }
15835
16107
  });
15836
- Object.defineProperty(exports, "defaultFilter", {
15837
- enumerable: true,
15838
- get: function () { return cmdk.defaultFilter; }
15839
- });
15840
- Object.defineProperty(exports, "useCommandState", {
15841
- enumerable: true,
15842
- get: function () { return cmdk.useCommandState; }
15843
- });
15844
- Object.defineProperty(exports, "REGEXP_ONLY_CHARS", {
15845
- enumerable: true,
15846
- get: function () { return inputOtp.REGEXP_ONLY_CHARS; }
15847
- });
15848
- Object.defineProperty(exports, "REGEXP_ONLY_DIGITS", {
15849
- enumerable: true,
15850
- get: function () { return inputOtp.REGEXP_ONLY_DIGITS; }
15851
- });
15852
- Object.defineProperty(exports, "REGEXP_ONLY_DIGITS_AND_CHARS", {
15853
- enumerable: true,
15854
- get: function () { return inputOtp.REGEXP_ONLY_DIGITS_AND_CHARS; }
15855
- });
15856
16108
  Object.defineProperty(exports, "brandSchema", {
15857
16109
  enumerable: true,
15858
16110
  get: function () { return brandRegistry.brandSchema; }
@@ -15877,6 +16129,26 @@ Object.defineProperty(exports, "keboolaLegacy", {
15877
16129
  enumerable: true,
15878
16130
  get: function () { return brandRegistry.keboolaLegacy; }
15879
16131
  });
16132
+ Object.defineProperty(exports, "defaultFilter", {
16133
+ enumerable: true,
16134
+ get: function () { return cmdk.defaultFilter; }
16135
+ });
16136
+ Object.defineProperty(exports, "useCommandState", {
16137
+ enumerable: true,
16138
+ get: function () { return cmdk.useCommandState; }
16139
+ });
16140
+ Object.defineProperty(exports, "REGEXP_ONLY_CHARS", {
16141
+ enumerable: true,
16142
+ get: function () { return inputOtp.REGEXP_ONLY_CHARS; }
16143
+ });
16144
+ Object.defineProperty(exports, "REGEXP_ONLY_DIGITS", {
16145
+ enumerable: true,
16146
+ get: function () { return inputOtp.REGEXP_ONLY_DIGITS; }
16147
+ });
16148
+ Object.defineProperty(exports, "REGEXP_ONLY_DIGITS_AND_CHARS", {
16149
+ enumerable: true,
16150
+ get: function () { return inputOtp.REGEXP_ONLY_DIGITS_AND_CHARS; }
16151
+ });
15880
16152
  exports.Alert = Alert;
15881
16153
  exports.AnswerSummary = AnswerSummary;
15882
16154
  exports.AppShell = AppShell;
@@ -16007,13 +16279,13 @@ exports.kbdVariants = kbdVariants;
16007
16279
  exports.keys = keys;
16008
16280
  exports.mergeRefs = mergeRefs;
16009
16281
  exports.resolveStorybookBrand = resolveStorybookBrand;
16010
- exports.setLegacyIconRenderer = setLegacyIconRenderer;
16011
16282
  exports.setServerFieldErrors = setServerFieldErrors;
16012
16283
  exports.themeToolbarBrands = themeToolbarBrands;
16013
16284
  exports.toast = toast;
16014
16285
  exports.useAppForm = useAppForm;
16015
16286
  exports.useAutosizeInput = useAutosizeInput;
16016
16287
  exports.useInputOtpContext = useInputOtpContext;
16288
+ exports.useIsLegacyBrand = useIsLegacyBrand;
16017
16289
  exports.useMergeDiff = useMergeDiff;
16018
16290
  exports.useNotification = useNotification;
16019
16291
  exports.useScrollbarPosition = useScrollbarPosition;