@epilot/volt-ui-experimental-griffel 0.2.0 → 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 (140) hide show
  1. package/AGENTS.md +153 -0
  2. package/AUTHORING.md +292 -0
  3. package/README.md +90 -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 +9200 -65
  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 +1079 -1053
  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 +12 -5
  63. package/testing/jest-preset.cjs +64 -0
  64. package/dist/components/accordion/accordion.d.ts +0 -14
  65. package/dist/components/alert-dialog/alert-dialog.d.ts +0 -36
  66. package/dist/components/avatar/avatar-group.d.ts +0 -7
  67. package/dist/components/avatar/avatar.d.ts +0 -17
  68. package/dist/components/badge/badge.d.ts +0 -41
  69. package/dist/components/breadcrumb/breadcrumb.d.ts +0 -37
  70. package/dist/components/button/button.d.ts +0 -18
  71. package/dist/components/button-group/button-group.d.ts +0 -30
  72. package/dist/components/callout/callout.d.ts +0 -23
  73. package/dist/components/card/card.d.ts +0 -9
  74. package/dist/components/checkbox/checkbox.d.ts +0 -4
  75. package/dist/components/collapsible-sidebar/collapsible-sidebar.d.ts +0 -33
  76. package/dist/components/command/command.d.ts +0 -85
  77. package/dist/components/data-table/data-table-body.d.ts +0 -21
  78. package/dist/components/data-table/data-table-column-header.d.ts +0 -13
  79. package/dist/components/data-table/data-table-column-visibility.d.ts +0 -21
  80. package/dist/components/data-table/data-table-content.d.ts +0 -13
  81. package/dist/components/data-table/data-table-context.d.ts +0 -66
  82. package/dist/components/data-table/data-table-error.d.ts +0 -21
  83. package/dist/components/data-table/data-table-header.d.ts +0 -14
  84. package/dist/components/data-table/data-table-loading.d.ts +0 -13
  85. package/dist/components/data-table/data-table-pagination.d.ts +0 -17
  86. package/dist/components/data-table/data-table-pinning-utils.d.ts +0 -17
  87. package/dist/components/data-table/data-table-row.d.ts +0 -14
  88. package/dist/components/data-table/data-table-toolbar.d.ts +0 -7
  89. package/dist/components/data-table/data-table.d.ts +0 -92
  90. package/dist/components/data-table/get-selected-row-data.d.ts +0 -18
  91. package/dist/components/data-table/hooks/index.d.ts +0 -2
  92. package/dist/components/data-table/hooks/use-data-table-content.d.ts +0 -1
  93. package/dist/components/data-table/hooks/use-data-table.d.ts +0 -2
  94. package/dist/components/date-range-picker/date-range-picker-utils.d.ts +0 -2
  95. package/dist/components/date-range-picker/date-range-picker.d.ts +0 -34
  96. package/dist/components/date-range-picker/range-calendar.d.ts +0 -15
  97. package/dist/components/date-time-picker/calendar.d.ts +0 -28
  98. package/dist/components/date-time-picker/date-time-picker-context.d.ts +0 -39
  99. package/dist/components/date-time-picker/date-time-picker-input.d.ts +0 -13
  100. package/dist/components/date-time-picker/date-time-picker-panel.d.ts +0 -15
  101. package/dist/components/date-time-picker/date-time-picker-popover.d.ts +0 -6
  102. package/dist/components/date-time-picker/date-time-picker-utils.d.ts +0 -37
  103. package/dist/components/date-time-picker/date-time-picker.d.ts +0 -47
  104. package/dist/components/date-time-picker/time-picker.d.ts +0 -12
  105. package/dist/components/dialog/dialog.d.ts +0 -27
  106. package/dist/components/drawer/drawer.d.ts +0 -27
  107. package/dist/components/dropdown-menu/dropdown-menu.d.ts +0 -41
  108. package/dist/components/field/field-combobox.d.ts +0 -90
  109. package/dist/components/field/field-select.d.ts +0 -4
  110. package/dist/components/field/field.d.ts +0 -76
  111. package/dist/components/label/label.d.ts +0 -21
  112. package/dist/components/list/list.d.ts +0 -46
  113. package/dist/components/option-card/option-card.d.ts +0 -39
  114. package/dist/components/pill/pill.d.ts +0 -27
  115. package/dist/components/popover/popover.d.ts +0 -14
  116. package/dist/components/radio/radio.d.ts +0 -6
  117. package/dist/components/scroll-overflow/scroll-overflow.d.ts +0 -38
  118. package/dist/components/segmented-control/segmented-control.d.ts +0 -11
  119. package/dist/components/select/select.d.ts +0 -26
  120. package/dist/components/separator/separator.d.ts +0 -30
  121. package/dist/components/skeleton/skeleton.d.ts +0 -24
  122. package/dist/components/spinner/spinner.d.ts +0 -25
  123. package/dist/components/switch/switch.d.ts +0 -17
  124. package/dist/components/table/table-pagination.d.ts +0 -45
  125. package/dist/components/table/table.d.ts +0 -50
  126. package/dist/components/tabs/tabs.d.ts +0 -18
  127. package/dist/components/text/text.d.ts +0 -22
  128. package/dist/components/toast/toast.d.ts +0 -10
  129. package/dist/components/toggle/toggle-group.d.ts +0 -10
  130. package/dist/components/toggle/toggle.d.ts +0 -10
  131. package/dist/components/tooltip/tooltip.d.ts +0 -15
  132. package/dist/lib/clear-button.d.ts +0 -5
  133. package/dist/lib/icons.d.ts +0 -3
  134. package/dist/lib/pagination.d.ts +0 -71
  135. package/dist/renderer/contract.d.ts +0 -12
  136. package/dist/renderer/index.d.ts +0 -10
  137. package/dist/styles/make-styles.d.ts +0 -37
  138. package/dist/tokens/core.generated.d.ts +0 -3
  139. package/dist/tokens/install.d.ts +0 -38
  140. package/dist/tokens/palette.generated.d.ts +0 -3
@@ -1,13 +1,12 @@
1
- import { jsxs as h, jsx as g } from "react/jsx-runtime";
1
+ import { jsxs as h, jsx as s } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
3
  import { Root as p, Image as y, Fallback as A } from "../../vendor/@radix-ui/react-avatar/dist/index.js";
4
4
  import { SLOT_ATTR as n } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as x } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as S } from "../../styles/make-styles.js";
7
- import { ensurePaletteTokens as w } from "../../tokens/install.js";
8
- import { indigoA12 as C, indigo3 as z, purpleA12 as R, purple3 as T, pinkA12 as j, pink3 as O, redA12 as F, red3 as H, bronzeA12 as I, bronze3 as N, orangeA12 as X, orange3 as B, yellowA12 as L, yellow3 as V, limeA12 as W, lime3 as _, greenA12 as G, green3 as M, mintA12 as P, mint3 as U, tealA12 as Y, teal3 as q, cyanA12 as D, cyan3 as E, skyA12 as J, sky3 as K, blueA12 as Q, blue3 as Z, grayA12 as $, gray3 as aa, leadingBase as ra, textBase as ea, leadingSm as ta, textSm as oa, leadingXs as na, textXs as ia, fontWeightMedium as la } from "../../tokens/index.js";
9
- typeof document < "u" && w();
10
- const s = [
7
+ import { ensurePaletteTokensFor as w } from "../../tokens/install.js";
8
+ import { indigoA12 as C, indigo3 as z, purpleA12 as R, purple3 as T, pinkA12 as j, pink3 as F, redA12 as O, red3 as H, bronzeA12 as I, bronze3 as N, orangeA12 as X, orange3 as B, yellowA12 as L, yellow3 as V, limeA12 as W, lime3 as _, greenA12 as G, green3 as M, mintA12 as P, mint3 as U, tealA12 as Y, teal3 as q, cyanA12 as D, cyan3 as E, skyA12 as J, sky3 as K, blueA12 as Q, blue3 as Z, grayA12 as $, gray3 as aa, leadingBase as ra, textBase as ea, leadingSm as ta, textSm as oa, leadingXs as na, textXs as ia, fontWeightMedium as la } from "../../tokens/index.js";
9
+ const c = [
11
10
  "blue",
12
11
  "sky",
13
12
  "cyan",
@@ -20,12 +19,12 @@ const s = [
20
19
  "pink",
21
20
  "purple",
22
21
  "indigo"
23
- ], da = (t) => {
22
+ ], ga = (t) => {
24
23
  let a = 0;
25
24
  for (let r = 0; r < t.length; r++)
26
25
  a = a * 31 + t.charCodeAt(r) >>> 0;
27
- return s[a % s.length];
28
- }, ga = {
26
+ return c[a % c.length];
27
+ }, da = {
29
28
  gray: {
30
29
  "--avatar-background": aa,
31
30
  "--avatar-foreground": $
@@ -72,10 +71,10 @@ const s = [
72
71
  },
73
72
  red: {
74
73
  "--avatar-background": H,
75
- "--avatar-foreground": F
74
+ "--avatar-foreground": O
76
75
  },
77
76
  pink: {
78
- "--avatar-background": O,
77
+ "--avatar-background": F,
79
78
  "--avatar-foreground": j
80
79
  },
81
80
  purple: {
@@ -133,19 +132,19 @@ const s = [
133
132
  width: "100%",
134
133
  height: "100%"
135
134
  }
136
- }), pa = i.forwardRef(function({ className: a, src: r, alt: l, initials: d, color: c, size: u, style: v, ...f }, m) {
137
- const e = ca(), o = i.useContext(sa), b = u ?? (o == null ? void 0 : o.size) ?? "base", k = c ?? da(l ?? d ?? "");
138
- return /* @__PURE__ */ h(
135
+ }), pa = i.forwardRef(function({ className: a, src: r, alt: l, initials: g, color: u, size: v, style: m, ...f }, b) {
136
+ const e = ca(), o = i.useContext(sa), k = v ?? (o == null ? void 0 : o.size) ?? "base", d = u ?? ga(l ?? g ?? "");
137
+ return w(d), /* @__PURE__ */ h(
139
138
  p,
140
139
  {
141
- ref: m,
140
+ ref: b,
142
141
  "data-slot": "avatar",
143
142
  [n]: "avatar",
144
- className: x(e.root, e[b], a),
145
- style: { ...ga[k], ...v },
143
+ className: x(e.root, e[k], a),
144
+ style: { ...da[d], ...m },
146
145
  ...f,
147
146
  children: [
148
- /* @__PURE__ */ g(
147
+ /* @__PURE__ */ s(
149
148
  y,
150
149
  {
151
150
  "data-slot": "avatar-image",
@@ -155,14 +154,14 @@ const s = [
155
154
  className: e.image
156
155
  }
157
156
  ),
158
- /* @__PURE__ */ g(
157
+ /* @__PURE__ */ s(
159
158
  A,
160
159
  {
161
160
  "data-slot": "avatar-fallback",
162
161
  [n]: "avatar-fallback",
163
162
  className: e.fallback,
164
163
  "aria-hidden": "true",
165
- children: d
164
+ children: g
166
165
  }
167
166
  )
168
167
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../../src/components/avatar/avatar.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { mergeClasses } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport { ensurePaletteTokens } from \"../../tokens/install\"\nimport * as tokens from \"../../tokens\"\n\nif (typeof document !== \"undefined\") {\n ensurePaletteTokens()\n}\n\nexport type AvatarColor =\n | \"gray\"\n | \"blue\"\n | \"sky\"\n | \"cyan\"\n | \"teal\"\n | \"mint\"\n | \"green\"\n | \"lime\"\n | \"yellow\"\n | \"orange\"\n | \"bronze\"\n | \"red\"\n | \"pink\"\n | \"purple\"\n | \"indigo\"\nexport type AvatarSize = \"sm\" | \"base\" | \"lg\"\n\nconst AUTO_COLORS: AvatarColor[] = [\n \"blue\",\n \"sky\",\n \"cyan\",\n \"teal\",\n \"mint\",\n \"green\",\n \"lime\",\n \"orange\",\n \"bronze\",\n \"pink\",\n \"purple\",\n \"indigo\",\n]\n\nconst colorForSeed = (seed: string): AvatarColor => {\n let hash = 0\n for (let i = 0; i < seed.length; i++) {\n hash = (hash * 31 + seed.charCodeAt(i)) >>> 0\n }\n return AUTO_COLORS[hash % AUTO_COLORS.length]\n}\n\nconst colorVars: Record<AvatarColor, React.CSSProperties> = {\n gray: {\n \"--avatar-background\": tokens.gray3,\n \"--avatar-foreground\": tokens.grayA12,\n } as React.CSSProperties,\n blue: {\n \"--avatar-background\": tokens.blue3,\n \"--avatar-foreground\": tokens.blueA12,\n } as React.CSSProperties,\n sky: {\n \"--avatar-background\": tokens.sky3,\n \"--avatar-foreground\": tokens.skyA12,\n } as React.CSSProperties,\n cyan: {\n \"--avatar-background\": tokens.cyan3,\n \"--avatar-foreground\": tokens.cyanA12,\n } as React.CSSProperties,\n teal: {\n \"--avatar-background\": tokens.teal3,\n \"--avatar-foreground\": tokens.tealA12,\n } as React.CSSProperties,\n mint: {\n \"--avatar-background\": tokens.mint3,\n \"--avatar-foreground\": tokens.mintA12,\n } as React.CSSProperties,\n green: {\n \"--avatar-background\": tokens.green3,\n \"--avatar-foreground\": tokens.greenA12,\n } as React.CSSProperties,\n lime: {\n \"--avatar-background\": tokens.lime3,\n \"--avatar-foreground\": tokens.limeA12,\n } as React.CSSProperties,\n yellow: {\n \"--avatar-background\": tokens.yellow3,\n \"--avatar-foreground\": tokens.yellowA12,\n } as React.CSSProperties,\n orange: {\n \"--avatar-background\": tokens.orange3,\n \"--avatar-foreground\": tokens.orangeA12,\n } as React.CSSProperties,\n bronze: {\n \"--avatar-background\": tokens.bronze3,\n \"--avatar-foreground\": tokens.bronzeA12,\n } as React.CSSProperties,\n red: {\n \"--avatar-background\": tokens.red3,\n \"--avatar-foreground\": tokens.redA12,\n } as React.CSSProperties,\n pink: {\n \"--avatar-background\": tokens.pink3,\n \"--avatar-foreground\": tokens.pinkA12,\n } as React.CSSProperties,\n purple: {\n \"--avatar-background\": tokens.purple3,\n \"--avatar-foreground\": tokens.purpleA12,\n } as React.CSSProperties,\n indigo: {\n \"--avatar-background\": tokens.indigo3,\n \"--avatar-foreground\": tokens.indigoA12,\n } as React.CSSProperties,\n}\n\nconst AvatarGroupContext = React.createContext<{ size?: AvatarSize } | null>(\n null\n)\n\nconst useStyles = makeVoltStyles({\n root: {\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n borderRadius: \"9999px\",\n backgroundColor: \"var(--avatar-background)\",\n color: \"var(--avatar-foreground)\",\n fontWeight: tokens.fontWeightMedium,\n textTransform: \"uppercase\",\n },\n sm: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n },\n base: {\n width: \"2rem\",\n height: \"2rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n lg: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n fontSize: tokens.textBase,\n lineHeight: tokens.leadingBase,\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n },\n fallback: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n },\n})\n\nexport type AvatarProps = Omit<\n React.ComponentProps<typeof AvatarPrimitive.Root>,\n \"className\" | \"color\" | \"children\"\n> & {\n className?: string\n src?: string\n alt?: string\n initials?: string\n color?: AvatarColor\n size?: AvatarSize\n}\n\nexport const Avatar = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(function Avatar(\n { className, src, alt, initials, color, size, style, ...props },\n ref\n) {\n const styles = useStyles()\n const group = React.useContext(AvatarGroupContext)\n const resolvedSize = size ?? group?.size ?? \"base\"\n const resolvedColor = color ?? colorForSeed(alt ?? initials ?? \"\")\n\n return (\n <AvatarPrimitive.Root\n ref={ref}\n data-slot=\"avatar\"\n {...{ [SLOT_ATTR]: \"avatar\" }}\n className={mergeClasses(styles.root, styles[resolvedSize], className)}\n style={{ ...colorVars[resolvedColor], ...style }}\n {...props}\n >\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n {...{ [SLOT_ATTR]: \"avatar-image\" }}\n src={src}\n alt={alt}\n className={styles.image}\n />\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n {...{ [SLOT_ATTR]: \"avatar-fallback\" }}\n className={styles.fallback}\n aria-hidden=\"true\"\n >\n {initials}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n})\n\nexport { AvatarGroupContext }\n"],"names":["ensurePaletteTokens","AUTO_COLORS","colorForSeed","seed","hash","i","colorVars","tokens.gray3","tokens.grayA12","tokens.blue3","tokens.blueA12","tokens.sky3","tokens.skyA12","tokens.cyan3","tokens.cyanA12","tokens.teal3","tokens.tealA12","tokens.mint3","tokens.mintA12","tokens.green3","tokens.greenA12","tokens.lime3","tokens.limeA12","tokens.yellow3","tokens.yellowA12","tokens.orange3","tokens.orangeA12","tokens.bronze3","tokens.bronzeA12","tokens.red3","tokens.redA12","tokens.pink3","tokens.pinkA12","tokens.purple3","tokens.purpleA12","tokens.indigo3","tokens.indigoA12","AvatarGroupContext","React","useStyles","makeVoltStyles","tokens.fontWeightMedium","tokens.textXs","tokens.leadingXs","tokens.textSm","tokens.leadingSm","tokens.textBase","tokens.leadingBase","Avatar","className","src","alt","initials","color","size","style","props","ref","styles","group","resolvedSize","resolvedColor","jsxs","AvatarPrimitive.Root","SLOT_ATTR","mergeClasses","jsx","AvatarPrimitive.Image","AvatarPrimitive.Fallback"],"mappings":"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"}
1
+ {"version":3,"file":"avatar.js","sources":["../../../src/components/avatar/avatar.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { mergeClasses } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport { ensurePaletteTokensFor } from \"../../tokens/install\"\nimport * as tokens from \"../../tokens\"\n\nexport type AvatarColor =\n | \"gray\"\n | \"blue\"\n | \"sky\"\n | \"cyan\"\n | \"teal\"\n | \"mint\"\n | \"green\"\n | \"lime\"\n | \"yellow\"\n | \"orange\"\n | \"bronze\"\n | \"red\"\n | \"pink\"\n | \"purple\"\n | \"indigo\"\nexport type AvatarSize = \"sm\" | \"base\" | \"lg\"\n\nconst AUTO_COLORS: AvatarColor[] = [\n \"blue\",\n \"sky\",\n \"cyan\",\n \"teal\",\n \"mint\",\n \"green\",\n \"lime\",\n \"orange\",\n \"bronze\",\n \"pink\",\n \"purple\",\n \"indigo\",\n]\n\nconst colorForSeed = (seed: string): AvatarColor => {\n let hash = 0\n for (let i = 0; i < seed.length; i++) {\n hash = (hash * 31 + seed.charCodeAt(i)) >>> 0\n }\n return AUTO_COLORS[hash % AUTO_COLORS.length]\n}\n\nconst colorVars: Record<AvatarColor, React.CSSProperties> = {\n gray: {\n \"--avatar-background\": tokens.gray3,\n \"--avatar-foreground\": tokens.grayA12,\n } as React.CSSProperties,\n blue: {\n \"--avatar-background\": tokens.blue3,\n \"--avatar-foreground\": tokens.blueA12,\n } as React.CSSProperties,\n sky: {\n \"--avatar-background\": tokens.sky3,\n \"--avatar-foreground\": tokens.skyA12,\n } as React.CSSProperties,\n cyan: {\n \"--avatar-background\": tokens.cyan3,\n \"--avatar-foreground\": tokens.cyanA12,\n } as React.CSSProperties,\n teal: {\n \"--avatar-background\": tokens.teal3,\n \"--avatar-foreground\": tokens.tealA12,\n } as React.CSSProperties,\n mint: {\n \"--avatar-background\": tokens.mint3,\n \"--avatar-foreground\": tokens.mintA12,\n } as React.CSSProperties,\n green: {\n \"--avatar-background\": tokens.green3,\n \"--avatar-foreground\": tokens.greenA12,\n } as React.CSSProperties,\n lime: {\n \"--avatar-background\": tokens.lime3,\n \"--avatar-foreground\": tokens.limeA12,\n } as React.CSSProperties,\n yellow: {\n \"--avatar-background\": tokens.yellow3,\n \"--avatar-foreground\": tokens.yellowA12,\n } as React.CSSProperties,\n orange: {\n \"--avatar-background\": tokens.orange3,\n \"--avatar-foreground\": tokens.orangeA12,\n } as React.CSSProperties,\n bronze: {\n \"--avatar-background\": tokens.bronze3,\n \"--avatar-foreground\": tokens.bronzeA12,\n } as React.CSSProperties,\n red: {\n \"--avatar-background\": tokens.red3,\n \"--avatar-foreground\": tokens.redA12,\n } as React.CSSProperties,\n pink: {\n \"--avatar-background\": tokens.pink3,\n \"--avatar-foreground\": tokens.pinkA12,\n } as React.CSSProperties,\n purple: {\n \"--avatar-background\": tokens.purple3,\n \"--avatar-foreground\": tokens.purpleA12,\n } as React.CSSProperties,\n indigo: {\n \"--avatar-background\": tokens.indigo3,\n \"--avatar-foreground\": tokens.indigoA12,\n } as React.CSSProperties,\n}\n\nconst AvatarGroupContext = React.createContext<{ size?: AvatarSize } | null>(\n null\n)\n\nconst useStyles = makeVoltStyles({\n root: {\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n overflowX: \"hidden\",\n overflowY: \"hidden\",\n borderRadius: \"9999px\",\n backgroundColor: \"var(--avatar-background)\",\n color: \"var(--avatar-foreground)\",\n fontWeight: tokens.fontWeightMedium,\n textTransform: \"uppercase\",\n },\n sm: {\n width: \"1.5rem\",\n height: \"1.5rem\",\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n },\n base: {\n width: \"2rem\",\n height: \"2rem\",\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n lg: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n fontSize: tokens.textBase,\n lineHeight: tokens.leadingBase,\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n },\n fallback: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n },\n})\n\nexport type AvatarProps = Omit<\n React.ComponentProps<typeof AvatarPrimitive.Root>,\n \"className\" | \"color\" | \"children\"\n> & {\n className?: string\n src?: string\n alt?: string\n initials?: string\n color?: AvatarColor\n size?: AvatarSize\n}\n\nexport const Avatar = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(function Avatar(\n { className, src, alt, initials, color, size, style, ...props },\n ref\n) {\n const styles = useStyles()\n const group = React.useContext(AvatarGroupContext)\n const resolvedSize = size ?? group?.size ?? \"base\"\n const resolvedColor = color ?? colorForSeed(alt ?? initials ?? \"\")\n\n // Was a module-scope call, so merely IMPORTING Avatar installed 63 kB of palette CSS whether one\n // ever rendered. Now it is per-instance and keyed on the resolved family. Every auto colour is\n // decorative, so a seeded avatar still installs the sheet; an explicit `color=\"gray\"` no longer\n // does, and neither does an import that never renders.\n ensurePaletteTokensFor(resolvedColor)\n\n return (\n <AvatarPrimitive.Root\n ref={ref}\n data-slot=\"avatar\"\n {...{ [SLOT_ATTR]: \"avatar\" }}\n className={mergeClasses(styles.root, styles[resolvedSize], className)}\n style={{ ...colorVars[resolvedColor], ...style }}\n {...props}\n >\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n {...{ [SLOT_ATTR]: \"avatar-image\" }}\n src={src}\n alt={alt}\n className={styles.image}\n />\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n {...{ [SLOT_ATTR]: \"avatar-fallback\" }}\n className={styles.fallback}\n aria-hidden=\"true\"\n >\n {initials}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n )\n})\n\nexport { AvatarGroupContext }\n"],"names":["AUTO_COLORS","colorForSeed","seed","hash","i","colorVars","tokens.gray3","tokens.grayA12","tokens.blue3","tokens.blueA12","tokens.sky3","tokens.skyA12","tokens.cyan3","tokens.cyanA12","tokens.teal3","tokens.tealA12","tokens.mint3","tokens.mintA12","tokens.green3","tokens.greenA12","tokens.lime3","tokens.limeA12","tokens.yellow3","tokens.yellowA12","tokens.orange3","tokens.orangeA12","tokens.bronze3","tokens.bronzeA12","tokens.red3","tokens.redA12","tokens.pink3","tokens.pinkA12","tokens.purple3","tokens.purpleA12","tokens.indigo3","tokens.indigoA12","AvatarGroupContext","React","useStyles","makeVoltStyles","tokens.fontWeightMedium","tokens.textXs","tokens.leadingXs","tokens.textSm","tokens.leadingSm","tokens.textBase","tokens.leadingBase","Avatar","className","src","alt","initials","color","size","style","props","ref","styles","group","resolvedSize","resolvedColor","ensurePaletteTokensFor","jsxs","AvatarPrimitive.Root","SLOT_ATTR","mergeClasses","jsx","AvatarPrimitive.Image","AvatarPrimitive.Fallback"],"mappings":"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"}
@@ -5,9 +5,9 @@ import { SLOT_ATTR as S } from "../../packages/volt-runtime/dist/renderer/contra
5
5
  import { mergeClasses as y } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as x } from "../../styles/make-styles.js";
7
7
  import { radiusMd as w, spacingElement3 as R, spacingElement1 as r, textBase as $, radiusSm as C, spacingElement2 as O, textSm as k, textXs as A, errorA8 as B, accentA8 as T, fontWeightNormal as W } from "../../tokens/index.js";
8
- import { ensurePaletteTokens as E } from "../../tokens/install.js";
9
- import { NS as l } from "../../tokens/core.generated.js";
10
- const F = [
8
+ import { ensurePaletteTokensFor as E } from "../../tokens/install.js";
9
+ import { NS as d } from "../../tokens/core.generated.js";
10
+ const V = [
11
11
  "accent",
12
12
  "neutral",
13
13
  "gray",
@@ -29,7 +29,7 @@ const F = [
29
29
  "orange",
30
30
  "yellow",
31
31
  "bronze"
32
- ], n = "--volt2-badge-bg", i = "--volt2-badge-fg", a = "--volt2-badge-bd", d = (e) => e === "neutral" ? "gray" : e, t = (e, o) => `var(--volt2-${l}-sem-${d(e)}-${o})`, I = (e, o) => `var(--volt2-${l}-${d(e)}-${o})`, z = {
32
+ ], n = "--volt2-badge-bg", i = "--volt2-badge-fg", a = "--volt2-badge-bd", m = (e) => e === "neutral" ? "gray" : e, t = (e, o) => `var(--volt2-${d}-sem-${m(e)}-${o})`, I = (e, o) => `var(--volt2-${d}-${m(e)}-${o})`, z = {
33
33
  soft: (e) => ({
34
34
  [n]: t(e, "soft"),
35
35
  [i]: t(e, "default"),
@@ -109,29 +109,29 @@ const F = [
109
109
  }), M = v.forwardRef(
110
110
  function({
111
111
  className: o,
112
- color: m = "accent",
112
+ color: s = "accent",
113
113
  variant: g = "soft",
114
114
  size: p = "base",
115
- style: c,
116
- ...f
115
+ style: f,
116
+ ...c
117
117
  }, u) {
118
- E();
119
- const s = L();
118
+ E(s);
119
+ const l = L();
120
120
  return /* @__PURE__ */ h(
121
121
  "span",
122
122
  {
123
123
  ref: u,
124
124
  "data-slot": "badge",
125
125
  [S]: "badge",
126
- className: y(s.root, s[p], o),
127
- style: { ...z[g](m), ...c },
128
- ...f
126
+ className: y(l.root, l[p], o),
127
+ style: { ...z[g](s), ...f },
128
+ ...c
129
129
  }
130
130
  );
131
131
  }
132
132
  );
133
133
  export {
134
- F as BADGE_COLORS,
134
+ V as BADGE_COLORS,
135
135
  M as Badge
136
136
  };
137
137
  //# sourceMappingURL=badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sources":["../../../src/components/badge/badge.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\"\n\n/**\n * REFERENCE COMPONENT — the colour-matrix collapse. Read this before writing another component\n * that takes a `color` prop.\n *\n * v1 enumerates 20 colours x 3 styles as 60 `compoundVariants`, each a distinct class string like\n * `volt-bg-mint-soft`. Because those names are built by interpolation, Tailwind's scanner cannot\n * see them, which is what `safelist.css` exists to force — 9 lines that emit ~945 rules, 65.6 KB\n * and 59% of v1's entire rule count. The Griffel PoC carried the same shape forward as 60 static\n * style objects.\n *\n * Here the colour is a VALUE, not part of a class name. Three atoms read three custom properties;\n * the component sets those properties inline from the `color` prop. Total rules: one small set per\n * style variant, regardless of how many colours exist. Adding a 22nd palette family costs zero\n * rules.\n *\n * Two consequences worth knowing:\n * - `color` may legitimately arrive from a runtime expression (`getColorForEntityLabel(label)` and\n * `WCAG_BADGE_MAP[level].color` both exist in consumer code today), which no build step can\n * resolve. That is exactly why the palette sheet cannot be statically shaken, and why this\n * component calls `ensurePaletteTokens()`.\n * - Selectors key on SLOT_ATTR, never on `data-slot`. `data-slot` values are shared with v1, so a\n * rule keyed on one also matches v1-rendered DOM — the StyleX track had a v1 icon compute to\n * 0x0 through a green gate this way. `data-slot` is still emitted, purely as a diagnostic.\n */\n\nconst COLORS = [\n \"accent\",\n \"neutral\",\n \"gray\",\n \"success\",\n \"warning\",\n \"error\",\n \"info\",\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] as const\n\nexport type BadgeColor = (typeof COLORS)[number]\nexport type BadgeVariant = \"soft\" | \"solid\" | \"surface\"\nexport type BadgeSize = \"sm\" | \"base\" | \"lg\"\n\n/** The three slots a variant can paint. Set inline; read by the atoms below. */\nconst BG = \"--volt2-badge-bg\"\nconst FG = \"--volt2-badge-fg\"\nconst BD = \"--volt2-badge-bd\"\n\nconst resolveColor = (color: BadgeColor): string =>\n color === \"neutral\" ? \"gray\" : color\n\nconst semantic = (color: BadgeColor, slot: string): string =>\n `var(--volt2-${NS}-sem-${resolveColor(color)}-${slot})`\nconst primitive = (color: BadgeColor, step: string): string =>\n `var(--volt2-${NS}-${resolveColor(color)}-${step})`\n\n/**\n * Which token each variant pulls into each slot. This replaces the 60-entry compound matrix: it is\n * data about three variants, not about 60 combinations.\n */\nconst VARIANT_SLOTS: Record<\n BadgeVariant,\n (color: BadgeColor) => Record<string, string>\n> = {\n soft: (c) => ({\n [BG]: semantic(c, \"soft\"),\n [FG]: semantic(c, \"default\"),\n [BD]: \"transparent\",\n }),\n solid: (c) => ({\n [BG]: semantic(c, \"solid\"),\n [FG]: semantic(c, \"contrast\"),\n [BD]: \"transparent\",\n }),\n surface: (c) => ({\n [BG]: semantic(c, \"surface\"),\n [FG]: semantic(c, \"default\"),\n [BD]: primitive(c, \"a6\"),\n }),\n}\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"fit-content\",\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n overflow: \"hidden\",\n fontWeight: tokens.fontWeightNormal,\n // NEVER write a CSS shorthand in a Griffel style object. Atoms are one declaration each, so a\n // shorthand cannot be resolved against a longhand — `border` and a later `borderColor` would\n // both survive with the winner decided by insertion order. Griffel warns at runtime, which\n // means the mistake ships silently in production where nobody reads the console.\n // `shorthands.*` expands to the individual longhands.\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 transitionProperty: \"color, box-shadow\",\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n // v1 `aria-invalid:outline-error-a8`. Declared after the focus ring so an invalid focused\n // badge paints the error ring, matching v1's variant ordering.\n \"&[aria-invalid]\": {\n outlineColor: tokens.errorA8,\n },\n \"& > svg\": { pointerEvents: \"none\" },\n },\n sm: {\n fontSize: tokens.textXs,\n lineHeight: \"1rem\",\n letterSpacing: \"0.04px\",\n gap: tokens.spacingElement1,\n paddingInline: tokens.spacingElement1,\n minWidth: \"1rem\",\n borderRadius: \"3px\",\n \"& > svg\": { width: \"0.75rem\", height: \"0.75rem\" },\n },\n base: {\n fontSize: tokens.textSm,\n lineHeight: \"1.25rem\",\n gap: tokens.spacingElement1,\n paddingInline: tokens.spacingElement2,\n minWidth: \"1.25rem\",\n borderRadius: tokens.radiusSm,\n \"& > svg\": { width: \"1rem\", height: \"1rem\" },\n },\n lg: {\n fontSize: tokens.textBase,\n lineHeight: \"1.5rem\",\n gap: tokens.spacingElement1,\n paddingInline: tokens.spacingElement3,\n minWidth: \"1.5rem\",\n borderRadius: tokens.radiusMd,\n \"& > svg\": { width: \"1rem\", height: \"1rem\" },\n },\n})\n\nexport type BadgeProps = Omit<React.ComponentProps<\"span\">, \"color\"> & {\n color?: BadgeColor\n /**\n * Named `variant`, not `style`. v1 called this `style`, which shadows the HTML `style` attribute\n * and made a badge unable to take both a visual treatment and an inline style. Retrocompat is\n * not a requirement here, so the collision is fixed rather than inherited.\n */\n variant?: BadgeVariant\n size?: BadgeSize\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n function Badge(\n {\n className,\n color = \"accent\",\n variant = \"soft\",\n size = \"base\",\n style,\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 return (\n <span\n ref={ref}\n data-slot=\"badge\"\n {...{ [SLOT_ATTR]: \"badge\" }}\n className={mergeClasses(styles.root, styles[size], className)}\n style={\n { ...VARIANT_SLOTS[variant](color), ...style } as React.CSSProperties\n }\n {...props}\n />\n )\n }\n)\n\nexport { COLORS as BADGE_COLORS }\n"],"names":["COLORS","BG","FG","BD","resolveColor","color","semantic","slot","NS","primitive","step","VARIANT_SLOTS","c","useStyles","makeVoltStyles","tokens.fontWeightNormal","shorthands","tokens.accentA8","tokens.errorA8","tokens.textXs","tokens.spacingElement1","tokens.textSm","tokens.spacingElement2","tokens.radiusSm","tokens.textBase","tokens.spacingElement3","tokens.radiusMd","Badge","React","className","variant","size","style","props","ref","ensurePaletteTokens","styles","jsx","SLOT_ATTR","mergeClasses"],"mappings":"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"}
1
+ {"version":3,"file":"badge.js","sources":["../../../src/components/badge/badge.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\"\n\n/**\n * REFERENCE COMPONENT — the colour-matrix collapse. Read this before writing another component\n * that takes a `color` prop.\n *\n * v1 enumerates 20 colours x 3 styles as 60 `compoundVariants`, each a distinct class string like\n * `volt-bg-mint-soft`. Because those names are built by interpolation, Tailwind's scanner cannot\n * see them, which is what `safelist.css` exists to force — 9 lines that emit ~945 rules, 65.6 KB\n * and 59% of v1's entire rule count. The Griffel PoC carried the same shape forward as 60 static\n * style objects.\n *\n * Here the colour is a VALUE, not part of a class name. Three atoms read three custom properties;\n * the component sets those properties inline from the `color` prop. Total rules: one small set per\n * style variant, regardless of how many colours exist. Adding a 22nd palette family costs zero\n * rules.\n *\n * Two consequences worth knowing:\n * - `color` may legitimately arrive from a runtime expression (`getColorForEntityLabel(label)` and\n * `WCAG_BADGE_MAP[level].color` both exist in consumer code today), which no build step can\n * resolve. That is exactly why the palette sheet cannot be statically shaken, and why this\n * component calls `ensurePaletteTokens()`.\n * - Selectors key on SLOT_ATTR, never on `data-slot`. `data-slot` values are shared with v1, so a\n * rule keyed on one also matches v1-rendered DOM — the StyleX track had a v1 icon compute to\n * 0x0 through a green gate this way. `data-slot` is still emitted, purely as a diagnostic.\n */\n\nconst COLORS = [\n \"accent\",\n \"neutral\",\n \"gray\",\n \"success\",\n \"warning\",\n \"error\",\n \"info\",\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] as const\n\nexport type BadgeColor = (typeof COLORS)[number]\nexport type BadgeVariant = \"soft\" | \"solid\" | \"surface\"\nexport type BadgeSize = \"sm\" | \"base\" | \"lg\"\n\n/** The three slots a variant can paint. Set inline; read by the atoms below. */\nconst BG = \"--volt2-badge-bg\"\nconst FG = \"--volt2-badge-fg\"\nconst BD = \"--volt2-badge-bd\"\n\nconst resolveColor = (color: BadgeColor): string =>\n color === \"neutral\" ? \"gray\" : color\n\nconst semantic = (color: BadgeColor, slot: string): string =>\n `var(--volt2-${NS}-sem-${resolveColor(color)}-${slot})`\nconst primitive = (color: BadgeColor, step: string): string =>\n `var(--volt2-${NS}-${resolveColor(color)}-${step})`\n\n/**\n * Which token each variant pulls into each slot. This replaces the 60-entry compound matrix: it is\n * data about three variants, not about 60 combinations.\n */\nconst VARIANT_SLOTS: Record<\n BadgeVariant,\n (color: BadgeColor) => Record<string, string>\n> = {\n soft: (c) => ({\n [BG]: semantic(c, \"soft\"),\n [FG]: semantic(c, \"default\"),\n [BD]: \"transparent\",\n }),\n solid: (c) => ({\n [BG]: semantic(c, \"solid\"),\n [FG]: semantic(c, \"contrast\"),\n [BD]: \"transparent\",\n }),\n surface: (c) => ({\n [BG]: semantic(c, \"surface\"),\n [FG]: semantic(c, \"default\"),\n [BD]: primitive(c, \"a6\"),\n }),\n}\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"fit-content\",\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n overflow: \"hidden\",\n fontWeight: tokens.fontWeightNormal,\n // NEVER write a CSS shorthand in a Griffel style object. Atoms are one declaration each, so a\n // shorthand cannot be resolved against a longhand — `border` and a later `borderColor` would\n // both survive with the winner decided by insertion order. Griffel warns at runtime, which\n // means the mistake ships silently in production where nobody reads the console.\n // `shorthands.*` expands to the individual longhands.\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 transitionProperty: \"color, box-shadow\",\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n // v1 `aria-invalid:outline-error-a8`. Declared after the focus ring so an invalid focused\n // badge paints the error ring, matching v1's variant ordering.\n \"&[aria-invalid]\": {\n outlineColor: tokens.errorA8,\n },\n \"& > svg\": { pointerEvents: \"none\" },\n },\n sm: {\n fontSize: tokens.textXs,\n lineHeight: \"1rem\",\n letterSpacing: \"0.04px\",\n gap: tokens.spacingElement1,\n paddingInline: tokens.spacingElement1,\n minWidth: \"1rem\",\n borderRadius: \"3px\",\n \"& > svg\": { width: \"0.75rem\", height: \"0.75rem\" },\n },\n base: {\n fontSize: tokens.textSm,\n lineHeight: \"1.25rem\",\n gap: tokens.spacingElement1,\n paddingInline: tokens.spacingElement2,\n minWidth: \"1.25rem\",\n borderRadius: tokens.radiusSm,\n \"& > svg\": { width: \"1rem\", height: \"1rem\" },\n },\n lg: {\n fontSize: tokens.textBase,\n lineHeight: \"1.5rem\",\n gap: tokens.spacingElement1,\n paddingInline: tokens.spacingElement3,\n minWidth: \"1.5rem\",\n borderRadius: tokens.radiusMd,\n \"& > svg\": { width: \"1rem\", height: \"1rem\" },\n },\n})\n\nexport type BadgeProps = Omit<React.ComponentProps<\"span\">, \"color\"> & {\n color?: BadgeColor\n /**\n * Named `variant`, not `style`. v1 called this `style`, which shadows the HTML `style` attribute\n * and made a badge unable to take both a visual treatment and an inline style. Retrocompat is\n * not a requirement here, so the collision is fixed rather than inherited.\n */\n variant?: BadgeVariant\n size?: BadgeSize\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n function Badge(\n {\n className,\n color = \"accent\",\n variant = \"soft\",\n size = \"base\",\n style,\n ...props\n },\n ref\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 a core one needs no\n // palette sheet.\n ensurePaletteTokensFor(color)\n\n const styles = useStyles()\n\n return (\n <span\n ref={ref}\n data-slot=\"badge\"\n {...{ [SLOT_ATTR]: \"badge\" }}\n className={mergeClasses(styles.root, styles[size], className)}\n style={\n { ...VARIANT_SLOTS[variant](color), ...style } as React.CSSProperties\n }\n {...props}\n />\n )\n }\n)\n\nexport { COLORS as BADGE_COLORS }\n"],"names":["COLORS","BG","FG","BD","resolveColor","color","semantic","slot","NS","primitive","step","VARIANT_SLOTS","c","useStyles","makeVoltStyles","tokens.fontWeightNormal","shorthands","tokens.accentA8","tokens.errorA8","tokens.textXs","tokens.spacingElement1","tokens.textSm","tokens.spacingElement2","tokens.radiusSm","tokens.textBase","tokens.spacingElement3","tokens.radiusMd","Badge","React","className","variant","size","style","props","ref","ensurePaletteTokensFor","styles","jsx","SLOT_ATTR","mergeClasses"],"mappings":"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"}
@@ -4,16 +4,16 @@ import { shorthands as u } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as c } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as p } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as B } from "../../styles/make-styles.js";
7
- import { semGrayDefault as b, fontWeightSemibold as f, accentA8 as L, semGrayLight as g, leadingBase as R, textBase as S, spacingElement1 as I, spacingElement2 as N } from "../../tokens/index.js";
7
+ import { spacingElement1 as L, spacingElement2 as R, semGrayDefault as b, fontWeightSemibold as f, accentA8 as S, semGrayLight as g, leadingBase as I, textBase as N } from "../../tokens/index.js";
8
8
  import { Root as T } from "../../vendor/@radix-ui/react-slot/dist/index.js";
9
9
  const h = B({
10
10
  list: {
11
11
  display: "flex",
12
12
  alignItems: "center",
13
13
  // gap-2
14
- ...u.gap(N),
15
- fontSize: S,
16
- lineHeight: R
14
+ ...u.gap(R),
15
+ fontSize: N,
16
+ lineHeight: I
17
17
  },
18
18
  separator: {
19
19
  color: g
@@ -22,7 +22,7 @@ const h = B({
22
22
  display: "inline-flex",
23
23
  alignItems: "center",
24
24
  // gap-1
25
- ...u.gap(I)
25
+ ...u.gap(L)
26
26
  },
27
27
  link: {
28
28
  fontWeight: f,
@@ -39,7 +39,7 @@ const h = B({
39
39
  outlineWidth: "2px",
40
40
  outlineStyle: "solid",
41
41
  outlineOffset: "2px",
42
- outlineColor: L
42
+ outlineColor: S
43
43
  }
44
44
  },
45
45
  page: {
@@ -4,14 +4,14 @@ import { shorthands as o } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as y } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as x } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as w } from "../../styles/make-styles.js";
7
- import { radiusLg as A, leadingLg as H, textLg as B, leadingBase as R, textBase as E, leadingSm as L, textSm as z, leadingXs as I, textXs as D, errorA8 as t, semErrorSoft as s, errorA11 as l, semErrorSoftHover as X, semErrorSolidHover as a, semErrorContrast as T, semErrorSolid as W, grayA8 as j, semAccentSoft as i, grayA12 as O, accentA8 as n, accentA11 as c, semAccentSoftHover as N, semAccentSolidHover as m, semAccentContrast as P, semAccentSolid as Q, fontWeightSemibold as V, spacingElement3 as _ } from "../../tokens/index.js";
7
+ import { spacingElement3 as A, radiusLg as H, leadingLg as B, textLg as R, leadingBase as E, textBase as L, leadingSm as z, textSm as I, leadingXs as D, textXs as X, errorA8 as t, semErrorSoft as s, errorA11 as l, semErrorSoftHover as T, semErrorSolidHover as a, semErrorContrast as W, semErrorSolid as j, grayA8 as O, semAccentSoft as i, grayA12 as N, accentA8 as n, accentA11 as c, semAccentSoftHover as P, semAccentSolidHover as m, semAccentContrast as Q, semAccentSolid as V, fontWeightSemibold as _ } from "../../tokens/index.js";
8
8
  import { Root as $ } from "../../vendor/@radix-ui/react-slot/dist/index.js";
9
9
  const q = "button", F = w({
10
10
  root: {
11
11
  display: "inline-flex",
12
12
  alignItems: "center",
13
13
  justifyContent: "center",
14
- fontWeight: V,
14
+ fontWeight: _,
15
15
  whiteSpace: "nowrap",
16
16
  transitionProperty: "all",
17
17
  cursor: "pointer",
@@ -29,8 +29,8 @@ const q = "button", F = w({
29
29
  }
30
30
  },
31
31
  primary: {
32
- backgroundColor: Q,
33
- color: P,
32
+ backgroundColor: V,
33
+ color: Q,
34
34
  ":hover": { backgroundColor: m },
35
35
  ":active": { backgroundColor: m },
36
36
  ":focus-visible": { outlineColor: n }
@@ -38,7 +38,7 @@ const q = "button", F = w({
38
38
  secondary: {
39
39
  backgroundColor: i,
40
40
  color: c,
41
- ":hover": { backgroundColor: N },
41
+ ":hover": { backgroundColor: P },
42
42
  ":focus-visible": { outlineColor: n }
43
43
  },
44
44
  tertiary: {
@@ -49,13 +49,13 @@ const q = "button", F = w({
49
49
  },
50
50
  ghost: {
51
51
  backgroundColor: "transparent",
52
- color: O,
52
+ color: N,
53
53
  ":hover": { backgroundColor: i },
54
- ":focus-visible": { outlineColor: j }
54
+ ":focus-visible": { outlineColor: O }
55
55
  },
56
56
  primaryDestructive: {
57
- backgroundColor: W,
58
- color: T,
57
+ backgroundColor: j,
58
+ color: W,
59
59
  ":hover": { backgroundColor: a },
60
60
  ":active": { backgroundColor: a },
61
61
  ":focus-visible": { outlineColor: t }
@@ -63,7 +63,7 @@ const q = "button", F = w({
63
63
  secondaryDestructive: {
64
64
  backgroundColor: s,
65
65
  color: l,
66
- ":hover": { backgroundColor: X },
66
+ ":hover": { backgroundColor: T },
67
67
  ":focus-visible": { outlineColor: t }
68
68
  },
69
69
  tertiaryDestructive: {
@@ -76,17 +76,17 @@ const q = "button", F = w({
76
76
  ...o.paddingInline("0.5rem"),
77
77
  ...o.paddingBlock("0.25rem"),
78
78
  minHeight: "1.25rem",
79
- fontSize: D,
80
- lineHeight: I,
79
+ fontSize: X,
80
+ lineHeight: D,
81
81
  gap: "4px",
82
82
  "& svg": { width: "0.75rem", height: "0.75rem" }
83
83
  },
84
84
  sm: {
85
- ...o.paddingInline(_),
85
+ ...o.paddingInline(A),
86
86
  ...o.paddingBlock("0.25rem"),
87
87
  minHeight: "1.5rem",
88
- fontSize: z,
89
- lineHeight: L,
88
+ fontSize: I,
89
+ lineHeight: z,
90
90
  gap: "0.375rem",
91
91
  "& svg": { width: "0.875rem", height: "0.875rem" }
92
92
  },
@@ -94,8 +94,8 @@ const q = "button", F = w({
94
94
  ...o.paddingInline("1rem"),
95
95
  ...o.paddingBlock("0.25rem"),
96
96
  minHeight: "2rem",
97
- fontSize: E,
98
- lineHeight: R,
97
+ fontSize: L,
98
+ lineHeight: E,
99
99
  gap: "0.5rem",
100
100
  "& svg": { width: "1rem", height: "1rem" }
101
101
  },
@@ -103,8 +103,8 @@ const q = "button", F = w({
103
103
  ...o.paddingInline("1.25rem"),
104
104
  ...o.paddingBlock("0.25rem"),
105
105
  minHeight: "2.5rem",
106
- fontSize: B,
107
- lineHeight: H,
106
+ fontSize: R,
107
+ lineHeight: B,
108
108
  gap: "0.5rem",
109
109
  "& svg": { width: "1rem", height: "1rem" }
110
110
  },
@@ -128,7 +128,7 @@ const q = "button", F = w({
128
128
  height: "2.5rem",
129
129
  "& svg": { width: "1.5rem", height: "1.5rem" }
130
130
  },
131
- normal: { borderRadius: A },
131
+ normal: { borderRadius: H },
132
132
  rounded: { borderRadius: "9999px" }
133
133
  }), ro = k.forwardRef(
134
134
  function({
@@ -4,7 +4,7 @@ import { shorthands as o } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as s } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as d } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as c } from "../../styles/make-styles.js";
7
- import { spacingElement3 as g, spacingGroup2 as f, grayA5 as h, fontWeightMedium as b, leadingSm as x, textSm as R, grayA4 as S, radiusMd as v, spacingElement2 as m } from "../../tokens/index.js";
7
+ import { spacingElement3 as g, spacingGroup2 as f, grayA5 as h, radiusMd as b, spacingElement2 as m, fontWeightMedium as x, leadingSm as R, textSm as S, grayA4 as v } from "../../tokens/index.js";
8
8
  import { Separator as y } from "../separator/separator.js";
9
9
  const u = c({
10
10
  root: {
@@ -43,16 +43,16 @@ const u = c({
43
43
  }
44
44
  },
45
45
  text: {
46
- backgroundColor: S,
46
+ backgroundColor: v,
47
47
  display: "flex",
48
48
  alignItems: "center",
49
49
  ...o.gap(m),
50
- ...o.borderRadius(v),
50
+ ...o.borderRadius(b),
51
51
  ...o.border("1px", "solid", h),
52
52
  ...o.padding(g, f),
53
- fontSize: R,
54
- lineHeight: x,
55
- fontWeight: b,
53
+ fontSize: S,
54
+ lineHeight: R,
55
+ fontWeight: x,
56
56
  // Tailwind `shadow-xs` — literal per CONVENTIONS B7
57
57
  boxShadow: "0 1px 2px 0 #0000000d",
58
58
  "& svg": {
@@ -4,7 +4,7 @@ import { shorthands as y } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as C } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as g } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as k } from "../../styles/make-styles.js";
7
- import { spacingGroup2 as w, spacingLayout1 as I, spacingElement2 as v, spacingLayout2 as E, leadingSm as S, textSm as R, fontWeightSemibold as N, leadingBase as $, textBase as j, spacingElement3 as c, spacingElement1 as G } from "../../tokens/index.js";
7
+ import { spacingElement1 as E, spacingGroup2 as w, spacingLayout1 as I, spacingElement2 as v, spacingLayout2 as N, leadingSm as S, textSm as R, fontWeightSemibold as $, leadingBase as j, textBase as G, spacingElement3 as c } from "../../tokens/index.js";
8
8
  import { ClearButton as H } from "../../lib/clear-button.js";
9
9
  import { CloseIcon as W } from "../../lib/icons.js";
10
10
  import { NS as A } from "../../tokens/core.generated.js";
@@ -138,15 +138,15 @@ const O = a.forwardRef(
138
138
  WebkitLineClamp: 1,
139
139
  // min-h-4
140
140
  minHeight: w,
141
- fontSize: j,
142
- lineHeight: $,
143
- fontWeight: N
141
+ fontSize: G,
142
+ lineHeight: j,
143
+ fontWeight: $
144
144
  },
145
145
  description: {
146
146
  gridColumnStart: 2,
147
147
  display: "grid",
148
148
  justifyItems: "start",
149
- ...y.gap(G),
149
+ ...y.gap(E),
150
150
  fontSize: R,
151
151
  lineHeight: S,
152
152
  "& p": {
@@ -167,7 +167,7 @@ const O = a.forwardRef(
167
167
  actionStartIcon: {
168
168
  justifyContent: "flex-start",
169
169
  // ml-8
170
- marginLeft: E
170
+ marginLeft: N
171
171
  },
172
172
  actionEnd: {
173
173
  justifyContent: "flex-end"
@@ -4,14 +4,14 @@ import { shorthands as f } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as d } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as s } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as p } from "../../styles/make-styles.js";
7
- import { spacingGroup2 as e, leadingSm as m, textSm as g, grayA11 as u, fontWeightSemibold as C, body as y, spacingElement2 as R, radiusXl as h } from "../../tokens/index.js";
7
+ import { spacingElement2 as m, radiusXl as g, spacingGroup2 as e, leadingSm as u, textSm as C, grayA11 as y, fontWeightSemibold as R, body as h } from "../../tokens/index.js";
8
8
  const c = p({
9
9
  root: {
10
- backgroundColor: y,
10
+ backgroundColor: h,
11
11
  display: "flex",
12
12
  flexDirection: "column",
13
13
  ...f.gap(e),
14
- ...f.borderRadius(h),
14
+ ...f.borderRadius(g),
15
15
  ...f.border("1px", "solid", "transparent"),
16
16
  paddingTop: e,
17
17
  paddingBottom: e,
@@ -24,7 +24,7 @@ const c = p({
24
24
  gridAutoRows: "min-content",
25
25
  gridTemplateRows: "auto auto",
26
26
  alignItems: "start",
27
- ...f.gap(R),
27
+ ...f.gap(m),
28
28
  paddingLeft: e,
29
29
  paddingRight: e,
30
30
  "&:is(.border-b)": {
@@ -37,12 +37,12 @@ const c = p({
37
37
  title: {
38
38
  // v1 `leading-none` — a literal 1 because no token exists for it.
39
39
  lineHeight: 1,
40
- fontWeight: C
40
+ fontWeight: R
41
41
  },
42
42
  description: {
43
- color: u,
44
- fontSize: g,
45
- lineHeight: m
43
+ color: y,
44
+ fontSize: C,
45
+ lineHeight: u
46
46
  },
47
47
  action: {
48
48
  gridColumnStart: 2,
@@ -4,7 +4,7 @@ import { shorthands as y } from "../../packages/volt-runtime/dist/vendor/@griffe
4
4
  import { SLOT_ATTR as m } from "../../packages/volt-runtime/dist/renderer/contract.js";
5
5
  import { mergeClasses as x } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
6
6
  import { makeVoltStyles as P } from "../../styles/make-styles.js";
7
- import { spacingGroup2 as M, body as z, spacingElement3 as B, radius2xl as X } from "../../tokens/index.js";
7
+ import { spacingGroup2 as M, spacingElement3 as z, radius2xl as B, body as X } from "../../tokens/index.js";
8
8
  const D = e.createContext(null);
9
9
  function k() {
10
10
  const u = e.useContext(D);
@@ -36,8 +36,8 @@ const S = P({
36
36
  height: "100%",
37
37
  // v1 z-50; floating panel layer above collapsed sidebar.
38
38
  zIndex: 50,
39
- ...y.borderRadius(X),
40
- backgroundColor: z,
39
+ ...y.borderRadius(B),
40
+ backgroundColor: X,
41
41
  // v1 shadow-[0_4px_20px_rgba(0,0,0,0.15)]; no shadow token exists in this package.
42
42
  boxShadow: "0 4px 20px rgba(0, 0, 0, 0.15)",
43
43
  display: "flex",
@@ -63,7 +63,7 @@ const S = P({
63
63
  alignItems: "center",
64
64
  paddingTop: M,
65
65
  // v1 gap-3 is 0.75rem; no spacing token for 0.75rem exists in this package.
66
- ...y.gap(B),
66
+ ...y.gap(z),
67
67
  flexGrow: 1,
68
68
  flexShrink: 1,
69
69
  flexBasis: "0%"