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
@@ -40,9 +40,42 @@ function r(r, i, a) {
40
40
  return o;
41
41
  }
42
42
  function i(e, t, n) {
43
+ let r = new Date(e, t, n).getDay(), i = r === 0 ? 7 : r, a = Date.UTC(e, t, n + 4 - i), o = new Date(a).getUTCFullYear(), s = (a - Date.UTC(o, 0, 1)) / 864e5;
44
+ return Math.floor(s / 7) + 1;
45
+ }
46
+ function a(e, t, n) {
43
47
  return `${e}-${String(t + 1).padStart(2, "0")}-${String(n).padStart(2, "0")}`;
44
48
  }
45
- function a(t) {
49
+ function o(e, t) {
50
+ return `${e}-${String(t + 1).padStart(2, "0")}`;
51
+ }
52
+ function s(e) {
53
+ let t = /^(\d{4})-(\d{2})$/.exec(e);
54
+ if (!t) return null;
55
+ let n = Number(t[1]), r = Number(t[2]) - 1;
56
+ return r < 0 || r > 11 ? null : {
57
+ year: n,
58
+ month: r
59
+ };
60
+ }
61
+ function c(e, t) {
62
+ return `${e}-Q${t}`;
63
+ }
64
+ function l(e) {
65
+ let t = /^(\d{4})-Q([1-4])$/.exec(e);
66
+ return t ? {
67
+ year: Number(t[1]),
68
+ quarter: Number(t[2])
69
+ } : null;
70
+ }
71
+ function u(e) {
72
+ return String(e);
73
+ }
74
+ function d(e) {
75
+ let t = /^(\d{4})$/.exec(e);
76
+ return t ? { year: Number(t[1]) } : null;
77
+ }
78
+ function f(t) {
46
79
  let n = /^(\d{4})-(\d{2})-(\d{2})$/.exec(t);
47
80
  if (!n) return null;
48
81
  let r = Number(n[1]), i = Number(n[2]) - 1, a = Number(n[3]);
@@ -51,4 +84,4 @@ function a(t) {
51
84
  return o.getFullYear() !== r || o.getMonth() !== i || o.getDate() !== a ? null : o;
52
85
  }
53
86
  //#endregion
54
- export { t as addMonths, r as buildMonthCells, i as formatDate, e as getDaysInMonth, n as getLeadingDays, a as parseCivilDate };
87
+ export { t as addMonths, r as buildMonthCells, a as formatDate, o as formatMonthValue, c as formatQuarterValue, u as formatYearValue, e as getDaysInMonth, i as getISOWeekNumber, n as getLeadingDays, f as parseCivilDate, s as parseMonthValue, l as parseQuarterValue, d as parseYearValue };
@@ -1,5 +1,4 @@
1
1
 
2
- "use client";
3
2
  import { classnames as e } from "../../utils/classnames.js";
4
3
  /* empty css */
5
4
  import { jsx as t } from "react/jsx-runtime";
@@ -1,3 +1,2 @@
1
- "use client";
2
1
  import e from "./Card.js";
3
2
  export { e as Card };
@@ -1,71 +1,94 @@
1
1
 
2
2
  "use client";
3
3
  import { classnames as e } from "../../utils/classnames.js";
4
- import { formatString as t } from "../LocaleProvider/locale.js";
5
- import { useStrings as n } 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";
6
7
  /* empty css */
7
- import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
8
- import { Children as o, useEffect as s, useRef as c } from "react";
9
- import { useControl as l } from "react-use-control";
8
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
9
+ import { Children as s, useEffect as c, useRef as l } from "react";
10
+ import { useControl as u } from "react-use-control";
10
11
  //#region src/lib/components/Carousel/Carousel.tsx
11
- var u = "haze-Carousel__wrapper", d = "haze-Carousel__track", f = "haze-Carousel__navBtn", p = "haze-Carousel__prevBtn", m = "haze-Carousel__nextBtn", h = "haze-Carousel__indicators", g = "haze-Carousel__dot", _ = "haze-Carousel__dotActive";
12
- function v({ value: v, autoPlay: y = !1, interval: b = 5e3, className: x, children: S }) {
13
- let [C, w] = l(v, 0), T = c(null), E = o.count(S), D = n("carousel");
14
- return s(() => {
15
- let e = T.current;
12
+ var d = "haze-Carousel__wrapper", f = "haze-Carousel__track", p = "haze-Carousel__navBtn", m = "haze-Carousel__prevBtn", h = "haze-Carousel__nextBtn", g = "haze-Carousel__indicators", _ = "haze-Carousel__dot", v = "haze-Carousel__dotActive";
13
+ function y({ value: y, autoPlay: b = !1, interval: x = 5e3, className: S, children: C }) {
14
+ let [w, T] = u(y, 0), E = l(null), D = l(null), O = s.count(C), k = r("carousel");
15
+ c(() => {
16
+ let e = E.current;
16
17
  if (!e) return;
17
- let t = e.children[C];
18
+ let t = e.children[w];
18
19
  t && t.scrollIntoView({
19
20
  behavior: "smooth",
20
21
  block: "nearest",
21
22
  inline: "start"
22
23
  });
23
- }, [C]), s(() => {
24
- if (!y || E <= 1) return;
24
+ }, [w]), c(() => {
25
+ if (!b || O <= 1) return;
25
26
  let e = setInterval(() => {
26
- w((e) => (e + 1) % E);
27
- }, b);
27
+ T((e) => (e + 1) % O);
28
+ }, x);
28
29
  return () => clearInterval(e);
29
30
  }, [
30
- y,
31
31
  b,
32
- E,
33
- w
34
- ]), /* @__PURE__ */ a("div", {
32
+ x,
33
+ O,
34
+ T
35
+ ]);
36
+ let A = () => T((e) => (e - 1 + O) % O), j = () => T((e) => (e + 1) % O);
37
+ return /* @__PURE__ */ o("div", {
38
+ ref: D,
35
39
  role: "region",
36
40
  "aria-roledescription": "carousel",
37
- "aria-label": D.label,
38
- className: e([u, x]),
39
- children: [/* @__PURE__ */ i("div", {
40
- ref: T,
41
- className: d,
42
- children: S
43
- }), E > 1 && /* @__PURE__ */ a(r, { children: [
44
- /* @__PURE__ */ i("button", {
41
+ "aria-label": k.label,
42
+ tabIndex: 0,
43
+ onKeyDown: (e) => {
44
+ if (O <= 1) return;
45
+ let n = t(D.current) === "rtl" ? "ArrowLeft" : "ArrowRight", r = n === "ArrowLeft" ? "ArrowRight" : "ArrowLeft";
46
+ switch (e.key) {
47
+ case n:
48
+ e.preventDefault(), j();
49
+ return;
50
+ case r:
51
+ e.preventDefault(), A();
52
+ return;
53
+ case "Home":
54
+ e.preventDefault(), T(0);
55
+ return;
56
+ case "End":
57
+ e.preventDefault(), T(O - 1);
58
+ return;
59
+ }
60
+ },
61
+ className: e([d, S]),
62
+ children: [/* @__PURE__ */ a("div", {
63
+ ref: E,
64
+ className: f,
65
+ children: C
66
+ }), O > 1 && /* @__PURE__ */ o(i, { children: [
67
+ /* @__PURE__ */ a("button", {
45
68
  type: "button",
46
- onClick: () => w((e) => (e - 1 + E) % E),
47
- "aria-label": D.previousSlide,
48
- className: e([f, p]),
69
+ onClick: A,
70
+ "aria-label": k.previousSlide,
71
+ className: e([p, m]),
49
72
  children: "‹"
50
73
  }),
51
- /* @__PURE__ */ i("button", {
74
+ /* @__PURE__ */ a("button", {
52
75
  type: "button",
53
- onClick: () => w((e) => (e + 1) % E),
54
- "aria-label": D.nextSlide,
55
- className: e([f, m]),
76
+ onClick: j,
77
+ "aria-label": k.nextSlide,
78
+ className: e([p, h]),
56
79
  children: "›"
57
80
  }),
58
- /* @__PURE__ */ i("div", {
59
- className: h,
60
- children: Array.from({ length: E }, (n, r) => /* @__PURE__ */ i("button", {
81
+ /* @__PURE__ */ a("div", {
82
+ className: g,
83
+ children: Array.from({ length: O }, (t, r) => /* @__PURE__ */ a("button", {
61
84
  type: "button",
62
- onClick: () => w(r),
63
- "aria-label": t(D.goToSlide, { index: r + 1 }),
64
- className: e([g, r === C && _])
85
+ onClick: () => T(r),
86
+ "aria-label": n(k.goToSlide, { index: r + 1 }),
87
+ className: e([_, r === w && v])
65
88
  }, r))
66
89
  })
67
90
  ] })]
68
91
  });
69
92
  }
70
93
  //#endregion
71
- export { v as default };
94
+ export { y as default };
@@ -1,15 +1,19 @@
1
1
 
2
2
  "use client";
3
3
  import { classnames as e } from "../../utils/classnames.js";
4
- import { useFocusScope as t } from "../../utils/focus-scope.js";
5
- import { FloatingPanel as n, useFloating as r } from "../../utils/floating.js";
6
- import { useStrings as i } from "../LocaleProvider/useStrings.js";
4
+ import { mergeRefs as t } from "../../utils/refs.js";
5
+ import { getDirection as n } from "../../utils/direction.js";
6
+ import { useStrings as r } from "../LocaleProvider/useStrings.js";
7
+ import { FloatingPanel as i, useFloating as a } from "../../utils/floating.js";
8
+ import o from "../Spinner/Spinner.js";
9
+ import ee from "../VirtualList/VirtualList.js";
10
+ import { useFocusScope as te } from "../../utils/focus-scope.js";
7
11
  /* empty css */
8
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
9
- import { Fragment as ee, useCallback as s, useEffect as c, useId as te, useRef as l, useState as ne } from "react";
10
- import { isControl as u, useControl as d, useThru as f, watch as p } from "react-use-control";
12
+ import { Fragment as ne, jsx as s, jsxs as c } from "react/jsx-runtime";
13
+ import { Fragment as re, useCallback as l, useEffect as u, useId as ie, useRef as d, useState as f } from "react";
14
+ import { isControl as ae, useControl as p, useThru as oe, watch as se } from "react-use-control";
11
15
  //#region src/lib/components/Cascader/Cascader.tsx
12
- var m = "haze-Cascader__wrapper", h = "haze-Cascader__trigger", g = "haze-Cascader__triggerValue", _ = "haze-Cascader__triggerPlaceholder", re = "haze-Cascader__triggerCaret", ie = "haze-Cascader__separator", ae = "haze-Cascader__panel", oe = "haze-Cascader__column", se = "haze-Cascader__item", v = "haze-Cascader__itemInPath", y = "haze-Cascader__itemLabel", b = "haze-Cascader__chevron", x = () => /* @__PURE__ */ a("svg", {
16
+ var ce = "haze-Cascader__wrapper", le = "haze-Cascader__trigger", ue = "haze-Cascader__triggerValue", de = "haze-Cascader__triggerPlaceholder", fe = "haze-Cascader__triggerCaret", pe = "haze-Cascader__separator", me = "haze-Cascader__panel", he = "haze-Cascader__panelSearch", ge = "haze-Cascader__columnsStrip", _e = "haze-Cascader__searchInput", ve = "haze-Cascader__loadingBlock", ye = "haze-Cascader__emptyBlock", be = "haze-Cascader__column", xe = "haze-Cascader__columnVirtual", Se = 220, Ce = 37, we = "haze-Cascader__virtualRow", Te = "haze-Cascader__item", Ee = "haze-Cascader__itemInPath", De = "haze-Cascader__itemLabel", Oe = "haze-Cascader__chevron", ke = () => /* @__PURE__ */ s("svg", {
13
17
  viewBox: "0 0 12 12",
14
18
  fill: "none",
15
19
  stroke: "currentColor",
@@ -18,8 +22,8 @@ var m = "haze-Cascader__wrapper", h = "haze-Cascader__trigger", g = "haze-Cascad
18
22
  strokeLinejoin: "round",
19
23
  "aria-hidden": "true",
20
24
  focusable: "false",
21
- children: a("path", { d: "M4 2l4 4-4 4" })
22
- }), S = () => /* @__PURE__ */ a("svg", {
25
+ children: s("path", { d: "M4 2l4 4-4 4" })
26
+ }), Ae = () => /* @__PURE__ */ s("svg", {
23
27
  viewBox: "0 0 12 12",
24
28
  fill: "none",
25
29
  stroke: "currentColor",
@@ -28,201 +32,279 @@ var m = "haze-Cascader__wrapper", h = "haze-Cascader__trigger", g = "haze-Cascad
28
32
  strokeLinejoin: "round",
29
33
  "aria-hidden": "true",
30
34
  focusable: "false",
31
- children: a("path", { d: "M2 4l4 4 4-4" })
32
- }), C = "[role=\"menuitem\"]";
33
- function w(e) {
35
+ children: s("path", { d: "M2 4l4 4 4-4" })
36
+ }), m = "[role=\"menuitem\"]";
37
+ function h(e) {
34
38
  return e ? Array.from(e.querySelectorAll("[data-haze-cascader-column]")) : [];
35
39
  }
36
- function T(e) {
37
- return e ? Array.from(e.querySelectorAll(C)) : [];
40
+ function g(e) {
41
+ return e ? Array.from(e.querySelectorAll(m)) : [];
38
42
  }
39
- function E({ options: E, value: D, onChange: O, placeholder: k, changeOnSelect: A = !1, expandTrigger: j = "click", className: M, ...N }) {
40
- let P = i("cascader"), [F, I] = d(!1, !1), L = u(D), [R, z] = d(f(L ? D : void 0, p((e) => O?.(e))), L ? [] : D ?? []), [B, V] = ne([]), H = te(), U = l(null), W = l(null), G = l(null), K = l(!1), q = r({
41
- open: F,
42
- setOpen: I,
43
- triggerRef: U,
44
- panelRef: W,
43
+ function _({ options: _, value: v, onChange: je, placeholder: Me, changeOnSelect: Ne = !1, expandTrigger: Pe = "click", onSearch: y, loading: b = !1, virtualized: x, className: Fe, ref: S, ...Ie }) {
44
+ let Le = r("cascader"), C = r("select"), [w, T] = p(!1, !1), E = ae(v), [D, O] = p(oe(E ? v : void 0, se((e) => je?.(e))), E ? [] : v ?? []), [k, A] = f([]), [j, M] = f(null), N = y !== void 0, [P, Re] = f(""), F = x !== void 0 && x !== !1, I = typeof x == "object" ? x : void 0, L = I?.itemHeight ?? Ce, ze = I?.overscan, R = ie(), z = d(null), Be = l((e) => t(z, S)(e), [z, S]), B = d(null), V = d(null), H = d(/* @__PURE__ */ new Map()), U = d(!1), W = a({
45
+ open: w,
46
+ setOpen: T,
47
+ triggerRef: z,
48
+ panelRef: B,
45
49
  animated: !0
46
- }), J = t({
47
- enabled: F,
50
+ }), G = te({
51
+ enabled: w,
48
52
  autoFocus: !1,
49
53
  returnFocus: !0
50
- }), Y = l(!1);
51
- c(() => {
52
- let e = F && !Y.current;
53
- Y.current = F, e && V(R);
54
- }, [F, R]), c(() => {
55
- if (!F) {
56
- K.current = !1, G.current = null;
54
+ }), K = d(!1);
55
+ u(() => {
56
+ let e = w && !K.current;
57
+ K.current = w, e && A(D);
58
+ }, [w, D]), u(() => {
59
+ if (!w) {
60
+ U.current = !1, M(null);
57
61
  return;
58
62
  }
59
- if (!q.shown) return;
60
- let e = G.current;
63
+ if (!W.shown) return;
64
+ let e = j;
61
65
  if (e) {
62
- G.current = null;
63
- let t = T(w(W.current)[e.level]), n = e.value === void 0 ? e.index : t.findIndex((t) => t.dataset.value === e.value);
66
+ M(null);
67
+ let t = g(h(B.current)[e.level]), n = e.value === void 0 ? e.index : t.findIndex((t) => t.dataset.value === e.value);
64
68
  (n >= 0 ? t[n] : t[0])?.focus();
65
69
  return;
66
70
  }
67
- if (K.current) return;
68
- let t = W.current;
71
+ if (U.current) return;
72
+ let t = B.current;
69
73
  if (!t) return;
70
- let n = Array.from(t.querySelectorAll(C)), r = R.length - 1, i = R[r], a;
74
+ if (N) {
75
+ U.current = !0, V.current?.focus();
76
+ return;
77
+ }
78
+ let n = Array.from(t.querySelectorAll(m)), r = D.length - 1, i = D[r], a;
71
79
  if (i !== void 0) {
80
+ if (F && H.current.has(r)) {
81
+ let e = _;
82
+ for (let t = 0; t < r; t++) e = e.find((e) => e.value === D[t])?.children ?? [];
83
+ let t = e.findIndex((e) => e.value === i);
84
+ if (t >= 0) {
85
+ H.current.get(r)?.scrollToIndex(t, "auto"), U.current = !0, M({
86
+ level: r,
87
+ index: t,
88
+ value: i
89
+ });
90
+ return;
91
+ }
92
+ }
72
93
  if (a = n.find((e) => e.dataset.level === String(r) && e.dataset.value === i), !a) return;
73
94
  } else a = n.find((e) => e.dataset.level === "0");
74
- a && (K.current = !0, a.focus());
95
+ a && (U.current = !0, a.focus());
75
96
  }, [
97
+ w,
98
+ W.shown,
99
+ k,
100
+ D,
101
+ j,
76
102
  F,
77
- q.shown,
78
- B,
79
- R
103
+ _,
104
+ N
80
105
  ]);
81
- let ce = s((e) => {
82
- W.current = e, J(e);
83
- }, [W, J]), X = [E];
84
- for (let e of B) {
85
- let t = X.at(-1).find((t) => t.value === e)?.children;
106
+ let q = d(y);
107
+ u(() => {
108
+ q.current = y;
109
+ }, [y]);
110
+ let J = d(P);
111
+ u(() => {
112
+ J.current !== P && (J.current = P, q.current?.(P));
113
+ }, [P]), !w && P !== "" && Re("");
114
+ let Ve = l((e) => {
115
+ B.current = e, G(e);
116
+ }, [B, G]), He = l((e) => (t) => {
117
+ t ? H.current.set(e, t) : H.current.delete(e);
118
+ }, []), Y = [_];
119
+ for (let e of k) {
120
+ let t = Y.at(-1).find((t) => t.value === e)?.children;
86
121
  if (!t?.length) break;
87
- X.push(t);
122
+ Y.push(t);
88
123
  }
89
- let Z = [], Q = E;
90
- for (let e of R) {
124
+ let X = (e, t) => {
125
+ let n = Y[e]?.[t];
126
+ if (n) {
127
+ if (F) {
128
+ H.current.get(e)?.scrollToIndex(t, "auto"), M({
129
+ level: e,
130
+ index: t,
131
+ value: n.value
132
+ });
133
+ return;
134
+ }
135
+ g(h(B.current)[e])[t]?.focus();
136
+ }
137
+ }, Z = [], Q = _;
138
+ for (let e of D) {
91
139
  let t = Q.find((t) => t.value === e);
92
140
  if (!t) break;
93
141
  Z.push(t), Q = t.children ?? [];
94
142
  }
95
- let $ = (e, t) => {
96
- let n = [...B.slice(0, t), e.value];
97
- e.children?.length ? (V(n), A && z(n)) : (z(n), I(!1), U.current?.focus());
98
- }, le = (e, t) => {
99
- j === "hover" && V([...B.slice(0, t), e.value]);
100
- }, ue = (e) => {
101
- !F && (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), I(!0));
102
- }, de = (e) => {
103
- let t = W.current;
143
+ let Ue = (e, t) => {
144
+ let n = [...k.slice(0, t), e.value];
145
+ e.children?.length ? (A(n), Ne && O(n)) : (O(n), T(!1), z.current?.focus());
146
+ }, We = (e, t) => {
147
+ Pe === "hover" && A([...k.slice(0, t), e.value]);
148
+ }, Ge = (e) => {
149
+ !w && (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), T(!0));
150
+ }, Ke = (e) => {
151
+ let t = B.current;
104
152
  if (!t) return;
105
- let n = (document.activeElement instanceof HTMLElement ? document.activeElement : null)?.closest(C) ?? void 0, r = n?.closest("[data-haze-cascader-column]"), i = n ? Number(n.dataset.level) : 0;
153
+ let r = (document.activeElement instanceof HTMLElement ? document.activeElement : null)?.closest(m) ?? void 0, i = r ? Number(r.dataset.level) : 0, a = n(t) === "rtl" ? "ArrowLeft" : "ArrowRight", o = a === "ArrowLeft" ? "ArrowRight" : "ArrowLeft";
106
154
  switch (e.key) {
107
155
  case "ArrowDown":
108
156
  case "ArrowUp": {
109
157
  e.preventDefault();
110
- let i = T(r ?? w(t)[0]);
111
- if (i.length === 0) return;
112
- let a = n ? i.indexOf(n) : -1;
113
- i[a < 0 ? e.key === "ArrowDown" ? 0 : i.length - 1 : (a + (e.key === "ArrowDown" ? 1 : -1) + i.length) % i.length]?.focus();
158
+ let t = Y[i] ?? [];
159
+ if (t.length === 0) return;
160
+ let n = r ? t.findIndex((e) => e.value === r.dataset.value) : -1, a = n < 0 ? e.key === "ArrowDown" ? 0 : t.length - 1 : (n + (e.key === "ArrowDown" ? 1 : -1) + t.length) % t.length;
161
+ X(i, a);
114
162
  return;
115
163
  }
116
- case "ArrowRight":
117
- if (n?.getAttribute("aria-haspopup") !== "true") return;
118
- e.preventDefault(), V([...B.slice(0, i), n.dataset.value]), G.current = {
164
+ case a:
165
+ if (r?.getAttribute("aria-haspopup") !== "true") return;
166
+ e.preventDefault(), A([...k.slice(0, i), r.dataset.value]), M({
119
167
  level: i + 1,
120
168
  index: 0
121
- };
169
+ });
122
170
  return;
123
- case "ArrowLeft": {
124
- if (!n || B.length === 0) return;
171
+ case o: {
172
+ if (!r || k.length === 0) return;
125
173
  e.preventDefault();
126
- let t = B[B.length - 1];
127
- V(B.slice(0, -1)), G.current = {
128
- level: B.length - 1,
174
+ let t = k[k.length - 1];
175
+ A(k.slice(0, -1)), M({
176
+ level: k.length - 1,
129
177
  index: 0,
130
178
  value: t
131
- };
179
+ });
132
180
  return;
133
181
  }
134
182
  case "Home":
135
183
  case "End": {
136
184
  e.preventDefault();
137
- let n = T(r ?? w(t)[0]);
138
- if (n.length === 0) return;
139
- (e.key === "Home" ? n[0] : n[n.length - 1])?.focus();
185
+ let t = Y[i] ?? [];
186
+ if (t.length === 0) return;
187
+ X(i, e.key === "Home" ? 0 : t.length - 1);
140
188
  return;
141
189
  }
142
190
  case "Enter": {
143
- if (!n) return;
191
+ if (!r) return;
144
192
  e.preventDefault();
145
- let t = X[i]?.find((e) => e.value === n.dataset.value);
193
+ let t = Y[i]?.find((e) => e.value === r.dataset.value);
146
194
  if (!t) return;
147
- t.children?.length ? (V([...B.slice(0, i), t.value]), G.current = {
195
+ t.children?.length ? (A([...k.slice(0, i), t.value]), M({
148
196
  level: i + 1,
149
197
  index: 0
150
- }) : $(t, i);
198
+ })) : Ue(t, i);
151
199
  return;
152
200
  }
153
201
  case "Escape":
154
202
  case "Tab":
155
- e.preventDefault(), I(!1);
203
+ e.preventDefault(), T(!1);
156
204
  return;
157
205
  }
158
- };
159
- return /* @__PURE__ */ o("div", {
160
- ...N,
161
- className: e([m, M]),
162
- children: [/* @__PURE__ */ o("button", {
163
- ref: U,
206
+ }, qe = (t, n, r) => {
207
+ let i = !!t.children?.length, a = k[n] === t.value;
208
+ return /* @__PURE__ */ c("button", {
209
+ type: "button",
210
+ role: "menuitem",
211
+ tabIndex: -1,
212
+ "data-level": n,
213
+ "data-value": t.value,
214
+ "aria-haspopup": i ? "true" : void 0,
215
+ "aria-expanded": i ? a : void 0,
216
+ "aria-setsize": F ? Y[n]?.length : void 0,
217
+ "aria-posinset": F ? r + 1 : void 0,
218
+ onClick: () => Ue(t, n),
219
+ onMouseEnter: () => We(t, n),
220
+ className: e([
221
+ Te,
222
+ a && Ee,
223
+ F && we
224
+ ]),
225
+ children: [/* @__PURE__ */ s("span", {
226
+ className: e(De),
227
+ children: t.label
228
+ }), i && /* @__PURE__ */ s("span", {
229
+ role: "img",
230
+ "aria-label": Le.expand,
231
+ className: e(Oe),
232
+ children: /* @__PURE__ */ s(ke, {})
233
+ })]
234
+ }, t.value);
235
+ }, Je = Y.map((t, n) => /* @__PURE__ */ s("div", {
236
+ role: "menu",
237
+ "data-haze-cascader-column": n,
238
+ className: e([be, F && xe]),
239
+ children: F ? /* @__PURE__ */ s(ee, {
240
+ ref: He(n),
241
+ "data-virtualized": !0,
242
+ items: t,
243
+ height: Math.min(Se, t.length * L),
244
+ itemHeight: L,
245
+ overscan: ze,
246
+ renderItem: (e, t) => qe(e, n, t)
247
+ }) : t.map((e, t) => qe(e, n, t))
248
+ }, n)), $ = b ? /* @__PURE__ */ c("div", {
249
+ className: e(ve),
250
+ children: [/* @__PURE__ */ s(o, { size: "sm" }), /* @__PURE__ */ s("span", { children: C.loading })]
251
+ }) : N && _.length === 0 ? /* @__PURE__ */ s("div", {
252
+ className: e(ye),
253
+ children: C.noMatch
254
+ }) : Je;
255
+ return /* @__PURE__ */ c("div", {
256
+ ...Ie,
257
+ className: e([ce, Fe]),
258
+ children: [/* @__PURE__ */ c("button", {
259
+ ref: Be,
164
260
  type: "button",
165
- style: q.triggerStyle,
261
+ style: W.triggerStyle,
166
262
  "aria-haspopup": "menu",
167
- "aria-expanded": F,
168
- "aria-controls": H,
169
- onPointerDown: q.onTriggerPointerDown,
170
- onClick: q.onTriggerClick,
171
- onKeyDown: ue,
172
- className: e(h),
173
- children: [/* @__PURE__ */ a("span", {
174
- className: e(g),
175
- children: Z.length === 0 ? /* @__PURE__ */ a("span", {
176
- className: e(_),
177
- children: k
178
- }) : Z.map((t, n) => /* @__PURE__ */ o(ee, { children: [n > 0 && /* @__PURE__ */ a("span", {
179
- className: e(ie),
263
+ "aria-expanded": w,
264
+ "aria-controls": R,
265
+ onPointerDown: W.onTriggerPointerDown,
266
+ onClick: W.onTriggerClick,
267
+ onKeyDown: Ge,
268
+ className: e(le),
269
+ children: [/* @__PURE__ */ s("span", {
270
+ className: e(ue),
271
+ children: Z.length === 0 ? /* @__PURE__ */ s("span", {
272
+ className: e(de),
273
+ children: Me
274
+ }) : Z.map((t, n) => /* @__PURE__ */ c(re, { children: [n > 0 && /* @__PURE__ */ s("span", {
275
+ className: e(pe),
180
276
  children: " / "
181
277
  }), t.label] }, t.value))
182
- }), /* @__PURE__ */ a("span", {
278
+ }), /* @__PURE__ */ s("span", {
183
279
  "aria-hidden": "true",
184
- className: e(re),
185
- children: /* @__PURE__ */ a(S, {})
280
+ className: e(fe),
281
+ children: /* @__PURE__ */ s(Ae, {})
186
282
  })]
187
- }), /* @__PURE__ */ a(n, {
188
- ref: ce,
189
- behavior: q,
283
+ }), /* @__PURE__ */ s(i, {
284
+ ref: Ve,
285
+ behavior: W,
190
286
  placement: "bottom",
191
- id: H,
192
- role: "menu",
193
- visualClass: ae,
194
- onKeyDown: de,
195
- children: X.map((t, n) => /* @__PURE__ */ a("div", {
196
- role: "menu",
197
- "data-haze-cascader-column": n,
198
- className: e(oe),
199
- children: t.map((t) => {
200
- let r = !!t.children?.length, i = B[n] === t.value;
201
- return /* @__PURE__ */ o("button", {
202
- type: "button",
203
- role: "menuitem",
204
- tabIndex: -1,
205
- "data-level": n,
206
- "data-value": t.value,
207
- "aria-haspopup": r ? "true" : void 0,
208
- "aria-expanded": r ? i : void 0,
209
- onClick: () => $(t, n),
210
- onMouseEnter: () => le(t, n),
211
- className: e([se, i && v]),
212
- children: [/* @__PURE__ */ a("span", {
213
- className: e(y),
214
- children: t.label
215
- }), r && /* @__PURE__ */ a("span", {
216
- role: "img",
217
- "aria-label": P.expand,
218
- className: e(b),
219
- children: /* @__PURE__ */ a(x, {})
220
- })]
221
- }, t.value);
222
- })
223
- }, n))
287
+ id: N ? void 0 : R,
288
+ role: N || b ? void 0 : "menu",
289
+ "aria-busy": b || void 0,
290
+ visualClass: N ? he : me,
291
+ onKeyDown: Ke,
292
+ children: N ? /* @__PURE__ */ c(ne, { children: [/* @__PURE__ */ s("input", {
293
+ ref: V,
294
+ type: "text",
295
+ "aria-label": C.searchLabel,
296
+ placeholder: C.searchPlaceholder,
297
+ value: P,
298
+ onChange: (e) => Re(e.target.value),
299
+ className: e(_e)
300
+ }), /* @__PURE__ */ s("div", {
301
+ id: R,
302
+ role: !b && _.length > 0 ? "menu" : void 0,
303
+ className: e(ge),
304
+ children: $
305
+ })] }) : $
224
306
  })]
225
307
  });
226
308
  }
227
309
  //#endregion
228
- export { E as default };
310
+ export { _ as default };