@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,112 @@
1
+ import * as react from 'react';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+
4
+ declare const pinCellVariants: (props?: ({
5
+ variant?: "default" | "primary" | null | undefined;
6
+ size?: "sm" | "md" | "lg" | null | undefined;
7
+ state?: "success" | "error" | "filled" | "active" | "empty" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ type PinInputVariant = "default" | "primary";
10
+ type PinInputSize = "sm" | "md" | "lg";
11
+ type PinInputType = "numeric" | "alphanumeric" | "alphabetic";
12
+ interface PinInputProps {
13
+ /**
14
+ * Number of input cells.
15
+ * @default 6
16
+ */
17
+ length?: number;
18
+ /**
19
+ * The current value (controlled). Array of single characters.
20
+ */
21
+ value?: string[];
22
+ /**
23
+ * The initial value (uncontrolled).
24
+ */
25
+ defaultValue?: string[];
26
+ /**
27
+ * Called when any cell changes. Receives the full array of cell values.
28
+ */
29
+ onChange?: (value: string[]) => void;
30
+ /**
31
+ * Called when all cells are filled. Receives the joined PIN string.
32
+ */
33
+ onComplete?: (pin: string) => void;
34
+ /**
35
+ * Called when the user clears all cells (backspace on first cell).
36
+ */
37
+ onClear?: () => void;
38
+ /**
39
+ * Input type / allowed characters.
40
+ * - "numeric" — digits only (0–9)
41
+ * - "alphanumeric" — letters and digits
42
+ * - "alphabetic" — letters only
43
+ * @default "numeric"
44
+ */
45
+ type?: PinInputType;
46
+ /**
47
+ * Visual variant.
48
+ * @default "default"
49
+ */
50
+ variant?: PinInputVariant;
51
+ /**
52
+ * Size variant.
53
+ * @default "md"
54
+ */
55
+ size?: PinInputSize;
56
+ /**
57
+ * Whether to mask input (show • instead of character).
58
+ * @default false
59
+ */
60
+ mask?: boolean;
61
+ /**
62
+ * Whether the input is in an error state (triggers shakeX animation).
63
+ * @default false
64
+ */
65
+ error?: boolean;
66
+ /**
67
+ * Whether the input is in a success state.
68
+ * @default false
69
+ */
70
+ success?: boolean;
71
+ /**
72
+ * Whether the input is disabled.
73
+ * @default false
74
+ */
75
+ disabled?: boolean;
76
+ /**
77
+ * Accessible label for the PIN input group.
78
+ * @default "PIN Input"
79
+ */
80
+ "aria-label"?: string;
81
+ /**
82
+ * Whether to automatically focus the first cell on mount.
83
+ * @default false
84
+ */
85
+ autoFocus?: boolean;
86
+ /**
87
+ * Gap between cells.
88
+ * @default "gap-2"
89
+ */
90
+ gap?: string;
91
+ /** Additional CSS classes on the container. */
92
+ className?: string;
93
+ }
94
+ /**
95
+ * PinInput — OTP / verification code input with auto-advance.
96
+ *
97
+ * @example
98
+ * // Basic 6-digit OTP
99
+ * <PinInput length={6} onComplete={(pin) => verifyOTP(pin)} />
100
+ *
101
+ * // 4-digit masked PIN
102
+ * <PinInput length={4} mask onComplete={handlePin} />
103
+ *
104
+ * // With error state (triggers shake animation)
105
+ * <PinInput length={6} error value={cells} onChange={setCells} />
106
+ *
107
+ * // Alphanumeric (e.g. invite code)
108
+ * <PinInput length={8} type="alphanumeric" variant="primary" size="lg" />
109
+ */
110
+ declare const PinInput: react.ForwardRefExoticComponent<PinInputProps & react.RefAttributes<HTMLDivElement>>;
111
+
112
+ export { PinInput, type PinInputProps, type PinInputSize, type PinInputType, type PinInputVariant, pinCellVariants };
@@ -0,0 +1,112 @@
1
+ import * as react from 'react';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+
4
+ declare const pinCellVariants: (props?: ({
5
+ variant?: "default" | "primary" | null | undefined;
6
+ size?: "sm" | "md" | "lg" | null | undefined;
7
+ state?: "success" | "error" | "filled" | "active" | "empty" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ type PinInputVariant = "default" | "primary";
10
+ type PinInputSize = "sm" | "md" | "lg";
11
+ type PinInputType = "numeric" | "alphanumeric" | "alphabetic";
12
+ interface PinInputProps {
13
+ /**
14
+ * Number of input cells.
15
+ * @default 6
16
+ */
17
+ length?: number;
18
+ /**
19
+ * The current value (controlled). Array of single characters.
20
+ */
21
+ value?: string[];
22
+ /**
23
+ * The initial value (uncontrolled).
24
+ */
25
+ defaultValue?: string[];
26
+ /**
27
+ * Called when any cell changes. Receives the full array of cell values.
28
+ */
29
+ onChange?: (value: string[]) => void;
30
+ /**
31
+ * Called when all cells are filled. Receives the joined PIN string.
32
+ */
33
+ onComplete?: (pin: string) => void;
34
+ /**
35
+ * Called when the user clears all cells (backspace on first cell).
36
+ */
37
+ onClear?: () => void;
38
+ /**
39
+ * Input type / allowed characters.
40
+ * - "numeric" — digits only (0–9)
41
+ * - "alphanumeric" — letters and digits
42
+ * - "alphabetic" — letters only
43
+ * @default "numeric"
44
+ */
45
+ type?: PinInputType;
46
+ /**
47
+ * Visual variant.
48
+ * @default "default"
49
+ */
50
+ variant?: PinInputVariant;
51
+ /**
52
+ * Size variant.
53
+ * @default "md"
54
+ */
55
+ size?: PinInputSize;
56
+ /**
57
+ * Whether to mask input (show • instead of character).
58
+ * @default false
59
+ */
60
+ mask?: boolean;
61
+ /**
62
+ * Whether the input is in an error state (triggers shakeX animation).
63
+ * @default false
64
+ */
65
+ error?: boolean;
66
+ /**
67
+ * Whether the input is in a success state.
68
+ * @default false
69
+ */
70
+ success?: boolean;
71
+ /**
72
+ * Whether the input is disabled.
73
+ * @default false
74
+ */
75
+ disabled?: boolean;
76
+ /**
77
+ * Accessible label for the PIN input group.
78
+ * @default "PIN Input"
79
+ */
80
+ "aria-label"?: string;
81
+ /**
82
+ * Whether to automatically focus the first cell on mount.
83
+ * @default false
84
+ */
85
+ autoFocus?: boolean;
86
+ /**
87
+ * Gap between cells.
88
+ * @default "gap-2"
89
+ */
90
+ gap?: string;
91
+ /** Additional CSS classes on the container. */
92
+ className?: string;
93
+ }
94
+ /**
95
+ * PinInput — OTP / verification code input with auto-advance.
96
+ *
97
+ * @example
98
+ * // Basic 6-digit OTP
99
+ * <PinInput length={6} onComplete={(pin) => verifyOTP(pin)} />
100
+ *
101
+ * // 4-digit masked PIN
102
+ * <PinInput length={4} mask onComplete={handlePin} />
103
+ *
104
+ * // With error state (triggers shake animation)
105
+ * <PinInput length={6} error value={cells} onChange={setCells} />
106
+ *
107
+ * // Alphanumeric (e.g. invite code)
108
+ * <PinInput length={8} type="alphanumeric" variant="primary" size="lg" />
109
+ */
110
+ declare const PinInput: react.ForwardRefExoticComponent<PinInputProps & react.RefAttributes<HTMLDivElement>>;
111
+
112
+ export { PinInput, type PinInputProps, type PinInputSize, type PinInputType, type PinInputVariant, pinCellVariants };
@@ -0,0 +1,303 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { pop, shakeX } from "../motion/index";
4
+ import { cn } from "../utils/cn";
5
+ import { cva } from "class-variance-authority";
6
+ import { AnimatePresence, motion, useReducedMotion } from "framer-motion";
7
+ import {
8
+ forwardRef,
9
+ useCallback,
10
+ useEffect,
11
+ useImperativeHandle,
12
+ useRef,
13
+ useState
14
+ } from "react";
15
+ const pinCellVariants = cva(
16
+ [
17
+ // Layout
18
+ "inline-flex items-center justify-center shrink-0",
19
+ "rounded-md border bg-background",
20
+ // Typography
21
+ "text-center font-semibold tabular-nums leading-none",
22
+ // Transition
23
+ "transition-[border-color,box-shadow,background-color] duration-fast",
24
+ // Disabled
25
+ "disabled:pointer-events-none disabled:opacity-50",
26
+ // Cursor
27
+ "cursor-text",
28
+ // Remove native input styling
29
+ "outline-none appearance-none",
30
+ // Selection
31
+ "select-none",
32
+ // Hide caret — we use a custom one
33
+ "caret-transparent"
34
+ ],
35
+ {
36
+ variants: {
37
+ variant: {
38
+ default: [
39
+ "border-input",
40
+ "focus:border-ring focus:ring-2 focus:ring-ring/20"
41
+ ],
42
+ primary: [
43
+ "border-primary/40",
44
+ "focus:border-primary focus:ring-2 focus:ring-primary/20"
45
+ ]
46
+ },
47
+ size: {
48
+ sm: "w-8 h-10 text-base",
49
+ md: "w-10 h-12 text-lg",
50
+ lg: "w-12 h-14 text-xl"
51
+ },
52
+ state: {
53
+ empty: "",
54
+ filled: "bg-accent/30",
55
+ active: "",
56
+ error: "border-danger focus:border-danger focus:ring-danger/20",
57
+ success: "border-success focus:border-success focus:ring-success/20"
58
+ }
59
+ },
60
+ defaultVariants: {
61
+ variant: "default",
62
+ size: "md",
63
+ state: "empty"
64
+ }
65
+ }
66
+ );
67
+ const allowedPatterns = {
68
+ numeric: /^[0-9]$/,
69
+ alphanumeric: /^[a-zA-Z0-9]$/,
70
+ alphabetic: /^[a-zA-Z]$/
71
+ };
72
+ const MASK_CHAR = "\u2022";
73
+ const PinInput = forwardRef(
74
+ function PinInput2({
75
+ length = 6,
76
+ value: controlledValue,
77
+ defaultValue,
78
+ onChange,
79
+ onComplete,
80
+ onClear,
81
+ type = "numeric",
82
+ variant = "default",
83
+ size = "md",
84
+ mask = false,
85
+ error = false,
86
+ success = false,
87
+ disabled = false,
88
+ "aria-label": ariaLabel = "PIN Input",
89
+ autoFocus = false,
90
+ gap = "gap-2",
91
+ className
92
+ }, ref) {
93
+ const shouldReduce = useReducedMotion();
94
+ const [internalValue, setInternalValue] = useState(() => {
95
+ const initial = defaultValue ?? controlledValue ?? [];
96
+ return Array.from({ length }, (_, i) => initial[i] ?? "");
97
+ });
98
+ const cells = controlledValue !== void 0 ? Array.from({ length }, (_, i) => controlledValue[i] ?? "") : internalValue;
99
+ const [animatedIndex, setAnimatedIndex] = useState(null);
100
+ const [shakeKey, setShakeKey] = useState(0);
101
+ const inputRefs = useRef([]);
102
+ const containerRef = useRef(null);
103
+ useImperativeHandle(ref, () => containerRef.current);
104
+ useEffect(() => {
105
+ if (autoFocus) {
106
+ inputRefs.current[0]?.focus();
107
+ }
108
+ }, [autoFocus]);
109
+ const prevErrorRef = useRef(error);
110
+ useEffect(() => {
111
+ if (error && !prevErrorRef.current) {
112
+ setShakeKey((k) => k + 1);
113
+ }
114
+ prevErrorRef.current = error;
115
+ }, [error]);
116
+ const commit = useCallback(
117
+ (newCells) => {
118
+ if (controlledValue === void 0) {
119
+ setInternalValue(newCells);
120
+ }
121
+ onChange?.(newCells);
122
+ const allFilled = newCells.every((c) => c.length === 1);
123
+ if (allFilled) {
124
+ onComplete?.(newCells.join(""));
125
+ }
126
+ },
127
+ [controlledValue, onChange, onComplete]
128
+ );
129
+ const handleKeyDown = useCallback(
130
+ (e, index) => {
131
+ const pattern = allowedPatterns[type];
132
+ if (e.key === "Backspace") {
133
+ e.preventDefault();
134
+ const newCells = [...cells];
135
+ if (newCells[index]) {
136
+ newCells[index] = "";
137
+ commit(newCells);
138
+ } else if (index > 0) {
139
+ newCells[index - 1] = "";
140
+ commit(newCells);
141
+ inputRefs.current[index - 1]?.focus();
142
+ } else {
143
+ const cleared = Array.from({ length }, () => "");
144
+ commit(cleared);
145
+ onClear?.();
146
+ }
147
+ return;
148
+ }
149
+ if (e.key === "Delete") {
150
+ e.preventDefault();
151
+ const newCells = [...cells];
152
+ newCells[index] = "";
153
+ commit(newCells);
154
+ return;
155
+ }
156
+ if (e.key === "ArrowLeft" && index > 0) {
157
+ e.preventDefault();
158
+ inputRefs.current[index - 1]?.focus();
159
+ return;
160
+ }
161
+ if (e.key === "ArrowRight" && index < length - 1) {
162
+ e.preventDefault();
163
+ inputRefs.current[index + 1]?.focus();
164
+ return;
165
+ }
166
+ if (e.key === "Home") {
167
+ e.preventDefault();
168
+ inputRefs.current[0]?.focus();
169
+ return;
170
+ }
171
+ if (e.key === "End") {
172
+ e.preventDefault();
173
+ inputRefs.current[length - 1]?.focus();
174
+ return;
175
+ }
176
+ if (e.key.length === 1 && !e.ctrlKey && !e.metaKey) {
177
+ e.preventDefault();
178
+ const char = e.key.toUpperCase();
179
+ if (!pattern.test(type === "numeric" ? e.key : char)) return;
180
+ const newCells = [...cells];
181
+ newCells[index] = type === "numeric" ? e.key : char;
182
+ commit(newCells);
183
+ setAnimatedIndex(index);
184
+ setTimeout(() => setAnimatedIndex(null), 400);
185
+ if (index < length - 1) {
186
+ inputRefs.current[index + 1]?.focus();
187
+ }
188
+ }
189
+ },
190
+ [cells, commit, length, type, onClear]
191
+ );
192
+ const handlePaste = useCallback(
193
+ (e, startIndex) => {
194
+ e.preventDefault();
195
+ const raw = e.clipboardData.getData("text");
196
+ const pattern = allowedPatterns[type];
197
+ const chars = raw.split("").filter((c) => pattern.test(type === "numeric" ? c : c.toUpperCase())).map((c) => type === "numeric" ? c : c.toUpperCase());
198
+ if (chars.length === 0) return;
199
+ const newCells = [...cells];
200
+ let lastFilled = startIndex;
201
+ for (let i = 0; i < chars.length && startIndex + i < length; i++) {
202
+ newCells[startIndex + i] = chars[i];
203
+ lastFilled = startIndex + i;
204
+ }
205
+ commit(newCells);
206
+ const focusTarget = Math.min(lastFilled + 1, length - 1);
207
+ inputRefs.current[focusTarget]?.focus();
208
+ },
209
+ [cells, commit, length, type]
210
+ );
211
+ const handleClick = useCallback(
212
+ (index) => {
213
+ const firstEmpty = cells.findIndex((c) => !c);
214
+ if (firstEmpty !== -1 && firstEmpty < index) {
215
+ inputRefs.current[firstEmpty]?.focus();
216
+ } else {
217
+ inputRefs.current[index]?.focus();
218
+ }
219
+ },
220
+ [cells]
221
+ );
222
+ const containerState = error ? "error" : success ? "success" : void 0;
223
+ return /* @__PURE__ */ jsx(
224
+ motion.div,
225
+ {
226
+ ref: containerRef,
227
+ className: cn("inline-flex", gap, className),
228
+ variants: shakeX.variants,
229
+ initial: shakeKey === 0 ? false : "initial",
230
+ animate: shakeKey > 0 ? "animate" : "initial",
231
+ transition: shakeX.transition,
232
+ "aria-label": ariaLabel,
233
+ "data-ds": "",
234
+ "data-ds-component": "pin-input",
235
+ "data-ds-variant": variant,
236
+ "data-ds-size": size,
237
+ "data-ds-animated": "",
238
+ children: Array.from({ length }, (_, index) => {
239
+ const cellValue = cells[index] ?? "";
240
+ const isFilled = cellValue.length === 1;
241
+ const cellState = containerState ?? (isFilled ? "filled" : "empty");
242
+ return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
243
+ /* @__PURE__ */ jsx(AnimatePresence, { children: animatedIndex === index && isFilled && !shouldReduce && /* @__PURE__ */ jsx(
244
+ motion.div,
245
+ {
246
+ className: "absolute inset-0 rounded-md bg-primary/15 pointer-events-none",
247
+ variants: pop.variants,
248
+ initial: "initial",
249
+ animate: "animate",
250
+ exit: "exit",
251
+ transition: pop.transition,
252
+ "data-ds-animated": ""
253
+ }
254
+ ) }),
255
+ /* @__PURE__ */ jsx(
256
+ "input",
257
+ {
258
+ ref: (el) => {
259
+ inputRefs.current[index] = el;
260
+ },
261
+ type: mask ? "password" : "text",
262
+ inputMode: type === "numeric" ? "numeric" : "text",
263
+ pattern: type === "numeric" ? "[0-9]*" : type === "alphabetic" ? "[a-zA-Z]*" : "[a-zA-Z0-9]*",
264
+ maxLength: 1,
265
+ value: mask && isFilled ? MASK_CHAR : cellValue,
266
+ readOnly: true,
267
+ autoComplete: index === 0 ? "one-time-code" : "off",
268
+ autoCorrect: "off",
269
+ autoCapitalize: "none",
270
+ spellCheck: false,
271
+ disabled,
272
+ onClick: () => handleClick(index),
273
+ onKeyDown: (e) => handleKeyDown(e, index),
274
+ onPaste: (e) => handlePaste(e, index),
275
+ onChange: () => {
276
+ },
277
+ className: cn(
278
+ pinCellVariants({
279
+ variant,
280
+ size,
281
+ state: cellState
282
+ }),
283
+ // Override focus ring with our variant-specific ring
284
+ "focus:outline-none"
285
+ ),
286
+ "aria-label": `Digit ${index + 1} of ${length}`,
287
+ "aria-invalid": error ? "true" : void 0,
288
+ "data-ds-cell-index": index,
289
+ "data-ds-filled": isFilled ? "" : void 0
290
+ }
291
+ )
292
+ ] }, index);
293
+ })
294
+ },
295
+ shakeKey
296
+ );
297
+ }
298
+ );
299
+ PinInput.displayName = "PinInput";
300
+ export {
301
+ PinInput,
302
+ pinCellVariants
303
+ };