@devalok/shilp-sutra 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.md +239 -0
  2. package/dist/composed/content-card.d.ts +2 -2
  3. package/dist/composed/error-boundary.js +1 -1
  4. package/dist/shell/notification-preferences.js +14 -14
  5. package/dist/tailwind/index.cjs +344 -0
  6. package/dist/tailwind/preset.d.ts.map +1 -1
  7. package/dist/tailwind/preset.js +15 -10
  8. package/dist/tokens/index.css +1 -0
  9. package/dist/tokens/semantic.css +3 -3
  10. package/dist/tokens/typography.css +7 -7
  11. package/dist/ui/alert.d.ts +7 -7
  12. package/dist/ui/alert.js +10 -10
  13. package/dist/ui/autocomplete.d.ts +3 -3
  14. package/dist/ui/autocomplete.d.ts.map +1 -1
  15. package/dist/ui/autocomplete.js +1 -1
  16. package/dist/ui/badge.d.ts +10 -7
  17. package/dist/ui/badge.d.ts.map +1 -1
  18. package/dist/ui/badge.js +82 -30
  19. package/dist/ui/banner.d.ts +5 -5
  20. package/dist/ui/banner.js +17 -17
  21. package/dist/ui/button-group.d.ts +8 -5
  22. package/dist/ui/button-group.d.ts.map +1 -1
  23. package/dist/ui/button-group.js +17 -17
  24. package/dist/ui/button.d.ts +10 -8
  25. package/dist/ui/button.d.ts.map +1 -1
  26. package/dist/ui/button.js +65 -47
  27. package/dist/ui/chip.d.ts +5 -5
  28. package/dist/ui/chip.js +10 -10
  29. package/dist/ui/combobox.d.ts +6 -7
  30. package/dist/ui/combobox.d.ts.map +1 -1
  31. package/dist/ui/combobox.js +32 -31
  32. package/dist/ui/dialog.d.ts +5 -11
  33. package/dist/ui/dialog.d.ts.map +1 -1
  34. package/dist/ui/dialog.js +53 -53
  35. package/dist/ui/file-upload.js +34 -34
  36. package/dist/ui/form.d.ts +31 -28
  37. package/dist/ui/form.d.ts.map +1 -1
  38. package/dist/ui/form.js +34 -32
  39. package/dist/ui/icon-button.d.ts +4 -4
  40. package/dist/ui/index.d.ts +3 -3
  41. package/dist/ui/index.d.ts.map +1 -1
  42. package/dist/ui/index.js +69 -69
  43. package/dist/ui/number-input.d.ts +8 -10
  44. package/dist/ui/number-input.d.ts.map +1 -1
  45. package/dist/ui/number-input.js +48 -47
  46. package/dist/ui/progress.d.ts +1 -1
  47. package/dist/ui/search-input.js +8 -8
  48. package/dist/ui/sheet.d.ts +6 -12
  49. package/dist/ui/sheet.d.ts.map +1 -1
  50. package/dist/ui/sheet.js +49 -49
  51. package/dist/ui/sidebar.d.ts +1 -1
  52. package/dist/ui/slider.d.ts +1 -0
  53. package/dist/ui/slider.d.ts.map +1 -1
  54. package/dist/ui/spinner.js +7 -7
  55. package/dist/ui/switch.d.ts +4 -1
  56. package/dist/ui/switch.d.ts.map +1 -1
  57. package/dist/ui/switch.js +13 -12
  58. package/dist/ui/toast.d.ts +3 -3
  59. package/dist/ui/toast.js +22 -22
  60. package/dist/ui/toaster.d.ts +3 -3
  61. package/dist/ui/toggle-group.d.ts +2 -2
  62. package/dist/ui/toggle.d.ts +2 -2
  63. package/fonts/Inter-Italic-Variable.woff2 +0 -0
  64. package/fonts/Inter-Variable.woff2 +0 -0
  65. package/fonts/Ranade-Variable.woff2 +0 -0
  66. package/fonts/Ranade-VariableItalic.woff2 +0 -0
  67. package/package.json +63 -11
  68. package/fonts/GoogleSans-Italic-Variable.ttf +0 -0
  69. package/fonts/GoogleSans-Variable.ttf +0 -0
  70. package/fonts/Ranade-Variable.ttf +0 -0
  71. package/fonts/Ranade-VariableItalic.ttf +0 -0
@@ -0,0 +1,344 @@
1
+ const r = {
2
+ /**
3
+ * Dark mode uses the `.dark` class strategy. If your app uses `darkMode: 'media'`,
4
+ * set it explicitly in your own tailwind.config — your config takes precedence.
5
+ */
6
+ darkMode: "class",
7
+ theme: {
8
+ extend: {
9
+ // Breakpoints must be static values — CSS custom properties cannot be used
10
+ // in @media queries (compiled at build time). These mirror the tokens in
11
+ // semantic.css (--breakpoint-sm … --breakpoint-2xl).
12
+ // Placed inside `extend` so deployer breakpoints are merged, not replaced.
13
+ screens: {
14
+ sm: "640px",
15
+ md: "768px",
16
+ lg: "1024px",
17
+ xl: "1280px",
18
+ "2xl": "1536px"
19
+ },
20
+ fontFamily: {
21
+ sans: ["var(--font-sans)", "system-ui", "sans-serif"],
22
+ display: ["var(--font-display)", "system-ui", "sans-serif"],
23
+ body: ["var(--font-body)", "sans-serif"],
24
+ accent: ["var(--font-accent)", "sans-serif"],
25
+ mono: ["var(--font-mono)", "monospace"]
26
+ },
27
+ fontWeight: {
28
+ light: "var(--font-weight-light)",
29
+ regular: "var(--font-weight-regular)",
30
+ medium: "var(--font-weight-medium)",
31
+ semibold: "var(--font-weight-semibold)",
32
+ bold: "var(--font-weight-bold)"
33
+ },
34
+ letterSpacing: {
35
+ "ds-tighter": "var(--tracking-tighter)",
36
+ "ds-tight": "var(--tracking-tight)",
37
+ "ds-normal": "var(--tracking-normal)",
38
+ "ds-wide": "var(--tracking-wide)",
39
+ "ds-wider": "var(--tracking-wider)",
40
+ "ds-widest": "var(--tracking-widest)"
41
+ },
42
+ lineHeight: {
43
+ "ds-none": "var(--line-height-none)",
44
+ "ds-tight": "var(--line-height-tight)",
45
+ "ds-snug": "var(--line-height-snug)",
46
+ "ds-normal": "var(--line-height-normal)",
47
+ "ds-relaxed": "var(--line-height-relaxed)",
48
+ "ds-loose": "var(--line-height-loose)"
49
+ },
50
+ fontSize: {
51
+ "ds-xs": ["var(--font-size-xs)", { lineHeight: "var(--line-height-relaxed)" }],
52
+ "ds-sm": ["var(--font-size-sm)", { lineHeight: "var(--line-height-relaxed)" }],
53
+ "ds-md": ["var(--font-size-md)", { lineHeight: "var(--line-height-relaxed)" }],
54
+ "ds-base": ["var(--font-size-base)", { lineHeight: "var(--line-height-relaxed)" }],
55
+ "ds-lg": ["var(--font-size-lg)", { lineHeight: "var(--line-height-normal)" }],
56
+ "ds-xl": ["var(--font-size-xl)", { lineHeight: "var(--line-height-snug)" }],
57
+ "ds-2xl": ["var(--font-size-2xl)", { lineHeight: "var(--line-height-snug)" }],
58
+ "ds-3xl": ["var(--font-size-3xl)", { lineHeight: "var(--line-height-tight)" }],
59
+ "ds-4xl": ["var(--font-size-4xl)", { lineHeight: "var(--line-height-tight)" }],
60
+ "ds-5xl": ["var(--font-size-5xl)", { lineHeight: "var(--line-height-tight)" }],
61
+ "ds-6xl": ["var(--font-size-6xl)", { lineHeight: "var(--line-height-tight)" }]
62
+ },
63
+ borderWidth: {
64
+ "ds-sm": "var(--border-width-sm)",
65
+ "ds-md": "var(--border-width-md)",
66
+ "ds-lg": "var(--border-width-lg)",
67
+ focus: "var(--border-focus-width)"
68
+ },
69
+ borderRadius: {
70
+ "ds-none": "0",
71
+ "ds-sm": "var(--radius-sm)",
72
+ "ds-default": "var(--radius-default)",
73
+ "ds-md": "var(--radius-md)",
74
+ "ds-lg": "var(--radius-lg)",
75
+ "ds-xl": "var(--radius-xl)",
76
+ "ds-2xl": "var(--radius-2xl)",
77
+ "ds-full": "var(--radius-full)"
78
+ },
79
+ spacing: {
80
+ "ds-01": "var(--spacing-01)",
81
+ "ds-02": "var(--spacing-02)",
82
+ "ds-02b": "var(--spacing-02b)",
83
+ "ds-03": "var(--spacing-03)",
84
+ "ds-04": "var(--spacing-04)",
85
+ "ds-05": "var(--spacing-05)",
86
+ "ds-05b": "var(--spacing-05b)",
87
+ "ds-06": "var(--spacing-06)",
88
+ "ds-07": "var(--spacing-07)",
89
+ "ds-08": "var(--spacing-08)",
90
+ "ds-09": "var(--spacing-09)",
91
+ "ds-10": "var(--spacing-10)",
92
+ "ds-11": "var(--spacing-11)",
93
+ "ds-12": "var(--spacing-12)",
94
+ "ds-13": "var(--spacing-13)"
95
+ },
96
+ width: {
97
+ "ds-xs": "var(--size-xs)",
98
+ "ds-xs-plus": "var(--size-xs-plus)",
99
+ "ds-sm": "var(--size-sm)",
100
+ "ds-sm-plus": "var(--size-sm-plus)",
101
+ "ds-md": "var(--size-md)",
102
+ "ds-lg": "var(--size-lg)",
103
+ "ds-xl": "var(--size-xl)",
104
+ "ico-sm": "var(--icon-sm)",
105
+ "ico-md": "var(--icon-md)",
106
+ "ico-lg": "var(--icon-lg)",
107
+ "ico-xl": "var(--icon-xl)"
108
+ },
109
+ height: {
110
+ "ds-xs": "var(--size-xs)",
111
+ "ds-xs-plus": "var(--size-xs-plus)",
112
+ "ds-sm": "var(--size-sm)",
113
+ "ds-sm-plus": "var(--size-sm-plus)",
114
+ "ds-md": "var(--size-md)",
115
+ "ds-lg": "var(--size-lg)",
116
+ "ds-xl": "var(--size-xl)",
117
+ "ico-sm": "var(--icon-sm)",
118
+ "ico-md": "var(--icon-md)",
119
+ "ico-lg": "var(--icon-lg)",
120
+ "ico-xl": "var(--icon-xl)"
121
+ },
122
+ minHeight: {
123
+ "ds-xs": "var(--size-xs)",
124
+ "ds-xs-plus": "var(--size-xs-plus)",
125
+ "ds-sm": "var(--size-sm)",
126
+ "ds-sm-plus": "var(--size-sm-plus)",
127
+ "ds-md": "var(--size-md)",
128
+ "ds-lg": "var(--size-lg)",
129
+ "ds-xl": "var(--size-xl)"
130
+ },
131
+ maxWidth: {
132
+ layout: "var(--max-width)",
133
+ "layout-body": "var(--max-width-body)"
134
+ },
135
+ minWidth: {
136
+ "ds-xs": "var(--size-xs)",
137
+ "ds-sm": "var(--size-sm)",
138
+ "ds-md": "var(--size-md)",
139
+ "ds-lg": "var(--size-lg)",
140
+ "ds-xl": "var(--size-xl)"
141
+ },
142
+ opacity: {
143
+ "action-hover": "var(--action-hover-opacity)",
144
+ "action-selected": "var(--action-selected-opacity)",
145
+ "action-disabled": "var(--action-disabled-opacity)",
146
+ "action-focus": "var(--action-focus-opacity)",
147
+ "action-active": "var(--action-active-opacity)"
148
+ },
149
+ colors: {
150
+ "text-interactive": "var(--color-text-interactive)",
151
+ interactive: "var(--color-interactive)",
152
+ "interactive-hover": "var(--color-interactive-hover)",
153
+ "interactive-active": "var(--color-interactive-active)",
154
+ "interactive-selected": "var(--color-interactive-selected)",
155
+ "interactive-subtle": "var(--color-interactive-subtle)",
156
+ accent: "var(--color-accent)",
157
+ "accent-hover": "var(--color-accent-hover)",
158
+ "accent-subtle": "var(--color-accent-subtle)",
159
+ background: "var(--color-background)",
160
+ "layer-01": "var(--color-layer-01)",
161
+ "layer-02": "var(--color-layer-02)",
162
+ "layer-03": "var(--color-layer-03)",
163
+ overlay: "var(--color-overlay)",
164
+ field: "var(--color-field)",
165
+ "field-hover": "var(--color-field-hover)",
166
+ "text-primary": "var(--color-text-primary)",
167
+ "text-secondary": "var(--color-text-secondary)",
168
+ "text-tertiary": "var(--color-text-tertiary)",
169
+ "text-placeholder": "var(--color-text-placeholder)",
170
+ "text-helper": "var(--color-text-helper)",
171
+ "text-disabled": "var(--color-text-disabled)",
172
+ "text-error": "var(--color-text-error)",
173
+ "text-success": "var(--color-text-success)",
174
+ "text-warning": "var(--color-text-warning)",
175
+ "text-link": "var(--color-text-link)",
176
+ "text-on-color": "var(--color-text-on-color)",
177
+ "text-inverse": "var(--color-text-inverse)",
178
+ "text-brand": "var(--color-text-brand)",
179
+ "icon-primary": "var(--color-icon-primary)",
180
+ "icon-secondary": "var(--color-icon-secondary)",
181
+ "icon-disabled": "var(--color-icon-disabled)",
182
+ "icon-on-color": "var(--color-icon-on-color)",
183
+ "icon-interactive": "var(--color-icon-interactive)",
184
+ border: "var(--color-border-default)",
185
+ "border-subtle": "var(--color-border-subtle)",
186
+ "border-strong": "var(--color-border-strong)",
187
+ "border-interactive": "var(--color-border-interactive)",
188
+ "border-disabled": "var(--color-border-disabled)",
189
+ "border-error": "var(--color-border-error)",
190
+ "border-success": "var(--color-border-success)",
191
+ "border-warning": "var(--color-border-warning)",
192
+ focus: "var(--color-focus)",
193
+ "focus-inset": "var(--color-focus-inset)",
194
+ success: "var(--color-success)",
195
+ "success-surface": "var(--color-success-surface)",
196
+ error: "var(--color-error)",
197
+ "error-surface": "var(--color-error-surface)",
198
+ warning: "var(--color-warning)",
199
+ "warning-surface": "var(--color-warning-surface)",
200
+ info: "var(--color-info)",
201
+ "info-surface": "var(--color-info-surface)",
202
+ "skeleton-base": "var(--color-skeleton-base)",
203
+ "skeleton-shimmer": "var(--color-skeleton-shimmer)",
204
+ "category-teal": "var(--color-category-teal)",
205
+ "category-teal-surface": "var(--color-category-teal-surface)",
206
+ "category-teal-border": "var(--color-category-teal-border)",
207
+ "category-teal-text": "var(--color-category-teal-text)",
208
+ "category-amber": "var(--color-category-amber)",
209
+ "category-amber-surface": "var(--color-category-amber-surface)",
210
+ "category-amber-border": "var(--color-category-amber-border)",
211
+ "category-amber-text": "var(--color-category-amber-text)",
212
+ "category-slate": "var(--color-category-slate)",
213
+ "category-slate-surface": "var(--color-category-slate-surface)",
214
+ "category-slate-border": "var(--color-category-slate-border)",
215
+ "category-slate-text": "var(--color-category-slate-text)",
216
+ "category-indigo": "var(--color-category-indigo)",
217
+ "category-indigo-surface": "var(--color-category-indigo-surface)",
218
+ "category-indigo-border": "var(--color-category-indigo-border)",
219
+ "category-indigo-text": "var(--color-category-indigo-text)",
220
+ "category-cyan": "var(--color-category-cyan)",
221
+ "category-cyan-surface": "var(--color-category-cyan-surface)",
222
+ "category-cyan-border": "var(--color-category-cyan-border)",
223
+ "category-cyan-text": "var(--color-category-cyan-text)",
224
+ "category-orange": "var(--color-category-orange)",
225
+ "category-orange-surface": "var(--color-category-orange-surface)",
226
+ "category-orange-border": "var(--color-category-orange-border)",
227
+ "category-orange-text": "var(--color-category-orange-text)",
228
+ "category-emerald": "var(--color-category-emerald)",
229
+ "category-emerald-surface": "var(--color-category-emerald-surface)",
230
+ "category-emerald-border": "var(--color-category-emerald-border)",
231
+ "category-emerald-text": "var(--color-category-emerald-text)",
232
+ "interactive-disabled": "var(--color-interactive-disabled)",
233
+ "field-02": "var(--color-field-02)",
234
+ "field-02-hover": "var(--color-field-02-hover)",
235
+ "text-on-color-dark": "var(--color-text-on-color-dark)",
236
+ "text-link-hover": "var(--color-text-link-hover)",
237
+ "success-border": "var(--color-success-border)",
238
+ "error-border": "var(--color-error-border)",
239
+ "warning-border": "var(--color-warning-border)",
240
+ "info-border": "var(--color-info-border)",
241
+ "success-text": "var(--color-success-text)",
242
+ "error-text": "var(--color-error-text)",
243
+ "warning-text": "var(--color-warning-text)",
244
+ "info-text": "var(--color-info-text)",
245
+ divider: "var(--color-divider)",
246
+ "inset-glow": "var(--color-inset-glow)",
247
+ "inset-glow-strong": "var(--color-inset-glow-strong)",
248
+ "inset-glow-subtle": "var(--color-inset-glow-subtle)",
249
+ "surface-overlay-light": "var(--color-surface-overlay-light)",
250
+ "surface-overlay-dark": "var(--color-surface-overlay-dark)",
251
+ "layer-accent-subtle": "var(--color-layer-accent-subtle)",
252
+ "text-shadow": "var(--color-text-shadow)",
253
+ "error-hover": "var(--color-error-hover)",
254
+ "chart-1": "var(--chart-1)",
255
+ "chart-2": "var(--chart-2)",
256
+ "chart-3": "var(--chart-3)",
257
+ "chart-4": "var(--chart-4)",
258
+ "chart-5": "var(--chart-5)",
259
+ "chart-6": "var(--chart-6)",
260
+ "chart-7": "var(--chart-7)",
261
+ "chart-8": "var(--chart-8)"
262
+ },
263
+ keyframes: {
264
+ ripple: {
265
+ "0%": { transform: "translate(-50%, -50%) scale(0)", opacity: "1" },
266
+ "100%": { transform: "translate(-50%, -50%) scale(4)", opacity: "0" }
267
+ },
268
+ shake: {
269
+ "0%": { transform: "translateX(0)" },
270
+ "10%": { transform: "translateX(-3px)" },
271
+ "20%": { transform: "translateX(3px)" },
272
+ "30%": { transform: "translateX(-8px)" },
273
+ "40%": { transform: "translateX(8px)" },
274
+ "50%": { transform: "translateX(-5px)" },
275
+ "60%": { transform: "translateX(3px)" },
276
+ "70%, 100%": { transform: "translateX(0)" }
277
+ },
278
+ "progress-indeterminate": {
279
+ "0%": { transform: "translateX(-100%)" },
280
+ "100%": { transform: "translateX(250%)" }
281
+ },
282
+ "skeleton-shimmer": {
283
+ "0%": { backgroundPosition: "-200% 0" },
284
+ "100%": { backgroundPosition: "200% 0" }
285
+ },
286
+ "caret-blink": {
287
+ "0%,70%,100%": { opacity: "1" },
288
+ "20%,50%": { opacity: "0" }
289
+ }
290
+ },
291
+ animation: {
292
+ ripple: "ripple var(--duration-slow-01) linear",
293
+ "ripple-icon": "ripple var(--duration-moderate-02) linear forwards",
294
+ shake: "shake 1s var(--ease-productive-standard) infinite",
295
+ "progress-indeterminate": "progress-indeterminate var(--duration-slow-02) var(--ease-productive-standard) infinite",
296
+ "skeleton-shimmer": "skeleton-shimmer var(--duration-slow-02) var(--ease-linear) infinite",
297
+ "caret-blink": "caret-blink 1.25s ease-out infinite"
298
+ },
299
+ backgroundImage: {
300
+ "gradient-brand": "var(--gradient-brand-light)",
301
+ "gradient-brand-dark": "var(--gradient-brand-dark)"
302
+ },
303
+ boxShadow: {
304
+ "01": "var(--shadow-01)",
305
+ "02": "var(--shadow-02)",
306
+ "03": "var(--shadow-03)",
307
+ "04": "var(--shadow-04)",
308
+ "05": "var(--shadow-05)",
309
+ brand: "var(--shadow-brand)"
310
+ },
311
+ transitionDuration: {
312
+ instant: "var(--duration-instant)",
313
+ "fast-01": "var(--duration-fast-01)",
314
+ "fast-02": "var(--duration-fast-02)",
315
+ "moderate-01": "var(--duration-moderate-01)",
316
+ "moderate-02": "var(--duration-moderate-02)",
317
+ "slow-01": "var(--duration-slow-01)",
318
+ "slow-02": "var(--duration-slow-02)"
319
+ },
320
+ transitionTimingFunction: {
321
+ "productive-standard": "var(--ease-productive-standard)",
322
+ "productive-entrance": "var(--ease-productive-entrance)",
323
+ "productive-exit": "var(--ease-productive-exit)",
324
+ "expressive-standard": "var(--ease-expressive-standard)",
325
+ "expressive-entrance": "var(--ease-expressive-entrance)",
326
+ "expressive-exit": "var(--ease-expressive-exit)",
327
+ bounce: "var(--ease-bounce)",
328
+ linear: "var(--ease-linear)"
329
+ },
330
+ zIndex: {
331
+ base: "var(--z-base)",
332
+ raised: "var(--z-raised)",
333
+ dropdown: "var(--z-dropdown)",
334
+ sticky: "var(--z-sticky)",
335
+ overlay: "var(--z-overlay)",
336
+ modal: "var(--z-modal)",
337
+ toast: "var(--z-toast)",
338
+ tooltip: "var(--z-tooltip)"
339
+ }
340
+ }
341
+ }
342
+ };
343
+ module.exports = r;
344
+ module.exports.default = module.exports;
@@ -1 +1 @@
1
- {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/tailwind/preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,QAAA,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAkV3B,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/tailwind/preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,QAAA,MAAM,MAAM,EAAE,OAAO,CAAC,MAAM,CAuV3B,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,17 +1,22 @@
1
1
  const r = {
2
+ /**
3
+ * Dark mode uses the `.dark` class strategy. If your app uses `darkMode: 'media'`,
4
+ * set it explicitly in your own tailwind.config — your config takes precedence.
5
+ */
2
6
  darkMode: "class",
3
7
  theme: {
4
- // Breakpoints must be static values — CSS custom properties cannot be used
5
- // in @media queries (compiled at build time). These mirror the tokens in
6
- // semantic.css (--breakpoint-sm … --breakpoint-2xl).
7
- screens: {
8
- sm: "640px",
9
- md: "768px",
10
- lg: "1024px",
11
- xl: "1280px",
12
- "2xl": "1536px"
13
- },
14
8
  extend: {
9
+ // Breakpoints must be static values — CSS custom properties cannot be used
10
+ // in @media queries (compiled at build time). These mirror the tokens in
11
+ // semantic.css (--breakpoint-sm … --breakpoint-2xl).
12
+ // Placed inside `extend` so deployer breakpoints are merged, not replaced.
13
+ screens: {
14
+ sm: "640px",
15
+ md: "768px",
16
+ lg: "1024px",
17
+ xl: "1280px",
18
+ "2xl": "1536px"
19
+ },
15
20
  fontFamily: {
16
21
  sans: ["var(--font-sans)", "system-ui", "sans-serif"],
17
22
  display: ["var(--font-display)", "system-ui", "sans-serif"],
@@ -1,3 +1,4 @@
1
1
  @import './primitives.css';
2
2
  @import './semantic.css';
3
+ @import './typography.css';
3
4
  @import './typography-semantic.css';
@@ -2,9 +2,9 @@
2
2
  color-scheme: light;
3
3
 
4
4
  /* Font families — override these with next/font CSS variables */
5
- --font-sans: "Google Sans", system-ui, sans-serif;
6
- --font-display: "Google Sans", system-ui, sans-serif;
7
- --font-body: "Google Sans", system-ui, sans-serif;
5
+ --font-sans: "Inter", system-ui, sans-serif;
6
+ --font-display: "Inter", system-ui, sans-serif;
7
+ --font-body: "Inter", system-ui, sans-serif;
8
8
  --font-accent: Ranade, sans-serif;
9
9
  --font-mono: "SF Mono", "Fira Code", monospace;
10
10
 
@@ -8,17 +8,17 @@
8
8
 
9
9
  /* ── Font Faces ─────────────────────────────────────────────────── */
10
10
 
11
- /* Google Sans (primary UI font) — Variable font: supports weights 100-900 */
11
+ /* Inter (primary UI font) — Variable font: supports weights 100-900 */
12
12
  @font-face {
13
- font-family: 'Google Sans';
14
- src: url('../../fonts/GoogleSans-Variable.ttf') format('truetype');
13
+ font-family: 'Inter';
14
+ src: url('../../fonts/Inter-Variable.woff2') format('woff2');
15
15
  font-weight: 100 900;
16
16
  font-style: normal;
17
17
  font-display: swap;
18
18
  }
19
19
  @font-face {
20
- font-family: 'Google Sans';
21
- src: url('../../fonts/GoogleSans-Italic-Variable.ttf') format('truetype');
20
+ font-family: 'Inter';
21
+ src: url('../../fonts/Inter-Italic-Variable.woff2') format('woff2');
22
22
  font-weight: 100 900;
23
23
  font-style: italic;
24
24
  font-display: swap;
@@ -27,13 +27,13 @@
27
27
  /* Ranade (accent — brand moments, hero headings, special callouts) */
28
28
  @font-face {
29
29
  font-family: 'Ranade';
30
- src: url('../../fonts/Ranade-Variable.ttf') format('truetype');
30
+ src: url('../../fonts/Ranade-Variable.woff2') format('woff2');
31
31
  font-weight: 100 900;
32
32
  font-display: swap;
33
33
  }
34
34
  @font-face {
35
35
  font-family: 'Ranade';
36
- src: url('../../fonts/Ranade-VariableItalic.ttf') format('truetype');
36
+ src: url('../../fonts/Ranade-VariableItalic.woff2') format('woff2');
37
37
  font-weight: 100 900;
38
38
  font-style: italic;
39
39
  font-display: swap;
@@ -2,14 +2,14 @@
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const alertVariants: (props?: ({
5
- variant?: "error" | "warning" | "success" | "info" | "neutral" | null | undefined;
5
+ color?: "error" | "warning" | "success" | "info" | "neutral" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  /**
8
8
  * Props for Alert — an inline message block with a colored icon, optional title, optional body,
9
9
  * and an optional dismiss button. Renders with `role="alert"` for screen reader announcements.
10
10
  *
11
- * **Variants:** `info` (default, blue tones) | `success` | `warning` | `error` | `neutral`
12
- * The matching icon (info circle, checkmark, triangle, alert circle) is auto-selected by variant.
11
+ * **Colors:** `info` (default, blue tones) | `success` | `warning` | `error` | `neutral`
12
+ * The matching icon (info circle, checkmark, triangle, alert circle) is auto-selected by color.
13
13
  *
14
14
  * **Alert vs Banner:** Alert is inline (inside page content). Banner is a full-width notification
15
15
  * strip rendered at the top of a page/section (see `<Banner>`).
@@ -18,25 +18,25 @@ declare const alertVariants: (props?: ({
18
18
  *
19
19
  * @example
20
20
  * // Informational tip inside a settings form:
21
- * <Alert title="Tip" variant="info">
21
+ * <Alert title="Tip" color="info">
22
22
  * Changes take effect after you save and reload the page.
23
23
  * </Alert>
24
24
  *
25
25
  * @example
26
26
  * // Error feedback after a failed API call (dismissible):
27
- * <Alert variant="error" title="Save failed" onDismiss={() => setError(null)}>
27
+ * <Alert color="error" title="Save failed" onDismiss={() => setError(null)}>
28
28
  * Your changes could not be saved. Please try again.
29
29
  * </Alert>
30
30
  *
31
31
  * @example
32
32
  * // Success confirmation after publishing:
33
- * <Alert variant="success" title="Published!">
33
+ * <Alert color="success" title="Published!">
34
34
  * Your post is now live and visible to all subscribers.
35
35
  * </Alert>
36
36
  *
37
37
  * @example
38
38
  * // Neutral inline note (no colored intent):
39
- * <Alert variant="neutral">This field is auto-populated from your profile.</Alert>
39
+ * <Alert color="neutral">This field is auto-populated from your profile.</Alert>
40
40
  * // These are just a few ways — feel free to combine props creatively!
41
41
  */
42
42
  export interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
package/dist/ui/alert.js CHANGED
@@ -4,11 +4,11 @@ import { IconInfoCircle as i, IconAlertCircle as m, IconAlertTriangle as f, Icon
4
4
  import * as x from "react";
5
5
  import { cva as g } from "class-variance-authority";
6
6
  import { cn as p } from "./lib/utils.js";
7
- const v = g(
7
+ const h = g(
8
8
  "relative flex gap-ds-04 rounded-ds-lg border p-ds-05",
9
9
  {
10
10
  variants: {
11
- variant: {
11
+ color: {
12
12
  info: "bg-info-surface border-info-border text-info-text",
13
13
  success: "bg-success-surface border-success-border text-success-text",
14
14
  warning: "bg-warning-surface border-warning-border text-warning-text",
@@ -16,29 +16,29 @@ const v = g(
16
16
  neutral: "bg-layer-02 border-border text-text-primary [&>svg]:text-text-secondary"
17
17
  }
18
18
  },
19
- defaultVariants: { variant: "info" }
19
+ defaultVariants: { color: "info" }
20
20
  }
21
- ), h = {
21
+ ), v = {
22
22
  info: i,
23
23
  success: b,
24
24
  warning: f,
25
25
  error: m,
26
26
  neutral: i
27
27
  }, w = x.forwardRef(
28
- ({ className: n, variant: e = "info", title: o, onDismiss: s, children: a, ...c }, d) => {
29
- const l = h[e ?? "info"];
30
- return /* @__PURE__ */ t("div", { ref: d, className: p(v({ variant: e }), n), role: "alert", ...c, children: [
28
+ ({ className: n, color: e = "info", title: o, onDismiss: s, children: c, ...a }, d) => {
29
+ const l = v[e ?? "info"];
30
+ return /* @__PURE__ */ t("div", { ref: d, className: p(h({ color: e }), n), role: "alert", ...a, children: [
31
31
  /* @__PURE__ */ r(l, { className: "mt-ds-01 h-ico-md w-ico-md shrink-0", "aria-hidden": "true" }),
32
32
  /* @__PURE__ */ t("div", { className: "flex-1 min-w-0", children: [
33
33
  o && /* @__PURE__ */ r("p", { className: "text-ds-md font-semibold mb-ds-01", children: o }),
34
- /* @__PURE__ */ r("div", { className: "text-ds-md opacity-[0.9]", children: a })
34
+ /* @__PURE__ */ r("div", { className: "text-ds-md opacity-[0.9]", children: c })
35
35
  ] }),
36
36
  s && /* @__PURE__ */ r(
37
37
  "button",
38
38
  {
39
39
  type: "button",
40
40
  onClick: s,
41
- className: "shrink-0 rounded-ds-sm text-icon-secondary transition-colors hover:text-icon-primary hover:bg-field focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus",
41
+ className: "shrink-0 min-h-6 min-w-6 flex items-center justify-center rounded-ds-sm text-icon-secondary transition-colors hover:text-icon-primary hover:bg-field focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus",
42
42
  "aria-label": "Dismiss",
43
43
  children: /* @__PURE__ */ r(u, { className: "h-ico-sm w-ico-sm" })
44
44
  }
@@ -49,5 +49,5 @@ const v = g(
49
49
  w.displayName = "Alert";
50
50
  export {
51
51
  w as Alert,
52
- v as alertVariants
52
+ h as alertVariants
53
53
  };
@@ -21,7 +21,7 @@ type AutocompleteOption = {
21
21
  * <Autocomplete
22
22
  * options={[{ value: 'mumbai', label: 'Mumbai' }, { value: 'delhi', label: 'Delhi' }]}
23
23
  * value={selectedCity}
24
- * onChange={(opt) => setSelectedCity(opt)}
24
+ * onValueChange={(opt) => setSelectedCity(opt)}
25
25
  * placeholder="Search cities..."
26
26
  * />
27
27
  *
@@ -29,7 +29,7 @@ type AutocompleteOption = {
29
29
  * // Employee name lookup with custom empty text:
30
30
  * <Autocomplete
31
31
  * options={employees.map(e => ({ value: e.id, label: e.fullName }))}
32
- * onChange={(opt) => setAssignee(opt.value)}
32
+ * onValueChange={(opt) => setAssignee(opt.value)}
33
33
  * emptyText="No employees found"
34
34
  * placeholder="Search employees..."
35
35
  * />
@@ -38,7 +38,7 @@ type AutocompleteOption = {
38
38
  type AutocompleteProps = {
39
39
  options: AutocompleteOption[];
40
40
  value?: AutocompleteOption | null;
41
- onChange?: (option: AutocompleteOption) => void;
41
+ onValueChange?: (option: AutocompleteOption) => void;
42
42
  placeholder?: string;
43
43
  emptyText?: string;
44
44
  disabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/ui/autocomplete.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,QAAA,MAAM,YAAY,4FAyKjB,CAAA;AAGD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/ui/autocomplete.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACjC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACpD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,QAAA,MAAM,YAAY,4FAyKjB,CAAA;AAGD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,CAAA"}
@@ -6,7 +6,7 @@ const T = t.forwardRef(
6
6
  ({
7
7
  options: x,
8
8
  value: o,
9
- onChange: u,
9
+ onValueChange: u,
10
10
  placeholder: D,
11
11
  emptyText: I = "No options",
12
12
  disabled: h,
@@ -2,15 +2,18 @@
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const badgeVariants: (props?: ({
5
- variant?: "accent" | "error" | "warning" | "success" | "cyan" | "indigo" | "orange" | "teal" | "solid" | "info" | "neutral" | "brand" | "amber" | "slate" | "emerald" | null | undefined;
5
+ variant?: "solid" | "outline" | "subtle" | null | undefined;
6
+ color?: "accent" | "default" | "error" | "warning" | "success" | "cyan" | "indigo" | "orange" | "teal" | "info" | "brand" | "amber" | "slate" | "emerald" | null | undefined;
6
7
  size?: "sm" | "md" | "lg" | null | undefined;
7
8
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
9
  /**
9
- * Props for Badge — a compact inline label with 15 semantic + categorical variants, an optional
10
+ * Props for Badge — a compact inline label with a two-axis variant system, an optional
10
11
  * leading dot indicator, and a dismissible close button.
11
12
  *
12
- * **15 variants:** `neutral` (default) | `solid` (brand fill) | `info` | `success` | `error` |
13
- * `warning` | `brand` | `accent` | `teal` | `amber` | `slate` | `indigo` | `cyan` | `orange` | `emerald`
13
+ * **Two axes:**
14
+ * - `variant` controls **visual style**: `"subtle"` (default, surface bg) | `"solid"` (filled) | `"outline"` (border only)
15
+ * - `color` controls **semantic intent/category**: `"default"` | `"info"` | `"success"` | `"error"` |
16
+ * `"warning"` | `"brand"` | `"accent"` | `"teal"` | `"amber"` | `"slate"` | `"indigo"` | `"cyan"` | `"orange"` | `"emerald"`
14
17
  *
15
18
  * **Comparison with Chip:** Badge is a pure display label (no onClick, no delete handler).
16
19
  * Chip (`<Chip>`) is interactive — use Chip when users can click or dismiss the tag.
@@ -20,7 +23,7 @@ declare const badgeVariants: (props?: ({
20
23
  *
21
24
  * @example
22
25
  * // Status badge in a table cell:
23
- * <Badge variant="success">Active</Badge>
26
+ * <Badge color="success">Active</Badge>
24
27
  *
25
28
  * @example
26
29
  * // Notification count with dot indicator (solid fill for high contrast):
@@ -28,11 +31,11 @@ declare const badgeVariants: (props?: ({
28
31
  *
29
32
  * @example
30
33
  * // Dismissible category filter (e.g. in a filter bar):
31
- * <Badge variant="teal" onDismiss={() => removeFilter('teal')}>Teal team</Badge>
34
+ * <Badge color="teal" onDismiss={() => removeFilter('teal')}>Teal team</Badge>
32
35
  *
33
36
  * @example
34
37
  * // Error badge for a failed job in a pipeline view:
35
- * <Badge variant="error" size="lg">Build failed</Badge>
38
+ * <Badge color="error" size="lg">Build failed</Badge>
36
39
  * // These are just a few ways — feel free to combine props creatively!
37
40
  */
38
41
  export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
@@ -1 +1 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,aAAa;;;8EA+ClB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAC3C,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,KAAK,oFAwBV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,aAAa;;;;8EAoFlB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAC3C,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,QAAA,MAAM,KAAK,oFAwBV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}