@work-rjkashyap/unified-ui 0.3.3 → 0.3.5

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 (456) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +21 -0
  3. package/dist/components/accordion.cjs +225 -0
  4. package/dist/components/accordion.d.cts +157 -0
  5. package/dist/components/accordion.d.ts +157 -0
  6. package/dist/components/accordion.mjs +199 -0
  7. package/dist/components/alert-dialog.cjs +246 -0
  8. package/dist/components/alert-dialog.d.cts +61 -0
  9. package/dist/components/alert-dialog.d.ts +61 -0
  10. package/dist/components/alert-dialog.mjs +218 -0
  11. package/dist/components/alert.cjs +401 -0
  12. package/dist/components/alert.d.cts +217 -0
  13. package/dist/components/alert.d.ts +217 -0
  14. package/dist/components/alert.mjs +374 -0
  15. package/dist/components/aspect-ratio.cjs +45 -0
  16. package/dist/components/aspect-ratio.d.cts +10 -0
  17. package/dist/components/aspect-ratio.d.ts +10 -0
  18. package/dist/components/aspect-ratio.mjs +23 -0
  19. package/dist/components/avatar.cjs +348 -0
  20. package/dist/components/avatar.d.cts +198 -0
  21. package/dist/components/avatar.d.ts +198 -0
  22. package/dist/components/avatar.mjs +329 -0
  23. package/dist/components/badge.cjs +325 -0
  24. package/dist/components/badge.d.cts +259 -0
  25. package/dist/components/badge.d.ts +259 -0
  26. package/dist/components/badge.mjs +298 -0
  27. package/dist/components/banner.cjs +147 -0
  28. package/dist/components/banner.d.cts +31 -0
  29. package/dist/components/banner.d.ts +31 -0
  30. package/dist/components/banner.mjs +122 -0
  31. package/dist/components/breadcrumb.cjs +266 -0
  32. package/dist/components/breadcrumb.d.cts +159 -0
  33. package/dist/components/breadcrumb.d.ts +159 -0
  34. package/dist/components/breadcrumb.mjs +235 -0
  35. package/dist/components/button.cjs +254 -0
  36. package/dist/components/button.d.cts +126 -0
  37. package/dist/components/button.d.ts +126 -0
  38. package/dist/components/button.mjs +229 -0
  39. package/dist/components/calendar.cjs +511 -0
  40. package/dist/components/calendar.d.cts +94 -0
  41. package/dist/components/calendar.d.ts +94 -0
  42. package/dist/components/calendar.mjs +492 -0
  43. package/dist/components/card.cjs +234 -0
  44. package/dist/components/card.d.cts +190 -0
  45. package/dist/components/card.d.ts +190 -0
  46. package/dist/components/card.mjs +210 -0
  47. package/dist/components/carousel.cjs +234 -0
  48. package/dist/components/carousel.d.cts +30 -0
  49. package/dist/components/carousel.d.ts +30 -0
  50. package/dist/components/carousel.mjs +217 -0
  51. package/dist/components/chart.cjs +122 -0
  52. package/dist/components/chart.d.cts +103 -0
  53. package/dist/components/chart.d.ts +103 -0
  54. package/dist/components/chart.mjs +96 -0
  55. package/dist/components/checkbox.cjs +318 -0
  56. package/dist/components/checkbox.d.cts +182 -0
  57. package/dist/components/checkbox.d.ts +182 -0
  58. package/dist/components/checkbox.mjs +296 -0
  59. package/dist/components/code-highlight.cjs +335 -0
  60. package/dist/components/code-highlight.d.cts +18 -0
  61. package/dist/components/code-highlight.d.ts +18 -0
  62. package/dist/components/code-highlight.mjs +308 -0
  63. package/dist/components/code.cjs +265 -0
  64. package/dist/components/code.d.cts +40 -0
  65. package/dist/components/code.d.ts +40 -0
  66. package/dist/components/code.mjs +243 -0
  67. package/dist/components/collapsible.cjs +143 -0
  68. package/dist/components/collapsible.d.cts +159 -0
  69. package/dist/components/collapsible.d.ts +159 -0
  70. package/dist/components/collapsible.mjs +123 -0
  71. package/dist/components/color-picker.cjs +348 -0
  72. package/dist/components/color-picker.d.cts +35 -0
  73. package/dist/components/color-picker.d.ts +35 -0
  74. package/dist/components/color-picker.mjs +331 -0
  75. package/dist/components/combobox.cjs +584 -0
  76. package/dist/components/combobox.d.cts +183 -0
  77. package/dist/components/combobox.d.ts +183 -0
  78. package/dist/components/combobox.mjs +571 -0
  79. package/dist/components/command.cjs +329 -0
  80. package/dist/components/command.d.cts +97 -0
  81. package/dist/components/command.d.ts +97 -0
  82. package/dist/components/command.mjs +311 -0
  83. package/dist/components/confirm-dialog.cjs +100 -0
  84. package/dist/components/confirm-dialog.d.cts +25 -0
  85. package/dist/components/confirm-dialog.d.ts +25 -0
  86. package/dist/components/confirm-dialog.mjs +86 -0
  87. package/dist/components/context-menu.cjs +325 -0
  88. package/dist/components/context-menu.d.cts +259 -0
  89. package/dist/components/context-menu.d.ts +259 -0
  90. package/dist/components/context-menu.mjs +290 -0
  91. package/dist/components/copy-button.cjs +203 -0
  92. package/dist/components/copy-button.d.cts +22 -0
  93. package/dist/components/copy-button.d.ts +22 -0
  94. package/dist/components/copy-button.mjs +178 -0
  95. package/dist/components/data-list.cjs +140 -0
  96. package/dist/components/data-list.d.cts +36 -0
  97. package/dist/components/data-list.d.ts +36 -0
  98. package/dist/components/data-list.mjs +113 -0
  99. package/dist/components/data-table-toolbar.cjs +338 -0
  100. package/dist/components/data-table-toolbar.d.cts +84 -0
  101. package/dist/components/data-table-toolbar.d.ts +84 -0
  102. package/dist/components/data-table-toolbar.mjs +320 -0
  103. package/dist/components/data-table.cjs +1324 -0
  104. package/dist/components/data-table.d.cts +349 -0
  105. package/dist/components/data-table.d.ts +349 -0
  106. package/dist/components/data-table.mjs +1323 -0
  107. package/dist/components/date-picker.cjs +282 -0
  108. package/dist/components/date-picker.d.cts +97 -0
  109. package/dist/components/date-picker.d.ts +97 -0
  110. package/dist/components/date-picker.mjs +258 -0
  111. package/dist/components/dialog.cjs +319 -0
  112. package/dist/components/dialog.d.cts +74 -0
  113. package/dist/components/dialog.d.ts +74 -0
  114. package/dist/components/dialog.mjs +292 -0
  115. package/dist/components/drawer.cjs +262 -0
  116. package/dist/components/drawer.d.cts +113 -0
  117. package/dist/components/drawer.d.ts +113 -0
  118. package/dist/components/drawer.mjs +230 -0
  119. package/dist/components/dropdown-menu.cjs +328 -0
  120. package/dist/components/dropdown-menu.d.cts +95 -0
  121. package/dist/components/dropdown-menu.d.ts +95 -0
  122. package/dist/components/dropdown-menu.mjs +293 -0
  123. package/dist/components/empty-state.cjs +123 -0
  124. package/dist/components/empty-state.d.cts +15 -0
  125. package/dist/components/empty-state.d.ts +15 -0
  126. package/dist/components/empty-state.mjs +99 -0
  127. package/dist/components/file-upload.cjs +442 -0
  128. package/dist/components/file-upload.d.cts +35 -0
  129. package/dist/components/file-upload.d.ts +35 -0
  130. package/dist/components/file-upload.mjs +423 -0
  131. package/dist/components/form-field.cjs +191 -0
  132. package/dist/components/form-field.d.cts +163 -0
  133. package/dist/components/form-field.d.ts +163 -0
  134. package/dist/components/form-field.mjs +167 -0
  135. package/dist/components/hover-card.cjs +99 -0
  136. package/dist/components/hover-card.d.cts +28 -0
  137. package/dist/components/hover-card.d.ts +28 -0
  138. package/dist/components/hover-card.mjs +75 -0
  139. package/dist/components/image-gallery.cjs +359 -0
  140. package/dist/components/image-gallery.d.cts +46 -0
  141. package/dist/components/image-gallery.d.ts +46 -0
  142. package/dist/components/image-gallery.mjs +340 -0
  143. package/dist/components/index.cjs +719 -0
  144. package/dist/components/index.d.cts +84 -0
  145. package/dist/components/index.d.ts +84 -0
  146. package/dist/components/index.mjs +771 -0
  147. package/dist/components/infinite-scroll.cjs +95 -0
  148. package/dist/components/infinite-scroll.d.cts +54 -0
  149. package/dist/components/infinite-scroll.d.ts +54 -0
  150. package/dist/components/infinite-scroll.mjs +71 -0
  151. package/dist/components/input-group.cjs +202 -0
  152. package/dist/components/input-group.d.cts +22 -0
  153. package/dist/components/input-group.d.ts +22 -0
  154. package/dist/components/input-group.mjs +178 -0
  155. package/dist/components/input.cjs +318 -0
  156. package/dist/components/input.d.cts +99 -0
  157. package/dist/components/input.d.ts +99 -0
  158. package/dist/components/input.mjs +296 -0
  159. package/dist/components/kbd.cjs +69 -0
  160. package/dist/components/kbd.d.cts +25 -0
  161. package/dist/components/kbd.d.ts +25 -0
  162. package/dist/components/kbd.mjs +44 -0
  163. package/dist/components/label.cjs +138 -0
  164. package/dist/components/label.d.cts +91 -0
  165. package/dist/components/label.d.ts +91 -0
  166. package/dist/components/label.mjs +113 -0
  167. package/dist/components/markdown.cjs +179 -0
  168. package/dist/components/markdown.d.cts +41 -0
  169. package/dist/components/markdown.d.ts +41 -0
  170. package/dist/components/markdown.mjs +155 -0
  171. package/dist/components/menubar.cjs +365 -0
  172. package/dist/components/menubar.d.cts +88 -0
  173. package/dist/components/menubar.d.ts +88 -0
  174. package/dist/components/menubar.mjs +329 -0
  175. package/dist/components/navigation-menu.cjs +280 -0
  176. package/dist/components/navigation-menu.d.cts +123 -0
  177. package/dist/components/navigation-menu.d.ts +123 -0
  178. package/dist/components/navigation-menu.mjs +250 -0
  179. package/dist/components/number-input.cjs +419 -0
  180. package/dist/components/number-input.d.cts +111 -0
  181. package/dist/components/number-input.d.ts +111 -0
  182. package/dist/components/number-input.mjs +400 -0
  183. package/dist/components/pagination.cjs +322 -0
  184. package/dist/components/pagination.d.cts +119 -0
  185. package/dist/components/pagination.d.ts +119 -0
  186. package/dist/components/pagination.mjs +297 -0
  187. package/dist/components/pin-input.cjs +321 -0
  188. package/dist/components/pin-input.d.cts +112 -0
  189. package/dist/components/pin-input.d.ts +112 -0
  190. package/dist/components/pin-input.mjs +303 -0
  191. package/dist/components/popover.cjs +194 -0
  192. package/dist/components/popover.d.cts +108 -0
  193. package/dist/components/popover.d.ts +108 -0
  194. package/dist/components/popover.mjs +168 -0
  195. package/dist/components/progress.cjs +237 -0
  196. package/dist/components/progress.d.cts +137 -0
  197. package/dist/components/progress.d.ts +137 -0
  198. package/dist/components/progress.mjs +211 -0
  199. package/dist/components/radio.cjs +344 -0
  200. package/dist/components/radio.d.cts +145 -0
  201. package/dist/components/radio.d.ts +145 -0
  202. package/dist/components/radio.mjs +320 -0
  203. package/dist/components/resizable.cjs +121 -0
  204. package/dist/components/resizable.d.cts +23 -0
  205. package/dist/components/resizable.d.ts +23 -0
  206. package/dist/components/resizable.mjs +99 -0
  207. package/dist/components/scroll-area.cjs +168 -0
  208. package/dist/components/scroll-area.d.cts +131 -0
  209. package/dist/components/scroll-area.d.ts +131 -0
  210. package/dist/components/scroll-area.mjs +143 -0
  211. package/dist/components/search-input.cjs +261 -0
  212. package/dist/components/search-input.d.cts +26 -0
  213. package/dist/components/search-input.d.ts +26 -0
  214. package/dist/components/search-input.mjs +243 -0
  215. package/dist/components/select.cjs +320 -0
  216. package/dist/components/select.d.cts +55 -0
  217. package/dist/components/select.d.ts +55 -0
  218. package/dist/components/select.mjs +288 -0
  219. package/dist/components/separator.cjs +193 -0
  220. package/dist/components/separator.d.cts +92 -0
  221. package/dist/components/separator.d.ts +92 -0
  222. package/dist/components/separator.mjs +170 -0
  223. package/dist/components/sheet.cjs +399 -0
  224. package/dist/components/sheet.d.cts +219 -0
  225. package/dist/components/sheet.d.ts +219 -0
  226. package/dist/components/sheet.mjs +379 -0
  227. package/dist/components/sidebar.cjs +1077 -0
  228. package/dist/components/sidebar.d.cts +733 -0
  229. package/dist/components/sidebar.d.ts +733 -0
  230. package/dist/components/sidebar.mjs +1033 -0
  231. package/dist/components/skeleton.cjs +210 -0
  232. package/dist/components/skeleton.d.cts +202 -0
  233. package/dist/components/skeleton.d.ts +202 -0
  234. package/dist/components/skeleton.mjs +182 -0
  235. package/dist/components/slider.cjs +319 -0
  236. package/dist/components/slider.d.cts +82 -0
  237. package/dist/components/slider.d.ts +82 -0
  238. package/dist/components/slider.mjs +296 -0
  239. package/dist/components/sonner.cjs +119 -0
  240. package/dist/components/sonner.d.cts +60 -0
  241. package/dist/components/sonner.d.ts +60 -0
  242. package/dist/components/sonner.mjs +94 -0
  243. package/dist/components/spinner.cjs +238 -0
  244. package/dist/components/spinner.d.cts +101 -0
  245. package/dist/components/spinner.d.ts +101 -0
  246. package/dist/components/spinner.mjs +213 -0
  247. package/dist/components/stat.cjs +180 -0
  248. package/dist/components/stat.d.cts +21 -0
  249. package/dist/components/stat.d.ts +21 -0
  250. package/dist/components/stat.mjs +161 -0
  251. package/dist/components/steps.cjs +228 -0
  252. package/dist/components/steps.d.cts +76 -0
  253. package/dist/components/steps.d.ts +76 -0
  254. package/dist/components/steps.mjs +207 -0
  255. package/dist/components/switch.cjs +243 -0
  256. package/dist/components/switch.d.cts +90 -0
  257. package/dist/components/switch.d.ts +90 -0
  258. package/dist/components/switch.mjs +228 -0
  259. package/dist/components/table.cjs +381 -0
  260. package/dist/components/table.d.cts +181 -0
  261. package/dist/components/table.d.ts +181 -0
  262. package/dist/components/table.mjs +349 -0
  263. package/dist/components/tabs.cjs +326 -0
  264. package/dist/components/tabs.d.cts +154 -0
  265. package/dist/components/tabs.d.ts +154 -0
  266. package/dist/components/tabs.mjs +304 -0
  267. package/dist/components/textarea.cjs +258 -0
  268. package/dist/components/textarea.d.cts +112 -0
  269. package/dist/components/textarea.d.ts +112 -0
  270. package/dist/components/textarea.mjs +233 -0
  271. package/dist/components/theme-toggle.cjs +282 -0
  272. package/dist/components/theme-toggle.d.cts +58 -0
  273. package/dist/components/theme-toggle.d.ts +58 -0
  274. package/dist/components/theme-toggle.mjs +258 -0
  275. package/dist/components/timeline.cjs +178 -0
  276. package/dist/components/timeline.d.cts +41 -0
  277. package/dist/components/timeline.d.ts +41 -0
  278. package/dist/components/timeline.mjs +157 -0
  279. package/dist/components/toast.cjs +546 -0
  280. package/dist/components/toast.d.cts +169 -0
  281. package/dist/components/toast.d.ts +169 -0
  282. package/dist/components/toast.mjs +528 -0
  283. package/dist/components/toggle-group.cjs +204 -0
  284. package/dist/components/toggle-group.d.cts +215 -0
  285. package/dist/components/toggle-group.d.ts +215 -0
  286. package/dist/components/toggle-group.mjs +180 -0
  287. package/dist/components/toggle.cjs +155 -0
  288. package/dist/components/toggle.d.cts +100 -0
  289. package/dist/components/toggle.d.ts +100 -0
  290. package/dist/components/toggle.mjs +130 -0
  291. package/dist/components/tooltip.cjs +155 -0
  292. package/dist/components/tooltip.d.cts +129 -0
  293. package/dist/components/tooltip.d.ts +129 -0
  294. package/dist/components/tooltip.mjs +132 -0
  295. package/dist/components/tree-view.cjs +450 -0
  296. package/dist/components/tree-view.d.cts +67 -0
  297. package/dist/components/tree-view.d.ts +67 -0
  298. package/dist/components/tree-view.mjs +433 -0
  299. package/dist/components/video-player.cjs +344 -0
  300. package/dist/components/video-player.d.cts +34 -0
  301. package/dist/components/video-player.d.ts +34 -0
  302. package/dist/components/video-player.mjs +320 -0
  303. package/dist/components/virtual-list.cjs +153 -0
  304. package/dist/components/virtual-list.d.cts +53 -0
  305. package/dist/components/virtual-list.d.ts +53 -0
  306. package/dist/components/virtual-list.mjs +136 -0
  307. package/dist/components/visually-hidden.cjs +43 -0
  308. package/dist/components/visually-hidden.d.cts +9 -0
  309. package/dist/components/visually-hidden.d.ts +9 -0
  310. package/dist/components/visually-hidden.mjs +21 -0
  311. package/dist/index.cjs +1081 -1933
  312. package/dist/index.d.cts +99 -11
  313. package/dist/index.d.ts +99 -11
  314. package/dist/index.mjs +1138 -16
  315. package/dist/motion/hooks.cjs +98 -0
  316. package/dist/motion/hooks.d.cts +32 -0
  317. package/dist/motion/hooks.d.ts +32 -0
  318. package/dist/motion/hooks.mjs +70 -0
  319. package/dist/motion/index.cjs +157 -0
  320. package/dist/motion/index.d.cts +5 -0
  321. package/dist/motion/index.d.ts +5 -0
  322. package/dist/motion/index.mjs +137 -0
  323. package/dist/motion/presets.cjs +609 -0
  324. package/dist/{motion.d.ts → motion/presets.d.cts} +1 -30
  325. package/dist/{motion.d.cts → motion/presets.d.ts} +1 -30
  326. package/dist/{chunk-PLRSH37T.mjs → motion/presets.mjs} +119 -126
  327. package/dist/primitives/container.cjs +88 -0
  328. package/dist/primitives/container.d.cts +82 -0
  329. package/dist/primitives/container.d.ts +82 -0
  330. package/dist/primitives/container.mjs +64 -0
  331. package/dist/primitives/divider.cjs +74 -0
  332. package/dist/primitives/divider.d.cts +30 -0
  333. package/dist/primitives/divider.d.ts +30 -0
  334. package/dist/primitives/divider.mjs +50 -0
  335. package/dist/primitives/index.cjs +54 -0
  336. package/dist/primitives/index.d.cts +6 -0
  337. package/dist/primitives/index.d.ts +6 -0
  338. package/dist/primitives/index.mjs +33 -0
  339. package/dist/primitives/stack.cjs +167 -0
  340. package/dist/primitives/stack.d.cts +132 -0
  341. package/dist/primitives/stack.d.ts +132 -0
  342. package/dist/primitives/stack.mjs +142 -0
  343. package/dist/primitives/typography.cjs +260 -0
  344. package/dist/primitives/typography.d.cts +157 -0
  345. package/dist/primitives/typography.d.ts +157 -0
  346. package/dist/primitives/typography.mjs +229 -0
  347. package/dist/theme/contract.cjs +246 -0
  348. package/dist/theme/contract.d.cts +76 -0
  349. package/dist/theme/contract.d.ts +76 -0
  350. package/dist/theme/contract.mjs +221 -0
  351. package/dist/theme/customizer-store.cjs +266 -0
  352. package/dist/theme/customizer-store.d.cts +76 -0
  353. package/dist/theme/customizer-store.d.ts +76 -0
  354. package/dist/theme/customizer-store.mjs +261 -0
  355. package/dist/theme/customizer.cjs +812 -0
  356. package/dist/theme/customizer.d.cts +13 -0
  357. package/dist/theme/customizer.d.ts +13 -0
  358. package/dist/theme/customizer.mjs +803 -0
  359. package/dist/theme/index.cjs +105 -0
  360. package/dist/theme/index.d.cts +13 -0
  361. package/dist/theme/index.d.ts +13 -0
  362. package/dist/theme/index.mjs +87 -0
  363. package/dist/theme/presets.cjs +1205 -0
  364. package/dist/theme/presets.d.cts +232 -0
  365. package/dist/theme/presets.d.ts +232 -0
  366. package/dist/theme/presets.mjs +1175 -0
  367. package/dist/theme/provider.cjs +122 -0
  368. package/dist/theme/provider.d.cts +57 -0
  369. package/dist/theme/provider.d.ts +57 -0
  370. package/dist/theme/provider.mjs +104 -0
  371. package/dist/{chunk-IVZAB7BV.mjs → tokens/colors.cjs} +212 -86
  372. package/dist/{z-index-Dd8IllRx.d.cts → tokens/colors.d.cts} +235 -72
  373. package/dist/{z-index-Dd8IllRx.d.ts → tokens/colors.d.ts} +235 -72
  374. package/dist/{chunk-ZBGR7MUW.cjs → tokens/colors.mjs} +165 -104
  375. package/dist/tokens/index.cjs +96 -0
  376. package/dist/tokens/index.d.cts +7 -0
  377. package/dist/tokens/index.d.ts +7 -0
  378. package/dist/tokens/index.mjs +71 -0
  379. package/dist/{chunk-XCKK6P46.cjs → tokens/motion.cjs} +46 -18
  380. package/dist/{motion-D9wQbcKL.d.cts → tokens/motion.d.cts} +1 -1
  381. package/dist/{motion-D9wQbcKL.d.ts → tokens/motion.d.ts} +1 -1
  382. package/dist/{chunk-EZ2L3XPS.mjs → tokens/motion.mjs} +16 -10
  383. package/dist/tokens/radius.cjs +41 -0
  384. package/dist/tokens/radius.d.cts +18 -0
  385. package/dist/tokens/radius.d.ts +18 -0
  386. package/dist/tokens/radius.mjs +17 -0
  387. package/dist/tokens/shadows.cjs +57 -0
  388. package/dist/tokens/shadows.d.cts +32 -0
  389. package/dist/tokens/shadows.d.ts +32 -0
  390. package/dist/tokens/shadows.mjs +32 -0
  391. package/dist/tokens/spacing.cjs +51 -0
  392. package/dist/tokens/spacing.d.cts +26 -0
  393. package/dist/tokens/spacing.d.ts +26 -0
  394. package/dist/{chunk-NMPHV6ZD.mjs → tokens/spacing.mjs} +4 -4
  395. package/dist/{chunk-ECIGDEAH.cjs → tokens/typography.cjs} +43 -16
  396. package/dist/{typography-DlvVjEdE.d.ts → tokens/typography.d.cts} +1 -1
  397. package/dist/{typography-DlvVjEdE.d.cts → tokens/typography.d.ts} +1 -1
  398. package/dist/{chunk-ITBG42M5.mjs → tokens/typography.mjs} +14 -9
  399. package/dist/tokens/z-index.cjs +47 -0
  400. package/dist/tokens/z-index.d.cts +24 -0
  401. package/dist/tokens/z-index.d.ts +24 -0
  402. package/dist/tokens/z-index.mjs +23 -0
  403. package/dist/utils/cn.cjs +102 -0
  404. package/dist/utils/cn.d.cts +84 -0
  405. package/dist/utils/cn.d.ts +84 -0
  406. package/dist/{chunk-ZT3PCXDF.mjs → utils/cn.mjs} +14 -7
  407. package/dist/{chunk-33QEKXRQ.cjs → utils/contrast.cjs} +68 -38
  408. package/dist/utils/contrast.d.cts +209 -0
  409. package/dist/utils/contrast.d.ts +209 -0
  410. package/dist/{chunk-5NZDQWRV.mjs → utils/contrast.mjs} +27 -18
  411. package/dist/utils/focus-ring.cjs +81 -0
  412. package/dist/utils/focus-ring.d.cts +80 -0
  413. package/dist/utils/focus-ring.d.ts +80 -0
  414. package/dist/utils/focus-ring.mjs +47 -0
  415. package/dist/utils/index.cjs +107 -0
  416. package/dist/utils/index.d.cts +6 -0
  417. package/dist/utils/index.d.ts +6 -0
  418. package/dist/utils/index.mjs +88 -0
  419. package/dist/utils/types.cjs +38 -0
  420. package/dist/utils/types.d.cts +187 -0
  421. package/dist/utils/types.d.ts +187 -0
  422. package/dist/utils/types.mjs +13 -0
  423. package/package.json +191 -191
  424. package/dist/chunk-2JFREULQ.cjs +0 -29
  425. package/dist/chunk-3EHT6IOA.cjs +0 -49
  426. package/dist/chunk-4ON3M3OM.cjs +0 -73
  427. package/dist/chunk-5TP7J7T4.cjs +0 -1766
  428. package/dist/chunk-A2DGHQL2.cjs +0 -21808
  429. package/dist/chunk-EQWESXRH.mjs +0 -1735
  430. package/dist/chunk-F4JJFWWU.cjs +0 -604
  431. package/dist/chunk-FUWXGHWQ.cjs +0 -468
  432. package/dist/chunk-MBYCK2JJ.mjs +0 -37
  433. package/dist/chunk-OHEH57BV.mjs +0 -455
  434. package/dist/chunk-XAIUX2YS.mjs +0 -21477
  435. package/dist/components.cjs +0 -1247
  436. package/dist/components.d.cts +0 -7881
  437. package/dist/components.d.ts +0 -7881
  438. package/dist/components.mjs +0 -6
  439. package/dist/motion.cjs +0 -264
  440. package/dist/motion.mjs +0 -3
  441. package/dist/primitives.cjs +0 -57
  442. package/dist/primitives.d.cts +0 -390
  443. package/dist/primitives.d.ts +0 -390
  444. package/dist/primitives.mjs +0 -4
  445. package/dist/theme.cjs +0 -131
  446. package/dist/theme.d.cts +0 -414
  447. package/dist/theme.d.ts +0 -414
  448. package/dist/theme.mjs +0 -6
  449. package/dist/tokens.cjs +0 -137
  450. package/dist/tokens.d.cts +0 -30
  451. package/dist/tokens.d.ts +0 -30
  452. package/dist/tokens.mjs +0 -4
  453. package/dist/utils.cjs +0 -164
  454. package/dist/utils.d.cts +0 -525
  455. package/dist/utils.d.ts +0 -525
  456. package/dist/utils.mjs +0 -3
@@ -0,0 +1,246 @@
1
+ "use client";
2
+ "use strict";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var contract_exports = {};
21
+ __export(contract_exports, {
22
+ buildDarkThemeVars: () => buildDarkThemeVars,
23
+ buildLightThemeVars: () => buildLightThemeVars,
24
+ buildThemeCSS: () => buildThemeCSS,
25
+ contract: () => contract,
26
+ cssVar: () => cssVar
27
+ });
28
+ module.exports = __toCommonJS(contract_exports);
29
+ var import_colors = require("../tokens/colors");
30
+ var import_motion = require("../tokens/motion");
31
+ var import_radius = require("../tokens/radius");
32
+ var import_shadows = require("../tokens/shadows");
33
+ var import_typography = require("../tokens/typography");
34
+ var import_z_index = require("../tokens/z-index");
35
+ const colorVarNames = {
36
+ background: "--background",
37
+ foreground: "--foreground",
38
+ surface: "--surface",
39
+ surfaceRaised: "--surface-raised",
40
+ surfaceOverlay: "--surface-overlay",
41
+ card: "--card",
42
+ cardForeground: "--card-foreground",
43
+ popover: "--popover",
44
+ popoverForeground: "--popover-foreground",
45
+ muted: "--muted",
46
+ mutedForeground: "--muted-foreground",
47
+ primary: "--primary",
48
+ primaryForeground: "--primary-foreground",
49
+ primaryHover: "--primary-hover",
50
+ primaryActive: "--primary-active",
51
+ primaryMuted: "--primary-muted",
52
+ primaryMutedForeground: "--primary-muted-foreground",
53
+ secondary: "--secondary",
54
+ secondaryForeground: "--secondary-foreground",
55
+ secondaryHover: "--secondary-hover",
56
+ secondaryActive: "--secondary-active",
57
+ accent: "--accent",
58
+ accentForeground: "--accent-foreground",
59
+ success: "--success",
60
+ successForeground: "--success-foreground",
61
+ successMuted: "--success-muted",
62
+ successMutedForeground: "--success-muted-foreground",
63
+ warning: "--warning",
64
+ warningForeground: "--warning-foreground",
65
+ warningMuted: "--warning-muted",
66
+ warningMutedForeground: "--warning-muted-foreground",
67
+ danger: "--danger",
68
+ dangerForeground: "--danger-foreground",
69
+ dangerHover: "--danger-hover",
70
+ dangerActive: "--danger-active",
71
+ dangerMuted: "--danger-muted",
72
+ dangerMutedForeground: "--danger-muted-foreground",
73
+ destructive: "--destructive",
74
+ destructiveForeground: "--destructive-foreground",
75
+ info: "--info",
76
+ infoForeground: "--info-foreground",
77
+ infoMuted: "--info-muted",
78
+ infoMutedForeground: "--info-muted-foreground",
79
+ border: "--border",
80
+ borderMuted: "--border-muted",
81
+ borderStrong: "--border-strong",
82
+ focusRing: "--focus-ring",
83
+ ring: "--ring",
84
+ input: "--input",
85
+ inputForeground: "--input-foreground",
86
+ inputPlaceholder: "--input-placeholder",
87
+ disabled: "--disabled",
88
+ disabledForeground: "--disabled-foreground",
89
+ chart1: "--chart-1",
90
+ chart2: "--chart-2",
91
+ chart3: "--chart-3",
92
+ chart4: "--chart-4",
93
+ chart5: "--chart-5",
94
+ sidebar: "--sidebar",
95
+ sidebarForeground: "--sidebar-foreground",
96
+ sidebarPrimary: "--sidebar-primary",
97
+ sidebarPrimaryForeground: "--sidebar-primary-foreground",
98
+ sidebarAccent: "--sidebar-accent",
99
+ sidebarAccentForeground: "--sidebar-accent-foreground",
100
+ sidebarBorder: "--sidebar-border",
101
+ sidebarRing: "--sidebar-ring"
102
+ };
103
+ const radiusVarNames = {
104
+ none: "--radius-none",
105
+ sm: "--radius-sm",
106
+ md: "--radius-md",
107
+ lg: "--radius-lg",
108
+ xl: "--radius-xl",
109
+ full: "--radius-full"
110
+ };
111
+ const shadowVarNames = {
112
+ none: "--shadow-none",
113
+ xs: "--shadow-xs",
114
+ sm: "--shadow-sm",
115
+ md: "--shadow-md",
116
+ lg: "--shadow-lg",
117
+ xl: "--shadow-xl",
118
+ "2xl": "--shadow-2xl",
119
+ focusRing: "--shadow-focus-ring"
120
+ };
121
+ const zIndexVarNames = {
122
+ base: "--z-base",
123
+ dropdown: "--z-dropdown",
124
+ sticky: "--z-sticky",
125
+ overlay: "--z-overlay",
126
+ modal: "--z-modal",
127
+ popover: "--z-popover",
128
+ toast: "--z-toast",
129
+ tooltip: "--z-tooltip",
130
+ max: "--z-max"
131
+ };
132
+ const durationVarNames = {
133
+ instant: "--duration-instant",
134
+ fast: "--duration-fast",
135
+ moderate: "--duration-moderate",
136
+ normal: "--duration-normal",
137
+ slow: "--duration-slow",
138
+ slower: "--duration-slower",
139
+ slowest: "--duration-slowest"
140
+ };
141
+ const easingVarNames = {
142
+ standard: "--easing-standard",
143
+ decelerate: "--easing-decelerate",
144
+ accelerate: "--easing-accelerate",
145
+ emphasize: "--easing-emphasize",
146
+ linear: "--easing-linear",
147
+ snap: "--easing-snap"
148
+ };
149
+ const fontFamilyVarNames = {
150
+ display: "--font-display",
151
+ sans: "--font-sans",
152
+ serif: "--font-serif",
153
+ mono: "--font-mono",
154
+ inherit: "--font-inherit"
155
+ };
156
+ function mapRecord(varNames, values) {
157
+ const result = {};
158
+ for (const key of Object.keys(varNames)) {
159
+ result[varNames[key]] = values[key];
160
+ }
161
+ return result;
162
+ }
163
+ function buildLightThemeVars() {
164
+ return {
165
+ ...mapRecord(colorVarNames, import_colors.semanticLight),
166
+ ...mapRecord(radiusVarNames, import_radius.radius),
167
+ ...mapRecord(shadowVarNames, import_shadows.shadow),
168
+ ...mapRecord(zIndexVarNames, import_z_index.zIndex),
169
+ ...mapRecord(durationVarNames, import_motion.durationCSS),
170
+ ...mapRecord(easingVarNames, import_motion.easingCSS),
171
+ ...mapRecord(fontFamilyVarNames, import_typography.fontFamily)
172
+ };
173
+ }
174
+ function buildDarkThemeVars() {
175
+ return {
176
+ ...mapRecord(colorVarNames, import_colors.semanticDark),
177
+ ...mapRecord(radiusVarNames, import_radius.radius),
178
+ ...mapRecord(shadowVarNames, import_shadows.shadowDark),
179
+ ...mapRecord(zIndexVarNames, import_z_index.zIndex),
180
+ ...mapRecord(durationVarNames, import_motion.durationCSS),
181
+ ...mapRecord(easingVarNames, import_motion.easingCSS),
182
+ ...mapRecord(fontFamilyVarNames, import_typography.fontFamily)
183
+ };
184
+ }
185
+ function varsToCSS(vars) {
186
+ return Object.entries(vars).map(([prop, value]) => ` ${prop}: ${value};`).join("\n");
187
+ }
188
+ function buildThemeCSS() {
189
+ const lightVars = buildLightThemeVars();
190
+ const darkVars = buildDarkThemeVars();
191
+ return `:root {
192
+ ${varsToCSS(lightVars)}
193
+ }
194
+
195
+ .dark {
196
+ ${varsToCSS(darkVars)}
197
+ }`;
198
+ }
199
+ const contract = {
200
+ color: colorVarNames,
201
+ radius: radiusVarNames,
202
+ shadow: shadowVarNames,
203
+ zIndex: zIndexVarNames,
204
+ duration: durationVarNames,
205
+ easing: easingVarNames,
206
+ fontFamily: fontFamilyVarNames
207
+ };
208
+ const cssVar = {
209
+ /** Returns `var(--<key>)` for use in style props */
210
+ color: (key) => `var(${colorVarNames[key]})`,
211
+ /**
212
+ * Returns a color-mix() expression with a custom alpha channel.
213
+ *
214
+ * Because oklch values are stored as complete `oklch(L C H)` strings
215
+ * in the CSS custom property, you cannot directly decompose them with
216
+ * simple var() references. For alpha-modified colors, prefer using
217
+ * Tailwind's built-in opacity modifier syntax (e.g. `bg-primary/50`)
218
+ * or define a dedicated muted token.
219
+ *
220
+ * If you need programmatic alpha in JS, use this helper which produces
221
+ * a color-mix() expression for broad browser support.
222
+ */
223
+ colorAlpha: (key, alpha) => `color-mix(in oklch, var(${colorVarNames[key]}) ${Math.round(alpha * 100)}%, transparent)`,
224
+ /** Returns `var(--radius-<key>)` */
225
+ radius: (key) => `var(${radiusVarNames[key]})`,
226
+ /** Returns `var(--shadow-<key>)` */
227
+ shadow: (key) => `var(${shadowVarNames[key]})`,
228
+ /** Returns `var(--z-<key>)` */
229
+ zIndex: (key) => `var(${zIndexVarNames[key]})`,
230
+ /** Returns `var(--duration-<key>)` */
231
+ duration: (key) => `var(${durationVarNames[key]})`,
232
+ /** Returns `var(--easing-<key>)` */
233
+ easing: (key) => `var(${easingVarNames[key]})`,
234
+ /** Returns `var(--font-<key>)` */
235
+ fontFamily: (key) => `var(${fontFamilyVarNames[key]})`,
236
+ /** Returns the raw `var(--<key>)` — same as color() since values are complete oklch */
237
+ colorChannels: (key) => `var(${colorVarNames[key]})`
238
+ };
239
+ // Annotate the CommonJS export names for ESM import in node:
240
+ 0 && (module.exports = {
241
+ buildDarkThemeVars,
242
+ buildLightThemeVars,
243
+ buildThemeCSS,
244
+ contract,
245
+ cssVar
246
+ });
@@ -0,0 +1,76 @@
1
+ import { SemanticColorKey } from '../tokens/colors.cjs';
2
+ import { durationCSS, easingCSS } from '../tokens/motion.cjs';
3
+ import { radius } from '../tokens/radius.cjs';
4
+ import { shadow } from '../tokens/shadows.cjs';
5
+ import { fontFamily } from '../tokens/typography.cjs';
6
+ import { zIndex } from '../tokens/z-index.cjs';
7
+
8
+ declare const colorVarNames: Record<SemanticColorKey, string>;
9
+ type RadiusKey = keyof typeof radius;
10
+ declare const radiusVarNames: Record<RadiusKey, string>;
11
+ type ShadowKey = keyof typeof shadow;
12
+ declare const shadowVarNames: Record<ShadowKey, string>;
13
+ type ZIndexKey = keyof typeof zIndex;
14
+ declare const zIndexVarNames: Record<ZIndexKey, string>;
15
+ type DurationKey = keyof typeof durationCSS;
16
+ type EasingKey = keyof typeof easingCSS;
17
+ declare const durationVarNames: Record<DurationKey, string>;
18
+ declare const easingVarNames: Record<EasingKey, string>;
19
+ type FontFamilyKey = keyof typeof fontFamily;
20
+ declare const fontFamilyVarNames: Record<FontFamilyKey, string>;
21
+ /** Generate the full set of CSS variables for the light theme */
22
+ declare function buildLightThemeVars(): Record<string, string>;
23
+ /** Generate the full set of CSS variables for the dark theme */
24
+ declare function buildDarkThemeVars(): Record<string, string>;
25
+ /** Returns the complete CSS text for both :root (light) and .dark themes */
26
+ declare function buildThemeCSS(): string;
27
+ declare const contract: {
28
+ readonly color: Record<"input" | "popover" | "disabled" | "background" | "border" | "info" | "success" | "warning" | "danger" | "primary" | "secondary" | "card" | "muted" | "sidebar" | "foreground" | "focusRing" | "surface" | "surfaceRaised" | "surfaceOverlay" | "cardForeground" | "popoverForeground" | "mutedForeground" | "primaryForeground" | "primaryHover" | "primaryActive" | "primaryMuted" | "primaryMutedForeground" | "secondaryForeground" | "secondaryHover" | "secondaryActive" | "accent" | "accentForeground" | "successForeground" | "successMuted" | "successMutedForeground" | "warningForeground" | "warningMuted" | "warningMutedForeground" | "dangerForeground" | "dangerHover" | "dangerActive" | "dangerMuted" | "dangerMutedForeground" | "destructive" | "destructiveForeground" | "infoForeground" | "infoMuted" | "infoMutedForeground" | "borderMuted" | "borderStrong" | "ring" | "inputForeground" | "inputPlaceholder" | "disabledForeground" | "chart1" | "chart2" | "chart3" | "chart4" | "chart5" | "sidebarForeground" | "sidebarPrimary" | "sidebarPrimaryForeground" | "sidebarAccent" | "sidebarAccentForeground" | "sidebarBorder" | "sidebarRing", string>;
29
+ readonly radius: Record<"sm" | "md" | "none" | "lg" | "xl" | "full", string>;
30
+ readonly shadow: Record<"sm" | "md" | "none" | "xs" | "lg" | "xl" | "2xl" | "focusRing", string>;
31
+ readonly zIndex: Record<"base" | "popover" | "tooltip" | "max" | "modal" | "overlay" | "sticky" | "toast" | "dropdown", string>;
32
+ readonly duration: Record<"instant" | "fast" | "moderate" | "normal" | "slow" | "slower" | "slowest", string>;
33
+ readonly easing: Record<"standard" | "decelerate" | "accelerate" | "emphasize" | "linear" | "snap", string>;
34
+ readonly fontFamily: Record<"inherit" | "display" | "serif" | "sans" | "mono", string>;
35
+ };
36
+ declare const cssVar: {
37
+ /** Returns `var(--<key>)` for use in style props */
38
+ readonly color: (key: SemanticColorKey) => string;
39
+ /**
40
+ * Returns a color-mix() expression with a custom alpha channel.
41
+ *
42
+ * Because oklch values are stored as complete `oklch(L C H)` strings
43
+ * in the CSS custom property, you cannot directly decompose them with
44
+ * simple var() references. For alpha-modified colors, prefer using
45
+ * Tailwind's built-in opacity modifier syntax (e.g. `bg-primary/50`)
46
+ * or define a dedicated muted token.
47
+ *
48
+ * If you need programmatic alpha in JS, use this helper which produces
49
+ * a color-mix() expression for broad browser support.
50
+ */
51
+ readonly colorAlpha: (key: SemanticColorKey, alpha: number) => string;
52
+ /** Returns `var(--radius-<key>)` */
53
+ readonly radius: (key: RadiusKey) => string;
54
+ /** Returns `var(--shadow-<key>)` */
55
+ readonly shadow: (key: ShadowKey) => string;
56
+ /** Returns `var(--z-<key>)` */
57
+ readonly zIndex: (key: ZIndexKey) => string;
58
+ /** Returns `var(--duration-<key>)` */
59
+ readonly duration: (key: DurationKey) => string;
60
+ /** Returns `var(--easing-<key>)` */
61
+ readonly easing: (key: EasingKey) => string;
62
+ /** Returns `var(--font-<key>)` */
63
+ readonly fontFamily: (key: FontFamilyKey) => string;
64
+ /** Returns the raw `var(--<key>)` — same as color() since values are complete oklch */
65
+ readonly colorChannels: (key: SemanticColorKey) => string;
66
+ };
67
+ type ThemeVars = ReturnType<typeof buildLightThemeVars>;
68
+ type ColorVarName = (typeof colorVarNames)[SemanticColorKey];
69
+ type RadiusVarName = (typeof radiusVarNames)[RadiusKey];
70
+ type ShadowVarName = (typeof shadowVarNames)[ShadowKey];
71
+ type ZIndexVarName = (typeof zIndexVarNames)[ZIndexKey];
72
+ type DurationVarName = (typeof durationVarNames)[DurationKey];
73
+ type EasingVarName = (typeof easingVarNames)[EasingKey];
74
+ type FontFamilyVarName = (typeof fontFamilyVarNames)[FontFamilyKey];
75
+
76
+ export { type ColorVarName, type DurationVarName, type EasingVarName, type FontFamilyVarName, type RadiusVarName, type ShadowVarName, type ThemeVars, type ZIndexVarName, buildDarkThemeVars, buildLightThemeVars, buildThemeCSS, contract, cssVar };
@@ -0,0 +1,76 @@
1
+ import { SemanticColorKey } from '../tokens/colors.js';
2
+ import { durationCSS, easingCSS } from '../tokens/motion.js';
3
+ import { radius } from '../tokens/radius.js';
4
+ import { shadow } from '../tokens/shadows.js';
5
+ import { fontFamily } from '../tokens/typography.js';
6
+ import { zIndex } from '../tokens/z-index.js';
7
+
8
+ declare const colorVarNames: Record<SemanticColorKey, string>;
9
+ type RadiusKey = keyof typeof radius;
10
+ declare const radiusVarNames: Record<RadiusKey, string>;
11
+ type ShadowKey = keyof typeof shadow;
12
+ declare const shadowVarNames: Record<ShadowKey, string>;
13
+ type ZIndexKey = keyof typeof zIndex;
14
+ declare const zIndexVarNames: Record<ZIndexKey, string>;
15
+ type DurationKey = keyof typeof durationCSS;
16
+ type EasingKey = keyof typeof easingCSS;
17
+ declare const durationVarNames: Record<DurationKey, string>;
18
+ declare const easingVarNames: Record<EasingKey, string>;
19
+ type FontFamilyKey = keyof typeof fontFamily;
20
+ declare const fontFamilyVarNames: Record<FontFamilyKey, string>;
21
+ /** Generate the full set of CSS variables for the light theme */
22
+ declare function buildLightThemeVars(): Record<string, string>;
23
+ /** Generate the full set of CSS variables for the dark theme */
24
+ declare function buildDarkThemeVars(): Record<string, string>;
25
+ /** Returns the complete CSS text for both :root (light) and .dark themes */
26
+ declare function buildThemeCSS(): string;
27
+ declare const contract: {
28
+ readonly color: Record<"input" | "popover" | "disabled" | "background" | "border" | "info" | "success" | "warning" | "danger" | "primary" | "secondary" | "card" | "muted" | "sidebar" | "foreground" | "focusRing" | "surface" | "surfaceRaised" | "surfaceOverlay" | "cardForeground" | "popoverForeground" | "mutedForeground" | "primaryForeground" | "primaryHover" | "primaryActive" | "primaryMuted" | "primaryMutedForeground" | "secondaryForeground" | "secondaryHover" | "secondaryActive" | "accent" | "accentForeground" | "successForeground" | "successMuted" | "successMutedForeground" | "warningForeground" | "warningMuted" | "warningMutedForeground" | "dangerForeground" | "dangerHover" | "dangerActive" | "dangerMuted" | "dangerMutedForeground" | "destructive" | "destructiveForeground" | "infoForeground" | "infoMuted" | "infoMutedForeground" | "borderMuted" | "borderStrong" | "ring" | "inputForeground" | "inputPlaceholder" | "disabledForeground" | "chart1" | "chart2" | "chart3" | "chart4" | "chart5" | "sidebarForeground" | "sidebarPrimary" | "sidebarPrimaryForeground" | "sidebarAccent" | "sidebarAccentForeground" | "sidebarBorder" | "sidebarRing", string>;
29
+ readonly radius: Record<"sm" | "md" | "none" | "lg" | "xl" | "full", string>;
30
+ readonly shadow: Record<"sm" | "md" | "none" | "xs" | "lg" | "xl" | "2xl" | "focusRing", string>;
31
+ readonly zIndex: Record<"base" | "popover" | "tooltip" | "max" | "modal" | "overlay" | "sticky" | "toast" | "dropdown", string>;
32
+ readonly duration: Record<"instant" | "fast" | "moderate" | "normal" | "slow" | "slower" | "slowest", string>;
33
+ readonly easing: Record<"standard" | "decelerate" | "accelerate" | "emphasize" | "linear" | "snap", string>;
34
+ readonly fontFamily: Record<"inherit" | "display" | "serif" | "sans" | "mono", string>;
35
+ };
36
+ declare const cssVar: {
37
+ /** Returns `var(--<key>)` for use in style props */
38
+ readonly color: (key: SemanticColorKey) => string;
39
+ /**
40
+ * Returns a color-mix() expression with a custom alpha channel.
41
+ *
42
+ * Because oklch values are stored as complete `oklch(L C H)` strings
43
+ * in the CSS custom property, you cannot directly decompose them with
44
+ * simple var() references. For alpha-modified colors, prefer using
45
+ * Tailwind's built-in opacity modifier syntax (e.g. `bg-primary/50`)
46
+ * or define a dedicated muted token.
47
+ *
48
+ * If you need programmatic alpha in JS, use this helper which produces
49
+ * a color-mix() expression for broad browser support.
50
+ */
51
+ readonly colorAlpha: (key: SemanticColorKey, alpha: number) => string;
52
+ /** Returns `var(--radius-<key>)` */
53
+ readonly radius: (key: RadiusKey) => string;
54
+ /** Returns `var(--shadow-<key>)` */
55
+ readonly shadow: (key: ShadowKey) => string;
56
+ /** Returns `var(--z-<key>)` */
57
+ readonly zIndex: (key: ZIndexKey) => string;
58
+ /** Returns `var(--duration-<key>)` */
59
+ readonly duration: (key: DurationKey) => string;
60
+ /** Returns `var(--easing-<key>)` */
61
+ readonly easing: (key: EasingKey) => string;
62
+ /** Returns `var(--font-<key>)` */
63
+ readonly fontFamily: (key: FontFamilyKey) => string;
64
+ /** Returns the raw `var(--<key>)` — same as color() since values are complete oklch */
65
+ readonly colorChannels: (key: SemanticColorKey) => string;
66
+ };
67
+ type ThemeVars = ReturnType<typeof buildLightThemeVars>;
68
+ type ColorVarName = (typeof colorVarNames)[SemanticColorKey];
69
+ type RadiusVarName = (typeof radiusVarNames)[RadiusKey];
70
+ type ShadowVarName = (typeof shadowVarNames)[ShadowKey];
71
+ type ZIndexVarName = (typeof zIndexVarNames)[ZIndexKey];
72
+ type DurationVarName = (typeof durationVarNames)[DurationKey];
73
+ type EasingVarName = (typeof easingVarNames)[EasingKey];
74
+ type FontFamilyVarName = (typeof fontFamilyVarNames)[FontFamilyKey];
75
+
76
+ export { type ColorVarName, type DurationVarName, type EasingVarName, type FontFamilyVarName, type RadiusVarName, type ShadowVarName, type ThemeVars, type ZIndexVarName, buildDarkThemeVars, buildLightThemeVars, buildThemeCSS, contract, cssVar };
@@ -0,0 +1,221 @@
1
+ "use client";
2
+ import {
3
+ semanticDark,
4
+ semanticLight
5
+ } from "../tokens/colors";
6
+ import { durationCSS, easingCSS } from "../tokens/motion";
7
+ import { radius } from "../tokens/radius";
8
+ import { shadow, shadowDark } from "../tokens/shadows";
9
+ import { fontFamily } from "../tokens/typography";
10
+ import { zIndex } from "../tokens/z-index";
11
+ const colorVarNames = {
12
+ background: "--background",
13
+ foreground: "--foreground",
14
+ surface: "--surface",
15
+ surfaceRaised: "--surface-raised",
16
+ surfaceOverlay: "--surface-overlay",
17
+ card: "--card",
18
+ cardForeground: "--card-foreground",
19
+ popover: "--popover",
20
+ popoverForeground: "--popover-foreground",
21
+ muted: "--muted",
22
+ mutedForeground: "--muted-foreground",
23
+ primary: "--primary",
24
+ primaryForeground: "--primary-foreground",
25
+ primaryHover: "--primary-hover",
26
+ primaryActive: "--primary-active",
27
+ primaryMuted: "--primary-muted",
28
+ primaryMutedForeground: "--primary-muted-foreground",
29
+ secondary: "--secondary",
30
+ secondaryForeground: "--secondary-foreground",
31
+ secondaryHover: "--secondary-hover",
32
+ secondaryActive: "--secondary-active",
33
+ accent: "--accent",
34
+ accentForeground: "--accent-foreground",
35
+ success: "--success",
36
+ successForeground: "--success-foreground",
37
+ successMuted: "--success-muted",
38
+ successMutedForeground: "--success-muted-foreground",
39
+ warning: "--warning",
40
+ warningForeground: "--warning-foreground",
41
+ warningMuted: "--warning-muted",
42
+ warningMutedForeground: "--warning-muted-foreground",
43
+ danger: "--danger",
44
+ dangerForeground: "--danger-foreground",
45
+ dangerHover: "--danger-hover",
46
+ dangerActive: "--danger-active",
47
+ dangerMuted: "--danger-muted",
48
+ dangerMutedForeground: "--danger-muted-foreground",
49
+ destructive: "--destructive",
50
+ destructiveForeground: "--destructive-foreground",
51
+ info: "--info",
52
+ infoForeground: "--info-foreground",
53
+ infoMuted: "--info-muted",
54
+ infoMutedForeground: "--info-muted-foreground",
55
+ border: "--border",
56
+ borderMuted: "--border-muted",
57
+ borderStrong: "--border-strong",
58
+ focusRing: "--focus-ring",
59
+ ring: "--ring",
60
+ input: "--input",
61
+ inputForeground: "--input-foreground",
62
+ inputPlaceholder: "--input-placeholder",
63
+ disabled: "--disabled",
64
+ disabledForeground: "--disabled-foreground",
65
+ chart1: "--chart-1",
66
+ chart2: "--chart-2",
67
+ chart3: "--chart-3",
68
+ chart4: "--chart-4",
69
+ chart5: "--chart-5",
70
+ sidebar: "--sidebar",
71
+ sidebarForeground: "--sidebar-foreground",
72
+ sidebarPrimary: "--sidebar-primary",
73
+ sidebarPrimaryForeground: "--sidebar-primary-foreground",
74
+ sidebarAccent: "--sidebar-accent",
75
+ sidebarAccentForeground: "--sidebar-accent-foreground",
76
+ sidebarBorder: "--sidebar-border",
77
+ sidebarRing: "--sidebar-ring"
78
+ };
79
+ const radiusVarNames = {
80
+ none: "--radius-none",
81
+ sm: "--radius-sm",
82
+ md: "--radius-md",
83
+ lg: "--radius-lg",
84
+ xl: "--radius-xl",
85
+ full: "--radius-full"
86
+ };
87
+ const shadowVarNames = {
88
+ none: "--shadow-none",
89
+ xs: "--shadow-xs",
90
+ sm: "--shadow-sm",
91
+ md: "--shadow-md",
92
+ lg: "--shadow-lg",
93
+ xl: "--shadow-xl",
94
+ "2xl": "--shadow-2xl",
95
+ focusRing: "--shadow-focus-ring"
96
+ };
97
+ const zIndexVarNames = {
98
+ base: "--z-base",
99
+ dropdown: "--z-dropdown",
100
+ sticky: "--z-sticky",
101
+ overlay: "--z-overlay",
102
+ modal: "--z-modal",
103
+ popover: "--z-popover",
104
+ toast: "--z-toast",
105
+ tooltip: "--z-tooltip",
106
+ max: "--z-max"
107
+ };
108
+ const durationVarNames = {
109
+ instant: "--duration-instant",
110
+ fast: "--duration-fast",
111
+ moderate: "--duration-moderate",
112
+ normal: "--duration-normal",
113
+ slow: "--duration-slow",
114
+ slower: "--duration-slower",
115
+ slowest: "--duration-slowest"
116
+ };
117
+ const easingVarNames = {
118
+ standard: "--easing-standard",
119
+ decelerate: "--easing-decelerate",
120
+ accelerate: "--easing-accelerate",
121
+ emphasize: "--easing-emphasize",
122
+ linear: "--easing-linear",
123
+ snap: "--easing-snap"
124
+ };
125
+ const fontFamilyVarNames = {
126
+ display: "--font-display",
127
+ sans: "--font-sans",
128
+ serif: "--font-serif",
129
+ mono: "--font-mono",
130
+ inherit: "--font-inherit"
131
+ };
132
+ function mapRecord(varNames, values) {
133
+ const result = {};
134
+ for (const key of Object.keys(varNames)) {
135
+ result[varNames[key]] = values[key];
136
+ }
137
+ return result;
138
+ }
139
+ function buildLightThemeVars() {
140
+ return {
141
+ ...mapRecord(colorVarNames, semanticLight),
142
+ ...mapRecord(radiusVarNames, radius),
143
+ ...mapRecord(shadowVarNames, shadow),
144
+ ...mapRecord(zIndexVarNames, zIndex),
145
+ ...mapRecord(durationVarNames, durationCSS),
146
+ ...mapRecord(easingVarNames, easingCSS),
147
+ ...mapRecord(fontFamilyVarNames, fontFamily)
148
+ };
149
+ }
150
+ function buildDarkThemeVars() {
151
+ return {
152
+ ...mapRecord(colorVarNames, semanticDark),
153
+ ...mapRecord(radiusVarNames, radius),
154
+ ...mapRecord(shadowVarNames, shadowDark),
155
+ ...mapRecord(zIndexVarNames, zIndex),
156
+ ...mapRecord(durationVarNames, durationCSS),
157
+ ...mapRecord(easingVarNames, easingCSS),
158
+ ...mapRecord(fontFamilyVarNames, fontFamily)
159
+ };
160
+ }
161
+ function varsToCSS(vars) {
162
+ return Object.entries(vars).map(([prop, value]) => ` ${prop}: ${value};`).join("\n");
163
+ }
164
+ function buildThemeCSS() {
165
+ const lightVars = buildLightThemeVars();
166
+ const darkVars = buildDarkThemeVars();
167
+ return `:root {
168
+ ${varsToCSS(lightVars)}
169
+ }
170
+
171
+ .dark {
172
+ ${varsToCSS(darkVars)}
173
+ }`;
174
+ }
175
+ const contract = {
176
+ color: colorVarNames,
177
+ radius: radiusVarNames,
178
+ shadow: shadowVarNames,
179
+ zIndex: zIndexVarNames,
180
+ duration: durationVarNames,
181
+ easing: easingVarNames,
182
+ fontFamily: fontFamilyVarNames
183
+ };
184
+ const cssVar = {
185
+ /** Returns `var(--<key>)` for use in style props */
186
+ color: (key) => `var(${colorVarNames[key]})`,
187
+ /**
188
+ * Returns a color-mix() expression with a custom alpha channel.
189
+ *
190
+ * Because oklch values are stored as complete `oklch(L C H)` strings
191
+ * in the CSS custom property, you cannot directly decompose them with
192
+ * simple var() references. For alpha-modified colors, prefer using
193
+ * Tailwind's built-in opacity modifier syntax (e.g. `bg-primary/50`)
194
+ * or define a dedicated muted token.
195
+ *
196
+ * If you need programmatic alpha in JS, use this helper which produces
197
+ * a color-mix() expression for broad browser support.
198
+ */
199
+ colorAlpha: (key, alpha) => `color-mix(in oklch, var(${colorVarNames[key]}) ${Math.round(alpha * 100)}%, transparent)`,
200
+ /** Returns `var(--radius-<key>)` */
201
+ radius: (key) => `var(${radiusVarNames[key]})`,
202
+ /** Returns `var(--shadow-<key>)` */
203
+ shadow: (key) => `var(${shadowVarNames[key]})`,
204
+ /** Returns `var(--z-<key>)` */
205
+ zIndex: (key) => `var(${zIndexVarNames[key]})`,
206
+ /** Returns `var(--duration-<key>)` */
207
+ duration: (key) => `var(${durationVarNames[key]})`,
208
+ /** Returns `var(--easing-<key>)` */
209
+ easing: (key) => `var(${easingVarNames[key]})`,
210
+ /** Returns `var(--font-<key>)` */
211
+ fontFamily: (key) => `var(${fontFamilyVarNames[key]})`,
212
+ /** Returns the raw `var(--<key>)` — same as color() since values are complete oklch */
213
+ colorChannels: (key) => `var(${colorVarNames[key]})`
214
+ };
215
+ export {
216
+ buildDarkThemeVars,
217
+ buildLightThemeVars,
218
+ buildThemeCSS,
219
+ contract,
220
+ cssVar
221
+ };