@brycks/core-front 0.3.2 → 0.3.4

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 (48) hide show
  1. package/dist/components/feedback/Alert/Alert.cjs +1 -1
  2. package/dist/components/feedback/Alert/Alert.cjs.map +1 -1
  3. package/dist/components/feedback/Alert/Alert.js +52 -177
  4. package/dist/components/feedback/Alert/Alert.js.map +1 -1
  5. package/dist/components/feedback/Modal/Modal.cjs +1 -1
  6. package/dist/components/feedback/Modal/Modal.cjs.map +1 -1
  7. package/dist/components/feedback/Modal/Modal.js +7 -6
  8. package/dist/components/feedback/Modal/Modal.js.map +1 -1
  9. package/dist/components/form/Checkbox/Checkbox.cjs +1 -1
  10. package/dist/components/form/Checkbox/Checkbox.js +12 -12
  11. package/dist/components/form/Input/Input.cjs +1 -1
  12. package/dist/components/form/Input/Input.js +13 -13
  13. package/dist/components/form/Slider/Slider.cjs +1 -1
  14. package/dist/components/form/Slider/Slider.js +1 -1
  15. package/dist/components/form/Switch/Switch.cjs +1 -1
  16. package/dist/components/form/Switch/Switch.cjs.map +1 -1
  17. package/dist/components/form/Switch/Switch.js +70 -105
  18. package/dist/components/form/Switch/Switch.js.map +1 -1
  19. package/dist/components/layout/Card/Card.cjs +1 -1
  20. package/dist/components/layout/Card/Card.cjs.map +1 -1
  21. package/dist/components/layout/Card/Card.js +59 -121
  22. package/dist/components/layout/Card/Card.js.map +1 -1
  23. package/dist/components/navigation/Dropdown/Dropdown.cjs +1 -6
  24. package/dist/components/navigation/Dropdown/Dropdown.cjs.map +1 -1
  25. package/dist/components/navigation/Dropdown/Dropdown.js +118 -183
  26. package/dist/components/navigation/Dropdown/Dropdown.js.map +1 -1
  27. package/dist/components/navigation/Menu/Menu.cjs +1 -1
  28. package/dist/components/navigation/Menu/Menu.js +5 -5
  29. package/dist/components/navigation/Tabs/Tabs.cjs +1 -6
  30. package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -1
  31. package/dist/components/navigation/Tabs/Tabs.js +92 -162
  32. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  33. package/dist/components/primitives/Button/Button.cjs +1 -1
  34. package/dist/components/primitives/Button/Button.cjs.map +1 -1
  35. package/dist/components/primitives/Button/Button.js +72 -96
  36. package/dist/components/primitives/Button/Button.js.map +1 -1
  37. package/dist/components/primitives/Button/Button.styles.cjs +1 -1
  38. package/dist/components/primitives/Button/Button.styles.cjs.map +1 -1
  39. package/dist/components/primitives/Button/Button.styles.js +8 -317
  40. package/dist/components/primitives/Button/Button.styles.js.map +1 -1
  41. package/dist/components/utility/Badge/Badge.cjs +1 -1
  42. package/dist/components/utility/Badge/Badge.cjs.map +1 -1
  43. package/dist/components/utility/Badge/Badge.js +23 -80
  44. package/dist/components/utility/Badge/Badge.js.map +1 -1
  45. package/dist/feedback.d.ts +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/styles.css +1 -1
  48. package/package.json +1 -1
@@ -1,321 +1,12 @@
1
- import { componentGap as c, iconSizes as n, componentPaddingX as i, componentHeights as d } from "../../../design-system/primitives/sizing.js";
2
- import { transition as h } from "../../../design-system/primitives/transitions.js";
3
- import { componentLineHeight as f, componentFontWeight as m } from "../../../design-system/primitives/typography.js";
4
- import { stateOpacity as x, scale as p } from "../../../design-system/primitives/opacity.js";
5
- const B = {
6
- xs: {
7
- height: d.xs,
8
- paddingX: i.xs,
9
- fontSize: "var(--brycks-fs-ui-xs)",
10
- iconSize: n.xs,
11
- gap: c.xs,
12
- radius: "var(--brycks-radius-md)"
13
- },
14
- sm: {
15
- height: d.sm,
16
- paddingX: i.sm,
17
- fontSize: "var(--brycks-fs-ui-sm)",
18
- iconSize: n.sm,
19
- gap: c.sm,
20
- radius: "var(--brycks-radius-md)"
21
- },
22
- md: {
23
- height: d.md,
24
- paddingX: i.md,
25
- fontSize: "var(--brycks-fs-ui-md)",
26
- iconSize: n.md,
27
- gap: c.md,
28
- radius: "var(--brycks-radius-default)"
29
- },
30
- lg: {
31
- height: d.lg,
32
- paddingX: i.lg,
33
- fontSize: "var(--brycks-fs-ui-lg)",
34
- iconSize: n.lg,
35
- gap: c.md,
36
- radius: "var(--brycks-radius-lg)"
37
- },
38
- xl: {
39
- height: d.xl,
40
- paddingX: i.xl,
41
- fontSize: "var(--brycks-fs-ui-xl)",
42
- iconSize: n.xl,
43
- gap: c.lg,
44
- radius: "var(--brycks-radius-xl)"
45
- }
46
- }, C = {
47
- primary: {
48
- solid: {
49
- bg: "var(--brycks-primary-default)",
50
- hoverBg: "var(--brycks-primary-hover)",
51
- activeBg: "var(--brycks-primary-active)",
52
- text: "var(--brycks-primary-foreground)"
53
- },
54
- outline: {
55
- border: "var(--brycks-primary-default)",
56
- hoverBg: "var(--brycks-primary-muted)",
57
- text: "var(--brycks-primary-default)"
58
- },
59
- ghost: {
60
- hoverBg: "var(--brycks-primary-muted)",
61
- text: "var(--brycks-primary-default)"
62
- },
63
- soft: {
64
- bg: "var(--brycks-primary-muted)",
65
- hoverBg: "var(--brycks-primary-soft-hover)",
66
- text: "var(--brycks-primary-default)"
67
- },
68
- link: {
69
- text: "var(--brycks-primary-default)",
70
- hoverText: "var(--brycks-primary-hover)"
71
- }
72
- },
73
- accent: {
74
- solid: {
75
- bg: "var(--brycks-accent-default)",
76
- hoverBg: "var(--brycks-accent-hover)",
77
- activeBg: "var(--brycks-accent-active)",
78
- text: "var(--brycks-accent-foreground)"
79
- },
80
- outline: {
81
- border: "var(--brycks-accent-default)",
82
- hoverBg: "var(--brycks-accent-muted)",
83
- text: "var(--brycks-accent-default)"
84
- },
85
- ghost: {
86
- hoverBg: "var(--brycks-accent-muted)",
87
- text: "var(--brycks-accent-default)"
88
- },
89
- soft: {
90
- bg: "var(--brycks-accent-muted)",
91
- hoverBg: "var(--brycks-accent-soft-hover)",
92
- text: "var(--brycks-accent-default)"
93
- },
94
- link: {
95
- text: "var(--brycks-accent-default)",
96
- hoverText: "var(--brycks-accent-hover)"
97
- }
98
- },
99
- neutral: {
100
- solid: {
101
- bg: "var(--brycks-foreground-default)",
102
- hoverBg: "var(--brycks-foreground-muted)",
103
- activeBg: "var(--brycks-foreground-subtle)",
104
- text: "var(--brycks-background-app)"
105
- },
106
- outline: {
107
- border: "var(--brycks-border-strong)",
108
- hoverBg: "var(--brycks-background-muted)",
109
- text: "var(--brycks-foreground-default)"
110
- },
111
- ghost: {
112
- hoverBg: "var(--brycks-background-muted)",
113
- text: "var(--brycks-foreground-default)"
114
- },
115
- soft: {
116
- bg: "var(--brycks-background-muted)",
117
- hoverBg: "var(--brycks-background-subtle)",
118
- text: "var(--brycks-foreground-default)"
119
- },
120
- link: {
121
- text: "var(--brycks-foreground-default)",
122
- hoverText: "var(--brycks-foreground-muted)"
123
- }
124
- },
125
- success: {
126
- solid: {
127
- bg: "var(--brycks-success-default)",
128
- hoverBg: "var(--brycks-success-hover)",
129
- activeBg: "var(--brycks-success-hover)",
130
- text: "var(--brycks-success-foreground)"
131
- },
132
- outline: {
133
- border: "var(--brycks-success-default)",
134
- hoverBg: "var(--brycks-success-muted)",
135
- text: "var(--brycks-success-default)"
136
- },
137
- ghost: {
138
- hoverBg: "var(--brycks-success-muted)",
139
- text: "var(--brycks-success-default)"
140
- },
141
- soft: {
142
- bg: "var(--brycks-success-muted)",
143
- hoverBg: "var(--brycks-success-soft-hover)",
144
- text: "var(--brycks-success-default)"
145
- },
146
- link: {
147
- text: "var(--brycks-success-default)",
148
- hoverText: "var(--brycks-success-hover)"
149
- }
150
- },
151
- warning: {
152
- solid: {
153
- bg: "var(--brycks-warning-default)",
154
- hoverBg: "var(--brycks-warning-hover)",
155
- activeBg: "var(--brycks-warning-hover)",
156
- text: "var(--brycks-warning-foreground)"
157
- },
158
- outline: {
159
- border: "var(--brycks-warning-default)",
160
- hoverBg: "var(--brycks-warning-muted)",
161
- text: "var(--brycks-warning-default)"
162
- },
163
- ghost: {
164
- hoverBg: "var(--brycks-warning-muted)",
165
- text: "var(--brycks-warning-default)"
166
- },
167
- soft: {
168
- bg: "var(--brycks-warning-muted)",
169
- hoverBg: "var(--brycks-warning-soft-hover)",
170
- text: "var(--brycks-warning-default)"
171
- },
172
- link: {
173
- text: "var(--brycks-warning-default)",
174
- hoverText: "var(--brycks-warning-hover)"
175
- }
176
- },
177
- error: {
178
- solid: {
179
- bg: "var(--brycks-error-default)",
180
- hoverBg: "var(--brycks-error-hover)",
181
- activeBg: "var(--brycks-error-hover)",
182
- text: "var(--brycks-error-foreground)"
183
- },
184
- outline: {
185
- border: "var(--brycks-error-default)",
186
- hoverBg: "var(--brycks-error-muted)",
187
- text: "var(--brycks-error-default)"
188
- },
189
- ghost: {
190
- hoverBg: "var(--brycks-error-muted)",
191
- text: "var(--brycks-error-default)"
192
- },
193
- soft: {
194
- bg: "var(--brycks-error-muted)",
195
- hoverBg: "var(--brycks-error-soft-hover)",
196
- text: "var(--brycks-error-default)"
197
- },
198
- link: {
199
- text: "var(--brycks-error-default)",
200
- hoverText: "var(--brycks-error-hover)"
201
- }
202
- }
1
+ import { iconSizes as i } from "../../../design-system/primitives/sizing.js";
2
+ const e = {
3
+ xs: { iconSize: i.xs },
4
+ sm: { iconSize: i.sm },
5
+ md: { iconSize: i.md },
6
+ lg: { iconSize: i.lg },
7
+ xl: { iconSize: i.xl }
203
8
  };
204
- function X(g) {
205
- const { variant: a, intent: u, size: l, fullWidth: k, isIconOnly: b } = g, t = B[l], e = C[u][a], s = {
206
- display: "inline-flex",
207
- alignItems: "center",
208
- justifyContent: "center",
209
- gap: t.gap,
210
- height: t.height,
211
- minWidth: b ? t.height : void 0,
212
- width: k ? "100%" : void 0,
213
- padding: b ? 0 : `0 ${t.paddingX}px`,
214
- fontSize: t.fontSize,
215
- fontWeight: m.medium,
216
- fontFamily: "var(--brycks-font-sans)",
217
- lineHeight: f.none,
218
- borderRadius: t.radius,
219
- border: "none",
220
- outline: "none",
221
- cursor: "pointer",
222
- userSelect: "none",
223
- textDecoration: "none",
224
- transition: h.quick,
225
- WebkitTapHighlightColor: "transparent"
226
- };
227
- switch (a) {
228
- case "solid": {
229
- const r = e;
230
- Object.assign(s, {
231
- backgroundColor: r.bg,
232
- color: r.text,
233
- boxShadow: "var(--brycks-shadow-xs)"
234
- });
235
- break;
236
- }
237
- case "outline": {
238
- const r = e;
239
- Object.assign(s, {
240
- backgroundColor: "transparent",
241
- color: r.text,
242
- border: `1px solid ${r.border}`
243
- });
244
- break;
245
- }
246
- case "ghost": {
247
- Object.assign(s, {
248
- backgroundColor: "transparent",
249
- color: e.text
250
- });
251
- break;
252
- }
253
- case "soft": {
254
- const r = e;
255
- Object.assign(s, {
256
- backgroundColor: r.bg,
257
- color: r.text
258
- });
259
- break;
260
- }
261
- case "link": {
262
- Object.assign(s, {
263
- backgroundColor: "transparent",
264
- color: e.text,
265
- height: "auto",
266
- padding: 0,
267
- borderRadius: 0
268
- });
269
- break;
270
- }
271
- }
272
- const o = {};
273
- switch (a) {
274
- case "solid": {
275
- const r = e;
276
- o.backgroundColor = r.hoverBg, o.boxShadow = "var(--brycks-shadow-sm)";
277
- break;
278
- }
279
- case "outline": {
280
- const r = e;
281
- o.backgroundColor = r.hoverBg;
282
- break;
283
- }
284
- case "ghost": {
285
- const r = e;
286
- o.backgroundColor = r.hoverBg;
287
- break;
288
- }
289
- case "soft": {
290
- const r = e;
291
- o.backgroundColor = r.hoverBg;
292
- break;
293
- }
294
- case "link": {
295
- const r = e;
296
- o.color = r.hoverText, o.textDecoration = "underline";
297
- break;
298
- }
299
- }
300
- const v = {
301
- transform: a !== "link" ? `scale(${p.pressed})` : void 0
302
- };
303
- if (a === "solid") {
304
- const r = e;
305
- v.backgroundColor = r.activeBg, v.boxShadow = "var(--brycks-shadow-xs)";
306
- }
307
- const y = {
308
- opacity: x.disabled,
309
- cursor: "not-allowed",
310
- pointerEvents: "none"
311
- };
312
- return { base: s, hover: o, active: v, disabled: y, loading: {
313
- cursor: "wait",
314
- pointerEvents: "none"
315
- } };
316
- }
317
9
  export {
318
- X as getButtonStyles,
319
- B as sizeConfig
10
+ e as sizeConfig
320
11
  };
321
12
  //# sourceMappingURL=Button.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.styles.js","sources":["../../../../src/components/primitives/Button/Button.styles.ts"],"sourcesContent":["/**\r\n * Button Component Styles\r\n *\r\n * Apple-inspired button styles with smooth transitions and tactile feedback.\r\n * All values derive from the design system - NO hardcoded values.\r\n *\r\n * @module components/primitives/Button\r\n */\r\n\r\nimport type { CSSProperties } from 'react'\r\nimport type { ButtonVariant, ButtonIntent, ButtonSize } from './Button.types'\r\nimport {\r\n componentHeights,\r\n componentPaddingX,\r\n componentGap,\r\n iconSizes,\r\n componentFontWeight,\r\n componentLineHeight,\r\n transition,\r\n stateOpacity,\r\n scale,\r\n} from '../../../design-system'\r\n\r\n/**\r\n * Size dimension values - derived from design system primitives\r\n * Uses CSS variables for font sizes to enable dynamic scaling\r\n */\r\nconst sizeConfig: Record<\r\n ButtonSize,\r\n {\r\n height: number\r\n paddingX: number\r\n fontSize: string\r\n iconSize: number\r\n gap: number\r\n radius: string\r\n }\r\n> = {\r\n xs: {\r\n height: componentHeights.xs,\r\n paddingX: componentPaddingX.xs,\r\n fontSize: 'var(--brycks-fs-ui-xs)',\r\n iconSize: iconSizes.xs,\r\n gap: componentGap.xs,\r\n radius: 'var(--brycks-radius-md)',\r\n },\r\n sm: {\r\n height: componentHeights.sm,\r\n paddingX: componentPaddingX.sm,\r\n fontSize: 'var(--brycks-fs-ui-sm)',\r\n iconSize: iconSizes.sm,\r\n gap: componentGap.sm,\r\n radius: 'var(--brycks-radius-md)',\r\n },\r\n md: {\r\n height: componentHeights.md,\r\n paddingX: componentPaddingX.md,\r\n fontSize: 'var(--brycks-fs-ui-md)',\r\n iconSize: iconSizes.md,\r\n gap: componentGap.md,\r\n radius: 'var(--brycks-radius-default)',\r\n },\r\n lg: {\r\n height: componentHeights.lg,\r\n paddingX: componentPaddingX.lg,\r\n fontSize: 'var(--brycks-fs-ui-lg)',\r\n iconSize: iconSizes.lg,\r\n gap: componentGap.md,\r\n radius: 'var(--brycks-radius-lg)',\r\n },\r\n xl: {\r\n height: componentHeights.xl,\r\n paddingX: componentPaddingX.xl,\r\n fontSize: 'var(--brycks-fs-ui-xl)',\r\n iconSize: iconSizes.xl,\r\n gap: componentGap.lg,\r\n radius: 'var(--brycks-radius-xl)',\r\n },\r\n}\r\n\r\n/** Color values for each intent */\r\nconst intentColors: Record<\r\n ButtonIntent,\r\n {\r\n solid: { bg: string; hoverBg: string; activeBg: string; text: string }\r\n outline: { border: string; hoverBg: string; text: string }\r\n ghost: { hoverBg: string; text: string }\r\n soft: { bg: string; hoverBg: string; text: string }\r\n link: { text: string; hoverText: string }\r\n }\r\n> = {\r\n primary: {\r\n solid: {\r\n bg: 'var(--brycks-primary-default)',\r\n hoverBg: 'var(--brycks-primary-hover)',\r\n activeBg: 'var(--brycks-primary-active)',\r\n text: 'var(--brycks-primary-foreground)',\r\n },\r\n outline: {\r\n border: 'var(--brycks-primary-default)',\r\n hoverBg: 'var(--brycks-primary-muted)',\r\n text: 'var(--brycks-primary-default)',\r\n },\r\n ghost: {\r\n hoverBg: 'var(--brycks-primary-muted)',\r\n text: 'var(--brycks-primary-default)',\r\n },\r\n soft: {\r\n bg: 'var(--brycks-primary-muted)',\r\n hoverBg: 'var(--brycks-primary-soft-hover)',\r\n text: 'var(--brycks-primary-default)',\r\n },\r\n link: {\r\n text: 'var(--brycks-primary-default)',\r\n hoverText: 'var(--brycks-primary-hover)',\r\n },\r\n },\r\n accent: {\r\n solid: {\r\n bg: 'var(--brycks-accent-default)',\r\n hoverBg: 'var(--brycks-accent-hover)',\r\n activeBg: 'var(--brycks-accent-active)',\r\n text: 'var(--brycks-accent-foreground)',\r\n },\r\n outline: {\r\n border: 'var(--brycks-accent-default)',\r\n hoverBg: 'var(--brycks-accent-muted)',\r\n text: 'var(--brycks-accent-default)',\r\n },\r\n ghost: {\r\n hoverBg: 'var(--brycks-accent-muted)',\r\n text: 'var(--brycks-accent-default)',\r\n },\r\n soft: {\r\n bg: 'var(--brycks-accent-muted)',\r\n hoverBg: 'var(--brycks-accent-soft-hover)',\r\n text: 'var(--brycks-accent-default)',\r\n },\r\n link: {\r\n text: 'var(--brycks-accent-default)',\r\n hoverText: 'var(--brycks-accent-hover)',\r\n },\r\n },\r\n neutral: {\r\n solid: {\r\n bg: 'var(--brycks-foreground-default)',\r\n hoverBg: 'var(--brycks-foreground-muted)',\r\n activeBg: 'var(--brycks-foreground-subtle)',\r\n text: 'var(--brycks-background-app)',\r\n },\r\n outline: {\r\n border: 'var(--brycks-border-strong)',\r\n hoverBg: 'var(--brycks-background-muted)',\r\n text: 'var(--brycks-foreground-default)',\r\n },\r\n ghost: {\r\n hoverBg: 'var(--brycks-background-muted)',\r\n text: 'var(--brycks-foreground-default)',\r\n },\r\n soft: {\r\n bg: 'var(--brycks-background-muted)',\r\n hoverBg: 'var(--brycks-background-subtle)',\r\n text: 'var(--brycks-foreground-default)',\r\n },\r\n link: {\r\n text: 'var(--brycks-foreground-default)',\r\n hoverText: 'var(--brycks-foreground-muted)',\r\n },\r\n },\r\n success: {\r\n solid: {\r\n bg: 'var(--brycks-success-default)',\r\n hoverBg: 'var(--brycks-success-hover)',\r\n activeBg: 'var(--brycks-success-hover)',\r\n text: 'var(--brycks-success-foreground)',\r\n },\r\n outline: {\r\n border: 'var(--brycks-success-default)',\r\n hoverBg: 'var(--brycks-success-muted)',\r\n text: 'var(--brycks-success-default)',\r\n },\r\n ghost: {\r\n hoverBg: 'var(--brycks-success-muted)',\r\n text: 'var(--brycks-success-default)',\r\n },\r\n soft: {\r\n bg: 'var(--brycks-success-muted)',\r\n hoverBg: 'var(--brycks-success-soft-hover)',\r\n text: 'var(--brycks-success-default)',\r\n },\r\n link: {\r\n text: 'var(--brycks-success-default)',\r\n hoverText: 'var(--brycks-success-hover)',\r\n },\r\n },\r\n warning: {\r\n solid: {\r\n bg: 'var(--brycks-warning-default)',\r\n hoverBg: 'var(--brycks-warning-hover)',\r\n activeBg: 'var(--brycks-warning-hover)',\r\n text: 'var(--brycks-warning-foreground)',\r\n },\r\n outline: {\r\n border: 'var(--brycks-warning-default)',\r\n hoverBg: 'var(--brycks-warning-muted)',\r\n text: 'var(--brycks-warning-default)',\r\n },\r\n ghost: {\r\n hoverBg: 'var(--brycks-warning-muted)',\r\n text: 'var(--brycks-warning-default)',\r\n },\r\n soft: {\r\n bg: 'var(--brycks-warning-muted)',\r\n hoverBg: 'var(--brycks-warning-soft-hover)',\r\n text: 'var(--brycks-warning-default)',\r\n },\r\n link: {\r\n text: 'var(--brycks-warning-default)',\r\n hoverText: 'var(--brycks-warning-hover)',\r\n },\r\n },\r\n error: {\r\n solid: {\r\n bg: 'var(--brycks-error-default)',\r\n hoverBg: 'var(--brycks-error-hover)',\r\n activeBg: 'var(--brycks-error-hover)',\r\n text: 'var(--brycks-error-foreground)',\r\n },\r\n outline: {\r\n border: 'var(--brycks-error-default)',\r\n hoverBg: 'var(--brycks-error-muted)',\r\n text: 'var(--brycks-error-default)',\r\n },\r\n ghost: {\r\n hoverBg: 'var(--brycks-error-muted)',\r\n text: 'var(--brycks-error-default)',\r\n },\r\n soft: {\r\n bg: 'var(--brycks-error-muted)',\r\n hoverBg: 'var(--brycks-error-soft-hover)',\r\n text: 'var(--brycks-error-default)',\r\n },\r\n link: {\r\n text: 'var(--brycks-error-default)',\r\n hoverText: 'var(--brycks-error-hover)',\r\n },\r\n },\r\n}\r\n\r\nexport interface ButtonStyleProps {\r\n variant: ButtonVariant\r\n intent: ButtonIntent\r\n size: ButtonSize\r\n fullWidth?: boolean\r\n isIconOnly?: boolean\r\n isDisabled?: boolean\r\n isLoading?: boolean\r\n}\r\n\r\nexport function getButtonStyles(props: ButtonStyleProps): {\r\n base: CSSProperties\r\n hover: CSSProperties\r\n active: CSSProperties\r\n disabled: CSSProperties\r\n loading: CSSProperties\r\n} {\r\n const { variant, intent, size, fullWidth, isIconOnly } = props\r\n const sizeValues = sizeConfig[size]\r\n const colors = intentColors[intent][variant]\r\n\r\n // Base styles common to all buttons\r\n const base: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: sizeValues.gap,\r\n height: sizeValues.height,\r\n minWidth: isIconOnly ? sizeValues.height : undefined,\r\n width: fullWidth ? '100%' : undefined,\r\n padding: isIconOnly ? 0 : `0 ${sizeValues.paddingX}px`,\r\n fontSize: sizeValues.fontSize,\r\n fontWeight: componentFontWeight.medium,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n lineHeight: componentLineHeight.none,\r\n borderRadius: sizeValues.radius,\r\n border: 'none',\r\n outline: 'none',\r\n cursor: 'pointer',\r\n userSelect: 'none',\r\n textDecoration: 'none',\r\n transition: transition.quick,\r\n WebkitTapHighlightColor: 'transparent',\r\n }\r\n\r\n // Apply variant-specific base styles\r\n switch (variant) {\r\n case 'solid': {\r\n const solidColors = colors as { bg: string; hoverBg: string; activeBg: string; text: string }\r\n Object.assign(base, {\r\n backgroundColor: solidColors.bg,\r\n color: solidColors.text,\r\n boxShadow: 'var(--brycks-shadow-xs)',\r\n })\r\n break\r\n }\r\n\r\n case 'outline': {\r\n const outlineColors = colors as { border: string; hoverBg: string; text: string }\r\n Object.assign(base, {\r\n backgroundColor: 'transparent',\r\n color: outlineColors.text,\r\n border: `1px solid ${outlineColors.border}`,\r\n })\r\n break\r\n }\r\n\r\n case 'ghost': {\r\n const ghostColors = colors as { hoverBg: string; text: string }\r\n Object.assign(base, {\r\n backgroundColor: 'transparent',\r\n color: ghostColors.text,\r\n })\r\n break\r\n }\r\n\r\n case 'soft': {\r\n const softColors = colors as { bg: string; hoverBg: string; text: string }\r\n Object.assign(base, {\r\n backgroundColor: softColors.bg,\r\n color: softColors.text,\r\n })\r\n break\r\n }\r\n\r\n case 'link': {\r\n const linkColors = colors as { text: string; hoverText: string }\r\n Object.assign(base, {\r\n backgroundColor: 'transparent',\r\n color: linkColors.text,\r\n height: 'auto',\r\n padding: 0,\r\n borderRadius: 0,\r\n })\r\n break\r\n }\r\n }\r\n\r\n // Hover styles\r\n const hover: CSSProperties = {}\r\n switch (variant) {\r\n case 'solid': {\r\n const solidColors = colors as { bg: string; hoverBg: string; activeBg: string; text: string }\r\n hover.backgroundColor = solidColors.hoverBg\r\n hover.boxShadow = 'var(--brycks-shadow-sm)'\r\n break\r\n }\r\n case 'outline': {\r\n const outlineColors = colors as { border: string; hoverBg: string; text: string }\r\n hover.backgroundColor = outlineColors.hoverBg\r\n break\r\n }\r\n case 'ghost': {\r\n const ghostColors = colors as { hoverBg: string; text: string }\r\n hover.backgroundColor = ghostColors.hoverBg\r\n break\r\n }\r\n case 'soft': {\r\n const softColors = colors as { bg: string; hoverBg: string; text: string }\r\n hover.backgroundColor = softColors.hoverBg\r\n break\r\n }\r\n case 'link': {\r\n const linkColors = colors as { text: string; hoverText: string }\r\n hover.color = linkColors.hoverText\r\n hover.textDecoration = 'underline'\r\n break\r\n }\r\n }\r\n\r\n // Active/pressed styles\r\n const active: CSSProperties = {\r\n transform: variant !== 'link' ? `scale(${scale.pressed})` : undefined,\r\n }\r\n if (variant === 'solid') {\r\n const solidColors = colors as { bg: string; hoverBg: string; activeBg: string; text: string }\r\n active.backgroundColor = solidColors.activeBg\r\n active.boxShadow = 'var(--brycks-shadow-xs)'\r\n }\r\n\r\n // Disabled styles\r\n const disabled: CSSProperties = {\r\n opacity: stateOpacity.disabled,\r\n cursor: 'not-allowed',\r\n pointerEvents: 'none',\r\n }\r\n\r\n // Loading styles\r\n const loading: CSSProperties = {\r\n cursor: 'wait',\r\n pointerEvents: 'none',\r\n }\r\n\r\n return { base, hover, active, disabled, loading }\r\n}\r\n\r\nexport { sizeConfig }\r\n"],"names":["sizeConfig","componentHeights","componentPaddingX","iconSizes","componentGap","intentColors","getButtonStyles","props","variant","intent","size","fullWidth","isIconOnly","sizeValues","colors","base","componentFontWeight","componentLineHeight","transition","solidColors","outlineColors","softColors","hover","ghostColors","linkColors","active","scale","disabled","stateOpacity"],"mappings":"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"}
1
+ {"version":3,"file":"Button.styles.js","sources":["../../../../src/components/primitives/Button/Button.styles.ts"],"sourcesContent":["/**\r\n * Button Component Styles\r\n *\r\n * Size configuration for button icons and internal elements.\r\n * All color and visual styles are handled via CSS classes in button.css.\r\n *\r\n * @module components/primitives/Button\r\n */\r\n\r\nimport type { ButtonSize } from './Button.types'\r\nimport { iconSizes } from '../../../design-system'\r\n\r\n/**\r\n * Size configuration for button icons\r\n * Used by the component to size icons and loading spinners\r\n */\r\nexport const sizeConfig: Record<ButtonSize, { iconSize: number }> = {\r\n xs: { iconSize: iconSizes.xs },\r\n sm: { iconSize: iconSizes.sm },\r\n md: { iconSize: iconSizes.md },\r\n lg: { iconSize: iconSizes.lg },\r\n xl: { iconSize: iconSizes.xl },\r\n}\r\n"],"names":["sizeConfig","iconSizes"],"mappings":";AAgBO,MAAMA,IAAuD;AAAA,EAClE,IAAI,EAAE,UAAUC,EAAU,GAAA;AAAA,EAC1B,IAAI,EAAE,UAAUA,EAAU,GAAA;AAAA,EAC1B,IAAI,EAAE,UAAUA,EAAU,GAAA;AAAA,EAC1B,IAAI,EAAE,UAAUA,EAAU,GAAA;AAAA,EAC1B,IAAI,EAAE,UAAUA,EAAU,GAAA;AAC5B;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),p=require("react"),v=require("../../../utils/styles.cjs"),r=require("../../../design-system/tokens/spacing.cjs"),a=require("../../../design-system/primitives/sizing.cjs"),e=require("../../../design-system/tokens/typography.cjs"),m={sm:{fontSize:e.fontSizes.xs-1,padding:`${r.spacing[.5]}px ${a.componentPaddingY.sm}px`,height:r.spacing[4]+r.spacing[.5]},md:{fontSize:e.fontSizes.xs,padding:`${r.spacing[.5]+1}px ${a.componentPaddingX.xs}px`,height:r.spacing[5]+r.spacing[.5]},lg:{fontSize:e.fontSizes.sm,padding:`${r.spacing[1]}px ${a.componentPaddingY.lg}px`,height:r.spacing[6]+r.spacing[.5]}},C={neutral:{solid:{backgroundColor:"var(--brycks-foreground-default)",color:"var(--brycks-background-app)"},subtle:{backgroundColor:"var(--brycks-background-muted)",color:"var(--brycks-foreground-default)"},outline:{backgroundColor:"transparent",color:"var(--brycks-foreground-default)",borderColor:"var(--brycks-border-default)"}},primary:{solid:{backgroundColor:"var(--brycks-primary-default)",color:"var(--brycks-primary-foreground)"},subtle:{backgroundColor:"var(--brycks-primary-muted)",color:"var(--brycks-primary-hover)"},outline:{backgroundColor:"transparent",color:"var(--brycks-primary-default)",borderColor:"var(--brycks-primary-default)"}},accent:{solid:{backgroundColor:"var(--brycks-accent-default)",color:"var(--brycks-accent-foreground)"},subtle:{backgroundColor:"var(--brycks-accent-muted)",color:"var(--brycks-accent-hover)"},outline:{backgroundColor:"transparent",color:"var(--brycks-accent-default)",borderColor:"var(--brycks-accent-default)"}},success:{solid:{backgroundColor:"var(--brycks-success-default)",color:"var(--brycks-success-foreground)"},subtle:{backgroundColor:"var(--brycks-success-muted)",color:"var(--brycks-success-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-success-default)",borderColor:"var(--brycks-success-default)"}},warning:{solid:{backgroundColor:"var(--brycks-warning-default)",color:"var(--brycks-warning-foreground)"},subtle:{backgroundColor:"var(--brycks-warning-muted)",color:"var(--brycks-warning-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-warning-default)",borderColor:"var(--brycks-warning-default)"}},error:{solid:{backgroundColor:"var(--brycks-error-default)",color:"var(--brycks-error-foreground)"},subtle:{backgroundColor:"var(--brycks-error-muted)",color:"var(--brycks-error-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-error-default)",borderColor:"var(--brycks-error-default)"}},info:{solid:{backgroundColor:"var(--brycks-info-default)",color:"var(--brycks-info-foreground)"},subtle:{backgroundColor:"var(--brycks-info-muted)",color:"var(--brycks-info-on-muted)"},outline:{backgroundColor:"transparent",color:"var(--brycks-info-default)",borderColor:"var(--brycks-info-default)"}}},s=p.forwardRef(function({variant:o="subtle",intent:c="neutral",size:n="md",className:t,style:l,testId:d,children:u,...b},i){const g=m[n],k=C[c][o],y={display:"inline-flex",alignItems:"center",justifyContent:"center",fontWeight:500,fontFamily:"var(--brycks-font-sans)",lineHeight:1,borderRadius:"var(--brycks-radius-full)",whiteSpace:"nowrap",border:o==="outline"?"1px solid":"none",...g,...k,...l};return f.jsx("span",{ref:i,className:v.cx("brycks-badge",`brycks-badge--${o}`,`brycks-badge--${c}`,`brycks-badge--${n}`,t),style:y,"data-testid":d,...b,children:u})});s.displayName="Badge";exports.Badge=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react/jsx-runtime"),i=require("react"),o=require("../../../utils/styles.cjs"),e=i.forwardRef(function({variant:a="subtle",intent:s="neutral",size:t="md",className:r,style:d,testId:c,children:n,...b},u){return g.jsx("span",{ref:u,className:o.cx("brycks-badge",`brycks-badge--${a}`,`brycks-badge--${s}`,`brycks-badge--${t}`,r),style:d,"data-testid":c,...b,children:n})});e.displayName="Badge";exports.Badge=e;
2
2
  //# sourceMappingURL=Badge.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.cjs","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\nimport { spacing, fontSizes } from '../../../design-system'\r\nimport { componentPaddingX, componentPaddingY } from '../../../design-system/primitives'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<BadgeSize, CSSProperties> = {\r\n sm: { fontSize: fontSizes.xs - 1, padding: `${spacing[0.5]}px ${componentPaddingY.sm}px`, height: spacing[4] + spacing[0.5] },\r\n md: { fontSize: fontSizes.xs, padding: `${spacing[0.5] + 1}px ${componentPaddingX.xs}px`, height: spacing[5] + spacing[0.5] },\r\n lg: { fontSize: fontSizes.sm, padding: `${spacing[1]}px ${componentPaddingY.lg}px`, height: spacing[6] + spacing[0.5] },\r\n}\r\n\r\nconst intentColors: Record<BadgeIntent, Record<BadgeVariant, CSSProperties>> = {\r\n neutral: {\r\n solid: { backgroundColor: 'var(--brycks-foreground-default)', color: 'var(--brycks-background-app)' },\r\n subtle: { backgroundColor: 'var(--brycks-background-muted)', color: 'var(--brycks-foreground-default)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-foreground-default)', borderColor: 'var(--brycks-border-default)' },\r\n },\r\n primary: {\r\n solid: { backgroundColor: 'var(--brycks-primary-default)', color: 'var(--brycks-primary-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-primary-muted)', color: 'var(--brycks-primary-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-primary-default)', borderColor: 'var(--brycks-primary-default)' },\r\n },\r\n accent: {\r\n solid: { backgroundColor: 'var(--brycks-accent-default)', color: 'var(--brycks-accent-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-accent-muted)', color: 'var(--brycks-accent-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-accent-default)', borderColor: 'var(--brycks-accent-default)' },\r\n },\r\n success: {\r\n solid: { backgroundColor: 'var(--brycks-success-default)', color: 'var(--brycks-success-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-success-muted)', color: 'var(--brycks-success-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-success-default)', borderColor: 'var(--brycks-success-default)' },\r\n },\r\n warning: {\r\n solid: { backgroundColor: 'var(--brycks-warning-default)', color: 'var(--brycks-warning-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-warning-muted)', color: 'var(--brycks-warning-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-warning-default)', borderColor: 'var(--brycks-warning-default)' },\r\n },\r\n error: {\r\n solid: { backgroundColor: 'var(--brycks-error-default)', color: 'var(--brycks-error-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-error-muted)', color: 'var(--brycks-error-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-error-default)', borderColor: 'var(--brycks-error-default)' },\r\n },\r\n info: {\r\n solid: { backgroundColor: 'var(--brycks-info-default)', color: 'var(--brycks-info-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-info-muted)', color: 'var(--brycks-info-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-info-default)', borderColor: 'var(--brycks-info-default)' },\r\n },\r\n}\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\r\n {\r\n variant = 'subtle',\r\n intent = 'neutral',\r\n size = 'md',\r\n className,\r\n style,\r\n testId,\r\n children,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const sizeValue = sizeStyles[size]\r\n const colorValue = intentColors[intent][variant]\r\n\r\n const badgeStyle: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 500,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n lineHeight: 1,\r\n borderRadius: 'var(--brycks-radius-full)',\r\n whiteSpace: 'nowrap',\r\n border: variant === 'outline' ? '1px solid' : 'none',\r\n ...sizeValue,\r\n ...colorValue,\r\n ...style,\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={cx(\r\n 'brycks-badge',\r\n `brycks-badge--${variant}`,\r\n `brycks-badge--${intent}`,\r\n `brycks-badge--${size}`,\r\n className\r\n )}\r\n style={badgeStyle}\r\n data-testid={testId}\r\n {...props}\r\n >\r\n {children}\r\n </span>\r\n )\r\n})\r\n\r\nBadge.displayName = 'Badge'\r\n"],"names":["sizeStyles","fontSizes","spacing","componentPaddingY","componentPaddingX","intentColors","Badge","forwardRef","variant","intent","size","className","style","testId","children","props","ref","sizeValue","colorValue","badgeStyle","jsx","cx"],"mappings":"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"}
1
+ {"version":3,"file":"Badge.cjs","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n *\r\n * All color styles are handled via CSS classes for easy customization.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\r\n {\r\n variant = 'subtle',\r\n intent = 'neutral',\r\n size = 'md',\r\n className,\r\n style,\r\n testId,\r\n children,\r\n ...props\r\n },\r\n ref\r\n) {\r\n return (\r\n <span\r\n ref={ref}\r\n className={cx(\r\n 'brycks-badge',\r\n `brycks-badge--${variant}`,\r\n `brycks-badge--${intent}`,\r\n `brycks-badge--${size}`,\r\n className\r\n )}\r\n style={style}\r\n data-testid={testId}\r\n {...props}\r\n >\r\n {children}\r\n </span>\r\n )\r\n})\r\n\r\nBadge.displayName = 'Badge'\r\n"],"names":["Badge","forwardRef","variant","intent","size","className","style","testId","children","props","ref","jsx","cx"],"mappings":"+KAmCaA,EAAQC,EAAAA,WAAwC,SAC3D,CACE,QAAAC,EAAU,SACV,OAAAC,EAAS,UACT,KAAAC,EAAO,KACP,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,OACEC,EAAAA,IAAC,OAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,eACA,iBAAiBV,CAAO,GACxB,iBAAiBC,CAAM,GACvB,iBAAiBC,CAAI,GACrBC,CAAA,EAEF,MAAAC,EACA,cAAaC,EACZ,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CAAC,EAEDR,EAAM,YAAc"}
@@ -1,93 +1,36 @@
1
- import { jsx as g } from "react/jsx-runtime";
2
- import { forwardRef as f } from "react";
3
- import { cx as v } from "../../../utils/styles.js";
4
- import { spacing as r } from "../../../design-system/tokens/spacing.js";
5
- import { componentPaddingY as n, componentPaddingX as m } from "../../../design-system/primitives/sizing.js";
6
- import { fontSizes as a } from "../../../design-system/tokens/typography.js";
7
- const p = {
8
- sm: { fontSize: a.xs - 1, padding: `${r[0.5]}px ${n.sm}px`, height: r[4] + r[0.5] },
9
- md: { fontSize: a.xs, padding: `${r[0.5] + 1}px ${m.xs}px`, height: r[5] + r[0.5] },
10
- lg: { fontSize: a.sm, padding: `${r[1]}px ${n.lg}px`, height: r[6] + r[0.5] }
11
- }, C = {
12
- neutral: {
13
- solid: { backgroundColor: "var(--brycks-foreground-default)", color: "var(--brycks-background-app)" },
14
- subtle: { backgroundColor: "var(--brycks-background-muted)", color: "var(--brycks-foreground-default)" },
15
- outline: { backgroundColor: "transparent", color: "var(--brycks-foreground-default)", borderColor: "var(--brycks-border-default)" }
16
- },
17
- primary: {
18
- solid: { backgroundColor: "var(--brycks-primary-default)", color: "var(--brycks-primary-foreground)" },
19
- subtle: { backgroundColor: "var(--brycks-primary-muted)", color: "var(--brycks-primary-hover)" },
20
- outline: { backgroundColor: "transparent", color: "var(--brycks-primary-default)", borderColor: "var(--brycks-primary-default)" }
21
- },
22
- accent: {
23
- solid: { backgroundColor: "var(--brycks-accent-default)", color: "var(--brycks-accent-foreground)" },
24
- subtle: { backgroundColor: "var(--brycks-accent-muted)", color: "var(--brycks-accent-hover)" },
25
- outline: { backgroundColor: "transparent", color: "var(--brycks-accent-default)", borderColor: "var(--brycks-accent-default)" }
26
- },
27
- success: {
28
- solid: { backgroundColor: "var(--brycks-success-default)", color: "var(--brycks-success-foreground)" },
29
- subtle: { backgroundColor: "var(--brycks-success-muted)", color: "var(--brycks-success-on-muted)" },
30
- outline: { backgroundColor: "transparent", color: "var(--brycks-success-default)", borderColor: "var(--brycks-success-default)" }
31
- },
32
- warning: {
33
- solid: { backgroundColor: "var(--brycks-warning-default)", color: "var(--brycks-warning-foreground)" },
34
- subtle: { backgroundColor: "var(--brycks-warning-muted)", color: "var(--brycks-warning-on-muted)" },
35
- outline: { backgroundColor: "transparent", color: "var(--brycks-warning-default)", borderColor: "var(--brycks-warning-default)" }
36
- },
37
- error: {
38
- solid: { backgroundColor: "var(--brycks-error-default)", color: "var(--brycks-error-foreground)" },
39
- subtle: { backgroundColor: "var(--brycks-error-muted)", color: "var(--brycks-error-on-muted)" },
40
- outline: { backgroundColor: "transparent", color: "var(--brycks-error-default)", borderColor: "var(--brycks-error-default)" }
41
- },
42
- info: {
43
- solid: { backgroundColor: "var(--brycks-info-default)", color: "var(--brycks-info-foreground)" },
44
- subtle: { backgroundColor: "var(--brycks-info-muted)", color: "var(--brycks-info-on-muted)" },
45
- outline: { backgroundColor: "transparent", color: "var(--brycks-info-default)", borderColor: "var(--brycks-info-default)" }
46
- }
47
- }, x = f(function({
48
- variant: o = "subtle",
49
- intent: e = "neutral",
50
- size: c = "md",
51
- className: s,
52
- style: l,
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { forwardRef as g } from "react";
3
+ import { cx as f } from "../../../utils/styles.js";
4
+ const i = g(function({
5
+ variant: a = "subtle",
6
+ intent: r = "neutral",
7
+ size: e = "md",
8
+ className: d,
9
+ style: s,
53
10
  testId: t,
54
- children: d,
55
- ...u
56
- }, b) {
57
- const k = p[c], i = C[e][o], y = {
58
- display: "inline-flex",
59
- alignItems: "center",
60
- justifyContent: "center",
61
- fontWeight: 500,
62
- fontFamily: "var(--brycks-font-sans)",
63
- lineHeight: 1,
64
- borderRadius: "var(--brycks-radius-full)",
65
- whiteSpace: "nowrap",
66
- border: o === "outline" ? "1px solid" : "none",
67
- ...k,
68
- ...i,
69
- ...l
70
- };
71
- return /* @__PURE__ */ g(
11
+ children: o,
12
+ ...b
13
+ }, m) {
14
+ return /* @__PURE__ */ c(
72
15
  "span",
73
16
  {
74
- ref: b,
75
- className: v(
17
+ ref: m,
18
+ className: f(
76
19
  "brycks-badge",
77
- `brycks-badge--${o}`,
20
+ `brycks-badge--${a}`,
21
+ `brycks-badge--${r}`,
78
22
  `brycks-badge--${e}`,
79
- `brycks-badge--${c}`,
80
- s
23
+ d
81
24
  ),
82
- style: y,
25
+ style: s,
83
26
  "data-testid": t,
84
- ...u,
85
- children: d
27
+ ...b,
28
+ children: o
86
29
  }
87
30
  );
88
31
  });
89
- x.displayName = "Badge";
32
+ i.displayName = "Badge";
90
33
  export {
91
- x as Badge
34
+ i as Badge
92
35
  };
93
36
  //# sourceMappingURL=Badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type CSSProperties,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\nimport { spacing, fontSizes } from '../../../design-system'\r\nimport { componentPaddingX, componentPaddingY } from '../../../design-system/primitives'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<BadgeSize, CSSProperties> = {\r\n sm: { fontSize: fontSizes.xs - 1, padding: `${spacing[0.5]}px ${componentPaddingY.sm}px`, height: spacing[4] + spacing[0.5] },\r\n md: { fontSize: fontSizes.xs, padding: `${spacing[0.5] + 1}px ${componentPaddingX.xs}px`, height: spacing[5] + spacing[0.5] },\r\n lg: { fontSize: fontSizes.sm, padding: `${spacing[1]}px ${componentPaddingY.lg}px`, height: spacing[6] + spacing[0.5] },\r\n}\r\n\r\nconst intentColors: Record<BadgeIntent, Record<BadgeVariant, CSSProperties>> = {\r\n neutral: {\r\n solid: { backgroundColor: 'var(--brycks-foreground-default)', color: 'var(--brycks-background-app)' },\r\n subtle: { backgroundColor: 'var(--brycks-background-muted)', color: 'var(--brycks-foreground-default)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-foreground-default)', borderColor: 'var(--brycks-border-default)' },\r\n },\r\n primary: {\r\n solid: { backgroundColor: 'var(--brycks-primary-default)', color: 'var(--brycks-primary-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-primary-muted)', color: 'var(--brycks-primary-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-primary-default)', borderColor: 'var(--brycks-primary-default)' },\r\n },\r\n accent: {\r\n solid: { backgroundColor: 'var(--brycks-accent-default)', color: 'var(--brycks-accent-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-accent-muted)', color: 'var(--brycks-accent-hover)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-accent-default)', borderColor: 'var(--brycks-accent-default)' },\r\n },\r\n success: {\r\n solid: { backgroundColor: 'var(--brycks-success-default)', color: 'var(--brycks-success-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-success-muted)', color: 'var(--brycks-success-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-success-default)', borderColor: 'var(--brycks-success-default)' },\r\n },\r\n warning: {\r\n solid: { backgroundColor: 'var(--brycks-warning-default)', color: 'var(--brycks-warning-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-warning-muted)', color: 'var(--brycks-warning-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-warning-default)', borderColor: 'var(--brycks-warning-default)' },\r\n },\r\n error: {\r\n solid: { backgroundColor: 'var(--brycks-error-default)', color: 'var(--brycks-error-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-error-muted)', color: 'var(--brycks-error-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-error-default)', borderColor: 'var(--brycks-error-default)' },\r\n },\r\n info: {\r\n solid: { backgroundColor: 'var(--brycks-info-default)', color: 'var(--brycks-info-foreground)' },\r\n subtle: { backgroundColor: 'var(--brycks-info-muted)', color: 'var(--brycks-info-on-muted)' },\r\n outline: { backgroundColor: 'transparent', color: 'var(--brycks-info-default)', borderColor: 'var(--brycks-info-default)' },\r\n },\r\n}\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\r\n {\r\n variant = 'subtle',\r\n intent = 'neutral',\r\n size = 'md',\r\n className,\r\n style,\r\n testId,\r\n children,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const sizeValue = sizeStyles[size]\r\n const colorValue = intentColors[intent][variant]\r\n\r\n const badgeStyle: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n fontWeight: 500,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n lineHeight: 1,\r\n borderRadius: 'var(--brycks-radius-full)',\r\n whiteSpace: 'nowrap',\r\n border: variant === 'outline' ? '1px solid' : 'none',\r\n ...sizeValue,\r\n ...colorValue,\r\n ...style,\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={cx(\r\n 'brycks-badge',\r\n `brycks-badge--${variant}`,\r\n `brycks-badge--${intent}`,\r\n `brycks-badge--${size}`,\r\n className\r\n )}\r\n style={badgeStyle}\r\n data-testid={testId}\r\n {...props}\r\n >\r\n {children}\r\n </span>\r\n )\r\n})\r\n\r\nBadge.displayName = 'Badge'\r\n"],"names":["sizeStyles","fontSizes","spacing","componentPaddingY","componentPaddingX","intentColors","Badge","forwardRef","variant","intent","size","className","style","testId","children","props","ref","sizeValue","colorValue","badgeStyle","jsx","cx"],"mappings":"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"}
1
+ {"version":3,"file":"Badge.js","sources":["../../../../src/components/utility/Badge/Badge.tsx"],"sourcesContent":["/**\r\n * Badge Component\r\n *\r\n * Small label for status, counts, or categorization.\r\n * Clean, minimal design with subtle color coding.\r\n *\r\n * All color styles are handled via CSS classes for easy customization.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n type ReactNode,\r\n type HTMLAttributes,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type BadgeVariant = 'solid' | 'subtle' | 'outline'\r\nexport type BadgeIntent = 'neutral' | 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info'\r\nexport type BadgeSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\r\n /** Visual variant */\r\n variant?: BadgeVariant\r\n /** Color intent */\r\n intent?: BadgeIntent\r\n /** Size */\r\n size?: BadgeSize\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Badge content */\r\n children?: ReactNode\r\n}\r\n\r\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\r\n {\r\n variant = 'subtle',\r\n intent = 'neutral',\r\n size = 'md',\r\n className,\r\n style,\r\n testId,\r\n children,\r\n ...props\r\n },\r\n ref\r\n) {\r\n return (\r\n <span\r\n ref={ref}\r\n className={cx(\r\n 'brycks-badge',\r\n `brycks-badge--${variant}`,\r\n `brycks-badge--${intent}`,\r\n `brycks-badge--${size}`,\r\n className\r\n )}\r\n style={style}\r\n data-testid={testId}\r\n {...props}\r\n >\r\n {children}\r\n </span>\r\n )\r\n})\r\n\r\nBadge.displayName = 'Badge'\r\n"],"names":["Badge","forwardRef","variant","intent","size","className","style","testId","children","props","ref","jsx","cx"],"mappings":";;;AAmCO,MAAMA,IAAQC,EAAwC,SAC3D;AAAA,EACE,SAAAC,IAAU;AAAA,EACV,QAAAC,IAAS;AAAA,EACT,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACA,iBAAiBV,CAAO;AAAA,QACxB,iBAAiBC,CAAM;AAAA,QACvB,iBAAiBC,CAAI;AAAA,QACrBC;AAAA,MAAA;AAAA,MAEF,OAAAC;AAAA,MACA,eAAaC;AAAA,MACZ,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;AAEDR,EAAM,cAAc;"}
@@ -95,7 +95,7 @@ export declare interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>,
95
95
  children?: ReactNode;
96
96
  }
97
97
 
98
- export declare type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
98
+ export declare type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
99
99
 
100
100
  export declare const Popover: default_2.ForwardRefExoticComponent<PopoverProps & default_2.RefAttributes<HTMLDivElement>>;
101
101
 
package/dist/index.d.ts CHANGED
@@ -2526,7 +2526,7 @@ export declare interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>,
2526
2526
  children?: ReactNode;
2527
2527
  }
2528
2528
 
2529
- export declare type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
2529
+ export declare type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
2530
2530
 
2531
2531
  /**
2532
2532
  * Modal/dialog width presets.