@rebasepro/ui 0.19.1 → 0.19.2-canary.g09316f6

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.es.js CHANGED
@@ -60,7 +60,7 @@ var controlPaddingMixin = {
60
60
  "2xl": "px-10"
61
61
  };
62
62
  var focusedDisabled = "focus-visible:ring-0 focus-visible:ring-offset-0";
63
- var focusedInvisibleMixin = "focus:bg-opacity-70 focus:bg-surface-accent-100 focus:dark:bg-white/[0.07] focus:bg-surface-accent-100/70";
63
+ var focusedInvisibleMixin = "focus:bg-surface-field-hover";
64
64
  /**
65
65
  * The focus ring — the single most-seen interaction state in the product, and
66
66
  * until now the least tended.
@@ -82,35 +82,57 @@ var focusedClasses = "z-30 outline-none ring-2 ring-primary/60 ring-offset-0 rin
82
82
  /**
83
83
  * Field surfaces.
84
84
  *
85
- * The inset top hairline is the whole difference between a field that reads as
86
- * a filled rectangle and one that reads as recessed into the surface. It is a
87
- * 1px inset highlight, not a gradient — the same device `.frame` already uses
88
- * on the marketing site, and the flat-surface rule stands.
85
+ * A field is the one surface that goes the other way: it is INSET into
86
+ * whatever holds it, so `surface-field` is an alpha fill rather than a solid,
87
+ * and it composes over a card, the sheet or a dialog alike. It also carries
88
+ * the hairline: a field is an object (DESIGN.md rule 2), and without the line
89
+ * a 4% fill on a card reads as a soft slab rather than a control — measured on
90
+ * the product form, eight of them in a row looked like a wall. The reference
91
+ * draws every input with its 1px edge, on both themes.
89
92
  *
90
- * Light mode gets none: on a white page the highlight has nothing to catch.
93
+ * The 1px inset top highlight that used to sit here was the recessed-edge
94
+ * device from before the field had a border; with a real hairline above it
95
+ * the two stacked into a doubled top edge. The border does its work now.
96
+ *
97
+ * Exactly one element carries this mixin per field — the box, never the
98
+ * input inside it — so the alpha fill and its hover composite once.
91
99
  */
92
- var fieldBackgroundMixin = "bg-surface-accent-200/50 dark:bg-white/[0.055] dark:shadow-[inset_0_1px_0_rgb(255_255_255/0.045)]";
93
- var fieldBackgroundInvisibleMixin = "bg-surface-accent-200/0 dark:bg-white/0";
94
- var fieldBackgroundDisabledMixin = "bg-surface-accent-200/50 dark:bg-white/[0.03]";
100
+ var fieldBackgroundMixin = "bg-surface-field border border-hairline";
101
+ var fieldBackgroundInvisibleMixin = "bg-transparent";
102
+ var fieldBackgroundDisabledMixin = "bg-surface-field/60";
95
103
  /**
96
104
  * `transition-colors` here, because every other interactive surface in the kit
97
105
  * has it and fields did not — `cardClickableMixin` eases, a TextField snapped.
98
106
  * On a form of eight fields that difference is the whole feel of the screen.
99
107
  */
100
- var fieldBackgroundHoverMixin = "transition-colors duration-150 hover:bg-surface-accent-200/70 hover:dark:bg-white/[0.09]";
101
- var defaultBorderMixin = "border-surface-200 dark:border-surface-700/60";
102
- var paperMixin = "bg-white rounded-lg dark:bg-surface-900 border border-surface-200 dark:border-surface-700";
103
- var cardMixin = "bg-white dark:bg-surface-900 rounded-xl border border-surface-200 dark:border-surface-700/60";
108
+ var fieldBackgroundHoverMixin = "transition-colors duration-150 hover:bg-surface-field-hover";
109
+ /**
110
+ * The hairline. One value per theme (`--hairline` in theme.css), and where it
111
+ * goes matters more than what it is: a line marks an OBJECT — a card on the
112
+ * sheet, a field, a floating surface. It does not mark a region: a tile inside
113
+ * a card, a row, a segmented track, a button, a chip are fills, and the
114
+ * lightness step between them is the whole separation. One exception, and it
115
+ * is the sheet's own edge against the frame: that step is about 3 L* on both
116
+ * themes and did not read on a real screen, so the Scaffold draws this line
117
+ * there. Measured before this existed, the panel drew the same line on every
118
+ * card and every tile as well, and with only two surface values available the
119
+ * line was doing the work a step should have done.
120
+ */
121
+ var defaultBorderMixin = "border-hairline";
122
+ var paperMixin = "bg-surface-card rounded-lg border border-hairline-strong";
123
+ var cardMixin = "bg-surface-card rounded-xl border border-hairline";
104
124
  /**
105
125
  * An inset well: code, a query, a log tail, a connection string.
106
126
  *
107
127
  * It must read as *recessed into* the surface holding it, which means darker
108
- * than that surface in dark mode — `surface-950` under a `surface-900` card.
109
- * The obvious-looking `surface-800` is a trap: `#111111` is LIGHTER than the
110
- * `#0a0a0a` card around it, so the well appears to float above the thing it is
111
- * set into. Pair with `font-mono`; this mixin carries the surface only.
128
+ * than that surface in dark mode. Cards now sit at `surface-card` (#181818),
129
+ * so #0a0a0a is already fourteen units below and reads as a well; #000 was
130
+ * tuned for the old #0a card and is now harsher than it needs to be. That value
131
+ * is the `surface-well` role (theme.css), the one surface that goes DOWN the
132
+ * ladder on purpose. Pair with `font-mono`; this mixin carries the surface
133
+ * only.
112
134
  */
113
- var codeSurfaceMixin = "bg-surface-100 dark:bg-surface-950 rounded-md";
135
+ var codeSurfaceMixin = "bg-surface-well rounded-md";
114
136
  /**
115
137
  * The accent, used as TEXT.
116
138
  *
@@ -129,8 +151,23 @@ var codeSurfaceMixin = "bg-surface-100 dark:bg-surface-950 rounded-md";
129
151
  * the other way and #0070F4 is already correct.
130
152
  */
131
153
  var accentTextMixin = "text-primary dark:text-primary-light";
132
- var cardClickableMixin = "hover:bg-primary/5 dark:hover:bg-primary/5 cursor-pointer transition-colors duration-150";
154
+ /**
155
+ * Hover on a SOLID surface goes one step lighter, and it stays neutral. The
156
+ * previous `hover:bg-primary/5` tinted every clickable card blue, which spent
157
+ * the brand colour on a state that carries no meaning; on the dark ladder it
158
+ * also read as a hue shift rather than a lift.
159
+ */
160
+ var cardClickableMixin = "hover:bg-surface-card-hover cursor-pointer transition-colors duration-150";
133
161
  var cardSelectedMixin = "bg-primary-bg/30 dark:bg-primary-bg/10 ring-1 ring-primary/75";
162
+ /**
163
+ * Hover on a TRANSPARENT ground — a nav item, a menu item, a list row, a tree
164
+ * row. `surface-hover` is an alpha fill, so it lifts whatever it lands on by
165
+ * the same amount, and `surface-active` is the same idea one step further for
166
+ * the selected row when no hue is wanted. Do not use these on a solid card:
167
+ * an alpha fill REPLACES a solid background rather than tinting it.
168
+ */
169
+ var surfaceHoverMixin = "hover:bg-surface-hover transition-colors duration-150";
170
+ var surfaceActiveMixin = "bg-surface-active";
134
171
  //#endregion
135
172
  //#region src/util/cls.ts
136
173
  function cls(...classes) {
@@ -174,7 +211,7 @@ function hashString(str) {
174
211
  var CONTRAST_TARGET = 4.6;
175
212
  /** Page backgrounds the outlined variant sits on: `bg-white` and `surface-950`. */
176
213
  var PAGE_LIGHT = "#ffffff";
177
- var PAGE_DARK = "#0a0a0a";
214
+ var PAGE_DARK = "#181818";
178
215
  function toRgb(hex) {
179
216
  let h = hex.replace("#", "");
180
217
  if (h.length === 3) h = h.split("").map((c) => c + c).join("");
@@ -187,6 +224,34 @@ function toRgb(hex) {
187
224
  function toHex(rgb) {
188
225
  return "#" + rgb.map((v) => Math.round(Math.max(0, Math.min(255, v))).toString(16).padStart(2, "0")).join("");
189
226
  }
227
+ function toRgba(hex, alpha) {
228
+ const [r, g, b] = toRgb(hex);
229
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
230
+ }
231
+ /**
232
+ * What a translucent colour reads as over an opaque one: a per-channel sRGB
233
+ * mix, which is how the browser composites it. The tint ink is pushed against
234
+ * this, never against the page alone — a 16% wash of the hue moves the
235
+ * background a long way toward the ink, and an ink that only cleared AA on
236
+ * the bare page lands near 3.5:1 on its own tint.
237
+ */
238
+ function compositeOver(fgHex, alpha, bgHex) {
239
+ const fg = toRgb(fgHex);
240
+ const bg = toRgb(bgHex);
241
+ return toHex(fg.map((c, i) => alpha * c + (1 - alpha) * bg[i]));
242
+ }
243
+ /**
244
+ * Tint alpha by tone, light then dark. The tones keep meaning something in the
245
+ * tinted variant — a `Darker` chip is a heavier wash, not a different hue —
246
+ * and dark mode runs four points higher because the same alpha of a bright
247
+ * hue reads fainter over near-black than over white.
248
+ */
249
+ var TINT_ALPHA = {
250
+ Lighter: [.1, .14],
251
+ Light: [.14, .18],
252
+ Dark: [.18, .22],
253
+ Darker: [.22, .26]
254
+ };
190
255
  function relativeLuminance(hex) {
191
256
  const [r, g, b] = toRgb(hex).map((v) => {
192
257
  const c = v / 255;
@@ -365,12 +430,20 @@ function tone(stops, chipTone) {
365
430
  outlineText: push(stops.text, "#000000", PAGE_LIGHT),
366
431
  darkOutlineText: push(stops.onDeep ?? stops.pale, "#ffffff", PAGE_DARK)
367
432
  };
433
+ const [alphaLight, alphaDark] = TINT_ALPHA[chipTone];
434
+ const tint = {
435
+ tintColor: toRgba(stops.solid, alphaLight),
436
+ tintText: push(stops.deep, "#000000", compositeOver(stops.solid, alphaLight, PAGE_LIGHT)),
437
+ darkTintColor: toRgba(stops.solid, alphaDark),
438
+ darkTintText: push(stops.mid, "#ffffff", compositeOver(stops.solid, alphaDark, PAGE_DARK))
439
+ };
368
440
  const filled = (light, dark) => ({
369
441
  color: light,
370
442
  text: inkOn(stops, light),
371
443
  darkColor: dark,
372
444
  darkText: inkOn(stops, dark),
373
- ...outline
445
+ ...outline,
446
+ ...tint
374
447
  });
375
448
  switch (chipTone) {
376
449
  case "Light": return filled(stops.mid, stops.solid);
@@ -567,6 +640,40 @@ function useDebounceValue(value, delay = 300) {
567
640
  return debouncedValue;
568
641
  }
569
642
  //#endregion
643
+ //#region src/hooks/useIsDarkMode.ts
644
+ /**
645
+ * Whether the document is in dark mode right now, and re-rendered when that
646
+ * changes.
647
+ *
648
+ * The theme is a class on `<html>` (`dark`, set by the panel's mode
649
+ * controller) or a `data-theme` attribute (the marketing site). Components
650
+ * that pick colours in JS rather than through CSS variables — `Chip` derives
651
+ * its ink per theme — used to read the class once at render and never again,
652
+ * so a theme switch left every chip on screen wearing the other theme's ink
653
+ * until something else happened to re-render it. Subscribing through a
654
+ * `MutationObserver` on the root's attributes makes the read live.
655
+ */
656
+ function useIsDarkMode() {
657
+ return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
658
+ }
659
+ function getSnapshot() {
660
+ if (typeof document === "undefined") return false;
661
+ const root = document.documentElement;
662
+ return root.classList.contains("dark") || root.getAttribute("data-theme") === "dark";
663
+ }
664
+ function getServerSnapshot() {
665
+ return false;
666
+ }
667
+ function subscribe(onChange) {
668
+ if (typeof document === "undefined" || typeof MutationObserver === "undefined") return () => void 0;
669
+ const observer = new MutationObserver(onChange);
670
+ observer.observe(document.documentElement, {
671
+ attributes: true,
672
+ attributeFilter: ["class", "data-theme"]
673
+ });
674
+ return () => observer.disconnect();
675
+ }
676
+ //#endregion
570
677
  //#region src/components/Collapse.tsx
571
678
  var Collapse = React.memo(({ children, className, in: isOpen = false, duration = 220 }) => {
572
679
  useInjectStyles(`Collapse-${duration}`, `
@@ -639,14 +746,14 @@ function Autocomplete({ children, open, setOpen, className }) {
639
746
  className: cls("absolute top-full left-0 right-0 overflow-visible", open ? "shadow-2xs" : "", "my-2", "z-20", "w-full"),
640
747
  children: /* @__PURE__ */ jsx("div", {
641
748
  ref: autocompleteRef,
642
- className: cls(open ? paperMixin : "", "bg-surface-50 dark:bg-surface-800", className),
749
+ className: cls(open ? paperMixin : "", "bg-surface-card", className),
643
750
  children
644
751
  })
645
752
  });
646
753
  }
647
754
  var AutocompleteItem = React.memo(function AutocompleteItem({ children, onClick, className }) {
648
755
  return /* @__PURE__ */ jsx("div", {
649
- className: cls("flex w-full items-center h-[48px] cursor-pointer transition-colors duration-150 hover:bg-surface-accent-100 dark:hover:bg-surface-accent-800", className),
756
+ className: cls("flex w-full items-center h-[48px] cursor-pointer transition-colors duration-150 hover:bg-surface-hover", className),
650
757
  onClick,
651
758
  children
652
759
  });
@@ -2822,7 +2929,7 @@ var getColorClasses = (severity) => {
2822
2929
  case "warning": return "bg-amber-500/8 dark:bg-amber-500/12 text-amber-800 dark:text-amber-200 border border-amber-500/20 dark:border-amber-500/25";
2823
2930
  case "info": return "bg-blue-500/8 dark:bg-blue-500/12 text-blue-800 dark:text-blue-200 border border-blue-500/20 dark:border-blue-500/25";
2824
2931
  case "success": return "bg-emerald-500/8 dark:bg-emerald-500/12 text-emerald-800 dark:text-emerald-200 border border-emerald-500/20 dark:border-emerald-500/25";
2825
- default: return "bg-surface-accent-500/8 dark:bg-surface-accent-400/10 text-surface-accent-800 dark:text-surface-accent-100 border border-surface-accent-500/15 dark:border-surface-accent-400/20";
2932
+ default: return "bg-surface-field text-text-primary dark:text-text-primary-dark border border-hairline";
2826
2933
  }
2827
2934
  };
2828
2935
  var getIconColor = (severity) => {
@@ -2891,14 +2998,14 @@ var AvatarInner = ({ src, alt, children, className, style, outerClassName, hover
2891
2998
  ref,
2892
2999
  style,
2893
3000
  ...props,
2894
- className: cls("rounded-full flex items-center justify-center overflow-hidden", "p-1 w-12 h-12 min-w-12 min-h-12", hover && "transition-colors duration-150 hover:bg-surface-accent-200 dark:hover:bg-surface-accent-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", outerClassName),
3001
+ className: cls("rounded-full flex items-center justify-center overflow-hidden", "p-1 w-12 h-12 min-w-12 min-h-12", hover && "transition-colors duration-150 hover:bg-surface-raised-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", outerClassName),
2895
3002
  children: src && !isImageError ? /* @__PURE__ */ jsx("img", {
2896
- className: cls("bg-surface-accent-100 dark:bg-surface-accent-800", "w-full h-full object-cover rounded-full", className),
3003
+ className: cls("bg-surface-raised", "w-full h-full object-cover rounded-full", className),
2897
3004
  src,
2898
3005
  alt,
2899
3006
  onError: handleImageError
2900
3007
  }) : /* @__PURE__ */ jsx("span", {
2901
- className: cls("bg-surface-accent-100 dark:bg-surface-accent-800", "flex items-center justify-center", "w-full h-full py-1.5 text-lg font-medium text-surface-accent-900 dark:text-text-primary-dark rounded-full", className),
3008
+ className: cls("bg-surface-raised", "flex items-center justify-center", "w-full h-full py-1.5 text-lg font-medium text-surface-accent-900 dark:text-text-primary-dark rounded-full", className),
2902
3009
  children
2903
3010
  })
2904
3011
  });
@@ -2967,9 +3074,9 @@ var BooleanSwitch = React.forwardRef(function BooleanSwitch({ value, allowIndete
2967
3074
  else onValueChange?.(null);
2968
3075
  else onValueChange?.(!value);
2969
3076
  },
2970
- className: cls(SWITCH_GEOMETRY[size].track, "outline-none outline-hidden rounded-full relative shadow-sm", value ? disabled ? "bg-white bg-opacity-54 bg-white/54 dark:bg-surface-accent-950 border-surface-accent-100 dark:border-surface-accent-700 ring-1 ring-surface-accent-200 dark:ring-surface-accent-700" : "ring-secondary ring-1 bg-secondary dark:bg-secondary" : "bg-white bg-opacity-54 bg-white/54 dark:bg-surface-accent-900 ring-1 ring-surface-accent-200 dark:ring-surface-accent-700", className),
3077
+ className: cls(SWITCH_GEOMETRY[size].track, "outline-none outline-hidden rounded-full relative shadow-sm", disabled ? value ? "bg-primary/40 ring-1 ring-transparent" : "bg-surface-field ring-1 ring-hairline" : value ? "bg-primary ring-1 ring-primary" : "bg-surface-active ring-1 ring-hairline-strong", className),
2971
3078
  ...props,
2972
- children: [allowIndeterminate && (value === null || value === void 0) && /* @__PURE__ */ jsx("div", { className: cls("block rounded-full transition-transform duration-100 ease-out transform will-change-auto shadow-sm", disabled ? "bg-surface-accent-400 dark:bg-surface-accent-600" : "bg-surface-accent-400 dark:bg-surface-accent-600", SWITCH_GEOMETRY[size].bar, SWITCH_GEOMETRY[size].barX) }, "knob"), !(allowIndeterminate && (value === null || value === void 0)) && /* @__PURE__ */ jsx("div", { className: cls("block rounded-full transition-transform duration-100 ease-out transform will-change-auto shadow-sm", disabled ? "bg-surface-accent-300 dark:bg-surface-accent-700" : value ? "bg-white shadow" : "bg-surface-accent-600 dark:bg-surface-accent-400", SWITCH_GEOMETRY[size].knob, value ? SWITCH_GEOMETRY[size].on : SWITCH_GEOMETRY[size].off) }, "knob")]
3079
+ children: [allowIndeterminate && (value === null || value === void 0) && /* @__PURE__ */ jsx("div", { className: cls("block rounded-full transition-transform duration-100 ease-out transform will-change-auto shadow-sm", "bg-surface-400", SWITCH_GEOMETRY[size].bar, SWITCH_GEOMETRY[size].barX) }, "knob"), !(allowIndeterminate && (value === null || value === void 0)) && /* @__PURE__ */ jsx("div", { className: cls("block rounded-full transition-transform duration-100 ease-out transform will-change-auto shadow-sm", disabled ? "bg-surface-300 dark:bg-surface-600" : value ? "bg-white shadow" : "bg-surface-500 dark:bg-surface-400", SWITCH_GEOMETRY[size].knob, value ? SWITCH_GEOMETRY[size].on : SWITCH_GEOMETRY[size].off) }, "knob")]
2973
3080
  });
2974
3081
  });
2975
3082
  //#endregion
@@ -2998,7 +3105,7 @@ var BooleanSwitchWithLabel = function BooleanSwitchWithLabel({ value, position =
2998
3105
  "aria-disabled": disabled || void 0,
2999
3106
  "aria-labelledby": label ? switchLabelId : void 0,
3000
3107
  tabIndex: -1,
3001
- className: cls(!invisible && "bg-surface-accent-200/50 dark:bg-white/[0.055] dark:shadow-[inset_0_1px_0_rgb(255_255_255/0.045)]", !invisible && (disabled ? "bg-surface-accent-200/50 dark:bg-white/[0.03]" : "transition-colors duration-150 hover:bg-surface-accent-200/70 hover:dark:bg-white/[0.09]"), disabled ? "cursor-default" : "cursor-pointer", "rounded-lg max-w-full justify-between box-border relative inline-flex items-center", !invisible && focus && !disabled ? focusedClasses : "", error ? "text-red-500 dark:text-red-600" : focus && !disabled ? "text-primary" : !disabled ? "text-text-primary dark:text-text-primary-dark" : "text-text-secondary dark:text-text-secondary-dark", controlHeightMixin[size], size === "small" || size === "smallest" ? "pl-2" : "pl-4", size === "small" || size === "smallest" ? "pr-4" : "pr-6", position === "end" ? "flex-row-reverse" : "flex-row", fullWidth ? "w-full" : "", className),
3108
+ className: cls(!invisible && "bg-surface-field border border-hairline", !invisible && (disabled ? "bg-surface-field/60" : "transition-colors duration-150 hover:bg-surface-field-hover"), disabled ? "cursor-default" : "cursor-pointer", "rounded-lg max-w-full justify-between box-border relative inline-flex items-center", !invisible && focus && !disabled ? focusedClasses : "", error ? "text-red-500 dark:text-red-600" : focus && !disabled ? "text-primary" : !disabled ? "text-text-primary dark:text-text-primary-dark" : "text-text-secondary dark:text-text-secondary-dark", controlHeightMixin[size], size === "small" || size === "smallest" ? "pl-2" : "pl-4", size === "small" || size === "smallest" ? "pr-4" : "pr-6", position === "end" ? "flex-row-reverse" : "flex-row", fullWidth ? "w-full" : "", className),
3002
3109
  onClick: disabled ? void 0 : (e) => {
3003
3110
  if (props.allowIndeterminate) {
3004
3111
  const onChange = onValueChange;
@@ -3031,22 +3138,22 @@ var ButtonInner = React.memo(React.forwardRef(({ children, className, variant =
3031
3138
  "border border-primary bg-primary focus:ring-primary text-white hover:text-white hover:brightness-105": variant === "filled" && color === "primary" && !disabled,
3032
3139
  "border border-secondary bg-secondary focus:ring-secondary text-white hover:text-white hover:brightness-105": variant === "filled" && color === "secondary" && !disabled,
3033
3140
  "border border-red-600 bg-red-600 hover:bg-red-700 focus:ring-red-600 text-white hover:text-white": variant === "filled" && color === "error" && !disabled,
3034
- "border border-surface-accent-200 bg-surface-accent-200 hover:bg-surface-accent-300 focus:ring-surface-accent-400 text-text-primary hover:text-text-primary dark:border-surface-accent-700 dark:bg-surface-accent-700 dark:hover:bg-surface-accent-600 dark:text-text-primary-dark hover:dark:text-text-primary-dark": variant === "filled" && color === "text" && !disabled,
3035
- "border border-transparent bg-surface-100 hover:bg-surface-accent-200 text-text-primary dark:bg-surface-700 dark:hover:bg-surface-accent-700 dark:text-text-primary-dark hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": variant === "filled" && color === "neutral" && !disabled,
3036
- "border border-transparent text-primary hover:text-primary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": variant === "text" && color === "primary" && !disabled,
3037
- "border border-transparent text-secondary hover:text-secondary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": variant === "text" && color === "secondary" && !disabled,
3141
+ "border border-hairline-strong bg-surface-raised hover:bg-surface-raised-hover text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": variant === "filled" && color === "text" && !disabled,
3142
+ "border border-transparent bg-surface-raised hover:bg-surface-raised-hover text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark": variant === "filled" && color === "neutral" && !disabled,
3143
+ "border border-transparent text-primary hover:text-primary hover:bg-surface-hover": variant === "text" && color === "primary" && !disabled,
3144
+ "border border-transparent text-secondary hover:text-secondary hover:bg-surface-hover": variant === "text" && color === "secondary" && !disabled,
3038
3145
  "border border-transparent text-red-600 hover:text-red-600 hover:bg-red-600 hover:bg-opacity-10 hover:bg-red-600/10": variant === "text" && color === "error" && !disabled,
3039
- "border border-transparent text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": variant === "text" && color === "text" && !disabled,
3040
- "border border-transparent text-text-primary hover:text-text-primary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:text-text-primary-dark dark:hover:text-text-primary-dark dark:hover:bg-surface-accent-800": variant === "text" && color === "neutral" && !disabled,
3146
+ "border border-transparent text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:dark:text-text-primary-dark hover:bg-surface-hover": variant === "text" && color === "text" && !disabled,
3147
+ "border border-transparent text-text-primary hover:text-text-primary dark:text-text-primary-dark dark:hover:text-text-primary-dark hover:bg-surface-hover": variant === "text" && color === "neutral" && !disabled,
3041
3148
  "border border-primary text-primary hover:text-primary hover:bg-primary-bg hover:bg-primary/10": variant === "outlined" && color === "primary" && !disabled,
3042
3149
  "border border-secondary text-secondary hover:text-secondary hover:bg-secondary-bg": variant === "outlined" && color === "secondary" && !disabled,
3043
3150
  "border border-red-500 text-red-600 hover:text-white hover:bg-red-600": variant === "outlined" && color === "error" && !disabled,
3044
- "border border-surface-accent-400 text-text-primary hover:text-text-primary dark:text-text-primary-dark dark:border-surface-accent-600 hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800": variant === "outlined" && color === "text" && !disabled,
3045
- "border border-surface-300 text-text-primary hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:border-surface-600 dark:text-text-primary-dark dark:hover:bg-surface-accent-800": variant === "outlined" && color === "neutral" && !disabled,
3151
+ "border border-hairline-strong text-text-primary hover:text-text-primary dark:text-text-primary-dark hover:bg-surface-hover": variant === "outlined" && color === "text" && !disabled,
3152
+ "border border-hairline-strong text-text-primary dark:text-text-primary-dark hover:bg-surface-hover": variant === "outlined" && color === "neutral" && !disabled,
3046
3153
  "text-text-disabled dark:text-text-disabled-dark": disabled,
3047
3154
  "border border-transparent opacity-50": variant === "text" && disabled,
3048
- "border border-surface-500 opacity-50": variant === "outlined" && disabled,
3049
- "border border-transparent bg-surface-300 dark:bg-surface-500 opacity-40 bg-surface-300/40 dark:bg-surface-500/40": variant === "filled" && disabled
3155
+ "border border-hairline-strong opacity-50": variant === "outlined" && disabled,
3156
+ "border border-transparent bg-surface-raised": variant === "filled" && disabled
3050
3157
  });
3051
3158
  const sizeClasses = cls("py-0", controlHeightMixin[size], controlPaddingMixin[size]);
3052
3159
  const iconColorClass = (color === "neutral" || color === "text") && !disabled ? "[&>svg]:text-surface-accent-500 dark:[&>svg]:text-surface-accent-300" : "";
@@ -3082,7 +3189,7 @@ var Card = React.forwardRef(({ children, className, onClick, style, ...props },
3082
3189
  role: onClick ? "button" : void 0,
3083
3190
  tabIndex: onClick ? 0 : void 0,
3084
3191
  onClick,
3085
- className: cls(cardMixin, onClick && "hover:bg-primary/5 dark:hover:bg-primary/5 cursor-pointer transition-colors duration-150", className),
3192
+ className: cls(cardMixin, onClick && "hover:bg-surface-card-hover cursor-pointer transition-colors duration-150", className),
3086
3193
  style,
3087
3194
  ...props,
3088
3195
  children
@@ -3142,7 +3249,7 @@ function CircularProgress({ size = "medium", className }) {
3142
3249
  else if (size === "medium") borderClasses = "border-[3px]";
3143
3250
  else borderClasses = "border-4";
3144
3251
  return /* @__PURE__ */ jsx("div", {
3145
- className: cls(sizeClasses, borderClasses, "inline-block shrink-0 rounded-full border-solid align-[-0.125em]", "animate-[spin_0.7s_linear_infinite] motion-reduce:animate-[spin_1.5s_linear_infinite]", "border-surface-200 dark:border-surface-700 border-t-primary dark:border-t-primary", className),
3252
+ className: cls(sizeClasses, borderClasses, "inline-block shrink-0 rounded-full border-solid align-[-0.125em]", "animate-[spin_0.7s_linear_infinite] motion-reduce:animate-[spin_1.5s_linear_infinite]", "border-hairline-strong border-t-primary dark:border-t-primary", className),
3146
3253
  role: "status",
3147
3254
  children: /* @__PURE__ */ jsx("span", {
3148
3255
  className: "absolute! -m-px! h-px! w-px! overflow-hidden! whitespace-nowrap! border-0! p-0! [clip:rect(0,0,0,0)]!",
@@ -3438,12 +3545,12 @@ var ErrorBoundary = class extends React.Component {
3438
3545
  const title = isPermission ? "Access denied" : isStaleChunk ? "New version available" : "Something went wrong";
3439
3546
  const description = isPermission ? "You don't have permission to access this resource. Please check your account permissions or contact your administrator." : isStaleChunk ? CHUNK_ERROR_DESCRIPTION : "An unexpected error occurred. You can try reloading the page or going back.";
3440
3547
  return /* @__PURE__ */ jsx("div", {
3441
- className: cls("flex items-center justify-center min-h-[400px] h-full w-full", "bg-surface-50 dark:bg-surface-950"),
3548
+ className: cls("flex items-center justify-center min-h-[400px] h-full w-full", "bg-surface-sheet"),
3442
3549
  children: /* @__PURE__ */ jsxs("div", {
3443
3550
  className: "flex flex-col items-center max-w-md px-6 py-10 text-center",
3444
3551
  children: [
3445
3552
  /* @__PURE__ */ jsx("div", {
3446
- className: cls("flex items-center justify-center w-14 h-14 rounded-xl mb-6", isPermission ? "bg-amber-100 dark:bg-amber-900/30" : isStaleChunk ? "bg-surface-100 dark:bg-surface-800" : "bg-red-100 dark:bg-red-900/30"),
3553
+ className: cls("flex items-center justify-center w-14 h-14 rounded-xl mb-6", isPermission ? "bg-amber-100 dark:bg-amber-900/30" : isStaleChunk ? "bg-surface-raised" : "bg-red-100 dark:bg-red-900/30"),
3447
3554
  children: /* @__PURE__ */ jsx(Icon, {
3448
3555
  size: 28,
3449
3556
  className: isPermission ? "text-amber-600 dark:text-amber-400" : isStaleChunk ? "text-text-secondary dark:text-text-secondary-dark" : "text-red-500 dark:text-red-400"
@@ -3482,7 +3589,7 @@ var ErrorBoundary = class extends React.Component {
3482
3589
  className: cls("flex items-center gap-1 mx-auto text-xs", "text-text-disabled dark:text-text-disabled-dark", "hover:text-text-secondary dark:hover:text-text-secondary-dark", "transition-colors cursor-pointer bg-transparent border-none p-0"),
3483
3590
  children: ["Technical details", showDetails ? /* @__PURE__ */ jsx(ChevronUpIcon$1, { size: 14 }) : /* @__PURE__ */ jsx(ChevronDownIcon$1, { size: 14 })]
3484
3591
  }), showDetails && /* @__PURE__ */ jsx("div", {
3485
- className: cls("mt-3 p-3 rounded-lg text-left text-xs", "bg-surface-100 dark:bg-surface-800/50", "text-text-secondary dark:text-text-secondary-dark", "font-mono break-all"),
3592
+ className: cls("mt-3 p-3 rounded-lg text-left text-xs", "bg-surface-field", "text-text-secondary dark:text-text-secondary-dark", "font-mono break-all"),
3486
3593
  children: error.message
3487
3594
  })]
3488
3595
  })
@@ -3527,9 +3634,9 @@ var Checkbox = React.memo(({ id, checked, indeterminate = false, padding = true,
3527
3634
  className: "rounded-full focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
3528
3635
  onCheckedChange: disabled ? void 0 : onCheckedChange,
3529
3636
  children: /* @__PURE__ */ jsx("div", {
3530
- className: cls(padding ? paddingClasses[size] : "", padding || onCheckedChange ? outerSizeClasses[size] : "", "inline-flex items-center justify-center text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150", onCheckedChange ? "rounded-full hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-700 dark:hover:bg-opacity-75 dark:hover:bg-surface-accent-700/75" : "", onCheckedChange ? "cursor-pointer" : "cursor-default"),
3637
+ className: cls(padding ? paddingClasses[size] : "", padding || onCheckedChange ? outerSizeClasses[size] : "", "inline-flex items-center justify-center text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150", onCheckedChange ? "rounded-full hover:bg-surface-hover" : "", onCheckedChange ? "cursor-pointer" : "cursor-default"),
3531
3638
  children: /* @__PURE__ */ jsx("div", {
3532
- className: cls("border-2 shrink-0 relative transition-colors ease-in-out duration-150", sizeClasses$2[size], disabled ? indeterminate || isChecked ? "bg-surface-accent-400 dark:bg-surface-accent-600" : "bg-surface-accent-400 dark:bg-surface-accent-600" : indeterminate || isChecked ? colorClasses$2[color] : "bg-white dark:bg-surface-900", indeterminate || isChecked ? "text-surface-accent-100 dark:text-surface-accent-900" : "", disabled ? "border-transparent" : indeterminate || isChecked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-500"),
3639
+ className: cls("border-2 shrink-0 relative transition-colors ease-in-out duration-150", sizeClasses$2[size], disabled ? "bg-surface-300 dark:bg-surface-600" : indeterminate || isChecked ? colorClasses$2[color] : "bg-surface-card", indeterminate || isChecked ? "text-surface-accent-100 dark:text-surface-accent-900" : "", disabled ? "border-transparent" : indeterminate || isChecked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-500"),
3533
3640
  children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
3534
3641
  asChild: true,
3535
3642
  children: indeterminate ? /* @__PURE__ */ jsx(MinusIcon$1, {
@@ -3554,13 +3661,6 @@ var sizeClassNames = {
3554
3661
  large: "px-3 py-1.5 text-sm"
3555
3662
  };
3556
3663
  /**
3557
- * Detect if the app is currently in dark mode by checking the
3558
- * Tailwind `dark` class on the document root.
3559
- */
3560
- function isDarkMode() {
3561
- return typeof document !== "undefined" && document.documentElement.classList.contains("dark");
3562
- }
3563
- /**
3564
3664
  * Helper to generate rgba from hex or standard colors.
3565
3665
  */
3566
3666
  function getRgba(hex, alpha) {
@@ -3572,9 +3672,9 @@ function getRgba(hex, alpha) {
3572
3672
  /**
3573
3673
  * @group Preview components
3574
3674
  */
3575
- function Chip({ children, colorScheme, error, outlined, onClick, icon, size = "medium", className, style }) {
3675
+ function Chip({ children, colorScheme, error, outlined, variant = "tinted", onClick, icon, size = "medium", className, style }) {
3576
3676
  const usedColorScheme = typeof colorScheme === "string" ? getColorSchemeForKey(colorScheme) : colorScheme;
3577
- const dark = isDarkMode();
3677
+ const dark = useIsDarkMode();
3578
3678
  const hasScheme = error || usedColorScheme;
3579
3679
  let textColor = "";
3580
3680
  let bgColor = "";
@@ -3592,10 +3692,17 @@ function Chip({ children, colorScheme, error, outlined, onClick, icon, size = "m
3592
3692
  } else if (error) {
3593
3693
  bgColor = dark ? "rgba(220, 38, 38, 0.15)" : "rgba(239, 68, 68, 0.1)";
3594
3694
  border = `1px solid ${dark ? "rgba(220, 38, 38, 0.3)" : "rgba(239, 68, 68, 0.2)"}`;
3595
- } else if (usedColorScheme) bgColor = dark && usedColorScheme.darkColor ? usedColorScheme.darkColor : usedColorScheme.color;
3695
+ } else if (usedColorScheme) {
3696
+ const tintColor = dark ? usedColorScheme.darkTintColor : usedColorScheme.tintColor;
3697
+ const tintText = dark ? usedColorScheme.darkTintText : usedColorScheme.tintText;
3698
+ if (variant === "tinted" && tintColor && tintText) {
3699
+ bgColor = tintColor;
3700
+ textColor = tintText;
3701
+ } else bgColor = dark && usedColorScheme.darkColor ? usedColorScheme.darkColor : usedColorScheme.color;
3702
+ }
3596
3703
  }
3597
3704
  return /* @__PURE__ */ jsxs("div", {
3598
- className: cls("rounded-lg max-w-full w-max h-fit font-medium inline-flex gap-1", "text-ellipsis", "items-center", "transition-colors duration-150", !hasScheme && "bg-surface-100 dark:bg-surface-800 text-text-secondary dark:text-text-secondary-dark border border-surface-200 dark:border-surface-700", !hasScheme && outlined && "bg-transparent dark:bg-transparent", onClick ? "cursor-pointer hover:bg-primary/5 dark:hover:bg-primary/5" : "", sizeClassNames[size], className),
3705
+ className: cls("rounded-md max-w-full w-max h-fit font-medium inline-flex gap-1", "text-ellipsis", "items-center", "transition-colors duration-150", !hasScheme && "bg-surface-raised text-text-secondary dark:text-text-secondary-dark", !hasScheme && outlined && "bg-transparent border border-hairline-strong", onClick ? "cursor-pointer hover:bg-surface-raised-hover" : "", sizeClassNames[size], className),
3599
3706
  onClick,
3600
3707
  style: {
3601
3708
  ...hasScheme ? {
@@ -3638,7 +3745,7 @@ var Tooltip = ({ open, defaultOpen, side = "bottom", delayDuration = 200, sideOf
3638
3745
  children: [trigger, /* @__PURE__ */ jsx(TooltipPrimitive.Portal, {
3639
3746
  container: finalContainer,
3640
3747
  children: /* @__PURE__ */ jsx(TooltipPrimitive.Content, {
3641
- className: cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded-md px-3 py-2 text-xs leading-none bg-surface-accent-700 dark:bg-surface-accent-800 bg-opacity-90 bg-surface-accent-700/90 dark:bg-surface-accent-800/90 font-medium text-surface-accent-50 shadow-2xl select-none duration-400 ease-in transform opacity-100", tooltipClassName),
3748
+ className: cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded-md px-3 py-2 text-xs leading-none bg-surface-800/95 dark:bg-surface-raised-hover font-medium text-white shadow-2xl select-none duration-400 ease-in transform opacity-100", tooltipClassName),
3642
3749
  style: tooltipStyle,
3643
3750
  sideOffset: sideOffset === void 0 ? 4 : sideOffset,
3644
3751
  align,
@@ -3758,7 +3865,7 @@ function ColorPicker({ value, onChange, size = "medium", allowClear = true, disa
3758
3865
  type: "button",
3759
3866
  disabled,
3760
3867
  onClick: () => onChange(void 0),
3761
- className: cls("flex items-center gap-2 px-2 py-1 rounded-lg text-sm transition-colors duration-150", "hover:bg-surface-accent-100 dark:hover:bg-surface-accent-800 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary", disabled && "opacity-50 cursor-not-allowed", !value && "bg-surface-accent-100 dark:bg-surface-accent-800 font-medium"),
3868
+ className: cls("flex items-center gap-2 px-2 py-1 rounded-lg text-sm transition-colors duration-150", "hover:bg-surface-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-primary", disabled && "opacity-50 cursor-not-allowed", !value && "bg-surface-raised font-medium"),
3762
3869
  children: [/* @__PURE__ */ jsx("div", {
3763
3870
  className: cls(swatchSize, "rounded-full border-2 border-dashed border-surface-accent-400 dark:border-surface-accent-600", "flex items-center justify-center"),
3764
3871
  children: !value && /* @__PURE__ */ jsx(CheckIcon$1, { size: checkSize })
@@ -3796,7 +3903,7 @@ function ColorPicker({ value, onChange, size = "medium", allowClear = true, disa
3796
3903
  }
3797
3904
  //#endregion
3798
3905
  //#region src/components/IconButton.tsx
3799
- var buttonClasses = "hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800 hover:scale-[1.04] active:scale-95 transition-transform";
3906
+ var buttonClasses = "hover:scale-[1.04] active:scale-95 transition-transform";
3800
3907
  var baseClasses = "inline-flex items-center justify-center text-sm font-medium focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 transition-colors ease-in-out duration-150 [&>svg]:shrink-0";
3801
3908
  var colorClasses$1 = "text-surface-accent-500 visited:text-surface-accent-500 dark:text-surface-accent-300 dark:visited:text-surface-accent-300";
3802
3909
  var sizeClasses$1 = {
@@ -3817,7 +3924,7 @@ var defaultIconSize = {
3817
3924
  large: 24
3818
3925
  };
3819
3926
  var IconButtonInner = ({ children, className, size = "medium", variant = "ghost", shape = "circular", disabled, toggled, component, ...props }, ref) => {
3820
- const bgClasses = variant === "ghost" ? "bg-transparent" : "bg-surface-accent-200 bg-opacity-50 bg-surface-accent-200/50 dark:bg-surface-900 dark:bg-opacity-50 dark:bg-surface-900/50";
3927
+ const bgClasses = variant === "ghost" ? "bg-transparent hover:bg-surface-hover" : "bg-surface-raised hover:bg-surface-raised-hover";
3821
3928
  const Component = component || "button";
3822
3929
  const isNativeButton = Component === "button";
3823
3930
  const sizedChildren = React.Children.map(children, (child) => {
@@ -3960,7 +4067,7 @@ var DateTimeField = ({ value, label, onChange, disabled, clearable, mode = "date
3960
4067
  return /* @__PURE__ */ jsxs(Fragment, { children: [
3961
4068
  /* @__PURE__ */ jsx("style", { children: inputStyles }),
3962
4069
  /* @__PURE__ */ jsxs("div", {
3963
- className: cls("rounded-lg relative max-w-full", !invisible && "bg-surface-accent-200/50 dark:bg-white/[0.055] dark:shadow-[inset_0_1px_0_rgb(255_255_255/0.045)]", disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin, {
4070
+ className: cls("rounded-lg relative max-w-full", !invisible && "bg-surface-field border border-hairline", disabled ? fieldBackgroundDisabledMixin : invisible ? "" : fieldBackgroundHoverMixin, {
3964
4071
  "min-h-[28px]": size === "smallest",
3965
4072
  "min-h-[32px]": size === "small",
3966
4073
  "min-h-[40px]": size === "medium",
@@ -3989,7 +4096,7 @@ var DateTimeField = ({ value, label, onChange, disabled, clearable, mode = "date
3989
4096
  onFocus: handleFocus,
3990
4097
  onBlur: handleBlur,
3991
4098
  disabled,
3992
- className: cls("w-full outline-hidden bg-transparent leading-normal text-base px-3", clearable ? "pr-14" : "pr-12", "rounded-lg", {
4099
+ className: cls("w-full outline-hidden bg-transparent leading-normal text-sm px-3", clearable ? "pr-14" : "pr-12", "rounded-lg", {
3993
4100
  "min-h-[28px]": size === "smallest",
3994
4101
  "min-h-[32px]": size === "small",
3995
4102
  "min-h-[40px]": size === "medium",
@@ -4121,7 +4228,7 @@ var Dialog = ({ open, onOpenChange, children, className, containerClassName, ful
4121
4228
  //#region src/components/DialogActions.tsx
4122
4229
  function DialogActions({ children, position = "sticky", translucent = true, className }) {
4123
4230
  return /* @__PURE__ */ jsx("div", {
4124
- className: cls(defaultBorderMixin, "pt-2 pb-4 px-4 border-t flex flex-row items-center justify-end shrink-0 bottom-0 right-0 left-0 text-right z-2 gap-2", position, "bg-white bg-opacity-60 bg-white/60 dark:bg-surface-800 dark:bg-opacity-60 dark:bg-surface-800/60", translucent ? "backdrop-blur-sm" : "", className),
4231
+ className: cls(defaultBorderMixin, "pt-2 pb-4 px-4 border-t flex flex-row items-center justify-end shrink-0 bottom-0 right-0 left-0 text-right z-2 gap-2", position, "bg-surface-card/60", translucent ? "backdrop-blur-sm" : "", className),
4125
4232
  children
4126
4233
  });
4127
4234
  }
@@ -4196,7 +4303,7 @@ function ExpandablePanel({ title, children, invisible = false, expanded, onExpan
4196
4303
  if (expanded !== void 0) setOpen(expanded);
4197
4304
  }, [expanded]);
4198
4305
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Collapsible.Root, {
4199
- className: cls(!invisible && "border-surface-200 dark:border-surface-700/60 border", "rounded-lg", "w-full", className),
4306
+ className: cls(!invisible && "border-hairline border", "rounded-lg", "w-full", className),
4200
4307
  open,
4201
4308
  onOpenChange: (updatedOpen) => {
4202
4309
  onExpandedChange?.(updatedOpen);
@@ -4205,7 +4312,7 @@ function ExpandablePanel({ title, children, invisible = false, expanded, onExpan
4205
4312
  children: [/* @__PURE__ */ jsx(Collapsible.Trigger, {
4206
4313
  asChild: true,
4207
4314
  children: /* @__PURE__ */ jsxs("div", {
4208
- className: cls("rounded-t-lg flex items-center justify-between w-full min-h-[52px]", "hover:bg-surface-accent-200 hover:bg-opacity-40 hover:bg-surface-accent-200/40 dark:hover:bg-surface-800 dark:hover:bg-opacity-40 dark:hover:bg-surface-800/40 active:bg-surface-accent-300/50 dark:active:bg-surface-700/50", invisible ? "border-b px-2" : "p-4", open ? "py-6" : "py-4", "transition-all duration-200", invisible && "border-surface-200 dark:border-surface-700/60", asField && "bg-surface-accent-200/50 dark:bg-white/[0.055] dark:shadow-[inset_0_1px_0_rgb(255_255_255/0.045)]", titleClassName, "cursor-pointer"),
4315
+ className: cls("rounded-t-lg flex items-center justify-between w-full min-h-[52px]", "hover:bg-surface-hover active:bg-surface-active", invisible ? "border-b px-2" : "p-4", open ? "py-6" : "py-4", "transition-all duration-200", invisible && "border-hairline", asField && "bg-surface-field border border-hairline", titleClassName, "cursor-pointer"),
4209
4316
  role: "button",
4210
4317
  tabIndex: 0,
4211
4318
  "aria-expanded": open,
@@ -4278,9 +4385,8 @@ var sizeClasses = {
4278
4385
  /**
4279
4386
  * A toggle chip used for filter presets and similar multi-select controls.
4280
4387
  *
4281
- * Uses an inset box-shadow for the active ring instead of `border` so the
4282
- * chip size stays stable across states and the ring cannot be clipped by
4283
- * parent `overflow-hidden` containers.
4388
+ * Reads as a text tab: no fill at rest, the alpha highlight when active. It
4389
+ * shares no grammar with the tinted enum {@link Chip}, which carries a hue.
4284
4390
  *
4285
4391
  * @group Interactive components
4286
4392
  */
@@ -4290,7 +4396,7 @@ var FilterChip = React.forwardRef(function FilterChip({ children, active = false
4290
4396
  type: "button",
4291
4397
  onClick,
4292
4398
  disabled,
4293
- className: cls("inline-flex items-center gap-1 rounded-full", "font-medium whitespace-nowrap select-none shrink-0", "transition-colors duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", sizeClasses[size], !disabled && "cursor-pointer", active ? cls("bg-primary/12 text-primary dark:bg-primary/20 dark:text-primary shadow-[inset_0_0_0_1.5px_var(--color-primary)]", !disabled && "hover:bg-primary/20 dark:hover:bg-primary/30") : cls("bg-surface-accent-100 text-text-secondary dark:bg-surface-accent-800 dark:text-text-secondary-dark", !disabled && "hover:bg-surface-accent-200 dark:hover:bg-surface-accent-700"), disabled && "opacity-50 cursor-not-allowed", className),
4399
+ className: cls("inline-flex items-center gap-1 rounded-md", "font-medium whitespace-nowrap select-none shrink-0", "transition-colors duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", sizeClasses[size], !disabled && "cursor-pointer", active ? "bg-surface-active text-text-primary dark:text-text-primary-dark" : cls("bg-transparent text-text-secondary dark:text-text-secondary-dark", !disabled && "hover:bg-surface-hover"), disabled && "opacity-50 cursor-not-allowed", className),
4294
4400
  ...rest,
4295
4401
  children: [icon, children]
4296
4402
  });
@@ -4312,7 +4418,7 @@ function InfoLabel({ children, mode = "info" }) {
4312
4418
  var Label = React$1.forwardRef(({ className, border, onClick, ...props }, ref) => /* @__PURE__ */ jsx(LabelPrimitive.Root, {
4313
4419
  ref,
4314
4420
  onClick,
4315
- className: cls("text-sm font-medium peer-disabled:cursor-not-allowed", border && "border border-surface-300 dark:border-surface-700 rounded-md px-3 py-1.5", onClick && "hover:cursor-pointer hover:bg-surface-200 dark:hover:bg-surface-800", defaultBorderMixin, className),
4421
+ className: cls("text-sm font-medium peer-disabled:cursor-not-allowed", border && "border border-hairline-strong rounded-md px-3 py-1.5", onClick && "hover:cursor-pointer hover:bg-surface-hover", defaultBorderMixin, className),
4316
4422
  ...props
4317
4423
  }));
4318
4424
  Label.displayName = LabelPrimitive.Root.displayName;
@@ -4394,7 +4500,7 @@ var Menu = React.forwardRef(({ children, trigger, open, defaultOpen, side, align
4394
4500
  });
4395
4501
  Menu.displayName = "Menu";
4396
4502
  var MenuItem = React.memo(({ children, dense = false, disabled = false, onClick, className }) => {
4397
- const classNames = cls(onClick && !disabled && "cursor-pointer", disabled && "opacity-50 cursor-not-allowed", "rounded-md text-sm font-medium text-surface-accent-700 dark:text-surface-accent-300 flex items-center gap-4 transition-colors duration-150", !disabled && "hover:bg-surface-accent-100 dark:hover:bg-surface-accent-900", dense ? "px-4 py-1.5" : "px-4 py-2", className);
4503
+ const classNames = cls(onClick && !disabled && "cursor-pointer", disabled && "opacity-50 cursor-not-allowed", "rounded-md text-sm font-medium text-surface-accent-700 dark:text-surface-accent-300 flex items-center gap-4 transition-colors duration-150", !disabled && "hover:bg-surface-hover", dense ? "px-4 py-1.5" : "px-4 py-2", className);
4398
4504
  return /* @__PURE__ */ jsx(DropdownMenu.Item, {
4399
4505
  className: classNames,
4400
4506
  disabled,
@@ -4411,7 +4517,7 @@ function Menubar({ children, onSelect, value, defaultValue, onValueChange, class
4411
4517
  value,
4412
4518
  defaultValue,
4413
4519
  onValueChange,
4414
- className: cls("z-10 flex bg-white dark:bg-surface-900 p-[3px] rounded-lg shadow-sm", className),
4520
+ className: cls("z-10 flex bg-surface-card p-[3px] rounded-lg shadow-sm", className),
4415
4521
  children
4416
4522
  });
4417
4523
  }
@@ -4424,7 +4530,7 @@ function MenubarMenu({ children, value }) {
4424
4530
  function MenubarTrigger({ children, onSelect, className }) {
4425
4531
  return /* @__PURE__ */ jsx(MenubarPrimitive.Trigger, {
4426
4532
  onSelect,
4427
- className: cls("py-2 px-3 outline-none select-none font-medium leading-none rounded-md text-text-primary dark:text-text-primary-dark text-sm transition-colors duration-150 flex items-center justify-between gap-[2px] data-[highlighted]:bg-surface-accent-100 data-[highlighted]:dark:bg-surface-900 data-[state=open]:bg-surface-accent-100 data-[state=open]:dark:bg-surface-900 hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-800", className),
4533
+ className: cls("py-2 px-3 outline-none select-none font-medium leading-none rounded-md text-text-primary dark:text-text-primary-dark text-sm transition-colors duration-150 flex items-center justify-between gap-[2px] data-[highlighted]:bg-surface-hover data-[state=open]:bg-surface-active hover:bg-surface-hover", className),
4428
4534
  children
4429
4535
  });
4430
4536
  }
@@ -4439,7 +4545,7 @@ function MenubarPortal({ children, portalContainer }) {
4439
4545
  function MenubarContent({ children, className, align, sideOffset, alignOffset, onSelect, ...rest }) {
4440
4546
  return /* @__PURE__ */ jsx(MenubarPrimitive.Content, {
4441
4547
  onSelect,
4442
- className: cls("z-50 min-w-[220px] bg-white dark:bg-surface-900 rounded-md p-[6px] shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] [animation-duration:_400ms] [animation-timing-function:_cubic-bezier(0.16,_1,_0.3,_1)] will-change-[transform,opacity]", className),
4548
+ className: cls("z-50 min-w-[220px] bg-surface-card rounded-md p-[6px] shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] [animation-duration:_400ms] [animation-timing-function:_cubic-bezier(0.16,_1,_0.3,_1)] will-change-[transform,opacity]", className),
4443
4549
  align: align ?? "start",
4444
4550
  sideOffset: sideOffset ?? 5,
4445
4551
  alignOffset: alignOffset ?? -3,
@@ -4450,7 +4556,7 @@ function MenubarContent({ children, className, align, sideOffset, alignOffset, o
4450
4556
  function MenubarItem({ children, leftPadding, className, disabled, onSelect, ...rest }) {
4451
4557
  return /* @__PURE__ */ jsx(MenubarPrimitive.Item, {
4452
4558
  onSelect,
4453
- className: cls("group text-sm leading-none rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 outline-none data-[state=open]:bg-surface-accent-100 data-[state=open]:dark:bg-surface-900 data-[state=open]:text-text-primary data-[state=open]:dark:text-text-primary-dark data-[highlighted]:bg-surface-accent-100 data-[highlighted]:dark:bg-surface-900 data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", leftPadding ? "pl-5" : "", disabled ? "pointer-events-none text-text-secondary dark:text-text-secondary-dark" : "text-text-primary dark:text-text-primary-dark", className),
4559
+ className: cls("group text-sm leading-none rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 outline-none data-[state=open]:bg-surface-active data-[state=open]:text-text-primary data-[state=open]:dark:text-text-primary-dark data-[highlighted]:bg-surface-hover data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", leftPadding ? "pl-5" : "", disabled ? "pointer-events-none text-text-secondary dark:text-text-secondary-dark" : "text-text-primary dark:text-text-primary-dark", className),
4454
4560
  disabled,
4455
4561
  ...rest,
4456
4562
  children
@@ -4458,7 +4564,7 @@ function MenubarItem({ children, leftPadding, className, disabled, onSelect, ...
4458
4564
  }
4459
4565
  function MenubarSeparator({ children, className, ...rest }) {
4460
4566
  return /* @__PURE__ */ jsx(MenubarPrimitive.Separator, {
4461
- className: cls("h-[1px] bg-surface-accent-100 dark:bg-surface-900 m-[5px]", className),
4567
+ className: cls("h-[1px] bg-hairline m-[5px]", className),
4462
4568
  ...rest,
4463
4569
  children
4464
4570
  });
@@ -4472,7 +4578,7 @@ function MenubarSub({ children, ...rest }) {
4472
4578
  function MenubarSubTrigger({ children, className, onSelect, ...rest }) {
4473
4579
  return /* @__PURE__ */ jsx(MenubarPrimitive.SubTrigger, {
4474
4580
  onSelect,
4475
- className: cls("group text-sm leading-none text-text-primary dark:text-text-primary-dark rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 outline-none data-[state=open]:bg-surface-accent-100 data-[state=open]:dark:bg-surface-900 data-[state=open]:text-text-primary data-[state=open]:dark:text-text-primary-dark data-[highlighted]:bg-surface-accent-100 data-[highlighted]:dark:bg-surface-900 data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", className),
4581
+ className: cls("group text-sm leading-none text-text-primary dark:text-text-primary-dark rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 outline-none data-[state=open]:bg-surface-active data-[state=open]:text-text-primary data-[state=open]:dark:text-text-primary-dark data-[highlighted]:bg-surface-hover data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", className),
4476
4582
  ...rest,
4477
4583
  children
4478
4584
  });
@@ -4481,7 +4587,7 @@ function MenubarSubContent({ children, alignOffset, className, onSelect, ...rest
4481
4587
  return /* @__PURE__ */ jsx(MenubarPrimitive.SubContent, {
4482
4588
  onSelect,
4483
4589
  alignOffset: alignOffset ?? -5,
4484
- className: cls("min-w-[220px] bg-white dark:bg-surface-900 rounded-md p-[6px] shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] [animation-duration:_400ms] [animation-timing-function:_cubic-bezier(0.16,_1,_0.3,_1)] will-change-[transform,opacity]", className),
4590
+ className: cls("min-w-[220px] bg-surface-card rounded-md p-[6px] shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] [animation-duration:_400ms] [animation-timing-function:_cubic-bezier(0.16,_1,_0.3,_1)] will-change-[transform,opacity]", className),
4485
4591
  ...rest,
4486
4592
  children
4487
4593
  });
@@ -4489,7 +4595,7 @@ function MenubarSubContent({ children, alignOffset, className, onSelect, ...rest
4489
4595
  function MenubarCheckboxItem({ children, checked, onCheckedChange, className, onSelect, ...rest }) {
4490
4596
  return /* @__PURE__ */ jsx(MenubarPrimitive.CheckboxItem, {
4491
4597
  onSelect,
4492
- className: cls("text-sm leading-none text-text-primary dark:text-text-primary-dark rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 pl-5 outline-none data-[highlighted]:bg-surface-accent-100 data-[highlighted]:dark:bg-surface-900 data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", className),
4598
+ className: cls("text-sm leading-none text-text-primary dark:text-text-primary-dark rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 pl-5 outline-none data-[highlighted]:bg-surface-hover data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", className),
4493
4599
  checked,
4494
4600
  onCheckedChange,
4495
4601
  ...rest,
@@ -4516,7 +4622,7 @@ function MenubarRadioGroup({ children, className, value, onValueChange, onSelect
4516
4622
  function MenubarRadioItem({ children, className, value, onSelect, ...rest }) {
4517
4623
  return /* @__PURE__ */ jsx(MenubarPrimitive.RadioItem, {
4518
4624
  onSelect,
4519
- className: cls("text-sm leading-none text-text-primary dark:text-text-primary-dark rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 pl-5 outline-none data-[highlighted]:bg-surface-accent-100 data-[highlighted]:dark:bg-surface-900 data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", className),
4625
+ className: cls("text-sm leading-none text-text-primary dark:text-text-primary-dark rounded-md flex items-center h-[32px] px-[10px] py-[2px] relative select-none transition-colors duration-150 pl-5 outline-none data-[highlighted]:bg-surface-hover data-[disabled]:text-text-disabled data-[disabled]:dark:text-text-disabled-dark data-[disabled]:pointer-events-none", className),
4520
4626
  value,
4521
4627
  ...rest,
4522
4628
  children: children ?? /* @__PURE__ */ jsx(CheckIcon$1, { size: iconSize.small })
@@ -4541,10 +4647,10 @@ function Separator({ orientation, decorative, className }) {
4541
4647
  if (orientation === "horizontal") return /* @__PURE__ */ jsx(SeparatorPrimitive.Root, {
4542
4648
  decorative,
4543
4649
  orientation: "horizontal",
4544
- className: cls("dark:bg-surface-700 bg-surface-200 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px my-4", className)
4650
+ className: cls("bg-hairline data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px my-4", className)
4545
4651
  });
4546
4652
  else return /* @__PURE__ */ jsx(SeparatorPrimitive.Root, {
4547
- className: cls("dark:bg-surface-700 bg-surface-200 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px mx-4", className),
4653
+ className: cls("bg-hairline data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px mx-4", className),
4548
4654
  decorative,
4549
4655
  orientation: "vertical"
4550
4656
  });
@@ -4673,7 +4779,7 @@ var MultiSelect = React$1.forwardRef(({ value, size = "large", label, error, onV
4673
4779
  }, {
4674
4780
  "px-2": size === "small" || size === "smallest",
4675
4781
  "px-4": size === "medium" || size === "large"
4676
- }, "select-none rounded-lg text-sm", "focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin, "relative flex items-center", className, inputClassName),
4782
+ }, "select-none rounded-lg text-sm", "focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : invisible ? "" : fieldBackgroundHoverMixin, "relative flex items-center", className, inputClassName),
4677
4783
  children: selectedValues.length > 0 ? /* @__PURE__ */ jsxs("div", {
4678
4784
  className: "flex justify-between items-center w-full",
4679
4785
  children: [/* @__PURE__ */ jsxs("div", {
@@ -4728,7 +4834,7 @@ var MultiSelect = React$1.forwardRef(({ value, size = "large", label, error, onV
4728
4834
  container: finalContainer,
4729
4835
  children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
4730
4836
  "data-multi-select-content": true,
4731
- className: cls("z-50 overflow-hidden border bg-white dark:bg-surface-800 rounded-lg w-[400px]", defaultBorderMixin),
4837
+ className: cls("z-50 overflow-hidden border bg-surface-card rounded-lg w-[400px]", defaultBorderMixin),
4732
4838
  align: "start",
4733
4839
  sideOffset: 8,
4734
4840
  onEscapeKeyDown: () => onPopoverOpenChange(false),
@@ -4754,7 +4860,7 @@ var MultiSelect = React$1.forwardRef(({ value, size = "large", label, error, onV
4754
4860
  children: "No results found."
4755
4861
  }), /* @__PURE__ */ jsxs(Command.Group, { children: [includeSelectAll && /* @__PURE__ */ jsxs(Command.Item, {
4756
4862
  onSelect: toggleAll,
4757
- className: cls("flex flex-row items-center gap-1.5", "cursor-pointer", "m-1", "ring-offset-transparent", "p-1 rounded-md aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-primary/75 aria-[selected=true]:ring-offset-2", "aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900", "cursor-pointer p-2 rounded-md aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900"),
4863
+ className: cls("flex flex-row items-center gap-1.5", "cursor-pointer", "m-1", "ring-offset-transparent", "p-1 rounded-md aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-primary/75 aria-[selected=true]:ring-offset-2", "aria-[selected=true]:bg-surface-active", "cursor-pointer p-2 rounded-md aria-[selected=true]:bg-surface-active"),
4758
4864
  children: [/* @__PURE__ */ jsx(InnerCheckBox, { checked: selectedValues.length === allValues.length }), /* @__PURE__ */ jsx("span", {
4759
4865
  className: "text-sm text-text-secondary dark:text-text-secondary-dark",
4760
4866
  children: "(Select All)"
@@ -4780,7 +4886,7 @@ var MultiSelectItem = React$1.memo(function MultiSelectItem({ children, value, c
4780
4886
  onSelect: (_) => {
4781
4887
  onItemClick(value);
4782
4888
  },
4783
- className: cls("flex flex-row items-center gap-1.5", isSelected ? "bg-surface-accent-200 dark:bg-surface-accent-950" : "", "cursor-pointer", "m-1", "ring-offset-transparent", "p-1 rounded-md aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-primary/75 aria-[selected=true]:ring-offset-2", "aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900", "cursor-pointer p-2 rounded-md aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900", "text-surface-accent-700 dark:text-surface-accent-300", className),
4889
+ className: cls("flex flex-row items-center gap-1.5", isSelected ? "bg-surface-active" : "", "cursor-pointer", "m-1", "ring-offset-transparent", "p-1 rounded-md aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-primary/75 aria-[selected=true]:ring-offset-2", "aria-[selected=true]:bg-surface-active", "cursor-pointer p-2 rounded-md aria-[selected=true]:bg-surface-active", "text-surface-accent-700 dark:text-surface-accent-300", className),
4784
4890
  children: [/* @__PURE__ */ jsx(InnerCheckBox, { checked: isSelected }), children]
4785
4891
  });
4786
4892
  });
@@ -4788,7 +4894,7 @@ var InnerCheckBox = React$1.memo(function InnerCheckBox({ checked }) {
4788
4894
  return /* @__PURE__ */ jsx("div", {
4789
4895
  className: cls("p-2", "w-8 h-8", "inline-flex items-center justify-center text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150"),
4790
4896
  children: /* @__PURE__ */ jsx("div", {
4791
- className: cls("border-2 relative transition-colors ease-in-out duration-150", "w-4 h-4 rounded-sm flex items-center justify-center", checked ? "bg-primary" : "bg-white dark:bg-surface-accent-900", checked ? "text-surface-accent-100 dark:text-surface-accent-900" : "", checked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-200"),
4897
+ className: cls("border-2 relative transition-colors ease-in-out duration-150", "w-4 h-4 rounded-sm flex items-center justify-center", checked ? "bg-primary" : "bg-surface-card", checked ? "text-surface-accent-100 dark:text-surface-accent-900" : "", checked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-200"),
4792
4898
  children: checked && /* @__PURE__ */ jsx(CheckIcon$1, {
4793
4899
  size: iconSize.smallest,
4794
4900
  className: "absolute"
@@ -4910,7 +5016,7 @@ function ResizablePanels({ firstPanel, secondPanel, showFirstPanel = true, showS
4910
5016
  children: firstPanel
4911
5017
  }),
4912
5018
  !stacked && showFirstPanel && showSecondPanel && /* @__PURE__ */ jsx("div", {
4913
- className: cls("relative z-10 flex flex-shrink-0 items-center justify-center", "border-surface-200 dark:border-surface-700/60", isHorizontal ? "border-l w-px h-full cursor-col-resize" : "border-t h-px w-full cursor-row-resize"),
5019
+ className: cls("relative z-10 flex flex-shrink-0 items-center justify-center border-transparent", isHorizontal ? "border-l w-px h-full cursor-col-resize" : "border-t h-px w-full cursor-row-resize"),
4914
5020
  onMouseDown: handleResizeStart,
4915
5021
  children: /* @__PURE__ */ jsx("div", {
4916
5022
  className: cls("absolute flex items-center justify-center group", isHorizontal ? "w-4 h-full cursor-col-resize top-0" : "h-4 w-full cursor-row-resize left-0"),
@@ -4955,7 +5061,7 @@ function SearchBar({ onClick, onTextSearch, placeholder = "Search", expandable =
4955
5061
  role: "search",
4956
5062
  "aria-label": "Search",
4957
5063
  onClick,
4958
- className: cls("relative transition-all", heightClass, "bg-surface-accent-50 dark:bg-surface-900 border", defaultBorderMixin, "focus-within:ring-1 focus-within:ring-primary/60 focus-within:border-primary focus-within:shadow-[0_0_0_3px_rgba(0,112,244,0.1)]", "rounded-lg overflow-hidden", className),
5064
+ className: cls("relative transition-all", heightClass, "bg-surface-field border", defaultBorderMixin, "focus-within:ring-1 focus-within:ring-primary/60 focus-within:border-primary focus-within:shadow-[0_0_0_3px_rgba(0,112,244,0.1)]", "rounded-full overflow-hidden", className),
4959
5065
  children: [
4960
5066
  /* @__PURE__ */ jsx("div", {
4961
5067
  className: cls("absolute p-0 h-full pointer-events-none flex items-center justify-center top-0", iconPaddingClass),
@@ -5049,7 +5155,7 @@ var Select = forwardRef(({ inputRef, open, name, fullWidth = false, id, onOpenCh
5049
5155
  children: label
5050
5156
  }) : label,
5051
5157
  /* @__PURE__ */ jsxs("div", {
5052
- className: cls("select-none rounded-lg text-sm", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin, "relative flex items-center", className, {
5158
+ className: cls("select-none rounded-lg text-sm", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : invisible ? "" : fieldBackgroundHoverMixin, "relative flex items-center", className, {
5053
5159
  "min-h-[28px]": size === "smallest",
5054
5160
  "min-h-[32px]": size === "small",
5055
5161
  "min-h-[40px]": size === "medium",
@@ -5116,7 +5222,7 @@ var Select = forwardRef(({ inputRef, open, name, fullWidth = false, id, onOpenCh
5116
5222
  container: finalContainer,
5117
5223
  children: /* @__PURE__ */ jsx(SelectPrimitive.Content, {
5118
5224
  position,
5119
- className: cls(focusedDisabled, "z-50 relative overflow-hidden border bg-white dark:bg-surface-800 p-2 rounded-lg shadow-lg animate-in fade-in-0 zoom-in-95 duration-150", defaultBorderMixin),
5225
+ className: cls(focusedDisabled, "z-50 relative overflow-hidden border bg-surface-card p-2 rounded-lg shadow-lg animate-in fade-in-0 zoom-in-95 duration-150", defaultBorderMixin),
5120
5226
  children: /* @__PURE__ */ jsx(SelectPrimitive.Viewport, {
5121
5227
  className: cls("p-1", viewportClassName),
5122
5228
  style: { maxHeight: "var(--radix-select-content-available-height)" },
@@ -5133,7 +5239,7 @@ var SelectItem = React.memo(function SelectItem({ value, children, disabled, cla
5133
5239
  return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
5134
5240
  value: stringValue,
5135
5241
  disabled,
5136
- className: cls("w-full", "relative flex items-center p-2 rounded-md text-sm text-surface-accent-700 dark:text-surface-accent-300", "focus:z-10", "data-[state=checked]:bg-surface-accent-100 data-[state=checked]:dark:bg-surface-accent-800 focus:bg-surface-accent-100 dark:focus:bg-surface-900", "data-[state=checked]:focus:bg-surface-accent-200 data-[state=checked]:dark:focus:bg-surface-900", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer", "[&>*]:w-full", "overflow-visible", className),
5242
+ className: cls("w-full", "relative flex items-center p-2 rounded-md text-sm text-surface-accent-700 dark:text-surface-accent-300", "focus:z-10", "data-[state=checked]:bg-surface-active focus:bg-surface-hover", "data-[state=checked]:focus:bg-surface-active", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer", "[&>*]:w-full", "overflow-visible", className),
5137
5243
  children: [/* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children }), /* @__PURE__ */ jsx("div", {
5138
5244
  className: "absolute left-1 data-[state=checked]:block hidden",
5139
5245
  children: /* @__PURE__ */ jsx(CheckIcon$1, { size: iconSize.smallest })
@@ -5155,12 +5261,12 @@ function SliderThumb(props) {
5155
5261
  asChild: true,
5156
5262
  children: /* @__PURE__ */ jsx(SliderPrimitive.Thumb, { className: cls({
5157
5263
  "border-primary bg-primary outline-none": !props.props.disabled,
5158
- "border-surface-accent-300 bg-surface-accent-300 dark:border-surface-700 dark:bg-surface-700": props.props.disabled
5264
+ "border-surface-raised-hover bg-surface-raised-hover": props.props.disabled
5159
5265
  }, props.classes, "focus-visible:ring-4 focus-visible:ring-primary focus-visible:ring-opacity-50 focus-visible:ring-primary/50", "hover:ring-4 hover:ring-primary hover:ring-opacity-25 hover:ring-primary/25", "block rounded-full transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50") })
5160
5266
  }), /* @__PURE__ */ jsx(TooltipPrimitive.Content, {
5161
5267
  side: "top",
5162
5268
  sideOffset: 5,
5163
- className: cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded-md px-3 py-2 text-xs leading-none bg-surface-accent-700 dark:bg-surface-accent-800 bg-opacity-90 bg-surface-accent-700/90 dark:bg-surface-accent-800/90 font-medium text-surface-accent-50 shadow-2xl select-none duration-400 ease-in transform opacity-100"),
5269
+ className: cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded-md px-3 py-2 text-xs leading-none bg-surface-800/95 dark:bg-surface-raised-hover font-medium text-white shadow-2xl select-none duration-400 ease-in transform opacity-100"),
5164
5270
  children: props.props.value?.[props.index]
5165
5271
  })]
5166
5272
  });
@@ -5178,10 +5284,10 @@ var Slider = React$1.forwardRef(({ className, size = "regular", ...props }, ref)
5178
5284
  ...props,
5179
5285
  children: [/* @__PURE__ */ jsx(SliderPrimitive.Track, {
5180
5286
  style: { height: size === "small" ? 4 : 8 },
5181
- className: "relative w-full grow overflow-hidden rounded-full bg-surface-accent-300 bg-opacity-40 bg-surface-accent-300/40 dark:bg-surface-700 dark:bg-opacity-40 dark:bg-surface-700/40",
5287
+ className: "relative w-full grow overflow-hidden rounded-full bg-surface-active",
5182
5288
  children: /* @__PURE__ */ jsx(SliderPrimitive.Range, { className: cls("absolute h-full", {
5183
5289
  "bg-primary": !props.disabled,
5184
- "bg-surface-accent-300 dark:bg-surface-700": props.disabled
5290
+ "bg-surface-raised-hover": props.disabled
5185
5291
  }) })
5186
5292
  }), (props.value ?? [0]).map((_, index) => /* @__PURE__ */ jsx(SliderThumb, {
5187
5293
  index,
@@ -5225,7 +5331,7 @@ var Sheet = ({ children, side = "right", title, modal = true, includeBackgroundO
5225
5331
  children: /* @__PURE__ */ jsxs(DialogPrimitive.Portal, {
5226
5332
  container: finalContainer,
5227
5333
  children: [includeBackgroundOverlay && /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
5228
- className: cls("outline-none", "fixed inset-0 bg-white/80 dark:bg-surface-900/80", "backdrop-blur-sm transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in", overlayZIndex, overlayClassName),
5334
+ className: cls("outline-none", "fixed inset-0 bg-surface-scrim", "backdrop-blur-sm transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in", overlayZIndex, overlayClassName),
5229
5335
  style: overlayStyle
5230
5336
  }), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
5231
5337
  ...props,
@@ -5233,7 +5339,7 @@ var Sheet = ({ children, side = "right", title, modal = true, includeBackgroundO
5233
5339
  onOpenAutoFocus: (event) => event.preventDefault(),
5234
5340
  onPointerDownOutside,
5235
5341
  onInteractOutside,
5236
- className: cls("outline-none", borderClass[side], defaultBorderMixin, "text-surface-accent-900 dark:text-white", "fixed transform z-50 transition-[transform,opacity] ease-in-out", !displayed ? "duration-150" : "duration-100", "outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-0 focus:ring-0", transparent ? "" : "shadow-md bg-white dark:bg-surface-900", side === "top" || side === "bottom" ? "w-full" : "h-full", side === "left" || side === "top" ? "left-0 top-0" : "right-0 bottom-0", displayed && open ? "opacity-100" : "opacity-50", !displayed || !open ? transformValue[side] : "", className),
5342
+ className: cls("outline-none", borderClass[side], defaultBorderMixin, "text-surface-accent-900 dark:text-white", "fixed transform z-50 transition-[transform,opacity] ease-in-out", !displayed ? "duration-150" : "duration-100", "outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-0 focus:ring-0", transparent ? "" : "shadow-md bg-surface-card", side === "top" || side === "bottom" ? "w-full" : "h-full", side === "left" || side === "top" ? "left-0 top-0" : "right-0 bottom-0", displayed && open ? "opacity-100" : "opacity-50", !displayed || !open ? transformValue[side] : "", className),
5237
5343
  style,
5238
5344
  children: [/* @__PURE__ */ jsx(DialogPrimitive.Title, {
5239
5345
  className: "sr-only outline-none focus:outline-none focus-visible:outline-none focus-visible:ring-0 focus:ring-0",
@@ -5454,7 +5560,7 @@ var TextField = forwardRef(({ value, onChange, label, type = "text", multiline =
5454
5560
  onFocus: () => setFocused(true),
5455
5561
  onBlur: () => setFocused(false),
5456
5562
  style: inputStyle,
5457
- className: cls(invisible ? focusedInvisibleMixin : "", "rounded-lg resize-none w-full outline-none text-base bg-transparent min-h-[64px] px-3", label ? "pt-8 pb-2" : "py-2", disabled && "outline-none opacity-50 text-surface-accent-600 dark:text-surface-accent-500", inputClassName)
5563
+ className: cls(invisible ? focusedInvisibleMixin : "", "rounded-lg resize-none w-full outline-none text-sm bg-transparent min-h-[64px] px-3", label ? "pt-8 pb-2" : "py-2", disabled && "outline-none opacity-50 text-surface-accent-600 dark:text-surface-accent-500", inputClassName)
5458
5564
  }) : /* @__PURE__ */ jsx("input", {
5459
5565
  ...inputProps,
5460
5566
  ref: inputRef,
@@ -5464,7 +5570,7 @@ var TextField = forwardRef(({ value, onChange, label, type = "text", multiline =
5464
5570
  "aria-disabled": disabled || void 0,
5465
5571
  disabled,
5466
5572
  style: inputStyle,
5467
- className: cls("w-full outline-none bg-transparent leading-normal px-3", "rounded-lg", "focused:text-text-primary focused:dark:text-text-primary-dark", invisible ? focusedInvisibleMixin : "", disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin, {
5573
+ className: cls("w-full outline-none bg-transparent leading-normal px-3 text-sm", "rounded-lg", "focused:text-text-primary focused:dark:text-text-primary-dark", invisible ? focusedInvisibleMixin : "", {
5468
5574
  "min-h-[28px]": size === "smallest",
5469
5575
  "min-h-[32px]": size === "small",
5470
5576
  "min-h-[40px]": size === "medium",
@@ -5485,7 +5591,7 @@ var TextField = forwardRef(({ value, onChange, label, type = "text", multiline =
5485
5591
  });
5486
5592
  return /* @__PURE__ */ jsxs("div", {
5487
5593
  ref,
5488
- className: cls("rounded-lg relative max-w-full", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin, error ? "border border-red-500 dark:border-red-600" : "", {
5594
+ className: cls("rounded-lg relative max-w-full", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : invisible ? "" : fieldBackgroundHoverMixin, error ? "border border-red-500 dark:border-red-600" : "", {
5489
5595
  "min-h-[28px]": size === "smallest",
5490
5596
  "min-h-[32px]": size === "small",
5491
5597
  "min-h-[40px]": size === "medium",
@@ -5567,7 +5673,7 @@ function Tabs({ value, onValueChange, className, innerClassName, variant = "stan
5567
5673
  disabled: !showLeftScroll,
5568
5674
  "aria-label": "Scroll tabs left",
5569
5675
  onClick: () => scroll("left"),
5570
- className: cls("absolute left-0 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center rounded-md transition-all h-8 w-6", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400", !showLeftScroll ? "pointer-events-none opacity-0" : "text-surface-600 dark:text-surface-400 hover:bg-surface-accent-200 dark:hover:bg-surface-accent-800", "bg-surface-50 dark:bg-surface-900 border shadow-sm", "border-surface-200 dark:border-surface-700/60"),
5676
+ className: cls("absolute left-0 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center rounded-md transition-all h-8 w-6", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400", !showLeftScroll ? "pointer-events-none opacity-0" : "text-surface-600 dark:text-surface-400 hover:bg-surface-hover", "bg-surface-card border shadow-sm", "border-hairline"),
5571
5677
  children: /* @__PURE__ */ jsx(ChevronLeftIcon$1, { size: iconSize.smallest })
5572
5678
  }),
5573
5679
  /* @__PURE__ */ jsx("div", {
@@ -5579,7 +5685,7 @@ function Tabs({ value, onValueChange, className, innerClassName, variant = "stan
5579
5685
  msOverflowStyle: "none"
5580
5686
  },
5581
5687
  children: /* @__PURE__ */ jsx(TabsPrimitive.List, {
5582
- className: cls(variant === "standard" && "inline-flex h-9 items-center justify-start rounded-md bg-surface-50 p-1 text-surface-600 dark:bg-surface-900 dark:text-surface-400 gap-2 border", variant === "standard" && "border-surface-200 dark:border-surface-700/60", variant === "boxy" && "flex items-center h-full", variant === "pill" && "flex items-center gap-0.5", innerClassName),
5688
+ className: cls(variant === "standard" && "inline-flex h-9 items-center justify-start rounded-md bg-surface-field p-1 text-surface-600 dark:text-surface-400 gap-2", variant === "boxy" && "flex items-end h-full", variant === "pill" && "flex items-center gap-0.5", innerClassName),
5583
5689
  children
5584
5690
  })
5585
5691
  }),
@@ -5588,7 +5694,7 @@ function Tabs({ value, onValueChange, className, innerClassName, variant = "stan
5588
5694
  disabled: !showRightScroll,
5589
5695
  "aria-label": "Scroll tabs right",
5590
5696
  onClick: () => scroll("right"),
5591
- className: cls("absolute right-0 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center rounded-md transition-all h-8 w-6", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400", !showRightScroll ? "pointer-events-none opacity-0" : "text-surface-600 dark:text-surface-400 hover:bg-surface-accent-200 dark:hover:bg-surface-accent-800", "bg-surface-50 dark:bg-surface-900 border shadow-sm", "border-surface-200 dark:border-surface-700/60"),
5697
+ className: cls("absolute right-0 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center rounded-md transition-all h-8 w-6", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400", !showRightScroll ? "pointer-events-none opacity-0" : "text-surface-600 dark:text-surface-400 hover:bg-surface-hover", "bg-surface-card border shadow-sm", "border-hairline"),
5592
5698
  children: /* @__PURE__ */ jsx(ChevronRightIcon$1, { size: iconSize.smallest })
5593
5699
  })
5594
5700
  ]
@@ -5600,7 +5706,7 @@ function Tab({ value, className, innerClassName, children, disabled }) {
5600
5706
  return /* @__PURE__ */ jsx(TabsPrimitive.Trigger, {
5601
5707
  value,
5602
5708
  disabled,
5603
- className: cls("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-white transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400 focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", variant === "standard" && "rounded-md px-3 py-1 data-[state=active]:bg-white data-[state=active]:text-surface-900 data-[state=active]:shadow-sm dark:data-[state=active]:bg-surface-900 dark:data-[state=active]:text-surface-50", variant === "boxy" && cls("flex-shrink-0 flex items-center gap-1.5 px-3.5 h-9 border-r border-surface-200 dark:border-surface-800 cursor-pointer text-xs font-medium transition-colors group relative box-border overflow-hidden", "border-b-2 border-b-transparent", "data-[state=active]:bg-surface-50 dark:data-[state=active]:bg-surface-900", "data-[state=active]:text-text-primary dark:data-[state=active]:text-text-primary-dark", "data-[state=active]:border-b-primary", "text-text-secondary dark:text-text-secondary-dark hover:bg-surface-100 dark:hover:bg-surface-800"), variant === "pill" && cls("px-2 py-0.5 rounded-md text-[10px] font-medium transition-colors", "data-[state=active]:bg-primary/10 data-[state=active]:text-primary dark:data-[state=active]:bg-primary/20 dark:data-[state=active]:text-primary", "text-text-disabled dark:text-text-disabled-dark hover:text-text-secondary dark:hover:text-text-secondary-dark"), className, variant === "standard" && innerClassName),
5709
+ className: cls("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-white transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400 focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", variant === "standard" && "rounded-md px-3 py-1 data-[state=active]:bg-surface-lifted data-[state=active]:text-surface-900 data-[state=active]:shadow-sm dark:data-[state=active]:text-surface-50", variant === "boxy" && cls("flex-shrink-0 flex items-center gap-1.5 px-3.5 h-9 cursor-pointer text-xs font-medium transition-colors group relative box-border", "rounded-t-lg -mb-px border border-transparent border-b-0", "data-[state=active]:bg-surface-card data-[state=active]:border-hairline", "data-[state=active]:text-text-primary dark:data-[state=active]:text-text-primary-dark", "text-text-secondary dark:text-text-secondary-dark hover:bg-surface-hover"), variant === "pill" && cls("px-2 py-0.5 rounded-md text-[10px] font-medium transition-colors", "data-[state=active]:bg-primary/10 data-[state=active]:text-primary dark:data-[state=active]:bg-primary/20 dark:data-[state=active]:text-primary", "text-text-disabled dark:text-text-disabled-dark hover:text-text-secondary dark:hover:text-text-secondary-dark"), className, variant === "standard" && innerClassName),
5604
5710
  children
5605
5711
  });
5606
5712
  }
@@ -5613,21 +5719,21 @@ var Table = React.memo(({ children, className, style, ...rest }) => /* @__PURE__
5613
5719
  children
5614
5720
  }));
5615
5721
  var TableBody = React.memo(({ children, className, ...rest }) => /* @__PURE__ */ jsx("tbody", {
5616
- className: cls("bg-white dark:bg-surface-900 text-sm divide-y divide-surface-100 dark:divide-surface-700 dark:divide-opacity-70 dark:divide-surface-700/70", className),
5722
+ className: cls("bg-surface-card text-sm divide-y divide-hairline", className),
5617
5723
  ...rest,
5618
5724
  children
5619
5725
  }));
5620
5726
  var TableHeader = React.memo(({ children, className, ...rest }) => /* @__PURE__ */ jsx("thead", {
5621
5727
  ...rest,
5622
5728
  children: /* @__PURE__ */ jsx("tr", {
5623
- className: cls(defaultBorderMixin, "text-sm font-medium text-surface-700 dark:text-surface-accent-300", "bg-surface-accent-50 border-b dark:bg-surface-800", className),
5729
+ className: cls(defaultBorderMixin, "text-sm font-medium text-surface-700 dark:text-surface-accent-300", "bg-surface-sheet border-b", className),
5624
5730
  children
5625
5731
  })
5626
5732
  }));
5627
5733
  var TableRow = React.memo(({ children, className, onClick, style, ...rest }) => /* @__PURE__ */ jsx("tr", {
5628
5734
  onClick,
5629
5735
  style,
5630
- className: cls("bg-white dark:bg-surface-900", onClick ? "transition-colors duration-150 hover:bg-primary/5 cursor-pointer" : "", className),
5736
+ className: cls("bg-surface-card", onClick ? "transition-colors duration-150 hover:bg-surface-card-hover cursor-pointer" : "", className),
5631
5737
  ...rest,
5632
5738
  children
5633
5739
  }));
@@ -5771,7 +5877,7 @@ var getColor = (color) => {
5771
5877
  case "secondary": return "bg-secondary";
5772
5878
  case "warning": return "bg-orange-500";
5773
5879
  case "error": return "bg-red-500";
5774
- default: return "bg-surface-accent-300 dark:bg-surface-accent-700";
5880
+ default: return "bg-surface-raised-hover";
5775
5881
  }
5776
5882
  };
5777
5883
  var Badge = React.forwardRef(({ color = "primary", invisible = false, children }, ref) => {
@@ -5874,7 +5980,7 @@ function Skeleton({ width, height, className }) {
5874
5980
  width: width === void 0 ? void 0 : `${width}px`,
5875
5981
  height: height === void 0 ? void 0 : `${height}px`
5876
5982
  },
5877
- className: cls("block relative overflow-hidden", "bg-surface-accent-50 dark:bg-surface-accent-800 rounded-md", "max-w-full max-h-full", width === void 0 ? "w-full" : void 0, height === void 0 ? "h-3" : void 0, className),
5983
+ className: cls("block relative overflow-hidden", "bg-surface-raised rounded-md", "max-w-full max-h-full", width === void 0 ? "w-full" : void 0, height === void 0 ? "h-3" : void 0, className),
5878
5984
  children: /* @__PURE__ */ jsx("span", {
5879
5985
  className: "absolute inset-0 bg-gradient-to-r from-transparent via-white/50 dark:via-white/8 to-transparent",
5880
5986
  style: { animation: "shimmer 1.8s ease-in-out infinite" }
@@ -5891,7 +5997,7 @@ function ToggleButtonGroup({ value, onValueChange, options, className }) {
5891
5997
  return /* @__PURE__ */ jsx("div", {
5892
5998
  role: "group",
5893
5999
  "aria-label": "Toggle options",
5894
- className: cls("inline-flex flex-row bg-surface-100 dark:bg-surface-900 rounded-lg p-1 gap-1", className),
6000
+ className: cls("inline-flex flex-row bg-surface-field rounded-lg p-1 gap-1", className),
5895
6001
  children: options.map((option) => /* @__PURE__ */ jsxs("button", {
5896
6002
  type: "button",
5897
6003
  onClick: (e) => {
@@ -5901,9 +6007,9 @@ function ToggleButtonGroup({ value, onValueChange, options, className }) {
5901
6007
  disabled: option.disabled,
5902
6008
  "aria-pressed": value === option.value,
5903
6009
  "aria-disabled": option.disabled || void 0,
5904
- className: cls("flex flex-row items-center justify-center gap-2 py-3 px-4 rounded-md transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", value === option.value ? "bg-white dark:bg-surface-700 text-primary dark:text-primary-300 shadow-sm" : "text-text-secondary dark:text-text-secondary-dark hover:bg-surface-200 dark:hover:bg-surface-800", option.disabled && "opacity-50 cursor-not-allowed"),
6010
+ className: cls("flex flex-row items-center justify-center gap-2 h-6 px-3.5 rounded-md transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", value === option.value ? "bg-surface-lifted text-text-primary dark:text-text-primary-dark shadow-sm" : "text-text-secondary dark:text-text-secondary-dark hover:bg-surface-hover", option.disabled && "opacity-50 cursor-not-allowed"),
5905
6011
  children: [option.icon, /* @__PURE__ */ jsx("span", {
5906
- className: "text-sm font-medium",
6012
+ className: "text-xs font-medium",
5907
6013
  children: option.label
5908
6014
  })]
5909
6015
  }, option.value))
@@ -5937,7 +6043,7 @@ var VirtualTableHeader = React.memo(function VirtualTableHeader({ resizeHandleRe
5937
6043
  }, [column, onFilterUpdate]);
5938
6044
  const hovered = !(isResizingIndex !== columnIndex && isResizingIndex > 0) && (onHover || isResizingIndex === columnIndex);
5939
6045
  return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxs("div", {
5940
- className: cls("flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center", isDragging ? "bg-primary-bg dark:bg-primary-bg-dark" : "bg-surface-50 dark:bg-surface-900", "text-text-secondary hover:text-text-primary dark:text-text-secondary-dark dark:hover:text-text-primary-dark", !isDragging && "hover:bg-surface-100 dark:hover:bg-surface-900 hover:bg-opacity-50 hover:bg-surface-100/50 dark:hover:bg-opacity-50 dark:hover:bg-surface-900/50", column.frozen ? "sticky left-0 z-10" : "relative z-0", isDraggable && "cursor-grab"),
6046
+ className: cls("flex py-0 px-3 h-full text-xs uppercase font-semibold relative select-none items-center", isDragging ? "bg-primary-bg dark:bg-primary-bg-dark" : "bg-surface-sheet", "text-text-secondary hover:text-text-primary dark:text-text-secondary-dark dark:hover:text-text-primary-dark", !isDragging && "hover:bg-surface-hover", column.frozen ? "sticky left-0 z-10" : "relative z-0", isDraggable && "cursor-grab"),
5941
6047
  style: {
5942
6048
  left: column.frozen ? 0 : void 0,
5943
6049
  minWidth: column.width,
@@ -5975,7 +6081,7 @@ var VirtualTableHeader = React.memo(function VirtualTableHeader({ resizeHandleRe
5975
6081
  invisible: !sort,
5976
6082
  children: /* @__PURE__ */ jsxs(IconButton, {
5977
6083
  size: "small",
5978
- className: onHover || openFilter ? "bg-white dark:bg-surface-900" : void 0,
6084
+ className: onHover || openFilter ? "bg-surface-card" : void 0,
5979
6085
  title: sortActionTitle(sort, sortPosition),
5980
6086
  "aria-label": sortActionTitle(sort, sortPosition),
5981
6087
  onClick: (event) => {
@@ -6013,7 +6119,7 @@ var VirtualTableHeader = React.memo(function VirtualTableHeader({ resizeHandleRe
6013
6119
  className: hidden ? "hidden" : void 0,
6014
6120
  modal: true,
6015
6121
  trigger: /* @__PURE__ */ jsx(IconButton, {
6016
- className: onHover || openFilter ? "bg-white dark:bg-surface-900" : void 0,
6122
+ className: onHover || openFilter ? "bg-surface-card" : void 0,
6017
6123
  size: "small",
6018
6124
  onClick: handleSettingsClick,
6019
6125
  children: /* @__PURE__ */ jsx(FilterIcon$1, {
@@ -6036,7 +6142,7 @@ var VirtualTableHeader = React.memo(function VirtualTableHeader({ resizeHandleRe
6036
6142
  column.resizable && /* @__PURE__ */ jsx("div", {
6037
6143
  ref: resizeHandleRef,
6038
6144
  "data-no-dnd": "true",
6039
- className: cls("absolute h-full w-[6px] top-0 right-0 cursor-col-resize", hovered && "bg-surface-300 dark:bg-surface-700"),
6145
+ className: cls("absolute h-full w-[6px] top-0 right-0 cursor-col-resize", hovered && "bg-hairline-strong"),
6040
6146
  onPointerDown: (e) => {
6041
6147
  e.stopPropagation();
6042
6148
  if (onClickResizeColumn) onClickResizeColumn(columnIndex, column);
@@ -6154,7 +6260,7 @@ var SortableColumnHeader = ({ column, columnIndex, columnRefs, isResizing, onFil
6154
6260
  })
6155
6261
  });
6156
6262
  };
6157
- var VirtualTableHeaderRow = ({ columns, sortIndex, onColumnSort, onFilterUpdate, filter, onColumnResize, onColumnResizeEnd, createFilterField, AddColumnComponent, onColumnsOrderChange, data, cellRenderer: CellRenderer, rowHeight = 54, draggingColumnId, headerHeight = 48 }) => {
6263
+ var VirtualTableHeaderRow = ({ columns, sortIndex, onColumnSort, onFilterUpdate, filter, onColumnResize, onColumnResizeEnd, createFilterField, AddColumnComponent, onColumnsOrderChange, data, cellRenderer: CellRenderer, rowHeight = 54, draggingColumnId, headerHeight = 40 }) => {
6158
6264
  const columnRefs = useMemo(() => columns.map(() => createRef()), [columns.length]);
6159
6265
  const [isResizing, setIsResizing] = useState(-1);
6160
6266
  const adjustWidthColumn = useCallback((index, width, end) => {
@@ -6234,7 +6340,7 @@ var VirtualTableHeaderRow = ({ columns, sortIndex, onColumnSort, onFilterUpdate,
6234
6340
  setCursorDocument(true);
6235
6341
  }, [setCursorDocument]);
6236
6342
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", {
6237
- className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 border-b bg-surface-50 dark:bg-surface-900"),
6343
+ className: cls(defaultBorderMixin, "z-20 sticky min-w-full flex w-fit flex-row top-0 left-0 border-b bg-surface-sheet"),
6238
6344
  style: { height: headerHeight },
6239
6345
  children: [columns.map((column, columnIndex) => {
6240
6346
  const columnFilter = column && filter && filter[column.key] ? filter[column.key] : void 0;
@@ -6274,8 +6380,8 @@ var VirtualTableRow = React.memo(function VirtualTableRow({ rowData, rowIndex, c
6274
6380
  rowIndex
6275
6381
  ]);
6276
6382
  return /* @__PURE__ */ jsx("div", {
6277
- className: cls("flex min-w-full text-sm border-b border-surface-200/60 dark:border-surface-700/60 dark:bg-surface-800", rowClassName ? rowClassName(rowData) : "", {
6278
- "hover:!bg-primary/[0.03] dark:hover:!bg-primary/5": hoverRow,
6383
+ className: cls("group flex min-w-full text-sm border-b border-hairline bg-surface-card", rowClassName ? rowClassName(rowData) : "", {
6384
+ "hover:!bg-surface-card-hover": hoverRow,
6279
6385
  "cursor-pointer ": onRowClick
6280
6386
  }),
6281
6387
  onClick,
@@ -6370,7 +6476,7 @@ var innerElementType = forwardRef(({ children, ...rest }, ref) => {
6370
6476
  * implementation always had. Runtime behaviour is unchanged — this is the same
6371
6477
  * memoized component under a type that describes it.
6372
6478
  */
6373
- var VirtualTable = React.memo(function VirtualTable({ data, onResetPagination, onEndReached, endOffset = 600, rowHeight = 54, headerHeight = 48, columns: columnsProp, onRowClick, onColumnResize, onColumnResizeEnd, filter: filterInput, checkFilterCombination, onFilterUpdate, sortBy, error, emptyComponent, onSortByUpdate, onScroll: onScrollProp, loading, cellRenderer, hoverRow, createFilterField, rowClassName, style, className, endAdornment, AddColumnComponent, initialScroll = 0, onColumnsOrderChange, extraData }) {
6479
+ var VirtualTable = React.memo(function VirtualTable({ data, onResetPagination, onEndReached, endOffset = 600, rowHeight = 54, headerHeight = 40, columns: columnsProp, onRowClick, onColumnResize, onColumnResizeEnd, filter: filterInput, checkFilterCombination, onFilterUpdate, sortBy, error, emptyComponent, onSortByUpdate, onScroll: onScrollProp, loading, cellRenderer, hoverRow, createFilterField, rowClassName, style, className, endAdornment, AddColumnComponent, initialScroll = 0, onColumnsOrderChange, extraData }) {
6374
6480
  const sortIndex = useMemo(() => {
6375
6481
  const index = /* @__PURE__ */ new Map();
6376
6482
  (sortBy ?? []).forEach(([key, direction], position) => {
@@ -6615,7 +6721,7 @@ var SortableCellWrapper = ({ columnKey, width, isDragging, isDraggable, frozen,
6615
6721
  maxWidth: width,
6616
6722
  width
6617
6723
  },
6618
- className: cls("flex-shrink-0", frozen && "sticky left-0 z-10 bg-white dark:bg-surface-900"),
6724
+ className: cls("flex-shrink-0", frozen && "sticky left-0 z-10 bg-surface-card"),
6619
6725
  ...attrsWithoutTabIndex,
6620
6726
  children
6621
6727
  });
@@ -6631,7 +6737,7 @@ function MemoizedList({ outerRef, width, height, itemCount, onScroll, itemSize,
6631
6737
  onScroll,
6632
6738
  itemSize,
6633
6739
  children: useCallback(({ index, style }) => {
6634
- return /* @__PURE__ */ jsx(VirtualListContext.Consumer, { children: ({ onRowClick, data, columns, rowHeight = 54, headerHeight = 48, cellRenderer, hoverRow, rowClassName, endAdornment, draggingColumnId, onColumnsOrderChange, extraData }) => {
6740
+ return /* @__PURE__ */ jsx(VirtualListContext.Consumer, { children: ({ onRowClick, data, columns, rowHeight = 54, headerHeight = 40, cellRenderer, hoverRow, rowClassName, endAdornment, draggingColumnId, onColumnsOrderChange, extraData }) => {
6635
6741
  if (endAdornment && index === (data ?? []).length) return /* @__PURE__ */ jsx("div", {
6636
6742
  style: {
6637
6743
  ...style,
@@ -6677,7 +6783,7 @@ function MemoizedList({ outerRef, width, height, itemCount, onScroll, itemSize,
6677
6783
  extraData
6678
6784
  })
6679
6785
  }, `cell_wrapper_${column.key}`) : /* @__PURE__ */ jsx("div", {
6680
- className: cls("flex-shrink-0 relative", column.frozen && "sticky left-0 z-10 bg-white dark:bg-surface-900"),
6786
+ className: cls("flex-shrink-0 relative", column.frozen && "sticky left-0 z-10 bg-surface-card"),
6681
6787
  style: {
6682
6788
  minWidth: column.width,
6683
6789
  maxWidth: column.width,
@@ -6896,12 +7002,13 @@ function VirtualTableSwitch(props) {
6896
7002
  //#endregion
6897
7003
  //#region src/components/VirtualTable/fields/VirtualTableDateField.tsx
6898
7004
  function VirtualTableDateField(props) {
6899
- const { disabled, error, mode, timezone, internalValue, updateValue, small = false, locale } = props;
7005
+ const { name, disabled, error, mode, timezone, internalValue, updateValue, small = false, locale } = props;
6900
7006
  return /* @__PURE__ */ jsx(DateTimeField, {
6901
7007
  value: internalValue ?? void 0,
6902
7008
  onChange: (dateValue) => updateValue(dateValue ?? null),
6903
7009
  disabled,
6904
7010
  error: Boolean(error),
7011
+ "aria-label": name,
6905
7012
  invisible: true,
6906
7013
  size: small ? "small" : "medium",
6907
7014
  inputClassName: cls("w-full h-full", focusedDisabled),
@@ -7085,10 +7192,9 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
7085
7192
  }
7086
7193
  return String(item);
7087
7194
  }, []);
7088
- const borderMixinClass = "border-surface-200 dark:border-surface-800";
7089
7195
  return /* @__PURE__ */ jsx("div", {
7090
7196
  ref: containerRef,
7091
- className: cls("w-full", selectedEntityId === void 0 && `rounded-lg overflow-hidden border ${borderMixinClass}`),
7197
+ className: cls("w-full", selectedEntityId === void 0 && `rounded-lg overflow-hidden border border-hairline`),
7092
7198
  children: dataLoadingError && data.length === 0 ? /* @__PURE__ */ jsx("div", {
7093
7199
  className: "flex items-center justify-center p-8",
7094
7200
  children: /* @__PURE__ */ jsxs(Typography, {
@@ -7107,6 +7213,7 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
7107
7213
  })
7108
7214
  }) : /* @__PURE__ */ jsxs(Fragment, { children: [header, /* @__PURE__ */ jsxs("div", {
7109
7215
  ref: rowsRef,
7216
+ className: "my-1.5",
7110
7217
  style: {
7111
7218
  height: totalHeight + footerHeight,
7112
7219
  position: "relative"
@@ -7143,7 +7250,7 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
7143
7250
  height: estimatedRowHeight,
7144
7251
  overflow: "hidden"
7145
7252
  },
7146
- className: cls(!isLast && "border-b", !isLast && borderMixinClass),
7253
+ className: "py-0.5",
7147
7254
  selected,
7148
7255
  highlighted,
7149
7256
  isLast,
@@ -7163,7 +7270,7 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
7163
7270
  children: /* @__PURE__ */ jsx(CircularProgress, { size: "small" })
7164
7271
  }),
7165
7272
  !dataLoading && noMoreToLoad && data.length > 0 && /* @__PURE__ */ jsx("div", {
7166
- className: "flex items-center justify-center py-2 dark:bg-surface-900",
7273
+ className: "flex items-center justify-center py-2",
7167
7274
  style: {
7168
7275
  position: "absolute",
7169
7276
  top: totalHeight,
@@ -7400,7 +7507,7 @@ function BoardSortableList({ columnId, items, ItemComponent, isDragging, isDragO
7400
7507
  }, [hasMore, onLoadMore]);
7401
7508
  return /* @__PURE__ */ jsx("div", {
7402
7509
  ref: setNodeRef,
7403
- className: useMemo(() => cls("flex flex-col p-2 transition-opacity duration-100 transition-bg ease-linear w-full overflow-y-auto flex-1 min-h-0 rounded-md", isDragging && isDragOverColumn ? "bg-surface-accent-200 dark:bg-surface-900" : isDragging ? "bg-surface-50 dark:bg-surface-900 hover:bg-surface-accent-100 dark:hover:bg-surface-800" : "bg-surface-50 dark:bg-surface-900"), [isDragging, isDragOverColumn]),
7510
+ className: useMemo(() => cls("flex flex-col p-2 transition-opacity duration-100 transition-bg ease-linear w-full overflow-y-auto flex-1 min-h-0 rounded-md", isDragging && isDragOverColumn ? "bg-surface-active" : isDragging ? "bg-surface-field hover:bg-surface-hover" : "bg-surface-field"), [isDragging, isDragOverColumn]),
7404
7511
  style: { minHeight: 80 },
7405
7512
  children: /* @__PURE__ */ jsx(SortableContext, {
7406
7513
  items: items.map((i) => i.id),
@@ -7492,8 +7599,8 @@ var BoardColumn = memo(function BoardColumn({ id, title, items, ItemComponent, i
7492
7599
  isColumnBeingDragged
7493
7600
  ]);
7494
7601
  const dragListeners = allowReorder ? listeners : {};
7495
- const columnClassName = useMemo(() => cls("border h-full w-80 min-w-80 mx-2 flex flex-col rounded-md border-surface-200 dark:border-surface-800", isColumnBeingDragged ? "ring-2 ring-primary" : ""), [isColumnBeingDragged]);
7496
- const headerClassName = useMemo(() => cls("flex items-center justify-between px-2 rounded-t-md transition-colors duration-200 ease-in-out", isColumnBeingDragged ? "bg-surface-100 dark:bg-surface-700" : "bg-surface-50 hover:bg-surface-100 dark:bg-surface-800 dark:hover:bg-surface-700", allowReorder ? "cursor-grab" : ""), [isColumnBeingDragged, allowReorder]);
7602
+ const columnClassName = useMemo(() => cls("border h-full w-80 min-w-80 mx-2 flex flex-col rounded-md border-hairline", isColumnBeingDragged ? "ring-2 ring-primary" : ""), [isColumnBeingDragged]);
7603
+ const headerClassName = useMemo(() => cls("flex items-center justify-between px-2 rounded-t-md transition-colors duration-200 ease-in-out", isColumnBeingDragged ? "bg-surface-active" : "bg-surface-field hover:bg-surface-field-hover", allowReorder ? "cursor-grab" : ""), [isColumnBeingDragged, allowReorder]);
7497
7604
  const itemIds = useMemo(() => items.map((i) => i.id), [items]);
7498
7605
  return /* @__PURE__ */ jsxs("div", {
7499
7606
  ref: setNodeRef,
@@ -7851,7 +7958,7 @@ function CollectionViewToolbar({ viewMode, onViewModeChange, enabledViews = [
7851
7958
  const showKanbanSelector = kanbanPropertyOptions && kanbanPropertyOptions.length > 0 && viewMode === "kanban" && onKanbanPropertyChange;
7852
7959
  const showPopover = showViewToggle || showSizeSelector || showKanbanSelector;
7853
7960
  return /* @__PURE__ */ jsxs("div", {
7854
- className: cls("flex items-center gap-2 px-2 flex-shrink-0", "border-b border-surface-200 dark:border-surface-800", compact ? "py-0.5 gap-1" : "py-1"),
7961
+ className: cls("flex items-center gap-2 px-2 flex-shrink-0", "border-b border-hairline", compact ? "py-0.5 gap-1" : "py-1"),
7855
7962
  children: [
7856
7963
  actionsStart,
7857
7964
  onSearchChange && /* @__PURE__ */ jsx(SearchBar, {
@@ -8081,7 +8188,7 @@ function renderString(property, value) {
8081
8188
  if (fallback instanceof HTMLElement) fallback.style.display = "flex";
8082
8189
  }
8083
8190
  }) : null, /* @__PURE__ */ jsx("div", {
8084
- className: cls("w-full h-full items-center justify-center rounded", "bg-surface-100 dark:bg-surface-800 text-text-secondary dark:text-text-secondary-dark", strValue ? "hidden" : "flex"),
8191
+ className: cls("w-full h-full items-center justify-center rounded", "bg-surface-raised text-text-secondary dark:text-text-secondary-dark", strValue ? "hidden" : "flex"),
8085
8192
  children: /* @__PURE__ */ jsx(ImageIcon$1, { size: iconSize.small })
8086
8193
  })]
8087
8194
  });
@@ -8512,7 +8619,7 @@ function CollectionCardView({ dataController, properties, propertiesOrder, idPro
8512
8619
  src: imageValue,
8513
8620
  alt: "",
8514
8621
  className: "w-full h-32 object-cover rounded-t-lg"
8515
- }) : /* @__PURE__ */ jsx("div", { className: cls("h-24 rounded-t-lg", "bg-surface-accent-200/50 dark:bg-white/[0.055] dark:shadow-[inset_0_1px_0_rgb(255_255_255/0.045)]") })),
8622
+ }) : /* @__PURE__ */ jsx("div", { className: cls("h-24 rounded-t-lg", "bg-surface-field border border-hairline") })),
8516
8623
  selectionEnabled && /* @__PURE__ */ jsx("div", {
8517
8624
  className: "absolute top-2 right-2",
8518
8625
  onClick: (e) => e.stopPropagation(),
@@ -8656,7 +8763,7 @@ function CollectionListView({ dataController, properties, propertiesOrder, idPro
8656
8763
  const titleValue = getValueInPath(item, titlePropertyKey);
8657
8764
  return /* @__PURE__ */ jsxs("div", {
8658
8765
  style,
8659
- className: cls("flex items-center gap-3 px-4 cursor-pointer", "hover:bg-surface-50 dark:hover:bg-surface-700", "transition-colors duration-100", selected && "bg-primary-50 dark:bg-primary-900/20", highlighted && "bg-surface-100 dark:bg-surface-800", rowClassName),
8766
+ className: cls("flex items-center gap-3 px-4 cursor-pointer", "hover:bg-surface-hover", "transition-colors duration-100", selected && "bg-primary-50 dark:bg-primary-900/20", highlighted && "bg-surface-raised", rowClassName),
8660
8767
  onClick,
8661
8768
  children: [selectionEnabled && /* @__PURE__ */ jsx("div", {
8662
8769
  className: "flex-shrink-0",
@@ -9031,7 +9138,7 @@ function CollectionView({ dataController, properties, propertiesOrder, displayed
9031
9138
  }
9032
9139
  }
9033
9140
  return /* @__PURE__ */ jsxs("div", {
9034
- className: cls("overflow-hidden h-full w-full rounded-md flex flex-col", "dark:bg-surface-800", className),
9141
+ className: cls("overflow-hidden h-full w-full rounded-md flex flex-col", "bg-surface-sheet", className),
9035
9142
  children: [
9036
9143
  dataController.error && dataController.data.length > 0 && /* @__PURE__ */ jsx("div", {
9037
9144
  className: "flex items-center gap-4 px-4 py-2 bg-red-50 dark:bg-red-900/20 border-b border-red-200 dark:border-red-800 flex-shrink-0",
@@ -9069,6 +9176,6 @@ function CollectionView({ dataController, properties, propertiesOrder, displayed
9069
9176
  });
9070
9177
  }
9071
9178
  //#endregion
9072
- export { Alert, AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, Autocomplete, AutocompleteItem, Avatar, Badge, BoldIcon, BookOpenIcon, BooleanSwitch, BooleanSwitchWithLabel, Button, CHIP_COLORS, CHIP_HUES, CHIP_SEED_KEYS, CONTROL_HEIGHT, CalendarIcon, Card, CardView, CenteredView, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, Chip, CircleDotIcon, CircleIcon, CircleUserIcon, CircularProgress, CircularProgressCenter, CodeIcon, Collapse, CollectionView, ColorPicker, ColumnsIcon, Container, CopyIcon, DatabaseIcon, DateTimeField, DebouncedTextField, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, DownloadIcon, ErrorBoundary, ExpandablePanel, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GitHubIcon, GlobeIcon, HandleIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, ImageIcon, ImageOffIcon, InfoIcon, InfoLabel, InputLabel, ItalicIcon, KanbanIcon, KanbanView, KeyIcon, KeyRoundIcon, Label, LanguagesIcon, LayoutGridIcon, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, ListView, LoaderIcon, LoadingButton, LockIcon, LogOutIcon, LucideIconByName, MailIcon, Markdown, Maximize2Icon, Menu, MenuIcon, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarItemIndicator, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarSubTriggerIndicator, MenubarTrigger, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, MultiSelect, MultiSelectContext, MultiSelectItem, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, Paper, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, Popover, PopoverPrimitive, Portal, PortalContainerProvider, QuoteIcon, RadioGroup, RadioGroupItem, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, ResizablePanels, Rows3Icon, SaveIcon, SearchBar, SearchIcon, Select, SelectGroup, SelectItem, SendIcon, Separator, SettingsIcon, Sheet, ShieldIcon, ShoppingCartIcon, Skeleton, Slider, SlidersHorizontalIcon, Slot, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableIcon, TableRow, Tabs, TagIcon, TerminalIcon, TextField, TextIcon, TextareaAutosize, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VirtualTable, VirtualTableDateField, VirtualTableInput, VirtualTableNumberInput, VirtualTableSelect, VirtualTableSelectionProvider, VirtualTableSwitch, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, accentTextMixin, cardClickableMixin, cardMixin, cardSelectedMixin, cls, codeSurfaceMixin, colorClassesMapping, controlHeightMixin, controlPaddingMixin, coolIconKeys, createVirtualTableSelectionStore, debounce, defaultBorderMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundInvisibleMixin, fieldBackgroundMixin, focusedClasses, focusedDisabled, focusedInvisibleMixin, getColorSchemeForKey, getColorSchemeForSeed, getLoadedLucideIcons, iconKeys, iconSize, isChunkLoadError, lazyChunk, loadChunk, loadLucideIcons, lucideIcons, paperMixin, resolveLucideIcon, useAutoComplete, useDebounceCallback, useDebounceValue, useDebouncedCallback, useInjectStyles, useLucideIcons, useOutsideAlerter, usePortalContainer, useVirtualTableCellSelected, useVirtualTableSelection };
9179
+ export { Alert, AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, Autocomplete, AutocompleteItem, Avatar, Badge, BoldIcon, BookOpenIcon, BooleanSwitch, BooleanSwitchWithLabel, Button, CHIP_COLORS, CHIP_HUES, CHIP_SEED_KEYS, CONTROL_HEIGHT, CalendarIcon, Card, CardView, CenteredView, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, Chip, CircleDotIcon, CircleIcon, CircleUserIcon, CircularProgress, CircularProgressCenter, CodeIcon, Collapse, CollectionView, ColorPicker, ColumnsIcon, Container, CopyIcon, DatabaseIcon, DateTimeField, DebouncedTextField, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, DownloadIcon, ErrorBoundary, ExpandablePanel, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GitHubIcon, GlobeIcon, HandleIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, ImageIcon, ImageOffIcon, InfoIcon, InfoLabel, InputLabel, ItalicIcon, KanbanIcon, KanbanView, KeyIcon, KeyRoundIcon, Label, LanguagesIcon, LayoutGridIcon, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, ListView, LoaderIcon, LoadingButton, LockIcon, LogOutIcon, LucideIconByName, MailIcon, Markdown, Maximize2Icon, Menu, MenuIcon, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarItemIndicator, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarSubTriggerIndicator, MenubarTrigger, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, MultiSelect, MultiSelectContext, MultiSelectItem, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, Paper, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, Popover, PopoverPrimitive, Portal, PortalContainerProvider, QuoteIcon, RadioGroup, RadioGroupItem, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, ResizablePanels, Rows3Icon, SaveIcon, SearchBar, SearchIcon, Select, SelectGroup, SelectItem, SendIcon, Separator, SettingsIcon, Sheet, ShieldIcon, ShoppingCartIcon, Skeleton, Slider, SlidersHorizontalIcon, Slot, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableIcon, TableRow, Tabs, TagIcon, TerminalIcon, TextField, TextIcon, TextareaAutosize, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VirtualTable, VirtualTableDateField, VirtualTableInput, VirtualTableNumberInput, VirtualTableSelect, VirtualTableSelectionProvider, VirtualTableSwitch, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, accentTextMixin, cardClickableMixin, cardMixin, cardSelectedMixin, cls, codeSurfaceMixin, colorClassesMapping, controlHeightMixin, controlPaddingMixin, coolIconKeys, createVirtualTableSelectionStore, debounce, defaultBorderMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundInvisibleMixin, fieldBackgroundMixin, focusedClasses, focusedDisabled, focusedInvisibleMixin, getColorSchemeForKey, getColorSchemeForSeed, getLoadedLucideIcons, iconKeys, iconSize, isChunkLoadError, lazyChunk, loadChunk, loadLucideIcons, lucideIcons, paperMixin, resolveLucideIcon, surfaceActiveMixin, surfaceHoverMixin, useAutoComplete, useDebounceCallback, useDebounceValue, useDebouncedCallback, useInjectStyles, useIsDarkMode, useLucideIcons, useOutsideAlerter, usePortalContainer, useVirtualTableCellSelected, useVirtualTableSelection };
9073
9180
 
9074
9181
  //# sourceMappingURL=index.es.js.map