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,18 +1,19 @@
1
1
 
2
2
  "use client";
3
3
  import { classnames as e } from "../../utils/classnames.js";
4
- import { Presence as t } from "../../utils/presence.js";
5
- import { computeFloatingPosition as n, resolvePadding as r } from "../../utils/collision.js";
6
- import { formatString as i } from "../LocaleProvider/locale.js";
7
- import { useStrings as a } from "../LocaleProvider/useStrings.js";
4
+ import { getDirection as t } from "../../utils/direction.js";
5
+ import { formatString as n } from "../LocaleProvider/locale.js";
6
+ import { useStrings as r } from "../LocaleProvider/useStrings.js";
7
+ import { computeFloatingPosition as i, resolvePadding as ee } from "../../utils/collision.js";
8
+ import { Presence as a } from "../../utils/presence.js";
8
9
  /* empty css */
9
10
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
10
11
  import { useCallback as c, useEffect as l, useId as u, useRef as d, useState as f } from "react";
11
12
  import { useControl as p } from "react-use-control";
12
- import { createPortal as m } from "react-dom";
13
+ import { createPortal as te } from "react-dom";
13
14
  //#region src/lib/components/Tour/Tour.tsx
14
- var h = 8, g = 16;
15
- function _(e) {
15
+ var m = 8, h = 16;
16
+ function g(e) {
16
17
  let { target: t } = e;
17
18
  if (typeof t == "function") return t();
18
19
  try {
@@ -21,34 +22,34 @@ function _(e) {
21
22
  return null;
22
23
  }
23
24
  }
24
- var v = "haze-Tour__overlay", y = "haze-Tour__spotlight", b = "haze-Tour__mask", ee = "haze-Tour__card", te = "haze-Tour__centeredCard", ne = "haze-Tour__titleStyle", re = "haze-Tour__bodyStyle", x = "haze-Tour__footerStyle", S = "haze-Tour__counterStyle", C = "haze-Tour__btn", w = "haze-Tour__subtleBtn", ie = "haze-Tour__primaryBtn";
25
- function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClosable: A = !1, className: j, ...M }) {
26
- let [N, P] = p(E, !1), [F, I] = p(D, 0), L = a("tour"), R = `haze-tour-title-${u()}`, z = `haze-tour-step-${u()}`, B = T.length, V = Math.min(Math.max(F, 0), Math.max(B - 1, 0)), H = B > 0 ? T[V] : void 0, U = V >= B - 1, W = H?.placement ?? "bottom", G = i(L.stepOf, {
25
+ var _ = "haze-Tour__overlay", v = "haze-Tour__spotlight", y = "haze-Tour__mask", b = "haze-Tour__card", x = "haze-Tour__centeredCard", S = "haze-Tour__titleStyle", ne = "haze-Tour__bodyStyle", C = "haze-Tour__footerStyle", w = "haze-Tour__counterStyle", T = "haze-Tour__btn", E = "haze-Tour__subtleBtn", D = "haze-Tour__primaryBtn";
26
+ function O({ steps: O, open: k, current: A, onClose: j, onStepChange: M, maskClosable: re = !1, className: ie, ...ae }) {
27
+ let [N, P] = p(k, !1), [F, I] = p(A, 0), L = r("tour"), R = `haze-tour-title-${u()}`, z = `haze-tour-step-${u()}`, B = O.length, V = Math.min(Math.max(F, 0), Math.max(B - 1, 0)), H = B > 0 ? O[V] : void 0, U = V >= B - 1, W = H?.placement ?? "bottom", G = n(L.stepOf, {
27
28
  current: V + 1,
28
29
  total: B
29
30
  }), [K, q] = f(N);
30
- N !== K && (q(N), N && D === void 0 && I(0));
31
- let J = d(null), Y = d(-1), [X, ae] = f(null), Z = d(null), Q = c((e) => {
32
- P(!1), O?.(e);
33
- }, [O, P]), $ = c((e) => {
34
- I(e), k?.(e);
35
- }, [k, I]);
31
+ N !== K && (q(N), N && A === void 0 && I(0));
32
+ let J = d(null), Y = d(-1), [X, oe] = f(null), Z = d(null), Q = c((e) => {
33
+ P(!1), j?.(e);
34
+ }, [j, P]), $ = c((e) => {
35
+ I(e), M?.(e);
36
+ }, [M, I]);
36
37
  return l(() => {
37
38
  if (!N) return;
38
- let e = B > 0 ? T[V] : void 0, t = J.current;
39
- if (!e || !t) return;
40
- let i = _(e);
41
- i?.scrollIntoView({ block: "nearest" });
39
+ let e = B > 0 ? O[V] : void 0, n = J.current;
40
+ if (!e || !n) return;
41
+ let r = g(e);
42
+ r?.scrollIntoView({ block: "nearest" });
42
43
  let a = (e) => {
43
44
  let t = Z.current;
44
- (t === null != (e === null) || t !== null && e !== null && (t.top !== e.top || t.left !== e.left || t.width !== e.width || t.height !== e.height)) && (Z.current = e, ae(e));
45
+ (t === null != (e === null) || t !== null && e !== null && (t.top !== e.top || t.left !== e.left || t.width !== e.width || t.height !== e.height)) && (Z.current = e, oe(e));
45
46
  }, o = () => {
46
- let e = i?.getBoundingClientRect();
47
- if (!i || !e || e.width === 0 && e.height === 0) {
48
- t.style.top = "", t.style.left = "", a(null);
47
+ let e = r?.getBoundingClientRect();
48
+ if (!r || !e || e.width === 0 && e.height === 0) {
49
+ n.style.top = "", n.style.left = "", a(null);
49
50
  return;
50
51
  }
51
- let o = t.getBoundingClientRect(), { top: s, left: c } = n({
52
+ let o = n.getBoundingClientRect(), { top: s, left: c } = i({
52
53
  trigger: e,
53
54
  panel: {
54
55
  width: o.width,
@@ -60,20 +61,21 @@ function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClo
60
61
  },
61
62
  placement: W,
62
63
  gap: {
63
- below: g,
64
- above: g,
65
- before: g,
66
- after: g
64
+ below: h,
65
+ above: h,
66
+ before: h,
67
+ after: h
67
68
  },
69
+ dir: t(n),
68
70
  strategy: {
69
71
  flip: !0,
70
72
  shift: !0,
71
- padding: r()
73
+ padding: ee()
72
74
  }
73
75
  });
74
- t.style.top = `${s}px`, t.style.left = `${c}px`, a({
75
- top: e.top - h,
76
- left: e.left - h,
76
+ n.style.top = `${s}px`, n.style.left = `${c}px`, a({
77
+ top: e.top - m,
78
+ left: e.left - m,
77
79
  width: e.width + 16,
78
80
  height: e.height + 16
79
81
  });
@@ -89,7 +91,7 @@ function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClo
89
91
  };
90
92
  }, [
91
93
  N,
92
- T,
94
+ O,
93
95
  V,
94
96
  B,
95
97
  W
@@ -107,8 +109,10 @@ function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClo
107
109
  Q("skip");
108
110
  return;
109
111
  }
110
- let t = e.target;
111
- t instanceof HTMLElement && (t.isContentEditable || t.tagName === "INPUT" || t.tagName === "TEXTAREA" || t.tagName === "SELECT") || (e.key === "ArrowRight" && !U ? (e.preventDefault(), $(V + 1)) : e.key === "ArrowLeft" && V > 0 && (e.preventDefault(), $(V - 1)));
112
+ let n = e.target;
113
+ if (n instanceof HTMLElement && (n.isContentEditable || n.tagName === "INPUT" || n.tagName === "TEXTAREA" || n.tagName === "SELECT")) return;
114
+ let r = t(n instanceof Element ? n : J.current) === "rtl" ? "ArrowLeft" : "ArrowRight", i = r === "ArrowLeft" ? "ArrowRight" : "ArrowLeft";
115
+ e.key === r && !U ? (e.preventDefault(), $(V + 1)) : e.key === i && V > 0 && (e.preventDefault(), $(V - 1));
112
116
  };
113
117
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
114
118
  }, [
@@ -118,16 +122,16 @@ function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClo
118
122
  U,
119
123
  Q,
120
124
  $
121
- ]), !H || typeof document > "u" ? null : m(/* @__PURE__ */ o(t, {
125
+ ]), !H || typeof document > "u" ? null : te(/* @__PURE__ */ o(a, {
122
126
  present: N,
123
127
  children: s("div", {
124
- onClick: A ? (e) => {
128
+ onClick: re ? (e) => {
125
129
  N && e.target === e.currentTarget && Q("skip");
126
130
  } : void 0,
127
- className: e([v]),
131
+ className: e([_]),
128
132
  children: [X === null ? /* @__PURE__ */ o("div", {
129
133
  "aria-hidden": "true",
130
- className: e([b])
134
+ className: e([y])
131
135
  }) : /* @__PURE__ */ o("div", {
132
136
  "data-haze-tour-spotlight": "",
133
137
  "aria-hidden": "true",
@@ -137,54 +141,54 @@ function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClo
137
141
  width: X.width,
138
142
  height: X.height
139
143
  },
140
- className: e([y])
144
+ className: e([v])
141
145
  }), /* @__PURE__ */ s("div", {
142
146
  ref: J,
143
147
  role: "dialog",
144
148
  "aria-modal": "false",
145
149
  "aria-labelledby": H.title === void 0 ? z : R,
146
150
  tabIndex: -1,
147
- ...M,
151
+ ...ae,
148
152
  className: e([
149
- ee,
150
- X === null && te,
151
- j
153
+ b,
154
+ X === null && x,
155
+ ie
152
156
  ]),
153
157
  children: [
154
158
  H.title !== void 0 && /* @__PURE__ */ o("h2", {
155
159
  id: R,
156
- className: e([ne]),
160
+ className: e([S]),
157
161
  children: H.title
158
162
  }),
159
163
  /* @__PURE__ */ o("div", {
160
- className: e([re]),
164
+ className: e([ne]),
161
165
  children: H.content
162
166
  }),
163
167
  /* @__PURE__ */ s("div", {
164
- className: e([x]),
168
+ className: e([C]),
165
169
  children: [
166
170
  /* @__PURE__ */ o("span", {
167
171
  id: z,
168
- className: e([S]),
172
+ className: e([w]),
169
173
  children: G
170
174
  }),
171
175
  /* @__PURE__ */ o("button", {
172
176
  type: "button",
173
177
  onClick: () => Q("skip"),
174
- className: e([C, w]),
178
+ className: e([T, E]),
175
179
  children: L.skip
176
180
  }),
177
181
  /* @__PURE__ */ o("button", {
178
182
  type: "button",
179
183
  disabled: V === 0,
180
184
  onClick: () => $(V - 1),
181
- className: e([C, w]),
185
+ className: e([T, E]),
182
186
  children: L.back
183
187
  }),
184
188
  /* @__PURE__ */ o("button", {
185
189
  type: "button",
186
190
  onClick: () => U ? Q("done") : $(V + 1),
187
- className: e([C, ie]),
191
+ className: e([T, D]),
188
192
  children: U ? L.done : L.next
189
193
  })
190
194
  ]
@@ -195,4 +199,4 @@ function T({ steps: T, open: E, current: D, onClose: O, onStepChange: k, maskClo
195
199
  }), document.body);
196
200
  }
197
201
  //#endregion
198
- export { T as default };
202
+ export { O as default };
@@ -1,115 +1,300 @@
1
1
 
2
2
  "use client";
3
3
  import { classnames as e } from "../../utils/classnames.js";
4
- import t from "./TreeItem.js";
5
- import { findNodeByKey as n, getChildKeys as r, getParentKey as i } from "./utils.js";
4
+ import { getDirection as t } from "../../utils/direction.js";
5
+ import { useStrings as n } from "../LocaleProvider/useStrings.js";
6
+ import r from "../VirtualList/VirtualList.js";
7
+ import { filterTreeByQuery as i, findNodeByKey as a, flattenVisibleTree as o, getChildKeys as s, getParentKey as c, mergeLoadedChildren as l, pruneLoadedChildren as u } from "./utils.js";
8
+ import d from "./TreeItem.js";
6
9
  /* empty css */
7
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
- import { useMemo as s } from "react";
9
- import { useControl as c } from "react-use-control";
10
+ import { jsx as f, jsxs as ee } from "react/jsx-runtime";
11
+ import { useCallback as p, useEffect as m, useMemo as h, useRef as g, useState as _ } from "react";
12
+ import { useControl as v } from "react-use-control";
10
13
  //#region src/lib/components/Tree/Tree.tsx
11
- var l = "haze-Tree__base", u = "haze-Tree__group";
12
- function d(e, t, n) {
14
+ var te = "haze-Tree__base", ne = "haze-Tree__virtualTree", re = 320, ie = 32, ae = "haze-Tree__group", oe = "haze-Tree__emptyBlock";
15
+ function se(e, t) {
16
+ if (!(t in e)) return e;
17
+ let n = {};
18
+ for (let [r, i] of Object.entries(e)) r !== t && (n[r] = i);
19
+ return n;
20
+ }
21
+ function ce(e, t, n) {
13
22
  if (n) return {
14
23
  checked: e,
15
24
  halfChecked: []
16
25
  };
17
- let i = new Set(e), a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), s = (e) => {
26
+ let r = new Set(e), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = (e) => {
18
27
  for (let n of e) if (n.children?.length) {
19
- s(n.children);
20
- let e = r(t, n.key), c = e.filter((e) => i.has(e));
21
- c.length === 0 ? o.add(n.key) : c.length < e.length && (a.add(n.key), o.add(n.key));
28
+ o(n.children);
29
+ let e = s(t, n.key), c = e.filter((e) => r.has(e));
30
+ c.length === 0 ? a.add(n.key) : c.length < e.length && (i.add(n.key), a.add(n.key));
22
31
  }
23
32
  };
24
- return s(t), {
25
- checked: e.filter((e) => !o.has(e)),
26
- halfChecked: Array.from(a)
33
+ return o(t), {
34
+ checked: e.filter((e) => !a.has(e)),
35
+ halfChecked: Array.from(i)
27
36
  };
28
37
  }
29
- function f({ treeData: f, multiple: p = !1, checkable: m = !1, checkStrictly: h = !1, selectable: g = !0, disabled: _ = !1, blockNode: v = !1, showLine: y = !1, showIcon: b = !1, switcherIcon: x, loadingIcon: S, titleRender: C, iconRender: w, expandedKeys: T, selectedKeys: E, checkedKeys: D, className: O, onExpand: k, onSelect: A, onCheck: j }) {
30
- let [M, N] = c(T, []), [P, F] = c(E, []), [I, L] = c(D, []), R = I, z = s(() => d(R, f, h), [
31
- R,
32
- f,
33
- h
34
- ]), B = z.checked, V = z.halfChecked;
35
- function H(e) {
36
- let t = M.includes(e), r = t ? M.filter((t) => t !== e) : [...M, e];
37
- N(r), k?.(r, {
38
+ function y({ treeData: y, multiple: le = !1, checkable: b = !1, checkStrictly: x = !1, selectable: S = !0, disabled: C = !1, blockNode: ue = !1, showLine: de = !1, showIcon: fe = !1, switcherIcon: pe, loadingIcon: me, titleRender: he, iconRender: ge, virtualized: w, loadData: T, searchValue: E, expandedKeys: _e, selectedKeys: ve, checkedKeys: ye, className: D, onExpand: be, onSelect: xe, onCheck: Se }) {
39
+ let Ce = n("tree"), [O, we] = v(_e, []), [k, Te] = v(ve, []), [Ee, De] = v(ye, []), Oe = Ee, A = !!T, [j, ke] = _({}), [M, N] = _({}), P = g(/* @__PURE__ */ new Set()), F = h(() => u(j, y), [j, y]);
40
+ m(() => {
41
+ F !== j && ke(F);
42
+ }, [F, j]);
43
+ let I = h(() => l(y, F), [y, F]), L = p((e, t) => {
44
+ T && !P.current.has(e) && (P.current.add(e), N((t) => ({
45
+ ...t,
46
+ [e]: "loading"
47
+ })), T(t).then((t) => {
48
+ P.current.delete(e), ke((n) => ({
49
+ ...n,
50
+ [e]: t
51
+ })), N((t) => se(t, e));
52
+ }).catch(() => {
53
+ P.current.delete(e), N((t) => ({
54
+ ...t,
55
+ [e]: "error"
56
+ }));
57
+ }));
58
+ }, [T]);
59
+ function Ae(e) {
60
+ let t = a(I, e);
61
+ t && L(e, t);
62
+ }
63
+ let R = h(() => i(I, E), [I, E]), je = R !== null, z = R ? R.tree : I, B = h(() => !R || R.ancestorKeys.length === 0 ? O : Array.from(/* @__PURE__ */ new Set([...O, ...R.ancestorKeys])), [O, R]);
64
+ m(() => {
65
+ if (T) for (let e of B) {
66
+ let t = a(I, e);
67
+ t && !t.children?.length && t.isLeaf !== !0 && F[e] === void 0 && M[e] === void 0 && L(e, t);
68
+ }
69
+ }, [
70
+ T,
71
+ L,
72
+ I,
73
+ B,
74
+ F,
75
+ M
76
+ ]);
77
+ let Me = h(() => ce(Oe, I, x), [
78
+ Oe,
79
+ I,
80
+ x
81
+ ]), V = Me.checked, Ne = Me.halfChecked, Pe = w !== void 0 && w !== !1, H = typeof w == "object" ? w : void 0, [Fe, Ie] = _(null), [U, Le] = _(null), W = g(null), Re = g(null), G = h(() => o(z, B, C), [
82
+ z,
83
+ B,
84
+ C
85
+ ]), ze = (() => {
86
+ let e = G.find((e) => e.key === Fe && !e.disabled);
87
+ return e ? e.key : G.find((e) => !e.disabled)?.key ?? null;
88
+ })();
89
+ function K(e) {
90
+ let t = G[e];
91
+ t && !t.disabled && (Pe && Re.current?.scrollToIndex(e, "auto"), Ie(t.key), Le(t.key));
92
+ }
93
+ function q(e, t) {
94
+ for (let n = e + t; n >= 0 && n < G.length; n += t) {
95
+ let e = G[n];
96
+ if (e && !e.disabled) return n;
97
+ }
98
+ return -1;
99
+ }
100
+ function J(e) {
101
+ let t = e.target;
102
+ if (t.getAttribute("role") !== "treeitem") return;
103
+ let n = t.dataset.treeKey;
104
+ n && Ie(n);
105
+ }
106
+ function Y(e) {
107
+ let n = G;
108
+ if (n.length === 0) return;
109
+ let r = e.target;
110
+ if (r.getAttribute("role") !== "treeitem") return;
111
+ let i = r.dataset.treeKey, a = i ? n.findIndex((e) => e.key === i) : -1, o = a >= 0 ? n[a] : void 0;
112
+ if (!o || o.disabled) return;
113
+ let s = o.node.isLeaf ?? (!o.node.children?.length && !A), c = t(e.currentTarget) === "rtl", l = c ? "ArrowLeft" : "ArrowRight", u = c ? "ArrowRight" : "ArrowLeft";
114
+ switch (e.key) {
115
+ case "ArrowDown":
116
+ e.preventDefault(), K(q(a, 1));
117
+ return;
118
+ case "ArrowUp":
119
+ e.preventDefault(), K(q(a, -1));
120
+ return;
121
+ case l:
122
+ if (e.preventDefault(), s) return;
123
+ B.includes(o.key) ? K(q(a, 1)) : X(o.key);
124
+ return;
125
+ case u: {
126
+ if (e.preventDefault(), !s && B.includes(o.key)) {
127
+ X(o.key);
128
+ return;
129
+ }
130
+ let t = o.parentKey === null ? -1 : n.findIndex((e) => e.key === o.parentKey);
131
+ t >= 0 && K(t);
132
+ return;
133
+ }
134
+ case "Home":
135
+ e.preventDefault(), K(q(-1, 1));
136
+ return;
137
+ case "End":
138
+ e.preventDefault(), K(q(n.length, -1));
139
+ return;
140
+ case "Enter":
141
+ e.preventDefault(), Z(o.key);
142
+ return;
143
+ case " ":
144
+ case "Space":
145
+ if (!b) return;
146
+ e.preventDefault(), Q(o.key);
147
+ return;
148
+ }
149
+ }
150
+ m(() => {
151
+ if (U === null) return;
152
+ let e = W.current;
153
+ if (!e) return;
154
+ let t = Array.from(e.querySelectorAll("[role=\"treeitem\"]")).find((e) => e.dataset.treeKey === U);
155
+ t && (t.focus(), Le(null));
156
+ }, [U, G]);
157
+ function X(e) {
158
+ let t = O.includes(e), n = t ? O.filter((t) => t !== e) : [...O, e];
159
+ we(n), !t && M[e] === "error" && N((t) => se(t, e)), be?.(n, {
38
160
  expanded: !t,
39
- node: n(f, e)
161
+ node: a(I, e)
40
162
  });
41
163
  }
42
- function U(e) {
43
- let t = n(f, e);
44
- if (!t?.selectable && t?.selectable !== void 0 || !g) return;
45
- let r;
46
- r = p ? P.indexOf(e) >= 0 ? P.filter((t) => t !== e) : [...P, e] : P.includes(e) ? [] : [e], F(r), A?.(r, {
47
- selected: r.includes(e),
48
- selectedNodes: r.map((e) => n(f, e)).filter(Boolean),
164
+ function Z(e) {
165
+ let t = a(I, e);
166
+ if (!t?.selectable && t?.selectable !== void 0 || !S) return;
167
+ let n;
168
+ n = le ? k.indexOf(e) >= 0 ? k.filter((t) => t !== e) : [...k, e] : k.includes(e) ? [] : [e], Te(n), xe?.(n, {
169
+ selected: n.includes(e),
170
+ selectedNodes: n.map((e) => a(I, e)).filter(Boolean),
49
171
  node: t
50
172
  });
51
173
  }
52
- function W(e) {
53
- if (!m || n(f, e)?.disableCheckbox) return;
54
- let t = B.includes(e), a;
55
- if (h) a = t ? B.filter((t) => t !== e) : [...B, e];
174
+ function Q(e) {
175
+ if (!b || a(I, e)?.disableCheckbox) return;
176
+ let t = V.includes(e), n;
177
+ if (x) n = t ? V.filter((t) => t !== e) : [...V, e];
56
178
  else {
57
- let n = r(f, e);
179
+ let r = s(I, e);
58
180
  if (t) {
59
- a = B.filter((t) => t !== e && !n.includes(t));
60
- let t = i(f, e);
61
- for (; t;) a = a.filter((e) => e !== t), t = i(f, t);
181
+ n = V.filter((t) => t !== e && !r.includes(t));
182
+ let t = c(I, e);
183
+ for (; t;) n = n.filter((e) => e !== t), t = c(I, t);
62
184
  } else {
63
- let t = [e, ...n].filter((e) => !B.includes(e));
64
- a = [...B, ...t];
65
- let o = i(f, e);
66
- for (; o;) r(f, o).every((e) => a.includes(e)) && !a.includes(o) && a.push(o), o = i(f, o);
185
+ let t = [e, ...r].filter((e) => !V.includes(e));
186
+ n = [...V, ...t];
187
+ let i = c(I, e);
188
+ for (; i;) s(I, i).every((e) => n.includes(e)) && !n.includes(i) && n.push(i), i = c(I, i);
67
189
  }
68
190
  }
69
- let o = d(a, f, h);
70
- L(h ? a : o.checked), j?.(h ? a : o, {
191
+ let r = ce(n, I, x);
192
+ De(x ? n : r.checked), Se?.(x ? n : r, {
71
193
  checked: !t,
72
- checkedNodes: a.map((e) => n(f, e)).filter(Boolean),
73
- node: n(f, e),
74
- halfCheckedKeys: o.halfChecked
194
+ checkedNodes: n.map((e) => a(I, e)).filter(Boolean),
195
+ node: a(I, e),
196
+ halfCheckedKeys: r.halfChecked
75
197
  });
76
198
  }
77
- function G(n, r, i) {
78
- return n.map((s, c) => {
79
- let l = !!s.children?.length, d = M.includes(s.key), f = P.includes(s.key), p = B.includes(s.key), h = V.includes(s.key), T = p ? "checked" : h ? "halfChecked" : "unchecked", E = c === n.length - 1, D = [...i, E];
80
- return /* @__PURE__ */ o("div", {
199
+ function $(t, n, r) {
200
+ return t.map((i, a) => {
201
+ let o = !!i.children?.length, s = B.includes(i.key), c = k.includes(i.key), l = V.includes(i.key), u = Ne.includes(i.key), p = M[i.key], m = l ? "checked" : u ? "halfChecked" : "unchecked", h = a === t.length - 1, g = [...r, h];
202
+ return /* @__PURE__ */ ee("div", {
81
203
  role: "group",
82
- className: e(u),
83
- children: [/* @__PURE__ */ a(t, {
84
- node: s,
85
- level: r,
86
- expanded: d,
87
- selected: f,
88
- checked: T,
89
- disabled: _,
90
- checkable: m,
91
- selectable: g,
92
- blockNode: v,
93
- showLine: y,
94
- showIcon: b,
95
- switcherIcon: x,
96
- loadingIcon: S,
97
- loading: !1,
98
- titleRender: C,
99
- iconRender: w,
100
- isLast: D,
101
- onToggle: () => H(s.key),
102
- onSelect: () => U(s.key),
103
- onCheck: () => W(s.key)
104
- }), l && d && /* @__PURE__ */ a("div", { children: G(s.children, r + 1, D) })]
105
- }, s.key);
204
+ className: e(ae),
205
+ children: [/* @__PURE__ */ f(d, {
206
+ node: i,
207
+ level: n,
208
+ expanded: s,
209
+ selected: c,
210
+ checked: m,
211
+ disabled: C,
212
+ checkable: b,
213
+ selectable: S,
214
+ blockNode: ue,
215
+ showLine: de,
216
+ showIcon: fe,
217
+ switcherIcon: pe,
218
+ loadingIcon: me,
219
+ loading: p === "loading",
220
+ loadable: A,
221
+ loadFailed: p === "error",
222
+ searchValue: E,
223
+ titleRender: he,
224
+ iconRender: ge,
225
+ isLast: g,
226
+ tabIndex: i.key === ze ? 0 : -1,
227
+ onToggle: () => X(i.key),
228
+ onSelect: () => Z(i.key),
229
+ onCheck: () => Q(i.key),
230
+ onRetry: () => Ae(i.key)
231
+ }), o && s && /* @__PURE__ */ f("div", { children: $(i.children, n + 1, g) })]
232
+ }, i.key);
106
233
  });
107
234
  }
108
- return /* @__PURE__ */ a("div", {
235
+ function Be(e) {
236
+ let t = V.includes(e.key), n = Ne.includes(e.key), r = M[e.key], i = t ? "checked" : n ? "halfChecked" : "unchecked";
237
+ return /* @__PURE__ */ f(d, {
238
+ node: e.node,
239
+ level: e.level,
240
+ expanded: B.includes(e.key),
241
+ selected: k.includes(e.key),
242
+ checked: i,
243
+ disabled: C,
244
+ checkable: b,
245
+ selectable: S,
246
+ blockNode: ue,
247
+ showLine: de,
248
+ showIcon: fe,
249
+ switcherIcon: pe,
250
+ loadingIcon: me,
251
+ loading: r === "loading",
252
+ loadable: A,
253
+ loadFailed: r === "error",
254
+ searchValue: E,
255
+ titleRender: he,
256
+ iconRender: ge,
257
+ isLast: e.isLast,
258
+ tabIndex: e.key === ze ? 0 : -1,
259
+ onToggle: () => X(e.key),
260
+ onSelect: () => Z(e.key),
261
+ onCheck: () => Q(e.key),
262
+ onRetry: () => Ae(e.key)
263
+ });
264
+ }
265
+ return je && z.length === 0 ? /* @__PURE__ */ f("div", {
266
+ role: "tree",
267
+ ref: W,
268
+ onKeyDown: Y,
269
+ onFocus: J,
270
+ className: e([te, D]),
271
+ children: f("div", {
272
+ className: e(oe),
273
+ children: Ce.noMatch
274
+ })
275
+ }) : Pe ? /* @__PURE__ */ f("div", {
276
+ role: "tree",
277
+ ref: W,
278
+ onKeyDown: Y,
279
+ onFocus: J,
280
+ className: e([ne, D]),
281
+ children: f(r, {
282
+ ref: Re,
283
+ "data-virtualized": !0,
284
+ items: G,
285
+ height: H?.height ?? re,
286
+ itemHeight: H?.itemHeight ?? ie,
287
+ overscan: H?.overscan,
288
+ renderItem: Be
289
+ })
290
+ }) : /* @__PURE__ */ f("div", {
109
291
  role: "tree",
110
- className: e([l, O]),
111
- children: G(f, 0, [])
292
+ ref: W,
293
+ onKeyDown: Y,
294
+ onFocus: J,
295
+ className: e([te, D]),
296
+ children: $(z, 0, [])
112
297
  });
113
298
  }
114
299
  //#endregion
115
- export { f as default };
300
+ export { y as default };