@hewnui/ui 0.0.0-stage → 0.1.0

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 (367) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -2
  3. package/dist/chart/axes.d.ts +31 -0
  4. package/dist/chart/axes.js +20 -0
  5. package/dist/chart/colors.d.ts +1 -0
  6. package/dist/chart/colors.js +13 -0
  7. package/dist/chart/frame.d.ts +13 -0
  8. package/dist/chart/frame.js +17 -0
  9. package/dist/chart/interaction.d.ts +22 -0
  10. package/dist/chart/interaction.js +22 -0
  11. package/dist/chart/path.d.ts +10 -0
  12. package/dist/chart/path.js +24 -0
  13. package/dist/chart/scales.d.ts +34 -0
  14. package/dist/chart/scales.js +66 -0
  15. package/dist/chart/status.d.ts +3 -0
  16. package/dist/chart/status.js +15 -0
  17. package/dist/chart/types.d.ts +34 -0
  18. package/dist/chart/types.js +6 -0
  19. package/dist/components/area-chart/area-chart.d.ts +17 -0
  20. package/dist/components/area-chart/area-chart.js +54 -0
  21. package/dist/components/area-chart/index.d.ts +1 -0
  22. package/dist/components/area-chart/index.js +1 -0
  23. package/dist/components/badge/badge.d.ts +2 -0
  24. package/dist/components/badge/badge.js +5 -0
  25. package/dist/components/badge/badge.styles.d.ts +8 -0
  26. package/dist/components/badge/badge.styles.js +57 -0
  27. package/dist/components/badge/badge.types.d.ts +11 -0
  28. package/dist/components/badge/badge.types.js +1 -0
  29. package/dist/components/badge/index.d.ts +3 -0
  30. package/dist/components/badge/index.js +2 -0
  31. package/dist/components/bar-chart/bar-chart.d.ts +17 -0
  32. package/dist/components/bar-chart/bar-chart.js +73 -0
  33. package/dist/components/bar-chart/index.d.ts +1 -0
  34. package/dist/components/bar-chart/index.js +1 -0
  35. package/dist/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  36. package/dist/components/breadcrumbs/breadcrumbs.js +13 -0
  37. package/dist/components/breadcrumbs/breadcrumbs.styles.d.ts +5 -0
  38. package/dist/components/breadcrumbs/breadcrumbs.styles.js +10 -0
  39. package/dist/components/breadcrumbs/breadcrumbs.types.d.ts +16 -0
  40. package/dist/components/breadcrumbs/breadcrumbs.types.js +1 -0
  41. package/dist/components/breadcrumbs/index.d.ts +2 -0
  42. package/dist/components/breadcrumbs/index.js +1 -0
  43. package/dist/components/button/button.d.ts +2 -0
  44. package/dist/components/button/button.js +18 -0
  45. package/dist/components/button/button.motion.d.ts +23 -0
  46. package/dist/components/button/button.motion.js +11 -0
  47. package/dist/components/button/button.styles.d.ts +10 -0
  48. package/dist/components/button/button.styles.js +24 -0
  49. package/dist/components/button/button.types.d.ts +11 -0
  50. package/dist/components/button/button.types.js +1 -0
  51. package/dist/components/button/index.d.ts +2 -0
  52. package/dist/components/button/index.js +1 -0
  53. package/dist/components/card/card.d.ts +21 -0
  54. package/dist/components/card/card.js +19 -0
  55. package/dist/components/card/card.styles.d.ts +4 -0
  56. package/dist/components/card/card.styles.js +13 -0
  57. package/dist/components/card/card.types.d.ts +4 -0
  58. package/dist/components/card/card.types.js +1 -0
  59. package/dist/components/card/index.d.ts +2 -0
  60. package/dist/components/card/index.js +1 -0
  61. package/dist/components/checkbox/checkbox.d.ts +2 -0
  62. package/dist/components/checkbox/checkbox.js +17 -0
  63. package/dist/components/checkbox/checkbox.styles.d.ts +3 -0
  64. package/dist/components/checkbox/checkbox.styles.js +6 -0
  65. package/dist/components/checkbox/checkbox.types.d.ts +6 -0
  66. package/dist/components/checkbox/checkbox.types.js +1 -0
  67. package/dist/components/checkbox/index.d.ts +2 -0
  68. package/dist/components/checkbox/index.js +1 -0
  69. package/dist/components/checkbox-group/checkbox-group.d.ts +2 -0
  70. package/dist/components/checkbox-group/checkbox-group.js +8 -0
  71. package/dist/components/checkbox-group/checkbox-group.styles.d.ts +2 -0
  72. package/dist/components/checkbox-group/checkbox-group.styles.js +5 -0
  73. package/dist/components/checkbox-group/checkbox-group.types.d.ts +9 -0
  74. package/dist/components/checkbox-group/checkbox-group.types.js +1 -0
  75. package/dist/components/checkbox-group/index.d.ts +2 -0
  76. package/dist/components/checkbox-group/index.js +1 -0
  77. package/dist/components/color-picker/color-picker.d.ts +2 -0
  78. package/dist/components/color-picker/color-picker.js +27 -0
  79. package/dist/components/color-picker/color-picker.oklch.d.ts +2 -0
  80. package/dist/components/color-picker/color-picker.oklch.js +54 -0
  81. package/dist/components/color-picker/color-picker.panel.d.ts +2 -0
  82. package/dist/components/color-picker/color-picker.panel.js +15 -0
  83. package/dist/components/color-picker/color-picker.styles.d.ts +16 -0
  84. package/dist/components/color-picker/color-picker.styles.js +28 -0
  85. package/dist/components/color-picker/color-picker.types.d.ts +36 -0
  86. package/dist/components/color-picker/color-picker.types.js +1 -0
  87. package/dist/components/color-picker/index.d.ts +4 -0
  88. package/dist/components/color-picker/index.js +3 -0
  89. package/dist/components/combobox/combobox.d.ts +15 -0
  90. package/dist/components/combobox/combobox.js +11 -0
  91. package/dist/components/combobox/index.d.ts +1 -0
  92. package/dist/components/combobox/index.js +1 -0
  93. package/dist/components/command-palette/command-palette-items.d.ts +4 -0
  94. package/dist/components/command-palette/command-palette-items.js +14 -0
  95. package/dist/components/command-palette/command-palette.d.ts +15 -0
  96. package/dist/components/command-palette/command-palette.hotkey.d.ts +8 -0
  97. package/dist/components/command-palette/command-palette.hotkey.js +51 -0
  98. package/dist/components/command-palette/command-palette.js +33 -0
  99. package/dist/components/command-palette/command-palette.styles.d.ts +13 -0
  100. package/dist/components/command-palette/command-palette.styles.js +25 -0
  101. package/dist/components/command-palette/command-palette.types.d.ts +65 -0
  102. package/dist/components/command-palette/command-palette.types.js +1 -0
  103. package/dist/components/command-palette/index.d.ts +14 -0
  104. package/dist/components/command-palette/index.js +13 -0
  105. package/dist/components/data-table/data-table.d.ts +7 -0
  106. package/dist/components/data-table/data-table.js +31 -0
  107. package/dist/components/data-table/index.d.ts +1 -0
  108. package/dist/components/data-table/index.js +1 -0
  109. package/dist/components/date-picker/date-picker.d.ts +7 -0
  110. package/dist/components/date-picker/date-picker.js +8 -0
  111. package/dist/components/date-picker/index.d.ts +1 -0
  112. package/dist/components/date-picker/index.js +1 -0
  113. package/dist/components/date-range-picker/date-range-picker.calendar.d.ts +5 -0
  114. package/dist/components/date-range-picker/date-range-picker.calendar.js +21 -0
  115. package/dist/components/date-range-picker/date-range-picker.d.ts +2 -0
  116. package/dist/components/date-range-picker/date-range-picker.js +9 -0
  117. package/dist/components/date-range-picker/date-range-picker.presets.d.ts +3 -0
  118. package/dist/components/date-range-picker/date-range-picker.presets.js +53 -0
  119. package/dist/components/date-range-picker/date-range-picker.styles.d.ts +11 -0
  120. package/dist/components/date-range-picker/date-range-picker.styles.js +14 -0
  121. package/dist/components/date-range-picker/date-range-picker.types.d.ts +28 -0
  122. package/dist/components/date-range-picker/date-range-picker.types.js +1 -0
  123. package/dist/components/date-range-picker/index.d.ts +2 -0
  124. package/dist/components/date-range-picker/index.js +1 -0
  125. package/dist/components/dialog/dialog.d.ts +18 -0
  126. package/dist/components/dialog/dialog.js +16 -0
  127. package/dist/components/dialog/dialog.styles.d.ts +6 -0
  128. package/dist/components/dialog/dialog.styles.js +9 -0
  129. package/dist/components/dialog/index.d.ts +7 -0
  130. package/dist/components/dialog/index.js +7 -0
  131. package/dist/components/donut-chart/donut-chart.d.ts +17 -0
  132. package/dist/components/donut-chart/donut-chart.js +65 -0
  133. package/dist/components/donut-chart/index.d.ts +1 -0
  134. package/dist/components/donut-chart/index.js +1 -0
  135. package/dist/components/drawer/drawer.d.ts +13 -0
  136. package/dist/components/drawer/drawer.js +14 -0
  137. package/dist/components/drawer/index.d.ts +1 -0
  138. package/dist/components/drawer/index.js +1 -0
  139. package/dist/components/empty/empty.d.ts +7 -0
  140. package/dist/components/empty/empty.js +5 -0
  141. package/dist/components/empty/index.d.ts +1 -0
  142. package/dist/components/empty/index.js +1 -0
  143. package/dist/components/file-upload/file-upload.d.ts +2 -0
  144. package/dist/components/file-upload/file-upload.js +44 -0
  145. package/dist/components/file-upload/file-upload.styles.d.ts +12 -0
  146. package/dist/components/file-upload/file-upload.styles.js +14 -0
  147. package/dist/components/file-upload/file-upload.types.d.ts +16 -0
  148. package/dist/components/file-upload/file-upload.types.js +1 -0
  149. package/dist/components/file-upload/index.d.ts +2 -0
  150. package/dist/components/file-upload/index.js +1 -0
  151. package/dist/components/form/form.d.ts +2 -0
  152. package/dist/components/form/form.js +7 -0
  153. package/dist/components/form/form.styles.d.ts +1 -0
  154. package/dist/components/form/form.styles.js +4 -0
  155. package/dist/components/form/form.types.d.ts +6 -0
  156. package/dist/components/form/form.types.js +1 -0
  157. package/dist/components/form/index.d.ts +2 -0
  158. package/dist/components/form/index.js +1 -0
  159. package/dist/components/input-group/index.d.ts +2 -0
  160. package/dist/components/input-group/index.js +1 -0
  161. package/dist/components/input-group/input-group.d.ts +14 -0
  162. package/dist/components/input-group/input-group.js +24 -0
  163. package/dist/components/input-group/input-group.styles.d.ts +8 -0
  164. package/dist/components/input-group/input-group.styles.js +9 -0
  165. package/dist/components/input-group/input-group.types.d.ts +22 -0
  166. package/dist/components/input-group/input-group.types.js +1 -0
  167. package/dist/components/input-otp/index.d.ts +2 -0
  168. package/dist/components/input-otp/index.js +1 -0
  169. package/dist/components/input-otp/input-otp.d.ts +2 -0
  170. package/dist/components/input-otp/input-otp.js +76 -0
  171. package/dist/components/input-otp/input-otp.styles.d.ts +8 -0
  172. package/dist/components/input-otp/input-otp.styles.js +11 -0
  173. package/dist/components/input-otp/input-otp.types.d.ts +23 -0
  174. package/dist/components/input-otp/input-otp.types.js +1 -0
  175. package/dist/components/line-chart/index.d.ts +1 -0
  176. package/dist/components/line-chart/index.js +1 -0
  177. package/dist/components/line-chart/line-chart.d.ts +17 -0
  178. package/dist/components/line-chart/line-chart.js +53 -0
  179. package/dist/components/link/index.d.ts +2 -0
  180. package/dist/components/link/index.js +1 -0
  181. package/dist/components/link/link.d.ts +2 -0
  182. package/dist/components/link/link.js +7 -0
  183. package/dist/components/link/link.styles.d.ts +5 -0
  184. package/dist/components/link/link.styles.js +9 -0
  185. package/dist/components/link/link.types.d.ts +8 -0
  186. package/dist/components/link/link.types.js +1 -0
  187. package/dist/components/menu/index.d.ts +8 -0
  188. package/dist/components/menu/index.js +8 -0
  189. package/dist/components/menu/menu.d.ts +20 -0
  190. package/dist/components/menu/menu.js +26 -0
  191. package/dist/components/number-field/index.d.ts +2 -0
  192. package/dist/components/number-field/index.js +1 -0
  193. package/dist/components/number-field/number-field.d.ts +2 -0
  194. package/dist/components/number-field/number-field.js +14 -0
  195. package/dist/components/number-field/number-field.styles.d.ts +8 -0
  196. package/dist/components/number-field/number-field.styles.js +7 -0
  197. package/dist/components/number-field/number-field.types.d.ts +14 -0
  198. package/dist/components/number-field/number-field.types.js +1 -0
  199. package/dist/components/pagination/index.d.ts +3 -0
  200. package/dist/components/pagination/index.js +2 -0
  201. package/dist/components/pagination/pagination.d.ts +2 -0
  202. package/dist/components/pagination/pagination.js +49 -0
  203. package/dist/components/pagination/pagination.styles.d.ts +8 -0
  204. package/dist/components/pagination/pagination.styles.js +19 -0
  205. package/dist/components/pagination/pagination.types.d.ts +35 -0
  206. package/dist/components/pagination/pagination.types.js +1 -0
  207. package/dist/components/pagination/pagination.utils.d.ts +6 -0
  208. package/dist/components/pagination/pagination.utils.js +51 -0
  209. package/dist/components/password-field/index.d.ts +2 -0
  210. package/dist/components/password-field/index.js +1 -0
  211. package/dist/components/password-field/password-field.d.ts +2 -0
  212. package/dist/components/password-field/password-field.js +17 -0
  213. package/dist/components/password-field/password-field.styles.d.ts +8 -0
  214. package/dist/components/password-field/password-field.styles.js +7 -0
  215. package/dist/components/password-field/password-field.types.d.ts +16 -0
  216. package/dist/components/password-field/password-field.types.js +1 -0
  217. package/dist/components/popover/index.d.ts +2 -0
  218. package/dist/components/popover/index.js +1 -0
  219. package/dist/components/popover/popover.d.ts +10 -0
  220. package/dist/components/popover/popover.js +16 -0
  221. package/dist/components/popover/popover.styles.d.ts +3 -0
  222. package/dist/components/popover/popover.styles.js +7 -0
  223. package/dist/components/popover/popover.types.d.ts +14 -0
  224. package/dist/components/popover/popover.types.js +1 -0
  225. package/dist/components/progress/index.d.ts +2 -0
  226. package/dist/components/progress/index.js +1 -0
  227. package/dist/components/progress/progress.d.ts +12 -0
  228. package/dist/components/progress/progress.js +26 -0
  229. package/dist/components/radio-group/index.d.ts +2 -0
  230. package/dist/components/radio-group/index.js +1 -0
  231. package/dist/components/radio-group/radio-group.d.ts +3 -0
  232. package/dist/components/radio-group/radio-group.js +21 -0
  233. package/dist/components/radio-group/radio-group.styles.d.ts +5 -0
  234. package/dist/components/radio-group/radio-group.styles.js +14 -0
  235. package/dist/components/radio-group/radio-group.types.d.ts +14 -0
  236. package/dist/components/radio-group/radio-group.types.js +1 -0
  237. package/dist/components/search-field/index.d.ts +2 -0
  238. package/dist/components/search-field/index.js +1 -0
  239. package/dist/components/search-field/search-field.d.ts +2 -0
  240. package/dist/components/search-field/search-field.js +15 -0
  241. package/dist/components/search-field/search-field.styles.d.ts +8 -0
  242. package/dist/components/search-field/search-field.styles.js +7 -0
  243. package/dist/components/search-field/search-field.types.d.ts +15 -0
  244. package/dist/components/search-field/search-field.types.js +1 -0
  245. package/dist/components/select/index.d.ts +5 -0
  246. package/dist/components/select/index.js +5 -0
  247. package/dist/components/select/select.d.ts +16 -0
  248. package/dist/components/select/select.js +11 -0
  249. package/dist/components/select/select.styles.d.ts +5 -0
  250. package/dist/components/select/select.styles.js +13 -0
  251. package/dist/components/skeleton/index.d.ts +1 -0
  252. package/dist/components/skeleton/index.js +1 -0
  253. package/dist/components/skeleton/skeleton.d.ts +3 -0
  254. package/dist/components/skeleton/skeleton.js +5 -0
  255. package/dist/components/slider/index.d.ts +2 -0
  256. package/dist/components/slider/index.js +1 -0
  257. package/dist/components/slider/slider.d.ts +2 -0
  258. package/dist/components/slider/slider.js +8 -0
  259. package/dist/components/slider/slider.styles.d.ts +6 -0
  260. package/dist/components/slider/slider.styles.js +9 -0
  261. package/dist/components/slider/slider.types.d.ts +8 -0
  262. package/dist/components/slider/slider.types.js +1 -0
  263. package/dist/components/sparkline/index.d.ts +1 -0
  264. package/dist/components/sparkline/index.js +1 -0
  265. package/dist/components/sparkline/sparkline.d.ts +11 -0
  266. package/dist/components/sparkline/sparkline.js +34 -0
  267. package/dist/components/spinner/index.d.ts +1 -0
  268. package/dist/components/spinner/index.js +1 -0
  269. package/dist/components/spinner/spinner.d.ts +4 -0
  270. package/dist/components/spinner/spinner.js +6 -0
  271. package/dist/components/stepper/index.d.ts +3 -0
  272. package/dist/components/stepper/index.js +2 -0
  273. package/dist/components/stepper/stepper-step.d.ts +15 -0
  274. package/dist/components/stepper/stepper-step.js +46 -0
  275. package/dist/components/stepper/stepper.d.ts +4 -0
  276. package/dist/components/stepper/stepper.js +17 -0
  277. package/dist/components/stepper/stepper.styles.d.ts +10 -0
  278. package/dist/components/stepper/stepper.styles.js +37 -0
  279. package/dist/components/stepper/stepper.types.d.ts +50 -0
  280. package/dist/components/stepper/stepper.types.js +1 -0
  281. package/dist/components/stepper/use-stepper.d.ts +6 -0
  282. package/dist/components/stepper/use-stepper.js +40 -0
  283. package/dist/components/switch/index.d.ts +2 -0
  284. package/dist/components/switch/index.js +1 -0
  285. package/dist/components/switch/switch.d.ts +2 -0
  286. package/dist/components/switch/switch.js +7 -0
  287. package/dist/components/switch/switch.styles.d.ts +3 -0
  288. package/dist/components/switch/switch.styles.js +6 -0
  289. package/dist/components/switch/switch.types.d.ts +6 -0
  290. package/dist/components/switch/switch.types.js +1 -0
  291. package/dist/components/table/index.d.ts +11 -0
  292. package/dist/components/table/index.js +11 -0
  293. package/dist/components/table/table-sort-glyph.d.ts +3 -0
  294. package/dist/components/table/table-sort-glyph.js +5 -0
  295. package/dist/components/table/table.d.ts +33 -0
  296. package/dist/components/table/table.js +31 -0
  297. package/dist/components/table/table.styles.d.ts +8 -0
  298. package/dist/components/table/table.styles.js +19 -0
  299. package/dist/components/tabs/index.d.ts +7 -0
  300. package/dist/components/tabs/index.js +7 -0
  301. package/dist/components/tabs/tabs.d.ts +20 -0
  302. package/dist/components/tabs/tabs.js +29 -0
  303. package/dist/components/tabs/tabs.styles.d.ts +5 -0
  304. package/dist/components/tabs/tabs.styles.js +30 -0
  305. package/dist/components/tag-field/index.d.ts +2 -0
  306. package/dist/components/tag-field/index.js +1 -0
  307. package/dist/components/tag-field/tag-field-icons.d.ts +2 -0
  308. package/dist/components/tag-field/tag-field-icons.js +7 -0
  309. package/dist/components/tag-field/tag-field-tags.d.ts +7 -0
  310. package/dist/components/tag-field/tag-field-tags.js +19 -0
  311. package/dist/components/tag-field/tag-field.d.ts +6 -0
  312. package/dist/components/tag-field/tag-field.js +46 -0
  313. package/dist/components/tag-field/tag-field.styles.d.ts +14 -0
  314. package/dist/components/tag-field/tag-field.styles.js +42 -0
  315. package/dist/components/tag-field/tag-field.types.d.ts +32 -0
  316. package/dist/components/tag-field/tag-field.types.js +1 -0
  317. package/dist/components/text-area/index.d.ts +2 -0
  318. package/dist/components/text-area/index.js +1 -0
  319. package/dist/components/text-area/text-area.d.ts +2 -0
  320. package/dist/components/text-area/text-area.js +9 -0
  321. package/dist/components/text-area/text-area.styles.d.ts +6 -0
  322. package/dist/components/text-area/text-area.styles.js +5 -0
  323. package/dist/components/text-area/text-area.types.d.ts +16 -0
  324. package/dist/components/text-area/text-area.types.js +1 -0
  325. package/dist/components/text-field/index.d.ts +2 -0
  326. package/dist/components/text-field/index.js +1 -0
  327. package/dist/components/text-field/text-field.d.ts +2 -0
  328. package/dist/components/text-field/text-field.js +8 -0
  329. package/dist/components/text-field/text-field.styles.d.ts +1 -0
  330. package/dist/components/text-field/text-field.styles.js +1 -0
  331. package/dist/components/text-field/text-field.types.d.ts +15 -0
  332. package/dist/components/text-field/text-field.types.js +1 -0
  333. package/dist/components/toast/index.d.ts +2 -0
  334. package/dist/components/toast/index.js +1 -0
  335. package/dist/components/toast/toast-glyph.d.ts +4 -0
  336. package/dist/components/toast/toast-glyph.js +23 -0
  337. package/dist/components/toast/toast-item.d.ts +14 -0
  338. package/dist/components/toast/toast-item.js +21 -0
  339. package/dist/components/toast/toast.d.ts +16 -0
  340. package/dist/components/toast/toast.js +50 -0
  341. package/dist/components/toast/toast.styles.d.ts +13 -0
  342. package/dist/components/toast/toast.styles.js +50 -0
  343. package/dist/components/tooltip/index.d.ts +2 -0
  344. package/dist/components/tooltip/index.js +1 -0
  345. package/dist/components/tooltip/tooltip.d.ts +3 -0
  346. package/dist/components/tooltip/tooltip.js +10 -0
  347. package/dist/components/tooltip/tooltip.styles.d.ts +1 -0
  348. package/dist/components/tooltip/tooltip.styles.js +6 -0
  349. package/dist/components/tooltip/tooltip.types.d.ts +18 -0
  350. package/dist/components/tooltip/tooltip.types.js +1 -0
  351. package/dist/index.d.ts +54 -0
  352. package/dist/index.js +51 -0
  353. package/dist/providers/material-provider.d.ts +12 -0
  354. package/dist/providers/material-provider.js +30 -0
  355. package/dist/providers/motion-provider.d.ts +20 -0
  356. package/dist/providers/motion-provider.js +45 -0
  357. package/dist/providers/radius-provider.d.ts +13 -0
  358. package/dist/providers/radius-provider.js +73 -0
  359. package/dist/providers/theme-provider.d.ts +25 -0
  360. package/dist/providers/theme-provider.js +66 -0
  361. package/dist/styles/field.d.ts +24 -0
  362. package/dist/styles/field.js +36 -0
  363. package/dist/styles/overlays.d.ts +3 -0
  364. package/dist/styles/overlays.js +4 -0
  365. package/dist/utils/cn.d.ts +1 -0
  366. package/dist/utils/cn.js +3 -0
  367. package/package.json +468 -4
@@ -0,0 +1,32 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ComboBoxProps, Key } from "react-aria-components";
3
+ import type { FieldSize, FieldVariant } from "../../styles/field";
4
+ export type TagFieldSize = FieldSize;
5
+ export type TagFieldVariant = FieldVariant;
6
+ type MultiComboBoxProps = ComboBoxProps<object, "multiple">;
7
+ export type TagFieldProps = Omit<MultiComboBoxProps, "children" | "className" | "selectionMode" | "placeholder" | "label" | "description" | "errorMessage"> & {
8
+ children: ReactNode;
9
+ className?: string;
10
+ label?: ReactNode;
11
+ description?: ReactNode;
12
+ errorMessage?: ReactNode;
13
+ placeholder?: string;
14
+ size?: TagFieldSize;
15
+ variant?: TagFieldVariant;
16
+ /** Cap how many options can be selected. Extra keys are ignored. */
17
+ maxSelections?: number;
18
+ /** Shown in the tag list when nothing is selected. */
19
+ emptyLabel?: ReactNode;
20
+ /** Shown in the listbox when the filter matches nothing. */
21
+ listEmptyLabel?: ReactNode;
22
+ /** Accessible name for the selected-tag group. */
23
+ tagsLabel?: string;
24
+ };
25
+ export type TagFieldItemProps = {
26
+ id: Key;
27
+ children: ReactNode;
28
+ textValue?: string;
29
+ isDisabled?: boolean;
30
+ };
31
+ export type TagFieldChangeHandler = (value: Key[]) => void;
32
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { TextArea } from "./text-area";
2
+ export type { TextAreaProps, TextAreaSize, TextAreaVariant } from "./text-area.types";
@@ -0,0 +1 @@
1
+ export { TextArea } from "./text-area";
@@ -0,0 +1,2 @@
1
+ import type { TextAreaProps } from "./text-area.types";
2
+ export declare function TextArea({ className, description, errorMessage, label, placeholder, rows, size, textAreaClassName: areaClass, variant, ...props }: TextAreaProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { FieldError, Label, Text, TextArea as AriaTextArea, TextField as AriaTextField, } from "react-aria-components";
4
+ import { cn } from "../../utils/cn";
5
+ import { fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldRootClass, fieldSurfaceProps, } from "../../styles/field";
6
+ import { textAreaClassName } from "./text-area.styles";
7
+ export function TextArea({ className, description, errorMessage, label, placeholder, rows = 4, size = "md", textAreaClassName: areaClass, variant = "outline", ...props }) {
8
+ return (_jsxs(AriaTextField, { ...props, className: cn(fieldRootClass, className), children: [label ? _jsx(Label, { className: fieldLabelClass, children: label }) : null, _jsx(AriaTextArea, { ...fieldSurfaceProps(variant), rows: rows, className: textAreaClassName({ className: areaClass, size, variant }), ...(placeholder !== undefined ? { placeholder } : {}) }), description ? (_jsx(Text, { slot: "description", className: fieldDescriptionClass, children: description })) : null, _jsx(FieldError, { className: fieldErrorClass, children: errorMessage })] }));
9
+ }
@@ -0,0 +1,6 @@
1
+ import { type FieldSize, type FieldVariant } from "../../styles/field";
2
+ export declare function textAreaClassName({ className, size, variant, }?: {
3
+ className?: string | undefined;
4
+ size?: FieldSize | undefined;
5
+ variant?: FieldVariant | undefined;
6
+ }): string;
@@ -0,0 +1,5 @@
1
+ import { cn } from "../../utils/cn";
2
+ import { inputSurfaceClassName, } from "../../styles/field";
3
+ export function textAreaClassName({ className, size = "md", variant = "outline", } = {}) {
4
+ return cn(inputSurfaceClassName({ size, variant }), "min-h-[6.5rem] resize-y py-2.5 leading-relaxed", className);
5
+ }
@@ -0,0 +1,16 @@
1
+ import type { TextFieldProps as AriaTextFieldProps } from "react-aria-components";
2
+ import type { ReactNode } from "react";
3
+ import type { FieldSize, FieldVariant } from "../../styles/field";
4
+ export type TextAreaVariant = FieldVariant;
5
+ export type TextAreaSize = FieldSize;
6
+ export type TextAreaProps = Omit<AriaTextFieldProps, "className" | "children"> & {
7
+ label?: ReactNode;
8
+ description?: ReactNode;
9
+ errorMessage?: ReactNode;
10
+ placeholder?: string;
11
+ className?: string;
12
+ textAreaClassName?: string;
13
+ variant?: TextAreaVariant;
14
+ size?: TextAreaSize;
15
+ rows?: number;
16
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { TextField } from "./text-field";
2
+ export type { TextFieldProps } from "./text-field.types";
@@ -0,0 +1 @@
1
+ export { TextField } from "./text-field";
@@ -0,0 +1,2 @@
1
+ import type { TextFieldProps } from "./text-field.types";
2
+ export declare function TextField({ className, description, errorMessage, inputClassName: inputClass, label, placeholder, size, variant, ...props }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { FieldError, Input, Label, Text, TextField as AriaTextField, } from "react-aria-components";
4
+ import { cn } from "../../utils/cn";
5
+ import { fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldRootClass, fieldSurfaceProps, inputClassName, } from "../../styles/field";
6
+ export function TextField({ className, description, errorMessage, inputClassName: inputClass, label, placeholder, size = "md", variant = "outline", ...props }) {
7
+ return (_jsxs(AriaTextField, { ...props, className: cn(fieldRootClass, className), children: [label ? _jsx(Label, { className: fieldLabelClass, children: label }) : null, _jsx(Input, { ...fieldSurfaceProps(variant), className: inputClassName({ className: inputClass, size, variant }), ...(placeholder !== undefined ? { placeholder } : {}) }), description ? (_jsx(Text, { slot: "description", className: fieldDescriptionClass, children: description })) : null, _jsx(FieldError, { className: fieldErrorClass, children: errorMessage })] }));
8
+ }
@@ -0,0 +1 @@
1
+ export { fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldRootClass, fieldSurfaceProps, inputClassName, inputSurfaceClassName, } from "../../styles/field";
@@ -0,0 +1 @@
1
+ export { fieldDescriptionClass, fieldErrorClass, fieldLabelClass, fieldRootClass, fieldSurfaceProps, inputClassName, inputSurfaceClassName, } from "../../styles/field";
@@ -0,0 +1,15 @@
1
+ import type { TextFieldProps as AriaTextFieldProps } from "react-aria-components";
2
+ import type { ReactNode } from "react";
3
+ import type { FieldSize, FieldVariant } from "../../styles/field";
4
+ export type TextFieldVariant = FieldVariant;
5
+ export type TextFieldSize = FieldSize;
6
+ export type TextFieldProps = Omit<AriaTextFieldProps, "className" | "children"> & {
7
+ label?: ReactNode;
8
+ description?: ReactNode;
9
+ errorMessage?: ReactNode;
10
+ placeholder?: string;
11
+ className?: string;
12
+ inputClassName?: string;
13
+ variant?: TextFieldVariant;
14
+ size?: TextFieldSize;
15
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ToastProvider, useToast } from "./toast";
2
+ export type { ToastTone } from "./toast.styles";
@@ -0,0 +1 @@
1
+ export { ToastProvider, useToast } from "./toast";
@@ -0,0 +1,4 @@
1
+ import { type ToastTone } from "./toast.styles";
2
+ export declare function ToastGlyph({ tone }: {
3
+ tone: ToastTone;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { toastIconClassName } from "./toast.styles";
3
+ export function ToastGlyph({ tone }) {
4
+ const common = {
5
+ viewBox: "0 0 16 16",
6
+ fill: "none",
7
+ "aria-hidden": true,
8
+ className: toastIconClassName(),
9
+ };
10
+ if (tone === "success") {
11
+ return (_jsx("svg", { ...common, children: _jsx("path", { d: "M3.5 8.2 6.2 11l6.3-7", stroke: "currentColor", strokeWidth: "1.7", strokeLinecap: "round", strokeLinejoin: "round" }) }));
12
+ }
13
+ if (tone === "danger") {
14
+ return (_jsx("svg", { ...common, children: _jsx("path", { d: "M4.2 4.2 11.8 11.8M11.8 4.2 4.2 11.8", stroke: "currentColor", strokeWidth: "1.7", strokeLinecap: "round" }) }));
15
+ }
16
+ if (tone === "warning") {
17
+ return (_jsxs("svg", { ...common, children: [_jsx("path", { d: "M8 3.2 13.4 12.5H2.6L8 3.2Z", stroke: "currentColor", strokeWidth: "1.5", strokeLinejoin: "round" }), _jsx("path", { d: "M8 7v2.4M8 11.2h.01", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }));
18
+ }
19
+ if (tone === "info") {
20
+ return (_jsxs("svg", { ...common, children: [_jsx("circle", { cx: "8", cy: "8", r: "5.5", stroke: "currentColor", strokeWidth: "1.5" }), _jsx("path", { d: "M8 7.2V11M8 5.2h.01", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })] }));
21
+ }
22
+ return (_jsxs("svg", { ...common, children: [_jsx("circle", { cx: "8", cy: "8", r: "5.5", stroke: "currentColor", strokeWidth: "1.5" }), _jsx("circle", { cx: "8", cy: "8", r: "1.6", fill: "currentColor" })] }));
23
+ }
@@ -0,0 +1,14 @@
1
+ import { type ToastTone } from "./toast.styles";
2
+ export type ToastItemData = {
3
+ id: string;
4
+ title: string;
5
+ description?: string;
6
+ tone: ToastTone;
7
+ duration: number;
8
+ };
9
+ declare function ToastItemInner({ item, onDismiss, }: {
10
+ item: ToastItemData;
11
+ onDismiss: (id: string) => void;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare const ToastItem: import("react").MemoExoticComponent<typeof ToastItemInner>;
14
+ export {};
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo } from "react";
4
+ import { m } from "motion/react";
5
+ import { easings, springs } from "@hewnui/motion";
6
+ import { useMotionMode } from "../../providers/motion-provider";
7
+ import { ToastGlyph } from "./toast-glyph";
8
+ import { toastBodyClassName, toastDescriptionClassName, toastDismissClassName, toastIconWellClassName, toastItemClassName, toastMetaClassName, toastProgressBarClassName, toastProgressTrackClassName, toastTitleClassName, toastToneLabel, } from "./toast.styles";
9
+ function ToastItemInner({ item, onDismiss, }) {
10
+ const { motionEnabled } = useMotionMode();
11
+ const tone = item.tone;
12
+ const card = (_jsxs("div", { role: tone === "danger" ? "alert" : "status", "aria-live": tone === "danger" ? "assertive" : "polite", "data-kp-control": "toast", className: toastItemClassName(tone), children: [_jsxs("div", { className: toastBodyClassName(), children: [_jsx("span", { className: toastIconWellClassName(), "data-kp-toast": "icon", children: _jsx(ToastGlyph, { tone: tone }) }), _jsxs("div", { className: "min-w-0 flex-1 pt-0.5", children: [_jsx("p", { className: toastMetaClassName(), children: toastToneLabel[tone] }), _jsx("p", { className: toastTitleClassName(), children: item.title }), item.description ? (_jsx("p", { className: toastDescriptionClassName(), children: item.description })) : null] }), _jsx("button", { type: "button", className: toastDismissClassName(), "aria-label": "Dismiss notification", onClick: () => onDismiss(item.id), children: _jsx("svg", { viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, className: "size-3.5", children: _jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round" }) }) })] }), _jsx("div", { className: toastProgressTrackClassName(), "aria-hidden": true, children: motionEnabled ? (_jsx(m.div, { className: toastProgressBarClassName(), initial: { scaleX: 1 }, animate: { scaleX: 0 }, transition: {
13
+ duration: item.duration / 1000,
14
+ ease: easings.linear,
15
+ } })) : (_jsx("div", { className: toastProgressBarClassName() })) })] }));
16
+ if (!motionEnabled) {
17
+ return _jsx("div", { className: "w-full", children: card });
18
+ }
19
+ return (_jsx(m.div, { layout: true, className: "w-full", initial: { opacity: 0, y: 16, scale: 0.96, filter: "blur(6px)" }, animate: { opacity: 1, y: 0, scale: 1, filter: "blur(0px)" }, exit: { opacity: 0, y: 10, scale: 0.98, filter: "blur(4px)" }, transition: { ...springs.enter, layout: springs.snappy }, children: card }));
20
+ }
21
+ export const ToastItem = memo(ToastItemInner);
@@ -0,0 +1,16 @@
1
+ import { type ReactNode } from "react";
2
+ import { type ToastTone } from "./toast.styles";
3
+ export type { ToastTone };
4
+ type ToastInput = {
5
+ title: string;
6
+ description?: string;
7
+ tone?: ToastTone;
8
+ duration?: number;
9
+ };
10
+ type ToastContextValue = {
11
+ toast: (input: ToastInput) => void;
12
+ };
13
+ export declare function ToastProvider({ children }: {
14
+ children: ReactNode;
15
+ }): import("react/jsx-runtime").JSX.Element;
16
+ export declare function useToast(): ToastContextValue;
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
4
+ import { AnimatePresence } from "motion/react";
5
+ import { ToastItem } from "./toast-item";
6
+ import { toastViewportClassName } from "./toast.styles";
7
+ const DEFAULT_DURATION = 4200;
8
+ const ToastContext = createContext(null);
9
+ export function ToastProvider({ children }) {
10
+ const [items, setItems] = useState([]);
11
+ const timers = useRef(new Map());
12
+ const dismiss = useCallback((id) => {
13
+ const timer = timers.current.get(id);
14
+ if (timer) {
15
+ window.clearTimeout(timer);
16
+ timers.current.delete(id);
17
+ }
18
+ setItems((current) => current.filter((item) => item.id !== id));
19
+ }, []);
20
+ const toast = useCallback((input) => {
21
+ const id = crypto.randomUUID();
22
+ const duration = input.duration ?? DEFAULT_DURATION;
23
+ const next = {
24
+ id,
25
+ title: input.title,
26
+ tone: input.tone ?? "default",
27
+ duration,
28
+ ...(input.description ? { description: input.description } : {}),
29
+ };
30
+ setItems((current) => [...current, next]);
31
+ const timer = window.setTimeout(() => dismiss(id), duration);
32
+ timers.current.set(id, timer);
33
+ }, [dismiss]);
34
+ useEffect(() => {
35
+ const active = timers.current;
36
+ return () => {
37
+ for (const timer of active.values())
38
+ window.clearTimeout(timer);
39
+ active.clear();
40
+ };
41
+ }, []);
42
+ const value = useMemo(() => ({ toast }), [toast]);
43
+ return (_jsxs(ToastContext.Provider, { value: value, children: [children, _jsx("div", { className: toastViewportClassName(), children: _jsx(AnimatePresence, { initial: false, children: items.map((item) => (_jsx(ToastItem, { item: item, onDismiss: dismiss }, item.id))) }) })] }));
44
+ }
45
+ export function useToast() {
46
+ const value = useContext(ToastContext);
47
+ if (!value)
48
+ throw new Error("useToast must be used within ToastProvider");
49
+ return value;
50
+ }
@@ -0,0 +1,13 @@
1
+ export type ToastTone = "default" | "success" | "danger" | "warning" | "info";
2
+ export declare function toastViewportClassName(): string;
3
+ export declare function toastItemClassName(tone?: ToastTone): string;
4
+ export declare function toastBodyClassName(): string;
5
+ export declare function toastIconWellClassName(): string;
6
+ export declare function toastIconClassName(): string;
7
+ export declare function toastMetaClassName(): string;
8
+ export declare function toastTitleClassName(): string;
9
+ export declare function toastDescriptionClassName(): string;
10
+ export declare function toastDismissClassName(): string;
11
+ export declare function toastProgressTrackClassName(): string;
12
+ export declare function toastProgressBarClassName(): string;
13
+ export declare const toastToneLabel: Record<ToastTone, string>;
@@ -0,0 +1,50 @@
1
+ import { cn } from "../../utils/cn";
2
+ const toneVars = {
3
+ default: "[--toast-tone:var(--kp-foreground)] [--toast-tone-soft:color-mix(in_oklch,var(--kp-foreground)_12%,transparent)]",
4
+ success: "[--toast-tone:var(--kp-success)] [--toast-tone-soft:var(--kp-success-subtle)]",
5
+ danger: "[--toast-tone:var(--kp-danger)] [--toast-tone-soft:var(--kp-danger-subtle)]",
6
+ warning: "[--toast-tone:var(--kp-warning)] [--toast-tone-soft:var(--kp-warning-subtle)]",
7
+ info: "[--toast-tone:var(--kp-info)] [--toast-tone-soft:var(--kp-info-subtle)]",
8
+ };
9
+ export function toastViewportClassName() {
10
+ return cn("pointer-events-none fixed inset-x-0 bottom-4 z-50 flex flex-col-reverse items-stretch gap-2.5 px-4", "sm:inset-x-auto sm:end-4 sm:bottom-5 sm:w-[min(100%-2rem,22.5rem)]");
11
+ }
12
+ export function toastItemClassName(tone = "default") {
13
+ return cn("pointer-events-auto relative w-full overflow-hidden", "rounded-[var(--kp-radius-panel)] border", "border-[color-mix(in_oklch,var(--toast-tone)_28%,var(--kp-border))]",
14
+ // Opaque fallback; glass material upgrades fill/blur via data-kp-control="toast".
15
+ "bg-[color-mix(in_oklch,var(--kp-surface-raised)_88%,var(--toast-tone)_12%)]", "shadow-[inset_0_1px_0_oklch(1_0_0/14%),inset_0_0_0_1px_oklch(1_0_0/5%),var(--kp-shadow-surface)]", toneVars[tone]);
16
+ }
17
+ export function toastBodyClassName() {
18
+ return "relative flex gap-3 px-3.5 py-3.5 pe-2";
19
+ }
20
+ export function toastIconWellClassName() {
21
+ return cn("relative mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-full", "bg-[var(--toast-tone-soft)] text-[var(--toast-tone)]", "shadow-[inset_0_1px_0_oklch(1_0_0/22%),inset_0_0_0_1px_color-mix(in_oklch,var(--toast-tone)_18%,transparent)]");
22
+ }
23
+ export function toastIconClassName() {
24
+ return "size-4";
25
+ }
26
+ export function toastMetaClassName() {
27
+ return "font-mono text-[10px] uppercase tracking-[0.14em] text-[color-mix(in_oklch,var(--toast-tone)_82%,var(--kp-muted-foreground))]";
28
+ }
29
+ export function toastTitleClassName() {
30
+ return "mt-0.5 text-sm font-medium tracking-tight text-foreground text-pretty";
31
+ }
32
+ export function toastDescriptionClassName() {
33
+ return "mt-1 text-xs leading-relaxed text-muted-foreground text-pretty";
34
+ }
35
+ export function toastDismissClassName() {
36
+ return cn("inline-flex size-10 shrink-0 items-center justify-center self-start", "rounded-[var(--kp-radius-md)] text-muted-foreground", "transition-[background-color,color,transform]", "duration-[var(--kp-motion-duration)] ease-[var(--kp-motion-ease-standard)]", "hover:bg-muted/55 hover:text-foreground active:scale-[0.96]", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/45");
37
+ }
38
+ export function toastProgressTrackClassName() {
39
+ return "absolute inset-x-0 bottom-0 h-0.5 bg-[color-mix(in_oklch,var(--toast-tone)_12%,transparent)]";
40
+ }
41
+ export function toastProgressBarClassName() {
42
+ return "h-full origin-left bg-[var(--toast-tone)]";
43
+ }
44
+ export const toastToneLabel = {
45
+ default: "Notice",
46
+ success: "Success",
47
+ danger: "Error",
48
+ warning: "Warning",
49
+ info: "Info",
50
+ };
@@ -0,0 +1,2 @@
1
+ export { Tooltip, TooltipTrigger } from "./tooltip";
2
+ export type { TooltipProps, TooltipTriggerProps } from "./tooltip.types";
@@ -0,0 +1 @@
1
+ export { Tooltip, TooltipTrigger } from "./tooltip";
@@ -0,0 +1,3 @@
1
+ import type { TooltipProps, TooltipTriggerProps } from "./tooltip.types";
2
+ export declare function TooltipTrigger({ children, closeDelay, delay, ...props }: TooltipTriggerProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function Tooltip({ children, className, offset, placement, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Tooltip as AriaTooltip, TooltipTrigger as AriaTooltipTrigger, } from "react-aria-components";
4
+ import { tooltipClassName } from "./tooltip.styles";
5
+ export function TooltipTrigger({ children, closeDelay = 0, delay = 400, ...props }) {
6
+ return (_jsx(AriaTooltipTrigger, { delay: delay, closeDelay: closeDelay, ...props, children: children }));
7
+ }
8
+ export function Tooltip({ children, className, offset = 8, placement = "top", }) {
9
+ return (_jsx(AriaTooltip, { offset: offset, placement: placement, className: tooltipClassName(className), "data-kp-control": "tooltip", children: children }));
10
+ }
@@ -0,0 +1 @@
1
+ export declare function tooltipClassName(className?: string | undefined): string;
@@ -0,0 +1,6 @@
1
+ import { cn } from "../../utils/cn";
2
+ export function tooltipClassName(className) {
3
+ return cn("z-50 max-w-xs rounded-[var(--kp-radius-sm)] border px-2.5 py-1.5 text-xs font-medium", "border-[color-mix(in_oklch,var(--kp-foreground)_22%,transparent)]",
4
+ // Solid inverse chrome — never data-kp-surface (glass !important washes kill contrast).
5
+ "bg-[var(--kp-foreground)] text-[var(--kp-background)]", "shadow-[var(--kp-shadow-surface)] outline-none", "transition-[opacity,transform] duration-[var(--kp-motion-duration)] ease-[var(--kp-motion-ease-standard)]", "data-[entering]:opacity-100 data-[exiting]:opacity-0", className);
6
+ }
@@ -0,0 +1,18 @@
1
+ import type { ReactNode } from "react";
2
+ export type OverlayPlacement = "bottom" | "bottom left" | "bottom right" | "bottom start" | "bottom end" | "top" | "top left" | "top right" | "top start" | "top end" | "left" | "left top" | "left bottom" | "start" | "start top" | "start bottom" | "right" | "right top" | "right bottom" | "end" | "end top" | "end bottom";
3
+ export type TooltipProps = {
4
+ children: ReactNode;
5
+ className?: string;
6
+ /** Distance from the trigger in pixels. */
7
+ offset?: number;
8
+ placement?: OverlayPlacement;
9
+ };
10
+ export type TooltipTriggerProps = {
11
+ children: ReactNode;
12
+ delay?: number;
13
+ closeDelay?: number;
14
+ isDisabled?: boolean;
15
+ isOpen?: boolean;
16
+ defaultOpen?: boolean;
17
+ onOpenChange?: (isOpen: boolean) => void;
18
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,54 @@
1
+ export { ThemeProvider, themePacks, useTheme, type ThemeMode, type ThemeName, } from "./providers/theme-provider";
2
+ export { MaterialProvider, useMaterial, type MaterialMode, } from "./providers/material-provider";
3
+ export { RadiusProvider, radiusScales, useRadius, type RadiusScale, } from "./providers/radius-provider";
4
+ export { MotionProvider, useMotionMode, } from "./providers/motion-provider";
5
+ export { motionModes, type MotionMode } from "@hewnui/motion";
6
+ export { Button, type ButtonProps, type ButtonSize, type ButtonVariant, } from "./components/button";
7
+ export { TextField, type TextFieldProps } from "./components/text-field";
8
+ export { TextArea, type TextAreaProps, type TextAreaSize, type TextAreaVariant, } from "./components/text-area";
9
+ export { NumberField, type NumberFieldProps, type NumberFieldSize, type NumberFieldVariant, } from "./components/number-field";
10
+ export { SearchField, type SearchFieldProps, type SearchFieldSize, type SearchFieldVariant, } from "./components/search-field";
11
+ export { Radio, RadioGroup, type RadioGroupProps, type RadioProps, } from "./components/radio-group";
12
+ export { CheckboxGroup, type CheckboxGroupProps, } from "./components/checkbox-group";
13
+ export { Slider, type SliderProps } from "./components/slider";
14
+ export { Form, type FormProps } from "./components/form";
15
+ export { InputGroup, type InputGroupAffixProps, type InputGroupProps, type InputGroupSize, type InputGroupVariant, } from "./components/input-group";
16
+ export { PasswordField, type PasswordFieldProps, type PasswordFieldSize, type PasswordFieldVariant, } from "./components/password-field";
17
+ export { InputOTP, InputOtp, type InputOTPProps, type InputOtpProps, type InputOTPSize, type InputOtpSize, type InputOTPVariant, type InputOtpVariant, } from "./components/input-otp";
18
+ export { FileUpload, type FileUploadProps, } from "./components/file-upload";
19
+ export { Checkbox, type CheckboxProps } from "./components/checkbox";
20
+ export { Switch, type SwitchProps } from "./components/switch";
21
+ export { Dialog, DialogActions, DialogBody, DialogRoot, DialogTrigger, } from "./components/dialog";
22
+ export { CommandPalette, CommandPaletteEmpty, CommandPaletteGroup, CommandPaletteInput, CommandPaletteItem, CommandPaletteList, CommandPaletteLoading, CommandPaletteRecent, CommandPaletteRoot, CommandPaletteTrigger, commandPaletteHotkeyLabel, useCommandPaletteHotkey, type CommandPaletteGroupProps, type CommandPaletteInputProps, type CommandPaletteItemProps, type CommandPaletteListProps, type CommandPaletteProps, type CommandPaletteRecentProps, type CommandPaletteTriggerProps, type UseCommandPaletteHotkeyOptions, } from "./components/command-palette";
23
+ export { Select, SelectItem, SelectRoot } from "./components/select";
24
+ export { Tab, TabList, TabPanel, Tabs, TabsRoot } from "./components/tabs";
25
+ export { Stepper, StepperStep, useStepper, type StepperOrientation, type StepperProps, type StepperStepProps, type StepStatus, type UseStepperOptions, type UseStepperResult, } from "./components/stepper";
26
+ export { Table, TableBody, TableCell, TableColumn, TableEmpty, TableHeader, TableLoading, TableRoot, TableRow, } from "./components/table";
27
+ export { DatePicker } from "./components/date-picker";
28
+ export { DateRangePicker, type CalendarDate, type DateRangePreset, type DateRangePresetId, type DateRangePickerProps, type DateRangeValue, type DateValue, } from "./components/date-range-picker";
29
+ export { ColorPicker, defaultColorPresets, hexToOklchDisplay, type ColorPickerProps, type ColorPickerVariant, } from "./components/color-picker";
30
+ export { Combobox, ComboboxItem } from "./components/combobox";
31
+ export { MultiSelect, MultiSelectItem, TagField, TagFieldItem, type TagFieldChangeHandler, type TagFieldItemProps, type TagFieldProps, type TagFieldSize, type TagFieldVariant, } from "./components/tag-field";
32
+ export { Menu, MenuButton, MenuItem, MenuRoot, MenuSeparator, MenuTrigger, } from "./components/menu";
33
+ export { ToastProvider, useToast, type ToastTone, } from "./components/toast";
34
+ export { Drawer, DrawerTrigger } from "./components/drawer";
35
+ export { Tooltip, TooltipTrigger, type TooltipProps, type TooltipTriggerProps, } from "./components/tooltip";
36
+ export { Popover, PopoverBody, PopoverTitle, PopoverTrigger, type PopoverProps, type PopoverTriggerProps, } from "./components/popover";
37
+ export { Breadcrumb, Breadcrumbs, type BreadcrumbItemProps, type BreadcrumbsProps, } from "./components/breadcrumbs";
38
+ export { Pagination, getPaginationItems, type PaginationItem, type PaginationProps, type PaginationSize, } from "./components/pagination";
39
+ export { Link, type LinkProps, type LinkVariant, } from "./components/link";
40
+ export { Progress } from "./components/progress";
41
+ export { Badge, type BadgeColor, type BadgeProps, type BadgeSize, type BadgeVariant, } from "./components/badge";
42
+ export { Skeleton } from "./components/skeleton";
43
+ export { Spinner } from "./components/spinner";
44
+ export { DataTable } from "./components/data-table";
45
+ export { Sparkline, type SparklineProps } from "./components/sparkline";
46
+ export { LineChart, type LineChartProps } from "./components/line-chart";
47
+ export { AreaChart, type AreaChartProps } from "./components/area-chart";
48
+ export { BarChart, type BarChartProps } from "./components/bar-chart";
49
+ export { DonutChart, type DonutChartProps } from "./components/donut-chart";
50
+ export { Card, CardBody, CardFooter, CardHeader, type CardProps, } from "./components/card";
51
+ export { Empty } from "./components/empty";
52
+ export type { ChartDatum, ChartSeries, ChartStatus, DonutSlice, } from "./chart/types";
53
+ export type { SortDescriptor } from "react-aria-components";
54
+ export type { ColumnDef } from "@tanstack/react-table";
package/dist/index.js ADDED
@@ -0,0 +1,51 @@
1
+ export { ThemeProvider, themePacks, useTheme, } from "./providers/theme-provider";
2
+ export { MaterialProvider, useMaterial, } from "./providers/material-provider";
3
+ export { RadiusProvider, radiusScales, useRadius, } from "./providers/radius-provider";
4
+ export { MotionProvider, useMotionMode, } from "./providers/motion-provider";
5
+ export { motionModes } from "@hewnui/motion";
6
+ export { Button, } from "./components/button";
7
+ export { TextField } from "./components/text-field";
8
+ export { TextArea, } from "./components/text-area";
9
+ export { NumberField, } from "./components/number-field";
10
+ export { SearchField, } from "./components/search-field";
11
+ export { Radio, RadioGroup, } from "./components/radio-group";
12
+ export { CheckboxGroup, } from "./components/checkbox-group";
13
+ export { Slider } from "./components/slider";
14
+ export { Form } from "./components/form";
15
+ export { InputGroup, } from "./components/input-group";
16
+ export { PasswordField, } from "./components/password-field";
17
+ export { InputOTP, InputOtp, } from "./components/input-otp";
18
+ export { FileUpload, } from "./components/file-upload";
19
+ export { Checkbox } from "./components/checkbox";
20
+ export { Switch } from "./components/switch";
21
+ export { Dialog, DialogActions, DialogBody, DialogRoot, DialogTrigger, } from "./components/dialog";
22
+ export { CommandPalette, CommandPaletteEmpty, CommandPaletteGroup, CommandPaletteInput, CommandPaletteItem, CommandPaletteList, CommandPaletteLoading, CommandPaletteRecent, CommandPaletteRoot, CommandPaletteTrigger, commandPaletteHotkeyLabel, useCommandPaletteHotkey, } from "./components/command-palette";
23
+ export { Select, SelectItem, SelectRoot } from "./components/select";
24
+ export { Tab, TabList, TabPanel, Tabs, TabsRoot } from "./components/tabs";
25
+ export { Stepper, StepperStep, useStepper, } from "./components/stepper";
26
+ export { Table, TableBody, TableCell, TableColumn, TableEmpty, TableHeader, TableLoading, TableRoot, TableRow, } from "./components/table";
27
+ export { DatePicker } from "./components/date-picker";
28
+ export { DateRangePicker, } from "./components/date-range-picker";
29
+ export { ColorPicker, defaultColorPresets, hexToOklchDisplay, } from "./components/color-picker";
30
+ export { Combobox, ComboboxItem } from "./components/combobox";
31
+ export { MultiSelect, MultiSelectItem, TagField, TagFieldItem, } from "./components/tag-field";
32
+ export { Menu, MenuButton, MenuItem, MenuRoot, MenuSeparator, MenuTrigger, } from "./components/menu";
33
+ export { ToastProvider, useToast, } from "./components/toast";
34
+ export { Drawer, DrawerTrigger } from "./components/drawer";
35
+ export { Tooltip, TooltipTrigger, } from "./components/tooltip";
36
+ export { Popover, PopoverBody, PopoverTitle, PopoverTrigger, } from "./components/popover";
37
+ export { Breadcrumb, Breadcrumbs, } from "./components/breadcrumbs";
38
+ export { Pagination, getPaginationItems, } from "./components/pagination";
39
+ export { Link, } from "./components/link";
40
+ export { Progress } from "./components/progress";
41
+ export { Badge, } from "./components/badge";
42
+ export { Skeleton } from "./components/skeleton";
43
+ export { Spinner } from "./components/spinner";
44
+ export { DataTable } from "./components/data-table";
45
+ export { Sparkline } from "./components/sparkline";
46
+ export { LineChart } from "./components/line-chart";
47
+ export { AreaChart } from "./components/area-chart";
48
+ export { BarChart } from "./components/bar-chart";
49
+ export { DonutChart } from "./components/donut-chart";
50
+ export { Card, CardBody, CardFooter, CardHeader, } from "./components/card";
51
+ export { Empty } from "./components/empty";
@@ -0,0 +1,12 @@
1
+ import { type ReactNode } from "react";
2
+ export type MaterialMode = "solid" | "glass";
3
+ type MaterialContextValue = {
4
+ material: MaterialMode;
5
+ setMaterial: (material: MaterialMode) => void;
6
+ };
7
+ export declare function MaterialProvider({ children, defaultMaterial, }: {
8
+ children: ReactNode;
9
+ defaultMaterial?: MaterialMode;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ export declare function useMaterial(): MaterialContextValue;
12
+ export {};
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from "react";
4
+ const MaterialContext = createContext(null);
5
+ const STORAGE_KEY = "kp-material";
6
+ export function MaterialProvider({ children, defaultMaterial = "glass", }) {
7
+ const [material, setMaterialState] = useState(defaultMaterial);
8
+ useEffect(() => {
9
+ const stored = localStorage.getItem(STORAGE_KEY);
10
+ if (stored === "solid" || stored === "glass") {
11
+ setMaterialState(stored);
12
+ }
13
+ }, []);
14
+ useEffect(() => {
15
+ document.documentElement.dataset.material = material;
16
+ localStorage.setItem(STORAGE_KEY, material);
17
+ }, [material]);
18
+ const setMaterial = useCallback((next) => {
19
+ setMaterialState(next);
20
+ }, []);
21
+ const value = useMemo(() => ({ material, setMaterial }), [material, setMaterial]);
22
+ return (_jsx(MaterialContext.Provider, { value: value, children: children }));
23
+ }
24
+ export function useMaterial() {
25
+ const value = useContext(MaterialContext);
26
+ if (!value) {
27
+ throw new Error("useMaterial must be used within MaterialProvider");
28
+ }
29
+ return value;
30
+ }
@@ -0,0 +1,20 @@
1
+ import { type MotionMode } from "@hewnui/motion";
2
+ import { type ReactNode } from "react";
3
+ export type { MotionMode };
4
+ type MotionContextValue = {
5
+ /** User preference (`full` | `reduced` | `off`). */
6
+ motion: MotionMode;
7
+ /** Preference after OS reduced-motion clamp. */
8
+ effectiveMode: MotionMode;
9
+ /** True only when effective mode is `full`. */
10
+ motionEnabled: boolean;
11
+ /** OS `prefers-reduced-motion: reduce`. Always authoritative. */
12
+ reducedMotion: boolean;
13
+ setMotion: (motion: MotionMode) => void;
14
+ };
15
+ export declare function MotionProvider({ children, defaultMotion, }: {
16
+ children: ReactNode;
17
+ /** Prefer `full` | `reduced` | `off`. Legacy `"on"` maps to `"full"`. */
18
+ defaultMotion?: MotionMode | "on";
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ export declare function useMotionMode(): MotionContextValue;