@work-rjkashyap/unified-ui 0.3.4 → 0.3.6

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 -1957
  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-AAEWG5VR.mjs → tokens/colors.cjs} +94 -94
  372. package/dist/{z-index-DmLl6FUD.d.ts → tokens/colors.d.cts} +118 -72
  373. package/dist/{z-index-DmLl6FUD.d.cts → tokens/colors.d.ts} +118 -72
  374. package/dist/{chunk-6ZZZBOCH.cjs → tokens/colors.mjs} +47 -121
  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-A2DGHQL2.cjs +0 -21808
  428. package/dist/chunk-BJ55D5IK.mjs +0 -2433
  429. package/dist/chunk-F4JJFWWU.cjs +0 -604
  430. package/dist/chunk-FUWXGHWQ.cjs +0 -468
  431. package/dist/chunk-MBYCK2JJ.mjs +0 -37
  432. package/dist/chunk-OHEH57BV.mjs +0 -455
  433. package/dist/chunk-RUG3BW2B.cjs +0 -2471
  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 -159
  446. package/dist/theme.d.cts +0 -440
  447. package/dist/theme.d.ts +0 -440
  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,211 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../utils/cn.mjs";
4
+ import { cva } from "class-variance-authority";
5
+ import { forwardRef, useEffect } from "react";
6
+ const progressTrackVariants = cva(
7
+ // Base styles — shared across all variants and sizes
8
+ [
9
+ // Layout
10
+ "relative w-full overflow-hidden",
11
+ // Shape
12
+ "rounded-full",
13
+ // Background
14
+ "bg-muted"
15
+ ],
16
+ {
17
+ variants: {
18
+ // -----------------------------------------------------------------
19
+ // Size Variants
20
+ // -----------------------------------------------------------------
21
+ size: {
22
+ /**
23
+ * Small — thin bar for subtle progress indicators.
24
+ * Height: 6px
25
+ */
26
+ sm: "h-1.5",
27
+ /**
28
+ * Medium — default size for most progress bars.
29
+ * Height: 8px
30
+ */
31
+ md: "h-2",
32
+ /**
33
+ * Large — prominent bar for hero progress, file uploads.
34
+ * Height: 12px
35
+ */
36
+ lg: "h-3"
37
+ }
38
+ },
39
+ defaultVariants: {
40
+ size: "md"
41
+ }
42
+ }
43
+ );
44
+ const progressIndicatorVariants = cva(
45
+ // Base styles — shared across all variants
46
+ [
47
+ // Layout
48
+ "h-full",
49
+ // Shape — match track rounding
50
+ "rounded-full",
51
+ // Transition for value changes
52
+ "transition-[width] duration-standard ease-standard"
53
+ ],
54
+ {
55
+ variants: {
56
+ // -----------------------------------------------------------------
57
+ // Visual Variants
58
+ // -----------------------------------------------------------------
59
+ variant: {
60
+ /**
61
+ * Default — uses primary brand color.
62
+ */
63
+ default: "bg-primary",
64
+ /**
65
+ * Primary — explicit primary brand color.
66
+ */
67
+ primary: "bg-primary",
68
+ /**
69
+ * Success — positive/complete progress.
70
+ */
71
+ success: "bg-success",
72
+ /**
73
+ * Danger — error/critical progress (e.g., storage almost full).
74
+ */
75
+ danger: "bg-danger",
76
+ /**
77
+ * Warning — caution progress (e.g., approaching limit).
78
+ */
79
+ warning: "bg-warning",
80
+ /**
81
+ * Info — informational progress.
82
+ */
83
+ info: "bg-info"
84
+ }
85
+ },
86
+ defaultVariants: {
87
+ variant: "default"
88
+ }
89
+ }
90
+ );
91
+ const stripedStyle = {
92
+ backgroundImage: "linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)",
93
+ backgroundSize: "1rem 1rem"
94
+ };
95
+ const PROGRESS_STYLE_ID = "unified-ui-progress-keyframes";
96
+ const PROGRESS_KEYFRAMES_CSS = `
97
+ @keyframes unified-ui-progress-indeterminate {
98
+ 0% { transform: translateX(-100%); width: 50%; }
99
+ 50% { transform: translateX(50%); width: 30%; }
100
+ 100% { transform: translateX(200%); width: 50%; }
101
+ }
102
+ @keyframes unified-ui-progress-stripe-slide {
103
+ 0% { background-position: 1rem 0; }
104
+ 100% { background-position: 0 0; }
105
+ }
106
+ `;
107
+ function useProgressKeyframes() {
108
+ useEffect(() => {
109
+ if (document.getElementById(PROGRESS_STYLE_ID)) {
110
+ return;
111
+ }
112
+ const style = document.createElement("style");
113
+ style.id = PROGRESS_STYLE_ID;
114
+ style.textContent = PROGRESS_KEYFRAMES_CSS;
115
+ document.head.appendChild(style);
116
+ }, []);
117
+ }
118
+ const Progress = forwardRef(
119
+ function Progress2({
120
+ value = 0,
121
+ max = 100,
122
+ min = 0,
123
+ variant = "default",
124
+ size = "md",
125
+ indeterminate = false,
126
+ striped = false,
127
+ animated = false,
128
+ showLabel = false,
129
+ label,
130
+ formatLabel,
131
+ "aria-label": ariaLabel,
132
+ "aria-labelledby": ariaLabelledBy,
133
+ className,
134
+ indicatorClassName,
135
+ ...rest
136
+ }, ref) {
137
+ useProgressKeyframes();
138
+ const clampedValue = Math.max(min, Math.min(value, max));
139
+ const range = max - min;
140
+ const percentage = range > 0 ? (clampedValue - min) / range * 100 : 0;
141
+ const defaultFormatLabel = (v, m) => {
142
+ const pct = m - min > 0 ? (v - min) / (m - min) * 100 : 0;
143
+ return `${Math.round(pct)}%`;
144
+ };
145
+ const labelFormatter = formatLabel ?? defaultFormatLabel;
146
+ const _labelText = label ?? labelFormatter(clampedValue, max);
147
+ const indicatorStyle = {
148
+ ...indeterminate ? {
149
+ animation: "unified-ui-progress-indeterminate 1.5s ease-in-out infinite"
150
+ } : {
151
+ width: `${percentage}%`
152
+ },
153
+ ...striped ? stripedStyle : {},
154
+ ...striped && animated ? {
155
+ animation: indeterminate ? "unified-ui-progress-indeterminate 1.5s ease-in-out infinite" : "unified-ui-progress-stripe-slide 0.6s linear infinite"
156
+ } : {}
157
+ };
158
+ const ariaAttrs = {
159
+ role: "progressbar",
160
+ "aria-valuemin": min,
161
+ "aria-valuemax": max,
162
+ ...ariaLabel ? { "aria-label": ariaLabel } : {},
163
+ ...ariaLabelledBy ? { "aria-labelledby": ariaLabelledBy } : {}
164
+ };
165
+ if (!indeterminate) {
166
+ ariaAttrs["aria-valuenow"] = clampedValue;
167
+ }
168
+ return /* @__PURE__ */ jsxs(
169
+ "div",
170
+ {
171
+ "data-ds": "",
172
+ "data-ds-component": "progress",
173
+ "data-ds-variant": variant,
174
+ "data-ds-size": size,
175
+ ...indeterminate ? { "data-ds-indeterminate": "" } : {},
176
+ children: [
177
+ showLabel && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-1.5", children: [
178
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-medium leading-4 text-foreground", children: label ?? "" }),
179
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-medium leading-4 text-muted-foreground tabular-nums", children: typeof label === "string" || !label ? labelFormatter(clampedValue, max) : "" })
180
+ ] }),
181
+ /* @__PURE__ */ jsx(
182
+ "div",
183
+ {
184
+ ref,
185
+ className: cn(progressTrackVariants({ size }), className),
186
+ ...ariaAttrs,
187
+ ...rest,
188
+ children: /* @__PURE__ */ jsx(
189
+ "div",
190
+ {
191
+ className: cn(
192
+ progressIndicatorVariants({ variant }),
193
+ indeterminate && "absolute",
194
+ indicatorClassName
195
+ ),
196
+ style: indicatorStyle
197
+ }
198
+ )
199
+ }
200
+ )
201
+ ]
202
+ }
203
+ );
204
+ }
205
+ );
206
+ Progress.displayName = "Progress";
207
+ export {
208
+ Progress,
209
+ progressIndicatorVariants,
210
+ progressTrackVariants
211
+ };
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ "use client";
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 radio_exports = {};
21
+ __export(radio_exports, {
22
+ RadioCard: () => RadioCard,
23
+ RadioGroup: () => RadioGroup,
24
+ RadioGroupItem: () => RadioGroupItem,
25
+ radioCardVariants: () => radioCardVariants,
26
+ radioGroupVariants: () => radioGroupVariants,
27
+ radioIndicatorVariants: () => radioIndicatorVariants
28
+ });
29
+ module.exports = __toCommonJS(radio_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_cn = require("../utils/cn.cjs");
32
+ var import_focus_ring = require("../utils/focus-ring.cjs");
33
+ var import_class_variance_authority = require("class-variance-authority");
34
+ var import_radix_ui = require("radix-ui");
35
+ var import_react = require("react");
36
+ const RadioGroupContext = (0, import_react.createContext)({
37
+ size: "md"
38
+ });
39
+ function useRadioGroupContext() {
40
+ return (0, import_react.useContext)(RadioGroupContext);
41
+ }
42
+ const radioGroupVariants = (0, import_class_variance_authority.cva)(["flex"], {
43
+ variants: {
44
+ orientation: {
45
+ vertical: "flex-col gap-3",
46
+ horizontal: "flex-row flex-wrap gap-4"
47
+ }
48
+ },
49
+ defaultVariants: {
50
+ orientation: "vertical"
51
+ }
52
+ });
53
+ const radioIndicatorVariants = (0, import_class_variance_authority.cva)(
54
+ [
55
+ // Layout
56
+ "relative shrink-0",
57
+ // Shape
58
+ "rounded-full",
59
+ // Border
60
+ "border",
61
+ // Colors
62
+ "border-input bg-background",
63
+ // Transition
64
+ "transition-[color,background-color,border-color,box-shadow,opacity]",
65
+ "duration-fast ease-standard",
66
+ // Focus ring — WCAG AA compliant
67
+ import_focus_ring.focusRingClasses,
68
+ // Hover
69
+ "hover:border-border-strong",
70
+ // Checked state
71
+ "data-[state=checked]:border-primary data-[state=checked]:bg-primary",
72
+ // Disabled
73
+ "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-disabled"
74
+ ],
75
+ {
76
+ variants: {
77
+ size: {
78
+ /**
79
+ * Small — compact for dense UIs, tables, toolbars.
80
+ * Diameter: 16px
81
+ */
82
+ sm: "size-4",
83
+ /**
84
+ * Medium — default size for most radio buttons.
85
+ * Diameter: 20px
86
+ */
87
+ md: "size-5"
88
+ }
89
+ },
90
+ defaultVariants: {
91
+ size: "md"
92
+ }
93
+ }
94
+ );
95
+ const radioInnerDotVariants = (0, import_class_variance_authority.cva)(
96
+ [
97
+ "absolute inset-0 flex items-center justify-center",
98
+ "after:block after:rounded-full after:bg-primary-foreground"
99
+ ],
100
+ {
101
+ variants: {
102
+ size: {
103
+ sm: "after:size-1.5",
104
+ md: "after:size-2"
105
+ }
106
+ },
107
+ defaultVariants: {
108
+ size: "md"
109
+ }
110
+ }
111
+ );
112
+ const radioCardVariants = (0, import_class_variance_authority.cva)(
113
+ [
114
+ // Layout
115
+ "relative flex items-start gap-3",
116
+ // Shape
117
+ "rounded-md",
118
+ // Border
119
+ "border border-input",
120
+ // Colors
121
+ "bg-background",
122
+ // Transition
123
+ "transition-[color,background-color,border-color,box-shadow,opacity]",
124
+ "duration-fast ease-standard",
125
+ // Hover
126
+ "hover:border-border-strong hover:bg-surface",
127
+ // Cursor
128
+ "cursor-pointer",
129
+ // Checked state
130
+ "has-[[data-state=checked]]:border-primary has-[[data-state=checked]]:bg-primary-muted",
131
+ // Disabled
132
+ "has-[[data-disabled]]:pointer-events-none has-[[data-disabled]]:opacity-50 has-[[data-disabled]]:cursor-not-allowed",
133
+ // Focus within
134
+ "has-[:focus-visible]:border-border-strong"
135
+ ],
136
+ {
137
+ variants: {
138
+ size: {
139
+ sm: "p-3",
140
+ md: "p-4"
141
+ }
142
+ },
143
+ defaultVariants: {
144
+ size: "md"
145
+ }
146
+ }
147
+ );
148
+ const labelSizeMap = {
149
+ sm: "text-xs",
150
+ md: "text-sm"
151
+ };
152
+ const descriptionSizeMap = {
153
+ sm: "text-xs",
154
+ md: "text-xs"
155
+ };
156
+ const RadioGroup = (0, import_react.forwardRef)(function RadioGroup2({
157
+ orientation = "vertical",
158
+ size = "md",
159
+ disabled,
160
+ className,
161
+ children,
162
+ ...rest
163
+ }, ref) {
164
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RadioGroupContext.Provider, { value: { size, disabled }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
165
+ import_radix_ui.RadioGroup.Root,
166
+ {
167
+ ref,
168
+ orientation,
169
+ disabled,
170
+ className: (0, import_cn.cn)(radioGroupVariants({ orientation }), className),
171
+ "data-ds": "",
172
+ "data-ds-component": "radio-group",
173
+ "data-ds-orientation": orientation,
174
+ "data-ds-size": size,
175
+ ...rest,
176
+ children
177
+ }
178
+ ) });
179
+ });
180
+ RadioGroup.displayName = "RadioGroup";
181
+ const RadioGroupItem = (0, import_react.forwardRef)(function RadioGroupItem2({ value, label, description, size: sizeProp, disabled, className, ...rest }, ref) {
182
+ const { size: groupSize, disabled: groupDisabled } = useRadioGroupContext();
183
+ const size = sizeProp ?? groupSize;
184
+ const isDisabled = disabled ?? groupDisabled;
185
+ const generatedId = (0, import_react.useId)();
186
+ const itemId = rest.id ?? `radio-${generatedId}`;
187
+ const labelId = label ? `${itemId}-label` : void 0;
188
+ const descriptionId = description ? `${itemId}-desc` : void 0;
189
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
190
+ "div",
191
+ {
192
+ className: (0, import_cn.cn)(
193
+ "flex items-start gap-2",
194
+ isDisabled && "opacity-50 cursor-not-allowed",
195
+ className
196
+ ),
197
+ "data-ds": "",
198
+ "data-ds-component": "radio-item-wrapper",
199
+ children: [
200
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
201
+ import_radix_ui.RadioGroup.Item,
202
+ {
203
+ ref,
204
+ id: itemId,
205
+ value,
206
+ disabled: isDisabled,
207
+ "aria-labelledby": labelId,
208
+ "aria-describedby": descriptionId,
209
+ className: (0, import_cn.cn)(radioIndicatorVariants({ size }), "mt-0.5"),
210
+ "data-ds": "",
211
+ "data-ds-component": "radio-item",
212
+ "data-ds-size": size,
213
+ ...rest,
214
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
215
+ import_radix_ui.RadioGroup.Indicator,
216
+ {
217
+ className: (0, import_cn.cn)(radioInnerDotVariants({ size }))
218
+ }
219
+ )
220
+ }
221
+ ),
222
+ (label || description) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5 min-w-0 flex-1", children: [
223
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
224
+ "label",
225
+ {
226
+ id: labelId,
227
+ htmlFor: itemId,
228
+ className: (0, import_cn.cn)(
229
+ "font-medium leading-5 text-foreground",
230
+ "cursor-pointer",
231
+ isDisabled && "cursor-not-allowed",
232
+ labelSizeMap[size]
233
+ ),
234
+ children: label
235
+ }
236
+ ),
237
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
238
+ "span",
239
+ {
240
+ id: descriptionId,
241
+ className: (0, import_cn.cn)(
242
+ "text-muted-foreground leading-4",
243
+ descriptionSizeMap[size]
244
+ ),
245
+ children: description
246
+ }
247
+ )
248
+ ] })
249
+ ]
250
+ }
251
+ );
252
+ });
253
+ RadioGroupItem.displayName = "RadioGroupItem";
254
+ const RadioCard = (0, import_react.forwardRef)(function RadioCard2({
255
+ value,
256
+ label,
257
+ description,
258
+ size: sizeProp,
259
+ disabled,
260
+ className,
261
+ children,
262
+ ...rest
263
+ }, ref) {
264
+ const { size: groupSize, disabled: groupDisabled } = useRadioGroupContext();
265
+ const size = sizeProp ?? groupSize;
266
+ const isDisabled = disabled ?? groupDisabled;
267
+ const generatedId = (0, import_react.useId)();
268
+ const itemId = rest.id ?? `radio-card-${generatedId}`;
269
+ const labelId = label ? `${itemId}-label` : void 0;
270
+ const descriptionId = description ? `${itemId}-desc` : void 0;
271
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
272
+ "label",
273
+ {
274
+ htmlFor: itemId,
275
+ className: (0, import_cn.cn)(
276
+ radioCardVariants({ size }),
277
+ isDisabled && "cursor-not-allowed",
278
+ className
279
+ ),
280
+ "data-ds": "",
281
+ "data-ds-component": "radio-card",
282
+ "data-ds-size": size,
283
+ children: [
284
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
285
+ import_radix_ui.RadioGroup.Item,
286
+ {
287
+ ref,
288
+ id: itemId,
289
+ value,
290
+ disabled: isDisabled,
291
+ "aria-labelledby": labelId,
292
+ "aria-describedby": descriptionId,
293
+ className: (0, import_cn.cn)(radioIndicatorVariants({ size }), "mt-0.5 shrink-0"),
294
+ "data-ds": "",
295
+ "data-ds-component": "radio-card-item",
296
+ "data-ds-size": size,
297
+ ...rest,
298
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
299
+ import_radix_ui.RadioGroup.Indicator,
300
+ {
301
+ className: (0, import_cn.cn)(radioInnerDotVariants({ size }))
302
+ }
303
+ )
304
+ }
305
+ ),
306
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5 min-w-0 flex-1", children: [
307
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
308
+ "span",
309
+ {
310
+ id: labelId,
311
+ className: (0, import_cn.cn)(
312
+ "font-medium leading-5 text-foreground",
313
+ labelSizeMap[size]
314
+ ),
315
+ children: label
316
+ }
317
+ ),
318
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
319
+ "span",
320
+ {
321
+ id: descriptionId,
322
+ className: (0, import_cn.cn)(
323
+ "text-muted-foreground leading-4",
324
+ descriptionSizeMap[size]
325
+ ),
326
+ children: description
327
+ }
328
+ ),
329
+ children
330
+ ] })
331
+ ]
332
+ }
333
+ );
334
+ });
335
+ RadioCard.displayName = "RadioCard";
336
+ // Annotate the CommonJS export names for ESM import in node:
337
+ 0 && (module.exports = {
338
+ RadioCard,
339
+ RadioGroup,
340
+ RadioGroupItem,
341
+ radioCardVariants,
342
+ radioGroupVariants,
343
+ radioIndicatorVariants
344
+ });
@@ -0,0 +1,145 @@
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
+ import { RadioGroup as RadioGroup$1 } from 'radix-ui';
6
+
7
+ declare const radioGroupVariants: (props?: ({
8
+ orientation?: "horizontal" | "vertical" | null | undefined;
9
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
10
+ declare const radioIndicatorVariants: (props?: ({
11
+ size?: "sm" | "md" | null | undefined;
12
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
13
+ declare const radioCardVariants: (props?: ({
14
+ size?: "sm" | "md" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
16
+ type RadioSize = "sm" | "md";
17
+ type RadioOrientation = "vertical" | "horizontal";
18
+ interface RadioGroupProps extends Omit<RadioGroup$1.RadioGroupProps, "orientation" | "asChild">, VariantProps<typeof radioGroupVariants> {
19
+ /**
20
+ * Layout direction of the radio group.
21
+ * @default "vertical"
22
+ */
23
+ orientation?: RadioOrientation;
24
+ /**
25
+ * Size of all radio items in the group.
26
+ * @default "md"
27
+ */
28
+ size?: RadioSize;
29
+ /** Additional CSS classes to merge on the root element. */
30
+ className?: string;
31
+ /** The radio group items. */
32
+ children?: ReactNode;
33
+ }
34
+ interface RadioGroupItemProps extends Omit<RadioGroup$1.RadioGroupItemProps, "asChild"> {
35
+ /**
36
+ * The value of this radio item.
37
+ */
38
+ value: string;
39
+ /**
40
+ * Label text displayed next to the radio indicator.
41
+ */
42
+ label?: ReactNode;
43
+ /**
44
+ * Optional description displayed below the label.
45
+ */
46
+ description?: ReactNode;
47
+ /**
48
+ * Override the group-level size for this specific item.
49
+ */
50
+ size?: RadioSize;
51
+ /** Additional CSS classes to merge on the wrapper element. */
52
+ className?: string;
53
+ }
54
+ interface RadioCardProps extends Omit<RadioGroup$1.RadioGroupItemProps, "asChild"> {
55
+ /**
56
+ * The value of this radio card.
57
+ */
58
+ value: string;
59
+ /**
60
+ * Label text for the card.
61
+ */
62
+ label?: ReactNode;
63
+ /**
64
+ * Description text displayed below the label.
65
+ */
66
+ description?: ReactNode;
67
+ /**
68
+ * Override the group-level size for this specific card.
69
+ */
70
+ size?: RadioSize;
71
+ /** Additional CSS classes to merge on the card wrapper. */
72
+ className?: string;
73
+ /** Additional content to render inside the card. */
74
+ children?: ReactNode;
75
+ }
76
+ /**
77
+ * RadioGroup — a group of radio buttons for selecting a single value.
78
+ *
79
+ * Built on Radix UI's RadioGroup primitive for full keyboard navigation
80
+ * and ARIA compliance. All colors, radii, and transitions come from CSS
81
+ * custom properties defined in design-system.css.
82
+ *
83
+ * Accessibility:
84
+ * - Radix UI provides `role="radiogroup"` and manages `aria-checked`
85
+ * - Arrow key navigation between items
86
+ * - Supports `aria-label` and `aria-labelledby`
87
+ * - Disabled state propagated to all children
88
+ *
89
+ * @example
90
+ * ```tsx
91
+ * <RadioGroup value={value} onValueChange={setValue}>
92
+ * <RadioGroupItem value="option-1" label="Option 1" />
93
+ * <RadioGroupItem value="option-2" label="Option 2" />
94
+ * <RadioGroupItem value="option-3" label="Option 3" disabled />
95
+ * </RadioGroup>
96
+ *
97
+ * // Horizontal layout
98
+ * <RadioGroup orientation="horizontal" size="sm">
99
+ * <RadioGroupItem value="a" label="A" />
100
+ * <RadioGroupItem value="b" label="B" />
101
+ * </RadioGroup>
102
+ * ```
103
+ */
104
+ declare const RadioGroup: react.ForwardRefExoticComponent<RadioGroupProps & react.RefAttributes<HTMLDivElement>>;
105
+ /**
106
+ * RadioGroupItem — a single radio button with optional label and description.
107
+ *
108
+ * Must be used as a child of `RadioGroup`.
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <RadioGroupItem value="newsletter" label="Subscribe to newsletter" />
113
+ * <RadioGroupItem
114
+ * value="updates"
115
+ * label="Product updates"
116
+ * description="Get notified about new features and improvements"
117
+ * />
118
+ * ```
119
+ */
120
+ declare const RadioGroupItem: react.ForwardRefExoticComponent<RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>>;
121
+ /**
122
+ * RadioCard — a card-style radio button where the entire card is clickable.
123
+ *
124
+ * Must be used as a child of `RadioGroup`. Provides a richer visual
125
+ * treatment for radio options, useful for plan selectors, theme pickers, etc.
126
+ *
127
+ * @example
128
+ * ```tsx
129
+ * <RadioGroup value={plan} onValueChange={setPlan}>
130
+ * <RadioCard
131
+ * value="free"
132
+ * label="Free Plan"
133
+ * description="Basic features, limited storage"
134
+ * />
135
+ * <RadioCard
136
+ * value="pro"
137
+ * label="Pro Plan"
138
+ * description="All features, unlimited storage"
139
+ * />
140
+ * </RadioGroup>
141
+ * ```
142
+ */
143
+ declare const RadioCard: react.ForwardRefExoticComponent<RadioCardProps & react.RefAttributes<HTMLButtonElement>>;
144
+
145
+ export { RadioCard, type RadioCardProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, type RadioOrientation, type RadioSize, radioCardVariants, radioGroupVariants, radioIndicatorVariants };