@nofinite/nui 1.1.2 → 2.0.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.

Potentially problematic release.


This version of @nofinite/nui might be problematic. Click here for more details.

Files changed (739) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +61 -48
  3. package/dist/CHANGELOG.md +8 -0
  4. package/dist/LICENSE +201 -0
  5. package/dist/README.md +48 -0
  6. package/dist/components/accordion/Accordion.cjs +1 -1
  7. package/dist/components/accordion/Accordion.cjs.map +1 -1
  8. package/dist/components/accordion/Accordion.js +64 -43
  9. package/dist/components/accordion/Accordion.js.map +1 -1
  10. package/dist/components/alert/Alert.cjs +1 -1
  11. package/dist/components/alert/Alert.cjs.map +1 -1
  12. package/dist/components/alert/Alert.js +39 -25
  13. package/dist/components/alert/Alert.js.map +1 -1
  14. package/dist/components/avatar/Avatar.cjs +1 -1
  15. package/dist/components/avatar/Avatar.cjs.map +1 -1
  16. package/dist/components/avatar/Avatar.js +58 -44
  17. package/dist/components/avatar/Avatar.js.map +1 -1
  18. package/dist/components/avatar/AvatarGroup.cjs +1 -1
  19. package/dist/components/avatar/AvatarGroup.cjs.map +1 -1
  20. package/dist/components/avatar/AvatarGroup.js +34 -25
  21. package/dist/components/avatar/AvatarGroup.js.map +1 -1
  22. package/dist/components/badge/Badge.cjs +1 -1
  23. package/dist/components/badge/Badge.cjs.map +1 -1
  24. package/dist/components/badge/Badge.js +43 -68
  25. package/dist/components/badge/Badge.js.map +1 -1
  26. package/dist/components/badge/BadgeGroup.cjs +1 -1
  27. package/dist/components/badge/BadgeGroup.cjs.map +1 -1
  28. package/dist/components/badge/BadgeGroup.js +20 -10
  29. package/dist/components/badge/BadgeGroup.js.map +1 -1
  30. package/dist/components/breadcrumbs/Breadcrumbs.cjs +1 -1
  31. package/dist/components/breadcrumbs/Breadcrumbs.cjs.map +1 -1
  32. package/dist/components/breadcrumbs/Breadcrumbs.js +59 -39
  33. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
  34. package/dist/components/button/Button.cjs +1 -1
  35. package/dist/components/button/Button.cjs.map +1 -1
  36. package/dist/components/button/Button.js +52 -17
  37. package/dist/components/button/Button.js.map +1 -1
  38. package/dist/components/card/Card.cjs +1 -1
  39. package/dist/components/card/Card.cjs.map +1 -1
  40. package/dist/components/card/Card.js +44 -41
  41. package/dist/components/card/Card.js.map +1 -1
  42. package/dist/components/checkbox/Checkbox.cjs +1 -1
  43. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  44. package/dist/components/checkbox/Checkbox.js +59 -40
  45. package/dist/components/checkbox/Checkbox.js.map +1 -1
  46. package/dist/components/chip/Chip.cjs +1 -1
  47. package/dist/components/chip/Chip.cjs.map +1 -1
  48. package/dist/components/chip/Chip.js +67 -47
  49. package/dist/components/chip/Chip.js.map +1 -1
  50. package/dist/components/combobox/Combobox.cjs +1 -1
  51. package/dist/components/combobox/Combobox.cjs.map +1 -1
  52. package/dist/components/combobox/Combobox.js +123 -108
  53. package/dist/components/combobox/Combobox.js.map +1 -1
  54. package/dist/components/commandpalette/CommandPalette.cjs +1 -1
  55. package/dist/components/commandpalette/CommandPalette.cjs.map +1 -1
  56. package/dist/components/commandpalette/CommandPalette.js +96 -73
  57. package/dist/components/commandpalette/CommandPalette.js.map +1 -1
  58. package/dist/components/contextmenu/ContextMenu.cjs +1 -1
  59. package/dist/components/contextmenu/ContextMenu.cjs.map +1 -1
  60. package/dist/components/contextmenu/ContextMenu.js +79 -58
  61. package/dist/components/contextmenu/ContextMenu.js.map +1 -1
  62. package/dist/components/datagrid/DataGrid.cjs +1 -1
  63. package/dist/components/datagrid/DataGrid.cjs.map +1 -1
  64. package/dist/components/datagrid/DataGrid.js +184 -202
  65. package/dist/components/datagrid/DataGrid.js.map +1 -1
  66. package/dist/components/datepicker/DatePicker.cjs +1 -1
  67. package/dist/components/datepicker/DatePicker.cjs.map +1 -1
  68. package/dist/components/datepicker/DatePicker.js +197 -164
  69. package/dist/components/datepicker/DatePicker.js.map +1 -1
  70. package/dist/components/daterangepicker/DateRangePicker.cjs +1 -1
  71. package/dist/components/daterangepicker/DateRangePicker.cjs.map +1 -1
  72. package/dist/components/daterangepicker/DateRangePicker.js +254 -213
  73. package/dist/components/daterangepicker/DateRangePicker.js.map +1 -1
  74. package/dist/components/dialog/DialogProvider.cjs +2 -0
  75. package/dist/components/dialog/DialogProvider.cjs.map +1 -0
  76. package/dist/components/dialog/DialogProvider.js +71 -0
  77. package/dist/components/dialog/DialogProvider.js.map +1 -0
  78. package/dist/components/dialog/dialogStore.cjs +2 -0
  79. package/dist/components/dialog/dialogStore.cjs.map +1 -0
  80. package/dist/components/dialog/dialogStore.js +60 -0
  81. package/dist/components/dialog/dialogStore.js.map +1 -0
  82. package/dist/components/drawer/Drawer.cjs +1 -1
  83. package/dist/components/drawer/Drawer.cjs.map +1 -1
  84. package/dist/components/drawer/Drawer.js +69 -47
  85. package/dist/components/drawer/Drawer.js.map +1 -1
  86. package/dist/components/dropdown/Dropdown.cjs +1 -1
  87. package/dist/components/dropdown/Dropdown.cjs.map +1 -1
  88. package/dist/components/dropdown/Dropdown.js +134 -108
  89. package/dist/components/dropdown/Dropdown.js.map +1 -1
  90. package/dist/components/fileuploader/FileUploader.cjs +1 -1
  91. package/dist/components/fileuploader/FileUploader.cjs.map +1 -1
  92. package/dist/components/fileuploader/FileUploader.js +96 -61
  93. package/dist/components/fileuploader/FileUploader.js.map +1 -1
  94. package/dist/components/hovercard/HoverCard.cjs +1 -1
  95. package/dist/components/hovercard/HoverCard.cjs.map +1 -1
  96. package/dist/components/hovercard/HoverCard.js +124 -69
  97. package/dist/components/hovercard/HoverCard.js.map +1 -1
  98. package/dist/components/input/Input.cjs +1 -1
  99. package/dist/components/input/Input.cjs.map +1 -1
  100. package/dist/components/input/Input.js +62 -37
  101. package/dist/components/input/Input.js.map +1 -1
  102. package/dist/components/layout/Container.cjs +1 -1
  103. package/dist/components/layout/Container.cjs.map +1 -1
  104. package/dist/components/layout/Container.js +21 -30
  105. package/dist/components/layout/Container.js.map +1 -1
  106. package/dist/components/layout/Flex.cjs +1 -1
  107. package/dist/components/layout/Flex.cjs.map +1 -1
  108. package/dist/components/layout/Flex.js +36 -19
  109. package/dist/components/layout/Flex.js.map +1 -1
  110. package/dist/components/layout/Grid.cjs +1 -1
  111. package/dist/components/layout/Grid.cjs.map +1 -1
  112. package/dist/components/layout/Grid.js +30 -18
  113. package/dist/components/layout/Grid.js.map +1 -1
  114. package/dist/components/link/Link.cjs +2 -0
  115. package/dist/components/link/Link.cjs.map +1 -0
  116. package/dist/components/link/Link.js +41 -0
  117. package/dist/components/link/Link.js.map +1 -0
  118. package/dist/components/megamenu/MegaMenu.cjs +1 -1
  119. package/dist/components/megamenu/MegaMenu.cjs.map +1 -1
  120. package/dist/components/megamenu/MegaMenu.js +107 -38
  121. package/dist/components/megamenu/MegaMenu.js.map +1 -1
  122. package/dist/components/modal/Modal.cjs +1 -1
  123. package/dist/components/modal/Modal.cjs.map +1 -1
  124. package/dist/components/modal/Modal.js +91 -83
  125. package/dist/components/modal/Modal.js.map +1 -1
  126. package/dist/components/multiselect/MultiSelect.cjs +2 -0
  127. package/dist/components/multiselect/MultiSelect.cjs.map +1 -0
  128. package/dist/components/multiselect/MultiSelect.js +176 -0
  129. package/dist/components/multiselect/MultiSelect.js.map +1 -0
  130. package/dist/components/nuiprovider/NUIProvider.cjs +2 -0
  131. package/dist/components/nuiprovider/NUIProvider.cjs.map +1 -0
  132. package/dist/components/nuiprovider/NUIProvider.js +36 -0
  133. package/dist/components/nuiprovider/NUIProvider.js.map +1 -0
  134. package/dist/components/pagination/Pagination.cjs +1 -1
  135. package/dist/components/pagination/Pagination.cjs.map +1 -1
  136. package/dist/components/pagination/Pagination.js +74 -41
  137. package/dist/components/pagination/Pagination.js.map +1 -1
  138. package/dist/components/popover/Popover.cjs +1 -1
  139. package/dist/components/popover/Popover.cjs.map +1 -1
  140. package/dist/components/popover/Popover.js +99 -100
  141. package/dist/components/popover/Popover.js.map +1 -1
  142. package/dist/components/progress/Progress.cjs +1 -1
  143. package/dist/components/progress/Progress.cjs.map +1 -1
  144. package/dist/components/progress/Progress.js +44 -22
  145. package/dist/components/progress/Progress.js.map +1 -1
  146. package/dist/components/radiogroup/RadioGroup.cjs +1 -1
  147. package/dist/components/radiogroup/RadioGroup.cjs.map +1 -1
  148. package/dist/components/radiogroup/RadioGroup.js +69 -74
  149. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  150. package/dist/components/rating/Rating.cjs +1 -1
  151. package/dist/components/rating/Rating.cjs.map +1 -1
  152. package/dist/components/rating/Rating.js +72 -33
  153. package/dist/components/rating/Rating.js.map +1 -1
  154. package/dist/components/resizable/Resizable.cjs +2 -0
  155. package/dist/components/resizable/Resizable.cjs.map +1 -0
  156. package/dist/components/resizable/Resizable.js +134 -0
  157. package/dist/components/resizable/Resizable.js.map +1 -0
  158. package/dist/components/select/Select.cjs +1 -1
  159. package/dist/components/select/Select.cjs.map +1 -1
  160. package/dist/components/select/Select.js +114 -113
  161. package/dist/components/select/Select.js.map +1 -1
  162. package/dist/components/skeleton/Skeleton.cjs +1 -1
  163. package/dist/components/skeleton/Skeleton.cjs.map +1 -1
  164. package/dist/components/skeleton/Skeleton.js +90 -67
  165. package/dist/components/skeleton/Skeleton.js.map +1 -1
  166. package/dist/components/slider/Slider.cjs +1 -1
  167. package/dist/components/slider/Slider.cjs.map +1 -1
  168. package/dist/components/slider/Slider.js +85 -82
  169. package/dist/components/slider/Slider.js.map +1 -1
  170. package/dist/components/spinner/Spinner.cjs +1 -1
  171. package/dist/components/spinner/Spinner.cjs.map +1 -1
  172. package/dist/components/spinner/Spinner.js +60 -17
  173. package/dist/components/spinner/Spinner.js.map +1 -1
  174. package/dist/components/stepper/Stepper.cjs +1 -5
  175. package/dist/components/stepper/Stepper.cjs.map +1 -1
  176. package/dist/components/stepper/Stepper.js +65 -39
  177. package/dist/components/stepper/Stepper.js.map +1 -1
  178. package/dist/components/switch/Switch.cjs +1 -1
  179. package/dist/components/switch/Switch.cjs.map +1 -1
  180. package/dist/components/switch/Switch.js +89 -62
  181. package/dist/components/switch/Switch.js.map +1 -1
  182. package/dist/components/table/Table.cjs +1 -1
  183. package/dist/components/table/Table.cjs.map +1 -1
  184. package/dist/components/table/Table.js +62 -35
  185. package/dist/components/table/Table.js.map +1 -1
  186. package/dist/components/tabs/Tabs.cjs +1 -1
  187. package/dist/components/tabs/Tabs.cjs.map +1 -1
  188. package/dist/components/tabs/Tabs.js +110 -50
  189. package/dist/components/tabs/Tabs.js.map +1 -1
  190. package/dist/components/textarea/Textarea.cjs +1 -1
  191. package/dist/components/textarea/Textarea.cjs.map +1 -1
  192. package/dist/components/textarea/Textarea.js +63 -58
  193. package/dist/components/textarea/Textarea.js.map +1 -1
  194. package/dist/components/timepicker/TimePicker.cjs +2 -0
  195. package/dist/components/timepicker/TimePicker.cjs.map +1 -0
  196. package/dist/components/timepicker/TimePicker.js +159 -0
  197. package/dist/components/timepicker/TimePicker.js.map +1 -0
  198. package/dist/components/timerangepicker/TimeRangePicker.cjs +2 -0
  199. package/dist/components/timerangepicker/TimeRangePicker.cjs.map +1 -0
  200. package/dist/components/timerangepicker/TimeRangePicker.js +208 -0
  201. package/dist/components/timerangepicker/TimeRangePicker.js.map +1 -0
  202. package/dist/components/toast/Toast.cjs +1 -1
  203. package/dist/components/toast/Toast.cjs.map +1 -1
  204. package/dist/components/toast/Toast.js +91 -38
  205. package/dist/components/toast/Toast.js.map +1 -1
  206. package/dist/components/tooltip/Tooltip.cjs +1 -1
  207. package/dist/components/tooltip/Tooltip.cjs.map +1 -1
  208. package/dist/components/tooltip/Tooltip.js +72 -56
  209. package/dist/components/tooltip/Tooltip.js.map +1 -1
  210. package/dist/components/treeview/TreeView.cjs +1 -1
  211. package/dist/components/treeview/TreeView.cjs.map +1 -1
  212. package/dist/components/treeview/TreeView.js +120 -90
  213. package/dist/components/treeview/TreeView.js.map +1 -1
  214. package/dist/components/virtuallist/VirtualList.cjs +1 -1
  215. package/dist/components/virtuallist/VirtualList.cjs.map +1 -1
  216. package/dist/components/virtuallist/VirtualList.js +52 -34
  217. package/dist/components/virtuallist/VirtualList.js.map +1 -1
  218. package/dist/dist/components/accordion/Accordion.cjs +2 -0
  219. package/dist/dist/components/accordion/Accordion.cjs.map +1 -0
  220. package/dist/dist/components/accordion/Accordion.js +51 -0
  221. package/dist/dist/components/accordion/Accordion.js.map +1 -0
  222. package/dist/dist/components/alert/Alert.cjs +2 -0
  223. package/dist/dist/components/alert/Alert.cjs.map +1 -0
  224. package/dist/dist/components/alert/Alert.js +32 -0
  225. package/dist/dist/components/alert/Alert.js.map +1 -0
  226. package/dist/dist/components/avatar/Avatar.cjs +2 -0
  227. package/dist/dist/components/avatar/Avatar.cjs.map +1 -0
  228. package/dist/dist/components/avatar/Avatar.js +51 -0
  229. package/dist/dist/components/avatar/Avatar.js.map +1 -0
  230. package/dist/dist/components/avatar/AvatarGroup.cjs +2 -0
  231. package/dist/dist/components/avatar/AvatarGroup.cjs.map +1 -0
  232. package/dist/dist/components/avatar/AvatarGroup.js +32 -0
  233. package/dist/dist/components/avatar/AvatarGroup.js.map +1 -0
  234. package/dist/dist/components/badge/Badge.cjs +2 -0
  235. package/dist/dist/components/badge/Badge.cjs.map +1 -0
  236. package/dist/dist/components/badge/Badge.js +81 -0
  237. package/dist/dist/components/badge/Badge.js.map +1 -0
  238. package/dist/dist/components/badge/BadgeGroup.cjs +2 -0
  239. package/dist/dist/components/badge/BadgeGroup.cjs.map +1 -0
  240. package/dist/dist/components/badge/BadgeGroup.js +17 -0
  241. package/dist/dist/components/badge/BadgeGroup.js.map +1 -0
  242. package/dist/dist/components/breadcrumbs/Breadcrumbs.cjs +2 -0
  243. package/dist/dist/components/breadcrumbs/Breadcrumbs.cjs.map +1 -0
  244. package/dist/dist/components/breadcrumbs/Breadcrumbs.js +46 -0
  245. package/dist/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  246. package/dist/dist/components/button/Button.cjs +2 -0
  247. package/dist/dist/components/button/Button.cjs.map +1 -0
  248. package/dist/dist/components/button/Button.js +21 -0
  249. package/dist/dist/components/button/Button.js.map +1 -0
  250. package/dist/dist/components/card/Card.cjs +2 -0
  251. package/dist/dist/components/card/Card.cjs.map +1 -0
  252. package/dist/dist/components/card/Card.js +50 -0
  253. package/dist/dist/components/card/Card.js.map +1 -0
  254. package/dist/dist/components/checkbox/Checkbox.cjs +2 -0
  255. package/dist/dist/components/checkbox/Checkbox.cjs.map +1 -0
  256. package/dist/dist/components/checkbox/Checkbox.js +46 -0
  257. package/dist/dist/components/checkbox/Checkbox.js.map +1 -0
  258. package/dist/dist/components/chip/Chip.cjs +2 -0
  259. package/dist/dist/components/chip/Chip.cjs.map +1 -0
  260. package/dist/dist/components/chip/Chip.js +51 -0
  261. package/dist/dist/components/chip/Chip.js.map +1 -0
  262. package/dist/dist/components/combobox/Combobox.cjs +2 -0
  263. package/dist/dist/components/combobox/Combobox.cjs.map +1 -0
  264. package/dist/dist/components/combobox/Combobox.js +114 -0
  265. package/dist/dist/components/combobox/Combobox.js.map +1 -0
  266. package/dist/dist/components/commandpalette/CommandPalette.cjs +2 -0
  267. package/dist/dist/components/commandpalette/CommandPalette.cjs.map +1 -0
  268. package/dist/dist/components/commandpalette/CommandPalette.js +111 -0
  269. package/dist/dist/components/commandpalette/CommandPalette.js.map +1 -0
  270. package/dist/dist/components/contextmenu/ContextMenu.cjs +2 -0
  271. package/dist/dist/components/contextmenu/ContextMenu.cjs.map +1 -0
  272. package/dist/dist/components/contextmenu/ContextMenu.js +104 -0
  273. package/dist/dist/components/contextmenu/ContextMenu.js.map +1 -0
  274. package/dist/dist/components/datagrid/DataGrid.cjs +2 -0
  275. package/dist/dist/components/datagrid/DataGrid.cjs.map +1 -0
  276. package/dist/dist/components/datagrid/DataGrid.js +227 -0
  277. package/dist/dist/components/datagrid/DataGrid.js.map +1 -0
  278. package/dist/dist/components/datepicker/DatePicker.cjs +2 -0
  279. package/dist/dist/components/datepicker/DatePicker.cjs.map +1 -0
  280. package/dist/dist/components/datepicker/DatePicker.js +265 -0
  281. package/dist/dist/components/datepicker/DatePicker.js.map +1 -0
  282. package/dist/dist/components/daterangepicker/DateRangePicker.cjs +2 -0
  283. package/dist/dist/components/daterangepicker/DateRangePicker.cjs.map +1 -0
  284. package/dist/dist/components/daterangepicker/DateRangePicker.js +322 -0
  285. package/dist/dist/components/daterangepicker/DateRangePicker.js.map +1 -0
  286. package/dist/dist/components/drawer/Drawer.cjs +2 -0
  287. package/dist/dist/components/drawer/Drawer.cjs.map +1 -0
  288. package/dist/dist/components/drawer/Drawer.js +57 -0
  289. package/dist/dist/components/drawer/Drawer.js.map +1 -0
  290. package/dist/dist/components/dropdown/Dropdown.cjs +2 -0
  291. package/dist/dist/components/dropdown/Dropdown.cjs.map +1 -0
  292. package/dist/dist/components/dropdown/Dropdown.js +115 -0
  293. package/dist/dist/components/dropdown/Dropdown.js.map +1 -0
  294. package/dist/dist/components/fileuploader/FileUploader.cjs +2 -0
  295. package/dist/dist/components/fileuploader/FileUploader.cjs.map +1 -0
  296. package/dist/dist/components/fileuploader/FileUploader.js +83 -0
  297. package/dist/dist/components/fileuploader/FileUploader.js.map +1 -0
  298. package/dist/dist/components/hovercard/HoverCard.cjs +2 -0
  299. package/dist/dist/components/hovercard/HoverCard.cjs.map +1 -0
  300. package/dist/dist/components/hovercard/HoverCard.js +78 -0
  301. package/dist/dist/components/hovercard/HoverCard.js.map +1 -0
  302. package/dist/dist/components/input/Input.cjs +2 -0
  303. package/dist/dist/components/input/Input.cjs.map +1 -0
  304. package/dist/dist/components/input/Input.js +41 -0
  305. package/dist/dist/components/input/Input.js.map +1 -0
  306. package/dist/dist/components/layout/Container.cjs +2 -0
  307. package/dist/dist/components/layout/Container.cjs.map +1 -0
  308. package/dist/dist/components/layout/Container.js +33 -0
  309. package/dist/dist/components/layout/Container.js.map +1 -0
  310. package/dist/dist/components/layout/Flex.cjs +2 -0
  311. package/dist/dist/components/layout/Flex.cjs.map +1 -0
  312. package/dist/dist/components/layout/Flex.js +26 -0
  313. package/dist/dist/components/layout/Flex.js.map +1 -0
  314. package/dist/dist/components/layout/Grid.cjs +2 -0
  315. package/dist/dist/components/layout/Grid.cjs.map +1 -0
  316. package/dist/dist/components/layout/Grid.js +21 -0
  317. package/dist/dist/components/layout/Grid.js.map +1 -0
  318. package/dist/dist/components/layout/HStack.cjs.map +1 -0
  319. package/dist/dist/components/layout/HStack.js.map +1 -0
  320. package/dist/dist/components/layout/Stack.cjs.map +1 -0
  321. package/dist/dist/components/layout/Stack.js.map +1 -0
  322. package/dist/dist/components/megamenu/MegaMenu.cjs +2 -0
  323. package/dist/dist/components/megamenu/MegaMenu.cjs.map +1 -0
  324. package/dist/dist/components/megamenu/MegaMenu.js +43 -0
  325. package/dist/dist/components/megamenu/MegaMenu.js.map +1 -0
  326. package/dist/dist/components/modal/Modal.cjs +2 -0
  327. package/dist/dist/components/modal/Modal.cjs.map +1 -0
  328. package/dist/dist/components/modal/Modal.js +91 -0
  329. package/dist/dist/components/modal/Modal.js.map +1 -0
  330. package/dist/dist/components/pagination/Pagination.cjs +2 -0
  331. package/dist/dist/components/pagination/Pagination.cjs.map +1 -0
  332. package/dist/dist/components/pagination/Pagination.js +62 -0
  333. package/dist/dist/components/pagination/Pagination.js.map +1 -0
  334. package/dist/dist/components/popover/Popover.cjs +2 -0
  335. package/dist/dist/components/popover/Popover.cjs.map +1 -0
  336. package/dist/dist/components/popover/Popover.js +123 -0
  337. package/dist/dist/components/popover/Popover.js.map +1 -0
  338. package/dist/dist/components/progress/Progress.cjs +2 -0
  339. package/dist/dist/components/progress/Progress.cjs.map +1 -0
  340. package/dist/dist/components/progress/Progress.js +33 -0
  341. package/dist/dist/components/progress/Progress.js.map +1 -0
  342. package/dist/dist/components/radiogroup/RadioGroup.cjs +2 -0
  343. package/dist/dist/components/radiogroup/RadioGroup.cjs.map +1 -0
  344. package/dist/dist/components/radiogroup/RadioGroup.js +79 -0
  345. package/dist/dist/components/radiogroup/RadioGroup.js.map +1 -0
  346. package/dist/dist/components/rating/Rating.cjs +2 -0
  347. package/dist/dist/components/rating/Rating.cjs.map +1 -0
  348. package/dist/dist/components/rating/Rating.js +49 -0
  349. package/dist/dist/components/rating/Rating.js.map +1 -0
  350. package/dist/dist/components/skeleton/Skeleton.cjs +2 -0
  351. package/dist/dist/components/skeleton/Skeleton.cjs.map +1 -0
  352. package/dist/dist/components/skeleton/Skeleton.js +86 -0
  353. package/dist/dist/components/skeleton/Skeleton.js.map +1 -0
  354. package/dist/dist/components/slider/Slider.cjs +2 -0
  355. package/dist/dist/components/slider/Slider.cjs.map +1 -0
  356. package/dist/dist/components/slider/Slider.js +116 -0
  357. package/dist/dist/components/slider/Slider.js.map +1 -0
  358. package/dist/dist/components/spinner/Spinner.cjs +2 -0
  359. package/dist/dist/components/spinner/Spinner.cjs.map +1 -0
  360. package/dist/dist/components/spinner/Spinner.js +21 -0
  361. package/dist/dist/components/spinner/Spinner.js.map +1 -0
  362. package/dist/dist/components/stepper/Stepper.cjs +6 -0
  363. package/dist/dist/components/stepper/Stepper.cjs.map +1 -0
  364. package/dist/dist/components/stepper/Stepper.js +43 -0
  365. package/dist/dist/components/stepper/Stepper.js.map +1 -0
  366. package/dist/dist/components/switch/Switch.cjs +2 -0
  367. package/dist/dist/components/switch/Switch.cjs.map +1 -0
  368. package/dist/dist/components/switch/Switch.js +67 -0
  369. package/dist/dist/components/switch/Switch.js.map +1 -0
  370. package/dist/dist/components/table/Table.cjs +2 -0
  371. package/dist/dist/components/table/Table.cjs.map +1 -0
  372. package/dist/dist/components/table/Table.js +46 -0
  373. package/dist/dist/components/table/Table.js.map +1 -0
  374. package/dist/dist/components/tabs/Tabs.cjs +2 -0
  375. package/dist/dist/components/tabs/Tabs.cjs.map +1 -0
  376. package/dist/dist/components/tabs/Tabs.js +56 -0
  377. package/dist/dist/components/tabs/Tabs.js.map +1 -0
  378. package/dist/dist/components/textarea/Textarea.cjs +2 -0
  379. package/dist/dist/components/textarea/Textarea.cjs.map +1 -0
  380. package/dist/dist/components/textarea/Textarea.js +75 -0
  381. package/dist/dist/components/textarea/Textarea.js.map +1 -0
  382. package/dist/dist/components/toast/Toast.cjs +2 -0
  383. package/dist/dist/components/toast/Toast.cjs.map +1 -0
  384. package/dist/dist/components/toast/Toast.js +52 -0
  385. package/dist/dist/components/toast/Toast.js.map +1 -0
  386. package/dist/dist/components/tooltip/Tooltip.cjs +2 -0
  387. package/dist/dist/components/tooltip/Tooltip.cjs.map +1 -0
  388. package/dist/dist/components/tooltip/Tooltip.js +73 -0
  389. package/dist/dist/components/tooltip/Tooltip.js.map +1 -0
  390. package/dist/dist/components/treeview/TreeView.cjs +2 -0
  391. package/dist/dist/components/treeview/TreeView.cjs.map +1 -0
  392. package/dist/dist/components/treeview/TreeView.js +98 -0
  393. package/dist/dist/components/treeview/TreeView.js.map +1 -0
  394. package/dist/dist/components/virtuallist/VirtualList.cjs +2 -0
  395. package/dist/dist/components/virtuallist/VirtualList.cjs.map +1 -0
  396. package/dist/dist/components/virtuallist/VirtualList.js +58 -0
  397. package/dist/dist/components/virtuallist/VirtualList.js.map +1 -0
  398. package/dist/dist/index.cjs +2 -0
  399. package/dist/dist/index.cjs.map +1 -0
  400. package/dist/dist/index.js +109 -0
  401. package/dist/dist/index.js.map +1 -0
  402. package/dist/dist/styles/index.css +1 -0
  403. package/dist/dist/theme/NUIProvider.cjs.map +1 -0
  404. package/dist/dist/theme/NUIProvider.js.map +1 -0
  405. package/dist/dist/theme/useTheme.cjs.map +1 -0
  406. package/dist/dist/theme/useTheme.js.map +1 -0
  407. package/dist/dist/types/components/accordion/Accordion.d.ts +18 -0
  408. package/dist/dist/types/components/accordion/Accordion.d.ts.map +1 -0
  409. package/dist/dist/types/components/alert/Alert.d.ts +13 -0
  410. package/dist/dist/types/components/alert/Alert.d.ts.map +1 -0
  411. package/dist/dist/types/components/avatar/Avatar.d.ts +18 -0
  412. package/dist/dist/types/components/avatar/Avatar.d.ts.map +1 -0
  413. package/dist/dist/types/components/avatar/AvatarGroup.d.ts +10 -0
  414. package/dist/dist/types/components/avatar/AvatarGroup.d.ts.map +1 -0
  415. package/dist/dist/types/components/badge/Badge.d.ts +22 -0
  416. package/dist/dist/types/components/badge/Badge.d.ts.map +1 -0
  417. package/dist/dist/types/components/badge/BadgeGroup.d.ts +9 -0
  418. package/dist/dist/types/components/badge/BadgeGroup.d.ts.map +1 -0
  419. package/dist/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +15 -0
  420. package/dist/dist/types/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  421. package/dist/dist/types/components/button/Button.d.ts +15 -0
  422. package/dist/dist/types/components/button/Button.d.ts.map +1 -0
  423. package/dist/dist/types/components/card/Card.d.ts +27 -0
  424. package/dist/dist/types/components/card/Card.d.ts.map +1 -0
  425. package/dist/dist/types/components/checkbox/Checkbox.d.ts +15 -0
  426. package/dist/dist/types/components/checkbox/Checkbox.d.ts.map +1 -0
  427. package/dist/dist/types/components/chip/Chip.d.ts +21 -0
  428. package/dist/dist/types/components/chip/Chip.d.ts.map +1 -0
  429. package/dist/dist/types/components/combobox/Combobox.d.ts +24 -0
  430. package/dist/dist/types/components/combobox/Combobox.d.ts.map +1 -0
  431. package/dist/dist/types/components/commandpalette/CommandPalette.d.ts +21 -0
  432. package/dist/dist/types/components/commandpalette/CommandPalette.d.ts.map +1 -0
  433. package/dist/dist/types/components/contextmenu/ContextMenu.d.ts +17 -0
  434. package/dist/dist/types/components/contextmenu/ContextMenu.d.ts.map +1 -0
  435. package/dist/dist/types/components/datagrid/DataGrid.d.ts +28 -0
  436. package/dist/dist/types/components/datagrid/DataGrid.d.ts.map +1 -0
  437. package/dist/dist/types/components/datepicker/DatePicker.d.ts +14 -0
  438. package/dist/dist/types/components/datepicker/DatePicker.d.ts.map +1 -0
  439. package/dist/dist/types/components/daterangepicker/DateRangePicker.d.ts +19 -0
  440. package/dist/dist/types/components/daterangepicker/DateRangePicker.d.ts.map +1 -0
  441. package/dist/dist/types/components/drawer/Drawer.d.ts +12 -0
  442. package/dist/dist/types/components/drawer/Drawer.d.ts.map +1 -0
  443. package/dist/dist/types/components/dropdown/Dropdown.d.ts +18 -0
  444. package/dist/dist/types/components/dropdown/Dropdown.d.ts.map +1 -0
  445. package/dist/dist/types/components/fileuploader/FileUploader.d.ts +9 -0
  446. package/dist/dist/types/components/fileuploader/FileUploader.d.ts.map +1 -0
  447. package/dist/dist/types/components/hovercard/HoverCard.d.ts +10 -0
  448. package/dist/dist/types/components/hovercard/HoverCard.d.ts.map +1 -0
  449. package/dist/dist/types/components/input/Input.d.ts +15 -0
  450. package/dist/dist/types/components/input/Input.d.ts.map +1 -0
  451. package/dist/dist/types/components/layout/Container.d.ts +8 -0
  452. package/dist/dist/types/components/layout/Container.d.ts.map +1 -0
  453. package/dist/dist/types/components/layout/Flex.d.ts +14 -0
  454. package/dist/dist/types/components/layout/Flex.d.ts.map +1 -0
  455. package/dist/dist/types/components/layout/Grid.d.ts +10 -0
  456. package/dist/dist/types/components/layout/Grid.d.ts.map +1 -0
  457. package/dist/dist/types/components/layout/HStack.d.ts.map +1 -0
  458. package/dist/dist/types/components/layout/Stack.d.ts.map +1 -0
  459. package/dist/dist/types/components/megamenu/MegaMenu.d.ts +12 -0
  460. package/dist/dist/types/components/megamenu/MegaMenu.d.ts.map +1 -0
  461. package/dist/dist/types/components/modal/Modal.d.ts +16 -0
  462. package/dist/dist/types/components/modal/Modal.d.ts.map +1 -0
  463. package/dist/dist/types/components/pagination/Pagination.d.ts +9 -0
  464. package/dist/dist/types/components/pagination/Pagination.d.ts.map +1 -0
  465. package/dist/dist/types/components/popover/Popover.d.ts +21 -0
  466. package/dist/dist/types/components/popover/Popover.d.ts.map +1 -0
  467. package/dist/dist/types/components/progress/Progress.d.ts +13 -0
  468. package/dist/dist/types/components/progress/Progress.d.ts.map +1 -0
  469. package/dist/dist/types/components/radiogroup/RadioGroup.d.ts +18 -0
  470. package/dist/dist/types/components/radiogroup/RadioGroup.d.ts.map +1 -0
  471. package/dist/dist/types/components/rating/Rating.d.ts +19 -0
  472. package/dist/dist/types/components/rating/Rating.d.ts.map +1 -0
  473. package/dist/dist/types/components/select/Select.d.ts +20 -0
  474. package/dist/dist/types/components/select/Select.d.ts.map +1 -0
  475. package/dist/dist/types/components/skeleton/Skeleton.d.ts +44 -0
  476. package/dist/dist/types/components/skeleton/Skeleton.d.ts.map +1 -0
  477. package/dist/dist/types/components/slider/Slider.d.ts +13 -0
  478. package/dist/dist/types/components/slider/Slider.d.ts.map +1 -0
  479. package/dist/dist/types/components/spinner/Spinner.d.ts +7 -0
  480. package/dist/dist/types/components/spinner/Spinner.d.ts.map +1 -0
  481. package/dist/dist/types/components/stepper/Stepper.d.ts +12 -0
  482. package/dist/dist/types/components/stepper/Stepper.d.ts.map +1 -0
  483. package/dist/dist/types/components/switch/Switch.d.ts +15 -0
  484. package/dist/dist/types/components/switch/Switch.d.ts.map +1 -0
  485. package/dist/dist/types/components/table/Table.d.ts +14 -0
  486. package/dist/dist/types/components/table/Table.d.ts.map +1 -0
  487. package/dist/dist/types/components/tabs/Tabs.d.ts +14 -0
  488. package/dist/dist/types/components/tabs/Tabs.d.ts.map +1 -0
  489. package/dist/dist/types/components/textarea/Textarea.d.ts +14 -0
  490. package/dist/dist/types/components/textarea/Textarea.d.ts.map +1 -0
  491. package/dist/dist/types/components/toast/Toast.d.ts +16 -0
  492. package/dist/dist/types/components/toast/Toast.d.ts.map +1 -0
  493. package/dist/dist/types/components/tooltip/Tooltip.d.ts +10 -0
  494. package/dist/dist/types/components/tooltip/Tooltip.d.ts.map +1 -0
  495. package/dist/dist/types/components/treeview/TreeView.d.ts +16 -0
  496. package/dist/dist/types/components/treeview/TreeView.d.ts.map +1 -0
  497. package/dist/dist/types/components/virtuallist/VirtualList.d.ts +23 -0
  498. package/dist/dist/types/components/virtuallist/VirtualList.d.ts.map +1 -0
  499. package/dist/dist/types/index.d.ts +50 -0
  500. package/dist/dist/types/index.d.ts.map +1 -0
  501. package/dist/dist/types/theme/NUIProvider.d.ts.map +1 -0
  502. package/dist/dist/types/theme/useTheme.d.ts.map +1 -0
  503. package/dist/dist/types/utils/generateid/generateId.d.ts +2 -0
  504. package/dist/dist/types/utils/generateid/generateId.d.ts.map +1 -0
  505. package/dist/dist/types/utils/index.d.ts +9 -0
  506. package/dist/dist/types/utils/index.d.ts.map +1 -0
  507. package/dist/dist/types/utils/inertmanager/inertManager.d.ts +13 -0
  508. package/dist/dist/types/utils/inertmanager/inertManager.d.ts.map +1 -0
  509. package/dist/dist/types/utils/keyboardnav/keyboardNav.d.ts +11 -0
  510. package/dist/dist/types/utils/keyboardnav/keyboardNav.d.ts.map +1 -0
  511. package/dist/dist/types/utils/onclickoutside/onClickOutside.d.ts +3 -0
  512. package/dist/dist/types/utils/onclickoutside/onClickOutside.d.ts.map +1 -0
  513. package/dist/dist/types/utils/portal/portal.d.ts +4 -0
  514. package/dist/dist/types/utils/portal/portal.d.ts.map +1 -0
  515. package/dist/dist/types/utils/restorefocus/restoreFocus.d.ts +8 -0
  516. package/dist/dist/types/utils/restorefocus/restoreFocus.d.ts.map +1 -0
  517. package/dist/dist/types/utils/scrolllock/scrollLock.d.ts +11 -0
  518. package/dist/dist/types/utils/scrolllock/scrollLock.d.ts.map +1 -0
  519. package/dist/dist/types/utils/trapfocus/trapFocus.d.ts +8 -0
  520. package/dist/dist/types/utils/trapfocus/trapFocus.d.ts.map +1 -0
  521. package/dist/dist/utils/generateid/generateId.cjs.map +1 -0
  522. package/dist/dist/utils/generateid/generateId.js.map +1 -0
  523. package/dist/dist/utils/inertmanager/inertManager.cjs +2 -0
  524. package/dist/dist/utils/inertmanager/inertManager.cjs.map +1 -0
  525. package/dist/dist/utils/inertmanager/inertManager.js +18 -0
  526. package/dist/dist/utils/inertmanager/inertManager.js.map +1 -0
  527. package/dist/dist/utils/keyboardnav/keyboardNav.cjs.map +1 -0
  528. package/dist/dist/utils/keyboardnav/keyboardNav.js.map +1 -0
  529. package/dist/dist/utils/onclickoutside/onClickOutside.cjs +2 -0
  530. package/dist/dist/utils/onclickoutside/onClickOutside.cjs.map +1 -0
  531. package/dist/dist/utils/onclickoutside/onClickOutside.js +11 -0
  532. package/dist/dist/utils/onclickoutside/onClickOutside.js.map +1 -0
  533. package/dist/dist/utils/portal/portal.cjs +2 -0
  534. package/dist/dist/utils/portal/portal.cjs.map +1 -0
  535. package/dist/dist/utils/portal/portal.js +8 -0
  536. package/dist/dist/utils/portal/portal.js.map +1 -0
  537. package/dist/dist/utils/restorefocus/restoreFocus.cjs +2 -0
  538. package/dist/dist/utils/restorefocus/restoreFocus.cjs.map +1 -0
  539. package/dist/dist/utils/restorefocus/restoreFocus.js +7 -0
  540. package/dist/dist/utils/restorefocus/restoreFocus.js.map +1 -0
  541. package/dist/dist/utils/scrolllock/scrollLock.cjs +2 -0
  542. package/dist/dist/utils/scrolllock/scrollLock.cjs.map +1 -0
  543. package/dist/dist/utils/scrolllock/scrollLock.js +12 -0
  544. package/dist/dist/utils/scrolllock/scrollLock.js.map +1 -0
  545. package/dist/dist/utils/trapfocus/trapFocus.cjs +3 -0
  546. package/dist/dist/utils/trapfocus/trapFocus.cjs.map +1 -0
  547. package/dist/dist/utils/trapfocus/trapFocus.js +14 -0
  548. package/dist/dist/utils/trapfocus/trapFocus.js.map +1 -0
  549. package/dist/index.cjs +1 -1
  550. package/dist/index.js +118 -107
  551. package/dist/index.js.map +1 -1
  552. package/dist/package.json +2 -2
  553. package/dist/styles/nui.css +1 -1
  554. package/dist/types/components/accordion/Accordion.d.ts +7 -3
  555. package/dist/types/components/accordion/Accordion.d.ts.map +1 -1
  556. package/dist/types/components/alert/Alert.d.ts +18 -5
  557. package/dist/types/components/alert/Alert.d.ts.map +1 -1
  558. package/dist/types/components/avatar/Avatar.d.ts +12 -8
  559. package/dist/types/components/avatar/Avatar.d.ts.map +1 -1
  560. package/dist/types/components/avatar/AvatarGroup.d.ts +11 -4
  561. package/dist/types/components/avatar/AvatarGroup.d.ts.map +1 -1
  562. package/dist/types/components/badge/Badge.d.ts +19 -11
  563. package/dist/types/components/badge/Badge.d.ts.map +1 -1
  564. package/dist/types/components/badge/BadgeGroup.d.ts +7 -4
  565. package/dist/types/components/badge/BadgeGroup.d.ts.map +1 -1
  566. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +14 -6
  567. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  568. package/dist/types/components/button/Button.d.ts +25 -10
  569. package/dist/types/components/button/Button.d.ts.map +1 -1
  570. package/dist/types/components/card/Card.d.ts +12 -21
  571. package/dist/types/components/card/Card.d.ts.map +1 -1
  572. package/dist/types/components/checkbox/Checkbox.d.ts +12 -7
  573. package/dist/types/components/checkbox/Checkbox.d.ts.map +1 -1
  574. package/dist/types/components/chip/Chip.d.ts +14 -11
  575. package/dist/types/components/chip/Chip.d.ts.map +1 -1
  576. package/dist/types/components/combobox/Combobox.d.ts +15 -4
  577. package/dist/types/components/combobox/Combobox.d.ts.map +1 -1
  578. package/dist/types/components/commandpalette/CommandPalette.d.ts +12 -3
  579. package/dist/types/components/commandpalette/CommandPalette.d.ts.map +1 -1
  580. package/dist/types/components/contextmenu/ContextMenu.d.ts +14 -6
  581. package/dist/types/components/contextmenu/ContextMenu.d.ts.map +1 -1
  582. package/dist/types/components/datagrid/DataGrid.d.ts +16 -4
  583. package/dist/types/components/datagrid/DataGrid.d.ts.map +1 -1
  584. package/dist/types/components/datepicker/DatePicker.d.ts +13 -1
  585. package/dist/types/components/datepicker/DatePicker.d.ts.map +1 -1
  586. package/dist/types/components/daterangepicker/DateRangePicker.d.ts +3 -1
  587. package/dist/types/components/daterangepicker/DateRangePicker.d.ts.map +1 -1
  588. package/dist/types/components/dialog/DialogProvider.d.ts +2 -0
  589. package/dist/types/components/dialog/DialogProvider.d.ts.map +1 -0
  590. package/dist/types/components/dialog/dialogStore.d.ts +42 -0
  591. package/dist/types/components/dialog/dialogStore.d.ts.map +1 -0
  592. package/dist/types/components/drawer/Drawer.d.ts +18 -4
  593. package/dist/types/components/drawer/Drawer.d.ts.map +1 -1
  594. package/dist/types/components/dropdown/Dropdown.d.ts +21 -16
  595. package/dist/types/components/dropdown/Dropdown.d.ts.map +1 -1
  596. package/dist/types/components/fileuploader/FileUploader.d.ts +22 -3
  597. package/dist/types/components/fileuploader/FileUploader.d.ts.map +1 -1
  598. package/dist/types/components/hovercard/HoverCard.d.ts +45 -5
  599. package/dist/types/components/hovercard/HoverCard.d.ts.map +1 -1
  600. package/dist/types/components/input/Input.d.ts +20 -10
  601. package/dist/types/components/input/Input.d.ts.map +1 -1
  602. package/dist/types/components/layout/Container.d.ts +8 -4
  603. package/dist/types/components/layout/Container.d.ts.map +1 -1
  604. package/dist/types/components/layout/Flex.d.ts +27 -10
  605. package/dist/types/components/layout/Flex.d.ts.map +1 -1
  606. package/dist/types/components/layout/Grid.d.ts +11 -5
  607. package/dist/types/components/layout/Grid.d.ts.map +1 -1
  608. package/dist/types/components/link/Link.d.ts +22 -0
  609. package/dist/types/components/link/Link.d.ts.map +1 -0
  610. package/dist/types/components/megamenu/MegaMenu.d.ts +8 -11
  611. package/dist/types/components/megamenu/MegaMenu.d.ts.map +1 -1
  612. package/dist/types/components/modal/Modal.d.ts +8 -7
  613. package/dist/types/components/modal/Modal.d.ts.map +1 -1
  614. package/dist/types/components/multiselect/MultiSelect.d.ts +33 -0
  615. package/dist/types/components/multiselect/MultiSelect.d.ts.map +1 -0
  616. package/dist/types/components/nuiprovider/NUIProvider.d.ts +29 -0
  617. package/dist/types/components/nuiprovider/NUIProvider.d.ts.map +1 -0
  618. package/dist/types/components/pagination/Pagination.d.ts +17 -3
  619. package/dist/types/components/pagination/Pagination.d.ts.map +1 -1
  620. package/dist/types/components/popover/Popover.d.ts +54 -16
  621. package/dist/types/components/popover/Popover.d.ts.map +1 -1
  622. package/dist/types/components/progress/Progress.d.ts +17 -7
  623. package/dist/types/components/progress/Progress.d.ts.map +1 -1
  624. package/dist/types/components/radiogroup/RadioGroup.d.ts +15 -10
  625. package/dist/types/components/radiogroup/RadioGroup.d.ts.map +1 -1
  626. package/dist/types/components/rating/Rating.d.ts +24 -10
  627. package/dist/types/components/rating/Rating.d.ts.map +1 -1
  628. package/dist/types/components/resizable/Resizable.d.ts +24 -0
  629. package/dist/types/components/resizable/Resizable.d.ts.map +1 -0
  630. package/dist/types/components/select/Select.d.ts +17 -8
  631. package/dist/types/components/select/Select.d.ts.map +1 -1
  632. package/dist/types/components/skeleton/Skeleton.d.ts +37 -36
  633. package/dist/types/components/skeleton/Skeleton.d.ts.map +1 -1
  634. package/dist/types/components/slider/Slider.d.ts +15 -4
  635. package/dist/types/components/slider/Slider.d.ts.map +1 -1
  636. package/dist/types/components/spinner/Spinner.d.ts +14 -4
  637. package/dist/types/components/spinner/Spinner.d.ts.map +1 -1
  638. package/dist/types/components/stepper/Stepper.d.ts +17 -3
  639. package/dist/types/components/stepper/Stepper.d.ts.map +1 -1
  640. package/dist/types/components/switch/Switch.d.ts +20 -5
  641. package/dist/types/components/switch/Switch.d.ts.map +1 -1
  642. package/dist/types/components/table/Table.d.ts +24 -4
  643. package/dist/types/components/table/Table.d.ts.map +1 -1
  644. package/dist/types/components/tabs/Tabs.d.ts +25 -12
  645. package/dist/types/components/tabs/Tabs.d.ts.map +1 -1
  646. package/dist/types/components/textarea/Textarea.d.ts +8 -5
  647. package/dist/types/components/textarea/Textarea.d.ts.map +1 -1
  648. package/dist/types/components/timepicker/TimePicker.d.ts +26 -0
  649. package/dist/types/components/timepicker/TimePicker.d.ts.map +1 -0
  650. package/dist/types/components/timerangepicker/TimeRangePicker.d.ts +32 -0
  651. package/dist/types/components/timerangepicker/TimeRangePicker.d.ts.map +1 -0
  652. package/dist/types/components/toast/Toast.d.ts +23 -7
  653. package/dist/types/components/toast/Toast.d.ts.map +1 -1
  654. package/dist/types/components/tooltip/Tooltip.d.ts +13 -2
  655. package/dist/types/components/tooltip/Tooltip.d.ts.map +1 -1
  656. package/dist/types/components/treeview/TreeView.d.ts +20 -6
  657. package/dist/types/components/treeview/TreeView.d.ts.map +1 -1
  658. package/dist/types/components/virtuallist/VirtualList.d.ts +12 -16
  659. package/dist/types/components/virtuallist/VirtualList.d.ts.map +1 -1
  660. package/dist/types/index.d.ts +8 -4
  661. package/dist/types/index.d.ts.map +1 -1
  662. package/dist/types/utils/cn/cn.d.ts +19 -0
  663. package/dist/types/utils/cn/cn.d.ts.map +1 -0
  664. package/dist/types/utils/generateid/generateId.d.ts +7 -0
  665. package/dist/types/utils/generateid/generateId.d.ts.map +1 -1
  666. package/dist/types/utils/index.d.ts +2 -0
  667. package/dist/types/utils/index.d.ts.map +1 -1
  668. package/dist/types/utils/inertmanager/inertManager.d.ts +13 -0
  669. package/dist/types/utils/inertmanager/inertManager.d.ts.map +1 -1
  670. package/dist/types/utils/keyboardnav/keyboardNav.d.ts +17 -6
  671. package/dist/types/utils/keyboardnav/keyboardNav.d.ts.map +1 -1
  672. package/dist/types/utils/onclickoutside/onClickOutside.d.ts +9 -1
  673. package/dist/types/utils/onclickoutside/onClickOutside.d.ts.map +1 -1
  674. package/dist/types/utils/portal/portal.d.ts +14 -1
  675. package/dist/types/utils/portal/portal.d.ts.map +1 -1
  676. package/dist/types/utils/restorefocus/restoreFocus.d.ts +8 -4
  677. package/dist/types/utils/restorefocus/restoreFocus.d.ts.map +1 -1
  678. package/dist/types/utils/scrolllock/scrollLock.d.ts +10 -2
  679. package/dist/types/utils/scrolllock/scrollLock.d.ts.map +1 -1
  680. package/dist/types/utils/slot/slot.d.ts +12 -0
  681. package/dist/types/utils/slot/slot.d.ts.map +1 -0
  682. package/dist/types/utils/trapfocus/trapFocus.d.ts +6 -2
  683. package/dist/types/utils/trapfocus/trapFocus.d.ts.map +1 -1
  684. package/dist/utils/cn/cn.cjs +2 -0
  685. package/dist/utils/cn/cn.cjs.map +1 -0
  686. package/dist/utils/cn/cn.js +21 -0
  687. package/dist/utils/cn/cn.js.map +1 -0
  688. package/dist/utils/inertmanager/inertManager.cjs.map +1 -1
  689. package/dist/utils/inertmanager/inertManager.js.map +1 -1
  690. package/dist/utils/onclickoutside/onClickOutside.cjs +1 -1
  691. package/dist/utils/onclickoutside/onClickOutside.cjs.map +1 -1
  692. package/dist/utils/onclickoutside/onClickOutside.js +10 -6
  693. package/dist/utils/onclickoutside/onClickOutside.js.map +1 -1
  694. package/dist/utils/portal/portal.cjs.map +1 -1
  695. package/dist/utils/portal/portal.js.map +1 -1
  696. package/dist/utils/restorefocus/restoreFocus.cjs.map +1 -1
  697. package/dist/utils/restorefocus/restoreFocus.js.map +1 -1
  698. package/dist/utils/scrolllock/scrollLock.cjs.map +1 -1
  699. package/dist/utils/scrolllock/scrollLock.js +7 -0
  700. package/dist/utils/scrolllock/scrollLock.js.map +1 -1
  701. package/dist/utils/slot/slot.cjs +2 -0
  702. package/dist/utils/slot/slot.cjs.map +1 -0
  703. package/dist/utils/slot/slot.js +57 -0
  704. package/dist/utils/slot/slot.js.map +1 -0
  705. package/dist/utils/trapfocus/trapFocus.cjs.map +1 -1
  706. package/dist/utils/trapfocus/trapFocus.js.map +1 -1
  707. package/package.json +2 -2
  708. package/dist/components/layout/HStack.cjs.map +0 -1
  709. package/dist/components/layout/HStack.js.map +0 -1
  710. package/dist/components/layout/Stack.cjs.map +0 -1
  711. package/dist/components/layout/Stack.js.map +0 -1
  712. package/dist/theme/NUIProvider.cjs.map +0 -1
  713. package/dist/theme/NUIProvider.js.map +0 -1
  714. package/dist/theme/useTheme.cjs.map +0 -1
  715. package/dist/theme/useTheme.js.map +0 -1
  716. package/dist/types/components/layout/HStack.d.ts.map +0 -1
  717. package/dist/types/components/layout/Stack.d.ts.map +0 -1
  718. package/dist/types/theme/NUIProvider.d.ts.map +0 -1
  719. package/dist/types/theme/useTheme.d.ts.map +0 -1
  720. package/dist/utils/generateid/generateId.cjs.map +0 -1
  721. package/dist/utils/generateid/generateId.js.map +0 -1
  722. package/dist/utils/keyboardnav/keyboardNav.cjs.map +0 -1
  723. package/dist/utils/keyboardnav/keyboardNav.js.map +0 -1
  724. /package/dist/{components → dist/components}/layout/HStack.cjs +0 -0
  725. /package/dist/{components → dist/components}/layout/HStack.js +0 -0
  726. /package/dist/{components → dist/components}/layout/Stack.cjs +0 -0
  727. /package/dist/{components → dist/components}/layout/Stack.js +0 -0
  728. /package/dist/{theme → dist/theme}/NUIProvider.cjs +0 -0
  729. /package/dist/{theme → dist/theme}/NUIProvider.js +0 -0
  730. /package/dist/{theme → dist/theme}/useTheme.cjs +0 -0
  731. /package/dist/{theme → dist/theme}/useTheme.js +0 -0
  732. /package/dist/{types → dist/types}/components/layout/HStack.d.ts +0 -0
  733. /package/dist/{types → dist/types}/components/layout/Stack.d.ts +0 -0
  734. /package/dist/{types → dist/types}/theme/NUIProvider.d.ts +0 -0
  735. /package/dist/{types → dist/types}/theme/useTheme.d.ts +0 -0
  736. /package/dist/{utils → dist/utils}/generateid/generateId.cjs +0 -0
  737. /package/dist/{utils → dist/utils}/generateid/generateId.js +0 -0
  738. /package/dist/{utils → dist/utils}/keyboardnav/keyboardNav.cjs +0 -0
  739. /package/dist/{utils → dist/utils}/keyboardnav/keyboardNav.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.js","sources":["../../../../src/components/rating/Rating.tsx"],"sourcesContent":["/**\r\n * Rating.tsx — FINAL VERSION\r\n * ---------------------------\r\n * Features:\r\n * - Click to select\r\n * - Hover preview\r\n * - Keyboard navigation\r\n * - Theme-aware\r\n * - Accessible\r\n */\r\n\r\nimport React, { useState } from 'react';\r\nimport './Rating.css';\r\n\r\nexport interface RatingProps {\r\n /** Current value (1–max). If undefined → uncontrolled mode */\r\n value?: number;\r\n\r\n /** Max number of stars */\r\n max?: number;\r\n\r\n /** Change handler */\r\n onChange?: (value: number) => void;\r\n\r\n /** Custom icon */\r\n icon?: React.ReactNode;\r\n\r\n /** Custom filled icon */\r\n iconFilled?: React.ReactNode;\r\n\r\n /** Size */\r\n size?: 'sm' | 'md' | 'lg';\r\n\r\n /** Optional class */\r\n className?: string;\r\n}\r\n\r\nexport function Rating({\r\n value,\r\n max = 5,\r\n onChange,\r\n icon = '☆',\r\n iconFilled = '★',\r\n size = 'md',\r\n className = '',\r\n}: RatingProps) {\r\n // uncontrolled internal value\r\n const [internal, setInternal] = useState(0);\r\n const current = value ?? internal;\r\n\r\n const [hover, setHover] = useState<number | null>(null);\r\n\r\n const finalValue = hover ?? current;\r\n\r\n const handleSelect = (v: number) => {\r\n if (value === undefined) setInternal(v);\r\n onChange?.(v);\r\n };\r\n\r\n const handleKey = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === 'ArrowRight') handleSelect(Math.min((current ?? 0) + 1, max));\r\n if (e.key === 'ArrowLeft') handleSelect(Math.max((current ?? 0) - 1, 1));\r\n };\r\n\r\n return (\r\n <div\r\n className={`ui-rating ui-rating--${size} ${className}`}\r\n role=\"radiogroup\"\r\n tabIndex={0}\r\n onKeyDown={handleKey}\r\n aria-label=\"Rating\"\r\n >\r\n {Array.from({ length: max }, (_, i) => {\r\n const index = i + 1;\r\n const filled = index <= finalValue;\r\n\r\n return (\r\n <span\r\n key={index}\r\n role=\"radio\"\r\n aria-checked={current === index}\r\n tabIndex={-1}\r\n className={`ui-rating-item ${filled ? 'filled' : ''}`}\r\n onMouseEnter={() => setHover(index)}\r\n onMouseLeave={() => setHover(null)}\r\n onClick={() => handleSelect(index)}\r\n >\r\n {filled ? iconFilled : icon}\r\n </span>\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n"],"names":["Rating","value","max","onChange","icon","iconFilled","size","className","internal","setInternal","useState","current","hover","setHover","finalValue","handleSelect","v","handleKey","jsx","_","i","index","filled"],"mappings":";;;AAqCO,SAASA,EAAO;AAAA,EACrB,OAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,UAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,YAAAC,IAAa;AAAA,EACb,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AACd,GAAgB;AAEd,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAUV,KAASO,GAEnB,CAACI,GAAOC,CAAQ,IAAIH,EAAwB,IAAI,GAEhDI,IAAaF,KAASD,GAEtBI,IAAe,CAACC,MAAc;AAClC,IAAIf,MAAU,UAAWQ,EAAYO,CAAC,GACtCb,IAAWa,CAAC;AAAA,EACd,GAEMC,IAAY,CAAC,MAA2C;AAC5D,IAAI,EAAE,QAAQ,gBAAcF,EAAa,KAAK,KAAKJ,KAAW,KAAK,GAAGT,CAAG,CAAC,GACtE,EAAE,QAAQ,eAAaa,EAAa,KAAK,KAAKJ,KAAW,KAAK,GAAG,CAAC,CAAC;AAAA,EACzE;AAEA,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,wBAAwBZ,CAAI,IAAIC,CAAS;AAAA,MACpD,MAAK;AAAA,MACL,UAAU;AAAA,MACV,WAAWU;AAAA,MACX,cAAW;AAAA,MAEV,UAAA,MAAM,KAAK,EAAE,QAAQf,KAAO,CAACiB,GAAGC,MAAM;AACrC,cAAMC,IAAQD,IAAI,GACZE,IAASD,KAASP;AAExB,eACE,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAK;AAAA,YACL,gBAAcP,MAAYU;AAAA,YAC1B,UAAU;AAAA,YACV,WAAW,kBAAkBC,IAAS,WAAW,EAAE;AAAA,YACnD,cAAc,MAAMT,EAASQ,CAAK;AAAA,YAClC,cAAc,MAAMR,EAAS,IAAI;AAAA,YACjC,SAAS,MAAME,EAAaM,CAAK;AAAA,YAEhC,cAAShB,IAAaD;AAAA,UAAA;AAAA,UATlBiB;AAAA,QAAA;AAAA,MAYX,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime");;/* empty css */function c(e){if(e!==void 0)return typeof e=="number"?`${e}px`:e}function t({size:e="md",width:n,animated:a=!0,circle:o=!1,ariaHidden:i=!0,className:u="",style:d}){const l=["ui-skeleton",`ui-skeleton--${e}`,a&&"ui-skeleton--animated",o&&"ui-skeleton--circle",u].filter(Boolean).join(" ");return r.jsx("span",{className:l,style:{width:c(n),display:n?"block":void 0,...d},"aria-hidden":i,role:"presentation"})}function m({width:e="100%",size:n="md"}){return r.jsx(t,{width:e,size:n})}function s({lines:e=3,size:n="md"}){const a=Array.from({length:e});return r.jsx("div",{"aria-hidden":"true",children:a.map((o,i)=>r.jsx("div",{style:{marginBlockEnd:"8px"},children:r.jsx(t,{width:i===e-1?"75%":"100%",size:n})},i))})}function f({size:e=40}){return r.jsx(t,{circle:!0,width:e,animated:!0})}function x({width:e=100,height:n=36}){return r.jsx(t,{width:e,size:"md",animated:!0,style:{height:n,borderRadius:"var(--radius-md)"}})}function h(){return r.jsxs("div",{"aria-hidden":"true",children:[r.jsx(t,{width:"60%",size:"lg",style:{marginBottom:12}}),r.jsx(s,{lines:3}),r.jsx(t,{width:"40%",size:"md",style:{marginTop:16}})]})}t.Text=m;t.Paragraph=s;t.Avatar=f;t.Button=x;t.Card=h;exports.Skeleton=t;exports.default=t;
2
+ //# sourceMappingURL=Skeleton.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.cjs","sources":["../../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["/**\r\n * Skeleton.tsx\r\n * Lightweight, accessible skeleton (placeholder) component.\r\n *\r\n * Props:\r\n * - size: visual thickness (xs, sm, md, lg, xl)\r\n * - width: number | string (e.g. 200, \"50%\", \"100px\")\r\n * - animated: whether to show shimmer (respects prefers-reduced-motion)\r\n * - circle: renders as a circle (useful for avatars)\r\n * - className: pass-through for custom styling\r\n *\r\n * Accessibility:\r\n * - role=\"status\" with aria-busy on parent usage is recommended by developer.\r\n * - For individual skeletons that should be ignored by assistive tech set aria-hidden=true.\r\n */\r\n/**\r\n * Skeleton.tsx + Helper Components\r\n * --------------------------------\r\n * Adds:\r\n * - Skeleton.Text\r\n * - Skeleton.Paragraph\r\n * - Skeleton.Avatar\r\n * - Skeleton.Button\r\n * - Skeleton.Card\r\n */\r\n\r\nimport React from 'react';\r\nimport './Skeleton.css';\r\n\r\ntype Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\ninterface SkeletonProps {\r\n size?: Size;\r\n width?: number | string;\r\n animated?: boolean;\r\n circle?: boolean;\r\n ariaHidden?: boolean;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nfunction formatWidth(w?: number | string): string | undefined {\r\n if (w === undefined) return undefined;\r\n if (typeof w === 'number') return `${w}px`;\r\n return w;\r\n}\r\n\r\nexport function Skeleton({\r\n size = 'md',\r\n width,\r\n animated = true,\r\n circle = false,\r\n ariaHidden = true,\r\n className = '',\r\n style,\r\n}: SkeletonProps) {\r\n const classes = [\r\n 'ui-skeleton',\r\n `ui-skeleton--${size}`,\r\n animated && 'ui-skeleton--animated',\r\n circle && 'ui-skeleton--circle',\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return (\r\n <span\r\n className={classes}\r\n style={{\r\n width: formatWidth(width),\r\n display: width ? 'block' : undefined,\r\n ...style,\r\n }}\r\n aria-hidden={ariaHidden}\r\n role=\"presentation\"\r\n />\r\n );\r\n}\r\n\r\n/* -------------------------------------------------------\r\n * Helper Components\r\n * ------------------------------------------------------*/\r\n\r\n/**\r\n * Simple text line.\r\n * Default width: 100%\r\n */\r\nfunction Text({\r\n width = '100%',\r\n size = 'md',\r\n}: {\r\n width?: number | string;\r\n size?: Size;\r\n}) {\r\n return <Skeleton width={width} size={size} />;\r\n}\r\n\r\n/**\r\n * Paragraph: multiple lines of text skeleton\r\n * lines default = 3\r\n */\r\nfunction Paragraph({\r\n lines = 3,\r\n size = 'md',\r\n}: {\r\n lines?: number;\r\n size?: Size;\r\n}) {\r\n const arr = Array.from({ length: lines });\r\n\r\n return (\r\n <div aria-hidden=\"true\">\r\n {arr.map((_, i) => (\r\n <div key={i} style={{ marginBlockEnd: '8px' }}>\r\n <Skeleton width={i === lines - 1 ? '75%' : '100%'} size={size} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Avatar placeholder, circle with dynamic size\r\n */\r\nfunction AvatarSkeleton({ size = 40 }: { size?: number }) {\r\n return <Skeleton circle width={size} animated />;\r\n}\r\n\r\n/**\r\n * Button skeleton (pill-like shape)\r\n */\r\nfunction ButtonSkeleton({\r\n width = 100,\r\n height = 36,\r\n}: {\r\n width?: number;\r\n height?: number;\r\n}) {\r\n return (\r\n <Skeleton\r\n width={width}\r\n size=\"md\"\r\n animated\r\n style={{\r\n height,\r\n borderRadius: 'var(--radius-md)',\r\n }}\r\n />\r\n );\r\n}\r\n\r\n/**\r\n * Card Skeleton: header + lines + footer bar\r\n */\r\nfunction CardSkeleton() {\r\n return (\r\n <div aria-hidden=\"true\">\r\n <Skeleton width=\"60%\" size=\"lg\" style={{ marginBottom: 12 }} />\r\n <Paragraph lines={3} />\r\n <Skeleton width=\"40%\" size=\"md\" style={{ marginTop: 16 }} />\r\n </div>\r\n );\r\n}\r\n\r\n/* Attach helpers */\r\nSkeleton.Text = Text;\r\nSkeleton.Paragraph = Paragraph;\r\nSkeleton.Avatar = AvatarSkeleton;\r\nSkeleton.Button = ButtonSkeleton;\r\nSkeleton.Card = CardSkeleton;\r\n\r\nexport default Skeleton;\r\n"],"names":["formatWidth","w","Skeleton","size","width","animated","circle","ariaHidden","className","style","classes","jsx","Text","Paragraph","lines","arr","_","AvatarSkeleton","ButtonSkeleton","height","CardSkeleton","jsxs"],"mappings":"+KAyCA,SAASA,EAAYC,EAAyC,CAC5D,GAAIA,IAAM,OACV,OAAI,OAAOA,GAAM,SAAiB,GAAGA,CAAC,KAC/BA,CACT,CAEO,SAASC,EAAS,CACvB,KAAAC,EAAO,KACP,MAAAC,EACA,SAAAC,EAAW,GACX,OAAAC,EAAS,GACT,WAAAC,EAAa,GACb,UAAAC,EAAY,GACZ,MAAAC,CACF,EAAkB,CAChB,MAAMC,EAAU,CACd,cACA,gBAAgBP,CAAI,GACpBE,GAAY,wBACZC,GAAU,sBACVE,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEG,EAAAA,IAAC,OAAA,CACC,UAAWD,EACX,MAAO,CACL,MAAOV,EAAYI,CAAK,EACxB,QAASA,EAAQ,QAAU,OAC3B,GAAGK,CAAA,EAEL,cAAaF,EACb,KAAK,cAAA,CAAA,CAGX,CAUA,SAASK,EAAK,CACZ,MAAAR,EAAQ,OACR,KAAAD,EAAO,IACT,EAGG,CACD,OAAOQ,EAAAA,IAACT,EAAA,CAAS,MAAAE,EAAc,KAAAD,CAAA,CAAY,CAC7C,CAMA,SAASU,EAAU,CACjB,MAAAC,EAAQ,EACR,KAAAX,EAAO,IACT,EAGG,CACD,MAAMY,EAAM,MAAM,KAAK,CAAE,OAAQD,EAAO,EAExC,OACEH,EAAAA,IAAC,MAAA,CAAI,cAAY,OACd,SAAAI,EAAI,IAAI,CAACC,EAAG,IACXL,EAAAA,IAAC,MAAA,CAAY,MAAO,CAAE,eAAgB,KAAA,EACpC,SAAAA,EAAAA,IAACT,EAAA,CAAS,MAAO,IAAMY,EAAQ,EAAI,MAAQ,OAAQ,KAAAX,CAAA,CAAY,CAAA,EADvD,CAEV,CACD,EACH,CAEJ,CAKA,SAASc,EAAe,CAAE,KAAAd,EAAO,IAAyB,CACxD,aAAQD,EAAA,CAAS,OAAM,GAAC,MAAOC,EAAM,SAAQ,GAAC,CAChD,CAKA,SAASe,EAAe,CACtB,MAAAd,EAAQ,IACR,OAAAe,EAAS,EACX,EAGG,CACD,OACER,EAAAA,IAACT,EAAA,CACC,MAAAE,EACA,KAAK,KACL,SAAQ,GACR,MAAO,CACL,OAAAe,EACA,aAAc,kBAAA,CAChB,CAAA,CAGN,CAKA,SAASC,GAAe,CACtB,OACEC,EAAAA,KAAC,MAAA,CAAI,cAAY,OACf,SAAA,CAAAV,EAAAA,IAACT,EAAA,CAAS,MAAM,MAAM,KAAK,KAAK,MAAO,CAAE,aAAc,EAAA,CAAG,CAAG,EAC7DS,EAAAA,IAACE,EAAA,CAAU,MAAO,CAAA,CAAG,EACrBF,EAAAA,IAACT,EAAA,CAAS,MAAM,MAAM,KAAK,KAAK,MAAO,CAAE,UAAW,GAAG,CAAG,CAAA,EAC5D,CAEJ,CAGAA,EAAS,KAAOU,EAChBV,EAAS,UAAYW,EACrBX,EAAS,OAASe,EAClBf,EAAS,OAASgB,EAClBhB,EAAS,KAAOkB"}
@@ -0,0 +1,86 @@
1
+ import { jsx as r, jsxs as m } from "react/jsx-runtime";
2
+ /* empty css */
3
+ function c(e) {
4
+ if (e !== void 0)
5
+ return typeof e == "number" ? `${e}px` : e;
6
+ }
7
+ function t({
8
+ size: e = "md",
9
+ width: n,
10
+ animated: a = !0,
11
+ circle: o = !1,
12
+ ariaHidden: i = !0,
13
+ className: u = "",
14
+ style: l
15
+ }) {
16
+ const s = [
17
+ "ui-skeleton",
18
+ `ui-skeleton--${e}`,
19
+ a && "ui-skeleton--animated",
20
+ o && "ui-skeleton--circle",
21
+ u
22
+ ].filter(Boolean).join(" ");
23
+ return /* @__PURE__ */ r(
24
+ "span",
25
+ {
26
+ className: s,
27
+ style: {
28
+ width: c(n),
29
+ display: n ? "block" : void 0,
30
+ ...l
31
+ },
32
+ "aria-hidden": i,
33
+ role: "presentation"
34
+ }
35
+ );
36
+ }
37
+ function f({
38
+ width: e = "100%",
39
+ size: n = "md"
40
+ }) {
41
+ return /* @__PURE__ */ r(t, { width: e, size: n });
42
+ }
43
+ function d({
44
+ lines: e = 3,
45
+ size: n = "md"
46
+ }) {
47
+ const a = Array.from({ length: e });
48
+ return /* @__PURE__ */ r("div", { "aria-hidden": "true", children: a.map((o, i) => /* @__PURE__ */ r("div", { style: { marginBlockEnd: "8px" }, children: /* @__PURE__ */ r(t, { width: i === e - 1 ? "75%" : "100%", size: n }) }, i)) });
49
+ }
50
+ function h({ size: e = 40 }) {
51
+ return /* @__PURE__ */ r(t, { circle: !0, width: e, animated: !0 });
52
+ }
53
+ function p({
54
+ width: e = 100,
55
+ height: n = 36
56
+ }) {
57
+ return /* @__PURE__ */ r(
58
+ t,
59
+ {
60
+ width: e,
61
+ size: "md",
62
+ animated: !0,
63
+ style: {
64
+ height: n,
65
+ borderRadius: "var(--radius-md)"
66
+ }
67
+ }
68
+ );
69
+ }
70
+ function k() {
71
+ return /* @__PURE__ */ m("div", { "aria-hidden": "true", children: [
72
+ /* @__PURE__ */ r(t, { width: "60%", size: "lg", style: { marginBottom: 12 } }),
73
+ /* @__PURE__ */ r(d, { lines: 3 }),
74
+ /* @__PURE__ */ r(t, { width: "40%", size: "md", style: { marginTop: 16 } })
75
+ ] });
76
+ }
77
+ t.Text = f;
78
+ t.Paragraph = d;
79
+ t.Avatar = h;
80
+ t.Button = p;
81
+ t.Card = k;
82
+ export {
83
+ t as Skeleton,
84
+ t as default
85
+ };
86
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","sources":["../../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["/**\r\n * Skeleton.tsx\r\n * Lightweight, accessible skeleton (placeholder) component.\r\n *\r\n * Props:\r\n * - size: visual thickness (xs, sm, md, lg, xl)\r\n * - width: number | string (e.g. 200, \"50%\", \"100px\")\r\n * - animated: whether to show shimmer (respects prefers-reduced-motion)\r\n * - circle: renders as a circle (useful for avatars)\r\n * - className: pass-through for custom styling\r\n *\r\n * Accessibility:\r\n * - role=\"status\" with aria-busy on parent usage is recommended by developer.\r\n * - For individual skeletons that should be ignored by assistive tech set aria-hidden=true.\r\n */\r\n/**\r\n * Skeleton.tsx + Helper Components\r\n * --------------------------------\r\n * Adds:\r\n * - Skeleton.Text\r\n * - Skeleton.Paragraph\r\n * - Skeleton.Avatar\r\n * - Skeleton.Button\r\n * - Skeleton.Card\r\n */\r\n\r\nimport React from 'react';\r\nimport './Skeleton.css';\r\n\r\ntype Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\ninterface SkeletonProps {\r\n size?: Size;\r\n width?: number | string;\r\n animated?: boolean;\r\n circle?: boolean;\r\n ariaHidden?: boolean;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n}\r\n\r\nfunction formatWidth(w?: number | string): string | undefined {\r\n if (w === undefined) return undefined;\r\n if (typeof w === 'number') return `${w}px`;\r\n return w;\r\n}\r\n\r\nexport function Skeleton({\r\n size = 'md',\r\n width,\r\n animated = true,\r\n circle = false,\r\n ariaHidden = true,\r\n className = '',\r\n style,\r\n}: SkeletonProps) {\r\n const classes = [\r\n 'ui-skeleton',\r\n `ui-skeleton--${size}`,\r\n animated && 'ui-skeleton--animated',\r\n circle && 'ui-skeleton--circle',\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return (\r\n <span\r\n className={classes}\r\n style={{\r\n width: formatWidth(width),\r\n display: width ? 'block' : undefined,\r\n ...style,\r\n }}\r\n aria-hidden={ariaHidden}\r\n role=\"presentation\"\r\n />\r\n );\r\n}\r\n\r\n/* -------------------------------------------------------\r\n * Helper Components\r\n * ------------------------------------------------------*/\r\n\r\n/**\r\n * Simple text line.\r\n * Default width: 100%\r\n */\r\nfunction Text({\r\n width = '100%',\r\n size = 'md',\r\n}: {\r\n width?: number | string;\r\n size?: Size;\r\n}) {\r\n return <Skeleton width={width} size={size} />;\r\n}\r\n\r\n/**\r\n * Paragraph: multiple lines of text skeleton\r\n * lines default = 3\r\n */\r\nfunction Paragraph({\r\n lines = 3,\r\n size = 'md',\r\n}: {\r\n lines?: number;\r\n size?: Size;\r\n}) {\r\n const arr = Array.from({ length: lines });\r\n\r\n return (\r\n <div aria-hidden=\"true\">\r\n {arr.map((_, i) => (\r\n <div key={i} style={{ marginBlockEnd: '8px' }}>\r\n <Skeleton width={i === lines - 1 ? '75%' : '100%'} size={size} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Avatar placeholder, circle with dynamic size\r\n */\r\nfunction AvatarSkeleton({ size = 40 }: { size?: number }) {\r\n return <Skeleton circle width={size} animated />;\r\n}\r\n\r\n/**\r\n * Button skeleton (pill-like shape)\r\n */\r\nfunction ButtonSkeleton({\r\n width = 100,\r\n height = 36,\r\n}: {\r\n width?: number;\r\n height?: number;\r\n}) {\r\n return (\r\n <Skeleton\r\n width={width}\r\n size=\"md\"\r\n animated\r\n style={{\r\n height,\r\n borderRadius: 'var(--radius-md)',\r\n }}\r\n />\r\n );\r\n}\r\n\r\n/**\r\n * Card Skeleton: header + lines + footer bar\r\n */\r\nfunction CardSkeleton() {\r\n return (\r\n <div aria-hidden=\"true\">\r\n <Skeleton width=\"60%\" size=\"lg\" style={{ marginBottom: 12 }} />\r\n <Paragraph lines={3} />\r\n <Skeleton width=\"40%\" size=\"md\" style={{ marginTop: 16 }} />\r\n </div>\r\n );\r\n}\r\n\r\n/* Attach helpers */\r\nSkeleton.Text = Text;\r\nSkeleton.Paragraph = Paragraph;\r\nSkeleton.Avatar = AvatarSkeleton;\r\nSkeleton.Button = ButtonSkeleton;\r\nSkeleton.Card = CardSkeleton;\r\n\r\nexport default Skeleton;\r\n"],"names":["formatWidth","w","Skeleton","size","width","animated","circle","ariaHidden","className","style","classes","jsx","Text","Paragraph","lines","arr","_","AvatarSkeleton","ButtonSkeleton","height","CardSkeleton","jsxs"],"mappings":";;AAyCA,SAASA,EAAYC,GAAyC;AAC5D,MAAIA,MAAM;AACV,WAAI,OAAOA,KAAM,WAAiB,GAAGA,CAAC,OAC/BA;AACT;AAEO,SAASC,EAAS;AAAA,EACvB,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,QAAAC,IAAS;AAAA,EACT,YAAAC,IAAa;AAAA,EACb,WAAAC,IAAY;AAAA,EACZ,OAAAC;AACF,GAAkB;AAChB,QAAMC,IAAU;AAAA,IACd;AAAA,IACA,gBAAgBP,CAAI;AAAA,IACpBE,KAAY;AAAA,IACZC,KAAU;AAAA,IACVE;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD;AAAA,MACX,OAAO;AAAA,QACL,OAAOV,EAAYI,CAAK;AAAA,QACxB,SAASA,IAAQ,UAAU;AAAA,QAC3B,GAAGK;AAAA,MAAA;AAAA,MAEL,eAAaF;AAAA,MACb,MAAK;AAAA,IAAA;AAAA,EAAA;AAGX;AAUA,SAASK,EAAK;AAAA,EACZ,OAAAR,IAAQ;AAAA,EACR,MAAAD,IAAO;AACT,GAGG;AACD,SAAO,gBAAAQ,EAACT,GAAA,EAAS,OAAAE,GAAc,MAAAD,EAAA,CAAY;AAC7C;AAMA,SAASU,EAAU;AAAA,EACjB,OAAAC,IAAQ;AAAA,EACR,MAAAX,IAAO;AACT,GAGG;AACD,QAAMY,IAAM,MAAM,KAAK,EAAE,QAAQD,GAAO;AAExC,SACE,gBAAAH,EAAC,OAAA,EAAI,eAAY,QACd,UAAAI,EAAI,IAAI,CAACC,GAAG,MACX,gBAAAL,EAAC,OAAA,EAAY,OAAO,EAAE,gBAAgB,MAAA,GACpC,UAAA,gBAAAA,EAACT,GAAA,EAAS,OAAO,MAAMY,IAAQ,IAAI,QAAQ,QAAQ,MAAAX,EAAA,CAAY,EAAA,GADvD,CAEV,CACD,GACH;AAEJ;AAKA,SAASc,EAAe,EAAE,MAAAd,IAAO,MAAyB;AACxD,2BAAQD,GAAA,EAAS,QAAM,IAAC,OAAOC,GAAM,UAAQ,IAAC;AAChD;AAKA,SAASe,EAAe;AAAA,EACtB,OAAAd,IAAQ;AAAA,EACR,QAAAe,IAAS;AACX,GAGG;AACD,SACE,gBAAAR;AAAA,IAACT;AAAA,IAAA;AAAA,MACC,OAAAE;AAAA,MACA,MAAK;AAAA,MACL,UAAQ;AAAA,MACR,OAAO;AAAA,QACL,QAAAe;AAAA,QACA,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAGN;AAKA,SAASC,IAAe;AACtB,SACE,gBAAAC,EAAC,OAAA,EAAI,eAAY,QACf,UAAA;AAAA,IAAA,gBAAAV,EAACT,GAAA,EAAS,OAAM,OAAM,MAAK,MAAK,OAAO,EAAE,cAAc,GAAA,EAAG,CAAG;AAAA,IAC7D,gBAAAS,EAACE,GAAA,EAAU,OAAO,EAAA,CAAG;AAAA,IACrB,gBAAAF,EAACT,GAAA,EAAS,OAAM,OAAM,MAAK,MAAK,OAAO,EAAE,WAAW,KAAG,CAAG;AAAA,EAAA,GAC5D;AAEJ;AAGAA,EAAS,OAAOU;AAChBV,EAAS,YAAYW;AACrBX,EAAS,SAASe;AAClBf,EAAS,SAASgB;AAClBhB,EAAS,OAAOkB;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react/jsx-runtime"),o=require("react");;/* empty css */function R({min:n=0,max:a=100,step:c=1,value:g,defaultValue:m,onChange:b,disabled:s=!1,className:S=""}){const k=g!==void 0,[C,M]=o.useState(m??n),r=k?g:C,u=o.useCallback(t=>{const e=Math.min(a,Math.max(n,t)),d=Math.round(e/c)*c;k||M(d),b?.(d)},[k,a,n,c,b]),E=o.useRef(null),D=(r-n)/(a-n)*100,w=o.useCallback(t=>{const e=E.current;if(!e)return r;const d=e.getBoundingClientRect(),y=(t-d.left)/d.width;return n+y*(a-n)},[n,a,r]),[v,L]=o.useState(!1),f=o.useCallback(t=>{if(s)return;L(!0);const e="touches"in t?t.touches[0].clientX:t.clientX;u(w(e))},[s,w,u]),i=o.useCallback(t=>{if(!v||s)return;const e=t.touches?.[0]?.clientX??t.clientX;u(w(e))},[v,s,w,u]),l=o.useCallback(()=>{L(!1)},[]);o.useEffect(()=>{if(v)return window.addEventListener("mousemove",i),window.addEventListener("touchmove",i),window.addEventListener("mouseup",l),window.addEventListener("touchend",l),()=>{window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",l),window.removeEventListener("touchend",l)}},[v,i,l]);const j=o.useCallback(t=>{if(s)return;let e=r;switch(t.key){case"ArrowRight":case"ArrowUp":e=r+c;break;case"ArrowLeft":case"ArrowDown":e=r-c;break;case"PageUp":e=r+c*10;break;case"PageDown":e=r-c*10;break;case"Home":e=n;break;case"End":e=a;break;default:return}t.preventDefault(),u(e)},[s,r,c,n,a,u]);return h.jsx("div",{className:`ui-slider ${s?"disabled":""} ${S}`,children:h.jsxs("div",{ref:E,className:"ui-slider-track",onMouseDown:f,onTouchStart:f,children:[h.jsx("div",{className:"ui-slider-fill",style:{width:`${D}%`}}),h.jsx("div",{className:"ui-slider-thumb",role:"slider",tabIndex:s?-1:0,"aria-valuemin":n,"aria-valuemax":a,"aria-valuenow":r,"aria-disabled":s||void 0,onKeyDown:j,onMouseDown:f,onTouchStart:f,style:{left:`${D}%`}})]})})}exports.Slider=R;
2
+ //# sourceMappingURL=Slider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.cjs","sources":["../../../../src/components/slider/Slider.tsx"],"sourcesContent":["/**\r\n * Slider.tsx\r\n * -----------\r\n * Fully accessible single-thumb slider.\r\n * WAI-ARIA compliant, supports pointer, touch, keyboard.\r\n */\r\n\r\nimport React, { useRef, useEffect, useState, useCallback } from 'react';\r\nimport './Slider.css';\r\n\r\ninterface SliderProps {\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n value?: number;\r\n defaultValue?: number;\r\n onChange?: (value: number) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function Slider({\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n value,\r\n defaultValue,\r\n onChange,\r\n disabled = false,\r\n className = '',\r\n}: SliderProps) {\r\n const isControlled = value !== undefined;\r\n\r\n const [internalValue, setInternalValue] = useState(defaultValue ?? min);\r\n\r\n const val = isControlled ? value : internalValue;\r\n\r\n /** Safe setter */\r\n const setVal = useCallback(\r\n (v: number) => {\r\n const clamped = Math.min(max, Math.max(min, v));\r\n const stepped = Math.round(clamped / step) * step;\r\n\r\n if (!isControlled) setInternalValue(stepped);\r\n onChange?.(stepped);\r\n },\r\n [isControlled, max, min, step, onChange]\r\n );\r\n\r\n const trackRef = useRef<HTMLDivElement | null>(null);\r\n\r\n /** Calculate percentage for UI */\r\n const percent = ((val - min) / (max - min)) * 100;\r\n\r\n /** Pixel → value conversion (FIXED: wrapped in useCallback) */\r\n const pixelToValue = useCallback(\r\n (clientX: number) => {\r\n const track = trackRef.current;\r\n if (!track) return val;\r\n\r\n const rect = track.getBoundingClientRect();\r\n const x = clientX - rect.left;\r\n const ratio = x / rect.width;\r\n const rawValue = min + ratio * (max - min);\r\n return rawValue;\r\n },\r\n [min, max, val]\r\n );\r\n\r\n /** Dragging state */\r\n const [dragging, setDragging] = useState(false);\r\n\r\n const startDrag = useCallback(\r\n (e: React.MouseEvent | React.TouchEvent) => {\r\n if (disabled) return;\r\n setDragging(true);\r\n\r\n const clientX = 'touches' in e ? e.touches[0].clientX : e.clientX;\r\n\r\n setVal(pixelToValue(clientX));\r\n },\r\n [disabled, pixelToValue, setVal]\r\n );\r\n\r\n const onMove = useCallback(\r\n (e: MouseEvent | TouchEvent) => {\r\n if (!dragging || disabled) return;\r\n\r\n const clientX =\r\n (e as TouchEvent).touches?.[0]?.clientX ?? (e as MouseEvent).clientX;\r\n\r\n setVal(pixelToValue(clientX));\r\n },\r\n [dragging, disabled, pixelToValue, setVal]\r\n );\r\n\r\n const endDrag = useCallback(() => {\r\n setDragging(false);\r\n }, []);\r\n\r\n /** Global listeners while dragging */\r\n useEffect(() => {\r\n if (!dragging) return;\r\n\r\n window.addEventListener('mousemove', onMove);\r\n window.addEventListener('touchmove', onMove);\r\n window.addEventListener('mouseup', endDrag);\r\n window.addEventListener('touchend', endDrag);\r\n\r\n return () => {\r\n window.removeEventListener('mousemove', onMove);\r\n window.removeEventListener('touchmove', onMove);\r\n window.removeEventListener('mouseup', endDrag);\r\n window.removeEventListener('touchend', endDrag);\r\n };\r\n }, [dragging, onMove, endDrag]);\r\n\r\n /** Keyboard handling */\r\n const onKeyDown = useCallback(\r\n (e: React.KeyboardEvent) => {\r\n if (disabled) return;\r\n\r\n let next = val;\r\n\r\n switch (e.key) {\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n next = val + step;\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n next = val - step;\r\n break;\r\n case 'PageUp':\r\n next = val + step * 10;\r\n break;\r\n case 'PageDown':\r\n next = val - step * 10;\r\n break;\r\n case 'Home':\r\n next = min;\r\n break;\r\n case 'End':\r\n next = max;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n setVal(next);\r\n },\r\n [disabled, val, step, min, max, setVal]\r\n );\r\n\r\n return (\r\n <div className={`ui-slider ${disabled ? 'disabled' : ''} ${className}`}>\r\n <div\r\n ref={trackRef}\r\n className=\"ui-slider-track\"\r\n onMouseDown={startDrag}\r\n onTouchStart={startDrag}\r\n >\r\n <div className=\"ui-slider-fill\" style={{ width: `${percent}%` }} />\r\n\r\n <div\r\n className=\"ui-slider-thumb\"\r\n role=\"slider\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n aria-valuenow={val}\r\n aria-disabled={disabled || undefined}\r\n onKeyDown={onKeyDown}\r\n onMouseDown={startDrag}\r\n onTouchStart={startDrag}\r\n style={{ left: `${percent}%` }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["Slider","min","max","step","value","defaultValue","onChange","disabled","className","isControlled","internalValue","setInternalValue","useState","val","setVal","useCallback","v","clamped","stepped","trackRef","useRef","percent","pixelToValue","clientX","track","rect","ratio","dragging","setDragging","startDrag","e","onMove","endDrag","useEffect","onKeyDown","next","jsx","jsxs"],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import { jsx as g, jsxs as R } from "react/jsx-runtime";
2
+ import { useState as p, useCallback as i, useRef as S, useEffect as $ } from "react";
3
+ /* empty css */
4
+ function I({
5
+ min: n = 0,
6
+ max: s = 100,
7
+ step: c = 1,
8
+ value: k,
9
+ defaultValue: M,
10
+ onChange: m,
11
+ disabled: o = !1,
12
+ className: V = ""
13
+ }) {
14
+ const h = k !== void 0, [X, y] = p(M ?? n), r = h ? k : X, a = i(
15
+ (t) => {
16
+ const e = Math.min(s, Math.max(n, t)), d = Math.round(e / c) * c;
17
+ h || y(d), m?.(d);
18
+ },
19
+ [h, s, n, c, m]
20
+ ), E = S(null), D = (r - n) / (s - n) * 100, w = i(
21
+ (t) => {
22
+ const e = E.current;
23
+ if (!e) return r;
24
+ const d = e.getBoundingClientRect(), N = (t - d.left) / d.width;
25
+ return n + N * (s - n);
26
+ },
27
+ [n, s, r]
28
+ ), [v, L] = p(!1), f = i(
29
+ (t) => {
30
+ if (o) return;
31
+ L(!0);
32
+ const e = "touches" in t ? t.touches[0].clientX : t.clientX;
33
+ a(w(e));
34
+ },
35
+ [o, w, a]
36
+ ), u = i(
37
+ (t) => {
38
+ if (!v || o) return;
39
+ const e = t.touches?.[0]?.clientX ?? t.clientX;
40
+ a(w(e));
41
+ },
42
+ [v, o, w, a]
43
+ ), l = i(() => {
44
+ L(!1);
45
+ }, []);
46
+ $(() => {
47
+ if (v)
48
+ return window.addEventListener("mousemove", u), window.addEventListener("touchmove", u), window.addEventListener("mouseup", l), window.addEventListener("touchend", l), () => {
49
+ window.removeEventListener("mousemove", u), window.removeEventListener("touchmove", u), window.removeEventListener("mouseup", l), window.removeEventListener("touchend", l);
50
+ };
51
+ }, [v, u, l]);
52
+ const A = i(
53
+ (t) => {
54
+ if (o) return;
55
+ let e = r;
56
+ switch (t.key) {
57
+ case "ArrowRight":
58
+ case "ArrowUp":
59
+ e = r + c;
60
+ break;
61
+ case "ArrowLeft":
62
+ case "ArrowDown":
63
+ e = r - c;
64
+ break;
65
+ case "PageUp":
66
+ e = r + c * 10;
67
+ break;
68
+ case "PageDown":
69
+ e = r - c * 10;
70
+ break;
71
+ case "Home":
72
+ e = n;
73
+ break;
74
+ case "End":
75
+ e = s;
76
+ break;
77
+ default:
78
+ return;
79
+ }
80
+ t.preventDefault(), a(e);
81
+ },
82
+ [o, r, c, n, s, a]
83
+ );
84
+ return /* @__PURE__ */ g("div", { className: `ui-slider ${o ? "disabled" : ""} ${V}`, children: /* @__PURE__ */ R(
85
+ "div",
86
+ {
87
+ ref: E,
88
+ className: "ui-slider-track",
89
+ onMouseDown: f,
90
+ onTouchStart: f,
91
+ children: [
92
+ /* @__PURE__ */ g("div", { className: "ui-slider-fill", style: { width: `${D}%` } }),
93
+ /* @__PURE__ */ g(
94
+ "div",
95
+ {
96
+ className: "ui-slider-thumb",
97
+ role: "slider",
98
+ tabIndex: o ? -1 : 0,
99
+ "aria-valuemin": n,
100
+ "aria-valuemax": s,
101
+ "aria-valuenow": r,
102
+ "aria-disabled": o || void 0,
103
+ onKeyDown: A,
104
+ onMouseDown: f,
105
+ onTouchStart: f,
106
+ style: { left: `${D}%` }
107
+ }
108
+ )
109
+ ]
110
+ }
111
+ ) });
112
+ }
113
+ export {
114
+ I as Slider
115
+ };
116
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.js","sources":["../../../../src/components/slider/Slider.tsx"],"sourcesContent":["/**\r\n * Slider.tsx\r\n * -----------\r\n * Fully accessible single-thumb slider.\r\n * WAI-ARIA compliant, supports pointer, touch, keyboard.\r\n */\r\n\r\nimport React, { useRef, useEffect, useState, useCallback } from 'react';\r\nimport './Slider.css';\r\n\r\ninterface SliderProps {\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n value?: number;\r\n defaultValue?: number;\r\n onChange?: (value: number) => void;\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function Slider({\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n value,\r\n defaultValue,\r\n onChange,\r\n disabled = false,\r\n className = '',\r\n}: SliderProps) {\r\n const isControlled = value !== undefined;\r\n\r\n const [internalValue, setInternalValue] = useState(defaultValue ?? min);\r\n\r\n const val = isControlled ? value : internalValue;\r\n\r\n /** Safe setter */\r\n const setVal = useCallback(\r\n (v: number) => {\r\n const clamped = Math.min(max, Math.max(min, v));\r\n const stepped = Math.round(clamped / step) * step;\r\n\r\n if (!isControlled) setInternalValue(stepped);\r\n onChange?.(stepped);\r\n },\r\n [isControlled, max, min, step, onChange]\r\n );\r\n\r\n const trackRef = useRef<HTMLDivElement | null>(null);\r\n\r\n /** Calculate percentage for UI */\r\n const percent = ((val - min) / (max - min)) * 100;\r\n\r\n /** Pixel → value conversion (FIXED: wrapped in useCallback) */\r\n const pixelToValue = useCallback(\r\n (clientX: number) => {\r\n const track = trackRef.current;\r\n if (!track) return val;\r\n\r\n const rect = track.getBoundingClientRect();\r\n const x = clientX - rect.left;\r\n const ratio = x / rect.width;\r\n const rawValue = min + ratio * (max - min);\r\n return rawValue;\r\n },\r\n [min, max, val]\r\n );\r\n\r\n /** Dragging state */\r\n const [dragging, setDragging] = useState(false);\r\n\r\n const startDrag = useCallback(\r\n (e: React.MouseEvent | React.TouchEvent) => {\r\n if (disabled) return;\r\n setDragging(true);\r\n\r\n const clientX = 'touches' in e ? e.touches[0].clientX : e.clientX;\r\n\r\n setVal(pixelToValue(clientX));\r\n },\r\n [disabled, pixelToValue, setVal]\r\n );\r\n\r\n const onMove = useCallback(\r\n (e: MouseEvent | TouchEvent) => {\r\n if (!dragging || disabled) return;\r\n\r\n const clientX =\r\n (e as TouchEvent).touches?.[0]?.clientX ?? (e as MouseEvent).clientX;\r\n\r\n setVal(pixelToValue(clientX));\r\n },\r\n [dragging, disabled, pixelToValue, setVal]\r\n );\r\n\r\n const endDrag = useCallback(() => {\r\n setDragging(false);\r\n }, []);\r\n\r\n /** Global listeners while dragging */\r\n useEffect(() => {\r\n if (!dragging) return;\r\n\r\n window.addEventListener('mousemove', onMove);\r\n window.addEventListener('touchmove', onMove);\r\n window.addEventListener('mouseup', endDrag);\r\n window.addEventListener('touchend', endDrag);\r\n\r\n return () => {\r\n window.removeEventListener('mousemove', onMove);\r\n window.removeEventListener('touchmove', onMove);\r\n window.removeEventListener('mouseup', endDrag);\r\n window.removeEventListener('touchend', endDrag);\r\n };\r\n }, [dragging, onMove, endDrag]);\r\n\r\n /** Keyboard handling */\r\n const onKeyDown = useCallback(\r\n (e: React.KeyboardEvent) => {\r\n if (disabled) return;\r\n\r\n let next = val;\r\n\r\n switch (e.key) {\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n next = val + step;\r\n break;\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n next = val - step;\r\n break;\r\n case 'PageUp':\r\n next = val + step * 10;\r\n break;\r\n case 'PageDown':\r\n next = val - step * 10;\r\n break;\r\n case 'Home':\r\n next = min;\r\n break;\r\n case 'End':\r\n next = max;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n setVal(next);\r\n },\r\n [disabled, val, step, min, max, setVal]\r\n );\r\n\r\n return (\r\n <div className={`ui-slider ${disabled ? 'disabled' : ''} ${className}`}>\r\n <div\r\n ref={trackRef}\r\n className=\"ui-slider-track\"\r\n onMouseDown={startDrag}\r\n onTouchStart={startDrag}\r\n >\r\n <div className=\"ui-slider-fill\" style={{ width: `${percent}%` }} />\r\n\r\n <div\r\n className=\"ui-slider-thumb\"\r\n role=\"slider\"\r\n tabIndex={disabled ? -1 : 0}\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n aria-valuenow={val}\r\n aria-disabled={disabled || undefined}\r\n onKeyDown={onKeyDown}\r\n onMouseDown={startDrag}\r\n onTouchStart={startDrag}\r\n style={{ left: `${percent}%` }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["Slider","min","max","step","value","defaultValue","onChange","disabled","className","isControlled","internalValue","setInternalValue","useState","val","setVal","useCallback","v","clamped","stepped","trackRef","useRef","percent","pixelToValue","clientX","track","rect","ratio","dragging","setDragging","startDrag","e","onMove","endDrag","useEffect","onKeyDown","next","jsx","jsxs"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");;/* empty css */function s({size:i="md",className:n="",label:r="Loading"}){return e.jsx("div",{className:`ui-spinner ui-spinner--${i} ${n}`,role:"status","aria-label":r,children:e.jsx("div",{className:"ui-spinner-circle"})})}exports.Spinner=s;
2
+ //# sourceMappingURL=Spinner.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.cjs","sources":["../../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["/**\r\n * Spinner.tsx — FINAL VERSION\r\n * ----------------------------\r\n * Accessible, theme-aware loading indicator.\r\n */\r\n\r\nimport './Spinner.css';\r\n\r\nexport interface SpinnerProps {\r\n size?: 'sm' | 'md' | 'lg';\r\n className?: string;\r\n label?: string; // screen reader text\r\n}\r\n\r\nexport function Spinner({\r\n size = 'md',\r\n className = '',\r\n label = 'Loading',\r\n}: SpinnerProps) {\r\n return (\r\n <div\r\n className={`ui-spinner ui-spinner--${size} ${className}`}\r\n role=\"status\"\r\n aria-label={label}\r\n >\r\n <div className=\"ui-spinner-circle\" />\r\n </div>\r\n );\r\n}\r\n"],"names":["Spinner","size","className","label","jsx"],"mappings":"kJAcO,SAASA,EAAQ,CACtB,KAAAC,EAAO,KACP,UAAAC,EAAY,GACZ,MAAAC,EAAQ,SACV,EAAiB,CACf,OACEC,EAAAA,IAAC,MAAA,CACC,UAAW,0BAA0BH,CAAI,IAAIC,CAAS,GACtD,KAAK,SACL,aAAYC,EAEZ,SAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,mBAAA,CAAoB,CAAA,CAAA,CAGzC"}
@@ -0,0 +1,21 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ /* empty css */
3
+ function l({
4
+ size: r = "md",
5
+ className: n = "",
6
+ label: e = "Loading"
7
+ }) {
8
+ return /* @__PURE__ */ i(
9
+ "div",
10
+ {
11
+ className: `ui-spinner ui-spinner--${r} ${n}`,
12
+ role: "status",
13
+ "aria-label": e,
14
+ children: /* @__PURE__ */ i("div", { className: "ui-spinner-circle" })
15
+ }
16
+ );
17
+ }
18
+ export {
19
+ l as Spinner
20
+ };
21
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sources":["../../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["/**\r\n * Spinner.tsx — FINAL VERSION\r\n * ----------------------------\r\n * Accessible, theme-aware loading indicator.\r\n */\r\n\r\nimport './Spinner.css';\r\n\r\nexport interface SpinnerProps {\r\n size?: 'sm' | 'md' | 'lg';\r\n className?: string;\r\n label?: string; // screen reader text\r\n}\r\n\r\nexport function Spinner({\r\n size = 'md',\r\n className = '',\r\n label = 'Loading',\r\n}: SpinnerProps) {\r\n return (\r\n <div\r\n className={`ui-spinner ui-spinner--${size} ${className}`}\r\n role=\"status\"\r\n aria-label={label}\r\n >\r\n <div className=\"ui-spinner-circle\" />\r\n </div>\r\n );\r\n}\r\n"],"names":["Spinner","size","className","label","jsx"],"mappings":";;AAcO,SAASA,EAAQ;AAAA,EACtB,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,OAAAC,IAAQ;AACV,GAAiB;AACf,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,0BAA0BH,CAAI,IAAIC,CAAS;AAAA,MACtD,MAAK;AAAA,MACL,cAAYC;AAAA,MAEZ,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oBAAA,CAAoB;AAAA,IAAA;AAAA,EAAA;AAGzC;"}
@@ -0,0 +1,6 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");;/* empty css */function u({steps:r,active:l,onChange:c,className:p=""}){const n=t=>typeof t=="string"?t:t.label;return e.jsx("nav",{className:`ui-stepper ${p}`,"aria-label":"Progress Steps",children:e.jsx("ol",{className:"ui-stepper-list",children:r.map((t,s)=>{const i=s===l,a=s<l;return e.jsxs("li",{className:`
2
+ ui-stepper-item
3
+ ${i?"active":""}
4
+ ${a?"completed":""}
5
+ `,children:[e.jsxs("button",{className:"ui-stepper-button","aria-current":i?"step":void 0,onClick:()=>c?.(s),children:[e.jsx("div",{className:"ui-stepper-circle",children:a?"✓":s+1}),e.jsx("span",{className:"ui-stepper-label",children:n(t)})]}),s!==r.length-1&&e.jsx("div",{className:"ui-stepper-line"})]},s)})})})}exports.Stepper=u;
6
+ //# sourceMappingURL=Stepper.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper.cjs","sources":["../../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["/**\r\n * Stepper.tsx — FINAL VERSION\r\n * ----------------------------\r\n * Features:\r\n * - Linear step navigation\r\n * - Clickable steps\r\n * - Keyboard navigation\r\n * - ARIA labels\r\n * - Full theme support\r\n * - Minimal, clean API\r\n */\r\n\r\nimport React from 'react';\r\nimport './Stepper.css';\r\n\r\nexport interface StepItem {\r\n label: React.ReactNode;\r\n}\r\n\r\nexport interface StepperProps {\r\n steps: (string | StepItem)[];\r\n active: number; // 0-based active index\r\n onChange?: (index: number) => void;\r\n className?: string;\r\n}\r\n\r\nexport function Stepper({\r\n steps,\r\n active,\r\n onChange,\r\n className = '',\r\n}: StepperProps) {\r\n const getLabel = (s: string | StepItem) =>\r\n typeof s === 'string' ? s : s.label;\r\n\r\n return (\r\n <nav className={`ui-stepper ${className}`} aria-label=\"Progress Steps\">\r\n <ol className=\"ui-stepper-list\">\r\n {steps.map((step, index) => {\r\n const isActive = index === active;\r\n const isCompleted = index < active;\r\n\r\n return (\r\n <li\r\n key={index}\r\n className={`\r\n ui-stepper-item \r\n ${isActive ? 'active' : ''} \r\n ${isCompleted ? 'completed' : ''}\r\n `}\r\n >\r\n <button\r\n className=\"ui-stepper-button\"\r\n aria-current={isActive ? 'step' : undefined}\r\n onClick={() => onChange?.(index)}\r\n >\r\n <div className=\"ui-stepper-circle\">\r\n {isCompleted ? '✓' : index + 1}\r\n </div>\r\n\r\n <span className=\"ui-stepper-label\">{getLabel(step)}</span>\r\n </button>\r\n\r\n {/* Connector Line */}\r\n {index !== steps.length - 1 && (\r\n <div className=\"ui-stepper-line\" />\r\n )}\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n}\r\n"],"names":["Stepper","steps","active","onChange","className","getLabel","s","jsx","step","index","isActive","isCompleted","jsxs"],"mappings":"kJA0BO,SAASA,EAAQ,CACtB,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,UAAAC,EAAY,EACd,EAAiB,CACf,MAAMC,EAAYC,GAChB,OAAOA,GAAM,SAAWA,EAAIA,EAAE,MAEhC,aACG,MAAA,CAAI,UAAW,cAAcF,CAAS,GAAI,aAAW,iBACpD,SAAAG,EAAAA,IAAC,KAAA,CAAG,UAAU,kBACX,SAAAN,EAAM,IAAI,CAACO,EAAMC,IAAU,CAC1B,MAAMC,EAAWD,IAAUP,EACrBS,EAAcF,EAAQP,EAE5B,OACEU,EAAAA,KAAC,KAAA,CAEC,UAAW;AAAA;AAAA,kBAEPF,EAAW,SAAW,EAAE;AAAA,kBACxBC,EAAc,YAAc,EAAE;AAAA,gBAGlC,SAAA,CAAAC,EAAAA,KAAC,SAAA,CACC,UAAU,oBACV,eAAcF,EAAW,OAAS,OAClC,QAAS,IAAMP,IAAWM,CAAK,EAE/B,SAAA,CAAAF,MAAC,OAAI,UAAU,oBACZ,SAAAI,EAAc,IAAMF,EAAQ,EAC/B,QAEC,OAAA,CAAK,UAAU,mBAAoB,SAAAJ,EAASG,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,EAIpDC,IAAUR,EAAM,OAAS,GACxBM,EAAAA,IAAC,MAAA,CAAI,UAAU,iBAAA,CAAkB,CAAA,CAAA,EArB9BE,CAAA,CAyBX,CAAC,EACH,EACF,CAEJ"}
@@ -0,0 +1,43 @@
1
+ import { jsx as t, jsxs as p } from "react/jsx-runtime";
2
+ /* empty css */
3
+ function h({
4
+ steps: r,
5
+ active: l,
6
+ onChange: c,
7
+ className: n = ""
8
+ }) {
9
+ const o = (s) => typeof s == "string" ? s : s.label;
10
+ return /* @__PURE__ */ t("nav", { className: `ui-stepper ${n}`, "aria-label": "Progress Steps", children: /* @__PURE__ */ t("ol", { className: "ui-stepper-list", children: r.map((s, e) => {
11
+ const i = e === l, a = e < l;
12
+ return /* @__PURE__ */ p(
13
+ "li",
14
+ {
15
+ className: `
16
+ ui-stepper-item
17
+ ${i ? "active" : ""}
18
+ ${a ? "completed" : ""}
19
+ `,
20
+ children: [
21
+ /* @__PURE__ */ p(
22
+ "button",
23
+ {
24
+ className: "ui-stepper-button",
25
+ "aria-current": i ? "step" : void 0,
26
+ onClick: () => c?.(e),
27
+ children: [
28
+ /* @__PURE__ */ t("div", { className: "ui-stepper-circle", children: a ? "✓" : e + 1 }),
29
+ /* @__PURE__ */ t("span", { className: "ui-stepper-label", children: o(s) })
30
+ ]
31
+ }
32
+ ),
33
+ e !== r.length - 1 && /* @__PURE__ */ t("div", { className: "ui-stepper-line" })
34
+ ]
35
+ },
36
+ e
37
+ );
38
+ }) }) });
39
+ }
40
+ export {
41
+ h as Stepper
42
+ };
43
+ //# sourceMappingURL=Stepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper.js","sources":["../../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["/**\r\n * Stepper.tsx — FINAL VERSION\r\n * ----------------------------\r\n * Features:\r\n * - Linear step navigation\r\n * - Clickable steps\r\n * - Keyboard navigation\r\n * - ARIA labels\r\n * - Full theme support\r\n * - Minimal, clean API\r\n */\r\n\r\nimport React from 'react';\r\nimport './Stepper.css';\r\n\r\nexport interface StepItem {\r\n label: React.ReactNode;\r\n}\r\n\r\nexport interface StepperProps {\r\n steps: (string | StepItem)[];\r\n active: number; // 0-based active index\r\n onChange?: (index: number) => void;\r\n className?: string;\r\n}\r\n\r\nexport function Stepper({\r\n steps,\r\n active,\r\n onChange,\r\n className = '',\r\n}: StepperProps) {\r\n const getLabel = (s: string | StepItem) =>\r\n typeof s === 'string' ? s : s.label;\r\n\r\n return (\r\n <nav className={`ui-stepper ${className}`} aria-label=\"Progress Steps\">\r\n <ol className=\"ui-stepper-list\">\r\n {steps.map((step, index) => {\r\n const isActive = index === active;\r\n const isCompleted = index < active;\r\n\r\n return (\r\n <li\r\n key={index}\r\n className={`\r\n ui-stepper-item \r\n ${isActive ? 'active' : ''} \r\n ${isCompleted ? 'completed' : ''}\r\n `}\r\n >\r\n <button\r\n className=\"ui-stepper-button\"\r\n aria-current={isActive ? 'step' : undefined}\r\n onClick={() => onChange?.(index)}\r\n >\r\n <div className=\"ui-stepper-circle\">\r\n {isCompleted ? '✓' : index + 1}\r\n </div>\r\n\r\n <span className=\"ui-stepper-label\">{getLabel(step)}</span>\r\n </button>\r\n\r\n {/* Connector Line */}\r\n {index !== steps.length - 1 && (\r\n <div className=\"ui-stepper-line\" />\r\n )}\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n}\r\n"],"names":["Stepper","steps","active","onChange","className","getLabel","jsx","step","index","isActive","isCompleted","jsxs"],"mappings":";;AA0BO,SAASA,EAAQ;AAAA,EACtB,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAiB;AACf,QAAMC,IAAW,CAAC,MAChB,OAAO,KAAM,WAAW,IAAI,EAAE;AAEhC,2BACG,OAAA,EAAI,WAAW,cAAcD,CAAS,IAAI,cAAW,kBACpD,UAAA,gBAAAE,EAAC,MAAA,EAAG,WAAU,mBACX,UAAAL,EAAM,IAAI,CAACM,GAAMC,MAAU;AAC1B,UAAMC,IAAWD,MAAUN,GACrBQ,IAAcF,IAAQN;AAE5B,WACE,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAW;AAAA;AAAA,kBAEPF,IAAW,WAAW,EAAE;AAAA,kBACxBC,IAAc,cAAc,EAAE;AAAA;AAAA,QAGlC,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,gBAAcF,IAAW,SAAS;AAAA,cAClC,SAAS,MAAMN,IAAWK,CAAK;AAAA,cAE/B,UAAA;AAAA,gBAAA,gBAAAF,EAAC,SAAI,WAAU,qBACZ,UAAAI,IAAc,MAAMF,IAAQ,GAC/B;AAAA,kCAEC,QAAA,EAAK,WAAU,oBAAoB,UAAAH,EAASE,CAAI,EAAA,CAAE;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAIpDC,MAAUP,EAAM,SAAS,KACxB,gBAAAK,EAAC,OAAA,EAAI,WAAU,kBAAA,CAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,MArB9BE;AAAA,IAAA;AAAA,EAyBX,CAAC,GACH,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),c=require("react");;/* empty css */function I({checked:a,defaultChecked:x,onChange:o,disabled:e=!1,label:l,id:m,name:f,value:p,className:y=""}){const s=a!==void 0,[j,d]=c.useState(x??!1),t=s?a:j,i=c.useRef(null),S=c.useId(),h=m??S;c.useEffect(()=>{const n=i.current;if(!n)return;const v=u=>{if(!e&&(u.key===" "||u.key==="Spacebar")){u.preventDefault();const w=!t;s||d(w),o?.(w)}};return n.addEventListener("keydown",v),()=>{n.removeEventListener("keydown",v)}},[t,e,s,o]);const b=()=>{if(e)return;const n=!t;s||d(n),o?.(n),i.current&&i.current.focus()},k=p??(t?"on":"off");return r.jsxs("label",{className:`ui-switch-root ${y}`,htmlFor:h,"aria-disabled":e||void 0,children:[f&&r.jsx("input",{type:"hidden",name:f,value:t?k:""}),r.jsx("button",{id:h,ref:i,type:"button",role:"switch","aria-checked":t,"aria-disabled":e||void 0,className:"ui-switch-control","data-state":t?"on":"off",onClick:b,tabIndex:e?-1:0,children:r.jsx("span",{className:"ui-switch-thumb","aria-hidden":"true"})}),l&&r.jsx("span",{className:"ui-switch-label",children:l})]})}exports.Switch=I;
2
+ //# sourceMappingURL=Switch.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.cjs","sources":["../../../../src/components/switch/Switch.tsx"],"sourcesContent":["/**\r\n * Switch.tsx\r\n * ----------\r\n * Accessible Toggle / Switch component.\r\n *\r\n * Features:\r\n * - role=\"switch\" semantics\r\n * - aria-checked driven\r\n * - keyboard (Space toggles)\r\n * - controlled + uncontrolled\r\n * - disabled support\r\n * - label support\r\n * - no external deps\r\n */\r\n/**\r\n * Switch.tsx (Lint-Clean Version)\r\n * Fully accessible toggle switch.\r\n */\r\n\r\nimport React, { useEffect, useRef } from 'react';\r\nimport './Switch.css';\r\n\r\ninterface SwitchProps {\r\n checked?: boolean;\r\n defaultChecked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n\r\n disabled?: boolean;\r\n label?: React.ReactNode;\r\n id?: string;\r\n name?: string;\r\n value?: string;\r\n className?: string;\r\n}\r\n\r\nexport function Switch({\r\n checked,\r\n defaultChecked,\r\n onChange,\r\n disabled = false,\r\n label,\r\n id,\r\n name,\r\n value,\r\n className = '',\r\n}: SwitchProps) {\r\n const isControlled = checked !== undefined;\r\n\r\n const [internal, setInternal] = React.useState(defaultChecked ?? false);\r\n const current = isControlled ? checked : internal;\r\n\r\n const controlRef = useRef<HTMLButtonElement | null>(null);\r\n\r\n /**\r\n * FIX → Always call useId at top level.\r\n */\r\n const internalId = React.useId();\r\n const finalId = id ?? internalId;\r\n\r\n /**\r\n * Spacebar toggling (keyboard)\r\n */\r\n useEffect(() => {\r\n const el = controlRef.current;\r\n if (!el) return;\r\n\r\n const handler = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n\r\n if (e.key === ' ' || e.key === 'Spacebar') {\r\n e.preventDefault();\r\n const next = !current;\r\n\r\n if (!isControlled) setInternal(next);\r\n onChange?.(next);\r\n }\r\n };\r\n\r\n el.addEventListener('keydown', handler);\r\n return () => {\r\n el.removeEventListener('keydown', handler);\r\n };\r\n }, [current, disabled, isControlled, onChange]);\r\n\r\n /**\r\n * Toggle function — no non-null assertions.\r\n */\r\n const toggle = () => {\r\n if (disabled) return;\r\n const next = !current;\r\n\r\n if (!isControlled) setInternal(next);\r\n onChange?.(next);\r\n\r\n // Restore focus safely\r\n if (controlRef.current) {\r\n controlRef.current.focus();\r\n }\r\n };\r\n\r\n // Hidden input for form\r\n const hiddenValue = value ?? (current ? 'on' : 'off');\r\n\r\n return (\r\n <label\r\n className={`ui-switch-root ${className}`}\r\n htmlFor={finalId}\r\n aria-disabled={disabled || undefined}\r\n >\r\n {name && (\r\n <input type=\"hidden\" name={name} value={current ? hiddenValue : ''} />\r\n )}\r\n\r\n <button\r\n id={finalId}\r\n ref={controlRef}\r\n type=\"button\"\r\n role=\"switch\"\r\n aria-checked={current}\r\n aria-disabled={disabled || undefined}\r\n className=\"ui-switch-control\"\r\n data-state={current ? 'on' : 'off'}\r\n onClick={toggle}\r\n tabIndex={disabled ? -1 : 0}\r\n >\r\n <span className=\"ui-switch-thumb\" aria-hidden=\"true\" />\r\n </button>\r\n\r\n {label && <span className=\"ui-switch-label\">{label}</span>}\r\n </label>\r\n );\r\n}\r\n"],"names":["Switch","checked","defaultChecked","onChange","disabled","label","id","name","value","className","isControlled","internal","setInternal","React","current","controlRef","useRef","internalId","finalId","useEffect","el","handler","e","next","toggle","hiddenValue","jsxs","jsx"],"mappings":"oKAmCO,SAASA,EAAO,CACrB,QAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,GACX,MAAAC,EACA,GAAAC,EACA,KAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,EACd,EAAgB,CACd,MAAMC,EAAeT,IAAY,OAE3B,CAACU,EAAUC,CAAW,EAAIC,EAAM,SAASX,GAAkB,EAAK,EAChEY,EAAUJ,EAAeT,EAAUU,EAEnCI,EAAaC,EAAAA,OAAiC,IAAI,EAKlDC,EAAaJ,EAAM,MAAA,EACnBK,EAAUZ,GAAMW,EAKtBE,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAKL,EAAW,QACtB,GAAI,CAACK,EAAI,OAET,MAAMC,EAAWC,GAAqB,CACpC,GAAI,CAAAlB,IAEAkB,EAAE,MAAQ,KAAOA,EAAE,MAAQ,YAAY,CACzCA,EAAE,eAAA,EACF,MAAMC,EAAO,CAACT,EAETJ,GAAcE,EAAYW,CAAI,EACnCpB,IAAWoB,CAAI,CACjB,CACF,EAEA,OAAAH,EAAG,iBAAiB,UAAWC,CAAO,EAC/B,IAAM,CACXD,EAAG,oBAAoB,UAAWC,CAAO,CAC3C,CACF,EAAG,CAACP,EAASV,EAAUM,EAAcP,CAAQ,CAAC,EAK9C,MAAMqB,EAAS,IAAM,CACnB,GAAIpB,EAAU,OACd,MAAMmB,EAAO,CAACT,EAETJ,GAAcE,EAAYW,CAAI,EACnCpB,IAAWoB,CAAI,EAGXR,EAAW,SACbA,EAAW,QAAQ,MAAA,CAEvB,EAGMU,EAAcjB,IAAUM,EAAU,KAAO,OAE/C,OACEY,EAAAA,KAAC,QAAA,CACC,UAAW,kBAAkBjB,CAAS,GACtC,QAASS,EACT,gBAAed,GAAY,OAE1B,SAAA,CAAAG,GACCoB,EAAAA,IAAC,SAAM,KAAK,SAAS,KAAApB,EAAY,MAAOO,EAAUW,EAAc,EAAA,CAAI,EAGtEE,EAAAA,IAAC,SAAA,CACC,GAAIT,EACJ,IAAKH,EACL,KAAK,SACL,KAAK,SACL,eAAcD,EACd,gBAAeV,GAAY,OAC3B,UAAU,oBACV,aAAYU,EAAU,KAAO,MAC7B,QAASU,EACT,SAAUpB,EAAW,GAAK,EAE1B,SAAAuB,EAAAA,IAAC,OAAA,CAAK,UAAU,kBAAkB,cAAY,MAAA,CAAO,CAAA,CAAA,EAGtDtB,GAASsB,EAAAA,IAAC,OAAA,CAAK,UAAU,kBAAmB,SAAAtB,CAAA,CAAM,CAAA,CAAA,CAAA,CAGzD"}
@@ -0,0 +1,67 @@
1
+ import { jsxs as E, jsx as i } from "react/jsx-runtime";
2
+ import p, { useRef as R, useEffect as S } from "react";
3
+ /* empty css */
4
+ function F({
5
+ checked: a,
6
+ defaultChecked: v,
7
+ onChange: s,
8
+ disabled: e = !1,
9
+ label: u,
10
+ id: w,
11
+ name: l,
12
+ value: x,
13
+ className: y = ""
14
+ }) {
15
+ const r = a !== void 0, [k, f] = p.useState(v ?? !1), t = r ? a : k, o = R(null), I = p.useId(), d = w ?? I;
16
+ S(() => {
17
+ const n = o.current;
18
+ if (!n) return;
19
+ const h = (c) => {
20
+ if (!e && (c.key === " " || c.key === "Spacebar")) {
21
+ c.preventDefault();
22
+ const m = !t;
23
+ r || f(m), s?.(m);
24
+ }
25
+ };
26
+ return n.addEventListener("keydown", h), () => {
27
+ n.removeEventListener("keydown", h);
28
+ };
29
+ }, [t, e, r, s]);
30
+ const N = () => {
31
+ if (e) return;
32
+ const n = !t;
33
+ r || f(n), s?.(n), o.current && o.current.focus();
34
+ }, b = x ?? (t ? "on" : "off");
35
+ return /* @__PURE__ */ E(
36
+ "label",
37
+ {
38
+ className: `ui-switch-root ${y}`,
39
+ htmlFor: d,
40
+ "aria-disabled": e || void 0,
41
+ children: [
42
+ l && /* @__PURE__ */ i("input", { type: "hidden", name: l, value: t ? b : "" }),
43
+ /* @__PURE__ */ i(
44
+ "button",
45
+ {
46
+ id: d,
47
+ ref: o,
48
+ type: "button",
49
+ role: "switch",
50
+ "aria-checked": t,
51
+ "aria-disabled": e || void 0,
52
+ className: "ui-switch-control",
53
+ "data-state": t ? "on" : "off",
54
+ onClick: N,
55
+ tabIndex: e ? -1 : 0,
56
+ children: /* @__PURE__ */ i("span", { className: "ui-switch-thumb", "aria-hidden": "true" })
57
+ }
58
+ ),
59
+ u && /* @__PURE__ */ i("span", { className: "ui-switch-label", children: u })
60
+ ]
61
+ }
62
+ );
63
+ }
64
+ export {
65
+ F as Switch
66
+ };
67
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.js","sources":["../../../../src/components/switch/Switch.tsx"],"sourcesContent":["/**\r\n * Switch.tsx\r\n * ----------\r\n * Accessible Toggle / Switch component.\r\n *\r\n * Features:\r\n * - role=\"switch\" semantics\r\n * - aria-checked driven\r\n * - keyboard (Space toggles)\r\n * - controlled + uncontrolled\r\n * - disabled support\r\n * - label support\r\n * - no external deps\r\n */\r\n/**\r\n * Switch.tsx (Lint-Clean Version)\r\n * Fully accessible toggle switch.\r\n */\r\n\r\nimport React, { useEffect, useRef } from 'react';\r\nimport './Switch.css';\r\n\r\ninterface SwitchProps {\r\n checked?: boolean;\r\n defaultChecked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n\r\n disabled?: boolean;\r\n label?: React.ReactNode;\r\n id?: string;\r\n name?: string;\r\n value?: string;\r\n className?: string;\r\n}\r\n\r\nexport function Switch({\r\n checked,\r\n defaultChecked,\r\n onChange,\r\n disabled = false,\r\n label,\r\n id,\r\n name,\r\n value,\r\n className = '',\r\n}: SwitchProps) {\r\n const isControlled = checked !== undefined;\r\n\r\n const [internal, setInternal] = React.useState(defaultChecked ?? false);\r\n const current = isControlled ? checked : internal;\r\n\r\n const controlRef = useRef<HTMLButtonElement | null>(null);\r\n\r\n /**\r\n * FIX → Always call useId at top level.\r\n */\r\n const internalId = React.useId();\r\n const finalId = id ?? internalId;\r\n\r\n /**\r\n * Spacebar toggling (keyboard)\r\n */\r\n useEffect(() => {\r\n const el = controlRef.current;\r\n if (!el) return;\r\n\r\n const handler = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n\r\n if (e.key === ' ' || e.key === 'Spacebar') {\r\n e.preventDefault();\r\n const next = !current;\r\n\r\n if (!isControlled) setInternal(next);\r\n onChange?.(next);\r\n }\r\n };\r\n\r\n el.addEventListener('keydown', handler);\r\n return () => {\r\n el.removeEventListener('keydown', handler);\r\n };\r\n }, [current, disabled, isControlled, onChange]);\r\n\r\n /**\r\n * Toggle function — no non-null assertions.\r\n */\r\n const toggle = () => {\r\n if (disabled) return;\r\n const next = !current;\r\n\r\n if (!isControlled) setInternal(next);\r\n onChange?.(next);\r\n\r\n // Restore focus safely\r\n if (controlRef.current) {\r\n controlRef.current.focus();\r\n }\r\n };\r\n\r\n // Hidden input for form\r\n const hiddenValue = value ?? (current ? 'on' : 'off');\r\n\r\n return (\r\n <label\r\n className={`ui-switch-root ${className}`}\r\n htmlFor={finalId}\r\n aria-disabled={disabled || undefined}\r\n >\r\n {name && (\r\n <input type=\"hidden\" name={name} value={current ? hiddenValue : ''} />\r\n )}\r\n\r\n <button\r\n id={finalId}\r\n ref={controlRef}\r\n type=\"button\"\r\n role=\"switch\"\r\n aria-checked={current}\r\n aria-disabled={disabled || undefined}\r\n className=\"ui-switch-control\"\r\n data-state={current ? 'on' : 'off'}\r\n onClick={toggle}\r\n tabIndex={disabled ? -1 : 0}\r\n >\r\n <span className=\"ui-switch-thumb\" aria-hidden=\"true\" />\r\n </button>\r\n\r\n {label && <span className=\"ui-switch-label\">{label}</span>}\r\n </label>\r\n );\r\n}\r\n"],"names":["Switch","checked","defaultChecked","onChange","disabled","label","id","name","value","className","isControlled","internal","setInternal","React","current","controlRef","useRef","internalId","finalId","useEffect","el","handler","e","next","toggle","hiddenValue","jsxs","jsx"],"mappings":";;;AAmCO,SAASA,EAAO;AAAA,EACrB,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AAAA,EACA,IAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC,IAAY;AACd,GAAgB;AACd,QAAMC,IAAeT,MAAY,QAE3B,CAACU,GAAUC,CAAW,IAAIC,EAAM,SAASX,KAAkB,EAAK,GAChEY,IAAUJ,IAAeT,IAAUU,GAEnCI,IAAaC,EAAiC,IAAI,GAKlDC,IAAaJ,EAAM,MAAA,GACnBK,IAAUZ,KAAMW;AAKtB,EAAAE,EAAU,MAAM;AACd,UAAMC,IAAKL,EAAW;AACtB,QAAI,CAACK,EAAI;AAET,UAAMC,IAAU,CAACC,MAAqB;AACpC,UAAI,CAAAlB,MAEAkB,EAAE,QAAQ,OAAOA,EAAE,QAAQ,aAAY;AACzC,QAAAA,EAAE,eAAA;AACF,cAAMC,IAAO,CAACT;AAEd,QAAKJ,KAAcE,EAAYW,CAAI,GACnCpB,IAAWoB,CAAI;AAAA,MACjB;AAAA,IACF;AAEA,WAAAH,EAAG,iBAAiB,WAAWC,CAAO,GAC/B,MAAM;AACX,MAAAD,EAAG,oBAAoB,WAAWC,CAAO;AAAA,IAC3C;AAAA,EACF,GAAG,CAACP,GAASV,GAAUM,GAAcP,CAAQ,CAAC;AAK9C,QAAMqB,IAAS,MAAM;AACnB,QAAIpB,EAAU;AACd,UAAMmB,IAAO,CAACT;AAEd,IAAKJ,KAAcE,EAAYW,CAAI,GACnCpB,IAAWoB,CAAI,GAGXR,EAAW,WACbA,EAAW,QAAQ,MAAA;AAAA,EAEvB,GAGMU,IAAcjB,MAAUM,IAAU,OAAO;AAE/C,SACE,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,kBAAkBjB,CAAS;AAAA,MACtC,SAASS;AAAA,MACT,iBAAed,KAAY;AAAA,MAE1B,UAAA;AAAA,QAAAG,KACC,gBAAAoB,EAAC,WAAM,MAAK,UAAS,MAAApB,GAAY,OAAOO,IAAUW,IAAc,GAAA,CAAI;AAAA,QAGtE,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAIT;AAAA,YACJ,KAAKH;AAAA,YACL,MAAK;AAAA,YACL,MAAK;AAAA,YACL,gBAAcD;AAAA,YACd,iBAAeV,KAAY;AAAA,YAC3B,WAAU;AAAA,YACV,cAAYU,IAAU,OAAO;AAAA,YAC7B,SAASU;AAAA,YACT,UAAUpB,IAAW,KAAK;AAAA,YAE1B,UAAA,gBAAAuB,EAAC,QAAA,EAAK,WAAU,mBAAkB,eAAY,OAAA,CAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAGtDtB,KAAS,gBAAAsB,EAAC,QAAA,EAAK,WAAU,mBAAmB,UAAAtB,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzD;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),d=require("react");;/* empty css */function k({columns:i,data:a,emptyText:u="No data available",className:b=""}){const[n,y]=d.useState(null),c=d.useMemo(()=>n?[...a].sort((r,s)=>{const l=r[n.key],o=s[n.key];return l<o?n.direction==="asc"?-1:1:l>o?n.direction==="asc"?1:-1:0}):a,[a,n]),h=e=>{e.sortable&&y(r=>!r||r.key!==e.key?{key:e.key,direction:"asc"}:r.direction==="asc"?{key:e.key,direction:"desc"}:null)},j=e=>{if(!e.sortable)return null;const r=n?.key===e.key,s=n?.direction??"asc";return t.jsx("span",{className:`ui-table-sort-indicator ${r?"active":""}`,"aria-hidden":"true",children:r?s==="asc"?"▲":"▼":"↕"})};return t.jsx("div",{className:"ui-table-container",children:t.jsxs("table",{className:`ui-table ${b}`,children:[t.jsx("thead",{children:t.jsx("tr",{children:i.map(e=>t.jsx("th",{scope:"col",children:e.sortable?t.jsxs("button",{type:"button",className:"ui-table-sort-button",onClick:()=>h(e),children:[e.label,j(e)]}):e.label},String(e.key)))})}),t.jsx("tbody",{children:c.length===0?t.jsx("tr",{children:t.jsx("td",{className:"ui-table-empty",colSpan:i.length,children:u})}):c.map((e,r)=>t.jsx("tr",{className:"ui-table-row",children:i.map(s=>t.jsx("td",{children:String(e[s.key])},String(s.key)))},r))})]})})}exports.Table=k;
2
+ //# sourceMappingURL=Table.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.cjs","sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["/**\r\n * Table.tsx\r\n * ----------\r\n * Accessible, sortable, theme-aware table.\r\n */\r\n\r\nimport { useState, useMemo } from 'react';\r\nimport './Table.css';\r\n\r\nexport interface TableColumn<T> {\r\n key: keyof T;\r\n label: string;\r\n sortable?: boolean;\r\n}\r\n\r\ninterface TableProps<T> {\r\n columns: TableColumn<T>[];\r\n data: T[];\r\n emptyText?: string;\r\n className?: string;\r\n}\r\n\r\ntype SortState<T> = {\r\n key: keyof T;\r\n direction: 'asc' | 'desc';\r\n} | null;\r\n\r\nexport function Table<T extends Record<string, any>>({\r\n columns,\r\n data,\r\n emptyText = 'No data available',\r\n className = '',\r\n}: TableProps<T>) {\r\n const [sort, setSort] = useState<SortState<T>>(null);\r\n\r\n const sortedData = useMemo(() => {\r\n if (!sort) return data;\r\n\r\n const sorted = [...data].sort((a, b) => {\r\n const aVal = a[sort.key];\r\n const bVal = b[sort.key];\r\n\r\n if (aVal < bVal) return sort.direction === 'asc' ? -1 : 1;\r\n if (aVal > bVal) return sort.direction === 'asc' ? 1 : -1;\r\n return 0;\r\n });\r\n\r\n return sorted;\r\n }, [data, sort]);\r\n\r\n const toggleSort = (col: TableColumn<T>) => {\r\n if (!col.sortable) return;\r\n\r\n setSort((prev) => {\r\n if (!prev || prev.key !== col.key) {\r\n return { key: col.key, direction: 'asc' };\r\n }\r\n if (prev.direction === 'asc') {\r\n return { key: col.key, direction: 'desc' };\r\n }\r\n return null; // reset\r\n });\r\n };\r\n\r\n const renderSortIcon = (col: TableColumn<T>) => {\r\n if (!col.sortable) return null;\r\n\r\n const isActive = sort?.key === col.key;\r\n const dir = sort?.direction ?? 'asc';\r\n\r\n return (\r\n <span\r\n className={`ui-table-sort-indicator ${isActive ? 'active' : ''}`}\r\n aria-hidden=\"true\"\r\n >\r\n {isActive ? (dir === 'asc' ? '▲' : '▼') : '↕'}\r\n </span>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"ui-table-container\">\r\n <table className={`ui-table ${className}`}>\r\n <thead>\r\n <tr>\r\n {columns.map((col) => (\r\n <th key={String(col.key)} scope=\"col\">\r\n {col.sortable ? (\r\n <button\r\n type=\"button\"\r\n className=\"ui-table-sort-button\"\r\n onClick={() => toggleSort(col)}\r\n >\r\n {col.label}\r\n {renderSortIcon(col)}\r\n </button>\r\n ) : (\r\n col.label\r\n )}\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {sortedData.length === 0 ? (\r\n <tr>\r\n <td className=\"ui-table-empty\" colSpan={columns.length}>\r\n {emptyText}\r\n </td>\r\n </tr>\r\n ) : (\r\n sortedData.map((row, i) => (\r\n <tr key={i} className=\"ui-table-row\">\r\n {columns.map((col) => (\r\n <td key={String(col.key)}>{String(row[col.key])}</td>\r\n ))}\r\n </tr>\r\n ))\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n}\r\n"],"names":["Table","columns","data","emptyText","className","sort","setSort","useState","sortedData","useMemo","a","b","aVal","bVal","toggleSort","col","prev","renderSortIcon","isActive","dir","jsx","jsxs","row","i"],"mappings":"mKA2BO,SAASA,EAAqC,CACnD,QAAAC,EACA,KAAAC,EACA,UAAAC,EAAY,oBACZ,UAAAC,EAAY,EACd,EAAkB,CAChB,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAuB,IAAI,EAE7CC,EAAaC,EAAAA,QAAQ,IACpBJ,EAEU,CAAC,GAAGH,CAAI,EAAE,KAAK,CAACQ,EAAGC,IAAM,CACtC,MAAMC,EAAOF,EAAEL,EAAK,GAAG,EACjBQ,EAAOF,EAAEN,EAAK,GAAG,EAEvB,OAAIO,EAAOC,EAAaR,EAAK,YAAc,MAAQ,GAAK,EACpDO,EAAOC,EAAaR,EAAK,YAAc,MAAQ,EAAI,GAChD,CACT,CAAC,EATiBH,EAYjB,CAACA,EAAMG,CAAI,CAAC,EAETS,EAAcC,GAAwB,CACrCA,EAAI,UAETT,EAASU,GACH,CAACA,GAAQA,EAAK,MAAQD,EAAI,IACrB,CAAE,IAAKA,EAAI,IAAK,UAAW,KAAA,EAEhCC,EAAK,YAAc,MACd,CAAE,IAAKD,EAAI,IAAK,UAAW,MAAA,EAE7B,IACR,CACH,EAEME,EAAkBF,GAAwB,CAC9C,GAAI,CAACA,EAAI,SAAU,OAAO,KAE1B,MAAMG,EAAWb,GAAM,MAAQU,EAAI,IAC7BI,EAAMd,GAAM,WAAa,MAE/B,OACEe,EAAAA,IAAC,OAAA,CACC,UAAW,2BAA2BF,EAAW,SAAW,EAAE,GAC9D,cAAY,OAEX,SAAAA,EAAYC,IAAQ,MAAQ,IAAM,IAAO,GAAA,CAAA,CAGhD,EAEA,OACEC,EAAAA,IAAC,OAAI,UAAU,qBACb,gBAAC,QAAA,CAAM,UAAW,YAAYhB,CAAS,GACrC,SAAA,CAAAgB,MAAC,QAAA,CACC,SAAAA,EAAAA,IAAC,KAAA,CACE,SAAAnB,EAAQ,IAAKc,GACZK,EAAAA,IAAC,KAAA,CAAyB,MAAM,MAC7B,SAAAL,EAAI,SACHM,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,UAAU,uBACV,QAAS,IAAMP,EAAWC,CAAG,EAE5B,SAAA,CAAAA,EAAI,MACJE,EAAeF,CAAG,CAAA,CAAA,CAAA,EAGrBA,EAAI,KAAA,EAXC,OAAOA,EAAI,GAAG,CAavB,CACD,CAAA,CACH,EACF,EAEAK,EAAAA,IAAC,SACE,SAAAZ,EAAW,SAAW,EACrBY,EAAAA,IAAC,KAAA,CACC,eAAC,KAAA,CAAG,UAAU,iBAAiB,QAASnB,EAAQ,OAC7C,SAAAE,CAAA,CACH,EACF,EAEAK,EAAW,IAAI,CAACc,EAAKC,IACnBH,EAAAA,IAAC,MAAW,UAAU,eACnB,WAAQ,IAAKL,GACZK,EAAAA,IAAC,KAAA,CAA0B,gBAAOE,EAAIP,EAAI,GAAG,CAAC,CAAA,EAArC,OAAOA,EAAI,GAAG,CAAyB,CACjD,GAHMQ,CAIT,CACD,CAAA,CAEL,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
@@ -0,0 +1,46 @@
1
+ import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
+ import { useState as m, useMemo as f } from "react";
3
+ /* empty css */
4
+ function N({
5
+ columns: a,
6
+ data: s,
7
+ emptyText: u = "No data available",
8
+ className: b = ""
9
+ }) {
10
+ const [n, h] = m(null), c = f(() => n ? [...s].sort((t, i) => {
11
+ const o = t[n.key], l = i[n.key];
12
+ return o < l ? n.direction === "asc" ? -1 : 1 : o > l ? n.direction === "asc" ? 1 : -1 : 0;
13
+ }) : s, [s, n]), y = (e) => {
14
+ e.sortable && h((t) => !t || t.key !== e.key ? { key: e.key, direction: "asc" } : t.direction === "asc" ? { key: e.key, direction: "desc" } : null);
15
+ }, k = (e) => {
16
+ if (!e.sortable) return null;
17
+ const t = n?.key === e.key, i = n?.direction ?? "asc";
18
+ return /* @__PURE__ */ r(
19
+ "span",
20
+ {
21
+ className: `ui-table-sort-indicator ${t ? "active" : ""}`,
22
+ "aria-hidden": "true",
23
+ children: t ? i === "asc" ? "▲" : "▼" : "↕"
24
+ }
25
+ );
26
+ };
27
+ return /* @__PURE__ */ r("div", { className: "ui-table-container", children: /* @__PURE__ */ d("table", { className: `ui-table ${b}`, children: [
28
+ /* @__PURE__ */ r("thead", { children: /* @__PURE__ */ r("tr", { children: a.map((e) => /* @__PURE__ */ r("th", { scope: "col", children: e.sortable ? /* @__PURE__ */ d(
29
+ "button",
30
+ {
31
+ type: "button",
32
+ className: "ui-table-sort-button",
33
+ onClick: () => y(e),
34
+ children: [
35
+ e.label,
36
+ k(e)
37
+ ]
38
+ }
39
+ ) : e.label }, String(e.key))) }) }),
40
+ /* @__PURE__ */ r("tbody", { children: c.length === 0 ? /* @__PURE__ */ r("tr", { children: /* @__PURE__ */ r("td", { className: "ui-table-empty", colSpan: a.length, children: u }) }) : c.map((e, t) => /* @__PURE__ */ r("tr", { className: "ui-table-row", children: a.map((i) => /* @__PURE__ */ r("td", { children: String(e[i.key]) }, String(i.key))) }, t)) })
41
+ ] }) });
42
+ }
43
+ export {
44
+ N as Table
45
+ };
46
+ //# sourceMappingURL=Table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sources":["../../../../src/components/table/Table.tsx"],"sourcesContent":["/**\r\n * Table.tsx\r\n * ----------\r\n * Accessible, sortable, theme-aware table.\r\n */\r\n\r\nimport { useState, useMemo } from 'react';\r\nimport './Table.css';\r\n\r\nexport interface TableColumn<T> {\r\n key: keyof T;\r\n label: string;\r\n sortable?: boolean;\r\n}\r\n\r\ninterface TableProps<T> {\r\n columns: TableColumn<T>[];\r\n data: T[];\r\n emptyText?: string;\r\n className?: string;\r\n}\r\n\r\ntype SortState<T> = {\r\n key: keyof T;\r\n direction: 'asc' | 'desc';\r\n} | null;\r\n\r\nexport function Table<T extends Record<string, any>>({\r\n columns,\r\n data,\r\n emptyText = 'No data available',\r\n className = '',\r\n}: TableProps<T>) {\r\n const [sort, setSort] = useState<SortState<T>>(null);\r\n\r\n const sortedData = useMemo(() => {\r\n if (!sort) return data;\r\n\r\n const sorted = [...data].sort((a, b) => {\r\n const aVal = a[sort.key];\r\n const bVal = b[sort.key];\r\n\r\n if (aVal < bVal) return sort.direction === 'asc' ? -1 : 1;\r\n if (aVal > bVal) return sort.direction === 'asc' ? 1 : -1;\r\n return 0;\r\n });\r\n\r\n return sorted;\r\n }, [data, sort]);\r\n\r\n const toggleSort = (col: TableColumn<T>) => {\r\n if (!col.sortable) return;\r\n\r\n setSort((prev) => {\r\n if (!prev || prev.key !== col.key) {\r\n return { key: col.key, direction: 'asc' };\r\n }\r\n if (prev.direction === 'asc') {\r\n return { key: col.key, direction: 'desc' };\r\n }\r\n return null; // reset\r\n });\r\n };\r\n\r\n const renderSortIcon = (col: TableColumn<T>) => {\r\n if (!col.sortable) return null;\r\n\r\n const isActive = sort?.key === col.key;\r\n const dir = sort?.direction ?? 'asc';\r\n\r\n return (\r\n <span\r\n className={`ui-table-sort-indicator ${isActive ? 'active' : ''}`}\r\n aria-hidden=\"true\"\r\n >\r\n {isActive ? (dir === 'asc' ? '▲' : '▼') : '↕'}\r\n </span>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"ui-table-container\">\r\n <table className={`ui-table ${className}`}>\r\n <thead>\r\n <tr>\r\n {columns.map((col) => (\r\n <th key={String(col.key)} scope=\"col\">\r\n {col.sortable ? (\r\n <button\r\n type=\"button\"\r\n className=\"ui-table-sort-button\"\r\n onClick={() => toggleSort(col)}\r\n >\r\n {col.label}\r\n {renderSortIcon(col)}\r\n </button>\r\n ) : (\r\n col.label\r\n )}\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n {sortedData.length === 0 ? (\r\n <tr>\r\n <td className=\"ui-table-empty\" colSpan={columns.length}>\r\n {emptyText}\r\n </td>\r\n </tr>\r\n ) : (\r\n sortedData.map((row, i) => (\r\n <tr key={i} className=\"ui-table-row\">\r\n {columns.map((col) => (\r\n <td key={String(col.key)}>{String(row[col.key])}</td>\r\n ))}\r\n </tr>\r\n ))\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n );\r\n}\r\n"],"names":["Table","columns","data","emptyText","className","sort","setSort","useState","sortedData","useMemo","a","b","aVal","bVal","toggleSort","col","prev","renderSortIcon","isActive","dir","jsx","jsxs","row","i"],"mappings":";;;AA2BO,SAASA,EAAqC;AAAA,EACnD,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AACd,GAAkB;AAChB,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAuB,IAAI,GAE7CC,IAAaC,EAAQ,MACpBJ,IAEU,CAAC,GAAGH,CAAI,EAAE,KAAK,CAACQ,GAAGC,MAAM;AACtC,UAAMC,IAAOF,EAAEL,EAAK,GAAG,GACjBQ,IAAOF,EAAEN,EAAK,GAAG;AAEvB,WAAIO,IAAOC,IAAaR,EAAK,cAAc,QAAQ,KAAK,IACpDO,IAAOC,IAAaR,EAAK,cAAc,QAAQ,IAAI,KAChD;AAAA,EACT,CAAC,IATiBH,GAYjB,CAACA,GAAMG,CAAI,CAAC,GAETS,IAAa,CAACC,MAAwB;AAC1C,IAAKA,EAAI,YAETT,EAAQ,CAACU,MACH,CAACA,KAAQA,EAAK,QAAQD,EAAI,MACrB,EAAE,KAAKA,EAAI,KAAK,WAAW,MAAA,IAEhCC,EAAK,cAAc,QACd,EAAE,KAAKD,EAAI,KAAK,WAAW,OAAA,IAE7B,IACR;AAAA,EACH,GAEME,IAAiB,CAACF,MAAwB;AAC9C,QAAI,CAACA,EAAI,SAAU,QAAO;AAE1B,UAAMG,IAAWb,GAAM,QAAQU,EAAI,KAC7BI,IAAMd,GAAM,aAAa;AAE/B,WACE,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,2BAA2BF,IAAW,WAAW,EAAE;AAAA,QAC9D,eAAY;AAAA,QAEX,UAAAA,IAAYC,MAAQ,QAAQ,MAAM,MAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAGhD;AAEA,SACE,gBAAAC,EAAC,SAAI,WAAU,sBACb,4BAAC,SAAA,EAAM,WAAW,YAAYhB,CAAS,IACrC,UAAA;AAAA,IAAA,gBAAAgB,EAAC,SAAA,EACC,UAAA,gBAAAA,EAAC,MAAA,EACE,UAAAnB,EAAQ,IAAI,CAACc,MACZ,gBAAAK,EAAC,MAAA,EAAyB,OAAM,OAC7B,UAAAL,EAAI,WACH,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QACV,SAAS,MAAMP,EAAWC,CAAG;AAAA,QAE5B,UAAA;AAAA,UAAAA,EAAI;AAAA,UACJE,EAAeF,CAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAGrBA,EAAI,MAAA,GAXC,OAAOA,EAAI,GAAG,CAavB,CACD,EAAA,CACH,GACF;AAAA,IAEA,gBAAAK,EAAC,WACE,UAAAZ,EAAW,WAAW,IACrB,gBAAAY,EAAC,MAAA,EACC,4BAAC,MAAA,EAAG,WAAU,kBAAiB,SAASnB,EAAQ,QAC7C,UAAAE,EAAA,CACH,GACF,IAEAK,EAAW,IAAI,CAACc,GAAKC,MACnB,gBAAAH,EAAC,QAAW,WAAU,gBACnB,YAAQ,IAAI,CAACL,MACZ,gBAAAK,EAAC,MAAA,EAA0B,iBAAOE,EAAIP,EAAI,GAAG,CAAC,EAAA,GAArC,OAAOA,EAAI,GAAG,CAAyB,CACjD,KAHMQ,CAIT,CACD,EAAA,CAEL;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),c=require("react");;/* empty css */function h({tabs:i,defaultTab:u,className:a=""}){const[t,s]=c.useState(u||i[0]?.id),o=c.useRef([]);c.useEffect(()=>{const e=i.findIndex(n=>n.id===t);o.current[e]?.focus()},[t,i]);const f=(e,n)=>{if(!["ArrowRight","ArrowLeft","Home","End"].includes(e.key))return;e.preventDefault();let r=n;e.key==="ArrowRight"&&(r=(n+1)%i.length),e.key==="ArrowLeft"&&(r=(n-1+i.length)%i.length),e.key==="Home"&&(r=0),e.key==="End"&&(r=i.length-1),s(i[r].id)};return l.jsxs("div",{className:`ui-tabs ${a}`,children:[l.jsx("div",{role:"tablist",className:"ui-tabs-list",children:i.map((e,n)=>{const r=e.id===t;return l.jsx("button",{ref:d=>{o.current[n]=d},role:"tab",id:`tab-${e.id}`,"aria-selected":r,"aria-controls":`panel-${e.id}`,tabIndex:r?0:-1,className:"ui-tab",onClick:()=>s(e.id),onKeyDown:d=>f(d,n),children:e.label},e.id)})}),i.map(e=>e.id===t?l.jsx("div",{id:`panel-${e.id}`,role:"tabpanel","aria-labelledby":`tab-${e.id}`,className:"ui-tabs-panel",children:e.content},e.id):null)]})}exports.Tabs=h;
2
+ //# sourceMappingURL=Tabs.cjs.map