@enya-learning/nova 0.4.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 (275) hide show
  1. package/Readme.md +418 -0
  2. package/changelog.md +44 -0
  3. package/components.json +23 -0
  4. package/dist/chunks/button-npy7isi3nsvlhf86.js +81 -0
  5. package/dist/chunks/button-npy7isi3nsvlhf86.js.map +1 -0
  6. package/dist/chunks/rolldown-runtime-fifbipqm1abz4ydz.js +30 -0
  7. package/dist/chunks/utils-kyb5nny4y41y7hd8.js +10 -0
  8. package/dist/chunks/utils-kyb5nny4y41y7hd8.js.map +1 -0
  9. package/dist/chunks/vendor-base-ui-efqwzv4oinwg1f0d.js +16049 -0
  10. package/dist/chunks/vendor-base-ui-efqwzv4oinwg1f0d.js.map +1 -0
  11. package/dist/chunks/vendor-styling-eeiy57tyznmxsfky.js +1744 -0
  12. package/dist/chunks/vendor-styling-eeiy57tyznmxsfky.js.map +1 -0
  13. package/dist/components/button.js +6 -0
  14. package/dist/components/enya-logo.js +191 -0
  15. package/dist/components/enya-logo.js.map +1 -0
  16. package/dist/index.js +23499 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/src/components/accordion/accordion.d.ts +6 -0
  19. package/dist/src/components/accordion/index.d.ts +1 -0
  20. package/dist/src/components/alert/alert.d.ts +10 -0
  21. package/dist/src/components/alert/index.d.ts +1 -0
  22. package/dist/src/components/alert-dialog/alert-dialog.d.ts +18 -0
  23. package/dist/src/components/alert-dialog/index.d.ts +1 -0
  24. package/dist/src/components/aspect-ratio/aspect-ratio.d.ts +4 -0
  25. package/dist/src/components/aspect-ratio/index.d.ts +1 -0
  26. package/dist/src/components/avatar/avatar.d.ts +11 -0
  27. package/dist/src/components/avatar/index.d.ts +1 -0
  28. package/dist/src/components/badge/badge.d.ts +7 -0
  29. package/dist/src/components/badge/index.d.ts +1 -0
  30. package/dist/src/components/breadcrumb/breadcrumb.d.ts +10 -0
  31. package/dist/src/components/breadcrumb/index.d.ts +1 -0
  32. package/dist/src/components/button/button.d.ts +8 -0
  33. package/dist/src/components/button/index.d.ts +1 -0
  34. package/dist/src/components/button-group/button-group.d.ts +10 -0
  35. package/dist/src/components/button-group/index.d.ts +1 -0
  36. package/dist/src/components/calendar/calendar.d.ts +10 -0
  37. package/dist/src/components/calendar/index.d.ts +1 -0
  38. package/dist/src/components/card/card.d.ts +11 -0
  39. package/dist/src/components/card/index.d.ts +1 -0
  40. package/dist/src/components/carousel/carousel.d.ts +28 -0
  41. package/dist/src/components/carousel/index.d.ts +1 -0
  42. package/dist/src/components/chart/chart.d.ts +44 -0
  43. package/dist/src/components/chart/index.d.ts +1 -0
  44. package/dist/src/components/checkbox/checkbox.d.ts +3 -0
  45. package/dist/src/components/checkbox/index.d.ts +1 -0
  46. package/dist/src/components/collapsible/collapsible.d.ts +5 -0
  47. package/dist/src/components/collapsible/index.d.ts +1 -0
  48. package/dist/src/components/combobox/combobox.d.ts +24 -0
  49. package/dist/src/components/combobox/index.d.ts +1 -0
  50. package/dist/src/components/command/command.d.ts +19 -0
  51. package/dist/src/components/command/index.d.ts +1 -0
  52. package/dist/src/components/context-menu/context-menu.d.ts +29 -0
  53. package/dist/src/components/context-menu/index.d.ts +1 -0
  54. package/dist/src/components/dialog/dialog.d.ts +17 -0
  55. package/dist/src/components/dialog/index.d.ts +1 -0
  56. package/dist/src/components/direction/direction.d.ts +1 -0
  57. package/dist/src/components/direction/index.d.ts +1 -0
  58. package/dist/src/components/drawer/drawer.d.ts +13 -0
  59. package/dist/src/components/drawer/index.d.ts +1 -0
  60. package/dist/src/components/dropdown-menu/dropdown-menu.d.ts +29 -0
  61. package/dist/src/components/dropdown-menu/index.d.ts +1 -0
  62. package/dist/src/components/empty/empty.d.ts +11 -0
  63. package/dist/src/components/empty/index.d.ts +1 -0
  64. package/dist/src/components/enya-logo/enya-logo.d.ts +121 -0
  65. package/dist/src/components/enya-logo/index.d.ts +1 -0
  66. package/dist/src/components/field/field.d.ts +24 -0
  67. package/dist/src/components/field/index.d.ts +1 -0
  68. package/dist/src/components/hover-card/hover-card.d.ts +5 -0
  69. package/dist/src/components/hover-card/index.d.ts +1 -0
  70. package/dist/src/components/input/index.d.ts +1 -0
  71. package/dist/src/components/input/input.d.ts +3 -0
  72. package/dist/src/components/input-group/index.d.ts +1 -0
  73. package/dist/src/components/input-group/input-group.d.ts +18 -0
  74. package/dist/src/components/input-otp/index.d.ts +1 -0
  75. package/dist/src/components/input-otp/input-otp.d.ts +11 -0
  76. package/dist/src/components/item/index.d.ts +1 -0
  77. package/dist/src/components/item/item.d.ts +22 -0
  78. package/dist/src/components/kbd/index.d.ts +1 -0
  79. package/dist/src/components/kbd/kbd.d.ts +3 -0
  80. package/dist/src/components/label/index.d.ts +1 -0
  81. package/dist/src/components/label/label.d.ts +3 -0
  82. package/dist/src/components/menubar/index.d.ts +1 -0
  83. package/dist/src/components/menubar/menubar.d.ts +29 -0
  84. package/dist/src/components/native-select/index.d.ts +1 -0
  85. package/dist/src/components/native-select/native-select.d.ts +8 -0
  86. package/dist/src/components/navigation-menu/index.d.ts +1 -0
  87. package/dist/src/components/navigation-menu/navigation-menu.d.ts +11 -0
  88. package/dist/src/components/pagination/index.d.ts +1 -0
  89. package/dist/src/components/pagination/pagination.d.ts +17 -0
  90. package/dist/src/components/popover/index.d.ts +1 -0
  91. package/dist/src/components/popover/popover.d.ts +9 -0
  92. package/dist/src/components/progress/index.d.ts +1 -0
  93. package/dist/src/components/progress/progress.d.ts +7 -0
  94. package/dist/src/components/radio-group/index.d.ts +1 -0
  95. package/dist/src/components/radio-group/radio-group.d.ts +5 -0
  96. package/dist/src/components/resizable/index.d.ts +1 -0
  97. package/dist/src/components/resizable/resizable.d.ts +7 -0
  98. package/dist/src/components/scroll-area/index.d.ts +1 -0
  99. package/dist/src/components/scroll-area/scroll-area.d.ts +4 -0
  100. package/dist/src/components/select/index.d.ts +1 -0
  101. package/dist/src/components/select/select.d.ts +15 -0
  102. package/dist/src/components/separator/index.d.ts +1 -0
  103. package/dist/src/components/separator/separator.d.ts +3 -0
  104. package/dist/src/components/sheet/index.d.ts +1 -0
  105. package/dist/src/components/sheet/sheet.d.ts +14 -0
  106. package/dist/src/components/sidebar/index.d.ts +1 -0
  107. package/dist/src/components/sidebar/sidebar.d.ts +63 -0
  108. package/dist/src/components/skeleton/index.d.ts +1 -0
  109. package/dist/src/components/skeleton/skeleton.d.ts +2 -0
  110. package/dist/src/components/slider/index.d.ts +1 -0
  111. package/dist/src/components/slider/slider.d.ts +3 -0
  112. package/dist/src/components/sonner/index.d.ts +1 -0
  113. package/dist/src/components/sonner/sonner.d.ts +3 -0
  114. package/dist/src/components/spinner/index.d.ts +1 -0
  115. package/dist/src/components/spinner/spinner.d.ts +2 -0
  116. package/dist/src/components/switch/index.d.ts +1 -0
  117. package/dist/src/components/switch/switch.d.ts +5 -0
  118. package/dist/src/components/table/index.d.ts +1 -0
  119. package/dist/src/components/table/table.d.ts +10 -0
  120. package/dist/src/components/tabs/index.d.ts +1 -0
  121. package/dist/src/components/tabs/tabs.d.ts +10 -0
  122. package/dist/src/components/textarea/index.d.ts +1 -0
  123. package/dist/src/components/textarea/textarea.d.ts +3 -0
  124. package/dist/src/components/toggle/index.d.ts +1 -0
  125. package/dist/src/components/toggle/toggle.d.ts +8 -0
  126. package/dist/src/components/toggle-group/index.d.ts +1 -0
  127. package/dist/src/components/toggle-group/toggle-group.d.ts +10 -0
  128. package/dist/src/components/tooltip/index.d.ts +1 -0
  129. package/dist/src/components/tooltip/tooltip.d.ts +6 -0
  130. package/dist/src/hooks/use-mobile.d.ts +1 -0
  131. package/dist/src/index.d.ts +57 -0
  132. package/dist/src/lib/utils.d.ts +2 -0
  133. package/dist/src/utils/index.d.ts +1 -0
  134. package/dist/styles/nova-binding.css +290 -0
  135. package/dist/styles/nova.css +58 -0
  136. package/dist/styles/theme-nova.css +201 -0
  137. package/dist/styles/typography.css +215 -0
  138. package/dist/utils.js +5 -0
  139. package/eslint.config.js +30 -0
  140. package/package.json +94 -0
  141. package/plopfile.mjs +49 -0
  142. package/src/components/.gitkeep +0 -0
  143. package/src/components/accordion/accordion.mdx +83 -0
  144. package/src/components/accordion/accordion.tsx +81 -0
  145. package/src/components/accordion/index.ts +1 -0
  146. package/src/components/alert/alert.tsx +76 -0
  147. package/src/components/alert/index.ts +1 -0
  148. package/src/components/alert-dialog/alert-dialog.tsx +187 -0
  149. package/src/components/alert-dialog/index.ts +1 -0
  150. package/src/components/aspect-ratio/aspect-ratio.tsx +22 -0
  151. package/src/components/aspect-ratio/index.ts +1 -0
  152. package/src/components/avatar/avatar.tsx +107 -0
  153. package/src/components/avatar/index.ts +1 -0
  154. package/src/components/badge/badge.tsx +52 -0
  155. package/src/components/badge/index.ts +1 -0
  156. package/src/components/breadcrumb/breadcrumb.tsx +122 -0
  157. package/src/components/breadcrumb/index.ts +1 -0
  158. package/src/components/button/button.mdx +255 -0
  159. package/src/components/button/button.tsx +59 -0
  160. package/src/components/button/index.ts +1 -0
  161. package/src/components/button-group/button-group.tsx +87 -0
  162. package/src/components/button-group/index.ts +1 -0
  163. package/src/components/calendar/calendar.tsx +228 -0
  164. package/src/components/calendar/index.ts +1 -0
  165. package/src/components/card/card.tsx +100 -0
  166. package/src/components/card/index.ts +1 -0
  167. package/src/components/carousel/carousel.tsx +243 -0
  168. package/src/components/carousel/index.ts +1 -0
  169. package/src/components/chart/chart.tsx +371 -0
  170. package/src/components/chart/index.ts +1 -0
  171. package/src/components/checkbox/checkbox.tsx +28 -0
  172. package/src/components/checkbox/index.ts +1 -0
  173. package/src/components/collapsible/collapsible.tsx +19 -0
  174. package/src/components/collapsible/index.ts +1 -0
  175. package/src/components/combobox/combobox.tsx +298 -0
  176. package/src/components/combobox/index.ts +1 -0
  177. package/src/components/command/command.tsx +193 -0
  178. package/src/components/command/index.ts +1 -0
  179. package/src/components/context-menu/context-menu.tsx +272 -0
  180. package/src/components/context-menu/index.ts +1 -0
  181. package/src/components/dialog/dialog.tsx +157 -0
  182. package/src/components/dialog/index.ts +1 -0
  183. package/src/components/direction/direction.tsx +4 -0
  184. package/src/components/direction/index.ts +1 -0
  185. package/src/components/drawer/drawer.tsx +134 -0
  186. package/src/components/drawer/index.ts +1 -0
  187. package/src/components/dropdown-menu/dropdown-menu.tsx +270 -0
  188. package/src/components/dropdown-menu/index.ts +1 -0
  189. package/src/components/empty/empty.tsx +104 -0
  190. package/src/components/empty/index.ts +1 -0
  191. package/src/components/enya-logo/enya-logo.mdx +174 -0
  192. package/src/components/enya-logo/enya-logo.tsx +383 -0
  193. package/src/components/enya-logo/index.ts +1 -0
  194. package/src/components/field/field.tsx +236 -0
  195. package/src/components/field/index.ts +1 -0
  196. package/src/components/hover-card/hover-card.tsx +51 -0
  197. package/src/components/hover-card/index.ts +1 -0
  198. package/src/components/input/index.ts +1 -0
  199. package/src/components/input/input.tsx +20 -0
  200. package/src/components/input-group/index.ts +1 -0
  201. package/src/components/input-group/input-group.tsx +157 -0
  202. package/src/components/input-otp/index.ts +1 -0
  203. package/src/components/input-otp/input-otp.tsx +84 -0
  204. package/src/components/item/index.ts +1 -0
  205. package/src/components/item/item.tsx +201 -0
  206. package/src/components/kbd/index.ts +1 -0
  207. package/src/components/kbd/kbd.tsx +26 -0
  208. package/src/components/label/index.ts +1 -0
  209. package/src/components/label/label.tsx +20 -0
  210. package/src/components/menubar/index.ts +1 -0
  211. package/src/components/menubar/menubar.tsx +281 -0
  212. package/src/components/native-select/index.ts +1 -0
  213. package/src/components/native-select/native-select.tsx +65 -0
  214. package/src/components/navigation-menu/index.ts +1 -0
  215. package/src/components/navigation-menu/navigation-menu.tsx +171 -0
  216. package/src/components/pagination/index.ts +1 -0
  217. package/src/components/pagination/pagination.tsx +133 -0
  218. package/src/components/popover/index.ts +1 -0
  219. package/src/components/popover/popover.tsx +88 -0
  220. package/src/components/progress/index.ts +1 -0
  221. package/src/components/progress/progress.tsx +83 -0
  222. package/src/components/radio-group/index.ts +1 -0
  223. package/src/components/radio-group/radio-group.tsx +36 -0
  224. package/src/components/resizable/index.ts +1 -0
  225. package/src/components/resizable/resizable.tsx +50 -0
  226. package/src/components/scroll-area/index.ts +1 -0
  227. package/src/components/scroll-area/scroll-area.tsx +53 -0
  228. package/src/components/select/index.ts +1 -0
  229. package/src/components/select/select.tsx +205 -0
  230. package/src/components/separator/index.ts +1 -0
  231. package/src/components/separator/separator.tsx +23 -0
  232. package/src/components/sheet/index.ts +1 -0
  233. package/src/components/sheet/sheet.tsx +137 -0
  234. package/src/components/sidebar/index.ts +1 -0
  235. package/src/components/sidebar/sidebar.tsx +722 -0
  236. package/src/components/skeleton/index.ts +1 -0
  237. package/src/components/skeleton/skeleton.tsx +13 -0
  238. package/src/components/slider/index.ts +1 -0
  239. package/src/components/slider/slider.tsx +52 -0
  240. package/src/components/sonner/index.ts +1 -0
  241. package/src/components/sonner/sonner.tsx +45 -0
  242. package/src/components/spinner/index.ts +1 -0
  243. package/src/components/spinner/spinner.tsx +15 -0
  244. package/src/components/switch/index.ts +1 -0
  245. package/src/components/switch/switch.tsx +30 -0
  246. package/src/components/table/index.ts +1 -0
  247. package/src/components/table/table.tsx +116 -0
  248. package/src/components/tabs/index.ts +1 -0
  249. package/src/components/tabs/tabs.tsx +80 -0
  250. package/src/components/textarea/index.ts +1 -0
  251. package/src/components/textarea/textarea.tsx +18 -0
  252. package/src/components/toggle/index.ts +1 -0
  253. package/src/components/toggle/toggle.tsx +45 -0
  254. package/src/components/toggle-group/index.ts +1 -0
  255. package/src/components/toggle-group/toggle-group.tsx +87 -0
  256. package/src/components/tooltip/index.ts +1 -0
  257. package/src/components/tooltip/tooltip.tsx +64 -0
  258. package/src/eslint/index.js +13 -0
  259. package/src/eslint/no-primitive-colors.js +158 -0
  260. package/src/hooks/use-mobile.ts +21 -0
  261. package/src/index.ts +58 -0
  262. package/src/lib/.gitkeep +0 -0
  263. package/src/lib/utils.ts +6 -0
  264. package/src/styles/globals.css +77 -0
  265. package/src/styles/nova-binding.css +290 -0
  266. package/src/styles/nova.css +58 -0
  267. package/src/styles/theme-nova.css +201 -0
  268. package/src/styles/typography.css +215 -0
  269. package/src/utils/index.ts +1 -0
  270. package/templates/component/component.tsx.hbs +16 -0
  271. package/templates/component/index.ts.hbs +1 -0
  272. package/templates/component/stories.tsx.hbs +13 -0
  273. package/tsconfig.json +18 -0
  274. package/tsconfig.lint.json +14 -0
  275. package/vite.config.ts +101 -0
@@ -0,0 +1,201 @@
1
+ @theme {
2
+ --color-nova-background: light-dark(
3
+ var(--color-nova-white),
4
+ var(--color-nova-black)
5
+ );
6
+
7
+ --color-nova-primary: light-dark(
8
+ var(--color-nova-zinc-900),
9
+ var(--color-nova-zinc-100)
10
+ );
11
+ --color-nova-primary-foreground: light-dark(
12
+ var(--color-nova-zinc-100),
13
+ var(--color-nova-zinc-900)
14
+ );
15
+
16
+ --color-nova-secondary: light-dark(
17
+ var(--color-nova-zinc-100),
18
+ var(--color-nova-zinc-800)
19
+ );
20
+ --color-nova-secondary-foreground: light-dark(
21
+ var(--color-nova-zinc-900),
22
+ var(--color-nova-zinc-100)
23
+ );
24
+
25
+ --color-nova-muted: light-dark(
26
+ var(--color-nova-zinc-50),
27
+ var(--color-nova-zinc-800)
28
+ );
29
+ --color-nova-muted-foreground: light-dark(
30
+ var(--color-nova-zinc-500),
31
+ var(--color-nova-zinc-400)
32
+ );
33
+
34
+ --color-nova-accent: light-dark(
35
+ var(--color-nova-brand-500),
36
+ var(--color-nova-brand-400)
37
+ );
38
+ --color-nova-accent-foreground: light-dark(
39
+ var(--color-nova-zinc-100),
40
+ var(--color-nova-zinc-900)
41
+ );
42
+
43
+ /*DO NOT REFERENCE AS IT MIGHT BE DELETED IN THE FUTURE*/
44
+ --color-nova-foreground: light-dark(
45
+ var(--color-nova-zinc-900),
46
+ var(--color-nova-zinc-100)
47
+ );
48
+
49
+ --color-nova-card: light-dark(
50
+ var(--color-nova-zinc-50),
51
+ var(--color-nova-zinc-900)
52
+ );
53
+ --color-nova-card-foreground: light-dark(
54
+ var(--color-nova-zinc-900),
55
+ var(--color-nova-zinc-100)
56
+ );
57
+
58
+ --color-nova-popover: light-dark(
59
+ var(--color-nova-zinc-50),
60
+ var(--color-nova-zinc-900)
61
+ );
62
+ --color-nova-popover-foreground: light-dark(
63
+ var(--color-nova-zinc-900),
64
+ var(--color-nova-zinc-100)
65
+ );
66
+
67
+ --color-nova-info: light-dark(
68
+ var(--color-nova-blue-600),
69
+ var(--color-nova-blue-400)
70
+ );
71
+ --color-nova-info-foreground: light-dark(
72
+ var(--color-nova-zinc-100),
73
+ var(--color-nova-zinc-900)
74
+ );
75
+ --color-nova-info-soft: light-dark(
76
+ var(--color-nova-blue-50),
77
+ var(--color-nova-blue-950)
78
+ );
79
+ --color-nova-info-soft-foreground: light-dark(
80
+ var(--color-nova-blue-700),
81
+ var(--color-nova-blue-300)
82
+ );
83
+
84
+ --color-nova-success: light-dark(
85
+ var(--color-nova-emerald-600),
86
+ var(--color-nova-emerald-400)
87
+ );
88
+ --color-nova-success-foreground: light-dark(
89
+ var(--color-nova-zinc-100),
90
+ var(--color-nova-zinc-900)
91
+ );
92
+ --color-nova-success-soft: light-dark(
93
+ var(--color-nova-emerald-50),
94
+ var(--color-nova-emerald-950)
95
+ );
96
+ --color-nova-success-soft-foreground: light-dark(
97
+ var(--color-nova-emerald-700),
98
+ var(--color-nova-emerald-300)
99
+ );
100
+
101
+ --color-nova-warning: light-dark(
102
+ var(--color-nova-amber-500),
103
+ var(--color-nova-amber-400)
104
+ );
105
+ --color-nova-warning-foreground: light-dark(
106
+ var(--color-nova-zinc-900),
107
+ var(--color-nova-zinc-900)
108
+ );
109
+ --color-nova-warning-soft: light-dark(
110
+ var(--color-nova-amber-50),
111
+ var(--color-nova-amber-950)
112
+ );
113
+ --color-nova-warning-soft-foreground: light-dark(
114
+ var(--color-nova-amber-700),
115
+ var(--color-nova-amber-300)
116
+ );
117
+
118
+ --color-nova-destructive: light-dark(
119
+ var(--color-nova-red-600),
120
+ var(--color-nova-red-400)
121
+ );
122
+ --color-nova-destructive-foreground: light-dark(
123
+ var(--color-nova-zinc-100),
124
+ var(--color-nova-zinc-900)
125
+ );
126
+ --color-nova-destructive-soft: light-dark(
127
+ var(--color-nova-red-50),
128
+ var(--color-nova-red-950)
129
+ );
130
+ --color-nova-destructive-soft-foreground: light-dark(
131
+ var(--color-nova-red-700),
132
+ var(--color-nova-red-300)
133
+ );
134
+
135
+ --color-nova-border: light-dark(
136
+ var(--color-nova-zinc-200),
137
+ var(--color-nova-zinc-800)
138
+ );
139
+ --color-nova-input: light-dark(
140
+ var(--color-nova-zinc-300),
141
+ var(--color-nova-zinc-700)
142
+ );
143
+ --color-nova-ring: light-dark(
144
+ var(--color-nova-brand-500),
145
+ var(--color-nova-brand-400)
146
+ );
147
+
148
+ --color-nova-chart-1: light-dark(
149
+ var(--color-nova-brand-600),
150
+ var(--color-nova-brand-400)
151
+ );
152
+ --color-nova-chart-2: light-dark(
153
+ var(--color-nova-emerald-800),
154
+ var(--color-nova-emerald-200)
155
+ );
156
+ --color-nova-chart-3: light-dark(
157
+ var(--color-nova-yellow-600),
158
+ var(--color-nova-yellow-400)
159
+ );
160
+ --color-nova-chart-4: light-dark(
161
+ var(--color-nova-blue-800),
162
+ var(--color-nova-blue-400)
163
+ );
164
+ --color-nova-chart-5: light-dark(
165
+ var(--color-nova-red-600),
166
+ var(--color-nova-red-400)
167
+ );
168
+
169
+ --color-nova-sidebar: light-dark(
170
+ var(--color-nova-zinc-50),
171
+ var(--color-nova-zinc-950)
172
+ );
173
+ --color-nova-sidebar-foreground: light-dark(
174
+ var(--color-nova-zinc-900),
175
+ var(--color-nova-zinc-100)
176
+ );
177
+ --color-nova-sidebar-primary: light-dark(
178
+ var(--color-nova-brand-600),
179
+ var(--color-nova-brand-400)
180
+ );
181
+ --color-nova-sidebar-primary-foreground: light-dark(
182
+ var(--color-nova-zinc-100),
183
+ var(--color-nova-zinc-900)
184
+ );
185
+ --color-nova-sidebar-accent: light-dark(
186
+ var(--color-nova-zinc-100),
187
+ var(--color-nova-zinc-800)
188
+ );
189
+ --color-nova-sidebar-accent-foreground: light-dark(
190
+ var(--color-nova-zinc-900),
191
+ var(--color-nova-zinc-100)
192
+ );
193
+ --color-nova-sidebar-border: light-dark(
194
+ var(--color-nova-zinc-200),
195
+ var(--color-nova-zinc-800)
196
+ );
197
+ --color-nova-sidebar-ring: light-dark(
198
+ var(--color-nova-brand-600),
199
+ var(--color-nova-brand-400)
200
+ );
201
+ }
@@ -0,0 +1,215 @@
1
+ /* Geist-style typography utilities.
2
+ 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: 600;
12
+ }
13
+
14
+ @utility text-heading-64 {
15
+ font-size: 4rem;
16
+ line-height: 4rem;
17
+ letter-spacing: -0.02em;
18
+ font-weight: 600;
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: 600;
26
+ }
27
+
28
+ @utility text-heading-48 {
29
+ font-size: 3rem;
30
+ line-height: 3.5rem;
31
+ letter-spacing: -0.02em;
32
+ font-weight: 600;
33
+ }
34
+
35
+ @utility text-heading-40 {
36
+ font-size: 2.5rem;
37
+ line-height: 3rem;
38
+ letter-spacing: -0.02em;
39
+ font-weight: 600;
40
+ }
41
+
42
+ @utility text-heading-32 {
43
+ font-size: 2rem;
44
+ line-height: 2.5rem;
45
+ letter-spacing: -0.02em;
46
+ font-weight: 600;
47
+ }
48
+
49
+ @utility text-heading-24 {
50
+ font-size: 1.5rem;
51
+ line-height: 2rem;
52
+ letter-spacing: -0.02em;
53
+ font-weight: 600;
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: 600;
61
+ }
62
+
63
+ @utility text-heading-16 {
64
+ font-size: 1rem;
65
+ line-height: 1.5;
66
+ letter-spacing: -0.02em;
67
+ font-weight: 600;
68
+ }
69
+
70
+ @utility text-heading-14 {
71
+ font-size: 0.875rem;
72
+ line-height: 1.25;
73
+ font-weight: 600;
74
+ }
75
+
76
+ /* ─── Buttons ──────────────────────────────────────────────────────────────── */
77
+
78
+ @utility text-button-16 {
79
+ font-size: 1rem;
80
+ line-height: 1.5;
81
+ letter-spacing: -0.01em;
82
+ font-weight: 500;
83
+ }
84
+
85
+ @utility text-button-14 {
86
+ font-size: 0.875rem;
87
+ line-height: 1.4286;
88
+ letter-spacing: -0.01em;
89
+ font-weight: 500;
90
+ }
91
+
92
+ @utility text-button-12 {
93
+ font-size: 0.75rem;
94
+ line-height: 1.3333;
95
+ letter-spacing: 0;
96
+ font-weight: 500;
97
+ }
98
+
99
+ /* ─── Labels ───────────────────────────────────────────────────────────────── */
100
+
101
+ @utility text-label-20 {
102
+ font-size: 1.25rem;
103
+ line-height: 1.4;
104
+ letter-spacing: -0.01em;
105
+ font-weight: 500;
106
+ }
107
+
108
+ @utility text-label-18 {
109
+ font-size: 1.125rem;
110
+ line-height: 1.3333;
111
+ letter-spacing: -0.01em;
112
+ font-weight: 500;
113
+ }
114
+
115
+ @utility text-label-16 {
116
+ font-size: 1rem;
117
+ line-height: 1.5;
118
+ letter-spacing: -0.01em;
119
+ font-weight: 500;
120
+ }
121
+
122
+ @utility text-label-14 {
123
+ font-size: 0.875rem;
124
+ line-height: 1.4286;
125
+ letter-spacing: -0.01em;
126
+ font-weight: 500;
127
+ }
128
+
129
+ @utility text-label-14-mono {
130
+ font-size: 0.875rem;
131
+ line-height: 1.4286;
132
+ letter-spacing: 0;
133
+ font-weight: 500;
134
+ font-family: var(--font-mono);
135
+ }
136
+
137
+ @utility text-label-13 {
138
+ font-size: 0.8125rem;
139
+ line-height: 1.2308;
140
+ letter-spacing: 0;
141
+ font-weight: 500;
142
+ }
143
+
144
+ @utility text-label-13-mono {
145
+ font-size: 0.8125rem;
146
+ line-height: 1.2308;
147
+ letter-spacing: 0;
148
+ font-weight: 500;
149
+ font-family: var(--font-mono);
150
+ }
151
+
152
+ @utility text-label-12 {
153
+ font-size: 0.75rem;
154
+ line-height: 1.3333;
155
+ letter-spacing: 0;
156
+ font-weight: 500;
157
+ }
158
+
159
+ @utility text-label-12-mono {
160
+ font-size: 0.75rem;
161
+ line-height: 1.3333;
162
+ letter-spacing: 0;
163
+ font-weight: 500;
164
+ font-family: var(--font-mono);
165
+ }
166
+
167
+ /* ─── Copy ─────────────────────────────────────────────────────────────────── */
168
+
169
+ @utility text-copy-24 {
170
+ font-size: 1.5rem;
171
+ line-height: 1.6667;
172
+ font-weight: 400;
173
+ }
174
+
175
+ @utility text-copy-20 {
176
+ font-size: 1.25rem;
177
+ line-height: 1.6;
178
+ font-weight: 400;
179
+ }
180
+
181
+ @utility text-copy-18 {
182
+ font-size: 1.125rem;
183
+ line-height: 1.5556;
184
+ font-weight: 400;
185
+ }
186
+
187
+ @utility text-copy-16 {
188
+ font-size: 1rem;
189
+ line-height: 1.625;
190
+ font-weight: 400;
191
+ }
192
+
193
+ @utility text-copy-14 {
194
+ font-size: 0.875rem;
195
+ line-height: 1.7143;
196
+ font-weight: 400;
197
+ }
198
+
199
+ @utility text-copy-13 {
200
+ font-size: 0.8125rem;
201
+ line-height: 1.5385;
202
+ font-weight: 400;
203
+ }
204
+
205
+ @utility text-copy-13-mono {
206
+ font-size: 0.8125rem;
207
+ line-height: 1.5385;
208
+ font-weight: 400;
209
+ font-family: var(--font-mono);
210
+ }
211
+ @utility text-copy-12 {
212
+ font-size: 0.75rem;
213
+ line-height: 150%;
214
+ font-weight: 400;
215
+ }
@@ -0,0 +1 @@
1
+ export * from "../lib/utils"
@@ -0,0 +1,16 @@
1
+ import { cn } from "../../lib/utils"
2
+
3
+ function {{pascalCase name}}({
4
+ className,
5
+ ...props
6
+ }: React.ComponentProps<"div">) {
7
+ return (
8
+ <div
9
+ data-slot="{{kebabCase name}}"
10
+ className={cn("", className)}
11
+ {...props}
12
+ />
13
+ )
14
+ }
15
+
16
+ export { {{pascalCase name}} }
@@ -0,0 +1 @@
1
+ export * from "./{{kebabCase name}}"
@@ -0,0 +1,13 @@
1
+ import type { Meta, StoryObj } from "@storybook/react"
2
+ import { {{pascalCase name}} } from "./{{kebabCase name}}"
3
+
4
+ const meta: Meta<typeof {{pascalCase name}}> = {
5
+ title: "Components/{{pascalCase name}}",
6
+ component: {{pascalCase name}},
7
+ tags: ["autodocs"],
8
+ }
9
+
10
+ export default meta
11
+ type Story = StoryObj<typeof meta>
12
+
13
+ export const Default: Story = {}
package/tsconfig.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "jsx": "react-jsx",
8
+ "skipLibCheck": true,
9
+ "strict": true,
10
+ "noEmit": true,
11
+ "allowArbitraryExtensions": true,
12
+ "paths": {
13
+ "@/*": ["./src/*"]
14
+ }
15
+ },
16
+ "include": ["."],
17
+ "exclude": ["node_modules", "dist"]
18
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "jsx": "react-jsx",
8
+ "skipLibCheck": true,
9
+ "strict": true,
10
+ "outDir": "dist"
11
+ },
12
+ "include": ["src", "turbo"],
13
+ "exclude": ["node_modules", "dist"]
14
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,101 @@
1
+ import { defineConfig } from "vitest/config"
2
+ import { resolve, dirname } from "path"
3
+ import { fileURLToPath } from "url"
4
+ import react from "@vitejs/plugin-react"
5
+ import dts from "vite-plugin-dts"
6
+
7
+ const __filename = fileURLToPath(import.meta.url)
8
+ const __dirname = dirname(__filename)
9
+
10
+ export default defineConfig(({ mode }) => {
11
+ const isDev = mode === "development"
12
+
13
+ return {
14
+ plugins: [
15
+ react(),
16
+ dts({
17
+ include: ["src/**/*"],
18
+ exclude: [
19
+ "**/*.test.ts",
20
+ "**/*.test.tsx",
21
+ "**/*.stories.ts",
22
+ "**/*.stories.tsx",
23
+ ],
24
+ compilerOptions: {
25
+ incremental: isDev,
26
+ tsBuildInfoFile: isDev ? "./.tsbuildinfo" : undefined,
27
+ },
28
+ }),
29
+ ],
30
+ build: {
31
+ lib: {
32
+ entry: {
33
+ index: resolve(__dirname, "src/index.ts"),
34
+ "components/button": resolve(
35
+ __dirname,
36
+ "src/components/button/index.ts"
37
+ ),
38
+ "components/enya-logo": resolve(
39
+ __dirname,
40
+ "src/components/enya-logo/index.ts"
41
+ ),
42
+ // ADD_COMPONENT_ENTRY_HERE
43
+ utils: resolve(__dirname, "src/utils/index.ts"),
44
+ },
45
+ formats: ["es"],
46
+ fileName: (_, entryName) => `${entryName}.js`,
47
+ },
48
+ rollupOptions: {
49
+ external: (id) => {
50
+ switch (true) {
51
+ case id === "react":
52
+ case id.startsWith("react/"):
53
+ case id === "react-dom":
54
+ case id.startsWith("react-dom/"):
55
+ case id === "lucide-react":
56
+ case id.startsWith("lucide-react/"):
57
+ return true
58
+ default:
59
+ return false
60
+ }
61
+ },
62
+ output: {
63
+ preserveModules: false,
64
+ chunkFileNames: (chunkInfo) => {
65
+ const name = chunkInfo.name.replace(/[-_]+$/, "") || "chunk"
66
+ return `chunks/${name}-[hash:16].js`
67
+ },
68
+ hashCharacters: "base36",
69
+ hoistTransitiveImports: false,
70
+ banner: (chunk) => {
71
+ if (
72
+ chunk.name?.includes("server") ||
73
+ chunk.fileName?.includes("server")
74
+ ) {
75
+ return ""
76
+ }
77
+ return '"use client";\n'
78
+ },
79
+ manualChunks: (id) => {
80
+ if (id.includes("node_modules")) {
81
+ if (id.includes("clsx") || id.includes("tailwind-merge"))
82
+ return "vendor-styling"
83
+ if (id.includes("@floating-ui")) return "vendor-floating-ui"
84
+ if (id.includes("@base-ui")) return "vendor-base-ui"
85
+ }
86
+ },
87
+ },
88
+ cache: isDev,
89
+ },
90
+ sourcemap: isDev ? "inline" : true,
91
+ minify: isDev ? false : "esbuild",
92
+ emptyOutDir: !isDev,
93
+ },
94
+ resolve: {
95
+ alias: { "@": resolve(__dirname, "src") },
96
+ },
97
+ test: {
98
+ include: ["src/**/*.test.{ts,tsx}"],
99
+ },
100
+ }
101
+ })