@enya-learning/nova 0.5.0 → 0.7.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.
- package/README.md +8 -10
- package/dist/chunks/dist-fahbq1psobj0ox6s.js.map +1 -1
- package/dist/chunks/dist-i6l6wqicjhnap81o.js +37 -0
- package/dist/chunks/{dist-o8x0ip0z71xkr2oh.js.map → dist-i6l6wqicjhnap81o.js.map} +1 -1
- package/dist/chunks/utils-chr77evsz8gs6wle.js +10 -0
- package/dist/chunks/{utils-kyb5nny4y41y7hd8.js.map → utils-chr77evsz8gs6wle.js.map} +1 -1
- package/dist/chunks/{vendor-styling-eeiy57tyznmxsfky.js → vendor-styling-bq164a52kub0yzw7.js} +84 -81
- package/dist/chunks/{vendor-styling-eeiy57tyznmxsfky.js.map → vendor-styling-bq164a52kub0yzw7.js.map} +1 -1
- package/dist/chunks/{vendor-utils-egkaeebaqpft6cxj.js → vendor-utils-dzqqqwem43r86lbz.js} +48 -48
- package/dist/chunks/{vendor-utils-egkaeebaqpft6cxj.js.map → vendor-utils-dzqqqwem43r86lbz.js.map} +1 -1
- package/dist/components/accordion.js +24 -21
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.js +3 -3
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js +2 -2
- package/dist/components/aspect-ratio.js +1 -1
- package/dist/components/avatar.js +24 -24
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.js +13 -13
- package/dist/components/badge.js.map +1 -1
- package/dist/components/box.js +16 -0
- package/dist/components/box.js.map +1 -0
- package/dist/components/breadcrumb.js +29 -25
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button-group.js +4 -4
- package/dist/components/button-group.js.map +1 -1
- package/dist/components/button.js +12 -12
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js +540 -535
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/carousel.js +93 -85
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/chart.js +1462 -1457
- package/dist/components/chart.js.map +1 -1
- package/dist/components/checkbox.js +7 -6
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/combobox.js +67 -54
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/command.js +104 -97
- package/dist/components/command.js.map +1 -1
- package/dist/components/context-menu.js +41 -37
- package/dist/components/context-menu.js.map +1 -1
- package/dist/components/dialog.js +26 -25
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/drawer.js +3 -3
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown-menu.js +40 -36
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/empty.js +3 -3
- package/dist/components/empty.js.map +1 -1
- package/dist/components/enya-logo.js +88 -78
- package/dist/components/enya-logo.js.map +1 -1
- package/dist/components/field.js +3 -3
- package/dist/components/field.js.map +1 -1
- package/dist/components/heading.js +39 -0
- package/dist/components/heading.js.map +1 -0
- package/dist/components/hover-card.js +1 -1
- package/dist/components/hover-card.js.map +1 -1
- package/dist/components/input-group.js +15 -15
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/input-otp.js +81 -79
- package/dist/components/input-otp.js.map +1 -1
- package/dist/components/input.js +2 -2
- package/dist/components/input.js.map +1 -1
- package/dist/components/item.js +36 -36
- package/dist/components/item.js.map +1 -1
- package/dist/components/kbd.js +7 -7
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/menubar.js +53 -52
- package/dist/components/menubar.js.map +1 -1
- package/dist/components/native-select.js +21 -19
- package/dist/components/native-select.js.map +1 -1
- package/dist/components/navigation-menu.js +23 -21
- package/dist/components/navigation-menu.js.map +1 -1
- package/dist/components/pagination.js +33 -30
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress.js +5 -5
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-group.js +14 -14
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable.js +120 -117
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/select.js +65 -58
- package/dist/components/select.js.map +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/sheet.js +23 -22
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +84 -80
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/skeleton.js +2 -2
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/slider.js +8 -8
- package/dist/components/slider.js.map +1 -1
- package/dist/components/sonner.js +229 -215
- package/dist/components/sonner.js.map +1 -1
- package/dist/components/spinner.js +10 -8
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/switch.js +6 -6
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.js +15 -15
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.js +16 -16
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text.js +47 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/textarea.js +5 -5
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/toggle-group.js +2 -2
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +8 -8
- package/dist/components/toggle.js.map +1 -1
- package/dist/components/tooltip.js +6 -6
- package/dist/components/tooltip.js.map +1 -1
- package/dist/index.js +31 -16
- package/dist/src/components/box/box.d.ts +7 -0
- package/dist/src/components/box/index.d.ts +1 -0
- package/dist/src/components/heading/heading.d.ts +15 -0
- package/dist/src/components/heading/index.d.ts +1 -0
- package/dist/src/components/spinner/spinner.d.ts +2 -1
- package/dist/src/components/text/index.d.ts +1 -0
- package/dist/src/components/text/text.d.ts +13 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/styles/nova-binding.css +264 -266
- package/dist/styles/nova.css +158 -49
- package/dist/styles/typography.css +3 -123
- package/dist/utils.js +1 -1
- package/package.json +29 -12
- package/src/eslint/no-primitive-colors.js +2 -2
- package/src/eslint/no-primitive-colors.test.ts +1 -1
- package/dist/chunks/dist-o8x0ip0z71xkr2oh.js +0 -37
- package/dist/chunks/utils-kyb5nny4y41y7hd8.js +0 -10
- package/dist/styles/theme-nova.css +0 -197
package/dist/styles/nova.css
CHANGED
|
@@ -11,47 +11,160 @@
|
|
|
11
11
|
@source "../**/*.{ts,tsx}";
|
|
12
12
|
|
|
13
13
|
/*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Semantic color tokens — maps palette stops to meaning (--color-primary,
|
|
15
|
+
* --color-surface-1, --color-destructive, etc.) with light-dark() for
|
|
16
|
+
* automatic light/dark switching. Raw palette values live in
|
|
17
|
+
* nova-binding.css and are referenced here.
|
|
18
|
+
*/
|
|
19
|
+
@theme {
|
|
20
|
+
--color-surface-1: light-dark(var(--color-white), var(--color-black));
|
|
21
|
+
--color-surface-2: light-dark(var(--color-grey-100), var(--color-grey-900));
|
|
22
|
+
|
|
23
|
+
--color-surface-3: light-dark(var(--color-grey-200), var(--color-grey-800));
|
|
24
|
+
|
|
25
|
+
--color-foreground: light-dark(var(--color-grey-900), var(--color-grey-100));
|
|
26
|
+
|
|
27
|
+
--color-accent: light-dark(var(--color-brand-500), var(--color-brand-400));
|
|
28
|
+
--color-accent-foreground: light-dark(
|
|
29
|
+
var(--color-white),
|
|
30
|
+
var(--color-brand-900)
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
--color-info: light-dark(var(--color-blue-500), var(--color-blue-400));
|
|
34
|
+
--color-info-foreground: light-dark(
|
|
35
|
+
var(--color-white),
|
|
36
|
+
var(--color-grey-900)
|
|
37
|
+
);
|
|
38
|
+
--color-info-soft: light-dark(var(--color-blue-50), var(--color-blue-950));
|
|
39
|
+
--color-info-soft-foreground: light-dark(
|
|
40
|
+
var(--color-blue-500),
|
|
41
|
+
var(--color-blue-300)
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
--color-success: light-dark(
|
|
45
|
+
var(--color-emerald-500),
|
|
46
|
+
var(--color-emerald-400)
|
|
47
|
+
);
|
|
48
|
+
--color-success-foreground: light-dark(
|
|
49
|
+
var(--color-emerald-50),
|
|
50
|
+
var(--color-emerald-900)
|
|
51
|
+
);
|
|
52
|
+
--color-success-soft: light-dark(
|
|
53
|
+
var(--color-emerald-50),
|
|
54
|
+
var(--color-emerald-950)
|
|
55
|
+
);
|
|
56
|
+
--color-success-soft-foreground: light-dark(
|
|
57
|
+
var(--color-emerald-500),
|
|
58
|
+
var(--color-emerald-300)
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
--color-warning: light-dark(var(--color-amber-500), var(--color-amber-400));
|
|
62
|
+
--color-warning-foreground: light-dark(
|
|
63
|
+
var(--color-white),
|
|
64
|
+
var(--color-amber-900)
|
|
65
|
+
);
|
|
66
|
+
--color-warning-soft: light-dark(
|
|
67
|
+
var(--color-amber-50),
|
|
68
|
+
var(--color-amber-950)
|
|
69
|
+
);
|
|
70
|
+
--color-warning-soft-foreground: light-dark(
|
|
71
|
+
var(--color-amber-500),
|
|
72
|
+
var(--color-amber-300)
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
--color-destructive: light-dark(var(--color-red-600), var(--color-red-400));
|
|
76
|
+
--color-destructive-foreground: light-dark(
|
|
77
|
+
var(--color-white),
|
|
78
|
+
var(--color-red-900)
|
|
79
|
+
);
|
|
80
|
+
--color-destructive-soft: light-dark(
|
|
81
|
+
var(--color-red-50),
|
|
82
|
+
var(--color-red-950)
|
|
83
|
+
);
|
|
84
|
+
--color-destructive-soft-foreground: light-dark(
|
|
85
|
+
var(--color-red-500),
|
|
86
|
+
var(--color-red-300)
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
--color-border: light-dark(var(--color-grey-300), var(--color-grey-700));
|
|
90
|
+
--color-ring: light-dark(var(--color-brand-500), var(--color-brand-400));
|
|
91
|
+
|
|
92
|
+
--color-chart-1: light-dark(var(--color-brand-600), var(--color-brand-400));
|
|
93
|
+
--color-chart-2: light-dark(
|
|
94
|
+
var(--color-emerald-800),
|
|
95
|
+
var(--color-emerald-200)
|
|
96
|
+
);
|
|
97
|
+
--color-chart-3: light-dark(var(--color-yellow-600), var(--color-yellow-400));
|
|
98
|
+
--color-chart-4: light-dark(var(--color-blue-800), var(--color-blue-400));
|
|
99
|
+
--color-chart-5: light-dark(var(--color-red-600), var(--color-red-400));
|
|
100
|
+
|
|
101
|
+
--color-sidebar: light-dark(var(--color-grey-50), var(--color-grey-950));
|
|
102
|
+
--color-sidebar-foreground: light-dark(
|
|
103
|
+
var(--color-grey-900),
|
|
104
|
+
var(--color-grey-100)
|
|
105
|
+
);
|
|
106
|
+
--color-sidebar-primary: light-dark(
|
|
107
|
+
var(--color-brand-600),
|
|
108
|
+
var(--color-brand-400)
|
|
109
|
+
);
|
|
110
|
+
--color-sidebar-primary-foreground: light-dark(
|
|
111
|
+
var(--color-grey-100),
|
|
112
|
+
var(--color-grey-900)
|
|
113
|
+
);
|
|
114
|
+
--color-sidebar-accent: light-dark(
|
|
115
|
+
var(--color-grey-100),
|
|
116
|
+
var(--color-grey-800)
|
|
117
|
+
);
|
|
118
|
+
--color-sidebar-accent-foreground: light-dark(
|
|
119
|
+
var(--color-grey-900),
|
|
120
|
+
var(--color-grey-100)
|
|
121
|
+
);
|
|
122
|
+
--color-sidebar-border: light-dark(
|
|
123
|
+
var(--color-grey-200),
|
|
124
|
+
var(--color-grey-800)
|
|
125
|
+
);
|
|
126
|
+
--color-sidebar-ring: light-dark(
|
|
127
|
+
var(--color-brand-600),
|
|
128
|
+
var(--color-brand-400)
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
--color-primary: light-dark(var(--color-grey-900), var(--color-grey-100));
|
|
132
|
+
--color-primary-foreground: light-dark(
|
|
133
|
+
var(--color-grey-50),
|
|
134
|
+
var(--color-grey-900)
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
--color-surface-muted: light-dark(
|
|
138
|
+
var(--color-grey-50),
|
|
139
|
+
var(--color-grey-950)
|
|
140
|
+
);
|
|
141
|
+
--color-muted-foreground: light-dark(
|
|
142
|
+
var(--color-grey-500),
|
|
143
|
+
var(--color-grey-400)
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
/*------ TO BE REMOVED -----*/
|
|
147
|
+
|
|
148
|
+
--color-card: light-dark(var(--color-grey-50), var(--color-grey-900));
|
|
149
|
+
--color-card-foreground: light-dark(
|
|
150
|
+
var(--color-grey-900),
|
|
151
|
+
var(--color-grey-100)
|
|
152
|
+
);
|
|
153
|
+
--color-popover: light-dark(var(--color-grey-50), var(--color-grey-900));
|
|
154
|
+
--color-popover-foreground: light-dark(
|
|
155
|
+
var(--color-grey-900),
|
|
156
|
+
var(--color-grey-100)
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
* Nova-owned theme extensions (radius scale, spacing scale, fonts) that
|
|
162
|
+
* don't have a bare equivalent elsewhere. Spacing keys stay nova- prefixed
|
|
163
|
+
* on purpose — they use literal pixel values (spacing-nova-4 = 4px), not
|
|
164
|
+
* Tailwind's multiplier scale, so a bare --spacing-4 would silently
|
|
165
|
+
* override Tailwind's own numeric spacing utilities for any consumer.
|
|
17
166
|
*/
|
|
18
167
|
@theme inline {
|
|
19
|
-
--color-background: var(--color-nova-surface-1);
|
|
20
|
-
--color-foreground: var(--color-nova-foreground);
|
|
21
|
-
--color-card: var(--color-nova-card);
|
|
22
|
-
--color-card-foreground: var(--color-nova-card-foreground);
|
|
23
|
-
--color-popover: var(--color-nova-popover);
|
|
24
|
-
--color-popover-foreground: var(--color-nova-popover-foreground);
|
|
25
|
-
--color-primary: var(--color-nova-primary);
|
|
26
|
-
--color-primary-foreground: var(--color-nova-primary-foreground);
|
|
27
|
-
--color-secondary: var(--color-nova-surface-2);
|
|
28
|
-
--color-secondary-foreground: var(--color-nova-foreground);
|
|
29
|
-
--color-muted: var(--color-nova-surface-muted);
|
|
30
|
-
--color-muted-foreground: var(--color-nova-muted-foreground);
|
|
31
|
-
--color-accent: var(--color-nova-accent);
|
|
32
|
-
--color-accent-foreground: var(--color-nova-accent-foreground);
|
|
33
|
-
--color-destructive: var(--color-nova-destructive);
|
|
34
|
-
--color-destructive-foreground: var(--color-nova-destructive-foreground);
|
|
35
|
-
--color-border: var(--color-nova-border);
|
|
36
|
-
--color-input: var(--color-nova-border);
|
|
37
|
-
--color-ring: var(--color-nova-ring);
|
|
38
|
-
--color-chart-1: var(--color-nova-chart-1);
|
|
39
|
-
--color-chart-2: var(--color-nova-chart-2);
|
|
40
|
-
--color-chart-3: var(--color-nova-chart-3);
|
|
41
|
-
--color-chart-4: var(--color-nova-chart-4);
|
|
42
|
-
--color-chart-5: var(--color-nova-chart-5);
|
|
43
|
-
--color-sidebar: var(--color-nova-sidebar);
|
|
44
|
-
--color-sidebar-foreground: var(--color-nova-sidebar-foreground);
|
|
45
|
-
--color-sidebar-primary: var(--color-nova-sidebar-primary);
|
|
46
|
-
--color-sidebar-primary-foreground: var(
|
|
47
|
-
--color-nova-sidebar-primary-foreground
|
|
48
|
-
);
|
|
49
|
-
--color-sidebar-accent: var(--color-nova-sidebar-accent);
|
|
50
|
-
--color-sidebar-accent-foreground: var(
|
|
51
|
-
--color-nova-sidebar-accent-foreground
|
|
52
|
-
);
|
|
53
|
-
--color-sidebar-border: var(--color-nova-sidebar-border);
|
|
54
|
-
--color-sidebar-ring: var(--color-nova-sidebar-ring);
|
|
55
168
|
--radius-sm: 0.375rem;
|
|
56
169
|
--radius-md: 0.5rem;
|
|
57
170
|
--radius-lg: 0.5rem;
|
|
@@ -79,7 +192,7 @@
|
|
|
79
192
|
@apply border-border outline-ring/50;
|
|
80
193
|
}
|
|
81
194
|
body {
|
|
82
|
-
@apply bg-
|
|
195
|
+
@apply bg-surface-1 text-foreground;
|
|
83
196
|
}
|
|
84
197
|
button:not(:disabled),
|
|
85
198
|
[role="button"]:not(:disabled) {
|
|
@@ -94,23 +207,19 @@
|
|
|
94
207
|
@source "../chunks/*.js";
|
|
95
208
|
@source "../index.js";
|
|
96
209
|
|
|
97
|
-
/* prettier-ignore */
|
|
98
|
-
@source inline("text-heading-72 text-heading-64 text-heading-56 text-heading-48 text-heading-40 text-heading-32 text-heading-24 text-heading-20 text-heading-16 text-heading-14");
|
|
99
210
|
/* prettier-ignore */
|
|
100
211
|
@source inline("text-button-24 text-button-20 text-button-16 text-button-14 text-button-12");
|
|
101
212
|
/* prettier-ignore */
|
|
102
213
|
@source inline("text-label-20 text-label-18 text-label-16 text-label-14 text-label-14-mono text-label-13 text-label-13-mono text-label-12 text-label-12-mono");
|
|
103
214
|
/* prettier-ignore */
|
|
104
|
-
@source inline("text-
|
|
105
|
-
/* prettier-ignore */
|
|
106
|
-
@source inline("bg-nova-success text-nova-success-foreground bg-nova-success-soft text-nova-success-soft-foreground bg-nova-warning text-nova-warning-foreground bg-nova-warning-soft text-nova-warning-soft-foreground bg-nova-destructive bg-nova-destructive-soft text-nova-destructive-foreground text-nova-destructive-soft-foreground bg-nova-info text-nova-info-foreground bg-nova-info-soft text-nova-info-soft-foreground");
|
|
215
|
+
@source inline("bg-success text-success-foreground bg-success-soft text-success-soft-foreground bg-warning text-warning-foreground bg-warning-soft text-warning-soft-foreground bg-destructive bg-destructive-soft text-destructive-foreground text-destructive-soft-foreground bg-info text-info-foreground bg-info-soft text-info-soft-foreground");
|
|
107
216
|
/* prettier-ignore */
|
|
108
|
-
@source inline("text-
|
|
217
|
+
@source inline("text-foreground bg-surface-1 bg-surface-2 bg-surface-3 bg-accent text-accent-foreground border-border ring-ring");
|
|
109
218
|
/* prettier-ignore */
|
|
110
|
-
@source inline("bg-
|
|
219
|
+
@source inline("bg-chart-1 bg-chart-2 bg-chart-3 bg-chart-4 bg-chart-5");
|
|
111
220
|
/* prettier-ignore */
|
|
112
|
-
@source inline("bg-
|
|
221
|
+
@source inline("bg-sidebar text-sidebar-foreground bg-sidebar-primary text-sidebar-primary-foreground bg-sidebar-accent text-sidebar-accent-foreground border-sidebar-border ring-sidebar-ring");
|
|
113
222
|
/* prettier-ignore */
|
|
114
|
-
@source inline("bg-
|
|
223
|
+
@source inline("bg-primary text-primary-foreground bg-surface-muted text-muted-foreground bg-card text-card-foreground bg-popover text-popover-foreground");
|
|
115
224
|
|
|
116
225
|
/* Component-specific styles added here as components are built */
|
|
@@ -1,77 +1,7 @@
|
|
|
1
|
-
/* Geist-style typography utilities.
|
|
1
|
+
/* Geist-style typography utilities for labels and button text.
|
|
2
|
+
Headings and body copy are set through the Heading and Text components instead.
|
|
2
3
|
Each class pre-sets font-size, line-height, letter-spacing, and font-weight.
|
|
3
|
-
All classes work with Tailwind variants: md:text-
|
|
4
|
-
|
|
5
|
-
/* ─── Headings ─────────────────────────────────────────────────────────────── */
|
|
6
|
-
|
|
7
|
-
@utility text-heading-72 {
|
|
8
|
-
font-size: 4.5rem;
|
|
9
|
-
line-height: 4.5rem;
|
|
10
|
-
letter-spacing: -0.02em;
|
|
11
|
-
font-weight: 500;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@utility text-heading-64 {
|
|
15
|
-
font-size: 4rem;
|
|
16
|
-
line-height: 4rem;
|
|
17
|
-
letter-spacing: -0.02em;
|
|
18
|
-
font-weight: 500;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@utility text-heading-56 {
|
|
22
|
-
font-size: 3.5rem;
|
|
23
|
-
line-height: 3.5rem;
|
|
24
|
-
letter-spacing: -0.02em;
|
|
25
|
-
font-weight: 500;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@utility text-heading-48 {
|
|
29
|
-
font-size: 3rem;
|
|
30
|
-
line-height: 3.5rem;
|
|
31
|
-
letter-spacing: -0.02em;
|
|
32
|
-
font-weight: 500;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@utility text-heading-40 {
|
|
36
|
-
font-size: 2.5rem;
|
|
37
|
-
line-height: 3rem;
|
|
38
|
-
letter-spacing: -0.02em;
|
|
39
|
-
font-weight: 500;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@utility text-heading-32 {
|
|
43
|
-
font-size: 2rem;
|
|
44
|
-
line-height: 2.5rem;
|
|
45
|
-
letter-spacing: -0.02em;
|
|
46
|
-
font-weight: 500;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@utility text-heading-24 {
|
|
50
|
-
font-size: 1.5rem;
|
|
51
|
-
line-height: 2rem;
|
|
52
|
-
letter-spacing: -0.02em;
|
|
53
|
-
font-weight: 500;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@utility text-heading-20 {
|
|
57
|
-
font-size: 1.25rem;
|
|
58
|
-
line-height: 1.625;
|
|
59
|
-
letter-spacing: -0.02em;
|
|
60
|
-
font-weight: 500;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@utility text-heading-16 {
|
|
64
|
-
font-size: 1rem;
|
|
65
|
-
line-height: 1.5;
|
|
66
|
-
letter-spacing: -0.02em;
|
|
67
|
-
font-weight: 500;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
@utility text-heading-14 {
|
|
71
|
-
font-size: 0.875rem;
|
|
72
|
-
line-height: 1.25;
|
|
73
|
-
font-weight: 500;
|
|
74
|
-
}
|
|
4
|
+
All classes work with Tailwind variants: md:text-label-16, hover:text-label-14, etc. */
|
|
75
5
|
|
|
76
6
|
/* ─── Buttons ──────────────────────────────────────────────────────────────── */
|
|
77
7
|
|
|
@@ -175,53 +105,3 @@
|
|
|
175
105
|
font-weight: 400;
|
|
176
106
|
font-family: var(--font-mono);
|
|
177
107
|
}
|
|
178
|
-
|
|
179
|
-
/* ─── Copy ─────────────────────────────────────────────────────────────────── */
|
|
180
|
-
|
|
181
|
-
@utility text-copy-24 {
|
|
182
|
-
font-size: 1.5rem;
|
|
183
|
-
line-height: 1.6667;
|
|
184
|
-
font-weight: 400;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
@utility text-copy-20 {
|
|
188
|
-
font-size: 1.25rem;
|
|
189
|
-
line-height: 1.6;
|
|
190
|
-
font-weight: 400;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
@utility text-copy-18 {
|
|
194
|
-
font-size: 1.125rem;
|
|
195
|
-
line-height: 1.5556;
|
|
196
|
-
font-weight: 400;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
@utility text-copy-16 {
|
|
200
|
-
font-size: 1rem;
|
|
201
|
-
line-height: 1.625;
|
|
202
|
-
font-weight: 400;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
@utility text-copy-14 {
|
|
206
|
-
font-size: 0.875rem;
|
|
207
|
-
line-height: 1.7143;
|
|
208
|
-
font-weight: 400;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
@utility text-copy-13 {
|
|
212
|
-
font-size: 0.8125rem;
|
|
213
|
-
line-height: 1.5385;
|
|
214
|
-
font-weight: 400;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
@utility text-copy-13-mono {
|
|
218
|
-
font-size: 0.8125rem;
|
|
219
|
-
line-height: 1.5385;
|
|
220
|
-
font-weight: 400;
|
|
221
|
-
font-family: var(--font-mono);
|
|
222
|
-
}
|
|
223
|
-
@utility text-copy-12 {
|
|
224
|
-
font-size: 0.75rem;
|
|
225
|
-
line-height: 150%;
|
|
226
|
-
font-weight: 400;
|
|
227
|
-
}
|
package/dist/utils.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enya-learning/nova",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"zod": "^4.4.3"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"
|
|
30
|
+
"@hugeicons/core-free-icons": "^4.2.2",
|
|
31
|
+
"@hugeicons/react": "^1.1.9",
|
|
31
32
|
"react": "^19.2.6",
|
|
32
33
|
"react-dom": "^19.2.6"
|
|
33
34
|
},
|
|
@@ -43,8 +44,7 @@
|
|
|
43
44
|
"@types/react": "^19",
|
|
44
45
|
"@types/react-dom": "^19",
|
|
45
46
|
"@vitejs/plugin-react": "^6.0.2",
|
|
46
|
-
"@vitest/ui": "
|
|
47
|
-
"oxlint": "latest",
|
|
47
|
+
"@vitest/ui": "4.1.10",
|
|
48
48
|
"plop": "^4.0.0",
|
|
49
49
|
"react-docgen-typescript": "^2.4.0",
|
|
50
50
|
"shadcn": "^4.10.0",
|
|
@@ -52,9 +52,10 @@
|
|
|
52
52
|
"tailwindcss": "^4",
|
|
53
53
|
"tsx": "^4.22.4",
|
|
54
54
|
"typescript": "~6",
|
|
55
|
-
"vite": "
|
|
55
|
+
"vite": "npm:@voidzero-dev/vite-plus-core@0.2.6",
|
|
56
56
|
"vite-plugin-dts": "^5.0.2",
|
|
57
|
-
"vitest": "
|
|
57
|
+
"vitest": "4.1.10",
|
|
58
|
+
"vite-plus": "0.2.6"
|
|
58
59
|
},
|
|
59
60
|
"exports": {
|
|
60
61
|
".": {
|
|
@@ -67,6 +68,22 @@
|
|
|
67
68
|
"types": "./dist/src/components/button/index.d.ts",
|
|
68
69
|
"default": "./dist/components/button.js"
|
|
69
70
|
},
|
|
71
|
+
"./components/heading": {
|
|
72
|
+
"types": "./dist/src/components/heading/index.d.ts",
|
|
73
|
+
"default": "./dist/components/heading.js"
|
|
74
|
+
},
|
|
75
|
+
"./components/text": {
|
|
76
|
+
"types": "./dist/src/components/text/index.d.ts",
|
|
77
|
+
"default": "./dist/components/text.js"
|
|
78
|
+
},
|
|
79
|
+
"./components/box": {
|
|
80
|
+
"types": "./dist/src/components/box/index.d.ts",
|
|
81
|
+
"default": "./dist/components/box.js"
|
|
82
|
+
},
|
|
83
|
+
"./components/empty": {
|
|
84
|
+
"types": "./dist/src/components/empty/index.d.ts",
|
|
85
|
+
"default": "./dist/components/empty.js"
|
|
86
|
+
},
|
|
70
87
|
"./components/button-group": {
|
|
71
88
|
"types": "./dist/src/components/button-group/index.d.ts",
|
|
72
89
|
"default": "./dist/components/button-group.js"
|
|
@@ -114,14 +131,14 @@
|
|
|
114
131
|
"*.css"
|
|
115
132
|
],
|
|
116
133
|
"scripts": {
|
|
117
|
-
"build": "
|
|
118
|
-
"dev": "
|
|
134
|
+
"build": "vp build --mode production && tsx scripts/css-build.ts",
|
|
135
|
+
"dev": "vp build --watch --mode development",
|
|
119
136
|
"clean": "rm -rf dist",
|
|
120
|
-
"lint": "
|
|
121
|
-
"format": "
|
|
137
|
+
"lint": "vp lint src",
|
|
138
|
+
"format": "vp fmt \"**/*.{ts,tsx}\"",
|
|
122
139
|
"typecheck": "tsc --noEmit",
|
|
123
|
-
"test": "
|
|
124
|
-
"test:watch": "
|
|
140
|
+
"test": "vp test run",
|
|
141
|
+
"test:watch": "vp test",
|
|
125
142
|
"storybook": "storybook dev -p 6006",
|
|
126
143
|
"storybook:build": "storybook build",
|
|
127
144
|
"generate-docs": "tsx scripts/generate-docs.ts",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Flags raw Tailwind palette classes (e.g. bg-blue-500, text-red-600, bg-white)
|
|
5
5
|
* in className / class attributes and in cn/clsx/cva/twMerge call arguments.
|
|
6
|
-
* Consumers should use Nova semantic tokens instead (bg-
|
|
6
|
+
* Consumers should use Nova semantic tokens instead (bg-primary, bg-surface-1, etc.).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
const PREFIXES = [
|
|
@@ -89,7 +89,7 @@ export const noPrimitiveColors = {
|
|
|
89
89
|
messages: {
|
|
90
90
|
noPrimitive:
|
|
91
91
|
'Raw Tailwind color "{{match}}" — use a Nova semantic token instead ' +
|
|
92
|
-
"(e.g. bg-
|
|
92
|
+
"(e.g. bg-surface-1, text-foreground, bg-primary, bg-white). " +
|
|
93
93
|
"See the Nova Colours docs.",
|
|
94
94
|
},
|
|
95
95
|
},
|
|
@@ -2,7 +2,7 @@ import { readFileSync } from "node:fs"
|
|
|
2
2
|
import { globSync } from "node:fs"
|
|
3
3
|
import { resolve } from "node:path"
|
|
4
4
|
import { fileURLToPath } from "node:url"
|
|
5
|
-
import { describe, expect, it } from "
|
|
5
|
+
import { describe, expect, it } from "vite-plus/test"
|
|
6
6
|
|
|
7
7
|
const __dirname = fileURLToPath(new URL(".", import.meta.url))
|
|
8
8
|
const NOVA_ROOT = resolve(__dirname, "../../..")
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { n as O } from "./vendor-styling-eeiy57tyznmxsfky.js";
|
|
3
|
-
var m = (n) => typeof n == "boolean" ? `${n}` : n === 0 ? "0" : n, y = O, j = (n, t) => (e) => {
|
|
4
|
-
var r;
|
|
5
|
-
if (t?.variants == null) return y(n, e?.class, e?.className);
|
|
6
|
-
const { variants: s, defaultVariants: d } = t, V = Object.keys(s).map((l) => {
|
|
7
|
-
const a = e?.[l], u = d?.[l];
|
|
8
|
-
if (a === null) return null;
|
|
9
|
-
const i = m(a) || m(u);
|
|
10
|
-
return s[l][i];
|
|
11
|
-
}), o = e && Object.entries(e).reduce((l, a) => {
|
|
12
|
-
let [u, i] = a;
|
|
13
|
-
return i === void 0 || (l[u] = i), l;
|
|
14
|
-
}, {});
|
|
15
|
-
return y(n, V, t == null || (r = t.compoundVariants) === null || r === void 0 ? void 0 : r.reduce((l, a) => {
|
|
16
|
-
let { class: u, className: i, ...N } = a;
|
|
17
|
-
return Object.entries(N).every((f) => {
|
|
18
|
-
let [c, v] = f;
|
|
19
|
-
return Array.isArray(v) ? v.includes({
|
|
20
|
-
...d,
|
|
21
|
-
...o
|
|
22
|
-
}[c]) : {
|
|
23
|
-
...d,
|
|
24
|
-
...o
|
|
25
|
-
}[c] === v;
|
|
26
|
-
}) ? [
|
|
27
|
-
...l,
|
|
28
|
-
u,
|
|
29
|
-
i
|
|
30
|
-
] : l;
|
|
31
|
-
}, []), e?.class, e?.className);
|
|
32
|
-
};
|
|
33
|
-
export {
|
|
34
|
-
j as t
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=dist-o8x0ip0z71xkr2oh.js.map
|