@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,198 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const avatarVariants: (props?: ({
7
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
8
+ shape?: "circle" | "square" | null | undefined;
9
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
10
+ type AvatarStatus = "online" | "offline" | "busy" | "away";
11
+ type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl";
12
+ type AvatarShape = "circle" | "square";
13
+ interface AvatarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color">, VariantProps<typeof avatarVariants> {
14
+ /**
15
+ * Image source URL for the avatar.
16
+ * When provided, the component renders an `<img>` element.
17
+ * If the image fails to load, it falls back to initials or icon.
18
+ */
19
+ src?: string | null;
20
+ /**
21
+ * Alt text for the avatar image.
22
+ * Required for accessibility when `src` is provided.
23
+ * Also used as tooltip/title text.
24
+ */
25
+ alt?: string;
26
+ /**
27
+ * Full name of the user. Used to:
28
+ * 1. Generate initials for the fallback display
29
+ * 2. Provide alt text if `alt` is not explicitly set
30
+ *
31
+ * Initials are derived from the first letter of the first and last
32
+ * name segments (e.g. "Jane Doe" → "JD", "Alice" → "A").
33
+ */
34
+ name?: string;
35
+ /**
36
+ * Size of the avatar.
37
+ * @default "md"
38
+ */
39
+ size?: AvatarSize;
40
+ /**
41
+ * Shape of the avatar.
42
+ * @default "circle"
43
+ */
44
+ shape?: AvatarShape;
45
+ /**
46
+ * Status indicator displayed as a colored dot on the avatar.
47
+ * Position is automatically adjusted based on the avatar size.
48
+ */
49
+ status?: AvatarStatus;
50
+ /**
51
+ * Custom accessible label for the status indicator.
52
+ * Overrides the default label derived from the status value.
53
+ */
54
+ statusLabel?: string;
55
+ /**
56
+ * Custom fallback icon to display when no `src` or `name` is provided.
57
+ * Defaults to a generic user silhouette SVG.
58
+ */
59
+ fallbackIcon?: ReactNode;
60
+ /**
61
+ * Custom background color class for the fallback state.
62
+ * Useful for generating unique colors per user.
63
+ *
64
+ * @example "bg-indigo-100 text-indigo-700"
65
+ */
66
+ fallbackClassName?: string;
67
+ /** Additional CSS classes to merge on the root element. */
68
+ className?: string;
69
+ /** Content to render inside the avatar (overrides all fallback logic). */
70
+ children?: ReactNode;
71
+ }
72
+ /**
73
+ * Avatar — displays a user's profile image, initials, or a fallback icon.
74
+ *
75
+ * Built on the design system's token layer with CVA for variant composition.
76
+ * All colors, radii, spacing, and transitions come from CSS custom properties
77
+ * defined in design-system.css.
78
+ *
79
+ * The component automatically handles image loading and gracefully falls
80
+ * back to initials (derived from `name`) or a default user icon.
81
+ *
82
+ * Accessibility:
83
+ * - Images include `alt` text (falls back to `name` if not provided)
84
+ * - Fallback initials container has `role="img"` and `aria-label`
85
+ * - Status dot has `role="status"` and descriptive `aria-label`
86
+ *
87
+ * @example
88
+ * ```tsx
89
+ * // With image
90
+ * <Avatar src="/photo.jpg" alt="Jane Doe" />
91
+ *
92
+ * // Initials fallback
93
+ * <Avatar name="Jane Doe" />
94
+ * <Avatar name="Jane Doe" size="lg" />
95
+ *
96
+ * // With status indicator
97
+ * <Avatar src="/photo.jpg" alt="Jane" status="online" />
98
+ * <Avatar name="Bob" status="busy" />
99
+ * <Avatar name="Charlie" status="away" size="sm" />
100
+ *
101
+ * // Square shape (for orgs/apps)
102
+ * <Avatar src="/logo.png" alt="Acme Inc" shape="square" />
103
+ *
104
+ * // All sizes
105
+ * <Avatar name="A" size="xs" />
106
+ * <Avatar name="A" size="sm" />
107
+ * <Avatar name="A" size="md" />
108
+ * <Avatar name="A" size="lg" />
109
+ * <Avatar name="A" size="xl" />
110
+ *
111
+ * // Custom fallback styling
112
+ * <Avatar name="Jane" fallbackClassName="bg-indigo-100 text-indigo-700" />
113
+ *
114
+ * // Custom fallback icon
115
+ * <Avatar fallbackIcon={<BotIcon className="size-[60%]" />} />
116
+ *
117
+ * // Custom children (overrides all fallback logic)
118
+ * <Avatar>
119
+ * <span>🎉</span>
120
+ * </Avatar>
121
+ * ```
122
+ */
123
+ declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
124
+ interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {
125
+ /**
126
+ * Maximum number of avatars to display before showing the "+N" overflow.
127
+ * Set to `0` or `Infinity` to disable truncation.
128
+ * @default 5
129
+ */
130
+ max?: number;
131
+ /**
132
+ * Size applied to all child avatars and the overflow indicator.
133
+ * Overrides the `size` prop on individual Avatar children.
134
+ * @default "md"
135
+ */
136
+ size?: AvatarSize;
137
+ /**
138
+ * Shape applied to all child avatars and the overflow indicator.
139
+ * Overrides the `shape` prop on individual Avatar children.
140
+ * @default "circle"
141
+ */
142
+ shape?: AvatarShape;
143
+ /**
144
+ * Spacing between overlapping avatars (as a negative margin).
145
+ * @default "default" — uses size-appropriate overlap
146
+ */
147
+ spacing?: "tight" | "default" | "loose";
148
+ /** Content — should be Avatar components. */
149
+ children?: ReactNode;
150
+ /** Additional CSS classes to merge on the wrapper. */
151
+ className?: string;
152
+ }
153
+ /**
154
+ * AvatarGroup — stacks multiple avatars with overlap and "+N" overflow.
155
+ *
156
+ * Renders child Avatar components in a horizontal stack with negative
157
+ * margins for overlap. When the number of children exceeds `max`, the
158
+ * excess avatars are hidden and a "+N" overflow indicator is shown.
159
+ *
160
+ * The group enforces consistent `size` and `shape` across all children
161
+ * by cloning them with the group's props.
162
+ *
163
+ * @example
164
+ * ```tsx
165
+ * // Basic group
166
+ * <AvatarGroup>
167
+ * <Avatar src="/a.jpg" alt="Alice" />
168
+ * <Avatar src="/b.jpg" alt="Bob" />
169
+ * <Avatar name="Charlie" />
170
+ * </AvatarGroup>
171
+ *
172
+ * // With max and overflow
173
+ * <AvatarGroup max={3}>
174
+ * <Avatar name="Alice" />
175
+ * <Avatar name="Bob" />
176
+ * <Avatar name="Charlie" />
177
+ * <Avatar name="Diana" />
178
+ * <Avatar name="Eve" />
179
+ * </AvatarGroup>
180
+ * // Renders: [Alice] [Bob] [Charlie] [+2]
181
+ *
182
+ * // Custom size and spacing
183
+ * <AvatarGroup size="lg" spacing="tight">
184
+ * <Avatar name="A" />
185
+ * <Avatar name="B" />
186
+ * <Avatar name="C" />
187
+ * </AvatarGroup>
188
+ *
189
+ * // Square group (for org logos)
190
+ * <AvatarGroup shape="square" size="sm">
191
+ * <Avatar src="/logo1.png" alt="Org 1" />
192
+ * <Avatar src="/logo2.png" alt="Org 2" />
193
+ * </AvatarGroup>
194
+ * ```
195
+ */
196
+ declare const AvatarGroup: react.ForwardRefExoticComponent<AvatarGroupProps & react.RefAttributes<HTMLDivElement>>;
197
+
198
+ export { Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, avatarVariants };
@@ -0,0 +1,329 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../utils/cn";
4
+ import { cva } from "class-variance-authority";
5
+ import {
6
+ Children,
7
+ cloneElement,
8
+ forwardRef,
9
+ isValidElement,
10
+ useEffect,
11
+ useState
12
+ } from "react";
13
+ const avatarVariants = cva(
14
+ // Base styles — shared across all variants and sizes
15
+ [
16
+ // Layout
17
+ "relative inline-flex items-center justify-center shrink-0",
18
+ // Typography for fallback initials
19
+ "font-medium leading-none select-none",
20
+ // Default colors for fallback state
21
+ "bg-muted text-muted-foreground"
22
+ ],
23
+ {
24
+ variants: {
25
+ // -----------------------------------------------------------------
26
+ // Size Variants
27
+ // -----------------------------------------------------------------
28
+ size: {
29
+ /**
30
+ * Extra small — 24px. Inline metadata, compact lists.
31
+ */
32
+ xs: "size-6 text-[10px]",
33
+ /**
34
+ * Small — 32px. Table rows, compact cards.
35
+ */
36
+ sm: "size-8 text-xs",
37
+ /**
38
+ * Medium — 40px. Default, cards, comments.
39
+ */
40
+ md: "size-10 text-sm",
41
+ /**
42
+ * Large — 48px. Profile headers, featured content.
43
+ */
44
+ lg: "size-12 text-base",
45
+ /**
46
+ * Extra large — 64px. Profile pages, hero sections.
47
+ */
48
+ xl: "size-16 text-lg"
49
+ },
50
+ // -----------------------------------------------------------------
51
+ // Shape Variants
52
+ // -----------------------------------------------------------------
53
+ shape: {
54
+ /**
55
+ * Circle — default, standard avatar shape.
56
+ */
57
+ circle: "rounded-full",
58
+ /**
59
+ * Square — rounded rectangle, for app icons or org logos.
60
+ */
61
+ square: "rounded-md"
62
+ }
63
+ },
64
+ defaultVariants: {
65
+ size: "md",
66
+ shape: "circle"
67
+ }
68
+ }
69
+ );
70
+ const statusColorMap = {
71
+ online: "bg-success",
72
+ offline: "bg-muted-foreground",
73
+ busy: "bg-danger",
74
+ away: "bg-warning"
75
+ };
76
+ const statusLabelMap = {
77
+ online: "Online",
78
+ offline: "Offline",
79
+ busy: "Busy",
80
+ away: "Away"
81
+ };
82
+ const statusSizeMap = {
83
+ xs: "size-1.5",
84
+ sm: "size-2",
85
+ md: "size-2.5",
86
+ lg: "size-3",
87
+ xl: "size-3.5"
88
+ };
89
+ const statusPositionMap = {
90
+ xs: "bottom-0 right-0",
91
+ sm: "bottom-0 right-0",
92
+ md: "bottom-0.5 right-0.5",
93
+ lg: "bottom-0.5 right-0.5",
94
+ xl: "bottom-1 right-1"
95
+ };
96
+ function getInitials(name) {
97
+ const parts = name.trim().split(/\s+/).filter(Boolean);
98
+ if (parts.length === 0) return "";
99
+ if (parts.length === 1) return parts[0][0].toUpperCase();
100
+ return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
101
+ }
102
+ function DefaultFallbackIcon({ className }) {
103
+ return /* @__PURE__ */ jsxs(
104
+ "svg",
105
+ {
106
+ className: cn("size-8 translate-y-px text-current opacity-70", className),
107
+ xmlns: "http://www.w3.org/2000/svg",
108
+ viewBox: "0 0 24 24",
109
+ fill: "currentColor",
110
+ "aria-hidden": "true",
111
+ children: [
112
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "7", r: "4" }),
113
+ /* @__PURE__ */ jsx("path", { d: "M12 14c-4.42 0-8 2.24-8 5v5h16v-5c0-2.76-3.58-5-8-5z" })
114
+ ]
115
+ }
116
+ );
117
+ }
118
+ function StatusDot({
119
+ status,
120
+ size,
121
+ label,
122
+ shape
123
+ }) {
124
+ const resolvedLabel = label ?? statusLabelMap[status];
125
+ return /* @__PURE__ */ jsx(
126
+ "span",
127
+ {
128
+ className: cn(
129
+ "absolute block",
130
+ "rounded-full",
131
+ "ring-2 ring-background",
132
+ statusSizeMap[size],
133
+ statusColorMap[status],
134
+ // Position based on shape — circle uses corner, square uses edge
135
+ shape === "circle" ? statusPositionMap[size] : "bottom-0 right-0"
136
+ ),
137
+ role: "status",
138
+ "aria-label": resolvedLabel
139
+ }
140
+ );
141
+ }
142
+ function useImageLoadStatus(src) {
143
+ const [status, setStatus] = useState(
144
+ () => src ? "loading" : "error"
145
+ );
146
+ useEffect(() => {
147
+ if (!src) {
148
+ setStatus("error");
149
+ return;
150
+ }
151
+ setStatus("loading");
152
+ const img = new Image();
153
+ const handleLoad = () => setStatus("loaded");
154
+ const handleError = () => setStatus("error");
155
+ img.addEventListener("load", handleLoad);
156
+ img.addEventListener("error", handleError);
157
+ img.src = src;
158
+ if (img.complete) {
159
+ setStatus("loaded");
160
+ }
161
+ return () => {
162
+ img.removeEventListener("load", handleLoad);
163
+ img.removeEventListener("error", handleError);
164
+ };
165
+ }, [src]);
166
+ return status;
167
+ }
168
+ const Avatar = forwardRef(function Avatar2({
169
+ src,
170
+ alt,
171
+ name,
172
+ size = "md",
173
+ shape = "circle",
174
+ status,
175
+ statusLabel,
176
+ fallbackIcon,
177
+ fallbackClassName,
178
+ className,
179
+ children,
180
+ ...rest
181
+ }, ref) {
182
+ const imageStatus = useImageLoadStatus(src);
183
+ const showImage = imageStatus === "loaded" && src;
184
+ const initials = name ? getInitials(name) : "";
185
+ const resolvedAlt = alt ?? name ?? "Avatar";
186
+ const imgEl = showImage ? /* @__PURE__ */ jsx(
187
+ "img",
188
+ {
189
+ src,
190
+ alt: resolvedAlt,
191
+ className: "size-full object-cover",
192
+ draggable: false
193
+ }
194
+ ) : null;
195
+ return /* @__PURE__ */ jsxs(
196
+ "span",
197
+ {
198
+ ref,
199
+ className: cn(
200
+ avatarVariants({ size, shape }),
201
+ !showImage && fallbackClassName,
202
+ className
203
+ ),
204
+ "data-ds": "",
205
+ "data-ds-component": "avatar",
206
+ "data-ds-size": size,
207
+ "data-ds-shape": shape,
208
+ ...rest,
209
+ children: [
210
+ /* @__PURE__ */ jsx("span", { className: "absolute inset-0 overflow-hidden rounded-[inherit] flex items-center justify-center", children: children ? children : showImage ? (
211
+ /* Priority 2: Loaded image */
212
+ imgEl
213
+ ) : initials ? (
214
+ /* Priority 3: Initials from name */
215
+ /* @__PURE__ */ jsx("span", { role: "img", "aria-label": resolvedAlt, children: initials })
216
+ ) : (
217
+ /* Priority 4: Fallback icon */
218
+ /* @__PURE__ */ jsx("span", { role: "img", "aria-label": resolvedAlt, children: fallbackIcon ?? /* @__PURE__ */ jsx(DefaultFallbackIcon, {}) })
219
+ ) }),
220
+ status && /* @__PURE__ */ jsx(
221
+ StatusDot,
222
+ {
223
+ status,
224
+ size,
225
+ label: statusLabel,
226
+ shape
227
+ }
228
+ )
229
+ ]
230
+ }
231
+ );
232
+ });
233
+ Avatar.displayName = "Avatar";
234
+ const overlapMap = {
235
+ xs: { tight: "-ml-3", default: "-ml-2.5", loose: "-ml-1.5" },
236
+ sm: { tight: "-ml-4", default: "-ml-3", loose: "-ml-2" },
237
+ md: { tight: "-ml-5", default: "-ml-4", loose: "-ml-3" },
238
+ lg: { tight: "-ml-6", default: "-ml-5", loose: "-ml-3.5" },
239
+ xl: { tight: "-ml-8", default: "-ml-6", loose: "-ml-4" }
240
+ };
241
+ const AvatarGroup = forwardRef(
242
+ function AvatarGroup2({
243
+ max = 5,
244
+ size = "md",
245
+ shape = "circle",
246
+ spacing = "default",
247
+ className,
248
+ children,
249
+ ...rest
250
+ }, ref) {
251
+ const childArray = Children.toArray(children).filter(isValidElement);
252
+ const totalCount = childArray.length;
253
+ const overflowCount = max > 0 && totalCount > max ? totalCount - max : 0;
254
+ const visibleChildren = overflowCount > 0 ? childArray.slice(0, max) : childArray;
255
+ const overlapClass = overlapMap[size][spacing];
256
+ return /* @__PURE__ */ jsxs(
257
+ "div",
258
+ {
259
+ ref,
260
+ className: cn("inline-flex items-center", className),
261
+ role: "group",
262
+ "aria-label": `Group of ${totalCount} avatars`,
263
+ "data-ds": "",
264
+ "data-ds-component": "avatar-group",
265
+ ...rest,
266
+ children: [
267
+ visibleChildren.map((child, index) => {
268
+ if (!isValidElement(child)) return child;
269
+ return /* @__PURE__ */ jsx(
270
+ "span",
271
+ {
272
+ className: cn(
273
+ index > 0 && overlapClass,
274
+ // Ensure proper stacking order (first avatar on top)
275
+ // z-index is set via CSS var so hover:z-50! (Tailwind) can override it
276
+ "relative inline-flex cursor-pointer transition-transform duration-150 ease-out",
277
+ "z-(--ag-z)",
278
+ "hover:z-50! hover:scale-110"
279
+ ),
280
+ style: { "--ag-z": totalCount - index },
281
+ children: cloneElement(child, {
282
+ size,
283
+ shape,
284
+ className: cn(
285
+ child.props?.className,
286
+ "ring-2 ring-background"
287
+ )
288
+ })
289
+ },
290
+ child.props?.alt ?? child.props?.name ?? index
291
+ );
292
+ }),
293
+ overflowCount > 0 && /* @__PURE__ */ jsx(
294
+ "span",
295
+ {
296
+ className: cn(overlapClass, "relative inline-flex z-(--ag-z)"),
297
+ style: { "--ag-z": 0 },
298
+ children: /* @__PURE__ */ jsxs(
299
+ "span",
300
+ {
301
+ className: cn(
302
+ avatarVariants({ size, shape }),
303
+ "ring-2 ring-background",
304
+ "bg-muted text-muted-foreground",
305
+ "font-semibold"
306
+ ),
307
+ role: "img",
308
+ "aria-label": `${overflowCount} more`,
309
+ "data-ds": "",
310
+ "data-ds-component": "avatar-overflow",
311
+ children: [
312
+ "+",
313
+ overflowCount
314
+ ]
315
+ }
316
+ )
317
+ }
318
+ )
319
+ ]
320
+ }
321
+ );
322
+ }
323
+ );
324
+ AvatarGroup.displayName = "AvatarGroup";
325
+ export {
326
+ Avatar,
327
+ AvatarGroup,
328
+ avatarVariants
329
+ };