@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.
Files changed (63) hide show
  1. package/AGENTS.md +153 -0
  2. package/AUTHORING.md +292 -0
  3. package/README.md +85 -7
  4. package/dist/components/alert-dialog/alert-dialog.js +18 -18
  5. package/dist/components/avatar/avatar.js +18 -19
  6. package/dist/components/avatar/avatar.js.map +1 -1
  7. package/dist/components/badge/badge.js +13 -13
  8. package/dist/components/badge/badge.js.map +1 -1
  9. package/dist/components/breadcrumb/breadcrumb.js +6 -6
  10. package/dist/components/button/button.js +20 -20
  11. package/dist/components/button-group/button-group.js +6 -6
  12. package/dist/components/callout/callout.js +6 -6
  13. package/dist/components/card/card.js +8 -8
  14. package/dist/components/collapsible-sidebar/collapsible-sidebar.js +4 -4
  15. package/dist/components/command/command.js +15 -15
  16. package/dist/components/data-table/data-table-column-header.js +5 -5
  17. package/dist/components/data-table/data-table-error.js +13 -13
  18. package/dist/components/data-table/data-table-loading.js +4 -4
  19. package/dist/components/date-range-picker/date-range-picker.js +8 -8
  20. package/dist/components/date-time-picker/calendar.js +15 -15
  21. package/dist/components/date-time-picker/date-time-picker-panel.js +73 -67
  22. package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
  23. package/dist/components/date-time-picker/date-time-picker.js +53 -49
  24. package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
  25. package/dist/components/date-time-picker/time-picker.js +77 -71
  26. package/dist/components/date-time-picker/time-picker.js.map +1 -1
  27. package/dist/components/dialog/dialog.js +21 -21
  28. package/dist/components/drawer/drawer.js +16 -16
  29. package/dist/components/dropdown-menu/dropdown-menu.js +13 -13
  30. package/dist/components/field/field-combobox.js +9 -9
  31. package/dist/components/field/field.js +22 -22
  32. package/dist/components/label/label.js +11 -11
  33. package/dist/components/list/list.js +13 -13
  34. package/dist/components/option-card/option-card.js +24 -24
  35. package/dist/components/pill/pill.js +21 -20
  36. package/dist/components/pill/pill.js.map +1 -1
  37. package/dist/components/popover/popover.js +4 -4
  38. package/dist/components/radio/radio.js +8 -8
  39. package/dist/components/scroll-overflow/scroll-overflow.js +6 -6
  40. package/dist/components/select/select.js +25 -25
  41. package/dist/components/skeleton/skeleton.js +17 -17
  42. package/dist/components/skeleton/skeleton.js.map +1 -1
  43. package/dist/components/table/table-pagination.js +74 -76
  44. package/dist/components/table/table-pagination.js.map +1 -1
  45. package/dist/components/tabs/tabs.js +19 -19
  46. package/dist/components/toast/toast.js +24 -24
  47. package/dist/components/toggle/toggle.js +17 -17
  48. package/dist/components/tooltip/tooltip.js +6 -6
  49. package/dist/index.d.ts +1490 -1056
  50. package/dist/index.js +276 -273
  51. package/dist/index.js.map +1 -1
  52. package/dist/tokens/core.generated.js +1168 -1154
  53. package/dist/tokens/core.generated.js.map +1 -1
  54. package/dist/tokens/index.d.ts +1076 -1054
  55. package/dist/tokens/index.js +1078 -1056
  56. package/dist/tokens/index.js.map +1 -1
  57. package/dist/tokens/install.js +21 -9
  58. package/dist/tokens/install.js.map +1 -1
  59. package/dist/tokens/palette.generated.js +1323 -1293
  60. package/dist/tokens/palette.generated.js.map +1 -1
  61. package/dist/tokens.json +45 -1
  62. package/package.json +7 -2
  63. 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, spacingElement1 as B, semSuccessLight as mt, semWarningLight as pt, semErrorLight as ut, spacingGroup2 as _, grayA12 as q, fontWeightSemibold as gt, leadingSm as P, textSm as V, grayA10 as ft, fontWeightMedium as ht, semAccentSolid as xt, accentA8 as vt, grayA11 as j, grayA8 as yt, leadingXs as bt, textXs as wt, grayA2 as Q, radiusMd as F, 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";
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(F),
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: V,
109
- lineHeight: P,
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: V,
121
- lineHeight: P,
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: F,
188
- borderBottomLeftRadius: F,
187
+ borderTopLeftRadius: P,
188
+ borderBottomLeftRadius: P,
189
189
  backgroundColor: Q,
190
190
  textAlign: "center",
191
- color: j,
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: j
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: j
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: V,
372
- lineHeight: P,
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 G, grayContrast as ot, grayA3 as rt, accentContrast as et, semAccentSoft as C, grayA11 as nt, fontWeightNormal as D, leadingXs as it, textXs as at, fontWeightSemibold as st, spacingElement1 as P, spacingElement2 as ct, semAccentLight as dt, grayA12 as lt, leadingSm as pt, textSm as ut, radiusLg as W, spacingElement3 as E, spacingGroup1 as ht } from "../../tokens/index.js";
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(ht)
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(E),
39
+ ...s.gap(P),
40
40
  overflow: "hidden",
41
- ...s.borderRadius(W),
41
+ ...s.borderRadius(G),
42
42
  ...s.border("1px", "solid", "currentColor"),
43
- ...s.paddingInline(E),
43
+ ...s.paddingInline(P),
44
44
  ...s.paddingBlock("0.375rem"),
45
45
  textAlign: "left",
46
- fontSize: ut,
47
- lineHeight: pt,
48
- fontWeight: D,
49
- color: lt,
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: G
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(G)
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(W),
102
+ ...s.borderRadius(G),
103
103
  backgroundColor: C,
104
- color: dt,
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: ct,
139
- paddingTop: P,
140
- paddingBottom: P,
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: st
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: at,
163
- lineHeight: it,
164
- fontWeight: D,
165
- color: nt
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: et,
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: rt,
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: ot,
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 v, spacingElement1 as g, accentA8 as I, radiusMd as P, spacingElement2 as z, fontWeightBold as A, leadingXs as B, textXs as N } from "../../tokens/index.js";
8
- import { ensurePaletteTokens as C } from "../../tokens/install.js";
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 h } from "../../tokens/core.generated.js";
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-${h}-sem-${o}-${t})`, G = (o, t) => `var(--volt2-${h}-${o}-${t})`, V = {
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: g,
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: g
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: v,
104
- height: v
103
+ width: g,
104
+ height: g
105
105
  }
106
106
  }), U = R.forwardRef(function({
107
107
  className: t,
108
- color: u = "accent",
109
- variant: y = "soft",
108
+ color: y = "accent",
109
+ variant: S = "soft",
110
110
  disabled: r,
111
111
  onRemove: m,
112
112
  onClick: i,
113
- children: S,
114
- ...b
115
- }, x) {
116
- C();
117
- const n = W(), w = r ? "gray" : u, s = !!i && !r, f = V[y](w);
118
- return s || delete f[l], /* @__PURE__ */ $(
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: x,
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: { ...f },
139
- ...b,
139
+ style: { ...v },
140
+ ...x,
140
141
  children: [
141
- S,
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, spacingElement2 as s, grayA12 as R, body as T, radiusXl as A } from "../../tokens/index.js";
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: T,
12
- color: R,
11
+ backgroundColor: A,
12
+ color: T,
13
13
  transformOrigin: "var(--radix-popover-content-transform-origin)",
14
- ...i.borderRadius(A),
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 w, semErrorSoft as y, grayA3 as u, semAccentSolid as R, accentA8 as v, accentA12 as A, semAccentSoft as S, spacingElement3 as I } from "../../tokens/index.js";
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(I)
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: S,
45
- color: A,
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: v
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: R,
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: y,
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: w,
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 { grayA8 as A, accentA8 as W, grayA12 as j, gray1 as G, radiusMd as K, radiusSm as Z } from "../../tokens/index.js";
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(Z),
187
+ ...w.borderRadius(j),
188
188
  backdropFilter: "blur(4px)",
189
- color: G,
189
+ color: Z,
190
190
  ":hover": {
191
- backgroundColor: j
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(K),
221
+ ...w.borderRadius(W),
222
222
  ":focus-visible": {
223
223
  outlineWidth: "2px",
224
224
  outlineOffset: "2px",
225
225
  outlineStyle: "solid",
226
- outlineColor: W
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 U, gray11 as G, fontWeightSemibold as V, leadingXs as Y, textXs as F, grayA11 as u, accentA3 as x, grayA12 as S, leadingSm as y, textSm as b, spacingGroup1 as H, body as Z, accentA11 as v, accentA8 as O, semAccentSoft as _, grayA8 as Q, radiusMd as I, radius2xl as J, radiusLg as K } from "../../tokens/index.js";
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(K),
60
+ ...d.borderRadius(G),
61
61
  backgroundColor: "transparent",
62
- fontSize: b,
63
- lineHeight: y,
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: Q
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: v,
130
+ color: I,
131
131
  cursor: "pointer",
132
- ...d.borderRadius(I),
132
+ ...d.borderRadius(x),
133
133
  ":hover": {
134
- backgroundColor: _
134
+ backgroundColor: J
135
135
  },
136
136
  ":focus-visible": {
137
- outlineColor: O,
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: v
145
+ color: I
146
146
  },
147
147
  popup: {
148
- backgroundColor: Z,
148
+ backgroundColor: _,
149
149
  ...d.padding(s),
150
150
  ...d.gap(p),
151
- color: S,
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(J),
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(I),
231
- paddingLeft: H,
230
+ ...d.borderRadius(x),
231
+ paddingLeft: O,
232
232
  paddingRight: "2rem",
233
233
  paddingTop: "0.375rem",
234
234
  paddingBottom: "0.375rem",
235
- fontSize: b,
236
- lineHeight: y,
237
- color: S,
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: x
243
+ backgroundColor: S
244
244
  },
245
245
  "&[data-state='checked']": {
246
- backgroundColor: x
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: F,
280
- lineHeight: Y,
281
- fontWeight: V,
282
- color: G
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: U
291
+ backgroundColor: V
292
292
  },
293
293
  scrollArrow: {
294
294
  display: "flex",