@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.
Files changed (138) hide show
  1. package/README.md +8 -10
  2. package/dist/chunks/dist-fahbq1psobj0ox6s.js.map +1 -1
  3. package/dist/chunks/dist-i6l6wqicjhnap81o.js +37 -0
  4. package/dist/chunks/{dist-o8x0ip0z71xkr2oh.js.map → dist-i6l6wqicjhnap81o.js.map} +1 -1
  5. package/dist/chunks/utils-chr77evsz8gs6wle.js +10 -0
  6. package/dist/chunks/{utils-kyb5nny4y41y7hd8.js.map → utils-chr77evsz8gs6wle.js.map} +1 -1
  7. package/dist/chunks/{vendor-styling-eeiy57tyznmxsfky.js → vendor-styling-bq164a52kub0yzw7.js} +84 -81
  8. package/dist/chunks/{vendor-styling-eeiy57tyznmxsfky.js.map → vendor-styling-bq164a52kub0yzw7.js.map} +1 -1
  9. package/dist/chunks/{vendor-utils-egkaeebaqpft6cxj.js → vendor-utils-dzqqqwem43r86lbz.js} +48 -48
  10. package/dist/chunks/{vendor-utils-egkaeebaqpft6cxj.js.map → vendor-utils-dzqqqwem43r86lbz.js.map} +1 -1
  11. package/dist/components/accordion.js +24 -21
  12. package/dist/components/accordion.js.map +1 -1
  13. package/dist/components/alert-dialog.js +3 -3
  14. package/dist/components/alert-dialog.js.map +1 -1
  15. package/dist/components/alert.js +2 -2
  16. package/dist/components/aspect-ratio.js +1 -1
  17. package/dist/components/avatar.js +24 -24
  18. package/dist/components/avatar.js.map +1 -1
  19. package/dist/components/badge.js +13 -13
  20. package/dist/components/badge.js.map +1 -1
  21. package/dist/components/box.js +16 -0
  22. package/dist/components/box.js.map +1 -0
  23. package/dist/components/breadcrumb.js +29 -25
  24. package/dist/components/breadcrumb.js.map +1 -1
  25. package/dist/components/button-group.js +4 -4
  26. package/dist/components/button-group.js.map +1 -1
  27. package/dist/components/button.js +12 -12
  28. package/dist/components/button.js.map +1 -1
  29. package/dist/components/calendar.js +540 -535
  30. package/dist/components/calendar.js.map +1 -1
  31. package/dist/components/card.js +1 -1
  32. package/dist/components/carousel.js +93 -85
  33. package/dist/components/carousel.js.map +1 -1
  34. package/dist/components/chart.js +1462 -1457
  35. package/dist/components/chart.js.map +1 -1
  36. package/dist/components/checkbox.js +7 -6
  37. package/dist/components/checkbox.js.map +1 -1
  38. package/dist/components/combobox.js +67 -54
  39. package/dist/components/combobox.js.map +1 -1
  40. package/dist/components/command.js +104 -97
  41. package/dist/components/command.js.map +1 -1
  42. package/dist/components/context-menu.js +41 -37
  43. package/dist/components/context-menu.js.map +1 -1
  44. package/dist/components/dialog.js +26 -25
  45. package/dist/components/dialog.js.map +1 -1
  46. package/dist/components/drawer.js +3 -3
  47. package/dist/components/drawer.js.map +1 -1
  48. package/dist/components/dropdown-menu.js +40 -36
  49. package/dist/components/dropdown-menu.js.map +1 -1
  50. package/dist/components/empty.js +3 -3
  51. package/dist/components/empty.js.map +1 -1
  52. package/dist/components/enya-logo.js +88 -78
  53. package/dist/components/enya-logo.js.map +1 -1
  54. package/dist/components/field.js +3 -3
  55. package/dist/components/field.js.map +1 -1
  56. package/dist/components/heading.js +39 -0
  57. package/dist/components/heading.js.map +1 -0
  58. package/dist/components/hover-card.js +1 -1
  59. package/dist/components/hover-card.js.map +1 -1
  60. package/dist/components/input-group.js +15 -15
  61. package/dist/components/input-group.js.map +1 -1
  62. package/dist/components/input-otp.js +81 -79
  63. package/dist/components/input-otp.js.map +1 -1
  64. package/dist/components/input.js +2 -2
  65. package/dist/components/input.js.map +1 -1
  66. package/dist/components/item.js +36 -36
  67. package/dist/components/item.js.map +1 -1
  68. package/dist/components/kbd.js +7 -7
  69. package/dist/components/kbd.js.map +1 -1
  70. package/dist/components/label.js +1 -1
  71. package/dist/components/menubar.js +53 -52
  72. package/dist/components/menubar.js.map +1 -1
  73. package/dist/components/native-select.js +21 -19
  74. package/dist/components/native-select.js.map +1 -1
  75. package/dist/components/navigation-menu.js +23 -21
  76. package/dist/components/navigation-menu.js.map +1 -1
  77. package/dist/components/pagination.js +33 -30
  78. package/dist/components/pagination.js.map +1 -1
  79. package/dist/components/popover.js +1 -1
  80. package/dist/components/popover.js.map +1 -1
  81. package/dist/components/progress.js +5 -5
  82. package/dist/components/progress.js.map +1 -1
  83. package/dist/components/radio-group.js +14 -14
  84. package/dist/components/radio-group.js.map +1 -1
  85. package/dist/components/resizable.js +120 -117
  86. package/dist/components/resizable.js.map +1 -1
  87. package/dist/components/scroll-area.js +1 -1
  88. package/dist/components/scroll-area.js.map +1 -1
  89. package/dist/components/select.js +65 -58
  90. package/dist/components/select.js.map +1 -1
  91. package/dist/components/separator.js +1 -1
  92. package/dist/components/sheet.js +23 -22
  93. package/dist/components/sheet.js.map +1 -1
  94. package/dist/components/sidebar.js +84 -80
  95. package/dist/components/sidebar.js.map +1 -1
  96. package/dist/components/skeleton.js +2 -2
  97. package/dist/components/skeleton.js.map +1 -1
  98. package/dist/components/slider.js +8 -8
  99. package/dist/components/slider.js.map +1 -1
  100. package/dist/components/sonner.js +229 -215
  101. package/dist/components/sonner.js.map +1 -1
  102. package/dist/components/spinner.js +10 -8
  103. package/dist/components/spinner.js.map +1 -1
  104. package/dist/components/switch.js +6 -6
  105. package/dist/components/switch.js.map +1 -1
  106. package/dist/components/table.js +15 -15
  107. package/dist/components/table.js.map +1 -1
  108. package/dist/components/tabs.js +16 -16
  109. package/dist/components/tabs.js.map +1 -1
  110. package/dist/components/text.js +47 -0
  111. package/dist/components/text.js.map +1 -0
  112. package/dist/components/textarea.js +5 -5
  113. package/dist/components/textarea.js.map +1 -1
  114. package/dist/components/toggle-group.js +2 -2
  115. package/dist/components/toggle-group.js.map +1 -1
  116. package/dist/components/toggle.js +8 -8
  117. package/dist/components/toggle.js.map +1 -1
  118. package/dist/components/tooltip.js +6 -6
  119. package/dist/components/tooltip.js.map +1 -1
  120. package/dist/index.js +31 -16
  121. package/dist/src/components/box/box.d.ts +7 -0
  122. package/dist/src/components/box/index.d.ts +1 -0
  123. package/dist/src/components/heading/heading.d.ts +15 -0
  124. package/dist/src/components/heading/index.d.ts +1 -0
  125. package/dist/src/components/spinner/spinner.d.ts +2 -1
  126. package/dist/src/components/text/index.d.ts +1 -0
  127. package/dist/src/components/text/text.d.ts +13 -0
  128. package/dist/src/index.d.ts +4 -0
  129. package/dist/styles/nova-binding.css +264 -266
  130. package/dist/styles/nova.css +158 -49
  131. package/dist/styles/typography.css +3 -123
  132. package/dist/utils.js +1 -1
  133. package/package.json +29 -12
  134. package/src/eslint/no-primitive-colors.js +2 -2
  135. package/src/eslint/no-primitive-colors.test.ts +1 -1
  136. package/dist/chunks/dist-o8x0ip0z71xkr2oh.js +0 -37
  137. package/dist/chunks/utils-kyb5nny4y41y7hd8.js +0 -10
  138. package/dist/styles/theme-nova.css +0 -197
@@ -11,47 +11,160 @@
11
11
  @source "../**/*.{ts,tsx}";
12
12
 
13
13
  /*
14
- * Maps nova semantic tokens directly into Tailwind's @theme so utility
15
- * classes like bg-background, text-foreground, bg-muted/30, border-border
16
- * etc. are generated for consumers who import "@enya-learning/nova/styles".
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-background text-foreground;
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-copy-24 text-copy-20 text-copy-18 text-copy-16 text-copy-14 text-copy-13 text-copy-13-mono text-copy-12");
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-nova-foreground bg-nova-surface-1 bg-nova-surface-2 bg-nova-surface-3 bg-nova-accent text-nova-accent-foreground border-nova-border ring-nova-ring");
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-nova-chart-1 bg-nova-chart-2 bg-nova-chart-3 bg-nova-chart-4 bg-nova-chart-5");
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-nova-sidebar text-nova-sidebar-foreground bg-nova-sidebar-primary text-nova-sidebar-primary-foreground bg-nova-sidebar-accent text-nova-sidebar-accent-foreground border-nova-sidebar-border ring-nova-sidebar-ring");
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-nova-primary text-nova-primary-foreground bg-nova-surface-muted text-nova-muted-foreground bg-nova-card text-nova-card-foreground bg-nova-popover text-nova-popover-foreground");
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-heading-32, hover:text-label-14, etc. */
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
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { t as e } from "./chunks/utils-kyb5nny4y41y7hd8.js";
2
+ import { t as e } from "./chunks/utils-chr77evsz8gs6wle.js";
3
3
  export {
4
4
  e as cn
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enya-learning/nova",
3
- "version": "0.5.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
- "lucide-react": "^1.17.0",
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": "^4.1.8",
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": "^8.0.16",
55
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.2.6",
56
56
  "vite-plugin-dts": "^5.0.2",
57
- "vitest": "^4.1.8"
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": "vite build --mode production && tsx scripts/css-build.ts",
118
- "dev": "vite build --watch --mode development",
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": "oxlint --config oxlint.json src",
121
- "format": "prettier --write \"**/*.{ts,tsx}\" --ignore-path ../../.prettierignore",
137
+ "lint": "vp lint src",
138
+ "format": "vp fmt \"**/*.{ts,tsx}\"",
122
139
  "typecheck": "tsc --noEmit",
123
- "test": "vitest run",
124
- "test:watch": "vitest",
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-background, bg-nova-primary, etc.).
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-background, text-foreground, bg-nova-primary, bg-nova-white). " +
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 "vitest"
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
@@ -1,10 +0,0 @@
1
- "use client";
2
- import { n as e, t as n } from "./vendor-styling-eeiy57tyznmxsfky.js";
3
- function s(...t) {
4
- return n(e(t));
5
- }
6
- export {
7
- s as t
8
- };
9
-
10
- //# sourceMappingURL=utils-kyb5nny4y41y7hd8.js.map