@vjdesigns/vjdesigns-ui 2.4.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +45 -1
  3. package/dist/ai/llms-full.txt +141 -76
  4. package/dist/ai/registry.json +125 -61
  5. package/dist/components/data-display/Accordion/Accordion.cjs.js +1 -1
  6. package/dist/components/data-display/Accordion/Accordion.mjs +22 -22
  7. package/dist/components/data-display/Accordion/Accordion.module.css.mjs +1 -2
  8. package/dist/components/data-display/Avatar/Avatar.cjs.js +1 -1
  9. package/dist/components/data-display/Avatar/Avatar.mjs +92 -92
  10. package/dist/components/data-display/Avatar/Avatar.module.css.mjs +1 -2
  11. package/dist/components/data-display/Badge/Badge.cjs.js +1 -1
  12. package/dist/components/data-display/Badge/Badge.mjs +2 -2
  13. package/dist/components/data-display/Badge/Badge.module.css.mjs +1 -2
  14. package/dist/components/data-display/Card/Card.cjs.js +1 -1
  15. package/dist/components/data-display/Card/Card.mjs +2 -2
  16. package/dist/components/data-display/Card/Card.module.css.mjs +1 -2
  17. package/dist/components/data-display/Carousel/Carousel.cjs.js +1 -1
  18. package/dist/components/data-display/Carousel/Carousel.mjs +42 -42
  19. package/dist/components/data-display/Carousel/Carousel.module.css.mjs +1 -2
  20. package/dist/components/data-display/Chat/Chat.cjs.js +1 -1
  21. package/dist/components/data-display/Chat/Chat.mjs +114 -118
  22. package/dist/components/data-display/Chat/Chat.module.css.mjs +1 -2
  23. package/dist/components/data-display/Chat/streams.mjs +1 -2
  24. package/dist/components/data-display/Chip/Chip.cjs.js +1 -1
  25. package/dist/components/data-display/Chip/Chip.mjs +50 -54
  26. package/dist/components/data-display/Chip/Chip.module.css.mjs +1 -2
  27. package/dist/components/data-display/CodeBlock/CodeBlock.cjs.js +4 -4
  28. package/dist/components/data-display/CodeBlock/CodeBlock.mjs +113 -113
  29. package/dist/components/data-display/CodeBlock/CodeBlock.module.css.mjs +1 -2
  30. package/dist/components/data-display/CodeBlock/tokenize.mjs +1 -2
  31. package/dist/components/data-display/DataGrid/DataGrid.cjs.js +1 -1
  32. package/dist/components/data-display/DataGrid/DataGrid.d.ts +59 -3
  33. package/dist/components/data-display/DataGrid/DataGrid.mjs +382 -272
  34. package/dist/components/data-display/DataGrid/DataGrid.module.css.cjs.js +1 -1
  35. package/dist/components/data-display/DataGrid/DataGrid.module.css.mjs +29 -26
  36. package/dist/components/data-display/DataGrid/dataGridUtils.cjs.js +1 -1
  37. package/dist/components/data-display/DataGrid/dataGridUtils.d.ts +18 -0
  38. package/dist/components/data-display/DataGrid/dataGridUtils.mjs +100 -32
  39. package/dist/components/data-display/EmptyState/EmptyState.cjs.js +1 -1
  40. package/dist/components/data-display/EmptyState/EmptyState.mjs +53 -53
  41. package/dist/components/data-display/EmptyState/EmptyState.module.css.mjs +1 -2
  42. package/dist/components/data-display/Image/Image.cjs.js +1 -1
  43. package/dist/components/data-display/Image/Image.mjs +6 -6
  44. package/dist/components/data-display/Image/Image.module.css.mjs +1 -2
  45. package/dist/components/data-display/List/List.cjs.js +1 -1
  46. package/dist/components/data-display/List/List.mjs +68 -68
  47. package/dist/components/data-display/List/List.module.css.mjs +1 -2
  48. package/dist/components/data-display/Stat/Stat.cjs.js +1 -1
  49. package/dist/components/data-display/Stat/Stat.mjs +112 -112
  50. package/dist/components/data-display/Stat/Stat.module.css.mjs +1 -2
  51. package/dist/components/data-display/Table/Table.cjs.js +1 -1
  52. package/dist/components/data-display/Table/Table.mjs +187 -183
  53. package/dist/components/data-display/Table/Table.module.css.mjs +1 -2
  54. package/dist/components/data-display/Table/useTable.cjs.js +1 -1
  55. package/dist/components/data-display/Table/useTable.mjs +2 -2
  56. package/dist/components/data-display/Timeline/Timeline.cjs.js +1 -1
  57. package/dist/components/data-display/Timeline/Timeline.mjs +64 -64
  58. package/dist/components/data-display/Timeline/Timeline.module.css.mjs +1 -2
  59. package/dist/components/data-display/TreeView/TreeView.cjs.js +1 -1
  60. package/dist/components/data-display/TreeView/TreeView.mjs +107 -119
  61. package/dist/components/data-display/TreeView/TreeView.module.css.mjs +1 -2
  62. package/dist/components/data-display/TreeView/treeUtils.mjs +1 -2
  63. package/dist/components/data-display/VirtualList/VirtualList.cjs.js +1 -1
  64. package/dist/components/data-display/VirtualList/VirtualList.mjs +2 -2
  65. package/dist/components/data-display/VirtualList/VirtualList.module.css.mjs +1 -2
  66. package/dist/components/feedback/Alert/Alert.cjs.js +1 -1
  67. package/dist/components/feedback/Alert/Alert.mjs +56 -56
  68. package/dist/components/feedback/Alert/Alert.module.css.mjs +1 -2
  69. package/dist/components/feedback/Banner/Banner.cjs.js +1 -1
  70. package/dist/components/feedback/Banner/Banner.mjs +48 -48
  71. package/dist/components/feedback/Banner/Banner.module.css.mjs +1 -2
  72. package/dist/components/feedback/ErrorSummary/ErrorSummary.cjs.js +1 -1
  73. package/dist/components/feedback/ErrorSummary/ErrorSummary.mjs +10 -10
  74. package/dist/components/feedback/ErrorSummary/ErrorSummary.module.css.mjs +1 -2
  75. package/dist/components/feedback/Progress/Progress.cjs.js +1 -1
  76. package/dist/components/feedback/Progress/Progress.mjs +2 -2
  77. package/dist/components/feedback/Progress/Progress.module.css.mjs +1 -2
  78. package/dist/components/feedback/Skeleton/Skeleton.cjs.js +1 -1
  79. package/dist/components/feedback/Skeleton/Skeleton.mjs +73 -73
  80. package/dist/components/feedback/Skeleton/Skeleton.module.css.mjs +1 -2
  81. package/dist/components/feedback/Spinner/Spinner.cjs.js +1 -1
  82. package/dist/components/feedback/Spinner/Spinner.mjs +29 -29
  83. package/dist/components/feedback/Spinner/Spinner.module.css.mjs +1 -2
  84. package/dist/components/feedback/Toast/Toast.cjs.js +1 -1
  85. package/dist/components/feedback/Toast/Toast.mjs +42 -42
  86. package/dist/components/feedback/Toast/Toast.module.css.mjs +1 -2
  87. package/dist/components/feedback/Toast/ToastItem.cjs.js +1 -1
  88. package/dist/components/feedback/Toast/ToastItem.mjs +10 -10
  89. package/dist/components/feedback/Toast/ToastProvider.cjs.js +1 -1
  90. package/dist/components/feedback/Toast/ToastProvider.mjs +11 -11
  91. package/dist/components/feedback/Toast/ToastViewport.cjs.js +1 -1
  92. package/dist/components/feedback/Toast/ToastViewport.mjs +30 -30
  93. package/dist/components/feedback/Toast/toastStore.mjs +1 -2
  94. package/dist/components/feedback/Toast/toastTiming.cjs.js +1 -1
  95. package/dist/components/feedback/Toast/toastTiming.mjs +2 -2
  96. package/dist/components/feedback/Toast/useToast.cjs.js +1 -1
  97. package/dist/components/feedback/Toast/useToast.mjs +2 -2
  98. package/dist/components/feedback/Toast/useToastAnnouncer.cjs.js +1 -1
  99. package/dist/components/feedback/Toast/useToastAnnouncer.mjs +2 -2
  100. package/dist/components/forms/CheckBox/CheckBox.cjs.js +1 -1
  101. package/dist/components/forms/CheckBox/CheckBox.mjs +2 -2
  102. package/dist/components/forms/CheckBox/CheckBox.module.css.mjs +1 -2
  103. package/dist/components/forms/ColorPicker/ColorInput.cjs.js +1 -1
  104. package/dist/components/forms/ColorPicker/ColorInput.mjs +43 -43
  105. package/dist/components/forms/ColorPicker/ColorPicker.cjs.js +1 -1
  106. package/dist/components/forms/ColorPicker/ColorPicker.mjs +153 -153
  107. package/dist/components/forms/ColorPicker/ColorPicker.module.css.mjs +1 -2
  108. package/dist/components/forms/ColorPicker/colorUtils.mjs +1 -2
  109. package/dist/components/forms/Combobox/Combobox.cjs.js +1 -1
  110. package/dist/components/forms/Combobox/Combobox.mjs +200 -213
  111. package/dist/components/forms/Combobox/Combobox.module.css.mjs +1 -2
  112. package/dist/components/forms/Combobox/ComboboxPopup.cjs.js +1 -1
  113. package/dist/components/forms/Combobox/ComboboxPopup.mjs +164 -121
  114. package/dist/components/forms/Combobox/comboboxUtils.cjs.js +1 -1
  115. package/dist/components/forms/Combobox/comboboxUtils.d.ts +4 -1
  116. package/dist/components/forms/Combobox/comboboxUtils.mjs +21 -20
  117. package/dist/components/forms/DatePicker/Calendar.cjs.js +1 -1
  118. package/dist/components/forms/DatePicker/Calendar.mjs +60 -66
  119. package/dist/components/forms/DatePicker/Calendar.module.css.mjs +1 -2
  120. package/dist/components/forms/DatePicker/DatePicker.cjs.js +1 -1
  121. package/dist/components/forms/DatePicker/DatePicker.mjs +72 -74
  122. package/dist/components/forms/DatePicker/DatePicker.module.css.mjs +1 -2
  123. package/dist/components/forms/DatePicker/DateRangePicker.cjs.js +1 -1
  124. package/dist/components/forms/DatePicker/DateRangePicker.mjs +117 -117
  125. package/dist/components/forms/DatePicker/DateRangePicker.module.css.mjs +1 -2
  126. package/dist/components/forms/DatePicker/dateUtils.mjs +1 -2
  127. package/dist/components/forms/DatePicker/index.d.ts +1 -1
  128. package/dist/components/forms/DateTimePicker/DateTimePicker.cjs.js +1 -1
  129. package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +19 -19
  130. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -2
  131. package/dist/components/forms/Field/Field.cjs.js +1 -1
  132. package/dist/components/forms/Field/Field.mjs +14 -14
  133. package/dist/components/forms/Field/Field.module.css.mjs +1 -2
  134. package/dist/components/forms/Field/FieldContext.cjs.js +1 -1
  135. package/dist/components/forms/Field/FieldContext.mjs +2 -2
  136. package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -1
  137. package/dist/components/forms/FileUpload/FileUpload.mjs +250 -255
  138. package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +1 -2
  139. package/dist/components/forms/Input/Input.cjs.js +1 -1
  140. package/dist/components/forms/Input/Input.mjs +35 -35
  141. package/dist/components/forms/Input/Input.module.css.mjs +1 -2
  142. package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -1
  143. package/dist/components/forms/NumberInput/NumberInput.mjs +137 -142
  144. package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +1 -2
  145. package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -1
  146. package/dist/components/forms/PasswordInput/PasswordInput.mjs +142 -142
  147. package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +1 -2
  148. package/dist/components/forms/PinInput/PinInput.cjs.js +1 -1
  149. package/dist/components/forms/PinInput/PinInput.mjs +12 -12
  150. package/dist/components/forms/PinInput/PinInput.module.css.mjs +1 -2
  151. package/dist/components/forms/Radio/Radio.cjs.js +1 -1
  152. package/dist/components/forms/Radio/Radio.mjs +2 -2
  153. package/dist/components/forms/Radio/Radio.module.css.mjs +1 -2
  154. package/dist/components/forms/Rating/Rating.cjs.js +1 -1
  155. package/dist/components/forms/Rating/Rating.mjs +110 -109
  156. package/dist/components/forms/Rating/Rating.module.css.mjs +1 -2
  157. package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -1
  158. package/dist/components/forms/SearchInput/SearchInput.mjs +118 -126
  159. package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +1 -2
  160. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -1
  161. package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +46 -43
  162. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.cjs.js +1 -1
  163. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +2 -3
  164. package/dist/components/forms/Select/Select.cjs.js +1 -1
  165. package/dist/components/forms/Select/Select.mjs +2 -2
  166. package/dist/components/forms/Select/Select.module.css.mjs +1 -2
  167. package/dist/components/forms/Slider/Slider.cjs.js +1 -1
  168. package/dist/components/forms/Slider/Slider.mjs +2 -2
  169. package/dist/components/forms/Slider/Slider.module.css.mjs +1 -2
  170. package/dist/components/forms/Switch/Switch.cjs.js +1 -1
  171. package/dist/components/forms/Switch/Switch.mjs +39 -39
  172. package/dist/components/forms/Switch/Switch.module.css.mjs +1 -2
  173. package/dist/components/forms/TagInput/TagInput.cjs.js +1 -1
  174. package/dist/components/forms/TagInput/TagInput.mjs +197 -203
  175. package/dist/components/forms/TagInput/TagInput.module.css.mjs +1 -2
  176. package/dist/components/forms/Textarea/Textarea.cjs.js +1 -1
  177. package/dist/components/forms/Textarea/Textarea.mjs +59 -59
  178. package/dist/components/forms/Textarea/Textarea.module.css.mjs +1 -2
  179. package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -1
  180. package/dist/components/forms/TimePicker/TimePicker.mjs +65 -67
  181. package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
  182. package/dist/components/forms/TimePicker/index.d.ts +1 -0
  183. package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -1
  184. package/dist/components/forms/TimePicker/timeUtils.d.ts +4 -1
  185. package/dist/components/forms/TimePicker/timeUtils.mjs +43 -38
  186. package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -1
  187. package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +10 -10
  188. package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +1 -2
  189. package/dist/components/layout/Box/Box.mjs +1 -2
  190. package/dist/components/layout/Box/Box.module.css.mjs +1 -2
  191. package/dist/components/layout/Container/Container.mjs +1 -2
  192. package/dist/components/layout/Container/Container.module.css.mjs +1 -2
  193. package/dist/components/layout/Divider/Divider.mjs +1 -2
  194. package/dist/components/layout/Divider/Divider.module.css.mjs +1 -2
  195. package/dist/components/layout/Flex/Flex.cjs.js +1 -1
  196. package/dist/components/layout/Flex/Flex.mjs +12 -13
  197. package/dist/components/layout/Flex/Flex.module.css.mjs +1 -2
  198. package/dist/components/layout/Grid/Grid.cjs.js +1 -1
  199. package/dist/components/layout/Grid/Grid.mjs +20 -21
  200. package/dist/components/layout/Grid/Grid.module.css.mjs +1 -2
  201. package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
  202. package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +17 -17
  203. package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -2
  204. package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -1
  205. package/dist/components/layout/ScrollArea/ScrollArea.mjs +2 -2
  206. package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -2
  207. package/dist/components/layout/Stack/Stack.cjs.js +1 -1
  208. package/dist/components/layout/Stack/Stack.mjs +8 -9
  209. package/dist/components/layout/Stack/Stack.module.css.mjs +1 -2
  210. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -1
  211. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +41 -41
  212. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +1 -2
  213. package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -1
  214. package/dist/components/navigation/ContextMenu/ContextMenu.mjs +48 -48
  215. package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -2
  216. package/dist/components/navigation/Link/Link.cjs.js +1 -1
  217. package/dist/components/navigation/Link/Link.mjs +6 -7
  218. package/dist/components/navigation/Link/Link.module.css.mjs +1 -2
  219. package/dist/components/navigation/Menu/Menu.cjs.js +1 -1
  220. package/dist/components/navigation/Menu/Menu.mjs +11 -11
  221. package/dist/components/navigation/Menu/Menu.module.css.mjs +1 -2
  222. package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -1
  223. package/dist/components/navigation/Menu/MenuContent.mjs +46 -46
  224. package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -1
  225. package/dist/components/navigation/Menu/MenuContext.mjs +2 -2
  226. package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -1
  227. package/dist/components/navigation/Menu/MenuItem.mjs +35 -39
  228. package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -1
  229. package/dist/components/navigation/Menu/MenuSub.mjs +16 -20
  230. package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -1
  231. package/dist/components/navigation/Menu/useMenuRoot.mjs +2 -2
  232. package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
  233. package/dist/components/navigation/Navbar/Navbar.mjs +111 -111
  234. package/dist/components/navigation/Navbar/Navbar.module.css.mjs +1 -2
  235. package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -1
  236. package/dist/components/navigation/Pagination/Pagination.mjs +31 -35
  237. package/dist/components/navigation/Pagination/Pagination.module.css.mjs +1 -2
  238. package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -1
  239. package/dist/components/navigation/Sidebar/Sidebar.mjs +52 -52
  240. package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +1 -2
  241. package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -1
  242. package/dist/components/navigation/Sidebar/SidebarContext.mjs +2 -2
  243. package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -1
  244. package/dist/components/navigation/Sidebar/SidebarParts.mjs +76 -80
  245. package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -1
  246. package/dist/components/navigation/SkipLink/SkipLink.mjs +12 -12
  247. package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +1 -2
  248. package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -1
  249. package/dist/components/navigation/Stepper/Stepper.mjs +46 -46
  250. package/dist/components/navigation/Stepper/Stepper.module.css.mjs +1 -2
  251. package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -1
  252. package/dist/components/navigation/Tabs/Tabs.mjs +2 -2
  253. package/dist/components/navigation/Tabs/Tabs.module.css.mjs +1 -2
  254. package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -1
  255. package/dist/components/overlays/CommandPalette/CommandPalette.mjs +206 -206
  256. package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +1 -2
  257. package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -1
  258. package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +2 -2
  259. package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -1
  260. package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +104 -104
  261. package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -1
  262. package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +62 -60
  263. package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -1
  264. package/dist/components/overlays/Drawer/Drawer.mjs +31 -31
  265. package/dist/components/overlays/Drawer/Drawer.module.css.mjs +1 -2
  266. package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -1
  267. package/dist/components/overlays/Drawer/DrawerContent.mjs +99 -99
  268. package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -1
  269. package/dist/components/overlays/Drawer/DrawerContext.mjs +2 -2
  270. package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -1
  271. package/dist/components/overlays/Drawer/DrawerParts.mjs +18 -18
  272. package/dist/components/overlays/Drawer/internal.mjs +1 -2
  273. package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -1
  274. package/dist/components/overlays/Drawer/useDragToClose.mjs +2 -2
  275. package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -1
  276. package/dist/components/overlays/HoverCard/HoverCard.mjs +31 -31
  277. package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +1 -2
  278. package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -1
  279. package/dist/components/overlays/Modal/ConfirmModal.mjs +21 -23
  280. package/dist/components/overlays/Modal/Modal.cjs.js +1 -1
  281. package/dist/components/overlays/Modal/Modal.mjs +47 -47
  282. package/dist/components/overlays/Modal/Modal.module.css.mjs +1 -2
  283. package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -1
  284. package/dist/components/overlays/Modal/ModalContent.mjs +24 -24
  285. package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -1
  286. package/dist/components/overlays/Modal/ModalContext.mjs +2 -2
  287. package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -1
  288. package/dist/components/overlays/Modal/useScrollRegion.mjs +2 -2
  289. package/dist/components/overlays/Popover/Popover.cjs.js +1 -1
  290. package/dist/components/overlays/Popover/Popover.mjs +40 -40
  291. package/dist/components/overlays/Popover/Popover.module.css.mjs +1 -2
  292. package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -1
  293. package/dist/components/overlays/Popover/PopoverContent.mjs +39 -39
  294. package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -1
  295. package/dist/components/overlays/Popover/PopoverContext.mjs +2 -2
  296. package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -1
  297. package/dist/components/overlays/Tooltip/Tooltip.mjs +100 -95
  298. package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +1 -2
  299. package/dist/components/primitives/Button/Button.cjs.js +1 -1
  300. package/dist/components/primitives/Button/Button.mjs +59 -63
  301. package/dist/components/primitives/Button/Button.module.css.mjs +1 -2
  302. package/dist/components/primitives/Icon/Icon.cjs.js +1 -1
  303. package/dist/components/primitives/Icon/Icon.mjs +5 -6
  304. package/dist/components/primitives/Icon/Icon.module.css.mjs +1 -2
  305. package/dist/components/primitives/Icon/IconSvg.mjs +1 -2
  306. package/dist/components/primitives/Icon/icons.mjs +1 -2
  307. package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -1
  308. package/dist/components/primitives/Kbd/Kbd.mjs +30 -30
  309. package/dist/components/primitives/Kbd/Kbd.module.css.mjs +1 -2
  310. package/dist/components/primitives/Typography/Typography.mjs +1 -2
  311. package/dist/components/primitives/Typography/Typography.module.css.mjs +1 -2
  312. package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -1
  313. package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +11 -11
  314. package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -2
  315. package/dist/components/utilities/Portal/Portal.cjs.js +1 -1
  316. package/dist/components/utilities/Portal/Portal.mjs +2 -2
  317. package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
  318. package/dist/components/utilities/Theme/Theme.mjs +13 -13
  319. package/dist/components/utilities/Theme/Theme.module.css.mjs +1 -2
  320. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +1 -2
  321. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +1 -2
  322. package/dist/hooks/elementSource.cjs.js +1 -1
  323. package/dist/hooks/elementSource.mjs +4 -3
  324. package/dist/hooks/useClipboard.cjs.js +1 -1
  325. package/dist/hooks/useClipboard.mjs +2 -2
  326. package/dist/hooks/useControllableState.cjs.js +1 -1
  327. package/dist/hooks/useControllableState.mjs +2 -2
  328. package/dist/hooks/useDisclosure.cjs.js +1 -1
  329. package/dist/hooks/useDisclosure.mjs +2 -2
  330. package/dist/hooks/useDismiss.cjs.js +1 -1
  331. package/dist/hooks/useDismiss.mjs +2 -2
  332. package/dist/hooks/useElementObservers.cjs.js +1 -1
  333. package/dist/hooks/useElementObservers.mjs +2 -2
  334. package/dist/hooks/useEnvironment.cjs.js +1 -1
  335. package/dist/hooks/useEnvironment.mjs +2 -2
  336. package/dist/hooks/useFloatingPosition.cjs.js +1 -1
  337. package/dist/hooks/useFloatingPosition.mjs +2 -2
  338. package/dist/hooks/useFocusTrap.cjs.js +1 -1
  339. package/dist/hooks/useFocusTrap.mjs +4 -15
  340. package/dist/hooks/useFormReset.cjs.js +1 -1
  341. package/dist/hooks/useFormReset.mjs +2 -2
  342. package/dist/hooks/useFormValidation.cjs.js +1 -1
  343. package/dist/hooks/useFormValidation.mjs +2 -2
  344. package/dist/hooks/useHotkeys.cjs.js +1 -1
  345. package/dist/hooks/useHotkeys.mjs +2 -2
  346. package/dist/hooks/useInertOutside.cjs.js +1 -1
  347. package/dist/hooks/useInertOutside.mjs +5 -9
  348. package/dist/hooks/useMediaQuery.cjs.js +1 -1
  349. package/dist/hooks/useMediaQuery.mjs +2 -2
  350. package/dist/hooks/useMergedRef.cjs.js +1 -1
  351. package/dist/hooks/useMergedRef.mjs +2 -2
  352. package/dist/hooks/useOverlayLayer.cjs.js +1 -1
  353. package/dist/hooks/useOverlayLayer.mjs +3 -3
  354. package/dist/hooks/useResponsiveValue.cjs.js +1 -1
  355. package/dist/hooks/useResponsiveValue.mjs +2 -2
  356. package/dist/hooks/useScrollLock.cjs.js +1 -1
  357. package/dist/hooks/useScrollLock.mjs +2 -2
  358. package/dist/hooks/useStorage.cjs.js +1 -1
  359. package/dist/hooks/useStorage.mjs +2 -2
  360. package/dist/hooks/useTiming.cjs.js +1 -1
  361. package/dist/hooks/useTiming.mjs +10 -15
  362. package/dist/hooks/useVirtualizer.cjs.js +1 -1
  363. package/dist/hooks/useVirtualizer.d.ts +13 -0
  364. package/dist/hooks/useVirtualizer.mjs +93 -54
  365. package/dist/i18n/en.cjs.js +1 -1
  366. package/dist/i18n/en.mjs +194 -4
  367. package/dist/i18n/merge.mjs +1 -2
  368. package/dist/i18n/plural.mjs +1 -2
  369. package/dist/i18n/types.d.ts +240 -0
  370. package/dist/index.cjs.js +1 -1
  371. package/dist/index.mjs +114 -114
  372. package/dist/locales/ar.cjs.js +1 -1
  373. package/dist/locales/ar.mjs +230 -4
  374. package/dist/locales/bn.cjs.js +1 -1
  375. package/dist/locales/bn.mjs +167 -4
  376. package/dist/locales/cs.cjs.js +1 -1
  377. package/dist/locales/cs.mjs +212 -4
  378. package/dist/locales/da.cjs.js +1 -1
  379. package/dist/locales/da.mjs +194 -4
  380. package/dist/locales/de.cjs.js +1 -1
  381. package/dist/locales/de.mjs +194 -4
  382. package/dist/locales/el.cjs.js +1 -1
  383. package/dist/locales/el.mjs +194 -4
  384. package/dist/locales/es.cjs.js +1 -1
  385. package/dist/locales/es.mjs +194 -4
  386. package/dist/locales/fa.cjs.js +1 -1
  387. package/dist/locales/fa.mjs +167 -4
  388. package/dist/locales/fi.cjs.js +1 -1
  389. package/dist/locales/fi.mjs +194 -4
  390. package/dist/locales/fr.cjs.js +1 -1
  391. package/dist/locales/fr.mjs +194 -4
  392. package/dist/locales/he.cjs.js +1 -1
  393. package/dist/locales/he.mjs +203 -4
  394. package/dist/locales/hi.cjs.js +1 -1
  395. package/dist/locales/hi.mjs +194 -4
  396. package/dist/locales/hu.cjs.js +1 -1
  397. package/dist/locales/hu.mjs +167 -4
  398. package/dist/locales/id.cjs.js +1 -1
  399. package/dist/locales/id.mjs +167 -4
  400. package/dist/locales/it.cjs.js +1 -1
  401. package/dist/locales/it.mjs +194 -4
  402. package/dist/locales/ja.cjs.js +1 -1
  403. package/dist/locales/ja.mjs +167 -4
  404. package/dist/locales/ko.cjs.js +1 -1
  405. package/dist/locales/ko.mjs +167 -4
  406. package/dist/locales/nb.cjs.js +1 -1
  407. package/dist/locales/nb.mjs +194 -4
  408. package/dist/locales/nl.cjs.js +1 -1
  409. package/dist/locales/nl.mjs +194 -4
  410. package/dist/locales/pl.cjs.js +1 -1
  411. package/dist/locales/pl.mjs +212 -4
  412. package/dist/locales/pt-BR.cjs.js +1 -1
  413. package/dist/locales/pt-BR.mjs +194 -4
  414. package/dist/locales/ro.cjs.js +1 -1
  415. package/dist/locales/ro.mjs +203 -4
  416. package/dist/locales/ru.cjs.js +1 -1
  417. package/dist/locales/ru.mjs +212 -4
  418. package/dist/locales/sv.cjs.js +1 -1
  419. package/dist/locales/sv.mjs +194 -4
  420. package/dist/locales/th.cjs.js +1 -1
  421. package/dist/locales/th.mjs +167 -4
  422. package/dist/locales/tr.cjs.js +1 -1
  423. package/dist/locales/tr.mjs +167 -4
  424. package/dist/locales/uk.cjs.js +1 -1
  425. package/dist/locales/uk.mjs +212 -4
  426. package/dist/locales/ur.cjs.js +1 -1
  427. package/dist/locales/ur.mjs +194 -4
  428. package/dist/locales/vi.cjs.js +1 -1
  429. package/dist/locales/vi.mjs +167 -4
  430. package/dist/locales/zh-Hans.cjs.js +1 -1
  431. package/dist/locales/zh-Hans.mjs +167 -4
  432. package/dist/locales/zh-Hant.cjs.js +1 -1
  433. package/dist/locales/zh-Hant.mjs +167 -4
  434. package/dist/types/common.mjs +1 -2
  435. package/dist/utils/announce.cjs.js +1 -1
  436. package/dist/utils/announce.mjs +3 -4
  437. package/dist/utils/brandPalette.mjs +1 -2
  438. package/dist/utils/clipboard.mjs +1 -2
  439. package/dist/utils/cx.mjs +1 -2
  440. package/dist/utils/fillSlot.cjs.js +1 -1
  441. package/dist/utils/fillSlot.mjs +2 -2
  442. package/dist/utils/flattenChildren.mjs +1 -2
  443. package/dist/utils/hotkeys.mjs +1 -2
  444. package/dist/utils/intl.cjs.js +1 -0
  445. package/dist/utils/intl.d.ts +10 -0
  446. package/dist/utils/intl.mjs +15 -0
  447. package/dist/utils/refs.mjs +1 -2
  448. package/dist/utils/responsive.mjs +1 -2
  449. package/dist/utils/slot.mjs +1 -2
  450. package/dist/utils/validators.mjs +1 -2
  451. package/dist/vjdesigns-ui.css +1 -1
  452. package/dist/vjdesigns-ui.css.d.ts +2 -0
  453. package/package.json +103 -90
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { useEffect as e, useRef as t } from "react";
2
- //#region src/hooks/useFormReset.ts
3
+ // src/hooks/useFormReset.ts
3
4
  function n(n, r, i = !0) {
4
5
  let a = t(r);
5
6
  a.current = r, e(() => {
@@ -12,5 +13,4 @@ function n(n, r, i = !0) {
12
13
  return t.addEventListener("reset", r), () => t.removeEventListener("reset", r);
13
14
  }, [i]);
14
15
  }
15
- //#endregion
16
16
  export { n as useFormReset };
@@ -1 +1 @@
1
- const e=require("../components/utilities/LocaleProvider/LocaleProvider.cjs.js"),t=require("../utils/validators.cjs.js");let n=require("react");var r=`input:not([type="hidden"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable="true"]`,i=e=>e.getClientRects().length>0,a=e=>e instanceof HTMLElement&&e.matches(r)&&i(e)&&!(e instanceof HTMLInputElement&&e.type===`hidden`);function o(e,t){for(let n=e.parentElement,r=0;n&&n!==t&&r<6;n=n.parentElement,r++){let e=new Set(Array.from(n.querySelectorAll(`input[type="hidden"][name]`)).map(e=>e.name));if(e.size===1)return[...e][0];if(e.size>1)return}}function s(e,t){return e.name||o(e,t)||e.id||void 0}function c(e,t){let n=Array.from(t.querySelectorAll(`[name="${CSS.escape(e)}"]`)),i=n.find(a);if(i)return i;for(let e of n)for(let n=e.parentElement,i=0;n&&n!==t&&i<6;n=n.parentElement,i++){let e=Array.from(n.querySelectorAll(r)).find(a);if(e)return e}let o=t.querySelector(`#${CSS.escape(e)}`);return o&&a(o)?o:void 0}function l(e){let t={};return new FormData(e).forEach((e,n)=>{let r=t[n];t[n]=r===void 0?e:Array.isArray(r)?[...r,e]:[r,e]}),t}function u(e,n,r){let i=e instanceof HTMLInputElement&&e.type===`email`&&e.value&&!e.multiple&&!t.isEmail(e.value.trim()),a=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement?e:void 0,o=a?a.value.length:0,s=a&&o>0&&a.minLength>0&&o<a.minLength?n.tooShort(a.minLength):a&&a.maxLength>=0&&o>a.maxLength?n.tooLong(a.maxLength):void 0,c=e.validity;if(c.valid&&!i&&!s)return;if(c.customError)return e.validationMessage;if(c.valueMissing)return n.required;let l=e instanceof HTMLInputElement?e:void 0;if(c.typeMismatch||i)return l?.type===`email`?n.email:l?.type===`url`?n.url:n.invalid;if(c.badInput)return l?.type===`number`?n.number:n.invalid;if(c.patternMismatch)return l?.title||n.pattern;if(s)return s;let u=e=>l&&(l.type===`number`||l.type===`range`)&&e!==``&&!Number.isNaN(Number(e))?new Intl.NumberFormat(r).format(Number(e)):e;return c.rangeUnderflow&&l?n.min(u(l.min)):c.rangeOverflow&&l?n.max(u(l.max)):c.stepMismatch?n.step:n.invalid}var d=(e,t)=>e.length===t.length&&e.every((e,n)=>e.name===t[n].name&&e.message===t[n].message&&e.source===t[n].source);function f(e,t){if(!t)return e;let n=e=>{let n=c(e.name,t);return n?Array.from(t.querySelectorAll(`*`)).indexOf(n):2**53-1},r=new Map(e.map(e=>[e,n(e)]));return[...e].sort((e,t)=>r.get(e)-r.get(t))}function p(t={}){let{rules:r={},onValid:i,focusOnError:a=!0}=t,{messages:o,locale:p}=e.useLocale(),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)([]),[v,y]=(0,n.useState)(0),[b,x]=(0,n.useState)(!1),[S,C]=(0,n.useState)(0),w=(0,n.useRef)({rules:r,onValid:i,messages:o.validation,locale:p});w.current={rules:r,onValid:i,messages:o.validation,locale:p};let T=(0,n.useCallback)((e,t,n)=>({name:e,message:t,source:n,get id(){let t=m.current;return t&&c(e,t)?.id||void 0},focus:()=>{let t=m.current;(t&&c(e,t))?.focus()}}),[]),E=(0,n.useCallback)(e=>{let t=m.current,n=new Map;if(!t)return n;let{rules:r,messages:i,locale:a}=w.current,o=t=>!e||e.includes(t);for(let e of Array.from(t.elements)){if(!(`validity`in e)||!e.willValidate||e.disabled)continue;let r=s(e,t);if(!r||!o(r)||n.has(r))continue;let c=u(e,i,a);c&&n.set(r,c)}let c=l(t);for(let[e,t]of Object.entries(r))if(o(e)&&!n.has(e))for(let r of Array.isArray(t)?t:[t]){let t=r(c[e],{name:e,values:c,messages:i});if(t){n.set(e,t);break}}return n},[]),D=(0,n.useCallback)((e,t,{onlyClear:n=!1}={})=>{_(r=>{let i=e=>!t||t.includes(e),a=[];for(let o of r)i(o.name)?n?e.has(o.name)&&a.push(o):t&&o.source===`server`&&!e.has(o.name)&&a.push(o):a.push(o);if(!n)for(let[t,n]of e)a.push(T(t,n,`client`));let o=f(a,m.current);return d(r,o)?r:o})},[T]),O=(0,n.useCallback)(e=>{let t=E(e);return D(t,e),t.size===0},[E,D]),k=(0,n.useCallback)(e=>{let t=Object.entries(e).filter(([,e])=>e);t.length&&(_(n=>f([...n.filter(t=>!(t.name in e)),...t.map(([e,t])=>T(e,t,`server`))],m.current)),a&&C(e=>e+1))},[T,a]),A=(0,n.useCallback)(e=>{_(t=>e?t.filter(t=>!e.includes(t.name)):[])},[]),j=(0,n.useCallback)(()=>m.current?l(m.current):{},[]);(0,n.useEffect)(()=>{S&&a&&(h.current&&h.current.isConnected?h.current.focus():g[0]?.focus())},[S]);let M=(0,n.useCallback)(e=>{y(e=>e+1);let t=E();if(D(t),t.size>0){e.preventDefault(),a&&C(e=>e+1);return}let n=w.current.onValid;if(!n)return;e.preventDefault();let r=n(l(e.currentTarget),e);r&&typeof r.then==`function`?(x(!0),r.then(e=>{e&&k(e)}).finally(()=>x(!1))):r&&k(r)},[E,D,k,a]),N=e=>{let t=m.current,n=e.target;if(t&&v!==0&&n instanceof Element)return s(n,t)},P=e=>{if(e.target instanceof HTMLSelectElement)return;let t=N(e);t&&(_(e=>e.some(e=>e.name===t&&e.source===`server`)?e.filter(e=>e.name!==t||e.source!==`server`):e),D(E([t]),[t],{onlyClear:!0}))},F=e=>{let t=N(e);if(!t)return;let n=g.filter(e=>e.source===`client`).map(e=>e.name),r=Array.from(new Set([t,...n]));D(E(r),r)},I=(0,n.useMemo)(()=>Object.fromEntries(g.map(e=>[e.name,e.message])),[g]);return{formProps:{ref:e=>{m.current=e},noValidate:!0,onSubmit:M,onInput:P,onChange:e=>{let t=e.target;t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&![`checkbox`,`radio`,`file`].includes(t.type)||F(e)},onBlur:F},formRef:m,errors:I,errorList:g,summaryRef:h,isSubmitting:b,submitCount:v,validate:O,setErrors:k,clearErrors:A,getValues:j}}exports.useFormValidation=p;
1
+ "use client";const e=require("../components/utilities/LocaleProvider/LocaleProvider.cjs.js"),t=require("../utils/validators.cjs.js");let n=require("react");var r=`input:not([type="hidden"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable="true"]`,i=e=>e.getClientRects().length>0,a=e=>e instanceof HTMLElement&&e.matches(r)&&i(e)&&!(e instanceof HTMLInputElement&&e.type===`hidden`);function o(e,t){for(let n=e.parentElement,r=0;n&&n!==t&&r<6;n=n.parentElement,r++){let e=new Set(Array.from(n.querySelectorAll(`input[type="hidden"][name]`)).map(e=>e.name));if(e.size===1)return[...e][0];if(e.size>1)return}}function s(e,t){return e.name||o(e,t)||e.id||void 0}function c(e,t){let n=Array.from(t.querySelectorAll(`[name="${CSS.escape(e)}"]`)),i=n.find(a);if(i)return i;for(let e of n)for(let n=e.parentElement,i=0;n&&n!==t&&i<6;n=n.parentElement,i++){let e=Array.from(n.querySelectorAll(r)).find(a);if(e)return e}let o=t.querySelector(`#${CSS.escape(e)}`);return o&&a(o)?o:void 0}function l(e){let t={};return new FormData(e).forEach((e,n)=>{let r=t[n];t[n]=r===void 0?e:Array.isArray(r)?[...r,e]:[r,e]}),t}function u(e,n,r){let i=e instanceof HTMLInputElement&&e.type===`email`&&e.value&&!e.multiple&&!t.isEmail(e.value.trim()),a=e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement?e:void 0,o=a?a.value.length:0,s=a&&o>0&&a.minLength>0&&o<a.minLength?n.tooShort(a.minLength):a&&a.maxLength>=0&&o>a.maxLength?n.tooLong(a.maxLength):void 0,c=e.validity;if(c.valid&&!i&&!s)return;if(c.customError)return e.validationMessage;if(c.valueMissing)return n.required;let l=e instanceof HTMLInputElement?e:void 0;if(c.typeMismatch||i)return l?.type===`email`?n.email:l?.type===`url`?n.url:n.invalid;if(c.badInput)return l?.type===`number`?n.number:n.invalid;if(c.patternMismatch)return l?.title||n.pattern;if(s)return s;let u=e=>l&&(l.type===`number`||l.type===`range`)&&e!==``&&!Number.isNaN(Number(e))?new Intl.NumberFormat(r).format(Number(e)):e;return c.rangeUnderflow&&l?n.min(u(l.min)):c.rangeOverflow&&l?n.max(u(l.max)):c.stepMismatch?n.step:n.invalid}var d=(e,t)=>e.length===t.length&&e.every((e,n)=>e.name===t[n].name&&e.message===t[n].message&&e.source===t[n].source);function f(e,t){if(!t)return e;let n=e=>{let n=c(e.name,t);return n?Array.from(t.querySelectorAll(`*`)).indexOf(n):2**53-1},r=new Map(e.map(e=>[e,n(e)]));return[...e].sort((e,t)=>r.get(e)-r.get(t))}function p(t={}){let{rules:r={},onValid:i,focusOnError:a=!0}=t,{messages:o,locale:p}=e.useLocale(),m=(0,n.useRef)(null),h=(0,n.useRef)(null),[g,_]=(0,n.useState)([]),[v,y]=(0,n.useState)(0),[b,x]=(0,n.useState)(!1),[S,C]=(0,n.useState)(0),w=(0,n.useRef)({rules:r,onValid:i,messages:o.validation,locale:p});w.current={rules:r,onValid:i,messages:o.validation,locale:p};let T=(0,n.useCallback)((e,t,n)=>({name:e,message:t,source:n,get id(){let t=m.current;return t&&c(e,t)?.id||void 0},focus:()=>{let t=m.current;(t&&c(e,t))?.focus()}}),[]),E=(0,n.useCallback)(e=>{let t=m.current,n=new Map;if(!t)return n;let{rules:r,messages:i,locale:a}=w.current,o=t=>!e||e.includes(t);for(let e of Array.from(t.elements)){if(!(`validity`in e)||!e.willValidate||e.disabled)continue;let r=s(e,t);if(!r||!o(r)||n.has(r))continue;let c=u(e,i,a);c&&n.set(r,c)}let c=l(t);for(let[e,t]of Object.entries(r))if(o(e)&&!n.has(e))for(let r of Array.isArray(t)?t:[t]){let t=r(c[e],{name:e,values:c,messages:i});if(t){n.set(e,t);break}}return n},[]),D=(0,n.useCallback)((e,t,{onlyClear:n=!1}={})=>{_(r=>{let i=e=>!t||t.includes(e),a=[];for(let o of r)i(o.name)?n?e.has(o.name)&&a.push(o):t&&o.source===`server`&&!e.has(o.name)&&a.push(o):a.push(o);if(!n)for(let[t,n]of e)a.push(T(t,n,`client`));let o=f(a,m.current);return d(r,o)?r:o})},[T]),O=(0,n.useCallback)(e=>{let t=E(e);return D(t,e),t.size===0},[E,D]),k=(0,n.useCallback)(e=>{let t=Object.entries(e).filter(([,e])=>e);t.length&&(_(n=>f([...n.filter(t=>!(t.name in e)),...t.map(([e,t])=>T(e,t,`server`))],m.current)),a&&C(e=>e+1))},[T,a]),A=(0,n.useCallback)(e=>{_(t=>e?t.filter(t=>!e.includes(t.name)):[])},[]),j=(0,n.useCallback)(()=>m.current?l(m.current):{},[]);(0,n.useEffect)(()=>{S&&a&&(h.current&&h.current.isConnected?h.current.focus():g[0]?.focus())},[S]);let M=(0,n.useCallback)(e=>{y(e=>e+1);let t=E();if(D(t),t.size>0){e.preventDefault(),a&&C(e=>e+1);return}let n=w.current.onValid;if(!n)return;e.preventDefault();let r=n(l(e.currentTarget),e);r&&typeof r.then==`function`?(x(!0),r.then(e=>{e&&k(e)}).finally(()=>x(!1))):r&&k(r)},[E,D,k,a]),N=e=>{let t=m.current,n=e.target;if(t&&v!==0&&n instanceof Element)return s(n,t)},P=e=>{if(e.target instanceof HTMLSelectElement)return;let t=N(e);t&&(_(e=>e.some(e=>e.name===t&&e.source===`server`)?e.filter(e=>e.name!==t||e.source!==`server`):e),D(E([t]),[t],{onlyClear:!0}))},F=e=>{let t=N(e);if(!t)return;let n=g.filter(e=>e.source===`client`).map(e=>e.name),r=Array.from(new Set([t,...n]));D(E(r),r)},I=(0,n.useMemo)(()=>Object.fromEntries(g.map(e=>[e.name,e.message])),[g]);return{formProps:{ref:e=>{m.current=e},noValidate:!0,onSubmit:M,onInput:P,onChange:e=>{let t=e.target;t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&![`checkbox`,`radio`,`file`].includes(t.type)||F(e)},onBlur:F},formRef:m,errors:I,errorList:g,summaryRef:h,isSubmitting:b,submitCount:v,validate:O,setErrors:k,clearErrors:A,getValues:j}}exports.useFormValidation=p;
@@ -1,7 +1,8 @@
1
+ "use client";
1
2
  import { useLocale as e } from "../components/utilities/LocaleProvider/LocaleProvider.mjs";
2
3
  import { isEmail as t } from "../utils/validators.mjs";
3
4
  import { useCallback as n, useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
4
- //#region src/hooks/useFormValidation.ts
5
+ // src/hooks/useFormValidation.ts
5
6
  var s = "input:not([type=\"hidden\"]):not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"true\"]", c = (e) => e.getClientRects().length > 0, l = (e) => e instanceof HTMLElement && e.matches(s) && c(e) && !(e instanceof HTMLInputElement && e.type === "hidden");
6
7
  function u(e, t) {
7
8
  for (let n = e.parentElement, r = 0; n && n !== t && r < 6; n = n.parentElement, r++) {
@@ -183,5 +184,4 @@ function _(t = {}) {
183
184
  getValues: F
184
185
  };
185
186
  }
186
- //#endregion
187
187
  export { _ as useFormValidation };
@@ -1 +1 @@
1
- const e=require("../utils/hotkeys.cjs.js");let t=require("react");var n=e=>e.meta||e.ctrl||e.alt;function r(t,r){let i=e.detectPlatform();for(let[a,o,s={}]of t)for(let t of a.split(`,`)){let a=e.parseHotkey(t.trim(),i);if(a&&e.matchesHotkey(r,a)&&(!e.isTypingTarget(r.target)||n(a)||s.allowInInputs)){s.preventDefault!==!1&&r.preventDefault(),o(r);return}}}function i(e,{enabled:n=!0,target:i}={}){let a=(0,t.useRef)(e);a.current=e,(0,t.useEffect)(()=>{if(!n)return;let e=i??(typeof document<`u`?document:void 0);if(!e)return;let t=e=>r(a.current,e);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[n,i])}function a(e){return t=>{let n=`nativeEvent`in t?t.nativeEvent:t;r(e.map(([e,t,n])=>[e,t,{allowInInputs:!0,...n}]),n)}}exports.getHotkeyHandler=a,exports.useHotkeys=i;
1
+ "use client";const e=require("../utils/hotkeys.cjs.js");let t=require("react");var n=e=>e.meta||e.ctrl||e.alt;function r(t,r){let i=e.detectPlatform();for(let[a,o,s={}]of t)for(let t of a.split(`,`)){let a=e.parseHotkey(t.trim(),i);if(a&&e.matchesHotkey(r,a)&&(!e.isTypingTarget(r.target)||n(a)||s.allowInInputs)){s.preventDefault!==!1&&r.preventDefault(),o(r);return}}}function i(e,{enabled:n=!0,target:i}={}){let a=(0,t.useRef)(e);a.current=e,(0,t.useEffect)(()=>{if(!n)return;let e=i??(typeof document<`u`?document:void 0);if(!e)return;let t=e=>r(a.current,e);return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[n,i])}function a(e){return t=>{let n=`nativeEvent`in t?t.nativeEvent:t;r(e.map(([e,t,n])=>[e,t,{allowInInputs:!0,...n}]),n)}}exports.getHotkeyHandler=a,exports.useHotkeys=i;
@@ -1,6 +1,7 @@
1
+ "use client";
1
2
  import { detectPlatform as e, isTypingTarget as t, matchesHotkey as n, parseHotkey as r } from "../utils/hotkeys.mjs";
2
3
  import { useEffect as i, useRef as a } from "react";
3
- //#region src/hooks/useHotkeys.ts
4
+ // src/hooks/useHotkeys.ts
4
5
  var o = (e) => e.meta || e.ctrl || e.alt;
5
6
  function s(i, a) {
6
7
  let s = e();
@@ -35,5 +36,4 @@ function l(e) {
35
36
  ]), n);
36
37
  };
37
38
  }
38
- //#endregion
39
39
  export { l as getHotkeyHandler, c as useHotkeys };
@@ -1 +1 @@
1
- const e=require("./elementSource.cjs.js"),t=require("./useOverlayLayer.cjs.js");let n=require("react");var r=new Map,i=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`LINK`,`META`,`NOSCRIPT`]),a=`[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']`;function o(e){let t=r.get(e);if(t){t.count+=1;return}r.set(e,{count:1,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}),e.inert=!0,e.setAttribute(`aria-hidden`,`true`)}function s(e){let t=r.get(e);t&&(--t.count,!(t.count>0)&&(r.delete(e),e.inert=t.inert,t.ariaHidden===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,t.ariaHidden)))}function c(e){if(typeof document>`u`)return()=>{};let t=(Array.isArray(e)?e:[e]).filter(e=>!!e&&e.isConnected);if(t.length===0)return()=>{};let n=document.body,r=Array.from(n.querySelectorAll(a)).filter(e=>!e.closest(`[inert]`)),c=new Set([...t,...r]),l=new Set;c.forEach(e=>{let t=e.parentElement;for(;t&&t!==n;)l.add(t),t=t.parentElement});let u=[],d=e=>{for(let t of Array.from(e.children))c.has(t)||i.has(t.tagName)||(l.has(t)?d(t):t instanceof HTMLElement&&u.push(t))};d(n),u.forEach(o);let f=!1;return()=>{f||(f=!0,u.forEach(s))}}function l(e,n){if(typeof document>`u`)return()=>{};let r=Array.isArray(n)?n:[n],i=()=>c([...r,...t.getChildLayerElements(e),...t.getLayerElementsAbove(e)]),a=i(),o=t.subscribeOverlayLayers(()=>{let e=i();a(),a=e}),s=!1;return()=>{s||(s=!0,o(),a())}}function u(t,r,i){let a=i?.id,o=(0,n.useRef)({key:[],release:null});(0,n.useLayoutEffect)(()=>{let n=r?t.map(t=>e.resolveElement(t)).filter(e=>!!e):[],i=o.current.key;if(n.length===i.length&&n.every((e,t)=>e===i[t]))return;o.current.release?.();let s=n.length===0?null:a?l(a,n):c(n);o.current={key:n,release:s}}),(0,n.useLayoutEffect)(()=>()=>{o.current.release?.(),o.current={key:[],release:null}},[])}exports.inertOutside=c,exports.inertOutsideLayer=l,exports.useInertOutside=u;
1
+ "use client";const e=require("./elementSource.cjs.js"),t=require("./useOverlayLayer.cjs.js");let n=require("react");var r=new Map,i=new Set([`SCRIPT`,`STYLE`,`TEMPLATE`,`LINK`,`META`,`NOSCRIPT`]),a=`[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']`;function o(e){let t=r.get(e);t?t.count+=1:(r.set(e,{count:1,inert:e.inert,ariaHidden:e.getAttribute(`aria-hidden`)}),e.inert=!0,e.setAttribute(`aria-hidden`,`true`))}function s(e){let t=r.get(e);t&&(--t.count,t.count>0||(r.delete(e),e.inert=t.inert,t.ariaHidden===null?e.removeAttribute(`aria-hidden`):e.setAttribute(`aria-hidden`,t.ariaHidden)))}function c(e){if(typeof document>`u`)return()=>{};let t=(Array.isArray(e)?e:[e]).filter(e=>!!e&&e.isConnected);if(t.length===0)return()=>{};let n=document.body,r=Array.from(n.querySelectorAll(a)).filter(e=>!e.closest(`[inert]`)),c=new Set([...t,...r]),l=new Set;c.forEach(e=>{let t=e.parentElement;for(;t&&t!==n;)l.add(t),t=t.parentElement});let u=[],d=e=>{for(let t of Array.from(e.children))c.has(t)||i.has(t.tagName)||(l.has(t)?d(t):t instanceof HTMLElement&&u.push(t))};d(n),u.forEach(o);let f=!1;return()=>{f||(f=!0,u.forEach(s))}}function l(e,n){if(typeof document>`u`)return()=>{};let r=Array.isArray(n)?n:[n],i=()=>c([...r,...t.getChildLayerElements(e),...t.getLayerElementsAbove(e)]),a=i(),o=t.subscribeOverlayLayers(()=>{let e=i();a(),a=e}),s=!1;return()=>{s||(s=!0,o(),a())}}function u(t,r,i){let a=i?.id,o=(0,n.useRef)({key:[],release:null});(0,n.useLayoutEffect)(()=>{let n=r?t.map(t=>e.resolveElement(t)).filter(e=>!!e):[],i=o.current.key;if(n.length===i.length&&n.every((e,t)=>e===i[t]))return;o.current.release?.();let s=n.length===0?null:a?l(a,n):c(n);o.current={key:n,release:s}}),(0,n.useLayoutEffect)(()=>()=>{o.current.release?.(),o.current={key:[],release:null}},[])}exports.inertOutside=c,exports.inertOutsideLayer=l,exports.useInertOutside=u;
@@ -1,7 +1,8 @@
1
+ "use client";
1
2
  import { resolveElement as e } from "./elementSource.mjs";
2
3
  import { getChildLayerElements as t, getLayerElementsAbove as n, subscribeOverlayLayers as r } from "./useOverlayLayer.mjs";
3
4
  import { useLayoutEffect as i, useRef as a } from "react";
4
- //#region src/hooks/useInertOutside.ts
5
+ // src/hooks/useInertOutside.ts
5
6
  var o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set([
6
7
  "SCRIPT",
7
8
  "STYLE",
@@ -12,19 +13,15 @@ var o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Set([
12
13
  ]), c = "[aria-live]:not([aria-live='off']), [role='status'], [role='alert'], [role='log']";
13
14
  function l(e) {
14
15
  let t = o.get(e);
15
- if (t) {
16
- t.count += 1;
17
- return;
18
- }
19
- o.set(e, {
16
+ t ? t.count += 1 : (o.set(e, {
20
17
  count: 1,
21
18
  inert: e.inert,
22
19
  ariaHidden: e.getAttribute("aria-hidden")
23
- }), e.inert = !0, e.setAttribute("aria-hidden", "true");
20
+ }), e.inert = !0, e.setAttribute("aria-hidden", "true"));
24
21
  }
25
22
  function u(e) {
26
23
  let t = o.get(e);
27
- t && (--t.count, !(t.count > 0) && (o.delete(e), e.inert = t.inert, t.ariaHidden === null ? e.removeAttribute("aria-hidden") : e.setAttribute("aria-hidden", t.ariaHidden)));
24
+ t && (--t.count, t.count > 0 || (o.delete(e), e.inert = t.inert, t.ariaHidden === null ? e.removeAttribute("aria-hidden") : e.setAttribute("aria-hidden", t.ariaHidden)));
28
25
  }
29
26
  function d(e) {
30
27
  if (typeof document > "u") return () => {};
@@ -79,5 +76,4 @@ function p(t, n, r) {
79
76
  };
80
77
  }, []);
81
78
  }
82
- //#endregion
83
79
  export { d as inertOutside, f as inertOutsideLayer, p as useInertOutside };
@@ -1 +1 @@
1
- let e=require("react");var t=()=>typeof window<`u`&&typeof window.matchMedia==`function`;function n(n,r=!1){let i=(0,e.useCallback)(e=>{if(!n||!t())return()=>{};let r=window.matchMedia(n);return r.addEventListener(`change`,e),()=>r.removeEventListener(`change`,e)},[n]);return(0,e.useSyncExternalStore)(i,()=>n&&t()?window.matchMedia(n).matches:r,()=>r)}exports.useMediaQuery=n;
1
+ "use client";let e=require("react");var t=()=>typeof window<`u`&&typeof window.matchMedia==`function`;function n(n,r=!1){let i=(0,e.useCallback)(e=>{if(!n||!t())return()=>{};let r=window.matchMedia(n);return r.addEventListener(`change`,e),()=>r.removeEventListener(`change`,e)},[n]);return(0,e.useSyncExternalStore)(i,()=>n&&t()?window.matchMedia(n).matches:r,()=>r)}exports.useMediaQuery=n;
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { useCallback as e, useSyncExternalStore as t } from "react";
2
- //#region src/hooks/useMediaQuery.ts
3
+ // src/hooks/useMediaQuery.ts
3
4
  var n = () => typeof window < "u" && typeof window.matchMedia == "function";
4
5
  function r(r, i = !1) {
5
6
  let a = e((e) => {
@@ -9,5 +10,4 @@ function r(r, i = !1) {
9
10
  }, [r]);
10
11
  return t(a, () => r && n() ? window.matchMedia(r).matches : i, () => i);
11
12
  }
12
- //#endregion
13
13
  export { r as useMediaQuery };
@@ -1 +1 @@
1
- const e=require("../utils/refs.cjs.js");let t=require("react");function n(...n){return(0,t.useMemo)(()=>e.mergeRefs(...n),n)}exports.useMergedRef=n;
1
+ "use client";const e=require("../utils/refs.cjs.js");let t=require("react");function n(...n){return(0,t.useMemo)(()=>e.mergeRefs(...n),n)}exports.useMergedRef=n;
@@ -1,8 +1,8 @@
1
+ "use client";
1
2
  import { mergeRefs as e } from "../utils/refs.mjs";
2
3
  import { useMemo as t } from "react";
3
- //#region src/hooks/useMergedRef.ts
4
+ // src/hooks/useMergedRef.ts
4
5
  function n(...n) {
5
6
  return t(() => e(...n), n);
6
7
  }
7
- //#endregion
8
8
  export { n as useMergedRef };
@@ -1 +1 @@
1
- const e=require("./elementSource.cjs.js");let t=require("react");var n=[],r=new Map,i=new Set;function a(){i.forEach(e=>e())}function o(e){return i.add(e),()=>{i.delete(e)}}function s(e){return e===null?void 0:n.find(t=>t.id===e)}function c(e,t){let n=e,r=new Set;for(;n&&!r.has(n.id);){if(n.id===t||n.parentId===t)return!0;r.add(n.id),n=s(n.parentId)}return!1}function l(e){let t=new Set,n=[],r=new Map(e.map(e=>[e.id,e])),i=(e,a)=>{if(t.has(e.id)||a.has(e.id))return;a.add(e.id);let o=e.parentId?r.get(e.parentId):void 0;o&&i(o,a),t.add(e.id),n.push(e)};return e.forEach(e=>i(e,new Set)),n}function u(t,n){let i=r.get(t);if(!i)return!1;for(let t of i){let r=t.current.elements?.()??[];for(let t of r)if(e.resolveElement(t)?.contains(n))return!0}return!1}function d(t){let n=[];for(let i of r.get(t)??[])for(let t of i.current.elements?.()??[]){let r=e.resolveElement(t);r&&!n.includes(r)&&n.push(r)}return n}function f(e){return n.filter(t=>t.id!==e&&c(t,e)).flatMap(e=>d(e.id))}function p(e){let t=n.findIndex(t=>t.id===e);return t===-1?[]:n.slice(t+1).flatMap(e=>d(e.id))}function m(e){return o(e)}function h(e,t){return t?n.some(n=>n.id!==e&&c(n,e)&&u(n.id,t)):!1}function g(e,t){return t?u(e,t)||h(e,t):!1}function _(e){return Array.from(r.get(e)??[],e=>e.current)}function v(e){if(e.key!==`Escape`||e.defaultPrevented||e.isComposing)return;let t=n[n.length-1];if(t)for(let n of _(t.id))n.onEscape?.(e)}function y(e){if(e.defaultPrevented)return;let t=e.target instanceof Node?e.target:null;if(!t)return;let r=[...n];for(let n=r.length-1;n>=0;--n){let i=r[n];if(g(i.id,t))break;for(let t of _(i.id))t.onOutsidePress?.(e);if(i.modal)break}}var b=!1;function x(){typeof document>`u`||(n.length>0&&!b?(document.addEventListener(`keydown`,v),document.addEventListener(`pointerdown`,y),b=!0):n.length===0&&b&&(document.removeEventListener(`keydown`,v),document.removeEventListener(`pointerdown`,y),b=!1))}function S(e){return n=l([...n.filter(t=>t.id!==e.id),e]),x(),a(),()=>{n=n.filter(t=>t!==e),x(),a()}}function C(e,t){let n=r.get(e);return n||(n=new Set,r.set(e,n)),n.add(t),()=>{let n=r.get(e);n?.delete(t),n&&n.size===0&&r.delete(e)}}function w(e){return n.length>0&&n[n.length-1].id===e}function T(e){let t=n.findIndex(t=>t.id===e);return t!==-1&&n.slice(t+1).some(e=>e.modal)}function E(){return n.map(({id:e,parentId:t,modal:n})=>({id:e,parentId:t,modal:n}))}var D=(0,t.createContext)(null);function O(){return(0,t.useContext)(D)}function k({layer:e,children:n}){return(0,t.createElement)(D.Provider,{value:e.id},n)}function A({active:e,modal:n=!1,parentId:r,onEscape:i,onOutsidePress:a,elements:s}){let c=`layer-${(0,t.useId)()}`,l=(0,t.useContext)(D),u=r===void 0?l:r,d=(0,t.useRef)({});d.current={onEscape:i,onOutsidePress:a,elements:s},(0,t.useLayoutEffect)(()=>C(c,d),[c]),(0,t.useLayoutEffect)(()=>{if(e)return S({id:c,parentId:u??null,modal:n})},[e,c,u,n]);let f=(0,t.useSyncExternalStore)(o,()=>e&&w(c),()=>!1),p=(0,t.useSyncExternalStore)(o,()=>e&&T(c),()=>!1),m=(0,t.useCallback)(()=>w(c),[c]),_=(0,t.useCallback)(e=>g(c,e),[c]),v=(0,t.useCallback)(e=>h(c,e),[c]),y=(0,t.useCallback)(e=>C(c,e),[c]);return(0,t.useMemo)(()=>({id:c,parentId:u??null,isTopmost:f,hasModalAbove:p,getIsTopmost:m,contains:_,childContains:v,addHandlers:y}),[c,u,f,p,m,_,v,y])}exports.OverlayLayerProvider=k,exports.childLayerContains=h,exports.getChildLayerElements=f,exports.getLayerElementsAbove=p,exports.getOverlayLayerStack=E,exports.layerContains=g,exports.subscribeOverlayLayers=m,exports.useOverlayLayer=A,exports.useParentOverlayLayer=O;
1
+ "use client";const e=require("./elementSource.cjs.js");let t=require("react");var n=[],r=new Map,i=new Set;function a(){i.forEach(e=>e())}function o(e){return i.add(e),()=>{i.delete(e)}}function s(e){return e===null?void 0:n.find(t=>t.id===e)}function c(e,t){let n=e,r=new Set;for(;n&&!r.has(n.id);){if(n.id===t||n.parentId===t)return!0;r.add(n.id),n=s(n.parentId)}return!1}function l(e){let t=new Set,n=[],r=new Map(e.map(e=>[e.id,e])),i=(e,a)=>{if(t.has(e.id)||a.has(e.id))return;a.add(e.id);let o=e.parentId?r.get(e.parentId):void 0;o&&i(o,a),t.add(e.id),n.push(e)};return e.forEach(e=>i(e,new Set)),n}function u(t,n){let i=r.get(t);if(!i)return!1;for(let t of i){let r=t.current.elements?.()??[];for(let t of r)if(e.resolveElement(t)?.contains(n))return!0}return!1}function d(t){let n=[];for(let i of r.get(t)??[])for(let t of i.current.elements?.()??[]){let r=e.resolveElement(t);r&&!n.includes(r)&&n.push(r)}return n}function f(e){return n.filter(t=>t.id!==e&&c(t,e)).flatMap(e=>d(e.id))}function p(e){let t=n.findIndex(t=>t.id===e);return t===-1?[]:n.slice(t+1).flatMap(e=>d(e.id))}function m(e){return o(e)}function h(e,t){return t?n.some(n=>n.id!==e&&c(n,e)&&u(n.id,t)):!1}function g(e,t){return t?u(e,t)||h(e,t):!1}function _(e){return Array.from(r.get(e)??[],e=>e.current)}function v(e){if(e.key!==`Escape`||e.defaultPrevented||e.isComposing)return;let t=n[n.length-1];if(t)for(let n of _(t.id))n.onEscape?.(e)}function y(e){if(e.defaultPrevented)return;let t=e.target instanceof Node?e.target:null;if(!t)return;let r=[...n];for(let n=r.length-1;n>=0;--n){let i=r[n];if(g(i.id,t))break;for(let t of _(i.id))t.onOutsidePress?.(e);if(i.modal)break}}var b=!1;function x(){typeof document<`u`&&(n.length>0&&!b?(document.addEventListener(`keydown`,v),document.addEventListener(`pointerdown`,y),b=!0):n.length===0&&b&&(document.removeEventListener(`keydown`,v),document.removeEventListener(`pointerdown`,y),b=!1))}function S(e){return n=l([...n.filter(t=>t.id!==e.id),e]),x(),a(),()=>{n=n.filter(t=>t!==e),x(),a()}}function C(e,t){let n=r.get(e);return n||(n=new Set,r.set(e,n)),n.add(t),()=>{let n=r.get(e);n?.delete(t),n&&n.size===0&&r.delete(e)}}function w(e){return n.length>0&&n[n.length-1].id===e}function T(e){let t=n.findIndex(t=>t.id===e);return t!==-1&&n.slice(t+1).some(e=>e.modal)}function E(){return n.map(({id:e,parentId:t,modal:n})=>({id:e,parentId:t,modal:n}))}var D=(0,t.createContext)(null);function O(){return(0,t.useContext)(D)}function k({layer:e,children:n}){return(0,t.createElement)(D.Provider,{value:e.id},n)}function A({active:e,modal:n=!1,parentId:r,onEscape:i,onOutsidePress:a,elements:s}){let c=`layer-${(0,t.useId)()}`,l=(0,t.useContext)(D),u=r===void 0?l:r,d=(0,t.useRef)({});d.current={onEscape:i,onOutsidePress:a,elements:s},(0,t.useLayoutEffect)(()=>C(c,d),[c]),(0,t.useLayoutEffect)(()=>{if(e)return S({id:c,parentId:u??null,modal:n})},[e,c,u,n]);let f=(0,t.useSyncExternalStore)(o,()=>e&&w(c),()=>!1),p=(0,t.useSyncExternalStore)(o,()=>e&&T(c),()=>!1),m=(0,t.useCallback)(()=>w(c),[c]),_=(0,t.useCallback)(e=>g(c,e),[c]),v=(0,t.useCallback)(e=>h(c,e),[c]),y=(0,t.useCallback)(e=>C(c,e),[c]);return(0,t.useMemo)(()=>({id:c,parentId:u??null,isTopmost:f,hasModalAbove:p,getIsTopmost:m,contains:_,childContains:v,addHandlers:y}),[c,u,f,p,m,_,v,y])}exports.OverlayLayerProvider=k,exports.childLayerContains=h,exports.getChildLayerElements=f,exports.getLayerElementsAbove=p,exports.getOverlayLayerStack=E,exports.layerContains=g,exports.subscribeOverlayLayers=m,exports.useOverlayLayer=A,exports.useParentOverlayLayer=O;
@@ -1,6 +1,7 @@
1
+ "use client";
1
2
  import { resolveElement as e } from "./elementSource.mjs";
2
3
  import { createContext as t, createElement as n, useCallback as r, useContext as i, useId as a, useLayoutEffect as o, useMemo as s, useRef as c, useSyncExternalStore as l } from "react";
3
- //#region src/hooks/useOverlayLayer.ts
4
+ // src/hooks/useOverlayLayer.ts
4
5
  var u = [], d = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Set();
5
6
  function p() {
6
7
  f.forEach((e) => e());
@@ -85,7 +86,7 @@ function D(e) {
85
86
  }
86
87
  var O = !1;
87
88
  function k() {
88
- typeof document > "u" || (u.length > 0 && !O ? (document.addEventListener("keydown", E), document.addEventListener("pointerdown", D), O = !0) : u.length === 0 && O && (document.removeEventListener("keydown", E), document.removeEventListener("pointerdown", D), O = !1));
89
+ typeof document < "u" && (u.length > 0 && !O ? (document.addEventListener("keydown", E), document.addEventListener("pointerdown", D), O = !0) : u.length === 0 && O && (document.removeEventListener("keydown", E), document.removeEventListener("pointerdown", D), O = !1));
89
90
  }
90
91
  function A(e) {
91
92
  return u = _([...u.filter((t) => t.id !== e.id), e]), k(), p(), () => {
@@ -159,5 +160,4 @@ function R({ active: e, modal: t = !1, parentId: n, onEscape: u, onOutsidePress:
159
160
  T
160
161
  ]);
161
162
  }
162
- //#endregion
163
163
  export { L as OverlayLayerProvider, C as childLayerContains, b as getChildLayerElements, x as getLayerElementsAbove, P as getOverlayLayerStack, w as layerContains, S as subscribeOverlayLayers, R as useOverlayLayer, I as useParentOverlayLayer };
@@ -1 +1 @@
1
- const e=require("../utils/responsive.cjs.js");let t=require("react");var n=()=>typeof window<`u`&&typeof window.matchMedia==`function`,r=e.RESPONSIVE_KEYS.filter(e=>e!==`base`);function i(i,a){let o=e.isResponsiveObject(i),s=(0,t.useCallback)(t=>{if(!o||!n())return()=>{};let i=r.map(t=>window.matchMedia(e.breakpointQuery(t)));return i.forEach(e=>e.addEventListener(`change`,t)),()=>i.forEach(e=>e.removeEventListener(`change`,t))},[o]),c=()=>e.resolveResponsive(i,a,t=>n()&&window.matchMedia(e.breakpointQuery(t)).matches),l=e.isResponsiveObject(i)?i.base??a:i;return(0,t.useSyncExternalStore)(s,c,()=>l)}exports.useResponsiveValue=i;
1
+ "use client";const e=require("../utils/responsive.cjs.js");let t=require("react");var n=()=>typeof window<`u`&&typeof window.matchMedia==`function`,r=e.RESPONSIVE_KEYS.filter(e=>e!==`base`);function i(i,a){let o=e.isResponsiveObject(i),s=(0,t.useCallback)(t=>{if(!o||!n())return()=>{};let i=r.map(t=>window.matchMedia(e.breakpointQuery(t)));return i.forEach(e=>e.addEventListener(`change`,t)),()=>i.forEach(e=>e.removeEventListener(`change`,t))},[o]),c=()=>e.resolveResponsive(i,a,t=>n()&&window.matchMedia(e.breakpointQuery(t)).matches),l=e.isResponsiveObject(i)?i.base??a:i;return(0,t.useSyncExternalStore)(s,c,()=>l)}exports.useResponsiveValue=i;
@@ -1,6 +1,7 @@
1
+ "use client";
1
2
  import { RESPONSIVE_KEYS as e, breakpointQuery as t, isResponsiveObject as n, resolveResponsive as r } from "../utils/responsive.mjs";
2
3
  import { useCallback as i, useSyncExternalStore as a } from "react";
3
- //#region src/hooks/useResponsiveValue.ts
4
+ // src/hooks/useResponsiveValue.ts
4
5
  var o = () => typeof window < "u" && typeof window.matchMedia == "function", s = e.filter((e) => e !== "base");
5
6
  function c(e, c) {
6
7
  let l = n(e), u = i((e) => {
@@ -10,5 +11,4 @@ function c(e, c) {
10
11
  }, [l]), d = () => r(e, c, (e) => o() && window.matchMedia(t(e)).matches), f = n(e) ? e.base ?? c : e;
11
12
  return a(u, d, () => f);
12
13
  }
13
- //#endregion
14
14
  export { c as useResponsiveValue };
@@ -1 +1 @@
1
- let e=require("react");var t=0,n=null;function r(){if(typeof document>`u`)return()=>{};let e=document.body;if(t===0){let t=window.innerWidth-document.documentElement.clientWidth;if(n={overflow:e.style.overflow,paddingInlineEnd:e.style.paddingInlineEnd},t>0){let n=parseFloat(window.getComputedStyle(e).paddingInlineEnd)||0;e.style.paddingInlineEnd=`${n+t}px`}e.style.overflow=`hidden`}t+=1;let r=!1;return()=>{r||(r=!0,--t,t===0&&n&&(e.style.overflow=n.overflow,e.style.paddingInlineEnd=n.paddingInlineEnd,n=null))}}function i(t){(0,e.useLayoutEffect)(()=>{if(t)return r()},[t])}exports.lockScroll=r,exports.useScrollLock=i;
1
+ "use client";let e=require("react");var t=0,n=null;function r(){if(typeof document>`u`)return()=>{};let e=document.body;if(t===0){let t=window.innerWidth-document.documentElement.clientWidth;if(n={overflow:e.style.overflow,paddingInlineEnd:e.style.paddingInlineEnd},t>0){let n=parseFloat(window.getComputedStyle(e).paddingInlineEnd)||0;e.style.paddingInlineEnd=`${n+t}px`}e.style.overflow=`hidden`}t+=1;let r=!1;return()=>{r||(r=!0,--t,t===0&&n&&(e.style.overflow=n.overflow,e.style.paddingInlineEnd=n.paddingInlineEnd,n=null))}}function i(t){(0,e.useLayoutEffect)(()=>{if(t)return r()},[t])}exports.lockScroll=r,exports.useScrollLock=i;
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { useLayoutEffect as e } from "react";
2
- //#region src/hooks/useScrollLock.ts
3
+ // src/hooks/useScrollLock.ts
3
4
  var t = 0, n = null;
4
5
  function r() {
5
6
  if (typeof document > "u") return () => {};
@@ -26,5 +27,4 @@ function i(t) {
26
27
  if (t) return r();
27
28
  }, [t]);
28
29
  }
29
- //#endregion
30
30
  export { r as lockScroll, i as useScrollLock };
@@ -1 +1 @@
1
- let e=require("react");var t={local:new Set,session:new Set},n=e=>{try{return typeof window>`u`?void 0:e===`local`?window.localStorage:window.sessionStorage}catch{return}},r=(e,t)=>{try{return n(e)?.getItem(t)??null}catch{return null}},i=e=>t[e].forEach(e=>e());function a(e,r){t[e].add(r);let i=t=>{t.storageArea===n(e)&&r()};return typeof window<`u`&&window.addEventListener(`storage`,i),()=>{t[e].delete(r),typeof window<`u`&&window.removeEventListener(`storage`,i)}}function o(t,o,s,{serialize:c=JSON.stringify,deserialize:l=JSON.parse}={}){let u=(0,e.useCallback)(e=>a(t,e),[t]),d=(0,e.useSyncExternalStore)(u,()=>r(t,o),()=>null);return[(0,e.useMemo)(()=>{if(d===null)return s;try{return l(d)}catch{return s}},[d,l]),(0,e.useCallback)(e=>{let a=r(t,o),u=s;if(a!==null)try{u=l(a)}catch{}let d=typeof e==`function`?e(u):e;try{n(t)?.setItem(o,c(d))}catch{}i(t)},[t,o,c,l]),(0,e.useCallback)(()=>{try{n(t)?.removeItem(o)}catch{}i(t)},[t,o])]}function s(e,t,n){return o(`local`,e,t,n)}function c(e,t,n){return o(`session`,e,t,n)}exports.useLocalStorage=s,exports.useSessionStorage=c;
1
+ "use client";let e=require("react");var t={local:new Set,session:new Set},n=e=>{try{return typeof window>`u`?void 0:e===`local`?window.localStorage:window.sessionStorage}catch{return}},r=(e,t)=>{try{return n(e)?.getItem(t)??null}catch{return null}},i=e=>t[e].forEach(e=>e());function a(e,r){t[e].add(r);let i=t=>{t.storageArea===n(e)&&r()};return typeof window<`u`&&window.addEventListener(`storage`,i),()=>{t[e].delete(r),typeof window<`u`&&window.removeEventListener(`storage`,i)}}function o(t,o,s,{serialize:c=JSON.stringify,deserialize:l=JSON.parse}={}){let u=(0,e.useCallback)(e=>a(t,e),[t]),d=(0,e.useSyncExternalStore)(u,()=>r(t,o),()=>null);return[(0,e.useMemo)(()=>{if(d===null)return s;try{return l(d)}catch{return s}},[d,l]),(0,e.useCallback)(e=>{let a=r(t,o),u=s;if(a!==null)try{u=l(a)}catch{}let d=typeof e==`function`?e(u):e;try{n(t)?.setItem(o,c(d))}catch{}i(t)},[t,o,c,l]),(0,e.useCallback)(()=>{try{n(t)?.removeItem(o)}catch{}i(t)},[t,o])]}function s(e,t,n){return o(`local`,e,t,n)}function c(e,t,n){return o(`session`,e,t,n)}exports.useLocalStorage=s,exports.useSessionStorage=c;
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { useCallback as e, useMemo as t, useSyncExternalStore as n } from "react";
2
- //#region src/hooks/useStorage.ts
3
+ // src/hooks/useStorage.ts
3
4
  var r = {
4
5
  local: /* @__PURE__ */ new Set(),
5
6
  session: /* @__PURE__ */ new Set()
@@ -66,5 +67,4 @@ function l(e, t, n) {
66
67
  function u(e, t, n) {
67
68
  return c("session", e, t, n);
68
69
  }
69
- //#endregion
70
70
  export { l as useLocalStorage, u as useSessionStorage };
@@ -1 +1 @@
1
- let e=require("react");function t(t,n,{leading:r=!1,maxWait:i}={}){let a=(0,e.useRef)(t);a.current=t;let o=(0,e.useRef)({}),s=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=o.current;clearTimeout(o.current.timer),o.current={},e&&a.current(...e)},t=((...t)=>{let s=o.current,c=Date.now();if(s.timer===void 0&&r){a.current(...t),o.current={firstCall:c,timer:setTimeout(()=>o.current={},n)};return}if(clearTimeout(s.timer),s.args=t,s.firstCall??=c,i!==void 0&&c-s.firstCall>=i)return e();s.timer=setTimeout(e,n)});return t.cancel=()=>{clearTimeout(o.current.timer),o.current={}},t.flush=()=>{o.current.args&&e()},t.isPending=()=>o.current.args!==void 0,t},[n,r,i]);return(0,e.useEffect)(()=>()=>s.cancel(),[s]),s}function n(t,n){let r=(0,e.useRef)(t);r.current=t;let i=(0,e.useRef)({}),a=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=i.current;i.current.args=void 0,i.current.timer=void 0,e&&(i.current.last=Date.now(),r.current(...e))},t=((...t)=>{let a=i.current,o=a.last===void 0?1/0:Date.now()-a.last;if(o>=n&&a.timer===void 0){a.last=Date.now(),r.current(...t);return}a.args=t,a.timer??=setTimeout(e,Math.max(0,n-o))});return t.cancel=()=>{clearTimeout(i.current.timer),i.current={last:i.current.last}},t.flush=()=>{clearTimeout(i.current.timer),e()},t.isPending=()=>i.current.args!==void 0,t},[n]);return(0,e.useEffect)(()=>()=>a.cancel(),[a]),a}function r(n,r){let[i,a]=(0,e.useState)(n),o=t(a,r),s=(0,e.useRef)(n);s.current=n,(0,e.useEffect)(()=>{o(n)},[n,o]);let c=(0,e.useCallback)(()=>{o.cancel(),a(s.current)},[o]);return[i,{cancel:o.cancel,flush:c}]}function i(t,n){let r=(0,e.useRef)(t);r.current=t,(0,e.useEffect)(()=>{if(n===null)return;let e=setInterval(()=>r.current(),n);return()=>clearInterval(e)},[n])}function a(t,n){let r=(0,e.useRef)(t);r.current=t;let i=(0,e.useRef)(void 0),a=(0,e.useCallback)(()=>clearTimeout(i.current),[]),o=(0,e.useCallback)(()=>{clearTimeout(i.current),n!==null&&(i.current=setTimeout(()=>r.current(),n))},[n]);return(0,e.useEffect)(()=>(o(),a),[o,a]),{clear:a,reset:o}}function o(t){let[n,r]=(0,e.useState)({current:t,previous:void 0});return Object.is(n.current,t)||r({current:t,previous:n.current}),Object.is(n.current,t)?n.previous:n.current}exports.useDebouncedCallback=t,exports.useDebouncedValue=r,exports.useInterval=i,exports.usePrevious=o,exports.useThrottledCallback=n,exports.useTimeout=a;
1
+ "use client";let e=require("react");function t(t,n,{leading:r=!1,maxWait:i}={}){let a=(0,e.useRef)(t);a.current=t;let o=(0,e.useRef)({}),s=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=o.current;clearTimeout(o.current.timer),o.current={},e&&a.current(...e)},t=((...t)=>{let s=o.current,c=Date.now();if(s.timer===void 0&&r)a.current(...t),o.current={firstCall:c,timer:setTimeout(()=>o.current={},n)};else{if(clearTimeout(s.timer),s.args=t,s.firstCall??=c,i!==void 0&&c-s.firstCall>=i)return e();s.timer=setTimeout(e,n)}});return t.cancel=()=>{clearTimeout(o.current.timer),o.current={}},t.flush=()=>{o.current.args&&e()},t.isPending=()=>o.current.args!==void 0,t},[n,r,i]);return(0,e.useEffect)(()=>()=>s.cancel(),[s]),s}function n(t,n){let r=(0,e.useRef)(t);r.current=t;let i=(0,e.useRef)({}),a=(0,e.useMemo)(()=>{let e=()=>{let{args:e}=i.current;i.current.args=void 0,i.current.timer=void 0,e&&(i.current.last=Date.now(),r.current(...e))},t=((...t)=>{let a=i.current,o=a.last===void 0?1/0:Date.now()-a.last;o>=n&&a.timer===void 0?(a.last=Date.now(),r.current(...t)):(a.args=t,a.timer??=setTimeout(e,Math.max(0,n-o)))});return t.cancel=()=>{clearTimeout(i.current.timer),i.current={last:i.current.last}},t.flush=()=>{clearTimeout(i.current.timer),e()},t.isPending=()=>i.current.args!==void 0,t},[n]);return(0,e.useEffect)(()=>()=>a.cancel(),[a]),a}function r(n,r){let[i,a]=(0,e.useState)(n),o=t(a,r),s=(0,e.useRef)(n);s.current=n,(0,e.useEffect)(()=>{o(n)},[n,o]);let c=(0,e.useCallback)(()=>{o.cancel(),a(s.current)},[o]);return[i,{cancel:o.cancel,flush:c}]}function i(t,n){let r=(0,e.useRef)(t);r.current=t,(0,e.useEffect)(()=>{if(n===null)return;let e=setInterval(()=>r.current(),n);return()=>clearInterval(e)},[n])}function a(t,n){let r=(0,e.useRef)(t);r.current=t;let i=(0,e.useRef)(void 0),a=(0,e.useCallback)(()=>clearTimeout(i.current),[]),o=(0,e.useCallback)(()=>{clearTimeout(i.current),n!==null&&(i.current=setTimeout(()=>r.current(),n))},[n]);return(0,e.useEffect)(()=>(o(),a),[o,a]),{clear:a,reset:o}}function o(t){let[n,r]=(0,e.useState)({current:t,previous:void 0});return Object.is(n.current,t)||r({current:t,previous:n.current}),Object.is(n.current,t)?n.previous:n.current}exports.useDebouncedCallback=t,exports.useDebouncedValue=r,exports.useInterval=i,exports.usePrevious=o,exports.useThrottledCallback=n,exports.useTimeout=a;
@@ -1,5 +1,6 @@
1
+ "use client";
1
2
  import { useCallback as e, useEffect as t, useMemo as n, useRef as r, useState as i } from "react";
2
- //#region src/hooks/useTiming.ts
3
+ // src/hooks/useTiming.ts
3
4
  function a(e, i, { leading: a = !1, maxWait: o } = {}) {
4
5
  let s = r(e);
5
6
  s.current = e;
@@ -9,15 +10,14 @@ function a(e, i, { leading: a = !1, maxWait: o } = {}) {
9
10
  clearTimeout(c.current.timer), c.current = {}, e && s.current(...e);
10
11
  }, t = ((...t) => {
11
12
  let n = c.current, r = Date.now();
12
- if (n.timer === void 0 && a) {
13
- s.current(...t), c.current = {
14
- firstCall: r,
15
- timer: setTimeout(() => c.current = {}, i)
16
- };
17
- return;
13
+ if (n.timer === void 0 && a) s.current(...t), c.current = {
14
+ firstCall: r,
15
+ timer: setTimeout(() => c.current = {}, i)
16
+ };
17
+ else {
18
+ if (clearTimeout(n.timer), n.args = t, n.firstCall ??= r, o !== void 0 && r - n.firstCall >= o) return e();
19
+ n.timer = setTimeout(e, i);
18
20
  }
19
- if (clearTimeout(n.timer), n.args = t, n.firstCall ??= r, o !== void 0 && r - n.firstCall >= o) return e();
20
- n.timer = setTimeout(e, i);
21
21
  });
22
22
  return t.cancel = () => {
23
23
  clearTimeout(c.current.timer), c.current = {};
@@ -40,11 +40,7 @@ function o(e, i) {
40
40
  o.current.args = void 0, o.current.timer = void 0, e && (o.current.last = Date.now(), a.current(...e));
41
41
  }, t = ((...t) => {
42
42
  let n = o.current, r = n.last === void 0 ? Infinity : Date.now() - n.last;
43
- if (r >= i && n.timer === void 0) {
44
- n.last = Date.now(), a.current(...t);
45
- return;
46
- }
47
- n.args = t, n.timer ??= setTimeout(e, Math.max(0, i - r));
43
+ r >= i && n.timer === void 0 ? (n.last = Date.now(), a.current(...t)) : (n.args = t, n.timer ??= setTimeout(e, Math.max(0, i - r)));
48
44
  });
49
45
  return t.cancel = () => {
50
46
  clearTimeout(o.current.timer), o.current = { last: o.current.last };
@@ -96,5 +92,4 @@ function u(e) {
96
92
  previous: t.current
97
93
  }), Object.is(t.current, e) ? t.previous : t.current;
98
94
  }
99
- //#endregion
100
95
  export { a as useDebouncedCallback, s as useDebouncedValue, c as useInterval, u as usePrevious, o as useThrottledCallback, l as useTimeout };
@@ -1 +1 @@
1
- const e=require("./elementSource.cjs.js");let t=require("react");function n(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r>>1;e[i]<=t?n=i+1:r=i}return n}function r({count:r,scrollElement:i,estimateSize:a,overscan:o=6,gap:s=0,paddingStart:c=0,paddingEnd:l=0,initialCount:u=10}){let d=e.useResolvedElement(i),[f,p]=(0,t.useState)({offset:0,height:0}),m=(0,t.useRef)(new Map),[h,g]=(0,t.useState)(0),_=(0,t.useRef)(a);_.current=a;let v=(0,t.useMemo)(()=>{let e=Array(r),t=Array(r),n=c;for(let i=0;i<r;i++){let a=_.current,o=m.current.get(i)??(typeof a==`number`?a:a(i));e[i]=n,t[i]=n+o,n+=o+(i<r-1?s:0)}return{starts:e,ends:t,total:n+l}},[r,s,c,l,h,typeof a==`number`?a:-1]);(0,t.useLayoutEffect)(()=>{if(!d)return;let e=0,t=()=>{e=0,p(e=>e.offset===d.scrollTop&&e.height===d.clientHeight?e:{offset:d.scrollTop,height:d.clientHeight})};t();let n=()=>{e||=requestAnimationFrame(t)};d.addEventListener(`scroll`,n,{passive:!0});let r=typeof ResizeObserver<`u`?new ResizeObserver(t):null;return r?.observe(d),()=>{d.removeEventListener(`scroll`,n),r?.disconnect(),e&&cancelAnimationFrame(e)}},[d]);let y=(0,t.useMemo)(()=>{if(r===0)return[];let e,t;f.height===0?(e=0,t=Math.min(r,u)-1):(e=n(v.ends,f.offset),t=n(v.ends,f.offset+f.height),e=Math.max(0,e-o),t=Math.min(r-1,t+o));let i=[];for(let n=e;n<=t;n++)i.push({index:n,start:v.starts[n],end:v.ends[n],size:v.ends[n]-v.starts[n]});return i},[r,v,f,o,u]),b=(0,t.useRef)(new Map),x=(0,t.useRef)(null),S=(0,t.useRef)(!1),C=(0,t.useCallback)(e=>{let t=Number(e.getAttribute(`data-index`));if(!Number.isFinite(t))return;let n=e.getBoundingClientRect().height;n>0&&m.current.get(t)!==n&&(m.current.set(t,n),S.current||(S.current=!0,queueMicrotask(()=>{S.current=!1,g(e=>e+1)})))},[]),w=(0,t.useCallback)(e=>{e&&(!x.current&&typeof ResizeObserver<`u`&&(x.current=new ResizeObserver(e=>{for(let t of e)t.target.isConnected?C(t.target):(x.current?.unobserve(t.target),b.current.delete(t.target))})),b.current.has(e)||(b.current.set(e,Number(e.getAttribute(`data-index`))),x.current?.observe(e)),C(e))},[C]),T=(0,t.useRef)(r);if(T.current!==r){T.current=r;for(let e of Array.from(m.current.keys()))e>=r&&m.current.delete(e)}(0,t.useLayoutEffect)(()=>()=>x.current?.disconnect(),[]);let E=(0,t.useRef)(v);E.current=v;let D=(0,t.useCallback)((t,{align:n=`auto`,behavior:r}={})=>{let a=e.resolveElement(i),{starts:o,ends:s}=E.current;if(!a||t<0||t>=o.length)return;let c=a.scrollTop,l=a.clientHeight,u=o[t],d=s[t],f;if(n===`start`)f=u;else if(n===`end`)f=d-l;else if(n===`center`)f=u-(l-(d-u))/2;else if(u<c)f=u;else if(d>c+l)f=d-l;else return;a.scrollTo({top:Math.max(0,f),behavior:r})},[i]);return{virtualItems:y,totalSize:v.total,measureElement:w,scrollToIndex:D}}exports.useVirtualizer=r;
1
+ "use client";const e=require("./elementSource.cjs.js");let t=require("react");function n(e,t){let n=e.virtualItems.slice(),r=new Set(n.map(e=>e.index));for(let i of t){if(r.has(i))continue;let t=e.getItem(i);t&&(n.push(t),r.add(i))}return n.sort((e,t)=>e.index-t.index)}function r(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r>>1;e[i]<=t?n=i+1:r=i}return n}function i({count:n,scrollElement:i,estimateSize:a,overscan:o=6,gap:s=0,paddingStart:c=0,paddingEnd:l=0,initialCount:u=10}){let d=e.useResolvedElement(i),[f,p]=(0,t.useState)({offset:0,height:0}),m=(0,t.useRef)(new Map),h=(0,t.useRef)(0),[g,_]=(0,t.useState)(0),v=(0,t.useRef)(a);v.current=a;let y=(0,t.useMemo)(()=>{let e=new Float64Array(n),t=new Float64Array(n),r=v.current,i=m.current,a=i.size>0?h.current/i.size:0,o=typeof r==`number`?a||r:0,u=c;for(let a=0;a<n;a++){let c=i.get(a)??(typeof r==`number`?o:r(a));e[a]=u,t[a]=u+c,u+=c+(a<n-1?s:0)}return{starts:e,ends:t,total:u+l}},[n,s,c,l,g,typeof a==`number`?a:-1]);(0,t.useLayoutEffect)(()=>{if(!d)return;let e=0,t=()=>{e=0,p(e=>e.offset===d.scrollTop&&e.height===d.clientHeight?e:{offset:d.scrollTop,height:d.clientHeight})};t();let n=()=>{e||=requestAnimationFrame(t)};d.addEventListener(`scroll`,n,{passive:!0});let r=typeof ResizeObserver<`u`?new ResizeObserver(t):null;return r?.observe(d),()=>{d.removeEventListener(`scroll`,n),r?.disconnect(),e&&cancelAnimationFrame(e)}},[d]);let b=(0,t.useMemo)(()=>{if(n===0)return[];let e,t;f.height===0?(e=0,t=Math.min(n,u)-1):(e=r(y.ends,f.offset),t=r(y.ends,f.offset+f.height),e=Math.max(0,e-o),t=Math.min(n-1,t+o));let i=[];for(let n=e;n<=t;n++)i.push({index:n,start:y.starts[n],end:y.ends[n],size:y.ends[n]-y.starts[n]});return i},[n,y,f,o,u]),x=(0,t.useRef)(new Map),S=(0,t.useRef)(null),C=(0,t.useRef)(!1),w=(0,t.useCallback)(e=>{let t=Number(e.getAttribute(`data-index`));if(!Number.isFinite(t))return;let n=e.getBoundingClientRect().height,r=m.current.get(t);n>0&&r!==n&&(h.current+=n-(r??0),m.current.set(t,n),C.current||(C.current=!0,queueMicrotask(()=>{C.current=!1,_(e=>e+1)})))},[]),T=(0,t.useCallback)(e=>{e&&(!S.current&&typeof ResizeObserver<`u`&&(S.current=new ResizeObserver(e=>{for(let t of e)t.target.isConnected?w(t.target):(S.current?.unobserve(t.target),x.current.delete(t.target))})),x.current.has(e)||(x.current.set(e,Number(e.getAttribute(`data-index`))),S.current?.observe(e)),w(e))},[w]),E=(0,t.useRef)(n);if(E.current!==n){E.current=n;for(let[e,t]of Array.from(m.current))e>=n&&(m.current.delete(e),h.current-=t)}(0,t.useLayoutEffect)(()=>()=>S.current?.disconnect(),[]);let D=(0,t.useRef)(y);D.current=y;let O=(0,t.useRef)(null),k=(0,t.useCallback)((e,t,n)=>{let{starts:r,ends:i}=D.current;if(t<0||t>=r.length)return null;let a=e.scrollTop,o=e.clientHeight,s=r[t],c=i[t],l;if(n===`start`)l=s;else if(n===`end`)l=c-o;else if(n===`center`)l=s-(o-(c-s))/2;else if(s<a)l=s;else if(c>a+o)l=c-o;else return null;return Math.max(0,Math.min(l,e.scrollHeight-o))},[]),A=(0,t.useCallback)((t,{align:n=`auto`,behavior:r}={})=>{let a=e.resolveElement(i);if(!a)return;let o=k(a,t,n);O.current={index:t,align:n,tries:0},o!==null&&a.scrollTo({top:o,behavior:r})},[i,k]);(0,t.useLayoutEffect)(()=>{let t=O.current,n=e.resolveElement(i);if(!t||!n)return;let r=k(n,t.index,t.align);r===null||Math.abs(n.scrollTop-r)<1||t.tries>=10?O.current=null:(t.tries++,n.scrollTop=r)},[y,i,k]);let j=(0,t.useCallback)(e=>{if(e<0||e>=y.starts.length)return;let t=y.starts[e],n=y.ends[e];return{index:e,start:t,end:n,size:n-t}},[y]);return{virtualItems:b,totalSize:y.total,measureElement:T,scrollToIndex:A,getItem:j}}exports.useVirtualizer=i,exports.withExtraItems=n;
@@ -49,7 +49,20 @@ export interface Virtualizer {
49
49
  align?: VirtualAlign;
50
50
  behavior?: ScrollBehavior;
51
51
  }) => void;
52
+ /**
53
+ * The position of any item, rendered or not, or `undefined` when `index`
54
+ * is out of range. Use it to keep one extra item rendered outside the
55
+ * window (the focused row, the `aria-activedescendant` option) with
56
+ * `withExtraItems`.
57
+ */
58
+ getItem: (index: number) => VirtualItem | undefined;
52
59
  }
60
+ /**
61
+ * The window's items plus extra indices that must stay rendered even when
62
+ * scrolled out of view (a focused row, a highlighted option), in order.
63
+ * Render spacers between non-adjacent items from their `start` / `end`.
64
+ */
65
+ export declare function withExtraItems(virtualizer: Virtualizer, extra: readonly number[]): VirtualItem[];
53
66
  /**
54
67
  * Headless list virtualization: renders only the items in view (plus
55
68
  * `overscan`), so lists of 100,000 rows stay fast. Works with variable
@@ -1,7 +1,17 @@
1
+ "use client";
1
2
  import { resolveElement as e, useResolvedElement as t } from "./elementSource.mjs";
2
3
  import { useCallback as n, useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
3
- //#region src/hooks/useVirtualizer.ts
4
+ // src/hooks/useVirtualizer.ts
4
5
  function s(e, t) {
6
+ let n = e.virtualItems.slice(), r = new Set(n.map((e) => e.index));
7
+ for (let i of t) {
8
+ if (r.has(i)) continue;
9
+ let t = e.getItem(i);
10
+ t && (n.push(t), r.add(i));
11
+ }
12
+ return n.sort((e, t) => e.index - t.index);
13
+ }
14
+ function c(e, t) {
5
15
  let n = 0, r = e.length - 1;
6
16
  for (; n < r;) {
7
17
  let i = n + r >> 1;
@@ -9,29 +19,29 @@ function s(e, t) {
9
19
  }
10
20
  return n;
11
21
  }
12
- function c({ count: c, scrollElement: l, estimateSize: u, overscan: d = 6, gap: f = 0, paddingStart: p = 0, paddingEnd: m = 0, initialCount: h = 10 }) {
22
+ function l({ count: s, scrollElement: l, estimateSize: u, overscan: d = 6, gap: f = 0, paddingStart: p = 0, paddingEnd: m = 0, initialCount: h = 10 }) {
13
23
  let g = t(l), [_, v] = o({
14
24
  offset: 0,
15
25
  height: 0
16
- }), y = a(/* @__PURE__ */ new Map()), [b, x] = o(0), S = a(u);
17
- S.current = u;
18
- let C = i(() => {
19
- let e = Array(c), t = Array(c), n = p;
20
- for (let r = 0; r < c; r++) {
21
- let i = S.current, a = y.current.get(r) ?? (typeof i == "number" ? i : i(r));
22
- e[r] = n, t[r] = n + a, n += a + (r < c - 1 ? f : 0);
26
+ }), y = a(/* @__PURE__ */ new Map()), b = a(0), [x, S] = o(0), C = a(u);
27
+ C.current = u;
28
+ let w = i(() => {
29
+ let e = new Float64Array(s), t = new Float64Array(s), n = C.current, r = y.current, i = r.size > 0 ? b.current / r.size : 0, a = typeof n == "number" ? i || n : 0, o = p;
30
+ for (let i = 0; i < s; i++) {
31
+ let c = r.get(i) ?? (typeof n == "number" ? a : n(i));
32
+ e[i] = o, t[i] = o + c, o += c + (i < s - 1 ? f : 0);
23
33
  }
24
34
  return {
25
35
  starts: e,
26
36
  ends: t,
27
- total: n + m
37
+ total: o + m
28
38
  };
29
39
  }, [
30
- c,
40
+ s,
31
41
  f,
32
42
  p,
33
43
  m,
34
- b,
44
+ x,
35
45
  typeof u == "number" ? u : -1
36
46
  ]);
37
47
  r(() => {
@@ -52,64 +62,93 @@ function c({ count: c, scrollElement: l, estimateSize: u, overscan: d = 6, gap:
52
62
  g.removeEventListener("scroll", n), r?.disconnect(), e && cancelAnimationFrame(e);
53
63
  };
54
64
  }, [g]);
55
- let w = i(() => {
56
- if (c === 0) return [];
65
+ let T = i(() => {
66
+ if (s === 0) return [];
57
67
  let e, t;
58
- _.height === 0 ? (e = 0, t = Math.min(c, h) - 1) : (e = s(C.ends, _.offset), t = s(C.ends, _.offset + _.height), e = Math.max(0, e - d), t = Math.min(c - 1, t + d));
68
+ _.height === 0 ? (e = 0, t = Math.min(s, h) - 1) : (e = c(w.ends, _.offset), t = c(w.ends, _.offset + _.height), e = Math.max(0, e - d), t = Math.min(s - 1, t + d));
59
69
  let n = [];
60
70
  for (let r = e; r <= t; r++) n.push({
61
71
  index: r,
62
- start: C.starts[r],
63
- end: C.ends[r],
64
- size: C.ends[r] - C.starts[r]
72
+ start: w.starts[r],
73
+ end: w.ends[r],
74
+ size: w.ends[r] - w.starts[r]
65
75
  });
66
76
  return n;
67
77
  }, [
68
- c,
69
- C,
78
+ s,
79
+ w,
70
80
  _,
71
81
  d,
72
82
  h
73
- ]), T = a(/* @__PURE__ */ new Map()), E = a(null), D = a(!1), O = n((e) => {
83
+ ]), E = a(/* @__PURE__ */ new Map()), D = a(null), O = a(!1), k = n((e) => {
74
84
  let t = Number(e.getAttribute("data-index"));
75
85
  if (!Number.isFinite(t)) return;
76
- let n = e.getBoundingClientRect().height;
77
- n > 0 && y.current.get(t) !== n && (y.current.set(t, n), D.current || (D.current = !0, queueMicrotask(() => {
78
- D.current = !1, x((e) => e + 1);
86
+ let n = e.getBoundingClientRect().height, r = y.current.get(t);
87
+ n > 0 && r !== n && (b.current += n - (r ?? 0), y.current.set(t, n), O.current || (O.current = !0, queueMicrotask(() => {
88
+ O.current = !1, S((e) => e + 1);
79
89
  })));
80
- }, []), k = n((e) => {
81
- e && (!E.current && typeof ResizeObserver < "u" && (E.current = new ResizeObserver((e) => {
82
- for (let t of e) t.target.isConnected ? O(t.target) : (E.current?.unobserve(t.target), T.current.delete(t.target));
83
- })), T.current.has(e) || (T.current.set(e, Number(e.getAttribute("data-index"))), E.current?.observe(e)), O(e));
84
- }, [O]), A = a(c);
85
- if (A.current !== c) {
86
- A.current = c;
87
- for (let e of Array.from(y.current.keys())) e >= c && y.current.delete(e);
90
+ }, []), A = n((e) => {
91
+ e && (!D.current && typeof ResizeObserver < "u" && (D.current = new ResizeObserver((e) => {
92
+ for (let t of e) t.target.isConnected ? k(t.target) : (D.current?.unobserve(t.target), E.current.delete(t.target));
93
+ })), E.current.has(e) || (E.current.set(e, Number(e.getAttribute("data-index"))), D.current?.observe(e)), k(e));
94
+ }, [k]), j = a(s);
95
+ if (j.current !== s) {
96
+ j.current = s;
97
+ for (let [e, t] of Array.from(y.current)) e >= s && (y.current.delete(e), b.current -= t);
88
98
  }
89
- r(() => () => E.current?.disconnect(), []);
90
- let j = a(C);
91
- j.current = C;
92
- let M = n((t, { align: n = "auto", behavior: r } = {}) => {
93
- let i = e(l), { starts: a, ends: o } = j.current;
94
- if (!i || t < 0 || t >= a.length) return;
95
- let s = i.scrollTop, c = i.clientHeight, u = a[t], d = o[t], f;
96
- if (n === "start") f = u;
97
- else if (n === "end") f = d - c;
98
- else if (n === "center") f = u - (c - (d - u)) / 2;
99
- else if (u < s) f = u;
100
- else if (d > s + c) f = d - c;
101
- else return;
102
- i.scrollTo({
103
- top: Math.max(0, f),
99
+ r(() => () => D.current?.disconnect(), []);
100
+ let M = a(w);
101
+ M.current = w;
102
+ let N = a(null), P = n((e, t, n) => {
103
+ let { starts: r, ends: i } = M.current;
104
+ if (t < 0 || t >= r.length) return null;
105
+ let a = e.scrollTop, o = e.clientHeight, s = r[t], c = i[t], l;
106
+ if (n === "start") l = s;
107
+ else if (n === "end") l = c - o;
108
+ else if (n === "center") l = s - (o - (c - s)) / 2;
109
+ else if (s < a) l = s;
110
+ else if (c > a + o) l = c - o;
111
+ else return null;
112
+ return Math.max(0, Math.min(l, e.scrollHeight - o));
113
+ }, []), F = n((t, { align: n = "auto", behavior: r } = {}) => {
114
+ let i = e(l);
115
+ if (!i) return;
116
+ let a = P(i, t, n);
117
+ N.current = {
118
+ index: t,
119
+ align: n,
120
+ tries: 0
121
+ }, a !== null && i.scrollTo({
122
+ top: a,
104
123
  behavior: r
105
124
  });
106
- }, [l]);
125
+ }, [l, P]);
126
+ r(() => {
127
+ let t = N.current, n = e(l);
128
+ if (!t || !n) return;
129
+ let r = P(n, t.index, t.align);
130
+ r === null || Math.abs(n.scrollTop - r) < 1 || t.tries >= 10 ? N.current = null : (t.tries++, n.scrollTop = r);
131
+ }, [
132
+ w,
133
+ l,
134
+ P
135
+ ]);
136
+ let I = n((e) => {
137
+ if (e < 0 || e >= w.starts.length) return;
138
+ let t = w.starts[e], n = w.ends[e];
139
+ return {
140
+ index: e,
141
+ start: t,
142
+ end: n,
143
+ size: n - t
144
+ };
145
+ }, [w]);
107
146
  return {
108
- virtualItems: w,
109
- totalSize: C.total,
110
- measureElement: k,
111
- scrollToIndex: M
147
+ virtualItems: T,
148
+ totalSize: w.total,
149
+ measureElement: A,
150
+ scrollToIndex: F,
151
+ getItem: I
112
152
  };
113
153
  }
114
- //#endregion
115
- export { c as useVirtualizer };
154
+ export { l as useVirtualizer, s as withExtraItems };