@darthcharles/greda 0.2.0 → 1.0.0

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/README.md CHANGED
@@ -5,7 +5,7 @@ Built from shadcn/ui New York and Radix primitives, with compiled styles and
5
5
  TypeScript declarations. Supports React 18 and 19; no Tailwind setup required.
6
6
 
7
7
  **[Explore Storybook](https://elegant-hotteok-cbb834.netlify.app/)** ·
8
- [Theming guide](https://elegant-hotteok-cbb834.netlify.app/?path=/docs/introduction-overview--theming) ·
8
+ [Getting started](https://elegant-hotteok-cbb834.netlify.app/?path=/docs/introduction-overview--getting-started) ·
9
9
  [Design tokens](https://elegant-hotteok-cbb834.netlify.app/?path=/story/design-tokens--overview)
10
10
 
11
11
  ## Quick start
@@ -41,8 +41,8 @@ Visit [Storybook](https://elegant-hotteok-cbb834.netlify.app/) for component API
41
41
  variants, interaction examples, and accessibility guidance.
42
42
 
43
43
  Greda and application markup share unprefixed utility classes such as
44
- `bg-primary`, `text-foreground`, and `border-primary`. Pass them through
45
- `className` to override component defaults. See the theming guide for supported
44
+ `surface-primary`, `text-primary`, and `border-primary`. Pass them through
45
+ `className` to override component defaults. See the introduction guide for supported
46
46
  utilities and migration from `ds-*` classes.
47
47
 
48
48
  ## With Tailwind 4
@@ -71,17 +71,16 @@ component styles also work without Tailwind.
71
71
  ## Theming
72
72
 
73
73
  Customization is optional. To change the default theme, import your own
74
- `theme.css` after the package stylesheet and override only the tokens you need.
74
+ `theme.css` after the package stylesheet and override the base colors or other
75
+ tokens you need.
75
76
  Unspecified values keep their base defaults, and components and color utilities
76
77
  automatically use your overrides:
77
78
 
78
79
  ```css
79
80
  /* theme.css */
80
81
  :root {
81
- --primary: 9.500 55.556% 42.353%;
82
- --primary-hover: 9.714 56.150% 36.667%;
83
- --primary-foreground: 0 0% 100%;
84
- --ring: 9.500 55.556% 42.353%;
82
+ --base-primary: 9.500 55.556% 42.353%;
83
+ --base-primary-hover: 9.714 56.150% 36.667%;
85
84
  --radius: 0.75rem;
86
85
  }
87
86
  ```
@@ -89,6 +88,42 @@ automatically use your overrides:
89
88
  Colors use space-separated HSL channels without an `hsl()` wrapper;
90
89
  `--overlay` also includes alpha. Other tokens accept ordinary CSS values.
91
90
 
91
+ Consumers override only the generic base colors: `--base-primary`,
92
+ `--base-primary-hover`, `--base-secondary`, `--base-tertiary`, `--base-accent`,
93
+ `--base-destructive`, `--base-white`, `--base-black`, and selected
94
+ `--base-gray-*` steps (50, 100, 200, 300, 500, 600, 800, 900). Every theme uses
95
+ the same names. Greda assigns them to independent roles and utilities:
96
+
97
+ | Category | Utility examples | Default light base colors |
98
+ | --- | --- | --- |
99
+ | Surfaces | `surface-primary`, `surface-secondary`, `surface-tertiary`, `surface-inverse` | White, gray-100, tertiary, black |
100
+ | Text | `text-primary`, `text-secondary`, `text-muted`, `text-inverse` | Black, gray-600, gray-500, white |
101
+ | Borders | `border-primary`, `border-secondary`, `border-inverse` | Gray-200, gray-100, gray-600 |
102
+
103
+ `bg-primary` / `bg-secondary` use base primary/secondary action colors.
104
+ Primary text and borders use their neutral base assignments independently.
105
+ Dark assignments are built in. Define base overrides on `:root` or a
106
+ `data-theme` element; scoped themes automatically rebind the role variables.
107
+ Consumers do not need to declare surface, text, or border tokens.
108
+ `surface-tertiary` uses `--base-tertiary`: soft blue (`#eff6ff`) in Base and
109
+ light green (`#e8eee0`) in Comal, with darker counterparts in dark mode.
110
+ Override `--base-tertiary` to customize this surface independently of accent
111
+ backgrounds and hover states.
112
+
113
+ `styles.css` includes role utilities and hover/focus variants; the Tailwind 4
114
+ import also generates responsive and opacity variants. Start with Storybook's
115
+ **Design Tokens → Overview**. **Base colors** shows the palette you customize,
116
+ with brand/state colors first and neutrals second. **Color roles** combines
117
+ surface, text, and border assignments with live examples. Other foundations
118
+ have separate pages.
119
+
120
+ **Migration:** move color overrides to the generic base slots above. In particular,
121
+ `--primary` becomes `--base-primary`. `text-primary`, `text-secondary`,
122
+ `text-muted`, `border-primary`, and `border-secondary` use category roles
123
+ rather than the matching action color. Use `text-action` / `border-action`
124
+ for action colors. Existing component tokens remain as derived variables;
125
+ Greda owns their assignments. Tooltip uses inverse surface/text roles.
126
+
92
127
  Spacing tokens such as `--space-4` are shared distances for padding, margin, and
93
128
  gap. Use them directly in your own CSS when needed; layout rules are optional
94
129
  examples, not theme setup. If you only need tokens, import
@@ -98,7 +133,7 @@ Set `data-color-scheme="dark"` on `<html>` for the base dark palette. Brand
98
133
  overrides need matching dark colors. Apply themes to `<html>` so portaled
99
134
  content inherits them; scoped themes use the content component's `container` prop.
100
135
 
101
- The [theming guide](https://elegant-hotteok-cbb834.netlify.app/?path=/docs/introduction-overview--theming)
136
+ The [introduction guide](https://elegant-hotteok-cbb834.netlify.app/?path=/docs/introduction-overview--getting-started)
102
137
  covers fonts, dark mode, and scoped portals. Browse the
103
138
  [interactive token catalog](https://elegant-hotteok-cbb834.netlify.app/?path=/story/design-tokens--overview)
104
139
  or read the defaults in [tokens.css](src/styles/tokens.css).
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
4
+ variant?: "secondary" | "default" | "destructive" | "outline" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "class-variance-authority";
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
4
+ variant?: "link" | "secondary" | "default" | "destructive" | "outline" | "ghost" | null | undefined;
5
5
  size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
package/dist/index.js CHANGED
@@ -1,27 +1,27 @@
1
1
  import { jsx as o, jsxs as m } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
- import { Slot as k } from "@radix-ui/react-slot";
4
- import { cva as p } from "class-variance-authority";
3
+ import { Slot as S } from "@radix-ui/react-slot";
4
+ import { cva as f } from "class-variance-authority";
5
5
  import { cn as r } from "./utils.js";
6
- import * as b from "@radix-ui/react-label";
6
+ import * as y from "@radix-ui/react-label";
7
7
  import * as s from "@radix-ui/react-select";
8
- import { Check as x, ChevronDown as y, ChevronUp as S, X as h, Minus as P } from "lucide-react";
8
+ import { Check as b, ChevronDown as x, ChevronUp as k, X as h, Minus as P } from "lucide-react";
9
9
  import * as n from "@radix-ui/react-dialog";
10
10
  import * as v from "@radix-ui/react-checkbox";
11
11
  import * as u from "@radix-ui/react-tabs";
12
12
  import * as l from "@radix-ui/react-toast";
13
- import * as f from "@radix-ui/react-tooltip";
14
- const z = p(
13
+ import * as p from "@radix-ui/react-tooltip";
14
+ const z = f(
15
15
  "comal-ui inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all active:[&:not([aria-haspopup])]:translate-y-px motion-reduce:active:[&:not([aria-haspopup])]:transform-none focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
16
16
  {
17
17
  variants: {
18
18
  variant: {
19
19
  default: "bg-primary text-primary-foreground shadow hover:bg-primary-hover",
20
20
  destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
21
- outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
21
+ outline: "border border-primary surface-primary shadow-sm hover:bg-accent hover:text-accent-foreground",
22
22
  secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
23
23
  ghost: "hover:bg-accent hover:text-accent-foreground",
24
- link: "text-primary underline-offset-4 hover:underline"
24
+ link: "text-action underline-offset-4 hover:underline"
25
25
  },
26
26
  size: {
27
27
  default: "h-9 px-4 py-2",
@@ -46,7 +46,7 @@ const z = p(
46
46
  type: C,
47
47
  ...T
48
48
  }, D) => /* @__PURE__ */ o(
49
- d ? k : "button",
49
+ d ? S : "button",
50
50
  {
51
51
  className: r(z({ variant: t, size: a, className: e })),
52
52
  ref: D,
@@ -65,7 +65,7 @@ const j = i.forwardRef(
65
65
  type: t,
66
66
  className: r(
67
67
  "comal-ui",
68
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive md:text-sm",
68
+ "flex h-9 w-full rounded-md border border-primary bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-primary placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive md:text-sm",
69
69
  e
70
70
  ),
71
71
  ref: d,
@@ -79,7 +79,7 @@ const I = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
79
79
  {
80
80
  className: r(
81
81
  "comal-ui",
82
- "flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive md:text-sm",
82
+ "flex min-h-[60px] w-full rounded-md border border-primary bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive md:text-sm",
83
83
  e
84
84
  ),
85
85
  ref: a,
@@ -87,30 +87,30 @@ const I = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
87
87
  }
88
88
  ));
89
89
  I.displayName = "Textarea";
90
- const B = p(
90
+ const B = f(
91
91
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
92
92
  ), L = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
93
- b.Root,
93
+ y.Root,
94
94
  {
95
95
  ref: a,
96
96
  className: r("comal-ui", B(), e),
97
97
  ...t
98
98
  }
99
99
  ));
100
- L.displayName = b.Root.displayName;
101
- const xe = s.Root, ye = s.Group, he = s.Value, F = i.forwardRef(({ className: e, children: t, ...a }, d) => /* @__PURE__ */ m(
100
+ L.displayName = y.Root.displayName;
101
+ const be = s.Root, xe = s.Group, he = s.Value, F = i.forwardRef(({ className: e, children: t, ...a }, d) => /* @__PURE__ */ m(
102
102
  s.Trigger,
103
103
  {
104
104
  ref: d,
105
105
  className: r(
106
106
  "comal-ui",
107
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive [&>span]:line-clamp-1",
107
+ "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-primary bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive [&>span]:line-clamp-1",
108
108
  e
109
109
  ),
110
110
  ...a,
111
111
  children: [
112
112
  t,
113
- /* @__PURE__ */ o(s.Icon, { asChild: !0, children: /* @__PURE__ */ o(y, { className: "h-4 w-4 opacity-50" }) })
113
+ /* @__PURE__ */ o(s.Icon, { asChild: !0, children: /* @__PURE__ */ o(x, { className: "h-4 w-4 opacity-50" }) })
114
114
  ]
115
115
  }
116
116
  ));
@@ -125,7 +125,7 @@ const w = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
125
125
  e
126
126
  ),
127
127
  ...t,
128
- children: /* @__PURE__ */ o(S, { className: "h-4 w-4" })
128
+ children: /* @__PURE__ */ o(k, { className: "h-4 w-4" })
129
129
  }
130
130
  ));
131
131
  w.displayName = s.ScrollUpButton.displayName;
@@ -139,7 +139,7 @@ const N = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
139
139
  e
140
140
  ),
141
141
  ...t,
142
- children: /* @__PURE__ */ o(y, { className: "h-4 w-4" })
142
+ children: /* @__PURE__ */ o(x, { className: "h-4 w-4" })
143
143
  }
144
144
  ));
145
145
  N.displayName = s.ScrollDownButton.displayName;
@@ -149,7 +149,7 @@ const H = i.forwardRef(({ className: e, container: t, children: a, position: d =
149
149
  ref: g,
150
150
  className: r(
151
151
  "comal-ui",
152
- "relative z-popover max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",
152
+ "relative z-popover max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border surface-raised text-primary shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",
153
153
  d === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
154
154
  e
155
155
  ),
@@ -197,7 +197,7 @@ const A = i.forwardRef(({ className: e, children: t, ...a }, d) => /* @__PURE__
197
197
  ),
198
198
  ...a,
199
199
  children: [
200
- /* @__PURE__ */ o("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ o(s.ItemIndicator, { children: /* @__PURE__ */ o(x, { className: "h-4 w-4" }) }) }),
200
+ /* @__PURE__ */ o("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ o(s.ItemIndicator, { children: /* @__PURE__ */ o(b, { className: "h-4 w-4" }) }) }),
201
201
  /* @__PURE__ */ o(s.ItemText, { children: t })
202
202
  ]
203
203
  }
@@ -237,13 +237,13 @@ const G = i.forwardRef(({ className: e, container: t, children: a, ...d }, c) =>
237
237
  ref: c,
238
238
  className: r(
239
239
  "comal-ui",
240
- "fixed left-[50%] top-[50%] z-overlay grid text-foreground w-[calc(100%-2rem)] max-w-lg max-h-[calc(100dvh-2rem)] overflow-y-auto translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
240
+ "fixed left-[50%] top-[50%] z-overlay grid text-primary w-[calc(100%-2rem)] max-w-lg max-h-[calc(100dvh-2rem)] overflow-y-auto translate-x-[-50%] translate-y-[-50%] gap-4 border surface-primary p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
241
241
  e
242
242
  ),
243
243
  ...d,
244
244
  children: [
245
245
  a,
246
- /* @__PURE__ */ m(n.Close, { className: "comal-ui absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
246
+ /* @__PURE__ */ m(n.Close, { className: "comal-ui absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted", children: [
247
247
  /* @__PURE__ */ o(h, { className: "h-4 w-4" }),
248
248
  /* @__PURE__ */ o("span", { className: "sr-only", children: "Close" })
249
249
  ] })
@@ -299,7 +299,7 @@ const E = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
299
299
  n.Description,
300
300
  {
301
301
  ref: a,
302
- className: r("comal-ui", "text-sm text-muted-foreground", e),
302
+ className: r("comal-ui", "text-sm text-muted", e),
303
303
  ...t
304
304
  }
305
305
  ));
@@ -310,7 +310,7 @@ const J = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
310
310
  ref: a,
311
311
  className: r(
312
312
  "comal-ui",
313
- "rounded-xl border bg-card text-card-foreground shadow",
313
+ "rounded-xl border surface-raised text-primary shadow",
314
314
  e
315
315
  ),
316
316
  ...t
@@ -347,7 +347,7 @@ const W = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
347
347
  "div",
348
348
  {
349
349
  ref: a,
350
- className: r("comal-ui", "text-sm text-muted-foreground", e),
350
+ className: r("comal-ui", "text-sm text-muted", e),
351
351
  ...t
352
352
  }
353
353
  ));
@@ -374,7 +374,7 @@ const Z = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
374
374
  }
375
375
  ));
376
376
  Z.displayName = "CardFooter";
377
- const $ = p(
377
+ const $ = f(
378
378
  "comal-ui inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
379
379
  {
380
380
  variants: {
@@ -382,7 +382,7 @@ const $ = p(
382
382
  default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
383
383
  secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
384
384
  destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
385
- outline: "text-foreground"
385
+ outline: "text-primary"
386
386
  }
387
387
  },
388
388
  defaultVariants: {
@@ -399,7 +399,7 @@ const ee = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
399
399
  ref: a,
400
400
  className: r(
401
401
  "comal-ui",
402
- "grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground",
402
+ "grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-action shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled aria-[invalid=true]:border-destructive data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground",
403
403
  e
404
404
  ),
405
405
  ...t,
@@ -412,7 +412,7 @@ const ee = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
412
412
  "grid place-content-center text-current"
413
413
  ),
414
414
  children: [
415
- /* @__PURE__ */ o(x, { className: "h-4 w-4", "data-check-icon": "" }),
415
+ /* @__PURE__ */ o(b, { className: "h-4 w-4", "data-check-icon": "" }),
416
416
  /* @__PURE__ */ o(P, { className: "h-4 w-4", "data-mixed-icon": "" })
417
417
  ]
418
418
  }
@@ -426,7 +426,7 @@ const Te = u.Root, te = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__
426
426
  ref: a,
427
427
  className: r(
428
428
  "comal-ui",
429
- "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground data-[orientation=vertical]:h-auto data-[orientation=vertical]:flex-col",
429
+ "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted data-[orientation=vertical]:h-auto data-[orientation=vertical]:flex-col",
430
430
  e
431
431
  ),
432
432
  ...t
@@ -439,7 +439,7 @@ const ae = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
439
439
  ref: a,
440
440
  className: r(
441
441
  "comal-ui",
442
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
442
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:surface-primary data-[state=active]:text-primary data-[state=active]:shadow",
443
443
  e
444
444
  ),
445
445
  ...t
@@ -472,12 +472,12 @@ const De = l.Provider, re = i.forwardRef(({ className: e, ...t }, a) => /* @__PU
472
472
  }
473
473
  ));
474
474
  re.displayName = l.Viewport.displayName;
475
- const ie = p(
475
+ const ie = f(
476
476
  "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
477
477
  {
478
478
  variants: {
479
479
  variant: {
480
- default: "border bg-background text-foreground",
480
+ default: "border surface-primary text-primary",
481
481
  destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
482
482
  }
483
483
  },
@@ -513,7 +513,7 @@ const ne = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
513
513
  ref: a,
514
514
  className: r(
515
515
  "comal-ui",
516
- "absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
516
+ "absolute right-1 top-1 rounded-md p-1 text-primary/50 opacity-0 transition-opacity hover:text-primary focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-destructive-foreground/80 group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive-foreground group-[.destructive]:focus:ring-offset-destructive",
517
517
  e
518
518
  ),
519
519
  "aria-label": "Dismiss notification",
@@ -545,20 +545,20 @@ const ce = i.forwardRef(({ className: e, ...t }, a) => /* @__PURE__ */ o(
545
545
  }
546
546
  ));
547
547
  ce.displayName = l.Description.displayName;
548
- const ke = f.Provider, Se = f.Root, Pe = f.Trigger, me = i.forwardRef(({ className: e, container: t, sideOffset: a = 4, ...d }, c) => /* @__PURE__ */ o(f.Portal, { container: t, children: /* @__PURE__ */ o(
549
- f.Content,
548
+ const Se = p.Provider, ke = p.Root, Pe = p.Trigger, me = i.forwardRef(({ className: e, container: t, sideOffset: a = 4, ...d }, c) => /* @__PURE__ */ o(p.Portal, { container: t, children: /* @__PURE__ */ o(
549
+ p.Content,
550
550
  {
551
551
  ref: c,
552
552
  sideOffset: a,
553
553
  className: r(
554
554
  "comal-ui",
555
- "z-popover max-w-[var(--tooltip-width)] overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",
555
+ "z-popover max-w-[var(--tooltip-width)] overflow-hidden rounded-md surface-inverse px-3 py-1.5 text-xs text-inverse animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",
556
556
  e
557
557
  ),
558
558
  ...d
559
559
  }
560
560
  ) }));
561
- me.displayName = f.Content.displayName;
561
+ me.displayName = p.Content.displayName;
562
562
  export {
563
563
  Ce as Badge,
564
564
  V as Button,
@@ -581,9 +581,9 @@ export {
581
581
  Ne as DialogTrigger,
582
582
  j as Input,
583
583
  L as Label,
584
- xe as Select,
584
+ be as Select,
585
585
  H as SelectContent,
586
- ye as SelectGroup,
586
+ xe as SelectGroup,
587
587
  A as SelectItem,
588
588
  U as SelectLabel,
589
589
  N as SelectScrollDownButton,
@@ -603,9 +603,9 @@ export {
603
603
  De as ToastProvider,
604
604
  le as ToastTitle,
605
605
  re as ToastViewport,
606
- Se as Tooltip,
606
+ ke as Tooltip,
607
607
  me as TooltipContent,
608
- ke as TooltipProvider,
608
+ Se as TooltipProvider,
609
609
  Pe as TooltipTrigger,
610
610
  $ as badgeVariants,
611
611
  z as buttonVariants,