haze-ui 1.26.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/README.md +420 -36
  2. package/dist/components/Anchor/Anchor.js +78 -0
  3. package/dist/components/Anchor/index.js +3 -0
  4. package/dist/components/AppShell/AppShell.js +44 -0
  5. package/dist/components/AppShell/index.js +3 -0
  6. package/dist/components/AspectRatio/AspectRatio.js +0 -1
  7. package/dist/components/AspectRatio/index.js +0 -1
  8. package/dist/components/Badge/Badge.js +5 -17
  9. package/dist/components/Badge/badge-styles.js +15 -0
  10. package/dist/components/Badge/index.js +3 -3
  11. package/dist/components/BottomSheet/BottomSheet.js +133 -22
  12. package/dist/components/Button/index.js +4 -3
  13. package/dist/components/Calendar/Calendar.js +525 -78
  14. package/dist/components/Calendar/date.js +35 -2
  15. package/dist/components/Card/Card.js +0 -1
  16. package/dist/components/Card/index.js +0 -1
  17. package/dist/components/Carousel/Carousel.js +64 -41
  18. package/dist/components/Cascader/Cascader.js +222 -140
  19. package/dist/components/Chart/Chart.js +34 -0
  20. package/dist/components/Chart/chart-elements.js +164 -0
  21. package/dist/components/Chart/index.js +3 -0
  22. package/dist/components/ChatContainer/ChatContainer.js +36 -16
  23. package/dist/components/ChatInput/ChatInput.js +49 -29
  24. package/dist/components/ChatMessage/ChatMessage.js +76 -29
  25. package/dist/components/Checkbox/Checkbox.js +6 -5
  26. package/dist/components/Checkbox/CheckboxCore.js +6 -5
  27. package/dist/components/CodeBlock/CodeBlock.js +39 -10
  28. package/dist/components/CodeBlock/index.js +0 -1
  29. package/dist/components/Collapsible/Collapsible.js +23 -10
  30. package/dist/components/ColorPicker/ColorPicker.js +5 -4
  31. package/dist/components/ColorPicker/ColorPickerCore.js +5 -4
  32. package/dist/components/Combobox/Combobox.js +202 -75
  33. package/dist/components/Combobox/ComboboxGroup.js +23 -0
  34. package/dist/components/Combobox/ComboboxOption.js +7 -6
  35. package/dist/components/Combobox/index.js +4 -3
  36. package/dist/components/Command/Command.js +102 -59
  37. package/dist/components/Command/CommandDialog.js +48 -0
  38. package/dist/components/Command/command-filter.js +16 -0
  39. package/dist/components/Command/index.js +3 -2
  40. package/dist/components/ConfirmDialog/ConfirmDialog.js +3 -3
  41. package/dist/components/Container/Container.js +0 -1
  42. package/dist/components/Container/index.js +0 -1
  43. package/dist/components/ContextMenu/ContextMenuContent.js +4 -4
  44. package/dist/components/DataTable/CellEditor.js +38 -0
  45. package/dist/components/DataTable/DataTable.js +394 -143
  46. package/dist/components/DataTable/csv.js +29 -0
  47. package/dist/components/DataTable/features.js +25 -0
  48. package/dist/components/DataTable/index.js +3 -1
  49. package/dist/components/DataTable/summary.js +17 -0
  50. package/dist/components/DateRangePicker/DateRangePicker.js +31 -13
  51. package/dist/components/DateRangePicker/DateRangePickerCore.js +59 -27
  52. package/dist/components/DateRangePicker/presets.js +43 -0
  53. package/dist/components/Datepicker/Datepicker.js +17 -12
  54. package/dist/components/Datepicker/DatepickerCore.js +73 -39
  55. package/dist/components/Datepicker/datetime.js +23 -0
  56. package/dist/components/Descriptions/Descriptions.js +46 -0
  57. package/dist/components/Descriptions/index.js +3 -0
  58. package/dist/components/Dialog/Dialog.js +56 -32
  59. package/dist/components/DiffViewer/DiffViewer.js +31 -30
  60. package/dist/components/Divider/Divider.js +0 -1
  61. package/dist/components/Divider/index.js +0 -1
  62. package/dist/components/Drawer/Drawer.js +49 -29
  63. package/dist/components/DropdownMenu/DropdownMenu.js +38 -26
  64. package/dist/components/DropdownMenu/DropdownMenuSub.js +23 -0
  65. package/dist/components/DropdownMenu/DropdownMenuSubContent.js +24 -0
  66. package/dist/components/DropdownMenu/DropdownMenuSubTrigger.js +30 -0
  67. package/dist/components/DropdownMenu/index.js +4 -1
  68. package/dist/components/FilePreview/FilePreview.js +135 -0
  69. package/dist/components/FilePreview/file-preview-format.js +23 -0
  70. package/dist/components/FilePreview/index.js +3 -0
  71. package/dist/components/Flex/Flex.js +0 -1
  72. package/dist/components/Flex/index.js +0 -1
  73. package/dist/components/FloatButton/FloatButton.js +42 -0
  74. package/dist/components/FloatButton/FloatButtonGroup.js +58 -0
  75. package/dist/components/FloatButton/float-button-context.js +9 -0
  76. package/dist/components/FloatButton/float-button-glyphs.js +26 -0
  77. package/dist/components/FloatButton/float-button-styles.js +14 -0
  78. package/dist/components/FloatButton/index.js +4 -0
  79. package/dist/components/Fullscreen/Fullscreen.js +29 -0
  80. package/dist/components/Fullscreen/index.js +3 -0
  81. package/dist/components/Grid/Grid.js +0 -1
  82. package/dist/components/Grid/GridItem.js +0 -1
  83. package/dist/components/Grid/index.js +0 -1
  84. package/dist/components/Icon/Icon.js +0 -1
  85. package/dist/components/Icon/index.js +0 -1
  86. package/dist/components/Image/Image.js +37 -19
  87. package/dist/components/Image/ImagePreview.js +233 -0
  88. package/dist/components/InlineCompletion/InlineCompletion.js +81 -0
  89. package/dist/components/InlineCompletion/index.js +3 -0
  90. package/dist/components/Input/Input.js +6 -5
  91. package/dist/components/Input/InputCore.js +3 -2
  92. package/dist/components/JsonView/JsonView.js +209 -0
  93. package/dist/components/JsonView/index.js +3 -0
  94. package/dist/components/JsonView/json-view-utils.js +24 -0
  95. package/dist/components/Kbd/Kbd.js +0 -1
  96. package/dist/components/Kbd/index.js +0 -1
  97. package/dist/components/LocaleProvider/LocaleProvider.js +16 -13
  98. package/dist/components/LocaleProvider/index.js +5 -3
  99. package/dist/components/LocaleProvider/ja-jp.js +222 -0
  100. package/dist/components/LocaleProvider/locale.js +99 -5
  101. package/dist/components/LocaleProvider/strings.js +15 -0
  102. package/dist/components/LocaleProvider/useStrings.js +13 -11
  103. package/dist/components/LocaleProvider/zh-cn.js +99 -5
  104. package/dist/components/Masonry/Masonry.js +29 -0
  105. package/dist/components/Masonry/index.js +3 -0
  106. package/dist/components/Masonry/masonry-distribute.js +15 -0
  107. package/dist/components/Mentions/Mentions.js +6 -5
  108. package/dist/components/Mentions/MentionsCore.js +69 -68
  109. package/dist/components/Menu/Menu.js +5 -5
  110. package/dist/components/Menu/MenuSub.js +23 -0
  111. package/dist/components/Menu/MenuSubContent.js +24 -0
  112. package/dist/components/Menu/MenuSubTrigger.js +30 -0
  113. package/dist/components/Menu/index.js +4 -1
  114. package/dist/components/NumberInput/NumberInput.js +6 -5
  115. package/dist/components/NumberInput/NumberInputCore.js +9 -8
  116. package/dist/components/OTPInput/OTPInput.js +5 -4
  117. package/dist/components/OTPInput/OTPInputCore.js +34 -33
  118. package/dist/components/PasswordInput/PasswordInput.js +5 -4
  119. package/dist/components/PasswordInput/PasswordInputCore.js +8 -7
  120. package/dist/components/Popover/Popover.js +43 -31
  121. package/dist/components/PromptInput/PromptInput.js +213 -0
  122. package/dist/components/PromptInput/index.js +3 -0
  123. package/dist/components/Radio/Radio.js +7 -6
  124. package/dist/components/Radio/RadioGroup.js +5 -4
  125. package/dist/components/Radio/RadioGroupCore.js +23 -14
  126. package/dist/components/Rating/Rating.js +5 -4
  127. package/dist/components/Rating/RatingCore.js +62 -28
  128. package/dist/components/Resizable/index.js +1 -1
  129. package/dist/components/Segmented/Segmented.js +5 -4
  130. package/dist/components/Segmented/SegmentedCore.js +22 -18
  131. package/dist/components/Select/OptionGroup.js +12 -0
  132. package/dist/components/Select/Select.js +20 -9
  133. package/dist/components/Select/SelectCore.js +74 -13
  134. package/dist/components/Select/SelectFloating.js +256 -0
  135. package/dist/components/Select/index.js +5 -4
  136. package/dist/components/Select/select-options.js +57 -0
  137. package/dist/components/Sidebar/Sidebar.js +9 -9
  138. package/dist/components/Signature/Signature.js +165 -0
  139. package/dist/components/Signature/index.js +3 -0
  140. package/dist/components/Signature/signature-points.js +28 -0
  141. package/dist/components/Skeleton/Skeleton.js +0 -1
  142. package/dist/components/Skeleton/index.js +0 -1
  143. package/dist/components/Slider/Slider.js +16 -8
  144. package/dist/components/Slider/SliderCore.js +75 -12
  145. package/dist/components/Sources/Sources.js +109 -0
  146. package/dist/components/Sources/index.js +3 -0
  147. package/dist/components/Stat/Stat.js +0 -1
  148. package/dist/components/Stat/index.js +0 -1
  149. package/dist/components/Switch/Switch.js +6 -5
  150. package/dist/components/Switch/SwitchCore.js +3 -2
  151. package/dist/components/Tabs/Tab.js +7 -4
  152. package/dist/components/Tabs/TabList.js +38 -7
  153. package/dist/components/Tabs/TabPanel.js +4 -3
  154. package/dist/components/Tabs/Tabs.js +11 -6
  155. package/dist/components/TagGroup/SortableTagGroup.js +26 -0
  156. package/dist/components/TagGroup/TagGroup.js +4 -6
  157. package/dist/components/TagGroup/TagGroupItem.js +17 -11
  158. package/dist/components/TagGroup/index.js +2 -1
  159. package/dist/components/TagGroup/tag-group-styles.js +7 -0
  160. package/dist/components/TagInput/SortableTagInput.js +24 -0
  161. package/dist/components/TagInput/SortableTagInputCore.js +52 -0
  162. package/dist/components/TagInput/TagInput.js +5 -4
  163. package/dist/components/TagInput/TagInputCore.js +71 -57
  164. package/dist/components/TagInput/index.js +3 -1
  165. package/dist/components/TagInput/tag-input-styles.js +7 -0
  166. package/dist/components/Textarea/Textarea.js +6 -5
  167. package/dist/components/Textarea/TextareaCore.js +3 -2
  168. package/dist/components/TimePicker/TimePicker.js +6 -5
  169. package/dist/components/TimePicker/TimePickerCore.js +3 -2
  170. package/dist/components/Toast/Toast.js +44 -42
  171. package/dist/components/Toast/ToastContainer.js +67 -47
  172. package/dist/components/Toast/ToastContext.js +23 -4
  173. package/dist/components/Toast/toast2.js +63 -28
  174. package/dist/components/Toast/useToast.js +9 -7
  175. package/dist/components/Toggle/Toggle.js +20 -0
  176. package/dist/components/Toggle/ToggleCore.js +31 -0
  177. package/dist/components/Toggle/index.js +4 -0
  178. package/dist/components/Toolbar/Toolbar.js +33 -32
  179. package/dist/components/Toolbar/ToolbarToggle.js +31 -0
  180. package/dist/components/Toolbar/index.js +2 -1
  181. package/dist/components/Tooltip/Tooltip.js +1 -1
  182. package/dist/components/Tour/Tour.js +57 -53
  183. package/dist/components/Tree/Tree.js +265 -80
  184. package/dist/components/Tree/TreeItem.js +91 -55
  185. package/dist/components/Tree/utils.js +82 -10
  186. package/dist/components/Typography/Typography.js +0 -1
  187. package/dist/components/Typography/index.js +0 -1
  188. package/dist/components/Upload/Upload.js +24 -8
  189. package/dist/components/Upload/UploadCore.js +230 -37
  190. package/dist/components/Upload/UploadList.js +300 -0
  191. package/dist/components/Upload/xhr-upload.js +22 -0
  192. package/dist/components/VirtualList/VirtualList.js +84 -56
  193. package/dist/components/Watermark/Watermark.js +55 -0
  194. package/dist/components/Watermark/index.js +3 -0
  195. package/dist/css/anchor.css +2 -0
  196. package/dist/css/app-shell.css +2 -0
  197. package/dist/css/badge.css +1 -1
  198. package/dist/css/bottom-sheet.css +1 -1
  199. package/dist/css/button.css +1 -1
  200. package/dist/css/calendar.css +1 -1
  201. package/dist/css/cascader.css +1 -1
  202. package/dist/css/chart.css +2 -0
  203. package/dist/css/chat-container.css +1 -1
  204. package/dist/css/chat-message.css +1 -1
  205. package/dist/css/combobox.css +3 -2
  206. package/dist/css/command.css +2 -1
  207. package/dist/css/context-menu.css +1 -1
  208. package/dist/css/data-table.css +2 -1
  209. package/dist/css/date-range-picker.css +1 -1
  210. package/dist/css/datepicker.css +2 -2
  211. package/dist/css/descriptions.css +2 -0
  212. package/dist/css/dialog.css +1 -1
  213. package/dist/css/drawer.css +1 -1
  214. package/dist/css/dropdown-menu.css +4 -1
  215. package/dist/css/file-preview.css +2 -0
  216. package/dist/css/float-button.css +2 -0
  217. package/dist/css/image.css +2 -1
  218. package/dist/css/inline-completion.css +2 -0
  219. package/dist/css/json-view.css +2 -0
  220. package/dist/css/masonry.css +2 -0
  221. package/dist/css/menu.css +4 -1
  222. package/dist/css/popover.css +1 -1
  223. package/dist/css/prompt-input.css +2 -0
  224. package/dist/css/rating.css +1 -1
  225. package/dist/css/select.css +3 -1
  226. package/dist/css/signature.css +2 -0
  227. package/dist/css/slider.css +1 -1
  228. package/dist/css/sources.css +2 -0
  229. package/dist/css/tag-group.css +3 -1
  230. package/dist/css/tag-input.css +2 -1
  231. package/dist/css/toggle.css +2 -0
  232. package/dist/css/toolbar.css +1 -0
  233. package/dist/css/tooltip.css +1 -1
  234. package/dist/css/tree.css +2 -2
  235. package/dist/css/upload.css +2 -1
  236. package/dist/css/watermark.css +2 -0
  237. package/dist/css-manifest.json +75 -1
  238. package/dist/form/FormItem.js +55 -50
  239. package/dist/form/FormList.js +79 -0
  240. package/dist/form/index.js +5 -1
  241. package/dist/form/standard-schema.js +16 -0
  242. package/dist/haze-ui.css +61 -30
  243. package/dist/headless/index.js +19 -0
  244. package/dist/hooks/useClickOutside.js +24 -0
  245. package/dist/hooks/useDarkMode.js +27 -0
  246. package/dist/hooks/useFullscreen.js +42 -0
  247. package/dist/hooks/useHotkeys.js +77 -0
  248. package/dist/hooks/useInView.js +27 -0
  249. package/dist/hooks/useLocalStorage.js +8 -0
  250. package/dist/hooks/useMediaQuery.js +2 -1
  251. package/dist/hooks/usePrevious.js +11 -0
  252. package/dist/hooks/useSessionStorage.js +8 -0
  253. package/dist/hooks/useStorageState.js +80 -0
  254. package/dist/index.js +220 -171
  255. package/dist/registry.json +2435 -91
  256. package/dist/tokens/colors.js +0 -1
  257. package/dist/tokens/index.js +0 -1
  258. package/dist/tokens/motion.js +0 -1
  259. package/dist/tokens/oklch.js +0 -1
  260. package/dist/tokens/palette.js +0 -1
  261. package/dist/tokens/registry.js +17 -28
  262. package/dist/tokens/spacing.js +0 -1
  263. package/dist/tokens/typography.js +0 -1
  264. package/dist/types/components/Anchor/Anchor.d.ts +25 -0
  265. package/dist/types/components/Anchor/index.d.ts +2 -0
  266. package/dist/types/components/AppShell/AppShell.d.ts +17 -0
  267. package/dist/types/components/AppShell/index.d.ts +2 -0
  268. package/dist/types/components/Badge/badge-styles.d.ts +21 -0
  269. package/dist/types/components/Badge/index.d.ts +1 -0
  270. package/dist/types/components/BottomSheet/BottomSheet.d.ts +52 -3
  271. package/dist/types/components/BottomSheet/index.d.ts +1 -1
  272. package/dist/types/components/Button/Button.d.ts +7 -0
  273. package/dist/types/components/Button/ButtonLink.d.ts +3 -0
  274. package/dist/types/components/Button/index.d.ts +1 -0
  275. package/dist/types/components/Button/styles.d.ts +17 -0
  276. package/dist/types/components/Calendar/Calendar.d.ts +71 -7
  277. package/dist/types/components/Calendar/date.d.ts +52 -0
  278. package/dist/types/components/Calendar/index.d.ts +1 -1
  279. package/dist/types/components/Cascader/Cascader.d.ts +48 -3
  280. package/dist/types/components/Chart/Chart.d.ts +43 -0
  281. package/dist/types/components/Chart/chart-elements.d.ts +104 -0
  282. package/dist/types/components/Chart/index.d.ts +2 -0
  283. package/dist/types/components/ChatContainer/ChatContainer.d.ts +18 -3
  284. package/dist/types/components/ChatInput/ChatInput.d.ts +11 -1
  285. package/dist/types/components/ChatMessage/ChatMessage.d.ts +13 -1
  286. package/dist/types/components/Checkbox/Checkbox.d.ts +6 -2
  287. package/dist/types/components/Checkbox/CheckboxCore.d.ts +4 -2
  288. package/dist/types/components/CodeBlock/CodeBlock.d.ts +19 -2
  289. package/dist/types/components/CodeBlock/index.d.ts +1 -1
  290. package/dist/types/components/Collapsible/Collapsible.d.ts +24 -2
  291. package/dist/types/components/Collapsible/index.d.ts +1 -1
  292. package/dist/types/components/ColorPicker/ColorPicker.d.ts +7 -1
  293. package/dist/types/components/ColorPicker/ColorPickerCore.d.ts +7 -1
  294. package/dist/types/components/Combobox/Combobox.d.ts +111 -7
  295. package/dist/types/components/Combobox/ComboboxGroup.d.ts +22 -0
  296. package/dist/types/components/Combobox/ComboboxOption.d.ts +7 -2
  297. package/dist/types/components/Combobox/index.d.ts +3 -1
  298. package/dist/types/components/Command/Command.d.ts +70 -6
  299. package/dist/types/components/Command/CommandDialog.d.ts +36 -0
  300. package/dist/types/components/Command/command-filter.d.ts +34 -0
  301. package/dist/types/components/Command/index.d.ts +4 -2
  302. package/dist/types/components/DataTable/CellEditor.d.ts +24 -0
  303. package/dist/types/components/DataTable/DataTable.d.ts +184 -32
  304. package/dist/types/components/DataTable/csv.d.ts +36 -0
  305. package/dist/types/components/DataTable/features.d.ts +124 -0
  306. package/dist/types/components/DataTable/index.d.ts +4 -1
  307. package/dist/types/components/DataTable/summary.d.ts +19 -0
  308. package/dist/types/components/DateRangePicker/DateRangePicker.d.ts +28 -2
  309. package/dist/types/components/DateRangePicker/DateRangePickerCore.d.ts +26 -2
  310. package/dist/types/components/DateRangePicker/index.d.ts +2 -2
  311. package/dist/types/components/DateRangePicker/presets.d.ts +23 -0
  312. package/dist/types/components/Datepicker/Datepicker.d.ts +21 -1
  313. package/dist/types/components/Datepicker/DatepickerCore.d.ts +29 -2
  314. package/dist/types/components/Datepicker/datetime.d.ts +27 -0
  315. package/dist/types/components/Datepicker/index.d.ts +1 -1
  316. package/dist/types/components/Descriptions/Descriptions.d.ts +30 -0
  317. package/dist/types/components/Descriptions/index.d.ts +2 -0
  318. package/dist/types/components/Dialog/Dialog.d.ts +68 -3
  319. package/dist/types/components/Dialog/index.d.ts +1 -1
  320. package/dist/types/components/Drawer/Drawer.d.ts +33 -3
  321. package/dist/types/components/Drawer/index.d.ts +1 -1
  322. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +23 -3
  323. package/dist/types/components/DropdownMenu/DropdownMenuSub.d.ts +18 -0
  324. package/dist/types/components/DropdownMenu/DropdownMenuSubContent.d.ts +13 -0
  325. package/dist/types/components/DropdownMenu/DropdownMenuSubTrigger.d.ts +14 -0
  326. package/dist/types/components/DropdownMenu/index.d.ts +7 -1
  327. package/dist/types/components/FilePreview/FilePreview.d.ts +35 -0
  328. package/dist/types/components/FilePreview/file-preview-format.d.ts +20 -0
  329. package/dist/types/components/FilePreview/index.d.ts +2 -0
  330. package/dist/types/components/FloatButton/FloatButton.d.ts +43 -0
  331. package/dist/types/components/FloatButton/FloatButtonGroup.d.ts +33 -0
  332. package/dist/types/components/FloatButton/float-button-context.d.ts +11 -0
  333. package/dist/types/components/FloatButton/float-button-glyphs.d.ts +3 -0
  334. package/dist/types/components/FloatButton/float-button-styles.d.ts +58 -0
  335. package/dist/types/components/FloatButton/index.d.ts +4 -0
  336. package/dist/types/components/Fullscreen/Fullscreen.d.ts +34 -0
  337. package/dist/types/components/Fullscreen/index.d.ts +3 -0
  338. package/dist/types/components/Image/Image.d.ts +20 -5
  339. package/dist/types/components/Image/ImagePreview.d.ts +13 -0
  340. package/dist/types/components/Image/index.d.ts +1 -1
  341. package/dist/types/components/InlineCompletion/InlineCompletion.d.ts +29 -0
  342. package/dist/types/components/InlineCompletion/index.d.ts +2 -0
  343. package/dist/types/components/Input/Input.d.ts +5 -2
  344. package/dist/types/components/Input/InputCore.d.ts +4 -2
  345. package/dist/types/components/JsonView/JsonView.d.ts +26 -0
  346. package/dist/types/components/JsonView/index.d.ts +2 -0
  347. package/dist/types/components/JsonView/json-view-utils.d.ts +22 -0
  348. package/dist/types/components/LocaleProvider/LocaleContext.d.ts +9 -0
  349. package/dist/types/components/LocaleProvider/LocaleProvider.d.ts +12 -1
  350. package/dist/types/components/LocaleProvider/index.d.ts +3 -0
  351. package/dist/types/components/LocaleProvider/ja-jp.d.ts +13 -0
  352. package/dist/types/components/LocaleProvider/locale.d.ts +100 -0
  353. package/dist/types/components/LocaleProvider/strings.d.ts +28 -0
  354. package/dist/types/components/Masonry/Masonry.d.ts +34 -0
  355. package/dist/types/components/Masonry/index.d.ts +2 -0
  356. package/dist/types/components/Masonry/masonry-distribute.d.ts +16 -0
  357. package/dist/types/components/Mentions/Mentions.d.ts +5 -2
  358. package/dist/types/components/Mentions/MentionsCore.d.ts +4 -2
  359. package/dist/types/components/Menu/MenuSub.d.ts +18 -0
  360. package/dist/types/components/Menu/MenuSubContent.d.ts +12 -0
  361. package/dist/types/components/Menu/MenuSubTrigger.d.ts +14 -0
  362. package/dist/types/components/Menu/index.d.ts +6 -0
  363. package/dist/types/components/NumberInput/NumberInput.d.ts +5 -2
  364. package/dist/types/components/NumberInput/NumberInputCore.d.ts +4 -2
  365. package/dist/types/components/OTPInput/OTPInput.d.ts +5 -1
  366. package/dist/types/components/OTPInput/OTPInputCore.d.ts +4 -1
  367. package/dist/types/components/PasswordInput/PasswordInput.d.ts +5 -1
  368. package/dist/types/components/PasswordInput/PasswordInputCore.d.ts +4 -1
  369. package/dist/types/components/Popover/Popover.d.ts +41 -3
  370. package/dist/types/components/Popover/index.d.ts +1 -1
  371. package/dist/types/components/PromptInput/PromptInput.d.ts +46 -0
  372. package/dist/types/components/PromptInput/index.d.ts +2 -0
  373. package/dist/types/components/Radio/Radio.d.ts +5 -2
  374. package/dist/types/components/Radio/RadioGroup.d.ts +8 -2
  375. package/dist/types/components/Radio/RadioGroupCore.d.ts +7 -2
  376. package/dist/types/components/Rating/Rating.d.ts +8 -1
  377. package/dist/types/components/Rating/RatingCore.d.ts +7 -1
  378. package/dist/types/components/Resizable/index.d.ts +2 -0
  379. package/dist/types/components/Segmented/Segmented.d.ts +8 -1
  380. package/dist/types/components/Segmented/SegmentedCore.d.ts +7 -2
  381. package/dist/types/components/Select/OptionGroup.d.ts +16 -0
  382. package/dist/types/components/Select/Select.d.ts +78 -4
  383. package/dist/types/components/Select/SelectCore.d.ts +79 -6
  384. package/dist/types/components/Select/SelectFloating.d.ts +94 -0
  385. package/dist/types/components/Select/index.d.ts +2 -0
  386. package/dist/types/components/Select/select-options.d.ts +53 -0
  387. package/dist/types/components/Signature/Signature.d.ts +51 -0
  388. package/dist/types/components/Signature/index.d.ts +2 -0
  389. package/dist/types/components/Signature/signature-points.d.ts +31 -0
  390. package/dist/types/components/Slider/Slider.d.ts +29 -4
  391. package/dist/types/components/Slider/SliderCore.d.ts +35 -6
  392. package/dist/types/components/Sources/Sources.d.ts +37 -0
  393. package/dist/types/components/Sources/index.d.ts +2 -0
  394. package/dist/types/components/Switch/Switch.d.ts +5 -2
  395. package/dist/types/components/Switch/SwitchCore.d.ts +4 -2
  396. package/dist/types/components/Tabs/TabList.d.ts +7 -0
  397. package/dist/types/components/Tabs/Tabs.d.ts +8 -1
  398. package/dist/types/components/Tabs/TabsContext.d.ts +20 -0
  399. package/dist/types/components/Tabs/index.d.ts +1 -0
  400. package/dist/types/components/TagGroup/SortableTagGroup.d.ts +20 -0
  401. package/dist/types/components/TagGroup/TagGroup.d.ts +3 -0
  402. package/dist/types/components/TagGroup/index.d.ts +2 -0
  403. package/dist/types/components/TagGroup/tag-group-styles.d.ts +7 -0
  404. package/dist/types/components/TagInput/SortableTagInput.d.ts +34 -0
  405. package/dist/types/components/TagInput/SortableTagInputCore.d.ts +18 -0
  406. package/dist/types/components/TagInput/TagInput.d.ts +5 -1
  407. package/dist/types/components/TagInput/TagInputCore.d.ts +6 -2
  408. package/dist/types/components/TagInput/index.d.ts +4 -0
  409. package/dist/types/components/TagInput/tag-input-styles.d.ts +12 -0
  410. package/dist/types/components/Textarea/Textarea.d.ts +5 -2
  411. package/dist/types/components/Textarea/TextareaCore.d.ts +4 -2
  412. package/dist/types/components/TimePicker/TimePicker.d.ts +5 -2
  413. package/dist/types/components/TimePicker/TimePickerCore.d.ts +4 -2
  414. package/dist/types/components/Toast/Toast.d.ts +31 -2
  415. package/dist/types/components/Toast/ToastContainer.d.ts +11 -1
  416. package/dist/types/components/Toast/ToastContext.d.ts +44 -3
  417. package/dist/types/components/Toast/index.d.ts +1 -1
  418. package/dist/types/components/Toast/toast.d.ts +35 -4
  419. package/dist/types/components/Toast/useToast.d.ts +16 -4
  420. package/dist/types/components/Toggle/Toggle.d.ts +19 -0
  421. package/dist/types/components/Toggle/ToggleCore.d.ts +23 -0
  422. package/dist/types/components/Toggle/index.d.ts +4 -0
  423. package/dist/types/components/Toolbar/ToolbarToggle.d.ts +19 -0
  424. package/dist/types/components/Toolbar/index.d.ts +2 -0
  425. package/dist/types/components/Tour/Tour.d.ts +3 -3
  426. package/dist/types/components/Tree/Tree.d.ts +3 -3
  427. package/dist/types/components/Tree/TreeItem.d.ts +16 -1
  428. package/dist/types/components/Tree/types.d.ts +51 -0
  429. package/dist/types/components/Tree/utils.d.ts +73 -0
  430. package/dist/types/components/Upload/Upload.d.ts +47 -3
  431. package/dist/types/components/Upload/UploadCore.d.ts +95 -4
  432. package/dist/types/components/Upload/UploadList.d.ts +18 -0
  433. package/dist/types/components/Upload/index.d.ts +1 -0
  434. package/dist/types/components/Upload/types.d.ts +60 -0
  435. package/dist/types/components/Upload/xhr-upload.d.ts +20 -0
  436. package/dist/types/components/VirtualList/VirtualList.d.ts +16 -1
  437. package/dist/types/components/Watermark/Watermark.d.ts +32 -0
  438. package/dist/types/components/Watermark/index.d.ts +2 -0
  439. package/dist/types/form/FormItem.d.ts +33 -8
  440. package/dist/types/form/FormList.d.ts +113 -0
  441. package/dist/types/form/index.d.ts +26 -0
  442. package/dist/types/form/standard-schema.d.ts +30 -0
  443. package/dist/types/headless/index.d.ts +399 -0
  444. package/dist/types/hooks/index.d.ts +13 -0
  445. package/dist/types/hooks/useClickOutside.d.ts +46 -0
  446. package/dist/types/hooks/useDarkMode.d.ts +40 -0
  447. package/dist/types/hooks/useFullscreen.d.ts +33 -0
  448. package/dist/types/hooks/useHotkeys.d.ts +53 -0
  449. package/dist/types/hooks/useInView.d.ts +32 -0
  450. package/dist/types/hooks/useLocalStorage.d.ts +33 -0
  451. package/dist/types/hooks/useMediaQuery.d.ts +3 -0
  452. package/dist/types/hooks/usePrevious.d.ts +18 -0
  453. package/dist/types/hooks/useSessionStorage.d.ts +26 -0
  454. package/dist/types/hooks/useStorageState.d.ts +12 -0
  455. package/dist/types/index.d.ts +79 -37
  456. package/dist/types/utils/collision.d.ts +39 -1
  457. package/dist/types/utils/direction.d.ts +22 -0
  458. package/dist/types/utils/floating.d.ts +32 -4
  459. package/dist/types/utils/focus-scope.d.ts +2 -1
  460. package/dist/types/utils/focus.d.ts +2 -1
  461. package/dist/types/utils/menuKeyboard.d.ts +19 -4
  462. package/dist/types/utils/refs.d.ts +16 -0
  463. package/dist/types/utils/sortable-handle.d.ts +25 -0
  464. package/dist/types/utils/sortable-shared.d.ts +30 -0
  465. package/dist/types/utils/sortable.d.ts +36 -0
  466. package/dist/types/utils/submenu.d.ts +63 -0
  467. package/dist/types/utils/view-transition.d.ts +28 -0
  468. package/dist/utils/classnames.js +0 -1
  469. package/dist/utils/collision.js +37 -26
  470. package/dist/utils/direction.js +34 -0
  471. package/dist/utils/floating.js +163 -143
  472. package/dist/utils/menuKeyboard.js +59 -46
  473. package/dist/utils/refs.js +9 -0
  474. package/dist/utils/sortable-handle.js +12 -0
  475. package/dist/utils/sortable-shared.js +16 -0
  476. package/dist/utils/sortable.js +47 -0
  477. package/dist/utils/submenu.js +106 -0
  478. package/dist/utils/view-transition.js +26 -0
  479. package/package.json +169 -16
@@ -1,89 +1,102 @@
1
1
  "use client";
2
- import { useCallback as e, useEffect as t, useRef as n } from "react";
2
+ import { getDirection as e } from "./direction.js";
3
+ import { useCallback as t, useEffect as n, useRef as r } from "react";
3
4
  //#region src/lib/utils/menuKeyboard.ts
4
- var r = 500, i = "[role=\"menuitem\"]:not([disabled])";
5
- function a(e, t = i) {
6
- return e ? Array.from(e.querySelectorAll(t)) : [];
5
+ var i = 500, a = "[role=\"menuitem\"]:not([disabled])";
6
+ function o(e, t = a) {
7
+ if (!e) return [];
8
+ let n = Array.from(e.querySelectorAll(t));
9
+ return e.getAttribute("role") === "menu" ? n.filter((t) => t.closest("[role=\"menu\"]") === e) : n;
7
10
  }
8
- function o({ menuRef: i, onClose: o, selector: s }) {
9
- let c = n(""), l = n(0);
10
- return t(() => () => window.clearTimeout(l.current), []), e((e) => {
11
- let t = a(i.current, s);
12
- if (t.length === 0) return;
13
- let n = t.indexOf(document.activeElement), u = (e) => t[e]?.focus();
14
- switch (e.key) {
15
- case "ArrowDown":
16
- e.preventDefault(), u((n + 1) % t.length);
11
+ function s({ menuRef: a, onClose: s, selector: c, onCloseToStart: l, orientation: u = "vertical" }) {
12
+ let d = r(""), f = r(0);
13
+ return n(() => () => window.clearTimeout(f.current), []), t((t) => {
14
+ let n = o(a.current, c);
15
+ if (n.length === 0) return;
16
+ let r = n.indexOf(document.activeElement), p = (e) => n[e]?.focus(), m = u === "horizontal" ? e(a.current) === "rtl" ? "ArrowLeft" : "ArrowRight" : "ArrowDown", h = u === "horizontal" ? e(a.current) === "rtl" ? "ArrowRight" : "ArrowLeft" : "ArrowUp";
17
+ if (l) {
18
+ let n = e(a.current) === "rtl" ? "ArrowRight" : "ArrowLeft";
19
+ if (t.key === n) {
20
+ t.preventDefault(), l();
17
21
  return;
18
- case "ArrowUp":
19
- e.preventDefault(), u((n - 1 + t.length) % t.length);
22
+ }
23
+ }
24
+ switch (t.key) {
25
+ case m:
26
+ t.preventDefault(), p((r + 1) % n.length);
27
+ return;
28
+ case h:
29
+ t.preventDefault(), p((r - 1 + n.length) % n.length);
20
30
  return;
21
31
  case "Home":
22
- e.preventDefault(), u(0);
32
+ t.preventDefault(), p(0);
23
33
  return;
24
34
  case "End":
25
- e.preventDefault(), u(t.length - 1);
35
+ t.preventDefault(), p(n.length - 1);
26
36
  return;
27
37
  case "Escape":
28
- e.preventDefault(), o();
38
+ t.preventDefault(), s();
29
39
  return;
30
40
  case "Tab":
31
- e.preventDefault(), o();
41
+ t.preventDefault(), s();
32
42
  return;
33
43
  default: {
34
- if (e.key.length !== 1 || e.ctrlKey || e.metaKey || e.altKey) return;
35
- e.preventDefault();
36
- let i = (c.current + e.key).toLowerCase();
37
- c.current = i, window.clearTimeout(l.current), l.current = window.setTimeout(() => {
38
- c.current = "";
39
- }, r);
40
- let a = n + 1;
41
- for (let e = 0; e < t.length; e++) {
42
- let n = (a + e) % t.length;
43
- if (t[n].textContent.toLowerCase().startsWith(i)) {
44
- u(n);
44
+ if (t.key.length !== 1 || t.ctrlKey || t.metaKey || t.altKey) return;
45
+ t.preventDefault();
46
+ let e = (d.current + t.key).toLowerCase();
47
+ d.current = e, window.clearTimeout(f.current), f.current = window.setTimeout(() => {
48
+ d.current = "";
49
+ }, i);
50
+ let a = r + 1;
51
+ for (let t = 0; t < n.length; t++) {
52
+ let r = (a + t) % n.length;
53
+ if (n[r].textContent.toLowerCase().startsWith(e)) {
54
+ p(r);
45
55
  return;
46
56
  }
47
57
  }
48
58
  }
49
59
  }
50
60
  }, [
51
- i,
52
- o,
53
- s
61
+ a,
62
+ s,
63
+ c,
64
+ l,
65
+ u
54
66
  ]);
55
67
  }
56
- function s({ menuRef: e, active: n, selector: r = i }) {
57
- t(() => {
58
- let t = e.current;
59
- if (!n || !t) return;
68
+ function c({ menuRef: e, active: t, selector: r = a }) {
69
+ n(() => {
70
+ let n = e.current;
71
+ if (!t || !n) return;
60
72
  let i = () => {
61
- let e = a(t, r);
73
+ let e = o(n, r);
62
74
  if (e.length === 0) return;
63
- let n = e.findIndex((e) => e.tabIndex === 0), i = n >= 0 ? n : 0;
75
+ let t = e.findIndex((e) => e.tabIndex === 0), i = t >= 0 ? t : 0;
64
76
  e.forEach((e, t) => {
65
77
  e.tabIndex = t === i ? 0 : -1;
66
78
  });
67
79
  };
68
80
  i();
69
- let o = new MutationObserver(i);
70
- o.observe(t, {
81
+ let a = new MutationObserver(i);
82
+ a.observe(n, {
71
83
  childList: !0,
72
84
  subtree: !0
73
85
  });
74
86
  let s = (e) => {
75
- a(t, r).forEach((t) => {
87
+ let t = o(n, r);
88
+ t.includes(e.target) && t.forEach((t) => {
76
89
  t.tabIndex = t === e.target ? 0 : -1;
77
90
  });
78
91
  };
79
- return t.addEventListener("focusin", s), () => {
80
- o.disconnect(), t.removeEventListener("focusin", s);
92
+ return n.addEventListener("focusin", s), () => {
93
+ a.disconnect(), n.removeEventListener("focusin", s);
81
94
  };
82
95
  }, [
83
96
  e,
84
- n,
97
+ t,
85
98
  r
86
99
  ]);
87
100
  }
88
101
  //#endregion
89
- export { a as getEnabledMenuItems, o as useMenuKeyboard, s as useRovingTabindex };
102
+ export { o as getEnabledMenuItems, s as useMenuKeyboard, c as useRovingTabindex };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ //#region src/lib/utils/refs.ts
3
+ function e(...e) {
4
+ return (t) => {
5
+ for (let n of e) n && (typeof n == "function" ? n(t) : n.current = t);
6
+ };
7
+ }
8
+ //#endregion
9
+ export { e as mergeRefs };
@@ -0,0 +1,12 @@
1
+
2
+ "use client";
3
+ /* empty css */
4
+ import { createContext as e, useContext as t } from "react";
5
+ //#region src/lib/utils/sortable-handle.ts
6
+ var n = e(null);
7
+ function r() {
8
+ return t(n);
9
+ }
10
+ var i = "haze-sortable-handle__sortableHandle";
11
+ //#endregion
12
+ export { n as SortableHandleContext, i as sortableHandle, r as useSortableHandle };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { sortableKeyboardCoordinates as e } from "@dnd-kit/sortable";
3
+ import { KeyboardSensor as t, PointerSensor as n, useSensor as r, useSensors as i } from "@dnd-kit/core";
4
+ import { CSS as a } from "@dnd-kit/utilities";
5
+ //#region src/lib/utils/sortable-shared.ts
6
+ function o() {
7
+ return i(r(n, { activationConstraint: { distance: 8 } }), r(t, { coordinateGetter: e }));
8
+ }
9
+ function s(e, t) {
10
+ return {
11
+ transform: a.Translate.toString(e),
12
+ transition: t ?? void 0
13
+ };
14
+ }
15
+ //#endregion
16
+ export { s as sortableItemStyle, o as useSortableSensors };
@@ -0,0 +1,47 @@
1
+
2
+ "use client";
3
+ import { classnames as e } from "./classnames.js";
4
+ import { SortableHandleContext as t } from "./sortable-handle.js";
5
+ import { sortableItemStyle as n, useSortableSensors as r } from "./sortable-shared.js";
6
+ /* empty css */
7
+ import { jsx as i } from "react/jsx-runtime";
8
+ import { SortableContext as a, useSortable as o } from "@dnd-kit/sortable";
9
+ import { DndContext as s, closestCenter as c } from "@dnd-kit/core";
10
+ //#region src/lib/utils/sortable.tsx
11
+ function l({ ids: e, strategy: t, onMove: n, children: o }) {
12
+ let l = r();
13
+ return /* @__PURE__ */ i(s, {
14
+ sensors: l,
15
+ collisionDetection: c,
16
+ onDragEnd: ({ active: t, over: r }) => {
17
+ r && t.id !== r.id && n(e.indexOf(t.id), e.indexOf(r.id));
18
+ },
19
+ children: i(a, {
20
+ items: e,
21
+ strategy: t,
22
+ children: o
23
+ })
24
+ });
25
+ }
26
+ var u = "haze-sortable__sortableNode", d = "haze-sortable__sortableNodeDragging";
27
+ function f({ id: r, className: a, children: s }) {
28
+ let { attributes: c, listeners: l, setNodeRef: f, transform: p, transition: m, isDragging: h } = o({ id: r });
29
+ return /* @__PURE__ */ i(t.Provider, {
30
+ value: {
31
+ attributes: c,
32
+ listeners: l
33
+ },
34
+ children: i("span", {
35
+ ref: f,
36
+ style: n(p, m),
37
+ className: e([
38
+ u,
39
+ h && d,
40
+ a
41
+ ]),
42
+ children: s
43
+ })
44
+ });
45
+ }
46
+ //#endregion
47
+ export { f as SortableItem, l as SortableRegion };
@@ -0,0 +1,106 @@
1
+ "use client";
2
+ import { getDirection as e } from "./direction.js";
3
+ import { useFloating as t } from "./floating.js";
4
+ import { getEnabledMenuItems as n, useMenuKeyboard as r, useRovingTabindex as i } from "./menuKeyboard.js";
5
+ import { createContext as a, useCallback as o, useContext as s, useEffect as c, useId as l, useRef as u } from "react";
6
+ import { useControl as d } from "react-use-control";
7
+ //#region src/lib/utils/submenu.ts
8
+ var f = 120, p = 160;
9
+ function m({ open: a, onOpenChange: s }) {
10
+ let [f, p] = d(a, !1), m = u(null), h = u(null), g = l(), _ = u(!1), v = u(0), y = u(0), b = o((e) => {
11
+ let t = typeof e == "function" ? e(f) : e;
12
+ p(t), s?.(t);
13
+ }, [
14
+ f,
15
+ p,
16
+ s
17
+ ]), x = t({
18
+ open: f,
19
+ setOpen: b,
20
+ triggerRef: m,
21
+ panelRef: h,
22
+ animated: !0
23
+ }), S = o(() => {
24
+ window.clearTimeout(y.current);
25
+ }, []), C = o(() => {
26
+ window.clearTimeout(y.current), y.current = window.setTimeout(() => {
27
+ b(!1);
28
+ }, 160);
29
+ }, [b]), w = o(() => {
30
+ m.current?.disabled || (S(), !f && (window.clearTimeout(v.current), v.current = window.setTimeout(() => {
31
+ b(!0);
32
+ }, 120)));
33
+ }, [
34
+ f,
35
+ b,
36
+ S
37
+ ]);
38
+ c(() => {
39
+ let e = (e) => e instanceof Node && !!(m.current?.contains(e) || h.current?.contains(e)), t = (t) => {
40
+ if (e(t.target)) {
41
+ f && S();
42
+ return;
43
+ }
44
+ window.clearTimeout(v.current), f && C();
45
+ };
46
+ return document.addEventListener("pointerover", t), () => {
47
+ document.removeEventListener("pointerover", t), f && S();
48
+ };
49
+ }, [
50
+ f,
51
+ S,
52
+ C
53
+ ]), c(() => () => {
54
+ window.clearTimeout(v.current), window.clearTimeout(y.current);
55
+ }, []);
56
+ let T = o(() => {
57
+ n(h.current)[0]?.focus();
58
+ }, []);
59
+ c(() => {
60
+ f && x.shown && _.current && (_.current = !1, T());
61
+ }, [
62
+ f,
63
+ x.shown,
64
+ T
65
+ ]);
66
+ let E = o(() => {
67
+ let e = h.current?.contains(document.activeElement) ?? !1;
68
+ b(!1), e && m.current?.focus();
69
+ }, [b]), D = o((t) => {
70
+ if (m.current?.disabled) return;
71
+ let n = e(m.current), r = n === "rtl" ? "ArrowLeft" : "ArrowRight", i = n === "rtl" ? "ArrowRight" : "ArrowLeft";
72
+ t.key === r ? (t.preventDefault(), t.stopPropagation(), f ? T() : (_.current = !0, b(!0))) : f && (t.key === i || t.key === "Escape") && (t.preventDefault(), t.stopPropagation(), E());
73
+ }, [
74
+ f,
75
+ b,
76
+ T,
77
+ E
78
+ ]), O = r({
79
+ menuRef: h,
80
+ onClose: E,
81
+ onCloseToStart: E
82
+ }), k = o((e) => {
83
+ O(e), e.key !== "Tab" && e.stopPropagation();
84
+ }, [O]);
85
+ return i({
86
+ menuRef: h,
87
+ active: f
88
+ }), {
89
+ open: f,
90
+ triggerRef: m,
91
+ contentRef: h,
92
+ contentId: g,
93
+ floating: x,
94
+ onTriggerPointerEnter: w,
95
+ handleTriggerKeyDown: D,
96
+ contentKeyDown: k
97
+ };
98
+ }
99
+ var h = a(void 0), g = h.Provider;
100
+ function _() {
101
+ let e = s(h);
102
+ if (!e) throw Error("Submenu components must be used within <MenuSub> or <DropdownMenuSub>");
103
+ return e;
104
+ }
105
+ //#endregion
106
+ export { p as SUBMENU_CLOSE_GRACE_MS, f as SUBMENU_OPEN_DELAY_MS, g as SubmenuProvider, m as useSubmenu, _ as useSubmenuContext };
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { usePrefersReducedMotion as e } from "../hooks/usePrefersReducedMotion.js";
3
+ import { useCallback as t } from "react";
4
+ import { flushSync as n } from "react-dom";
5
+ //#region src/lib/utils/view-transition.ts
6
+ function r(r, i) {
7
+ let a = e();
8
+ return t((e) => {
9
+ if (!r || a || typeof document.startViewTransition != "function") {
10
+ i(e);
11
+ return;
12
+ }
13
+ let t = document.startViewTransition(() => {
14
+ n(() => {
15
+ i(e);
16
+ });
17
+ });
18
+ t.ready.catch(() => void 0), t.finished.catch(() => void 0);
19
+ }, [
20
+ r,
21
+ a,
22
+ i
23
+ ]);
24
+ }
25
+ //#endregion
26
+ export { r as useViewTransitionFlip };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "haze-ui",
3
- "version": "1.26.0",
3
+ "version": "1.28.0",
4
4
  "type": "module",
5
5
  "description": "A React UI component library powered by react-use-control and Linaria",
6
6
  "main": "./dist/index.js",
@@ -22,6 +22,11 @@
22
22
  "import": "./dist/form/index.js",
23
23
  "default": "./dist/form/index.js"
24
24
  },
25
+ "./headless": {
26
+ "types": "./dist/types/headless/index.d.ts",
27
+ "import": "./dist/headless/index.js",
28
+ "default": "./dist/headless/index.js"
29
+ },
25
30
  "./tokens": {
26
31
  "types": "./dist/types/tokens/index.d.ts",
27
32
  "import": "./dist/tokens/index.js",
@@ -35,13 +40,22 @@
35
40
  "files": [
36
41
  "dist"
37
42
  ],
43
+ "engines": {
44
+ "node": ">=20"
45
+ },
46
+ "browserslist": [
47
+ "chrome >= 119",
48
+ "edge >= 119",
49
+ "safari >= 16.4",
50
+ "firefox >= 128"
51
+ ],
38
52
  "sideEffects": [
39
53
  "*.css"
40
54
  ],
41
55
  "scripts": {
42
56
  "start": "vite",
43
57
  "build": "BUILD_LIB=true vite build && node scripts/split-css.mjs && node scripts/generate-registry.mjs && tsc -p tsconfig.lib.json && tsc-alias -p tsconfig.lib.json",
44
- "build:demo": "BABEL_ENV=development BUILD_DEMO=true vite build && cp dist/index.html dist/404.html && cp llms.txt dist/",
58
+ "build:demo": "node scripts/write-version.mjs && node scripts/generate-llms.mjs && BABEL_ENV=development BUILD_DEMO=true vite build && cp dist/index.html dist/404.html && cp llms.txt dist/ && cp llms-full.txt dist/",
45
59
  "commit": "lint-staged && git-cz -n",
46
60
  "coverage": "vitest run --coverage",
47
61
  "lint": "eslint --fix src *.mjs",
@@ -78,19 +92,32 @@
78
92
  "author": "wmzy",
79
93
  "license": "MIT",
80
94
  "peerDependencies": {
95
+ "@dnd-kit/core": "^6.3.1",
96
+ "@dnd-kit/sortable": "^10.0.0",
97
+ "@dnd-kit/utilities": "^3.2.2",
81
98
  "@tanstack/react-table": "^9.2.4",
82
99
  "react": "^19.0.0",
83
- "react-f0rm": "^1.1.1"
100
+ "recharts": "^3.10.1"
84
101
  },
85
102
  "peerDependenciesMeta": {
103
+ "@dnd-kit/core": {
104
+ "optional": true
105
+ },
106
+ "@dnd-kit/sortable": {
107
+ "optional": true
108
+ },
109
+ "@dnd-kit/utilities": {
110
+ "optional": true
111
+ },
86
112
  "@tanstack/react-table": {
87
113
  "optional": true
88
114
  },
89
- "react-f0rm": {
115
+ "recharts": {
90
116
  "optional": true
91
117
  }
92
118
  },
93
119
  "dependencies": {
120
+ "react-f0rm": "^1.3.0",
94
121
  "react-use-control": "^1.6.0"
95
122
  },
96
123
  "devDependencies": {
@@ -98,20 +125,24 @@
98
125
  "@babel/core": "^8.0.1",
99
126
  "@babel/preset-env": "^8.0.2",
100
127
  "@babel/preset-typescript": "^8.0.1",
128
+ "@dnd-kit/core": "^6.3.1",
129
+ "@dnd-kit/sortable": "^10.0.0",
130
+ "@dnd-kit/utilities": "^3.2.2",
101
131
  "@for-fun/event-emitter": "^1.1.0",
102
132
  "@linaria/core": "^8.2.0",
103
- "@native-router/core": "^1.16.1",
104
- "@native-router/react": "^1.15.0",
105
- "@playwright/test": "^1.62.1",
133
+ "@native-router/core": "^1.17.0",
134
+ "@native-router/react": "^1.16.0",
135
+ "@playwright/test": "^1.63.0",
106
136
  "@size-limit/esbuild": "^13.0.3",
107
137
  "@size-limit/file": "^13.0.3",
138
+ "@stackblitz/sdk": "^1.11.1",
108
139
  "@tanstack/react-table": "^9.2.4",
109
140
  "@testing-library/jest-dom": "^7.0.1",
110
141
  "@testing-library/react": "^16.3.3",
111
142
  "@testing-library/user-event": "^14.6.7",
112
143
  "@types/culori": "^4.0.1",
113
144
  "@types/jest-axe": "^3.5.9",
114
- "@types/node": "^26.4.1",
145
+ "@types/node": "^26.5.0",
115
146
  "@types/react": "^19.2.18",
116
147
  "@types/react-dom": "^19.2.7",
117
148
  "@vitejs/plugin-react": "^6.1.1",
@@ -123,19 +154,19 @@
123
154
  "commitizen": "^4.3.2",
124
155
  "core-js": "^3.50.0",
125
156
  "culori": "^4.0.2",
126
- "eslint": "^10.9.1",
157
+ "eslint": "^10.10.0",
127
158
  "eslint-plugin-compat": "^7.0.2",
128
159
  "gh-pages": "^6.3.0",
129
160
  "husky": "^9.1.7",
130
161
  "jest-axe": "^11.0.0",
131
162
  "jsdom": "^30.0.1",
132
- "lint-staged": "^17.4.1",
133
- "lucide-react": "^1.41.0",
163
+ "lint-staged": "^17.5.0",
164
+ "lucide-react": "^1.42.0",
134
165
  "prettier": "^3.9.6",
135
166
  "react": "^19.2.8",
136
167
  "react-dom": "^19.2.8",
137
- "react-f0rm": "^1.1.1",
138
168
  "react-icons": "^5.7.0",
169
+ "recharts": "^3.10.1",
139
170
  "semantic-release": "^25.0.9",
140
171
  "size-limit": "^13.0.3",
141
172
  "terser": "^5.51.2",
@@ -143,7 +174,8 @@
143
174
  "tsc-alias": "^1.9.4",
144
175
  "typescript": "^6.0.3",
145
176
  "vite": "^8.2.2",
146
- "vitest": "^5.0.0"
177
+ "vitest": "^5.0.0",
178
+ "zod": "^4.5.4"
147
179
  },
148
180
  "size-limit": [
149
181
  {
@@ -152,19 +184,140 @@
152
184
  "import": "{Button}",
153
185
  "limit": "2 KB"
154
186
  },
187
+ {
188
+ "name": "TagGroup+TagGroupItem only — dnd-free (bundled from barrel)",
189
+ "path": "dist/index.js",
190
+ "import": "{TagGroup, TagGroupItem}",
191
+ "limit": "6 KB"
192
+ },
193
+ {
194
+ "name": "SortableTagInput — pulls the @dnd-kit trio (from barrel)",
195
+ "path": "dist/index.js",
196
+ "import": "{SortableTagInput}",
197
+ "limit": "30 KB"
198
+ },
155
199
  {
156
200
  "name": "Dashboard profile: Button + Input + Select + Dialog + Toast + Pagination",
157
201
  "path": "dist/index.js",
158
202
  "import": "{Button, Input, Select, Dialog, Toast, Pagination}",
159
- "limit": "10 KB"
203
+ "limit": "17 KB"
160
204
  },
161
205
  {
206
+ "name": "CSS aggregate (dist/haze-ui.css, brotli)",
162
207
  "path": "dist/haze-ui.css",
163
- "limit": "136 KB"
208
+ "limit": "19.5 KB"
164
209
  },
165
210
  {
166
211
  "path": "dist/haze-ui.css",
167
- "limit": "19 KB",
212
+ "limit": "24 KB",
213
+ "gzip": true
214
+ },
215
+ {
216
+ "name": "CSS family ratchet: button",
217
+ "path": "dist/css/button.css",
218
+ "limit": "1 KB",
219
+ "gzip": true
220
+ },
221
+ {
222
+ "name": "CSS family ratchet: select",
223
+ "path": "dist/css/select.css",
224
+ "limit": "2.5 KB",
225
+ "gzip": true
226
+ },
227
+ {
228
+ "name": "CSS family ratchet: dialog",
229
+ "path": "dist/css/dialog.css",
230
+ "limit": "0.5 KB",
231
+ "gzip": true
232
+ },
233
+ {
234
+ "name": "CSS family ratchet: table",
235
+ "path": "dist/css/table.css",
236
+ "limit": "0.5 KB",
237
+ "gzip": true
238
+ },
239
+ {
240
+ "name": "CSS family ratchet: data-table",
241
+ "path": "dist/css/data-table.css",
242
+ "limit": "1.5 KB",
243
+ "gzip": true
244
+ },
245
+ {
246
+ "name": "CSS family ratchet: form",
247
+ "path": "dist/css/form.css",
248
+ "limit": "0.5 KB",
249
+ "gzip": true
250
+ },
251
+ {
252
+ "name": "CSS family ratchet: toast",
253
+ "path": "dist/css/toast.css",
254
+ "limit": "1 KB",
255
+ "gzip": true
256
+ },
257
+ {
258
+ "name": "CSS family ratchet: chat-message",
259
+ "path": "dist/css/chat-message.css",
260
+ "limit": "1 KB",
261
+ "gzip": true
262
+ },
263
+ {
264
+ "name": "CSS family ratchet: tree",
265
+ "path": "dist/css/tree.css",
266
+ "limit": "1 KB",
267
+ "gzip": true
268
+ },
269
+ {
270
+ "name": "CSS family ratchet: combobox",
271
+ "path": "dist/css/combobox.css",
272
+ "limit": "1.5 KB",
273
+ "gzip": true
274
+ },
275
+ {
276
+ "name": "CSS family ratchet: descriptions",
277
+ "path": "dist/css/descriptions.css",
278
+ "limit": "500 B",
279
+ "gzip": true
280
+ },
281
+ {
282
+ "name": "CSS family ratchet: json-view",
283
+ "path": "dist/css/json-view.css",
284
+ "limit": "1 KB",
285
+ "gzip": true
286
+ },
287
+ {
288
+ "name": "CSS family ratchet: sources",
289
+ "path": "dist/css/sources.css",
290
+ "limit": "1 KB",
291
+ "gzip": true
292
+ },
293
+ {
294
+ "name": "CSS family ratchet: file-preview",
295
+ "path": "dist/css/file-preview.css",
296
+ "limit": "1 KB",
297
+ "gzip": true
298
+ },
299
+ {
300
+ "name": "CSS family ratchet: inline-completion",
301
+ "path": "dist/css/inline-completion.css",
302
+ "limit": "1 KB",
303
+ "gzip": true
304
+ },
305
+ {
306
+ "name": "CSS family ratchet: float-button",
307
+ "path": "dist/css/float-button.css",
308
+ "limit": "1.5 KB",
309
+ "gzip": true
310
+ },
311
+ {
312
+ "name": "CSS family ratchet: masonry",
313
+ "path": "dist/css/masonry.css",
314
+ "limit": "500 B",
315
+ "gzip": true
316
+ },
317
+ {
318
+ "name": "CSS family ratchet: signature",
319
+ "path": "dist/css/signature.css",
320
+ "limit": "1 KB",
168
321
  "gzip": true
169
322
  }
170
323
  ]