@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,76 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
+
4
+ type StepsOrientation = "horizontal" | "vertical";
5
+ type StepsVariant = "default" | "outline" | "dots";
6
+ type StepStatus = "complete" | "active" | "upcoming";
7
+ interface StepsProps extends ComponentPropsWithoutRef<"ol"> {
8
+ /** The index of the currently active step (0-based). */
9
+ currentStep: number;
10
+ /** Orientation of the steps. @default "horizontal" */
11
+ orientation?: StepsOrientation;
12
+ /** Visual variant. @default "default" */
13
+ variant?: StepsVariant;
14
+ /** Total number of steps — derived from children if not provided. */
15
+ count?: number;
16
+ /** Callback when a step is clicked (for clickable wizards). */
17
+ onStepClick?: (index: number) => void;
18
+ className?: string;
19
+ children: ReactNode;
20
+ }
21
+ interface StepProps extends ComponentPropsWithoutRef<"li"> {
22
+ /** Optional custom icon to override the default number/check. */
23
+ icon?: ReactNode;
24
+ /** Optional title for the step. */
25
+ title?: string;
26
+ /** Optional description beneath the title. */
27
+ description?: string;
28
+ className?: string;
29
+ children?: ReactNode;
30
+ }
31
+ /**
32
+ * Steps — a wizard progress indicator.
33
+ *
34
+ * Wrap `Step` components as children. The `currentStep` prop (0-based index)
35
+ * drives the visual state of each step (complete, active, upcoming).
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * <Steps currentStep={1}>
40
+ * <Step title="Account" description="Create your account" />
41
+ * <Step title="Profile" description="Fill in your details" />
42
+ * <Step title="Confirm" description="Review and submit" />
43
+ * </Steps>
44
+ *
45
+ * // Vertical orientation
46
+ * <Steps currentStep={0} orientation="vertical">
47
+ * <Step title="Step 1" description="First step" />
48
+ * <Step title="Step 2" description="Second step" />
49
+ * </Steps>
50
+ *
51
+ * // Clickable steps
52
+ * <Steps currentStep={activeStep} onStepClick={setActiveStep}>
53
+ * <Step title="Step 1" />
54
+ * <Step title="Step 2" />
55
+ * <Step title="Step 3" />
56
+ * </Steps>
57
+ * ```
58
+ */
59
+ declare const Steps: react.ForwardRefExoticComponent<StepsProps & react.RefAttributes<HTMLOListElement>>;
60
+ /**
61
+ * Step — a single step in the Steps wizard.
62
+ *
63
+ * Must be a direct child of `Steps`. Automatically derives its visual state
64
+ * (complete, active, upcoming) from the parent `currentStep` prop.
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <Step title="Account" description="Set up your account" />
69
+ *
70
+ * // With a custom icon
71
+ * <Step title="Upload" icon={<Upload className="size-4" />} />
72
+ * ```
73
+ */
74
+ declare const Step: react.ForwardRefExoticComponent<StepProps & react.RefAttributes<HTMLLIElement>>;
75
+
76
+ export { Step, type StepProps, type StepStatus, Steps, type StepsOrientation, type StepsProps, type StepsVariant };
@@ -0,0 +1,207 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../utils/cn";
4
+ import {
5
+ createContext,
6
+ forwardRef,
7
+ useContext
8
+ } from "react";
9
+ const StepsContext = createContext({
10
+ currentStep: 0,
11
+ orientation: "horizontal",
12
+ variant: "default",
13
+ totalSteps: 0
14
+ });
15
+ const StepIndexContext = createContext(0);
16
+ function CheckIcon({ className }) {
17
+ return /* @__PURE__ */ jsx(
18
+ "svg",
19
+ {
20
+ xmlns: "http://www.w3.org/2000/svg",
21
+ width: "14",
22
+ height: "14",
23
+ viewBox: "0 0 24 24",
24
+ fill: "none",
25
+ stroke: "currentColor",
26
+ strokeWidth: "2.5",
27
+ strokeLinecap: "round",
28
+ strokeLinejoin: "round",
29
+ className,
30
+ "aria-hidden": "true",
31
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
32
+ }
33
+ );
34
+ }
35
+ const Steps = forwardRef(function Steps2({
36
+ currentStep,
37
+ orientation = "horizontal",
38
+ variant = "default",
39
+ onStepClick,
40
+ className,
41
+ children,
42
+ ...rest
43
+ }, ref) {
44
+ const childArray = Array.isArray(children) ? children : children ? [children] : [];
45
+ const totalSteps = childArray.length;
46
+ return /* @__PURE__ */ jsx(
47
+ StepsContext.Provider,
48
+ {
49
+ value: { currentStep, orientation, variant, totalSteps, onStepClick },
50
+ children: /* @__PURE__ */ jsx(
51
+ "ol",
52
+ {
53
+ ref,
54
+ "aria-label": "Steps",
55
+ className: cn(
56
+ "flex",
57
+ orientation === "horizontal" ? "flex-row items-start gap-0" : "flex-col gap-0",
58
+ className
59
+ ),
60
+ "data-ds": "",
61
+ "data-ds-component": "steps",
62
+ "data-ds-orientation": orientation,
63
+ ...rest,
64
+ children: childArray.map((child, index) => /* @__PURE__ */ jsx(StepIndexContext.Provider, { value: index, children: child }, index))
65
+ }
66
+ )
67
+ }
68
+ );
69
+ });
70
+ Steps.displayName = "Steps";
71
+ const Step = forwardRef(function Step2({ icon, title, description, className, children, ...rest }, ref) {
72
+ const { currentStep, orientation, variant, totalSteps, onStepClick } = useContext(StepsContext);
73
+ const index = useContext(StepIndexContext);
74
+ const status = index < currentStep ? "complete" : index === currentStep ? "active" : "upcoming";
75
+ const isLast = index === totalSteps - 1;
76
+ const isClickable = !!onStepClick;
77
+ const indicatorContent = variant === "dots" ? null : status === "complete" && variant !== "outline" ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx("span", { children: index + 1 });
78
+ const indicator = /* @__PURE__ */ jsx(
79
+ "div",
80
+ {
81
+ className: cn(
82
+ "flex shrink-0 items-center justify-center",
83
+ "font-medium text-xs leading-none",
84
+ "transition-colors duration-fast ease-standard",
85
+ // Dot variant
86
+ variant === "dots" ? cn(
87
+ "size-2 rounded-full",
88
+ status === "complete" && "bg-primary",
89
+ status === "active" && "bg-primary",
90
+ status === "upcoming" && "bg-border"
91
+ ) : cn(
92
+ // Default & outline
93
+ "size-7 rounded-full border-2",
94
+ variant === "default" ? cn(
95
+ status === "complete" && "border-primary bg-primary text-primary-foreground",
96
+ status === "active" && "border-primary bg-background text-primary",
97
+ status === "upcoming" && "border-muted bg-background text-muted-foreground"
98
+ ) : cn(
99
+ // outline variant
100
+ status === "complete" && "border-primary bg-primary/10 text-primary",
101
+ status === "active" && "border-primary bg-background text-primary",
102
+ status === "upcoming" && "border-muted bg-background text-muted-foreground"
103
+ )
104
+ )
105
+ ),
106
+ "aria-hidden": variant === "dots",
107
+ children: indicatorContent
108
+ }
109
+ );
110
+ const labelContent = (title || description) && /* @__PURE__ */ jsxs(
111
+ "div",
112
+ {
113
+ className: cn(
114
+ orientation === "horizontal" ? "mt-2 text-center" : "ml-3 text-left"
115
+ ),
116
+ children: [
117
+ title && /* @__PURE__ */ jsx(
118
+ "p",
119
+ {
120
+ className: cn(
121
+ "text-sm font-medium leading-5",
122
+ status === "active" && "text-foreground",
123
+ status === "complete" && "text-foreground",
124
+ status === "upcoming" && "text-muted-foreground"
125
+ ),
126
+ children: title
127
+ }
128
+ ),
129
+ description && /* @__PURE__ */ jsx("p", { className: "text-xs leading-4 text-muted-foreground mt-0.5", children: description })
130
+ ]
131
+ }
132
+ );
133
+ const connector = !isLast && /* @__PURE__ */ jsx(
134
+ "div",
135
+ {
136
+ "aria-hidden": "true",
137
+ className: cn(
138
+ "flex-1 transition-colors duration-fast ease-standard",
139
+ orientation === "horizontal" ? "mx-2 mt-3.5 h-px" : "ml-3.5 my-1 w-px self-stretch",
140
+ index < currentStep ? "bg-primary" : "bg-border"
141
+ )
142
+ }
143
+ );
144
+ const stepContent = /* @__PURE__ */ jsx(Fragment, { children: orientation === "horizontal" ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
145
+ indicator,
146
+ labelContent
147
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "flex items-start", children: [
148
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
149
+ indicator,
150
+ !isLast && /* @__PURE__ */ jsx(
151
+ "div",
152
+ {
153
+ "aria-hidden": "true",
154
+ className: cn(
155
+ "mt-1 w-px flex-1 self-stretch transition-colors duration-fast ease-standard",
156
+ "min-h-[24px]",
157
+ index < currentStep ? "bg-primary" : "bg-border"
158
+ )
159
+ }
160
+ )
161
+ ] }),
162
+ labelContent
163
+ ] }) });
164
+ return /* @__PURE__ */ jsx(
165
+ "li",
166
+ {
167
+ ref,
168
+ "aria-current": status === "active" ? "step" : void 0,
169
+ "data-ds": "",
170
+ "data-ds-component": "step",
171
+ "data-ds-status": status,
172
+ className: cn(
173
+ orientation === "horizontal" ? "flex flex-1 items-start" : "flex flex-col",
174
+ className
175
+ ),
176
+ ...rest,
177
+ children: orientation === "horizontal" ? /* @__PURE__ */ jsxs(Fragment, { children: [
178
+ isClickable ? /* @__PURE__ */ jsxs(
179
+ "button",
180
+ {
181
+ type: "button",
182
+ onClick: () => onStepClick(index),
183
+ className: cn(
184
+ "flex flex-1 flex-col items-center",
185
+ isClickable && "cursor-pointer",
186
+ status === "upcoming" && !isClickable && "cursor-default"
187
+ ),
188
+ "aria-label": title ? `Go to step: ${title}` : `Go to step ${index + 1}`,
189
+ children: [
190
+ indicator,
191
+ labelContent
192
+ ]
193
+ }
194
+ ) : /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col items-center", children: [
195
+ indicator,
196
+ labelContent
197
+ ] }),
198
+ connector
199
+ ] }) : stepContent
200
+ }
201
+ );
202
+ });
203
+ Step.displayName = "Step";
204
+ export {
205
+ Step,
206
+ Steps
207
+ };
@@ -0,0 +1,243 @@
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 switch_exports = {};
21
+ __export(switch_exports, {
22
+ Switch: () => Switch,
23
+ switchThumbVariants: () => switchThumbVariants,
24
+ switchTrackVariants: () => switchTrackVariants
25
+ });
26
+ module.exports = __toCommonJS(switch_exports);
27
+ var import_jsx_runtime = require("react/jsx-runtime");
28
+ var import_cn = require("../utils/cn");
29
+ var import_focus_ring = require("../utils/focus-ring");
30
+ var import_class_variance_authority = require("class-variance-authority");
31
+ var import_framer_motion = require("framer-motion");
32
+ var import_radix_ui = require("radix-ui");
33
+ var import_react = require("react");
34
+ const switchTrackVariants = (0, import_class_variance_authority.cva)(
35
+ [
36
+ // Layout
37
+ "relative inline-flex shrink-0 cursor-pointer items-center",
38
+ // Shape
39
+ "rounded-full",
40
+ // Border
41
+ "border-2 border-transparent",
42
+ // Transition
43
+ "transition-[background-color,box-shadow] duration-fast ease-standard",
44
+ // Focus ring
45
+ import_focus_ring.focusRingClasses,
46
+ // Disabled
47
+ "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed",
48
+ // Unchecked state
49
+ "data-[state=unchecked]:bg-input",
50
+ // Checked state
51
+ "data-[state=checked]:bg-primary"
52
+ ],
53
+ {
54
+ variants: {
55
+ size: {
56
+ /**
57
+ * Small — compact for dense UIs, settings panels.
58
+ * Track: 36px × 20px
59
+ */
60
+ sm: "h-5 w-9",
61
+ /**
62
+ * Medium — default size for most switches.
63
+ * Track: 44px × 24px
64
+ */
65
+ md: "h-6 w-11"
66
+ }
67
+ },
68
+ defaultVariants: {
69
+ size: "md"
70
+ }
71
+ }
72
+ );
73
+ const switchThumbVariants = (0, import_class_variance_authority.cva)(
74
+ [
75
+ // Shape
76
+ "pointer-events-none block rounded-full",
77
+ // Color
78
+ "bg-white",
79
+ // Shadow
80
+ "shadow-sm"
81
+ ],
82
+ {
83
+ variants: {
84
+ size: {
85
+ sm: "size-4",
86
+ md: "size-5"
87
+ }
88
+ },
89
+ defaultVariants: {
90
+ size: "md"
91
+ }
92
+ }
93
+ );
94
+ const thumbSpringConfig = {
95
+ stiffness: 500,
96
+ damping: 30,
97
+ mass: 0.5
98
+ };
99
+ const thumbTravel = {
100
+ sm: { off: 0, on: 16 },
101
+ md: { off: 0, on: 20 }
102
+ };
103
+ const MotionThumb = import_framer_motion.motion.create("span");
104
+ const instantSpringConfig = {
105
+ stiffness: 1e4,
106
+ damping: 1e4,
107
+ mass: 0.01
108
+ };
109
+ function AnimatedThumb({
110
+ size = "md",
111
+ checked
112
+ }) {
113
+ const prefersReduced = (0, import_framer_motion.useReducedMotion)();
114
+ const travel = thumbTravel[size];
115
+ const x = (0, import_framer_motion.useMotionValue)(checked ? travel.on : travel.off);
116
+ const springConfig = prefersReduced ? instantSpringConfig : thumbSpringConfig;
117
+ const springX = (0, import_framer_motion.useSpring)(x, springConfig);
118
+ (0, import_react.useEffect)(() => {
119
+ x.set(checked ? travel.on : travel.off);
120
+ }, [checked, travel, x]);
121
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Switch.Thumb, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
122
+ MotionThumb,
123
+ {
124
+ className: (0, import_cn.cn)(switchThumbVariants({ size })),
125
+ style: { x: springX },
126
+ "aria-hidden": "true"
127
+ }
128
+ ) });
129
+ }
130
+ const Switch = (0, import_react.forwardRef)(function Switch2({
131
+ size = "md",
132
+ label,
133
+ description,
134
+ labelPosition = "right",
135
+ wrapperClassName,
136
+ labelClassName,
137
+ descriptionClassName,
138
+ className,
139
+ id: idProp,
140
+ checked,
141
+ defaultChecked,
142
+ disabled,
143
+ onCheckedChange,
144
+ ...rest
145
+ }, ref) {
146
+ const autoId = (0, import_react.useId)();
147
+ const id = idProp ?? autoId;
148
+ const descriptionId = description ? `${id}-description` : void 0;
149
+ const isControlled = checked !== void 0;
150
+ const [internalChecked, setInternalChecked] = (0, import_react.useState)(
151
+ checked ?? defaultChecked ?? false
152
+ );
153
+ const [prevChecked, setPrevChecked] = (0, import_react.useState)(checked);
154
+ if (isControlled && checked !== prevChecked) {
155
+ setPrevChecked(checked);
156
+ setInternalChecked(checked);
157
+ }
158
+ const handleCheckedChange = (0, import_react.useCallback)(
159
+ (value) => {
160
+ if (!isControlled) {
161
+ setInternalChecked(value);
162
+ }
163
+ onCheckedChange?.(value);
164
+ },
165
+ [isControlled, onCheckedChange]
166
+ );
167
+ const isChecked = isControlled ? checked : internalChecked;
168
+ const switchElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
169
+ import_radix_ui.Switch.Root,
170
+ {
171
+ ref,
172
+ id,
173
+ checked: isControlled ? checked : void 0,
174
+ defaultChecked: isControlled ? void 0 : defaultChecked,
175
+ disabled,
176
+ onCheckedChange: handleCheckedChange,
177
+ "aria-describedby": descriptionId,
178
+ className: (0, import_cn.cn)(switchTrackVariants({ size }), className),
179
+ "data-ds": "",
180
+ "data-ds-component": "switch",
181
+ "data-ds-size": size,
182
+ ...rest,
183
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AnimatedThumb, { size, checked: isChecked })
184
+ }
185
+ );
186
+ if (!label) {
187
+ return switchElement;
188
+ }
189
+ const labelBlock = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col gap-0.5 flex-1 min-w-0", children: [
190
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
191
+ "label",
192
+ {
193
+ htmlFor: id,
194
+ className: (0, import_cn.cn)(
195
+ "text-sm font-medium leading-5 text-foreground",
196
+ "select-none",
197
+ disabled && "opacity-50 cursor-not-allowed",
198
+ !disabled && "cursor-pointer",
199
+ labelClassName
200
+ ),
201
+ children: label
202
+ }
203
+ ),
204
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
205
+ "span",
206
+ {
207
+ id: descriptionId,
208
+ className: (0, import_cn.cn)(
209
+ "text-xs leading-4 text-muted-foreground",
210
+ disabled && "opacity-50",
211
+ descriptionClassName
212
+ ),
213
+ children: description
214
+ }
215
+ )
216
+ ] });
217
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
218
+ "div",
219
+ {
220
+ className: (0, import_cn.cn)(
221
+ "flex items-center gap-3",
222
+ // Reverse order when label is on the left
223
+ labelPosition === "left" ? "flex-row" : "flex-row-reverse",
224
+ // Align to start when description is present
225
+ description && "items-start",
226
+ wrapperClassName
227
+ ),
228
+ "data-ds": "",
229
+ "data-ds-component": "switch-group",
230
+ children: [
231
+ switchElement,
232
+ labelBlock
233
+ ]
234
+ }
235
+ );
236
+ });
237
+ Switch.displayName = "Switch";
238
+ // Annotate the CommonJS export names for ESM import in node:
239
+ 0 && (module.exports = {
240
+ Switch,
241
+ switchThumbVariants,
242
+ switchTrackVariants
243
+ });
@@ -0,0 +1,90 @@
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 { Switch as Switch$1 } from 'radix-ui';
6
+
7
+ declare const switchTrackVariants: (props?: ({
8
+ size?: "sm" | "md" | null | undefined;
9
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
10
+ declare const switchThumbVariants: (props?: ({
11
+ size?: "sm" | "md" | null | undefined;
12
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
13
+ type SwitchSize = "sm" | "md";
14
+ type SwitchLabelPosition = "left" | "right";
15
+ interface SwitchProps extends Omit<React.ComponentPropsWithoutRef<typeof Switch$1.Root>, "asChild">, VariantProps<typeof switchTrackVariants> {
16
+ /**
17
+ * Size of the switch.
18
+ * @default "md"
19
+ */
20
+ size?: SwitchSize;
21
+ /**
22
+ * Text label for the switch.
23
+ */
24
+ label?: ReactNode;
25
+ /**
26
+ * Description text displayed below the label.
27
+ */
28
+ description?: ReactNode;
29
+ /**
30
+ * Position of the label relative to the switch.
31
+ * @default "right"
32
+ */
33
+ labelPosition?: SwitchLabelPosition;
34
+ /**
35
+ * Additional CSS classes for the outer wrapper element.
36
+ */
37
+ wrapperClassName?: string;
38
+ /**
39
+ * Additional CSS classes for the label element.
40
+ */
41
+ labelClassName?: string;
42
+ /**
43
+ * Additional CSS classes for the description element.
44
+ */
45
+ descriptionClassName?: string;
46
+ /** Additional CSS classes to merge on the switch track element. */
47
+ className?: string;
48
+ }
49
+ /**
50
+ * Switch — a toggle control for binary on/off states.
51
+ *
52
+ * Built on Radix UI's Switch primitive for accessibility and the design
53
+ * system's token layer for styling. The thumb uses a Framer Motion spring
54
+ * animation for a tactile, snappy feel.
55
+ *
56
+ * Accessibility:
57
+ * - Radix handles `role="switch"`, `aria-checked`, keyboard toggle (Space)
58
+ * - Focus ring visible on keyboard navigation (focus-visible)
59
+ * - Disabled state uses both `disabled` attribute and `aria-disabled`
60
+ * - Label is associated via `htmlFor` / `id` linkage
61
+ * - Description linked via `aria-describedby`
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * // Basic usage
66
+ * <Switch label="Dark mode" />
67
+ *
68
+ * // Controlled
69
+ * <Switch
70
+ * checked={enabled}
71
+ * onCheckedChange={setEnabled}
72
+ * label="Notifications"
73
+ * />
74
+ *
75
+ * // Small with left label
76
+ * <Switch size="sm" label="Auto-save" labelPosition="left" />
77
+ *
78
+ * // With description
79
+ * <Switch
80
+ * label="Marketing emails"
81
+ * description="Receive emails about new features and updates"
82
+ * />
83
+ *
84
+ * // Disabled
85
+ * <Switch disabled label="Feature locked" />
86
+ * ```
87
+ */
88
+ declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLButtonElement>>;
89
+
90
+ export { Switch, type SwitchLabelPosition, type SwitchProps, type SwitchSize, switchThumbVariants, switchTrackVariants };