@work-rjkashyap/unified-ui 0.3.4 → 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 -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,419 @@
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 number_input_exports = {};
21
+ __export(number_input_exports, {
22
+ NumberInput: () => NumberInput,
23
+ numberInputVariants: () => numberInputVariants
24
+ });
25
+ module.exports = __toCommonJS(number_input_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ var import_cn = require("../utils/cn");
28
+ var import_focus_ring = require("../utils/focus-ring");
29
+ var import_class_variance_authority = require("class-variance-authority");
30
+ var import_framer_motion = require("framer-motion");
31
+ var import_react = require("react");
32
+ const numberInputVariants = (0, import_class_variance_authority.cva)(
33
+ [
34
+ "inline-flex items-stretch overflow-hidden",
35
+ "rounded-md border bg-background",
36
+ "transition-[border-color,box-shadow] duration-fast",
37
+ "focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/20",
38
+ "has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50"
39
+ ],
40
+ {
41
+ variants: {
42
+ variant: {
43
+ default: "border-input",
44
+ primary: "border-primary/40 focus-within:border-primary focus-within:ring-primary/20"
45
+ },
46
+ size: {
47
+ sm: "h-8 text-xs",
48
+ md: "h-9 text-sm",
49
+ lg: "h-10 text-sm"
50
+ }
51
+ },
52
+ defaultVariants: {
53
+ variant: "default",
54
+ size: "md"
55
+ }
56
+ }
57
+ );
58
+ const stepperButtonBase = [
59
+ "inline-flex items-center justify-center shrink-0",
60
+ "bg-transparent",
61
+ "text-muted-foreground hover:text-foreground hover:bg-accent",
62
+ "transition-colors duration-fast",
63
+ "disabled:pointer-events-none disabled:opacity-40",
64
+ "select-none",
65
+ "active:bg-accent/80",
66
+ import_focus_ring.focusRingClasses
67
+ ];
68
+ function PlusIcon({ className }) {
69
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
70
+ "svg",
71
+ {
72
+ className,
73
+ xmlns: "http://www.w3.org/2000/svg",
74
+ viewBox: "0 0 24 24",
75
+ fill: "none",
76
+ stroke: "currentColor",
77
+ strokeWidth: "2.5",
78
+ strokeLinecap: "round",
79
+ strokeLinejoin: "round",
80
+ "aria-hidden": "true",
81
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 5v14M5 12h14" })
82
+ }
83
+ );
84
+ }
85
+ function MinusIcon({ className }) {
86
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
87
+ "svg",
88
+ {
89
+ className,
90
+ xmlns: "http://www.w3.org/2000/svg",
91
+ viewBox: "0 0 24 24",
92
+ fill: "none",
93
+ stroke: "currentColor",
94
+ strokeWidth: "2.5",
95
+ strokeLinecap: "round",
96
+ strokeLinejoin: "round",
97
+ "aria-hidden": "true",
98
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M5 12h14" })
99
+ }
100
+ );
101
+ }
102
+ function clamp(value, min, max) {
103
+ let v = value;
104
+ if (min !== void 0) v = Math.max(min, v);
105
+ if (max !== void 0) v = Math.min(max, v);
106
+ return v;
107
+ }
108
+ function roundToPrecision(value, precision) {
109
+ const factor = 10 ** precision;
110
+ return Math.round(value * factor) / factor;
111
+ }
112
+ const ROLL_DISTANCE = 12;
113
+ const ROLL_TRANSITION = {
114
+ duration: 0.2,
115
+ ease: [0.4, 0, 0.2, 1]
116
+ };
117
+ function AnimatedValue({
118
+ value,
119
+ formatValue,
120
+ shouldReduce,
121
+ direction
122
+ }) {
123
+ const [displayValue, setDisplayValue] = (0, import_react.useState)(value);
124
+ const [key, setKey] = (0, import_react.useState)(0);
125
+ (0, import_react.useEffect)(() => {
126
+ setDisplayValue(value);
127
+ setKey((k) => k + 1);
128
+ }, [value]);
129
+ if (shouldReduce) {
130
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "tabular-nums", children: formatValue(displayValue) });
131
+ }
132
+ const enterY = direction === "down" ? -ROLL_DISTANCE : ROLL_DISTANCE;
133
+ const exitY = direction === "down" ? ROLL_DISTANCE : -ROLL_DISTANCE;
134
+ const variants = {
135
+ initial: { opacity: 0, y: enterY },
136
+ animate: { opacity: 1, y: 0 },
137
+ exit: { opacity: 0, y: exitY }
138
+ };
139
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
140
+ "span",
141
+ {
142
+ className: "relative inline-block overflow-hidden leading-none",
143
+ "aria-live": "polite",
144
+ "aria-atomic": "true",
145
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
146
+ import_framer_motion.motion.span,
147
+ {
148
+ className: "inline-block tabular-nums",
149
+ variants,
150
+ initial: "initial",
151
+ animate: "animate",
152
+ exit: "exit",
153
+ transition: ROLL_TRANSITION,
154
+ "data-ds-animated": "",
155
+ children: formatValue(displayValue)
156
+ },
157
+ key
158
+ ) })
159
+ }
160
+ );
161
+ }
162
+ const buttonWidthMap = {
163
+ sm: "w-7",
164
+ md: "w-8",
165
+ lg: "w-9"
166
+ };
167
+ const iconSizeMap = {
168
+ sm: "size-3",
169
+ md: "size-3.5",
170
+ lg: "size-4"
171
+ };
172
+ const inputPaddingMap = {
173
+ sm: "px-2 min-w-[3.5rem]",
174
+ md: "px-3 min-w-[4rem]",
175
+ lg: "px-3 min-w-[4.5rem]"
176
+ };
177
+ const NumberInput = (0, import_react.forwardRef)(
178
+ function NumberInput2({
179
+ value: controlledValue,
180
+ defaultValue = 0,
181
+ onChange,
182
+ min,
183
+ max,
184
+ step = 1,
185
+ precision = 0,
186
+ variant = "default",
187
+ size = "md",
188
+ disabled = false,
189
+ readOnly = false,
190
+ "aria-label": ariaLabel,
191
+ formatValue,
192
+ parseValue,
193
+ incrementLabel = "Increment",
194
+ decrementLabel = "Decrement",
195
+ className,
196
+ ...rest
197
+ }, ref) {
198
+ const shouldReduce = (0, import_framer_motion.useReducedMotion)();
199
+ const [internalValue, setInternalValue] = (0, import_react.useState)(
200
+ () => roundToPrecision(clamp(defaultValue, min, max), precision)
201
+ );
202
+ const [inputRaw, setInputRaw] = (0, import_react.useState)(null);
203
+ const [direction, setDirection] = (0, import_react.useState)("none");
204
+ const inputRef = (0, import_react.useRef)(null);
205
+ const prevValueRef = (0, import_react.useRef)(
206
+ controlledValue ?? roundToPrecision(clamp(defaultValue, min, max), precision)
207
+ );
208
+ const currentValue = controlledValue !== void 0 ? controlledValue : internalValue;
209
+ (0, import_react.useEffect)(() => {
210
+ if (controlledValue !== void 0 && controlledValue !== prevValueRef.current) {
211
+ setDirection(controlledValue > prevValueRef.current ? "up" : "down");
212
+ prevValueRef.current = controlledValue;
213
+ }
214
+ }, [controlledValue]);
215
+ const resolvedFormat = formatValue ?? ((v) => v.toFixed(precision));
216
+ const resolvedParse = parseValue ?? ((raw) => Number.parseFloat(raw.replace(/[^0-9.-]/g, "")));
217
+ const commit = (0, import_react.useCallback)(
218
+ (next) => {
219
+ const clamped = roundToPrecision(clamp(next, min, max), precision);
220
+ if (clamped !== currentValue) {
221
+ setDirection(clamped > currentValue ? "up" : "down");
222
+ prevValueRef.current = clamped;
223
+ }
224
+ if (controlledValue === void 0) {
225
+ setInternalValue(clamped);
226
+ }
227
+ if (clamped !== currentValue) {
228
+ onChange?.(clamped);
229
+ }
230
+ return clamped;
231
+ },
232
+ [controlledValue, min, max, precision, currentValue, onChange]
233
+ );
234
+ const increment = (0, import_react.useCallback)(
235
+ (multiplier = 1) => commit(currentValue + step * multiplier),
236
+ [commit, currentValue, step]
237
+ );
238
+ const decrement = (0, import_react.useCallback)(
239
+ (multiplier = 1) => commit(currentValue - step * multiplier),
240
+ [commit, currentValue, step]
241
+ );
242
+ const isAtMin = min !== void 0 && currentValue <= min;
243
+ const isAtMax = max !== void 0 && currentValue >= max;
244
+ const handleKeyDown = (0, import_react.useCallback)(
245
+ (e) => {
246
+ if (disabled || readOnly) return;
247
+ const multiplier = e.shiftKey ? 10 : 1;
248
+ switch (e.key) {
249
+ case "ArrowUp":
250
+ e.preventDefault();
251
+ increment(multiplier);
252
+ break;
253
+ case "ArrowDown":
254
+ e.preventDefault();
255
+ decrement(multiplier);
256
+ break;
257
+ case "Home":
258
+ if (min !== void 0) {
259
+ e.preventDefault();
260
+ commit(min);
261
+ }
262
+ break;
263
+ case "End":
264
+ if (max !== void 0) {
265
+ e.preventDefault();
266
+ commit(max);
267
+ }
268
+ break;
269
+ default:
270
+ break;
271
+ }
272
+ },
273
+ [disabled, readOnly, increment, decrement, commit, min, max]
274
+ );
275
+ const handleInputFocus = (0, import_react.useCallback)(() => {
276
+ setInputRaw(String(currentValue));
277
+ }, [currentValue]);
278
+ const handleInputChange = (0, import_react.useCallback)(
279
+ (e) => {
280
+ setInputRaw(e.target.value);
281
+ },
282
+ []
283
+ );
284
+ const handleInputBlur = (0, import_react.useCallback)(() => {
285
+ if (inputRaw !== null) {
286
+ const parsed = resolvedParse(inputRaw);
287
+ if (!Number.isNaN(parsed)) {
288
+ commit(parsed);
289
+ }
290
+ setInputRaw(null);
291
+ }
292
+ }, [inputRaw, resolvedParse, commit]);
293
+ const handleInputKeyDown = (0, import_react.useCallback)(
294
+ (e) => {
295
+ if (e.key === "Enter") {
296
+ inputRef.current?.blur();
297
+ }
298
+ if (e.key === "Escape") {
299
+ setInputRaw(null);
300
+ inputRef.current?.blur();
301
+ }
302
+ },
303
+ []
304
+ );
305
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
306
+ "div",
307
+ {
308
+ ref,
309
+ role: "spinbutton",
310
+ "aria-valuenow": currentValue,
311
+ "aria-valuemin": min,
312
+ "aria-valuemax": max,
313
+ "aria-label": ariaLabel,
314
+ "aria-disabled": disabled,
315
+ "aria-readonly": readOnly,
316
+ tabIndex: -1,
317
+ onKeyDown: handleKeyDown,
318
+ className: (0, import_cn.cn)(numberInputVariants({ variant, size }), className),
319
+ "data-ds": "",
320
+ "data-ds-component": "number-input",
321
+ "data-ds-variant": variant,
322
+ "data-ds-size": size,
323
+ ...rest,
324
+ children: [
325
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
326
+ "button",
327
+ {
328
+ type: "button",
329
+ tabIndex: 0,
330
+ onClick: () => decrement(),
331
+ disabled: disabled || readOnly || isAtMin,
332
+ "aria-label": decrementLabel,
333
+ className: (0, import_cn.cn)(
334
+ stepperButtonBase,
335
+ buttonWidthMap[size],
336
+ "border-r border-input/60"
337
+ ),
338
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MinusIcon, { className: iconSizeMap[size] })
339
+ }
340
+ ),
341
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative flex-1 flex items-center justify-center", children: inputRaw !== null ? (
342
+ // Editing mode: show raw <input>
343
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
344
+ "input",
345
+ {
346
+ ref: inputRef,
347
+ type: "text",
348
+ inputMode: "decimal",
349
+ value: inputRaw,
350
+ onChange: handleInputChange,
351
+ onBlur: handleInputBlur,
352
+ onKeyDown: handleInputKeyDown,
353
+ disabled,
354
+ readOnly,
355
+ className: (0, import_cn.cn)(
356
+ "w-full h-full bg-transparent text-center outline-none",
357
+ "tabular-nums text-foreground",
358
+ inputPaddingMap[size]
359
+ )
360
+ }
361
+ )
362
+ ) : (
363
+ // Display mode: animated value
364
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
365
+ "button",
366
+ {
367
+ type: "button",
368
+ tabIndex: 0,
369
+ disabled: disabled || readOnly,
370
+ onFocus: handleInputFocus,
371
+ onClick: handleInputFocus,
372
+ className: (0, import_cn.cn)(
373
+ "w-full h-full flex items-center justify-center",
374
+ "bg-transparent outline-none",
375
+ "text-foreground",
376
+ "cursor-text",
377
+ inputPaddingMap[size],
378
+ import_focus_ring.focusRingClasses
379
+ ),
380
+ "aria-label": `Current value: ${resolvedFormat(currentValue)}, press to edit`,
381
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
382
+ AnimatedValue,
383
+ {
384
+ value: currentValue,
385
+ formatValue: resolvedFormat,
386
+ shouldReduce: shouldReduce ?? false,
387
+ direction
388
+ }
389
+ )
390
+ }
391
+ )
392
+ ) }),
393
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
394
+ "button",
395
+ {
396
+ type: "button",
397
+ tabIndex: 0,
398
+ onClick: () => increment(),
399
+ disabled: disabled || readOnly || isAtMax,
400
+ "aria-label": incrementLabel,
401
+ className: (0, import_cn.cn)(
402
+ stepperButtonBase,
403
+ buttonWidthMap[size],
404
+ "border-l border-input/60"
405
+ ),
406
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PlusIcon, { className: iconSizeMap[size] })
407
+ }
408
+ )
409
+ ]
410
+ }
411
+ );
412
+ }
413
+ );
414
+ NumberInput.displayName = "NumberInput";
415
+ // Annotate the CommonJS export names for ESM import in node:
416
+ 0 && (module.exports = {
417
+ NumberInput,
418
+ numberInputVariants
419
+ });
@@ -0,0 +1,111 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+
5
+ declare const numberInputVariants: (props?: ({
6
+ variant?: "default" | "primary" | null | undefined;
7
+ size?: "sm" | "md" | "lg" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ type NumberInputVariant = "default" | "primary";
10
+ type NumberInputSize = "sm" | "md" | "lg";
11
+ interface NumberInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
12
+ /**
13
+ * The current value (controlled).
14
+ */
15
+ value?: number;
16
+ /**
17
+ * The initial value (uncontrolled).
18
+ * @default 0
19
+ */
20
+ defaultValue?: number;
21
+ /**
22
+ * Callback when the value changes.
23
+ */
24
+ onChange?: (value: number) => void;
25
+ /**
26
+ * Minimum allowed value.
27
+ */
28
+ min?: number;
29
+ /**
30
+ * Maximum allowed value.
31
+ */
32
+ max?: number;
33
+ /**
34
+ * Step increment/decrement amount.
35
+ * @default 1
36
+ */
37
+ step?: number;
38
+ /**
39
+ * Number of decimal places to display/allow.
40
+ * @default 0
41
+ */
42
+ precision?: number;
43
+ /**
44
+ * Visual variant.
45
+ * @default "default"
46
+ */
47
+ variant?: NumberInputVariant;
48
+ /**
49
+ * Size variant.
50
+ * @default "md"
51
+ */
52
+ size?: NumberInputSize;
53
+ /**
54
+ * Whether the input is disabled.
55
+ * @default false
56
+ */
57
+ disabled?: boolean;
58
+ /**
59
+ * Whether the input is read-only.
60
+ * @default false
61
+ */
62
+ readOnly?: boolean;
63
+ /**
64
+ * Accessible label for the input (required for icon-only usage).
65
+ */
66
+ "aria-label"?: string;
67
+ /**
68
+ * Custom format function for the displayed value.
69
+ */
70
+ formatValue?: (value: number) => string;
71
+ /**
72
+ * Custom parse function for converting input string to number.
73
+ */
74
+ parseValue?: (raw: string) => number;
75
+ /**
76
+ * Accessible label for the increment button.
77
+ * @default "Increment"
78
+ */
79
+ incrementLabel?: string;
80
+ /**
81
+ * Accessible label for the decrement button.
82
+ * @default "Decrement"
83
+ */
84
+ decrementLabel?: string;
85
+ /** Additional CSS classes on the container. */
86
+ className?: string;
87
+ }
88
+ /**
89
+ * NumberInput — a stepper input for numeric values.
90
+ *
91
+ * @example
92
+ * // Basic
93
+ * <NumberInput defaultValue={0} min={0} max={100} />
94
+ *
95
+ * // Controlled
96
+ * <NumberInput value={qty} onChange={setQty} step={5} min={0} max={50} />
97
+ *
98
+ * // Currency
99
+ * <NumberInput
100
+ * defaultValue={9.99}
101
+ * precision={2}
102
+ * step={0.01}
103
+ * formatValue={(v) => `$${v.toFixed(2)}`}
104
+ * />
105
+ *
106
+ * // Small / read-only
107
+ * <NumberInput size="sm" readOnly value={42} />
108
+ */
109
+ declare const NumberInput: react.ForwardRefExoticComponent<NumberInputProps & react.RefAttributes<HTMLDivElement>>;
110
+
111
+ export { NumberInput, type NumberInputProps, type NumberInputSize, type NumberInputVariant, numberInputVariants };
@@ -0,0 +1,111 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+
5
+ declare const numberInputVariants: (props?: ({
6
+ variant?: "default" | "primary" | null | undefined;
7
+ size?: "sm" | "md" | "lg" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ type NumberInputVariant = "default" | "primary";
10
+ type NumberInputSize = "sm" | "md" | "lg";
11
+ interface NumberInputProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
12
+ /**
13
+ * The current value (controlled).
14
+ */
15
+ value?: number;
16
+ /**
17
+ * The initial value (uncontrolled).
18
+ * @default 0
19
+ */
20
+ defaultValue?: number;
21
+ /**
22
+ * Callback when the value changes.
23
+ */
24
+ onChange?: (value: number) => void;
25
+ /**
26
+ * Minimum allowed value.
27
+ */
28
+ min?: number;
29
+ /**
30
+ * Maximum allowed value.
31
+ */
32
+ max?: number;
33
+ /**
34
+ * Step increment/decrement amount.
35
+ * @default 1
36
+ */
37
+ step?: number;
38
+ /**
39
+ * Number of decimal places to display/allow.
40
+ * @default 0
41
+ */
42
+ precision?: number;
43
+ /**
44
+ * Visual variant.
45
+ * @default "default"
46
+ */
47
+ variant?: NumberInputVariant;
48
+ /**
49
+ * Size variant.
50
+ * @default "md"
51
+ */
52
+ size?: NumberInputSize;
53
+ /**
54
+ * Whether the input is disabled.
55
+ * @default false
56
+ */
57
+ disabled?: boolean;
58
+ /**
59
+ * Whether the input is read-only.
60
+ * @default false
61
+ */
62
+ readOnly?: boolean;
63
+ /**
64
+ * Accessible label for the input (required for icon-only usage).
65
+ */
66
+ "aria-label"?: string;
67
+ /**
68
+ * Custom format function for the displayed value.
69
+ */
70
+ formatValue?: (value: number) => string;
71
+ /**
72
+ * Custom parse function for converting input string to number.
73
+ */
74
+ parseValue?: (raw: string) => number;
75
+ /**
76
+ * Accessible label for the increment button.
77
+ * @default "Increment"
78
+ */
79
+ incrementLabel?: string;
80
+ /**
81
+ * Accessible label for the decrement button.
82
+ * @default "Decrement"
83
+ */
84
+ decrementLabel?: string;
85
+ /** Additional CSS classes on the container. */
86
+ className?: string;
87
+ }
88
+ /**
89
+ * NumberInput — a stepper input for numeric values.
90
+ *
91
+ * @example
92
+ * // Basic
93
+ * <NumberInput defaultValue={0} min={0} max={100} />
94
+ *
95
+ * // Controlled
96
+ * <NumberInput value={qty} onChange={setQty} step={5} min={0} max={50} />
97
+ *
98
+ * // Currency
99
+ * <NumberInput
100
+ * defaultValue={9.99}
101
+ * precision={2}
102
+ * step={0.01}
103
+ * formatValue={(v) => `$${v.toFixed(2)}`}
104
+ * />
105
+ *
106
+ * // Small / read-only
107
+ * <NumberInput size="sm" readOnly value={42} />
108
+ */
109
+ declare const NumberInput: react.ForwardRefExoticComponent<NumberInputProps & react.RefAttributes<HTMLDivElement>>;
110
+
111
+ export { NumberInput, type NumberInputProps, type NumberInputSize, type NumberInputVariant, numberInputVariants };