@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 +44 -9
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/index.js +43 -43
- package/dist/index.js.map +1 -1
- package/dist/styles.css +85 -51
- package/dist/tokens.css +126 -53
- package/dist/utils.js +12 -5
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
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
|
-
[
|
|
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
|
-
`
|
|
45
|
-
`className` to override component defaults. See the
|
|
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
|
|
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 [
|
|
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?: "
|
|
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?: "
|
|
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
|
|
4
|
-
import { cva as
|
|
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
|
|
6
|
+
import * as y from "@radix-ui/react-label";
|
|
7
7
|
import * as s from "@radix-ui/react-select";
|
|
8
|
-
import { Check as
|
|
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
|
|
14
|
-
const z =
|
|
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-
|
|
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-
|
|
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 ?
|
|
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-
|
|
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-
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
101
|
-
const
|
|
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-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 $ =
|
|
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-
|
|
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-
|
|
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(
|
|
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
|
|
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]:
|
|
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 =
|
|
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
|
|
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-
|
|
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
|
|
549
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
584
|
+
be as Select,
|
|
585
585
|
H as SelectContent,
|
|
586
|
-
|
|
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
|
-
|
|
606
|
+
ke as Tooltip,
|
|
607
607
|
me as TooltipContent,
|
|
608
|
-
|
|
608
|
+
Se as TooltipProvider,
|
|
609
609
|
Pe as TooltipTrigger,
|
|
610
610
|
$ as badgeVariants,
|
|
611
611
|
z as buttonVariants,
|