@epilot/volt-ui-experimental-griffel 0.2.1 → 0.2.3
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/AGENTS.md +153 -0
- package/AUTHORING.md +292 -0
- package/README.md +85 -7
- package/dist/components/alert-dialog/alert-dialog.js +18 -18
- package/dist/components/avatar/avatar.js +18 -19
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.js +13 -13
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +6 -6
- package/dist/components/button/button.js +20 -20
- package/dist/components/button-group/button-group.js +6 -6
- package/dist/components/callout/callout.js +6 -6
- package/dist/components/card/card.js +8 -8
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js +4 -4
- package/dist/components/command/command.js +15 -15
- package/dist/components/data-table/data-table-column-header.js +5 -5
- package/dist/components/data-table/data-table-error.js +13 -13
- package/dist/components/data-table/data-table-loading.js +4 -4
- package/dist/components/date-range-picker/date-range-picker.js +8 -8
- package/dist/components/date-time-picker/calendar.js +15 -15
- package/dist/components/date-time-picker/date-time-picker-panel.js +73 -67
- package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker.js +53 -49
- package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +77 -71
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/dialog/dialog.js +21 -21
- package/dist/components/drawer/drawer.js +16 -16
- package/dist/components/dropdown-menu/dropdown-menu.js +13 -13
- package/dist/components/field/field-combobox.js +9 -9
- package/dist/components/field/field.js +22 -22
- package/dist/components/label/label.js +11 -11
- package/dist/components/list/list.js +13 -13
- package/dist/components/option-card/option-card.js +24 -24
- package/dist/components/pill/pill.js +21 -20
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/popover/popover.js +4 -4
- package/dist/components/radio/radio.js +8 -8
- package/dist/components/scroll-overflow/scroll-overflow.js +6 -6
- package/dist/components/select/select.js +25 -25
- package/dist/components/skeleton/skeleton.js +17 -17
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/table/table-pagination.js +74 -76
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/tabs/tabs.js +19 -19
- package/dist/components/toast/toast.js +24 -24
- package/dist/components/toggle/toggle.js +17 -17
- package/dist/components/tooltip/tooltip.js +6 -6
- package/dist/index.d.ts +1490 -1056
- package/dist/index.js +276 -273
- package/dist/index.js.map +1 -1
- package/dist/tokens/core.generated.js +1168 -1154
- package/dist/tokens/core.generated.js.map +1 -1
- package/dist/tokens/index.d.ts +1076 -1054
- package/dist/tokens/index.js +1078 -1056
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/install.js +21 -9
- package/dist/tokens/install.js.map +1 -1
- package/dist/tokens/palette.generated.js +1323 -1293
- package/dist/tokens/palette.generated.js.map +1 -1
- package/dist/tokens.json +45 -1
- package/package.json +7 -2
- package/testing/jest-preset.cjs +64 -0
|
@@ -6,7 +6,7 @@ import { shorthands as m } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
6
6
|
import { SLOT_ATTR as h } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
7
7
|
import { mergeClasses as g } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
8
8
|
import { makeVoltStyles as ct } from "../../styles/make-styles.js";
|
|
9
|
-
import { spacingElement3 as z, grayA5 as dt, spacingElement2 as y,
|
|
9
|
+
import { spacingElement3 as z, grayA5 as dt, spacingElement1 as B, spacingElement2 as y, radiusMd as P, semSuccessLight as mt, semWarningLight as pt, semErrorLight as ut, spacingGroup2 as _, grayA12 as q, fontWeightSemibold as gt, leadingSm as V, textSm as j, grayA10 as ft, fontWeightMedium as ht, semAccentSolid as xt, accentA8 as vt, grayA11 as F, grayA8 as yt, leadingXs as bt, textXs as wt, grayA2 as Q, semSuccessSoftHover as St, semWarningSoftHover as It, semErrorSoftHover as Ct, semAccentSoft as Lt, semSuccessDefault as kt, semSuccessSoft as Dt, semWarningDefault as Tt, semWarningSoft as Wt, semErrorDefault as Et, semErrorSoft as Nt } from "../../tokens/index.js";
|
|
10
10
|
const At = (l) => /* @__PURE__ */ W(
|
|
11
11
|
"svg",
|
|
12
12
|
{
|
|
@@ -91,7 +91,7 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
91
91
|
display: "flex",
|
|
92
92
|
width: "100%",
|
|
93
93
|
alignItems: "center",
|
|
94
|
-
...m.borderRadius(
|
|
94
|
+
...m.borderRadius(P),
|
|
95
95
|
color: q,
|
|
96
96
|
transitionProperty: "color, background-color, border-color, text-decoration-color, fill, stroke",
|
|
97
97
|
transitionDuration: "150ms",
|
|
@@ -105,8 +105,8 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
105
105
|
minHeight: "2rem",
|
|
106
106
|
...m.gap(y),
|
|
107
107
|
...m.padding(B, y),
|
|
108
|
-
fontSize:
|
|
109
|
-
lineHeight:
|
|
108
|
+
fontSize: j,
|
|
109
|
+
lineHeight: V,
|
|
110
110
|
"& > svg": {
|
|
111
111
|
width: "1rem",
|
|
112
112
|
height: "1rem"
|
|
@@ -117,8 +117,8 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
117
117
|
// v1 gap-3 is 0.75rem.
|
|
118
118
|
...m.gap(z),
|
|
119
119
|
...m.padding(y, z),
|
|
120
|
-
fontSize:
|
|
121
|
-
lineHeight:
|
|
120
|
+
fontSize: j,
|
|
121
|
+
lineHeight: V,
|
|
122
122
|
"& > svg": {
|
|
123
123
|
width: "1rem",
|
|
124
124
|
height: "1rem"
|
|
@@ -184,11 +184,11 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
184
184
|
alignItems: "center",
|
|
185
185
|
justifyContent: "center",
|
|
186
186
|
alignSelf: "stretch",
|
|
187
|
-
borderTopLeftRadius:
|
|
188
|
-
borderBottomLeftRadius:
|
|
187
|
+
borderTopLeftRadius: P,
|
|
188
|
+
borderBottomLeftRadius: P,
|
|
189
189
|
backgroundColor: Q,
|
|
190
190
|
textAlign: "center",
|
|
191
|
-
color:
|
|
191
|
+
color: F,
|
|
192
192
|
fontVariantNumeric: "tabular-nums"
|
|
193
193
|
},
|
|
194
194
|
indexCompact: {
|
|
@@ -251,7 +251,7 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
251
251
|
whiteSpace: "nowrap",
|
|
252
252
|
fontSize: wt,
|
|
253
253
|
lineHeight: bt,
|
|
254
|
-
color:
|
|
254
|
+
color: F
|
|
255
255
|
},
|
|
256
256
|
// Drag handle button
|
|
257
257
|
dragHandle: {
|
|
@@ -266,7 +266,7 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
266
266
|
...m.border("0"),
|
|
267
267
|
...m.padding(0),
|
|
268
268
|
":hover": {
|
|
269
|
-
color:
|
|
269
|
+
color: F
|
|
270
270
|
},
|
|
271
271
|
":active": {
|
|
272
272
|
cursor: "grabbing"
|
|
@@ -368,8 +368,8 @@ const At = (l) => /* @__PURE__ */ W(
|
|
|
368
368
|
display: "block",
|
|
369
369
|
listStyleType: "none",
|
|
370
370
|
...m.padding("0.375rem", z),
|
|
371
|
-
fontSize:
|
|
372
|
-
lineHeight:
|
|
371
|
+
fontSize: j,
|
|
372
|
+
lineHeight: V,
|
|
373
373
|
fontWeight: gt,
|
|
374
374
|
color: q,
|
|
375
375
|
"&:first-child": {
|
|
@@ -6,7 +6,7 @@ import { shorthands as s } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
6
6
|
import { SLOT_ATTR as r } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
7
7
|
import { mergeClasses as h } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
8
8
|
import { makeVoltStyles as tt } from "../../styles/make-styles.js";
|
|
9
|
-
import { accentA7 as I, semAccentSolid as f, accentA8 as
|
|
9
|
+
import { accentA7 as I, radiusLg as G, semAccentSolid as f, accentA8 as D, spacingElement3 as P, spacingGroup1 as ot, grayContrast as rt, grayA3 as et, accentContrast as nt, semAccentSoft as C, grayA11 as it, fontWeightNormal as W, leadingXs as at, textXs as st, fontWeightSemibold as ct, spacingElement1 as E, spacingElement2 as dt, semAccentLight as lt, grayA12 as pt, leadingSm as ut, textSm as ht } from "../../tokens/index.js";
|
|
10
10
|
const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing a `value`. Give each card a unique `value` so it can be selected and controlled.", F = n.createContext(null), k = n.createContext(
|
|
11
11
|
null
|
|
12
12
|
), p = tt({
|
|
@@ -17,7 +17,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
17
17
|
// while `styles.card` and `styles[layout]` were read but never declared. See make-styles.ts for
|
|
18
18
|
// why tsc accepted that for as long as it did.
|
|
19
19
|
display: "grid",
|
|
20
|
-
...s.gap(
|
|
20
|
+
...s.gap(ot)
|
|
21
21
|
},
|
|
22
22
|
// v1: grid-cols-[repeat(auto-fit,minmax(200px,1fr))]
|
|
23
23
|
grid: {
|
|
@@ -36,17 +36,17 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
36
36
|
display: "flex",
|
|
37
37
|
alignItems: "center",
|
|
38
38
|
// v1 gap-3 = 0.75rem. No token: the semantic scale has no 0.75rem step.
|
|
39
|
-
...s.gap(
|
|
39
|
+
...s.gap(P),
|
|
40
40
|
overflow: "hidden",
|
|
41
|
-
...s.borderRadius(
|
|
41
|
+
...s.borderRadius(G),
|
|
42
42
|
...s.border("1px", "solid", "currentColor"),
|
|
43
|
-
...s.paddingInline(
|
|
43
|
+
...s.paddingInline(P),
|
|
44
44
|
...s.paddingBlock("0.375rem"),
|
|
45
45
|
textAlign: "left",
|
|
46
|
-
fontSize:
|
|
47
|
-
lineHeight:
|
|
48
|
-
fontWeight:
|
|
49
|
-
color:
|
|
46
|
+
fontSize: ht,
|
|
47
|
+
lineHeight: ut,
|
|
48
|
+
fontWeight: W,
|
|
49
|
+
color: pt,
|
|
50
50
|
backgroundColor: "transparent",
|
|
51
51
|
transitionProperty: "color, background-color, border-color, box-shadow",
|
|
52
52
|
transitionDuration: "150ms",
|
|
@@ -59,7 +59,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
59
59
|
outlineWidth: "2px",
|
|
60
60
|
outlineStyle: "solid",
|
|
61
61
|
outlineOffset: "2px",
|
|
62
|
-
outlineColor:
|
|
62
|
+
outlineColor: D
|
|
63
63
|
},
|
|
64
64
|
":disabled, &[data-disabled]": {
|
|
65
65
|
pointerEvents: "none",
|
|
@@ -67,7 +67,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
67
67
|
},
|
|
68
68
|
"&[data-state='on']": {
|
|
69
69
|
backgroundColor: C,
|
|
70
|
-
...s.borderColor(
|
|
70
|
+
...s.borderColor(D)
|
|
71
71
|
},
|
|
72
72
|
[`&[data-state='on'] [${r}="option-card-radio-outer"]`]: {
|
|
73
73
|
...s.borderColor(f)
|
|
@@ -99,9 +99,9 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
99
99
|
height: "2.5rem",
|
|
100
100
|
placeContent: "center",
|
|
101
101
|
alignSelf: "start",
|
|
102
|
-
...s.borderRadius(
|
|
102
|
+
...s.borderRadius(G),
|
|
103
103
|
backgroundColor: C,
|
|
104
|
-
color:
|
|
104
|
+
color: lt,
|
|
105
105
|
"& svg": {
|
|
106
106
|
width: "1.25rem",
|
|
107
107
|
height: "1.25rem"
|
|
@@ -135,9 +135,9 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
135
135
|
flexBasis: "0%",
|
|
136
136
|
gridAutoRows: "min-content",
|
|
137
137
|
alignItems: "center",
|
|
138
|
-
columnGap:
|
|
139
|
-
paddingTop:
|
|
140
|
-
paddingBottom:
|
|
138
|
+
columnGap: dt,
|
|
139
|
+
paddingTop: E,
|
|
140
|
+
paddingBottom: E,
|
|
141
141
|
[`&:has([${r}="option-card-control"])`]: {
|
|
142
142
|
gridTemplateColumns: "1fr auto"
|
|
143
143
|
}
|
|
@@ -151,7 +151,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
151
151
|
overflow: "hidden",
|
|
152
152
|
textOverflow: "ellipsis",
|
|
153
153
|
whiteSpace: "nowrap",
|
|
154
|
-
fontWeight:
|
|
154
|
+
fontWeight: ct
|
|
155
155
|
},
|
|
156
156
|
// Description
|
|
157
157
|
description: {
|
|
@@ -159,10 +159,10 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
159
159
|
gridRowStart: 2,
|
|
160
160
|
minWidth: 0,
|
|
161
161
|
overflowWrap: "break-word",
|
|
162
|
-
fontSize:
|
|
163
|
-
lineHeight:
|
|
164
|
-
fontWeight:
|
|
165
|
-
color:
|
|
162
|
+
fontSize: st,
|
|
163
|
+
lineHeight: at,
|
|
164
|
+
fontWeight: W,
|
|
165
|
+
color: it
|
|
166
166
|
},
|
|
167
167
|
// Control
|
|
168
168
|
control: {
|
|
@@ -203,7 +203,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
203
203
|
...s.borderRadius("4px"),
|
|
204
204
|
...s.border("1px", "solid", I),
|
|
205
205
|
backgroundColor: C,
|
|
206
|
-
color:
|
|
206
|
+
color: nt,
|
|
207
207
|
transitionProperty: "background-color, border-color",
|
|
208
208
|
transitionDuration: "150ms"
|
|
209
209
|
},
|
|
@@ -223,7 +223,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
223
223
|
alignItems: "center",
|
|
224
224
|
borderRadius: "9999px",
|
|
225
225
|
...s.border("1px", "solid", "transparent"),
|
|
226
|
-
backgroundColor:
|
|
226
|
+
backgroundColor: et,
|
|
227
227
|
transitionProperty: "background-color",
|
|
228
228
|
transitionDuration: "150ms"
|
|
229
229
|
},
|
|
@@ -233,7 +233,7 @@ const mt = "grid", gt = "OptionCard: a card inside an OptionCardGroup is missing
|
|
|
233
233
|
height: "1rem",
|
|
234
234
|
transform: "translateX(1px)",
|
|
235
235
|
borderRadius: "9999px",
|
|
236
|
-
backgroundColor:
|
|
236
|
+
backgroundColor: rt,
|
|
237
237
|
// v1 shadow-xs; no shadow tokens in this package.
|
|
238
238
|
boxShadow: "0 1px 2px 0 #0000000d",
|
|
239
239
|
transitionProperty: "transform",
|
|
@@ -4,10 +4,10 @@ import { shorthands as k } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
4
4
|
import { SLOT_ATTR as L } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
5
5
|
import { mergeClasses as T } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
6
6
|
import { makeVoltStyles as E } from "../../styles/make-styles.js";
|
|
7
|
-
import { spacingGroup2 as
|
|
8
|
-
import {
|
|
7
|
+
import { spacingGroup2 as g, spacingElement1 as h, accentA8 as I, radiusMd as P, spacingElement2 as z, fontWeightBold as A, leadingXs as B, textXs as N } from "../../tokens/index.js";
|
|
8
|
+
import { ensurePaletteTokensFor as C } from "../../tokens/install.js";
|
|
9
9
|
import { ClearButton as D } from "../../lib/clear-button.js";
|
|
10
|
-
import { NS as
|
|
10
|
+
import { NS as u } from "../../tokens/core.generated.js";
|
|
11
11
|
const J = [
|
|
12
12
|
"blue",
|
|
13
13
|
"sky",
|
|
@@ -28,7 +28,7 @@ const J = [
|
|
|
28
28
|
"warning",
|
|
29
29
|
"success",
|
|
30
30
|
"error"
|
|
31
|
-
], p = "--volt2-pill-bg", d = "--volt2-pill-fg", c = "--volt2-pill-bd", l = "--volt2-pill-hov", e = (o, t) => `var(--volt2-${
|
|
31
|
+
], p = "--volt2-pill-bg", d = "--volt2-pill-fg", c = "--volt2-pill-bd", l = "--volt2-pill-hov", e = (o, t) => `var(--volt2-${u}-sem-${o}-${t})`, G = (o, t) => `var(--volt2-${u}-${o}-${t})`, V = {
|
|
32
32
|
soft: (o) => ({
|
|
33
33
|
[p]: e(o, "soft"),
|
|
34
34
|
[d]: e(o, "light"),
|
|
@@ -53,7 +53,7 @@ const J = [
|
|
|
53
53
|
alignItems: "center",
|
|
54
54
|
// v1 `h-6` — a fixed height, not a minimum.
|
|
55
55
|
height: "1.5rem",
|
|
56
|
-
gap:
|
|
56
|
+
gap: h,
|
|
57
57
|
whiteSpace: "nowrap",
|
|
58
58
|
flexShrink: 0,
|
|
59
59
|
overflow: "hidden",
|
|
@@ -93,32 +93,33 @@ const J = [
|
|
|
93
93
|
},
|
|
94
94
|
hasRemove: {
|
|
95
95
|
// v1's `pr-1` when a clear button is present.
|
|
96
|
-
paddingRight:
|
|
96
|
+
paddingRight: h
|
|
97
97
|
},
|
|
98
98
|
disabled: {
|
|
99
99
|
pointerEvents: "none"
|
|
100
100
|
},
|
|
101
101
|
removeSize: {
|
|
102
102
|
// v1's `size-4` on the composed ClearButton.
|
|
103
|
-
width:
|
|
104
|
-
height:
|
|
103
|
+
width: g,
|
|
104
|
+
height: g
|
|
105
105
|
}
|
|
106
106
|
}), U = R.forwardRef(function({
|
|
107
107
|
className: t,
|
|
108
|
-
color:
|
|
109
|
-
variant:
|
|
108
|
+
color: y = "accent",
|
|
109
|
+
variant: S = "soft",
|
|
110
110
|
disabled: r,
|
|
111
111
|
onRemove: m,
|
|
112
112
|
onClick: i,
|
|
113
|
-
children:
|
|
114
|
-
...
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
children: b,
|
|
114
|
+
...x
|
|
115
|
+
}, w) {
|
|
116
|
+
const n = W(), f = r ? "gray" : y;
|
|
117
|
+
C(f);
|
|
118
|
+
const s = !!i && !r, v = V[S](f);
|
|
119
|
+
return s || delete v[l], /* @__PURE__ */ $(
|
|
119
120
|
"span",
|
|
120
121
|
{
|
|
121
|
-
ref:
|
|
122
|
+
ref: w,
|
|
122
123
|
"data-slot": "pill",
|
|
123
124
|
[L]: "pill",
|
|
124
125
|
"data-disabled": r || void 0,
|
|
@@ -135,10 +136,10 @@ const J = [
|
|
|
135
136
|
r && n.disabled,
|
|
136
137
|
t
|
|
137
138
|
),
|
|
138
|
-
style: { ...
|
|
139
|
-
...
|
|
139
|
+
style: { ...v },
|
|
140
|
+
...x,
|
|
140
141
|
children: [
|
|
141
|
-
|
|
142
|
+
b,
|
|
142
143
|
m && // v1 composes the shared ClearButton here — hover, focus ring and the size-3 CloseIcon
|
|
143
144
|
// fallback all live in the lib, not inline.
|
|
144
145
|
/* @__PURE__ */ O(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pill.js","sources":["../../../src/components/pill/pill.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport { NS } from \"../../tokens\"\nimport { ensurePaletteTokens } from \"../../tokens/install\"\nimport * as tokens from \"../../tokens\"\nimport { ClearButton } from \"../../lib/clear-button\"\n\n/**\n * Pill — same colour-matrix collapse as Badge, plus a hover background.\n *\n * v1 enumerates 19 colours x 3 styles as 57 `compoundVariants`, each a distinct class string\n * built by interpolation (`volt-bg-${color}-soft`), which Tailwind's scanner cannot see and\n * `safelist.css` exists to force into existence. The hover state made that 57 more per-colour\n * rules. Here the colour is a VALUE, not part of a class name: the four atoms below read four\n * custom properties, the component sets those inline from the `color` prop, and a single `:hover`\n * atom reads the hover background. Total rules: one small set per style variant — 9 colours' worth\n * of rules cover all 19 x 3 combinations.\n */\n\nconst COLORS = [\n \"blue\",\n \"sky\",\n \"mint\",\n \"lime\",\n \"green\",\n \"teal\",\n \"cyan\",\n \"indigo\",\n \"purple\",\n \"pink\",\n \"red\",\n \"orange\",\n \"yellow\",\n \"bronze\",\n \"gray\",\n \"accent\",\n \"warning\",\n \"success\",\n \"error\",\n] as const\n\nexport type PillColor = (typeof COLORS)[number]\nexport type PillVariant = \"soft\" | \"solid\" | \"surface\"\n\n/** The four slots a variant can paint. Set inline; read by the atoms below. */\nconst BG = \"--volt2-pill-bg\"\nconst FG = \"--volt2-pill-fg\"\nconst BD = \"--volt2-pill-bd\"\nconst HOV = \"--volt2-pill-hov\"\n\nconst semantic = (color: PillColor, slot: string): string =>\n `var(--volt2-${NS}-sem-${color}-${slot})`\nconst primitive = (color: PillColor, step: string): string =>\n `var(--volt2-${NS}-${color}-${step})`\n\n/**\n * Which token each variant pulls into each slot. This replaces the 57-entry compound matrix: it is\n * data about three variants, not about 57 combinations. Text uses the `light` semantic slot, which\n * is Pill's one departure from Badge (Badge uses `default`).\n */\nconst VARIANT_SLOTS: Record<\n PillVariant,\n (color: PillColor) => Record<string, string>\n> = {\n soft: (c) => ({\n [BG]: semantic(c, \"soft\"),\n [FG]: semantic(c, \"light\"),\n [BD]: \"transparent\",\n [HOV]: semantic(c, \"soft-hover\"),\n }),\n solid: (c) => ({\n [BG]: semantic(c, \"solid\"),\n [FG]: semantic(c, \"contrast\"),\n [BD]: \"transparent\",\n [HOV]: semantic(c, \"solid-hover\"),\n }),\n surface: (c) => ({\n [BG]: semantic(c, \"surface\"),\n [FG]: semantic(c, \"light\"),\n [BD]: primitive(c, \"a6\"),\n [HOV]: semantic(c, \"surface-hover\"),\n }),\n}\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"inline-flex\",\n alignItems: \"center\",\n // v1 `h-6` — a fixed height, not a minimum.\n height: \"1.5rem\",\n gap: tokens.spacingElement1,\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n overflow: \"hidden\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightBold,\n paddingInline: tokens.spacingElement2,\n borderRadius: tokens.radiusMd,\n transitionProperty: \"color, box-shadow, background-color\",\n // NEVER write a CSS shorthand in a Griffel style object — see Badge. One atom reads one\n // custom property; `border` and a later `borderColor` would both survive.\n ...shorthands.border(\"1px\", \"solid\", `var(${BD})`),\n // The whole point: one rule each, colour supplied per instance.\n backgroundColor: `var(${BG})`,\n color: `var(${FG})`,\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n // v1 `[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:pointer-events-none`.\n \"& > svg\": {\n // Literals, not tokens.spacingGroup2: that happens to be 1rem, but a spacing token has no\n // business describing a dimension. The scale has no size family — noted rather than faked.\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n pointerEvents: \"none\",\n },\n },\n interactive: {\n cursor: \"pointer\",\n // The one hover rule. It reads the fourth custom property, line-picked per colour and variant\n // by VARIANT_SLOTS — never per-colour hover rules.\n \":hover\": { backgroundColor: `var(${HOV})` },\n },\n hasRemove: {\n // v1's `pr-1` when a clear button is present.\n paddingRight: tokens.spacingElement1,\n },\n disabled: {\n pointerEvents: \"none\",\n },\n removeSize: {\n // v1's `size-4` on the composed ClearButton.\n width: tokens.spacingGroup2,\n height: tokens.spacingGroup2,\n },\n})\n\nexport type PillProps = Omit<React.ComponentProps<\"span\">, \"color\"> & {\n color?: PillColor\n /**\n * Named `variant`, not `style`. v1 called this `style`, which shadows the HTML `style` attribute.\n * Retrocompat is not a requirement here, so the collision is fixed rather than inherited.\n */\n variant?: PillVariant\n disabled?: boolean\n onRemove?: (e: React.MouseEvent<HTMLButtonElement>) => void\n}\n\nexport const Pill = React.forwardRef<HTMLSpanElement, PillProps>(function Pill(\n {\n className,\n color = \"accent\",\n variant = \"soft\",\n disabled,\n onRemove,\n onClick,\n children,\n ...props\n },\n ref\n) {\n // A decorative family can arrive from an expression the build cannot see, so the palette has to\n // be present whenever this component renders at all.\n ensurePaletteTokens()\n\n const styles = useStyles()\n\n // v1 resolves to gray when disabled and only makes the pill interactive when it has an onClick.\n const resolvedColor: PillColor = disabled ? \"gray\" : color\n const interactive = !!onClick && !disabled\n\n // The hover slot is only meaningful while interactive — v1 attaches its hover background class\n // (`interactive && hoverStyleClasses[...]`) only then, so drop it from the inline properties\n // otherwise. Setting it unconditionally would be harmless but would claim a hover state that\n // cannot be reached.\n const slot = VARIANT_SLOTS[variant](resolvedColor)\n if (!interactive) delete slot[HOV]\n\n return (\n <span\n ref={ref}\n data-slot=\"pill\"\n {...{ [SLOT_ATTR]: \"pill\" }}\n data-disabled={disabled || undefined}\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n onClick={onClick}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(e as unknown as React.MouseEvent<HTMLSpanElement>)\n }\n }\n : undefined\n }\n className={mergeClasses(\n styles.root,\n interactive && styles.interactive,\n onRemove && styles.hasRemove,\n disabled && styles.disabled,\n className\n )}\n style={{ ...slot } as React.CSSProperties}\n {...props}\n >\n {children}\n {onRemove && (\n // v1 composes the shared ClearButton here — hover, focus ring and the size-3 CloseIcon\n // fallback all live in the lib, not inline.\n <ClearButton\n className={styles.removeSize}\n onClick={onRemove}\n disabled={disabled}\n />\n )}\n </span>\n )\n})\n\nexport { COLORS as PILL_COLORS }\n"],"names":["COLORS","BG","FG","BD","HOV","semantic","color","slot","NS","primitive","step","VARIANT_SLOTS","c","useStyles","makeVoltStyles","tokens.spacingElement1","tokens.textXs","tokens.leadingXs","tokens.fontWeightBold","tokens.spacingElement2","tokens.radiusMd","shorthands","tokens.accentA8","tokens.spacingGroup2","Pill","React","className","variant","disabled","onRemove","onClick","children","props","ref","ensurePaletteTokens","styles","resolvedColor","interactive","jsxs","SLOT_ATTR","e","mergeClasses","jsx","ClearButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pill.js","sources":["../../../src/components/pill/pill.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport { NS } from \"../../tokens\"\nimport { ensurePaletteTokensFor } from \"../../tokens/install\"\nimport * as tokens from \"../../tokens\"\nimport { ClearButton } from \"../../lib/clear-button\"\n\n/**\n * Pill — same colour-matrix collapse as Badge, plus a hover background.\n *\n * v1 enumerates 19 colours x 3 styles as 57 `compoundVariants`, each a distinct class string\n * built by interpolation (`volt-bg-${color}-soft`), which Tailwind's scanner cannot see and\n * `safelist.css` exists to force into existence. The hover state made that 57 more per-colour\n * rules. Here the colour is a VALUE, not part of a class name: the four atoms below read four\n * custom properties, the component sets those inline from the `color` prop, and a single `:hover`\n * atom reads the hover background. Total rules: one small set per style variant — 9 colours' worth\n * of rules cover all 19 x 3 combinations.\n */\n\nconst COLORS = [\n \"blue\",\n \"sky\",\n \"mint\",\n \"lime\",\n \"green\",\n \"teal\",\n \"cyan\",\n \"indigo\",\n \"purple\",\n \"pink\",\n \"red\",\n \"orange\",\n \"yellow\",\n \"bronze\",\n \"gray\",\n \"accent\",\n \"warning\",\n \"success\",\n \"error\",\n] as const\n\nexport type PillColor = (typeof COLORS)[number]\nexport type PillVariant = \"soft\" | \"solid\" | \"surface\"\n\n/** The four slots a variant can paint. Set inline; read by the atoms below. */\nconst BG = \"--volt2-pill-bg\"\nconst FG = \"--volt2-pill-fg\"\nconst BD = \"--volt2-pill-bd\"\nconst HOV = \"--volt2-pill-hov\"\n\nconst semantic = (color: PillColor, slot: string): string =>\n `var(--volt2-${NS}-sem-${color}-${slot})`\nconst primitive = (color: PillColor, step: string): string =>\n `var(--volt2-${NS}-${color}-${step})`\n\n/**\n * Which token each variant pulls into each slot. This replaces the 57-entry compound matrix: it is\n * data about three variants, not about 57 combinations. Text uses the `light` semantic slot, which\n * is Pill's one departure from Badge (Badge uses `default`).\n */\nconst VARIANT_SLOTS: Record<\n PillVariant,\n (color: PillColor) => Record<string, string>\n> = {\n soft: (c) => ({\n [BG]: semantic(c, \"soft\"),\n [FG]: semantic(c, \"light\"),\n [BD]: \"transparent\",\n [HOV]: semantic(c, \"soft-hover\"),\n }),\n solid: (c) => ({\n [BG]: semantic(c, \"solid\"),\n [FG]: semantic(c, \"contrast\"),\n [BD]: \"transparent\",\n [HOV]: semantic(c, \"solid-hover\"),\n }),\n surface: (c) => ({\n [BG]: semantic(c, \"surface\"),\n [FG]: semantic(c, \"light\"),\n [BD]: primitive(c, \"a6\"),\n [HOV]: semantic(c, \"surface-hover\"),\n }),\n}\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"inline-flex\",\n alignItems: \"center\",\n // v1 `h-6` — a fixed height, not a minimum.\n height: \"1.5rem\",\n gap: tokens.spacingElement1,\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n overflow: \"hidden\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightBold,\n paddingInline: tokens.spacingElement2,\n borderRadius: tokens.radiusMd,\n transitionProperty: \"color, box-shadow, background-color\",\n // NEVER write a CSS shorthand in a Griffel style object — see Badge. One atom reads one\n // custom property; `border` and a later `borderColor` would both survive.\n ...shorthands.border(\"1px\", \"solid\", `var(${BD})`),\n // The whole point: one rule each, colour supplied per instance.\n backgroundColor: `var(${BG})`,\n color: `var(${FG})`,\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n // v1 `[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:pointer-events-none`.\n \"& > svg\": {\n // Literals, not tokens.spacingGroup2: that happens to be 1rem, but a spacing token has no\n // business describing a dimension. The scale has no size family — noted rather than faked.\n width: \"1rem\",\n height: \"1rem\",\n flexShrink: 0,\n pointerEvents: \"none\",\n },\n },\n interactive: {\n cursor: \"pointer\",\n // The one hover rule. It reads the fourth custom property, line-picked per colour and variant\n // by VARIANT_SLOTS — never per-colour hover rules.\n \":hover\": { backgroundColor: `var(${HOV})` },\n },\n hasRemove: {\n // v1's `pr-1` when a clear button is present.\n paddingRight: tokens.spacingElement1,\n },\n disabled: {\n pointerEvents: \"none\",\n },\n removeSize: {\n // v1's `size-4` on the composed ClearButton.\n width: tokens.spacingGroup2,\n height: tokens.spacingGroup2,\n },\n})\n\nexport type PillProps = Omit<React.ComponentProps<\"span\">, \"color\"> & {\n color?: PillColor\n /**\n * Named `variant`, not `style`. v1 called this `style`, which shadows the HTML `style` attribute.\n * Retrocompat is not a requirement here, so the collision is fixed rather than inherited.\n */\n variant?: PillVariant\n disabled?: boolean\n onRemove?: (e: React.MouseEvent<HTMLButtonElement>) => void\n}\n\nexport const Pill = React.forwardRef<HTMLSpanElement, PillProps>(function Pill(\n {\n className,\n color = \"accent\",\n variant = \"soft\",\n disabled,\n onRemove,\n onClick,\n children,\n ...props\n },\n ref\n) {\n const styles = useStyles()\n\n // v1 resolves to gray when disabled and only makes the pill interactive when it has an onClick.\n const resolvedColor: PillColor = disabled ? \"gray\" : color\n\n // A decorative family can still arrive from an expression the build cannot see, so this has to\n // run on every render — but it is the RESOLVED family that decides, and the five core families\n // Pill offers (accent, gray, warning, success, error) need no palette sheet at all.\n ensurePaletteTokensFor(resolvedColor)\n const interactive = !!onClick && !disabled\n\n // The hover slot is only meaningful while interactive — v1 attaches its hover background class\n // (`interactive && hoverStyleClasses[...]`) only then, so drop it from the inline properties\n // otherwise. Setting it unconditionally would be harmless but would claim a hover state that\n // cannot be reached.\n const slot = VARIANT_SLOTS[variant](resolvedColor)\n if (!interactive) delete slot[HOV]\n\n return (\n <span\n ref={ref}\n data-slot=\"pill\"\n {...{ [SLOT_ATTR]: \"pill\" }}\n data-disabled={disabled || undefined}\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n onClick={onClick}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(e as unknown as React.MouseEvent<HTMLSpanElement>)\n }\n }\n : undefined\n }\n className={mergeClasses(\n styles.root,\n interactive && styles.interactive,\n onRemove && styles.hasRemove,\n disabled && styles.disabled,\n className\n )}\n style={{ ...slot } as React.CSSProperties}\n {...props}\n >\n {children}\n {onRemove && (\n // v1 composes the shared ClearButton here — hover, focus ring and the size-3 CloseIcon\n // fallback all live in the lib, not inline.\n <ClearButton\n className={styles.removeSize}\n onClick={onRemove}\n disabled={disabled}\n />\n )}\n </span>\n )\n})\n\nexport { COLORS as PILL_COLORS }\n"],"names":["COLORS","BG","FG","BD","HOV","semantic","color","slot","NS","primitive","step","VARIANT_SLOTS","c","useStyles","makeVoltStyles","tokens.spacingElement1","tokens.textXs","tokens.leadingXs","tokens.fontWeightBold","tokens.spacingElement2","tokens.radiusMd","shorthands","tokens.accentA8","tokens.spacingGroup2","Pill","React","className","variant","disabled","onRemove","onClick","children","props","ref","styles","resolvedColor","ensurePaletteTokensFor","interactive","jsxs","SLOT_ATTR","e","mergeClasses","jsx","ClearButton"],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ import { shorthands as i } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
5
5
|
import { SLOT_ATTR as p } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
6
|
import { mergeClasses as P } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
7
|
import { makeVoltStyles as x } from "../../styles/make-styles.js";
|
|
8
|
-
import { spacingGroup2 as b, grayA1 as h,
|
|
8
|
+
import { spacingGroup2 as b, grayA1 as h, radiusXl as R, spacingElement2 as s, grayA12 as T, body as A } from "../../tokens/index.js";
|
|
9
9
|
const N = x({
|
|
10
10
|
popup: {
|
|
11
|
-
backgroundColor:
|
|
12
|
-
color:
|
|
11
|
+
backgroundColor: A,
|
|
12
|
+
color: T,
|
|
13
13
|
transformOrigin: "var(--radix-popover-content-transform-origin)",
|
|
14
|
-
...i.borderRadius(
|
|
14
|
+
...i.borderRadius(R),
|
|
15
15
|
...i.border("1px", "solid", h),
|
|
16
16
|
// v1 shadow-md
|
|
17
17
|
boxShadow: "0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a",
|
|
@@ -5,7 +5,7 @@ import { shorthands as t } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
5
5
|
import { SLOT_ATTR as s } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
6
|
import { mergeClasses as p } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
7
|
import { makeVoltStyles as C } from "../../styles/make-styles.js";
|
|
8
|
-
import { errorA8 as l, accentA7 as k, semAccentContrast as m, errorA10 as
|
|
8
|
+
import { errorA8 as l, accentA7 as k, spacingElement3 as w, semAccentContrast as m, errorA10 as y, semErrorSoft as R, grayA3 as u, semAccentSolid as v, accentA8 as A, accentA12 as S, semAccentSoft as I } from "../../tokens/index.js";
|
|
9
9
|
const j = c.forwardRef(
|
|
10
10
|
function(o, r) {
|
|
11
11
|
return /* @__PURE__ */ e(
|
|
@@ -27,7 +27,7 @@ const j = c.forwardRef(
|
|
|
27
27
|
), f = C({
|
|
28
28
|
group: {
|
|
29
29
|
display: "grid",
|
|
30
|
-
...t.gap(
|
|
30
|
+
...t.gap(w)
|
|
31
31
|
},
|
|
32
32
|
item: {
|
|
33
33
|
boxSizing: "border-box",
|
|
@@ -41,8 +41,8 @@ const j = c.forwardRef(
|
|
|
41
41
|
flexShrink: 0,
|
|
42
42
|
borderRadius: "9999px",
|
|
43
43
|
...t.border("1px", "solid", k),
|
|
44
|
-
backgroundColor:
|
|
45
|
-
color:
|
|
44
|
+
backgroundColor: I,
|
|
45
|
+
color: S,
|
|
46
46
|
// Tailwind `shadow-xs` — literal per CONVENTIONS B7
|
|
47
47
|
boxShadow: "0 1px 2px 0 #0000000d",
|
|
48
48
|
transitionProperty: "color, box-shadow",
|
|
@@ -52,7 +52,7 @@ const j = c.forwardRef(
|
|
|
52
52
|
outlineOffset: "2px",
|
|
53
53
|
outlineWidth: "2px",
|
|
54
54
|
outlineStyle: "solid",
|
|
55
|
-
outlineColor:
|
|
55
|
+
outlineColor: A
|
|
56
56
|
},
|
|
57
57
|
"&[data-disabled]": {
|
|
58
58
|
cursor: "not-allowed",
|
|
@@ -60,19 +60,19 @@ const j = c.forwardRef(
|
|
|
60
60
|
...t.borderColor("transparent")
|
|
61
61
|
},
|
|
62
62
|
"&[data-state='checked']": {
|
|
63
|
-
backgroundColor:
|
|
63
|
+
backgroundColor: v,
|
|
64
64
|
color: m
|
|
65
65
|
},
|
|
66
66
|
"&[data-state='checked'][data-disabled]": {
|
|
67
67
|
backgroundColor: u
|
|
68
68
|
},
|
|
69
69
|
"&[aria-invalid='true'], &[data-invalid]": {
|
|
70
|
-
backgroundColor:
|
|
70
|
+
backgroundColor: R,
|
|
71
71
|
...t.borderColor(l),
|
|
72
72
|
outlineColor: l
|
|
73
73
|
},
|
|
74
74
|
"&[data-state='checked'][aria-invalid='true'], &[data-state='checked'][data-invalid]": {
|
|
75
|
-
backgroundColor:
|
|
75
|
+
backgroundColor: y,
|
|
76
76
|
...t.borderColor("transparent")
|
|
77
77
|
}
|
|
78
78
|
},
|
|
@@ -5,7 +5,7 @@ import { shorthands as w } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
5
5
|
import { SLOT_ATTR as s } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
6
|
import { mergeClasses as h } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
7
|
import { makeVoltStyles as F } from "../../styles/make-styles.js";
|
|
8
|
-
import {
|
|
8
|
+
import { radiusMd as W, radiusSm as j, grayA8 as A, accentA8 as G, grayA12 as K, gray1 as Z } from "../../tokens/index.js";
|
|
9
9
|
function B() {
|
|
10
10
|
return typeof window > "u" || !window.matchMedia || window.matchMedia("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth";
|
|
11
11
|
}
|
|
@@ -184,11 +184,11 @@ const U = (c) => /* @__PURE__ */ l(
|
|
|
184
184
|
alignItems: "center",
|
|
185
185
|
justifyContent: "center",
|
|
186
186
|
backgroundColor: A,
|
|
187
|
-
...w.borderRadius(
|
|
187
|
+
...w.borderRadius(j),
|
|
188
188
|
backdropFilter: "blur(4px)",
|
|
189
|
-
color:
|
|
189
|
+
color: Z,
|
|
190
190
|
":hover": {
|
|
191
|
-
backgroundColor:
|
|
191
|
+
backgroundColor: K
|
|
192
192
|
}
|
|
193
193
|
},
|
|
194
194
|
arrowIcon: {
|
|
@@ -218,12 +218,12 @@ const U = (c) => /* @__PURE__ */ l(
|
|
|
218
218
|
flexDirection: "row"
|
|
219
219
|
},
|
|
220
220
|
viewport: {
|
|
221
|
-
...w.borderRadius(
|
|
221
|
+
...w.borderRadius(W),
|
|
222
222
|
":focus-visible": {
|
|
223
223
|
outlineWidth: "2px",
|
|
224
224
|
outlineOffset: "2px",
|
|
225
225
|
outlineStyle: "solid",
|
|
226
|
-
outlineColor:
|
|
226
|
+
outlineColor: G
|
|
227
227
|
}
|
|
228
228
|
},
|
|
229
229
|
viewportHorizontal: {
|
|
@@ -5,7 +5,7 @@ import { shorthands as d } from "../../packages/volt-runtime/dist/vendor/@griffe
|
|
|
5
5
|
import { SLOT_ATTR as l } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
6
|
import { mergeClasses as m } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
7
|
import { makeVoltStyles as P } from "../../styles/make-styles.js";
|
|
8
|
-
import { spacingElement2 as s, spacingElement1 as p, semGraySoft as
|
|
8
|
+
import { radiusMd as x, spacingElement2 as s, radius2xl as U, spacingElement1 as p, radiusLg as G, semGraySoft as V, gray11 as Y, fontWeightSemibold as F, leadingXs as H, textXs as Z, grayA11 as u, accentA3 as S, grayA12 as y, leadingSm as b, textSm as v, spacingGroup1 as O, body as _, accentA11 as I, accentA8 as Q, semAccentSoft as J, grayA8 as K } from "../../tokens/index.js";
|
|
9
9
|
const tt = (n) => /* @__PURE__ */ t(
|
|
10
10
|
"svg",
|
|
11
11
|
{
|
|
@@ -57,10 +57,10 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
57
57
|
alignItems: "center",
|
|
58
58
|
justifyContent: "space-between",
|
|
59
59
|
...d.gap(s),
|
|
60
|
-
...d.borderRadius(
|
|
60
|
+
...d.borderRadius(G),
|
|
61
61
|
backgroundColor: "transparent",
|
|
62
|
-
fontSize:
|
|
63
|
-
lineHeight:
|
|
62
|
+
fontSize: v,
|
|
63
|
+
lineHeight: b,
|
|
64
64
|
outlineStyle: "none",
|
|
65
65
|
whiteSpace: "normal",
|
|
66
66
|
textAlign: "left",
|
|
@@ -73,7 +73,7 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
73
73
|
opacity: 0.5
|
|
74
74
|
},
|
|
75
75
|
"&[data-placeholder]": {
|
|
76
|
-
color:
|
|
76
|
+
color: K
|
|
77
77
|
},
|
|
78
78
|
"& svg": {
|
|
79
79
|
pointerEvents: "none",
|
|
@@ -127,14 +127,14 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
127
127
|
alignItems: "center",
|
|
128
128
|
justifyContent: "center",
|
|
129
129
|
backgroundColor: "transparent",
|
|
130
|
-
color:
|
|
130
|
+
color: I,
|
|
131
131
|
cursor: "pointer",
|
|
132
|
-
...d.borderRadius(
|
|
132
|
+
...d.borderRadius(x),
|
|
133
133
|
":hover": {
|
|
134
|
-
backgroundColor:
|
|
134
|
+
backgroundColor: J
|
|
135
135
|
},
|
|
136
136
|
":focus-visible": {
|
|
137
|
-
outlineColor:
|
|
137
|
+
outlineColor: Q,
|
|
138
138
|
outlineWidth: "2px",
|
|
139
139
|
outlineStyle: "solid"
|
|
140
140
|
}
|
|
@@ -142,19 +142,19 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
142
142
|
triggerClearIcon: {
|
|
143
143
|
width: "1.25rem",
|
|
144
144
|
height: "1.25rem",
|
|
145
|
-
color:
|
|
145
|
+
color: I
|
|
146
146
|
},
|
|
147
147
|
popup: {
|
|
148
|
-
backgroundColor:
|
|
148
|
+
backgroundColor: _,
|
|
149
149
|
...d.padding(s),
|
|
150
150
|
...d.gap(p),
|
|
151
|
-
color:
|
|
151
|
+
color: y,
|
|
152
152
|
position: "relative",
|
|
153
153
|
zIndex: 50,
|
|
154
154
|
transformOrigin: "var(--radix-select-content-transform-origin)",
|
|
155
155
|
overflowX: "hidden",
|
|
156
156
|
overflowY: "auto",
|
|
157
|
-
...d.borderRadius(
|
|
157
|
+
...d.borderRadius(U),
|
|
158
158
|
...d.border("1px", "solid", "transparent"),
|
|
159
159
|
// v1 shadow-md
|
|
160
160
|
boxShadow: "0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a",
|
|
@@ -227,23 +227,23 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
227
227
|
userSelect: "none",
|
|
228
228
|
alignItems: "center",
|
|
229
229
|
...d.gap(s),
|
|
230
|
-
...d.borderRadius(
|
|
231
|
-
paddingLeft:
|
|
230
|
+
...d.borderRadius(x),
|
|
231
|
+
paddingLeft: O,
|
|
232
232
|
paddingRight: "2rem",
|
|
233
233
|
paddingTop: "0.375rem",
|
|
234
234
|
paddingBottom: "0.375rem",
|
|
235
|
-
fontSize:
|
|
236
|
-
lineHeight:
|
|
237
|
-
color:
|
|
235
|
+
fontSize: v,
|
|
236
|
+
lineHeight: b,
|
|
237
|
+
color: y,
|
|
238
238
|
outlineStyle: "none",
|
|
239
239
|
":not(:first-child)": {
|
|
240
240
|
marginTop: "0.125rem"
|
|
241
241
|
},
|
|
242
242
|
"&[data-highlighted]": {
|
|
243
|
-
backgroundColor:
|
|
243
|
+
backgroundColor: S
|
|
244
244
|
},
|
|
245
245
|
"&[data-state='checked']": {
|
|
246
|
-
backgroundColor:
|
|
246
|
+
backgroundColor: S
|
|
247
247
|
},
|
|
248
248
|
"&[data-disabled]": {
|
|
249
249
|
pointerEvents: "none",
|
|
@@ -276,10 +276,10 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
276
276
|
paddingRight: s,
|
|
277
277
|
paddingTop: "0.375rem",
|
|
278
278
|
paddingBottom: "0.375rem",
|
|
279
|
-
fontSize:
|
|
280
|
-
lineHeight:
|
|
281
|
-
fontWeight:
|
|
282
|
-
color:
|
|
279
|
+
fontSize: Z,
|
|
280
|
+
lineHeight: H,
|
|
281
|
+
fontWeight: F,
|
|
282
|
+
color: Y
|
|
283
283
|
},
|
|
284
284
|
separator: {
|
|
285
285
|
pointerEvents: "none",
|
|
@@ -288,7 +288,7 @@ const tt = (n) => /* @__PURE__ */ t(
|
|
|
288
288
|
marginTop: p,
|
|
289
289
|
marginBottom: p,
|
|
290
290
|
height: "1px",
|
|
291
|
-
backgroundColor:
|
|
291
|
+
backgroundColor: V
|
|
292
292
|
},
|
|
293
293
|
scrollArrow: {
|
|
294
294
|
display: "flex",
|