@vjdesigns/vjdesigns-ui 2.4.0 → 2.5.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 (417) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +45 -1
  3. package/dist/ai/llms-full.txt +133 -76
  4. package/dist/ai/registry.json +82 -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 +14 -3
  33. package/dist/components/data-display/DataGrid/DataGrid.mjs +352 -267
  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 +6 -5
  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/DateTimePicker/DateTimePicker.cjs.js +1 -1
  128. package/dist/components/forms/DateTimePicker/DateTimePicker.mjs +19 -19
  129. package/dist/components/forms/DateTimePicker/DateTimePicker.module.css.mjs +1 -2
  130. package/dist/components/forms/Field/Field.cjs.js +1 -1
  131. package/dist/components/forms/Field/Field.mjs +14 -14
  132. package/dist/components/forms/Field/Field.module.css.mjs +1 -2
  133. package/dist/components/forms/Field/FieldContext.cjs.js +1 -1
  134. package/dist/components/forms/Field/FieldContext.mjs +2 -2
  135. package/dist/components/forms/FileUpload/FileUpload.cjs.js +1 -1
  136. package/dist/components/forms/FileUpload/FileUpload.mjs +250 -255
  137. package/dist/components/forms/FileUpload/FileUpload.module.css.mjs +1 -2
  138. package/dist/components/forms/Input/Input.cjs.js +1 -1
  139. package/dist/components/forms/Input/Input.mjs +35 -35
  140. package/dist/components/forms/Input/Input.module.css.mjs +1 -2
  141. package/dist/components/forms/NumberInput/NumberInput.cjs.js +1 -1
  142. package/dist/components/forms/NumberInput/NumberInput.mjs +137 -142
  143. package/dist/components/forms/NumberInput/NumberInput.module.css.mjs +1 -2
  144. package/dist/components/forms/PasswordInput/PasswordInput.cjs.js +1 -1
  145. package/dist/components/forms/PasswordInput/PasswordInput.mjs +142 -142
  146. package/dist/components/forms/PasswordInput/PasswordInput.module.css.mjs +1 -2
  147. package/dist/components/forms/PinInput/PinInput.cjs.js +1 -1
  148. package/dist/components/forms/PinInput/PinInput.mjs +12 -12
  149. package/dist/components/forms/PinInput/PinInput.module.css.mjs +1 -2
  150. package/dist/components/forms/Radio/Radio.cjs.js +1 -1
  151. package/dist/components/forms/Radio/Radio.mjs +2 -2
  152. package/dist/components/forms/Radio/Radio.module.css.mjs +1 -2
  153. package/dist/components/forms/Rating/Rating.cjs.js +1 -1
  154. package/dist/components/forms/Rating/Rating.mjs +110 -109
  155. package/dist/components/forms/Rating/Rating.module.css.mjs +1 -2
  156. package/dist/components/forms/SearchInput/SearchInput.cjs.js +1 -1
  157. package/dist/components/forms/SearchInput/SearchInput.mjs +118 -126
  158. package/dist/components/forms/SearchInput/SearchInput.module.css.mjs +1 -2
  159. package/dist/components/forms/SegmentedControl/SegmentedControl.cjs.js +1 -1
  160. package/dist/components/forms/SegmentedControl/SegmentedControl.mjs +46 -43
  161. package/dist/components/forms/SegmentedControl/SegmentedControl.module.css.mjs +1 -2
  162. package/dist/components/forms/Select/Select.cjs.js +1 -1
  163. package/dist/components/forms/Select/Select.mjs +2 -2
  164. package/dist/components/forms/Select/Select.module.css.mjs +1 -2
  165. package/dist/components/forms/Slider/Slider.cjs.js +1 -1
  166. package/dist/components/forms/Slider/Slider.mjs +2 -2
  167. package/dist/components/forms/Slider/Slider.module.css.mjs +1 -2
  168. package/dist/components/forms/Switch/Switch.cjs.js +1 -1
  169. package/dist/components/forms/Switch/Switch.mjs +39 -39
  170. package/dist/components/forms/Switch/Switch.module.css.mjs +1 -2
  171. package/dist/components/forms/TagInput/TagInput.cjs.js +1 -1
  172. package/dist/components/forms/TagInput/TagInput.mjs +197 -203
  173. package/dist/components/forms/TagInput/TagInput.module.css.mjs +1 -2
  174. package/dist/components/forms/Textarea/Textarea.cjs.js +1 -1
  175. package/dist/components/forms/Textarea/Textarea.mjs +59 -59
  176. package/dist/components/forms/Textarea/Textarea.module.css.mjs +1 -2
  177. package/dist/components/forms/TimePicker/TimePicker.cjs.js +1 -1
  178. package/dist/components/forms/TimePicker/TimePicker.mjs +14 -16
  179. package/dist/components/forms/TimePicker/TimePicker.module.css.mjs +1 -2
  180. package/dist/components/forms/TimePicker/timeUtils.cjs.js +1 -1
  181. package/dist/components/forms/TimePicker/timeUtils.d.ts +4 -1
  182. package/dist/components/forms/TimePicker/timeUtils.mjs +43 -38
  183. package/dist/components/forms/ToggleGroup/ToggleGroup.cjs.js +1 -1
  184. package/dist/components/forms/ToggleGroup/ToggleGroup.mjs +10 -10
  185. package/dist/components/forms/ToggleGroup/ToggleGroup.module.css.mjs +1 -2
  186. package/dist/components/layout/Box/Box.mjs +1 -2
  187. package/dist/components/layout/Box/Box.module.css.mjs +1 -2
  188. package/dist/components/layout/Container/Container.mjs +1 -2
  189. package/dist/components/layout/Container/Container.module.css.mjs +1 -2
  190. package/dist/components/layout/Divider/Divider.mjs +1 -2
  191. package/dist/components/layout/Divider/Divider.module.css.mjs +1 -2
  192. package/dist/components/layout/Flex/Flex.cjs.js +1 -1
  193. package/dist/components/layout/Flex/Flex.mjs +12 -13
  194. package/dist/components/layout/Flex/Flex.module.css.mjs +1 -2
  195. package/dist/components/layout/Grid/Grid.cjs.js +1 -1
  196. package/dist/components/layout/Grid/Grid.mjs +20 -21
  197. package/dist/components/layout/Grid/Grid.module.css.mjs +1 -2
  198. package/dist/components/layout/ResizablePanels/ResizablePanels.cjs.js +1 -1
  199. package/dist/components/layout/ResizablePanels/ResizablePanels.mjs +17 -17
  200. package/dist/components/layout/ResizablePanels/ResizablePanels.module.css.mjs +1 -2
  201. package/dist/components/layout/ScrollArea/ScrollArea.cjs.js +1 -1
  202. package/dist/components/layout/ScrollArea/ScrollArea.mjs +2 -2
  203. package/dist/components/layout/ScrollArea/ScrollArea.module.css.mjs +1 -2
  204. package/dist/components/layout/Stack/Stack.cjs.js +1 -1
  205. package/dist/components/layout/Stack/Stack.mjs +8 -9
  206. package/dist/components/layout/Stack/Stack.module.css.mjs +1 -2
  207. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.cjs.js +1 -1
  208. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.mjs +41 -41
  209. package/dist/components/navigation/Breadcrumbs/Breadcrumbs.module.css.mjs +1 -2
  210. package/dist/components/navigation/ContextMenu/ContextMenu.cjs.js +1 -1
  211. package/dist/components/navigation/ContextMenu/ContextMenu.mjs +48 -48
  212. package/dist/components/navigation/ContextMenu/ContextMenu.module.css.mjs +1 -2
  213. package/dist/components/navigation/Link/Link.cjs.js +1 -1
  214. package/dist/components/navigation/Link/Link.mjs +6 -7
  215. package/dist/components/navigation/Link/Link.module.css.mjs +1 -2
  216. package/dist/components/navigation/Menu/Menu.cjs.js +1 -1
  217. package/dist/components/navigation/Menu/Menu.mjs +11 -11
  218. package/dist/components/navigation/Menu/Menu.module.css.mjs +1 -2
  219. package/dist/components/navigation/Menu/MenuContent.cjs.js +1 -1
  220. package/dist/components/navigation/Menu/MenuContent.mjs +46 -46
  221. package/dist/components/navigation/Menu/MenuContext.cjs.js +1 -1
  222. package/dist/components/navigation/Menu/MenuContext.mjs +2 -2
  223. package/dist/components/navigation/Menu/MenuItem.cjs.js +1 -1
  224. package/dist/components/navigation/Menu/MenuItem.mjs +35 -39
  225. package/dist/components/navigation/Menu/MenuSub.cjs.js +1 -1
  226. package/dist/components/navigation/Menu/MenuSub.mjs +16 -20
  227. package/dist/components/navigation/Menu/useMenuRoot.cjs.js +1 -1
  228. package/dist/components/navigation/Menu/useMenuRoot.mjs +2 -2
  229. package/dist/components/navigation/Navbar/Navbar.cjs.js +1 -1
  230. package/dist/components/navigation/Navbar/Navbar.mjs +111 -111
  231. package/dist/components/navigation/Navbar/Navbar.module.css.mjs +1 -2
  232. package/dist/components/navigation/Pagination/Pagination.cjs.js +1 -1
  233. package/dist/components/navigation/Pagination/Pagination.mjs +31 -35
  234. package/dist/components/navigation/Pagination/Pagination.module.css.mjs +1 -2
  235. package/dist/components/navigation/Sidebar/Sidebar.cjs.js +1 -1
  236. package/dist/components/navigation/Sidebar/Sidebar.mjs +52 -52
  237. package/dist/components/navigation/Sidebar/Sidebar.module.css.mjs +1 -2
  238. package/dist/components/navigation/Sidebar/SidebarContext.cjs.js +1 -1
  239. package/dist/components/navigation/Sidebar/SidebarContext.mjs +2 -2
  240. package/dist/components/navigation/Sidebar/SidebarParts.cjs.js +1 -1
  241. package/dist/components/navigation/Sidebar/SidebarParts.mjs +76 -80
  242. package/dist/components/navigation/SkipLink/SkipLink.cjs.js +1 -1
  243. package/dist/components/navigation/SkipLink/SkipLink.mjs +12 -12
  244. package/dist/components/navigation/SkipLink/SkipLink.module.css.mjs +1 -2
  245. package/dist/components/navigation/Stepper/Stepper.cjs.js +1 -1
  246. package/dist/components/navigation/Stepper/Stepper.mjs +46 -46
  247. package/dist/components/navigation/Stepper/Stepper.module.css.mjs +1 -2
  248. package/dist/components/navigation/Tabs/Tabs.cjs.js +1 -1
  249. package/dist/components/navigation/Tabs/Tabs.mjs +2 -2
  250. package/dist/components/navigation/Tabs/Tabs.module.css.mjs +1 -2
  251. package/dist/components/overlays/CommandPalette/CommandPalette.cjs.js +1 -1
  252. package/dist/components/overlays/CommandPalette/CommandPalette.mjs +206 -206
  253. package/dist/components/overlays/CommandPalette/CommandPalette.module.css.mjs +1 -2
  254. package/dist/components/overlays/CommandPalette/CommandPaletteContext.cjs.js +1 -1
  255. package/dist/components/overlays/CommandPalette/CommandPaletteContext.mjs +2 -2
  256. package/dist/components/overlays/CommandPalette/CommandPaletteParts.cjs.js +1 -1
  257. package/dist/components/overlays/CommandPalette/CommandPaletteParts.mjs +104 -104
  258. package/dist/components/overlays/CommandPalette/commandPaletteUtils.cjs.js +1 -1
  259. package/dist/components/overlays/CommandPalette/commandPaletteUtils.mjs +62 -60
  260. package/dist/components/overlays/Drawer/Drawer.cjs.js +1 -1
  261. package/dist/components/overlays/Drawer/Drawer.mjs +31 -31
  262. package/dist/components/overlays/Drawer/Drawer.module.css.mjs +1 -2
  263. package/dist/components/overlays/Drawer/DrawerContent.cjs.js +1 -1
  264. package/dist/components/overlays/Drawer/DrawerContent.mjs +99 -99
  265. package/dist/components/overlays/Drawer/DrawerContext.cjs.js +1 -1
  266. package/dist/components/overlays/Drawer/DrawerContext.mjs +2 -2
  267. package/dist/components/overlays/Drawer/DrawerParts.cjs.js +1 -1
  268. package/dist/components/overlays/Drawer/DrawerParts.mjs +18 -18
  269. package/dist/components/overlays/Drawer/internal.mjs +1 -2
  270. package/dist/components/overlays/Drawer/useDragToClose.cjs.js +1 -1
  271. package/dist/components/overlays/Drawer/useDragToClose.mjs +2 -2
  272. package/dist/components/overlays/HoverCard/HoverCard.cjs.js +1 -1
  273. package/dist/components/overlays/HoverCard/HoverCard.mjs +31 -31
  274. package/dist/components/overlays/HoverCard/HoverCard.module.css.mjs +1 -2
  275. package/dist/components/overlays/Modal/ConfirmModal.cjs.js +1 -1
  276. package/dist/components/overlays/Modal/ConfirmModal.mjs +21 -23
  277. package/dist/components/overlays/Modal/Modal.cjs.js +1 -1
  278. package/dist/components/overlays/Modal/Modal.mjs +47 -47
  279. package/dist/components/overlays/Modal/Modal.module.css.mjs +1 -2
  280. package/dist/components/overlays/Modal/ModalContent.cjs.js +1 -1
  281. package/dist/components/overlays/Modal/ModalContent.mjs +24 -24
  282. package/dist/components/overlays/Modal/ModalContext.cjs.js +1 -1
  283. package/dist/components/overlays/Modal/ModalContext.mjs +2 -2
  284. package/dist/components/overlays/Modal/useScrollRegion.cjs.js +1 -1
  285. package/dist/components/overlays/Modal/useScrollRegion.mjs +2 -2
  286. package/dist/components/overlays/Popover/Popover.cjs.js +1 -1
  287. package/dist/components/overlays/Popover/Popover.mjs +40 -40
  288. package/dist/components/overlays/Popover/Popover.module.css.mjs +1 -2
  289. package/dist/components/overlays/Popover/PopoverContent.cjs.js +1 -1
  290. package/dist/components/overlays/Popover/PopoverContent.mjs +39 -39
  291. package/dist/components/overlays/Popover/PopoverContext.cjs.js +1 -1
  292. package/dist/components/overlays/Popover/PopoverContext.mjs +2 -2
  293. package/dist/components/overlays/Tooltip/Tooltip.cjs.js +1 -1
  294. package/dist/components/overlays/Tooltip/Tooltip.mjs +100 -95
  295. package/dist/components/overlays/Tooltip/Tooltip.module.css.mjs +1 -2
  296. package/dist/components/primitives/Button/Button.cjs.js +1 -1
  297. package/dist/components/primitives/Button/Button.mjs +59 -63
  298. package/dist/components/primitives/Button/Button.module.css.mjs +1 -2
  299. package/dist/components/primitives/Icon/Icon.cjs.js +1 -1
  300. package/dist/components/primitives/Icon/Icon.mjs +5 -6
  301. package/dist/components/primitives/Icon/Icon.module.css.mjs +1 -2
  302. package/dist/components/primitives/Icon/IconSvg.mjs +1 -2
  303. package/dist/components/primitives/Icon/icons.mjs +1 -2
  304. package/dist/components/primitives/Kbd/Kbd.cjs.js +1 -1
  305. package/dist/components/primitives/Kbd/Kbd.mjs +30 -30
  306. package/dist/components/primitives/Kbd/Kbd.module.css.mjs +1 -2
  307. package/dist/components/primitives/Typography/Typography.mjs +1 -2
  308. package/dist/components/primitives/Typography/Typography.module.css.mjs +1 -2
  309. package/dist/components/utilities/LocaleProvider/LocaleProvider.cjs.js +1 -1
  310. package/dist/components/utilities/LocaleProvider/LocaleProvider.mjs +11 -11
  311. package/dist/components/utilities/LocaleProvider/LocaleProvider.module.css.mjs +1 -2
  312. package/dist/components/utilities/Portal/Portal.cjs.js +1 -1
  313. package/dist/components/utilities/Portal/Portal.mjs +2 -2
  314. package/dist/components/utilities/Theme/Theme.cjs.js +1 -1
  315. package/dist/components/utilities/Theme/Theme.mjs +13 -13
  316. package/dist/components/utilities/Theme/Theme.module.css.mjs +1 -2
  317. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.mjs +1 -2
  318. package/dist/components/utilities/VisuallyHidden/VisuallyHidden.module.css.mjs +1 -2
  319. package/dist/hooks/elementSource.cjs.js +1 -1
  320. package/dist/hooks/elementSource.mjs +4 -3
  321. package/dist/hooks/useClipboard.cjs.js +1 -1
  322. package/dist/hooks/useClipboard.mjs +2 -2
  323. package/dist/hooks/useControllableState.cjs.js +1 -1
  324. package/dist/hooks/useControllableState.mjs +2 -2
  325. package/dist/hooks/useDisclosure.cjs.js +1 -1
  326. package/dist/hooks/useDisclosure.mjs +2 -2
  327. package/dist/hooks/useDismiss.cjs.js +1 -1
  328. package/dist/hooks/useDismiss.mjs +2 -2
  329. package/dist/hooks/useElementObservers.cjs.js +1 -1
  330. package/dist/hooks/useElementObservers.mjs +2 -2
  331. package/dist/hooks/useEnvironment.cjs.js +1 -1
  332. package/dist/hooks/useEnvironment.mjs +2 -2
  333. package/dist/hooks/useFloatingPosition.cjs.js +1 -1
  334. package/dist/hooks/useFloatingPosition.mjs +2 -2
  335. package/dist/hooks/useFocusTrap.cjs.js +1 -1
  336. package/dist/hooks/useFocusTrap.mjs +4 -15
  337. package/dist/hooks/useFormReset.cjs.js +1 -1
  338. package/dist/hooks/useFormReset.mjs +2 -2
  339. package/dist/hooks/useFormValidation.cjs.js +1 -1
  340. package/dist/hooks/useFormValidation.mjs +2 -2
  341. package/dist/hooks/useHotkeys.cjs.js +1 -1
  342. package/dist/hooks/useHotkeys.mjs +2 -2
  343. package/dist/hooks/useInertOutside.cjs.js +1 -1
  344. package/dist/hooks/useInertOutside.mjs +5 -9
  345. package/dist/hooks/useMediaQuery.cjs.js +1 -1
  346. package/dist/hooks/useMediaQuery.mjs +2 -2
  347. package/dist/hooks/useMergedRef.cjs.js +1 -1
  348. package/dist/hooks/useMergedRef.mjs +2 -2
  349. package/dist/hooks/useOverlayLayer.cjs.js +1 -1
  350. package/dist/hooks/useOverlayLayer.mjs +3 -3
  351. package/dist/hooks/useResponsiveValue.cjs.js +1 -1
  352. package/dist/hooks/useResponsiveValue.mjs +2 -2
  353. package/dist/hooks/useScrollLock.cjs.js +1 -1
  354. package/dist/hooks/useScrollLock.mjs +2 -2
  355. package/dist/hooks/useStorage.cjs.js +1 -1
  356. package/dist/hooks/useStorage.mjs +2 -2
  357. package/dist/hooks/useTiming.cjs.js +1 -1
  358. package/dist/hooks/useTiming.mjs +10 -15
  359. package/dist/hooks/useVirtualizer.cjs.js +1 -1
  360. package/dist/hooks/useVirtualizer.d.ts +13 -0
  361. package/dist/hooks/useVirtualizer.mjs +93 -54
  362. package/dist/i18n/en.mjs +1 -2
  363. package/dist/i18n/merge.mjs +1 -2
  364. package/dist/i18n/plural.mjs +1 -2
  365. package/dist/index.cjs.js +1 -1
  366. package/dist/index.mjs +114 -114
  367. package/dist/locales/ar.mjs +1 -2
  368. package/dist/locales/bn.mjs +1 -2
  369. package/dist/locales/cs.mjs +1 -2
  370. package/dist/locales/da.mjs +1 -2
  371. package/dist/locales/de.mjs +1 -2
  372. package/dist/locales/el.mjs +1 -2
  373. package/dist/locales/es.mjs +1 -2
  374. package/dist/locales/fa.mjs +1 -2
  375. package/dist/locales/fi.mjs +1 -2
  376. package/dist/locales/fr.mjs +1 -2
  377. package/dist/locales/he.mjs +1 -2
  378. package/dist/locales/hi.mjs +1 -2
  379. package/dist/locales/hu.mjs +1 -2
  380. package/dist/locales/id.mjs +1 -2
  381. package/dist/locales/it.mjs +1 -2
  382. package/dist/locales/ja.mjs +1 -2
  383. package/dist/locales/ko.mjs +1 -2
  384. package/dist/locales/nb.mjs +1 -2
  385. package/dist/locales/nl.mjs +1 -2
  386. package/dist/locales/pl.mjs +1 -2
  387. package/dist/locales/pt-BR.mjs +1 -2
  388. package/dist/locales/ro.mjs +1 -2
  389. package/dist/locales/ru.mjs +1 -2
  390. package/dist/locales/sv.mjs +1 -2
  391. package/dist/locales/th.mjs +1 -2
  392. package/dist/locales/tr.mjs +1 -2
  393. package/dist/locales/uk.mjs +1 -2
  394. package/dist/locales/ur.mjs +1 -2
  395. package/dist/locales/vi.mjs +1 -2
  396. package/dist/locales/zh-Hans.mjs +1 -2
  397. package/dist/locales/zh-Hant.mjs +1 -2
  398. package/dist/types/common.mjs +1 -2
  399. package/dist/utils/announce.cjs.js +1 -1
  400. package/dist/utils/announce.mjs +3 -4
  401. package/dist/utils/brandPalette.mjs +1 -2
  402. package/dist/utils/clipboard.mjs +1 -2
  403. package/dist/utils/cx.mjs +1 -2
  404. package/dist/utils/fillSlot.cjs.js +1 -1
  405. package/dist/utils/fillSlot.mjs +2 -2
  406. package/dist/utils/flattenChildren.mjs +1 -2
  407. package/dist/utils/hotkeys.mjs +1 -2
  408. package/dist/utils/intl.cjs.js +1 -0
  409. package/dist/utils/intl.d.ts +10 -0
  410. package/dist/utils/intl.mjs +15 -0
  411. package/dist/utils/refs.mjs +1 -2
  412. package/dist/utils/responsive.mjs +1 -2
  413. package/dist/utils/slot.mjs +1 -2
  414. package/dist/utils/validators.mjs +1 -2
  415. package/dist/vjdesigns-ui.css +1 -1
  416. package/dist/vjdesigns-ui.css.d.ts +2 -0
  417. package/package.json +24 -14
@@ -1 +1 @@
1
- const e=require("../../../hooks/useOverlayLayer.cjs.js"),t=require("../../../hooks/useFloatingPosition.cjs.js"),n=require("../../../utils/cx.cjs.js"),r=require("../../utilities/Portal/Portal.cjs.js"),i=require("../../feedback/Spinner/Spinner.cjs.js"),a=require("../../primitives/Icon/icons.cjs.js"),o=require("./comboboxUtils.cjs.js"),s=require("./Combobox.module.css.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={sm:s.default.listSm,md:s.default.listMd,lg:s.default.listLg},d={x:NaN,y:NaN};function f(e){return(0,l.jsx)(r.Portal,{container:e.container,children:(0,l.jsx)(p,{...e})})}function p({anchorRef:r,positionerRef:f,layer:p,listboxId:m,labelledBy:h,label:g,multiple:_,size:v,placement:y,maxHeight:b,items:x,highlightedIndex:S,isSelected:C,onHighlight:w,onChoose:T,renderOption:E,createLabel:D,loading:O,loadingMessage:k,emptyMessage:A}){let j=(0,c.useRef)(null),[M,N]=(0,c.useState)(`ltr`),[P,F]=(0,c.useState)(void 0);(0,c.useLayoutEffect)(()=>{let e=r.current;if(!e)return;N(getComputedStyle(e).direction===`rtl`?`rtl`:`ltr`);let t=()=>F(e.getBoundingClientRect().width);if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[r]);let I=t.useFloatingPosition(r,f,{open:!0,placement:y,offset:6}),L=I.placement.split(`-`)[0],R=S>=0?x[S]?.id:void 0;(0,c.useLayoutEffect)(()=>{let e=j.current;if(!e||!R)return;let t=document.getElementById(R);if(!t||!e.contains(t))return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=parseFloat(getComputedStyle(e).paddingTop)||0;r.top<n.top+i?e.scrollTop-=n.top+i-r.top:r.bottom>n.bottom-i&&(e.scrollTop+=r.bottom-(n.bottom-i))},[R,I.isPositioned]);let z=o.groupItems(x),B=new Map(x.map((e,t)=>[e.key,t])),V=!O&&x.length===0&&A!=null&&A!==!1,H=(e,t,n)=>{if(e.pointerType===`touch`)return;let r=d.x!==e.clientX||d.y!==e.clientY;d.x=e.clientX,d.y=e.clientY,r&&n&&t!==S&&w(t)},U=e=>{let t=B.get(e.key)??-1,r=t===S;if(e.kind===`create`)return(0,l.jsxs)(`div`,{id:e.id,role:`option`,"aria-selected":!1,"data-highlighted":r||void 0,className:n.cx(s.default.option,s.default.createOption),onPointerMove:e=>H(e,t,!0),onClick:()=>T(e),children:[(0,l.jsx)(`span`,{className:s.default.indicator,"aria-hidden":`true`,children:(0,l.jsx)(a.PlusIcon,{size:`sm`,strokeWidth:2.5})}),(0,l.jsx)(`span`,{className:s.default.optionText,children:(0,l.jsx)(`span`,{className:s.default.optionLabel,children:D(e.text)})})]},e.key);let{option:i}=e,o=C(i.value),c=!!i.disabled,u=`${e.id}-label`,d=`${e.id}-description`,f=E?.(i,{selected:o,highlighted:r,disabled:c});return(0,l.jsxs)(`div`,{id:e.id,role:`option`,"aria-selected":o,"aria-disabled":c||void 0,"aria-labelledby":f===void 0?u:void 0,"aria-describedby":f===void 0&&i.description?d:void 0,"data-highlighted":r||void 0,"data-selected":o||void 0,"data-disabled":c||void 0,className:s.default.option,onPointerMove:e=>H(e,t,!c),onClick:()=>{c||T(e)},children:[(0,l.jsx)(`span`,{className:s.default.indicator,"aria-hidden":`true`,children:o&&(0,l.jsx)(a.CheckIcon,{size:`sm`,strokeWidth:3})}),f===void 0?(0,l.jsxs)(l.Fragment,{children:[i.icon!=null&&(0,l.jsx)(`span`,{className:s.default.optionIcon,"aria-hidden":`true`,children:i.icon}),(0,l.jsxs)(`span`,{className:s.default.optionText,children:[(0,l.jsx)(`span`,{id:u,className:s.default.optionLabel,children:i.label}),i.description&&(0,l.jsx)(`span`,{id:d,className:s.default.optionDescription,children:i.description})]})]}):(0,l.jsx)(`span`,{className:s.default.optionText,children:f})]},e.key)},W=b===void 0?void 0:{"--_max-h":typeof b==`number`?`${b}px`:b},G=e=>e.preventDefault();return(0,l.jsx)(e.OverlayLayerProvider,{layer:p,children:(0,l.jsx)(`div`,{ref:f,className:s.default.positioner,style:{...I.style,minInlineSize:P},dir:M,children:(0,l.jsxs)(`div`,{ref:j,className:n.cx(s.default.popup,u[v]),style:W,"data-side":L,"data-state":`open`,onMouseDown:G,children:[(0,l.jsx)(`div`,{id:m,role:`listbox`,"aria-labelledby":h,"aria-label":h?void 0:g,"aria-multiselectable":_||void 0,"aria-busy":O||void 0,className:s.default.listbox,children:z.map((e,t)=>e.group===void 0?(0,l.jsx)(c.Fragment,{children:e.items.map(U)},`section-${t}`):(0,l.jsxs)(`div`,{role:`group`,"aria-labelledby":`${m}-group-${t}`,className:s.default.group,children:[(0,l.jsx)(`div`,{id:`${m}-group-${t}`,role:`presentation`,className:s.default.groupLabel,children:e.group}),e.items.map(U)]},`group-${e.group}`))}),O&&(0,l.jsxs)(`div`,{className:s.default.statusRow,children:[(0,l.jsx)(i.Spinner,{decorative:!0,size:v===`lg`?`md`:`sm`,tone:`primary`}),(0,l.jsx)(`span`,{children:k})]}),V&&(0,l.jsx)(`div`,{className:s.default.statusRow,children:A})]})})})}exports.ComboboxPopup=f;
1
+ "use client";const e=require("../../../hooks/useFloatingPosition.cjs.js"),t=require("../../../hooks/useVirtualizer.cjs.js"),n=require("../../../hooks/useOverlayLayer.cjs.js"),r=require("../../../utils/cx.cjs.js"),i=require("../../feedback/Spinner/Spinner.cjs.js"),a=require("../../primitives/Icon/icons.cjs.js"),o=require("../../utilities/Portal/Portal.cjs.js"),s=require("./comboboxUtils.cjs.js"),c=require("./Combobox.module.css.cjs.js");let l=require("react"),u=require("react/jsx-runtime");var d={sm:c.default.listSm,md:c.default.listMd,lg:c.default.listLg},f=100,p={sm:32,md:40,lg:48},m={x:NaN,y:NaN};function h(e){return(0,u.jsx)(o.Portal,{container:e.container,children:(0,u.jsx)(g,{...e})})}function g({anchorRef:o,positionerRef:h,layer:g,listboxId:_,labelledBy:v,label:y,multiple:b,size:x,placement:S,maxHeight:C,items:w,highlightedIndex:T,isSelected:E,onHighlight:D,onChoose:O,renderOption:k,createLabel:A,loading:j,loadingMessage:M,emptyMessage:N}){let P=(0,l.useRef)(null),[F,I]=(0,l.useState)(`ltr`),[L,R]=(0,l.useState)(void 0);(0,l.useLayoutEffect)(()=>{let e=o.current;if(!e)return;I(getComputedStyle(e).direction===`rtl`?`rtl`:`ltr`);let t=()=>R(e.getBoundingClientRect().width);if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[o]);let z=e.useFloatingPosition(o,h,{open:!0,placement:S,offset:6}),B=z.placement.split(`-`)[0],V=s.groupItems(w),H=w.length>f&&V.every(e=>e.group===void 0),[U,W]=(0,l.useState)(0);(0,l.useLayoutEffect)(()=>{let e=P.current;H&&e&&W(parseFloat(getComputedStyle(e).paddingTop)||0)},[H]);let G=t.useVirtualizer({count:H?w.length:0,scrollElement:P,estimateSize:p[x],paddingStart:U,overscan:8,initialCount:20}),K=T>=0?w[T]?.id:void 0;(0,l.useLayoutEffect)(()=>{if(H){T>=0&&G.scrollToIndex(T);return}let e=P.current;if(!e||!K)return;let t=document.getElementById(K);if(!t||!e.contains(t))return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=parseFloat(getComputedStyle(e).paddingTop)||0;r.top<n.top+i?e.scrollTop-=n.top+i-r.top:r.bottom>n.bottom-i&&(e.scrollTop+=r.bottom-(n.bottom-i))},[K,z.isPositioned,H]);let q=(0,l.useMemo)(()=>new Map(w.map((e,t)=>[e.key,t])),[w]),J=!j&&w.length===0&&N!=null&&N!==!1,Y=(e,t,n)=>{if(e.pointerType===`touch`)return;let r=m.x!==e.clientX||m.y!==e.clientY;m.x=e.clientX,m.y=e.clientY,r&&n&&t!==T&&D(t)},X=e=>{let t=q.get(e.key)??-1,n=t===T,i=H?{ref:G.measureElement,"data-index":t,"aria-setsize":w.length,"aria-posinset":t+1}:null;if(e.kind===`create`)return(0,u.jsxs)(`div`,{...i,id:e.id,role:`option`,"aria-selected":!1,"data-highlighted":n||void 0,className:r.cx(c.default.option,c.default.createOption),onPointerMove:e=>Y(e,t,!0),onClick:()=>O(e),children:[(0,u.jsx)(`span`,{className:c.default.indicator,"aria-hidden":`true`,children:(0,u.jsx)(a.PlusIcon,{size:`sm`,strokeWidth:2.5})}),(0,u.jsx)(`span`,{className:c.default.optionText,children:(0,u.jsx)(`span`,{className:c.default.optionLabel,children:A(e.text)})})]},e.key);let{option:o}=e,s=E(o.value),l=!!o.disabled,d=`${e.id}-label`,f=`${e.id}-description`,p=k?.(o,{selected:s,highlighted:n,disabled:l});return(0,u.jsxs)(`div`,{...i,id:e.id,role:`option`,"aria-selected":s,"aria-disabled":l||void 0,"aria-labelledby":p===void 0?d:void 0,"aria-describedby":p===void 0&&o.description?f:void 0,"data-highlighted":n||void 0,"data-selected":s||void 0,"data-disabled":l||void 0,className:c.default.option,onPointerMove:e=>Y(e,t,!l),onClick:()=>{l||O(e)},children:[(0,u.jsx)(`span`,{className:c.default.indicator,"aria-hidden":`true`,children:s&&(0,u.jsx)(a.CheckIcon,{size:`sm`,strokeWidth:3})}),p===void 0?(0,u.jsxs)(u.Fragment,{children:[o.icon!=null&&(0,u.jsx)(`span`,{className:c.default.optionIcon,"aria-hidden":`true`,children:o.icon}),(0,u.jsxs)(`span`,{className:c.default.optionText,children:[(0,u.jsx)(`span`,{id:d,className:c.default.optionLabel,children:o.label}),o.description&&(0,u.jsx)(`span`,{id:f,className:c.default.optionDescription,children:o.description})]})]}):(0,u.jsx)(`span`,{className:c.default.optionText,children:p})]},e.key)},Z=C===void 0?void 0:{"--_max-h":typeof C==`number`?`${C}px`:C},Q=e=>e.preventDefault(),$=()=>{let e=t.withExtraItems(G,T>=0?[T]:[]),n=[],r=U;for(let t of e)t.start-r>.5&&n.push((0,u.jsx)(`div`,{"aria-hidden":`true`,style:{blockSize:t.start-r}},`gap-${t.index}`)),n.push(X(w[t.index])),r=t.end;let i=G.totalSize-r;return i>.5&&n.push((0,u.jsx)(`div`,{"aria-hidden":`true`,style:{blockSize:i}},`gap-end`)),n};return(0,u.jsx)(n.OverlayLayerProvider,{layer:g,children:(0,u.jsx)(`div`,{ref:h,className:c.default.positioner,style:{...z.style,minInlineSize:L},dir:F,children:(0,u.jsxs)(`div`,{ref:P,className:r.cx(c.default.popup,d[x]),style:Z,"data-side":B,"data-state":`open`,onMouseDown:Q,children:[(0,u.jsx)(`div`,{id:_,role:`listbox`,"aria-labelledby":v,"aria-label":v?void 0:y,"aria-multiselectable":b||void 0,"aria-busy":j||void 0,className:c.default.listbox,children:H?$():V.map((e,t)=>e.group===void 0?(0,u.jsx)(l.Fragment,{children:e.items.map(X)},`section-${t}`):(0,u.jsxs)(`div`,{role:`group`,"aria-labelledby":`${_}-group-${t}`,className:c.default.group,children:[(0,u.jsx)(`div`,{id:`${_}-group-${t}`,role:`presentation`,className:c.default.groupLabel,children:e.group}),e.items.map(X)]},`group-${e.group}`))}),j&&(0,u.jsxs)(`div`,{className:c.default.statusRow,children:[(0,u.jsx)(i.Spinner,{decorative:!0,size:x===`lg`?`md`:`sm`,tone:`primary`}),(0,u.jsx)(`span`,{children:M})]}),J&&(0,u.jsx)(`div`,{className:c.default.statusRow,children:N})]})})})}exports.ComboboxPopup=h;
@@ -1,183 +1,226 @@
1
- import { OverlayLayerProvider as e } from "../../../hooks/useOverlayLayer.mjs";
2
- import { useFloatingPosition as t } from "../../../hooks/useFloatingPosition.mjs";
3
- import { cx as n } from "../../../utils/cx.mjs";
4
- import { Portal as r } from "../../utilities/Portal/Portal.mjs";
5
- import { Spinner as i } from "../../feedback/Spinner/Spinner.mjs";
6
- import { CheckIcon as a, PlusIcon as o } from "../../primitives/Icon/icons.mjs";
7
- import { groupItems as s } from "./comboboxUtils.mjs";
8
- import c from "./Combobox.module.css.mjs";
9
- import { Fragment as l, useLayoutEffect as u, useRef as d, useState as f } from "react";
10
- import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
11
- //#region src/components/forms/Combobox/ComboboxPopup.tsx
12
- var g = {
13
- sm: c.listSm,
14
- md: c.listMd,
15
- lg: c.listLg
16
- }, _ = {
1
+ "use client";
2
+ import { useFloatingPosition as e } from "../../../hooks/useFloatingPosition.mjs";
3
+ import { useVirtualizer as t, withExtraItems as n } from "../../../hooks/useVirtualizer.mjs";
4
+ import { OverlayLayerProvider as r } from "../../../hooks/useOverlayLayer.mjs";
5
+ import { cx as i } from "../../../utils/cx.mjs";
6
+ import { Spinner as a } from "../../feedback/Spinner/Spinner.mjs";
7
+ import { CheckIcon as o, PlusIcon as s } from "../../primitives/Icon/icons.mjs";
8
+ import { Portal as c } from "../../utilities/Portal/Portal.mjs";
9
+ import { groupItems as l } from "./comboboxUtils.mjs";
10
+ import u from "./Combobox.module.css.mjs";
11
+ import { Fragment as d, useLayoutEffect as f, useMemo as p, useRef as ee, useState as m } from "react";
12
+ import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
13
+ // src/components/forms/Combobox/ComboboxPopup.tsx
14
+ var v = {
15
+ sm: u.listSm,
16
+ md: u.listMd,
17
+ lg: u.listLg
18
+ }, y = 100, b = {
19
+ sm: 32,
20
+ md: 40,
21
+ lg: 48
22
+ }, x = {
17
23
  x: NaN,
18
24
  y: NaN
19
25
  };
20
- function v(e) {
21
- return /* @__PURE__ */ m(r, {
26
+ function S(e) {
27
+ return /* @__PURE__ */ g(c, {
22
28
  container: e.container,
23
- children: /* @__PURE__ */ m(y, { ...e })
29
+ children: /* @__PURE__ */ g(C, { ...e })
24
30
  });
25
31
  }
26
- function y({ anchorRef: r, positionerRef: v, layer: y, listboxId: b, labelledBy: x, label: S, multiple: C, size: w, placement: T, maxHeight: E, items: D, highlightedIndex: O, isSelected: k, onHighlight: A, onChoose: j, renderOption: M, createLabel: N, loading: P, loadingMessage: F, emptyMessage: I }) {
27
- let L = d(null), [R, z] = f("ltr"), [B, V] = f(void 0);
28
- u(() => {
29
- let e = r.current;
32
+ function C({ anchorRef: c, positionerRef: S, layer: C, listboxId: w, labelledBy: T, label: E, multiple: te, size: D, placement: ne, maxHeight: O, items: k, highlightedIndex: A, isSelected: j, onHighlight: M, onChoose: N, renderOption: P, createLabel: F, loading: I, loadingMessage: L, emptyMessage: R }) {
33
+ let z = ee(null), [B, V] = m("ltr"), [H, U] = m(void 0);
34
+ f(() => {
35
+ let e = c.current;
30
36
  if (!e) return;
31
- z(getComputedStyle(e).direction === "rtl" ? "rtl" : "ltr");
32
- let t = () => V(e.getBoundingClientRect().width);
37
+ V(getComputedStyle(e).direction === "rtl" ? "rtl" : "ltr");
38
+ let t = () => U(e.getBoundingClientRect().width);
33
39
  if (t(), typeof ResizeObserver > "u") return;
34
40
  let n = new ResizeObserver(t);
35
41
  return n.observe(e), () => n.disconnect();
36
- }, [r]);
37
- let H = t(r, v, {
42
+ }, [c]);
43
+ let W = e(c, S, {
38
44
  open: !0,
39
- placement: T,
45
+ placement: ne,
40
46
  offset: 6
41
- }), U = H.placement.split("-")[0], W = O >= 0 ? D[O]?.id : void 0;
42
- u(() => {
43
- let e = L.current;
44
- if (!e || !W) return;
45
- let t = document.getElementById(W);
47
+ }), G = W.placement.split("-")[0], K = l(k), q = k.length > y && K.every((e) => e.group === void 0), [J, Y] = m(0);
48
+ f(() => {
49
+ let e = z.current;
50
+ q && e && Y(parseFloat(getComputedStyle(e).paddingTop) || 0);
51
+ }, [q]);
52
+ let X = t({
53
+ count: q ? k.length : 0,
54
+ scrollElement: z,
55
+ estimateSize: b[D],
56
+ paddingStart: J,
57
+ overscan: 8,
58
+ initialCount: 20
59
+ }), Z = A >= 0 ? k[A]?.id : void 0;
60
+ f(() => {
61
+ if (q) {
62
+ A >= 0 && X.scrollToIndex(A);
63
+ return;
64
+ }
65
+ let e = z.current;
66
+ if (!e || !Z) return;
67
+ let t = document.getElementById(Z);
46
68
  if (!t || !e.contains(t)) return;
47
69
  let n = e.getBoundingClientRect(), r = t.getBoundingClientRect(), i = parseFloat(getComputedStyle(e).paddingTop) || 0;
48
70
  r.top < n.top + i ? e.scrollTop -= n.top + i - r.top : r.bottom > n.bottom - i && (e.scrollTop += r.bottom - (n.bottom - i));
49
- }, [W, H.isPositioned]);
50
- let G = s(D), K = new Map(D.map((e, t) => [e.key, t])), q = !P && D.length === 0 && I != null && I !== !1, J = (e, t, n) => {
71
+ }, [
72
+ Z,
73
+ W.isPositioned,
74
+ q
75
+ ]);
76
+ let re = p(() => new Map(k.map((e, t) => [e.key, t])), [k]), ie = !I && k.length === 0 && R != null && R !== !1, Q = (e, t, n) => {
51
77
  if (e.pointerType === "touch") return;
52
- let r = _.x !== e.clientX || _.y !== e.clientY;
53
- _.x = e.clientX, _.y = e.clientY, r && n && t !== O && A(t);
54
- }, Y = (e) => {
55
- let t = K.get(e.key) ?? -1, r = t === O;
56
- if (e.kind === "create") return /* @__PURE__ */ h("div", {
78
+ let r = x.x !== e.clientX || x.y !== e.clientY;
79
+ x.x = e.clientX, x.y = e.clientY, r && n && t !== A && M(t);
80
+ }, $ = (e) => {
81
+ let t = re.get(e.key) ?? -1, n = t === A, r = q ? {
82
+ ref: X.measureElement,
83
+ "data-index": t,
84
+ "aria-setsize": k.length,
85
+ "aria-posinset": t + 1
86
+ } : null;
87
+ if (e.kind === "create") return /* @__PURE__ */ _("div", {
88
+ ...r,
57
89
  id: e.id,
58
90
  role: "option",
59
91
  "aria-selected": !1,
60
- "data-highlighted": r || void 0,
61
- className: n(c.option, c.createOption),
62
- onPointerMove: (e) => J(e, t, !0),
63
- onClick: () => j(e),
64
- children: [/* @__PURE__ */ m("span", {
65
- className: c.indicator,
92
+ "data-highlighted": n || void 0,
93
+ className: i(u.option, u.createOption),
94
+ onPointerMove: (e) => Q(e, t, !0),
95
+ onClick: () => N(e),
96
+ children: [/* @__PURE__ */ g("span", {
97
+ className: u.indicator,
66
98
  "aria-hidden": "true",
67
- children: /* @__PURE__ */ m(o, {
99
+ children: /* @__PURE__ */ g(s, {
68
100
  size: "sm",
69
101
  strokeWidth: 2.5
70
102
  })
71
- }), /* @__PURE__ */ m("span", {
72
- className: c.optionText,
73
- children: /* @__PURE__ */ m("span", {
74
- className: c.optionLabel,
75
- children: N(e.text)
103
+ }), /* @__PURE__ */ g("span", {
104
+ className: u.optionText,
105
+ children: /* @__PURE__ */ g("span", {
106
+ className: u.optionLabel,
107
+ children: F(e.text)
76
108
  })
77
109
  })]
78
110
  }, e.key);
79
- let { option: i } = e, s = k(i.value), l = !!i.disabled, u = `${e.id}-label`, d = `${e.id}-description`, f = M?.(i, {
80
- selected: s,
81
- highlighted: r,
111
+ let { option: a } = e, c = j(a.value), l = !!a.disabled, d = `${e.id}-label`, f = `${e.id}-description`, p = P?.(a, {
112
+ selected: c,
113
+ highlighted: n,
82
114
  disabled: l
83
115
  });
84
- return /* @__PURE__ */ h("div", {
116
+ return /* @__PURE__ */ _("div", {
117
+ ...r,
85
118
  id: e.id,
86
119
  role: "option",
87
- "aria-selected": s,
120
+ "aria-selected": c,
88
121
  "aria-disabled": l || void 0,
89
- "aria-labelledby": f === void 0 ? u : void 0,
90
- "aria-describedby": f === void 0 && i.description ? d : void 0,
91
- "data-highlighted": r || void 0,
92
- "data-selected": s || void 0,
122
+ "aria-labelledby": p === void 0 ? d : void 0,
123
+ "aria-describedby": p === void 0 && a.description ? f : void 0,
124
+ "data-highlighted": n || void 0,
125
+ "data-selected": c || void 0,
93
126
  "data-disabled": l || void 0,
94
- className: c.option,
95
- onPointerMove: (e) => J(e, t, !l),
127
+ className: u.option,
128
+ onPointerMove: (e) => Q(e, t, !l),
96
129
  onClick: () => {
97
- l || j(e);
130
+ l || N(e);
98
131
  },
99
- children: [/* @__PURE__ */ m("span", {
100
- className: c.indicator,
132
+ children: [/* @__PURE__ */ g("span", {
133
+ className: u.indicator,
101
134
  "aria-hidden": "true",
102
- children: s && /* @__PURE__ */ m(a, {
135
+ children: c && /* @__PURE__ */ g(o, {
103
136
  size: "sm",
104
137
  strokeWidth: 3
105
138
  })
106
- }), f === void 0 ? /* @__PURE__ */ h(p, { children: [i.icon != null && /* @__PURE__ */ m("span", {
107
- className: c.optionIcon,
139
+ }), p === void 0 ? /* @__PURE__ */ _(h, { children: [a.icon != null && /* @__PURE__ */ g("span", {
140
+ className: u.optionIcon,
108
141
  "aria-hidden": "true",
109
- children: i.icon
110
- }), /* @__PURE__ */ h("span", {
111
- className: c.optionText,
112
- children: [/* @__PURE__ */ m("span", {
113
- id: u,
114
- className: c.optionLabel,
115
- children: i.label
116
- }), i.description && /* @__PURE__ */ m("span", {
142
+ children: a.icon
143
+ }), /* @__PURE__ */ _("span", {
144
+ className: u.optionText,
145
+ children: [/* @__PURE__ */ g("span", {
117
146
  id: d,
118
- className: c.optionDescription,
119
- children: i.description
147
+ className: u.optionLabel,
148
+ children: a.label
149
+ }), a.description && /* @__PURE__ */ g("span", {
150
+ id: f,
151
+ className: u.optionDescription,
152
+ children: a.description
120
153
  })]
121
- })] }) : /* @__PURE__ */ m("span", {
122
- className: c.optionText,
123
- children: f
154
+ })] }) : /* @__PURE__ */ g("span", {
155
+ className: u.optionText,
156
+ children: p
124
157
  })]
125
158
  }, e.key);
126
- }, X = E === void 0 ? void 0 : { "--_max-h": typeof E == "number" ? `${E}px` : E }, Z = (e) => e.preventDefault();
127
- return /* @__PURE__ */ m(e, {
128
- layer: y,
129
- children: /* @__PURE__ */ m("div", {
130
- ref: v,
131
- className: c.positioner,
159
+ }, ae = O === void 0 ? void 0 : { "--_max-h": typeof O == "number" ? `${O}px` : O }, oe = (e) => e.preventDefault(), se = () => {
160
+ let e = n(X, A >= 0 ? [A] : []), t = [], r = J;
161
+ for (let n of e) n.start - r > .5 && t.push(/* @__PURE__ */ g("div", {
162
+ "aria-hidden": "true",
163
+ style: { blockSize: n.start - r }
164
+ }, `gap-${n.index}`)), t.push($(k[n.index])), r = n.end;
165
+ let i = X.totalSize - r;
166
+ return i > .5 && t.push(/* @__PURE__ */ g("div", {
167
+ "aria-hidden": "true",
168
+ style: { blockSize: i }
169
+ }, "gap-end")), t;
170
+ };
171
+ return /* @__PURE__ */ g(r, {
172
+ layer: C,
173
+ children: /* @__PURE__ */ g("div", {
174
+ ref: S,
175
+ className: u.positioner,
132
176
  style: {
133
- ...H.style,
134
- minInlineSize: B
177
+ ...W.style,
178
+ minInlineSize: H
135
179
  },
136
- dir: R,
137
- children: /* @__PURE__ */ h("div", {
138
- ref: L,
139
- className: n(c.popup, g[w]),
140
- style: X,
141
- "data-side": U,
180
+ dir: B,
181
+ children: /* @__PURE__ */ _("div", {
182
+ ref: z,
183
+ className: i(u.popup, v[D]),
184
+ style: ae,
185
+ "data-side": G,
142
186
  "data-state": "open",
143
- onMouseDown: Z,
187
+ onMouseDown: oe,
144
188
  children: [
145
- /* @__PURE__ */ m("div", {
146
- id: b,
189
+ /* @__PURE__ */ g("div", {
190
+ id: w,
147
191
  role: "listbox",
148
- "aria-labelledby": x,
149
- "aria-label": x ? void 0 : S,
150
- "aria-multiselectable": C || void 0,
151
- "aria-busy": P || void 0,
152
- className: c.listbox,
153
- children: G.map((e, t) => e.group === void 0 ? /* @__PURE__ */ m(l, { children: e.items.map(Y) }, `section-${t}`) : /* @__PURE__ */ h("div", {
192
+ "aria-labelledby": T,
193
+ "aria-label": T ? void 0 : E,
194
+ "aria-multiselectable": te || void 0,
195
+ "aria-busy": I || void 0,
196
+ className: u.listbox,
197
+ children: q ? se() : K.map((e, t) => e.group === void 0 ? /* @__PURE__ */ g(d, { children: e.items.map($) }, `section-${t}`) : /* @__PURE__ */ _("div", {
154
198
  role: "group",
155
- "aria-labelledby": `${b}-group-${t}`,
156
- className: c.group,
157
- children: [/* @__PURE__ */ m("div", {
158
- id: `${b}-group-${t}`,
199
+ "aria-labelledby": `${w}-group-${t}`,
200
+ className: u.group,
201
+ children: [/* @__PURE__ */ g("div", {
202
+ id: `${w}-group-${t}`,
159
203
  role: "presentation",
160
- className: c.groupLabel,
204
+ className: u.groupLabel,
161
205
  children: e.group
162
- }), e.items.map(Y)]
206
+ }), e.items.map($)]
163
207
  }, `group-${e.group}`))
164
208
  }),
165
- P && /* @__PURE__ */ h("div", {
166
- className: c.statusRow,
167
- children: [/* @__PURE__ */ m(i, {
209
+ I && /* @__PURE__ */ _("div", {
210
+ className: u.statusRow,
211
+ children: [/* @__PURE__ */ g(a, {
168
212
  decorative: !0,
169
- size: w === "lg" ? "md" : "sm",
213
+ size: D === "lg" ? "md" : "sm",
170
214
  tone: "primary"
171
- }), /* @__PURE__ */ m("span", { children: F })]
215
+ }), /* @__PURE__ */ g("span", { children: L })]
172
216
  }),
173
- q && /* @__PURE__ */ m("div", {
174
- className: c.statusRow,
175
- children: I
217
+ ie && /* @__PURE__ */ g("div", {
218
+ className: u.statusRow,
219
+ children: R
176
220
  })
177
221
  ]
178
222
  })
179
223
  })
180
224
  });
181
225
  }
182
- //#endregion
183
- export { v as ComboboxPopup };
226
+ export { S as ComboboxPopup };
@@ -1 +1 @@
1
- function e(e){return e.normalize(`NFD`).replace(/[̀-ͯ]/g,``).toLowerCase().trim()}var t=(t,n)=>{let r=e(n);return!r||e(t.label).includes(r)},n=`\0create`;function r(e){let t=[],n=[],r=new Map;for(let i of e){if(i.kind===`create`){n.push(i);continue}let e=i.option.group;if(e===void 0||e===``)t.push(i);else{let t=r.get(e);t?t.push(i):r.set(e,[i])}}let i=[];return t.length&&i.push({group:void 0,items:t}),r.forEach((e,t)=>i.push({group:t,items:e})),n.length&&i.push({group:void 0,items:n}),i}function i(e){return r(e).flatMap(e=>e.items)}function a(e){return!!e&&(e.kind===`create`||!e.option.disabled)}function o(e,t,n,r){let i=e.length;if(i===0)return-1;let o=t;for(let s=0;s<i;s+=1){let c=o+n;if(t===-1&&s===0&&(c=n===1?0:i-1),c<0||c>=i){if(!r)return t;c=(c+i)%i}if(a(e[c]))return c;o=c}return t}exports.CREATE_KEY=n,exports.defaultComboboxFilter=t,exports.findEnabled=o,exports.groupItems=r,exports.isEnabled=a,exports.normalizeText=e,exports.orderItems=i;
1
+ var e=new Map,t=5e4;function n(n){let r=e.get(n);return r===void 0&&(r=n.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().trim(),e.size>=t&&e.clear(),e.set(n,r)),r}var r=(e,t)=>{let r=n(t);return!r||n(e.label).includes(r)},i=`\0create`;function a(e){let t=[],n=[],r=new Map;for(let i of e){if(i.kind===`create`){n.push(i);continue}let e=i.option.group;if(e===void 0||e===``)t.push(i);else{let t=r.get(e);t?t.push(i):r.set(e,[i])}}let i=[];return t.length&&i.push({group:void 0,items:t}),r.forEach((e,t)=>i.push({group:t,items:e})),n.length&&i.push({group:void 0,items:n}),i}function o(e){return a(e).flatMap(e=>e.items)}function s(e){return!!e&&(e.kind===`create`||!e.option.disabled)}function c(e,t,n,r){let i=e.length;if(i===0)return-1;let a=t;for(let o=0;o<i;o+=1){let c=a+n;if(t===-1&&o===0&&(c=n===1?0:i-1),c<0||c>=i){if(!r)return t;c=(c+i)%i}if(s(e[c]))return c;a=c}return t}exports.CREATE_KEY=i,exports.defaultComboboxFilter=r,exports.findEnabled=c,exports.groupItems=a,exports.isEnabled=s,exports.normalizeText=n,exports.orderItems=o;
@@ -23,7 +23,10 @@ export interface ComboboxOption {
23
23
  * to show the option. `inputValue` is the raw text the user typed.
24
24
  */
25
25
  export type ComboboxFilter = (option: ComboboxOption, inputValue: string) => boolean;
26
- /** Lowercases and strips diacritics, so "Jose" matches "José". */
26
+ /**
27
+ * Lowercases and strips diacritics, so "Jose" matches "José". Results are
28
+ * cached: filtering calls this for every option on every keystroke.
29
+ */
27
30
  export declare function normalizeText(text: string): string;
28
31
  /**
29
32
  * The default filter: case- and diacritic-insensitive "contains" match on the
@@ -1,12 +1,14 @@
1
- //#region src/components/forms/Combobox/comboboxUtils.ts
2
- function e(e) {
3
- return e.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().trim();
1
+ // src/components/forms/Combobox/comboboxUtils.ts
2
+ var e = /* @__PURE__ */ new Map(), t = 5e4;
3
+ function n(n) {
4
+ let r = e.get(n);
5
+ return r === void 0 && (r = n.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim(), e.size >= t && e.clear(), e.set(n, r)), r;
4
6
  }
5
- var t = (t, n) => {
6
- let r = e(n);
7
- return !r || e(t.label).includes(r);
8
- }, n = "\0create";
9
- function r(e) {
7
+ var r = (e, t) => {
8
+ let r = n(t);
9
+ return !r || n(e.label).includes(r);
10
+ }, i = "\0create";
11
+ function a(e) {
10
12
  let t = [], n = [], r = /* @__PURE__ */ new Map();
11
13
  for (let i of e) {
12
14
  if (i.kind === "create") {
@@ -32,26 +34,25 @@ function r(e) {
32
34
  items: n
33
35
  }), i;
34
36
  }
35
- function i(e) {
36
- return r(e).flatMap((e) => e.items);
37
+ function o(e) {
38
+ return a(e).flatMap((e) => e.items);
37
39
  }
38
- function a(e) {
40
+ function s(e) {
39
41
  return !!e && (e.kind === "create" || !e.option.disabled);
40
42
  }
41
- function o(e, t, n, r) {
43
+ function c(e, t, n, r) {
42
44
  let i = e.length;
43
45
  if (i === 0) return -1;
44
- let o = t;
45
- for (let s = 0; s < i; s += 1) {
46
- let c = o + n;
47
- if (t === -1 && s === 0 && (c = n === 1 ? 0 : i - 1), c < 0 || c >= i) {
46
+ let a = t;
47
+ for (let o = 0; o < i; o += 1) {
48
+ let c = a + n;
49
+ if (t === -1 && o === 0 && (c = n === 1 ? 0 : i - 1), c < 0 || c >= i) {
48
50
  if (!r) return t;
49
51
  c = (c + i) % i;
50
52
  }
51
- if (a(e[c])) return c;
52
- o = c;
53
+ if (s(e[c])) return c;
54
+ a = c;
53
55
  }
54
56
  return t;
55
57
  }
56
- //#endregion
57
- export { n as CREATE_KEY, t as defaultComboboxFilter, o as findEnabled, r as groupItems, a as isEnabled, e as normalizeText, i as orderItems };
58
+ export { i as CREATE_KEY, r as defaultComboboxFilter, c as findEnabled, a as groupItems, s as isEnabled, n as normalizeText, o as orderItems };
@@ -1 +1 @@
1
- const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),n=require("../../../utils/refs.cjs.js"),r=require("../../../utils/cx.cjs.js"),i=require("../../primitives/Button/Button.cjs.js"),a=require("../../primitives/Icon/icons.cjs.js"),o=require("./dateUtils.cjs.js"),s=require("./Calendar.module.css.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={sm:s.default.sm,md:s.default.md,lg:s.default.lg},d={sm:`sm`,md:`sm`,lg:`md`},f={start:null,end:null};function p(e){return e?.start?e.end?e.start<=e.end?[e.start,e.end]:[e.end,e.start]:[e.start,null]:[null,null]}var m=m=>{let{messages:h,locale:g}=t.useLocale(),{mode:_=`single`,value:ee,defaultValue:te,onValueChange:ne,min:v,max:y,isDateDisabled:b,locale:x=g,weekStartsOn:re,month:ie,defaultMonth:ae,onMonthChange:oe,numberOfMonths:S=1,showOutsideDays:se=S===1,size:C=`md`,today:ce,headingLevel:le=2,previousMonthLabel:ue=h.datePicker.previousMonth,nextMonthLabel:de=h.datePicker.nextMonth,className:fe,ref:w,...pe}=m,T=_===`range`,E=ce??o.todayISO(),me=(0,c.useMemo)(()=>o.getLocaleWeekStart(x),[x]),D=re??me,[O,k]=e.useControllableState({value:ee,defaultValue:te??null,onChange:ne}),A=T?null:O??null,j=T?O??f:f,[M,N]=p(j),[he,P]=e.useControllableState({value:ie,defaultValue:ae??o.toISOMonth(A??M??E),onChange:oe}),F=he.slice(0,7),I=(0,c.useMemo)(()=>Array.from({length:S},(e,t)=>o.addMonthsToMonth(F,t)),[F,S]),L=o.firstOfMonth(I[0]),R=o.lastOfMonth(I[I.length-1]),z=e=>!!e&&e>=L&&e<=R,B=(0,c.useCallback)(e=>v&&e<v||y&&e>y?!0:b?b(e,o.parseISODate(e)):!1,[v,y,b]),[V,H]=(0,c.useState)(null),[U,W]=(0,c.useState)(null),[ge,G]=(0,c.useState)(!1),K=(0,c.useMemo)(()=>{if(z(V))return V;let e=[A,M,N,E].filter(z),t=e.find(e=>!B(e));if(t)return t;if(e[0])return e[0];for(let e=L;e<=R;e=o.addDays(e,1))if(!B(e))return e;return L},[V,A,M,N,E,L,R,B]),q=(0,c.useRef)(null),_e=(0,c.useCallback)(e=>{q.current=e,n.assignRef(w,e)},[w]),J=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(!J.current)return;let e=q.current?.querySelector(`[data-date="${K}"][data-active]`);e&&(J.current=!1,e.focus({preventScroll:!1}))});let Y=e=>{let t=o.clampDate(e,v,y);H(t),t<L?P(o.toISOMonth(t)):t>R&&P(o.addMonthsToMonth(o.toISOMonth(t),-(S-1))),t!==K&&(J.current=!0)},ve=e=>{if(!B(e)){if(z(e)?H(e):Y(e),!T){k(e);return}!j.start||j.end?k({start:e,end:null}):e<j.start?k({start:e,end:j.start}):k({start:j.start,end:e}),W(null)}},ye=e=>{if(!e.target.dataset.date)return;U!==null&&W(null);let t=q.current?getComputedStyle(q.current).direction===`rtl`:!1,n=K,r=null;switch(e.key){case`ArrowLeft`:r=o.addDays(n,t?1:-1);break;case`ArrowRight`:r=o.addDays(n,t?-1:1);break;case`ArrowUp`:r=o.addDays(n,-7);break;case`ArrowDown`:r=o.addDays(n,7);break;case`Home`:r=o.startOfWeek(n,D);break;case`End`:r=o.endOfWeek(n,D);break;case`PageUp`:r=o.addMonths(n,e.shiftKey?-12:-1);break;case`PageDown`:r=o.addMonths(n,e.shiftKey?12:1);break;case`Enter`:case` `:e.preventDefault(),ve(n);return;default:return}e.preventDefault(),Y(r)},X=T&&j.start&&!j.end?U??(ge?K:null):null,Z=null,Q=null,be=`range`;M&&N&&M!==N?[Z,Q]=[M,N]:M&&X&&X!==M&&([Z,Q]=X<M?[X,M]:[M,X],be=`preview`);let xe=e=>!Z||!Q||e<Z||e>Q?null:{shape:e===Z?`start`:e===Q?`end`:`middle`,kind:be},Se=(0,c.useId)(),Ce=(0,c.useMemo)(()=>{let e=o.getFormatter(x,{weekday:`short`}),t=o.getFormatter(x,{weekday:`long`});return Array.from({length:7},(n,r)=>{let i=(D+r)%7,a=o.makeDate(2023,0,1+i);return{key:i,short:e.format(a),long:t.format(a)}})},[x,D]),we=o.getFormatter(x,{day:`numeric`}),Te=!!v&&o.lastOfMonth(o.addMonthsToMonth(F,-1))<v,Ee=!!y&&o.firstOfMonth(o.addMonthsToMonth(I[I.length-1],1))>y,De=`h${le}`,Oe=d[C],$=e=>(0,l.jsx)(i.IconButton,{variant:`ghost`,tone:`neutral`,size:Oe,"aria-label":e===`previous`?ue:de,disabled:e===`previous`?Te:Ee,className:s.default.navButton,onClick:()=>P(o.addMonthsToMonth(F,e===`previous`?-1:1)),children:e===`previous`?(0,l.jsx)(a.ChevronLeftIcon,{className:s.default.flipInRtl}):(0,l.jsx)(a.ChevronRightIcon,{className:s.default.flipInRtl})});return(0,l.jsx)(`div`,{role:`group`,...pe,ref:_e,className:r.cx(s.default.root,u[C],fe),"data-size":C,"data-mode":_,children:(0,l.jsx)(`div`,{className:s.default.months,children:I.map((e,t)=>{let n=`${Se}-heading-${t}`;return(0,l.jsxs)(`div`,{className:s.default.month,children:[(0,l.jsxs)(`div`,{className:s.default.header,children:[t===0?$(`previous`):(0,l.jsx)(`span`,{className:s.default.navSpacer}),(0,l.jsx)(De,{id:n,className:s.default.heading,"aria-live":`polite`,children:o.formatMonthYear(e,x)}),t===I.length-1?$(`next`):(0,l.jsx)(`span`,{className:s.default.navSpacer})]}),(0,l.jsxs)(`table`,{role:`grid`,"aria-labelledby":n,"aria-multiselectable":T?!0:void 0,className:s.default.grid,onKeyDown:ye,onFocus:()=>G(!0),onBlur:()=>G(!1),onPointerLeave:()=>W(null),children:[(0,l.jsx)(`thead`,{children:(0,l.jsx)(`tr`,{children:Ce.map(e=>(0,l.jsx)(`th`,{scope:`col`,abbr:e.long,className:s.default.weekday,children:e.short},e.key))})}),(0,l.jsx)(`tbody`,{children:o.monthGrid(e,D).map(t=>(0,l.jsx)(`tr`,{children:t.map(t=>{let n=o.toISOMonth(t)!==e;if(n&&!se)return(0,l.jsx)(`td`,{role:`gridcell`,className:s.default.cell},t);let i=B(t),a=!n&&t===K,c=t===E,u=!T&&t===A,d=T&&t===M,f=T&&t===N,p=T&&!!M&&!!N&&t>M&&t<N,m=u||d||f||p,h=n?null:xe(t),g=h?.kind===`preview`&&t===X;return(0,l.jsx)(`td`,{role:`gridcell`,"data-date":t,"data-active":a?``:void 0,"data-outside":n?``:void 0,"data-band":h?.shape,"data-band-kind":h?.kind,tabIndex:a?0:-1,"aria-label":o.formatFullDate(t,x),"aria-selected":n?void 0:m,"aria-current":c?`date`:void 0,"aria-disabled":i?!0:void 0,className:r.cx(s.default.cell,n&&s.default.outside,c&&s.default.today,i&&s.default.unavailable,(u||d||f)&&s.default.selected,p&&s.default.inRange,g&&s.default.previewEnd),onClick:()=>ve(t),onFocus:()=>{n||H(t)},onPointerEnter:()=>W(t),children:(0,l.jsx)(`span`,{className:s.default.day,"aria-hidden":`true`,children:we.format(o.parseISODate(t))})},t)})},t[0]))})]})]},t)})})})};exports.Calendar=m;
1
+ "use client";const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../utils/cx.cjs.js"),n=require("../../../utils/refs.cjs.js"),r=require("../../primitives/Button/Button.cjs.js"),i=require("../../primitives/Icon/icons.cjs.js"),a=require("./dateUtils.cjs.js"),o=require("./Calendar.module.css.cjs.js"),s=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js");let c=require("react"),l=require("react/jsx-runtime");var u={sm:o.default.sm,md:o.default.md,lg:o.default.lg},d={sm:`sm`,md:`sm`,lg:`md`},f={start:null,end:null};function p(e){return e?.start?e.end?e.start<=e.end?[e.start,e.end]:[e.end,e.start]:[e.start,null]:[null,null]}var m=m=>{let{messages:h,locale:g}=s.useLocale(),{mode:_=`single`,value:ee,defaultValue:te,onValueChange:ne,min:v,max:y,isDateDisabled:b,locale:x=g,weekStartsOn:re,month:ie,defaultMonth:ae,onMonthChange:oe,numberOfMonths:S=1,showOutsideDays:se=S===1,size:C=`md`,today:ce,headingLevel:le=2,previousMonthLabel:ue=h.datePicker.previousMonth,nextMonthLabel:de=h.datePicker.nextMonth,className:fe,ref:w,...pe}=m,T=_===`range`,E=ce??a.todayISO(),me=(0,c.useMemo)(()=>a.getLocaleWeekStart(x),[x]),D=re??me,[O,k]=e.useControllableState({value:ee,defaultValue:te??null,onChange:ne}),A=T?null:O??null,j=T?O??f:f,[M,N]=p(j),[he,P]=e.useControllableState({value:ie,defaultValue:ae??a.toISOMonth(A??M??E),onChange:oe}),F=he.slice(0,7),I=(0,c.useMemo)(()=>Array.from({length:S},(e,t)=>a.addMonthsToMonth(F,t)),[F,S]),L=a.firstOfMonth(I[0]),R=a.lastOfMonth(I[I.length-1]),z=e=>!!e&&e>=L&&e<=R,B=(0,c.useCallback)(e=>v&&e<v||y&&e>y?!0:b?b(e,a.parseISODate(e)):!1,[v,y,b]),[V,H]=(0,c.useState)(null),[U,W]=(0,c.useState)(null),[ge,G]=(0,c.useState)(!1),K=(0,c.useMemo)(()=>{if(z(V))return V;let e=[A,M,N,E].filter(z),t=e.find(e=>!B(e));if(t)return t;if(e[0])return e[0];for(let e=L;e<=R;e=a.addDays(e,1))if(!B(e))return e;return L},[V,A,M,N,E,L,R,B]),q=(0,c.useRef)(null),_e=(0,c.useCallback)(e=>{q.current=e,n.assignRef(w,e)},[w]),J=(0,c.useRef)(!1);(0,c.useEffect)(()=>{if(!J.current)return;let e=q.current?.querySelector(`[data-date="${K}"][data-active]`);e&&(J.current=!1,e.focus({preventScroll:!1}))});let Y=e=>{let t=a.clampDate(e,v,y);H(t),t<L?P(a.toISOMonth(t)):t>R&&P(a.addMonthsToMonth(a.toISOMonth(t),-(S-1))),t!==K&&(J.current=!0)},ve=e=>{B(e)||(z(e)?H(e):Y(e),T?(!j.start||j.end?k({start:e,end:null}):e<j.start?k({start:e,end:j.start}):k({start:j.start,end:e}),W(null)):k(e))},ye=e=>{if(!e.target.dataset.date)return;U!==null&&W(null);let t=q.current?getComputedStyle(q.current).direction===`rtl`:!1,n=K,r=null;switch(e.key){case`ArrowLeft`:r=a.addDays(n,t?1:-1);break;case`ArrowRight`:r=a.addDays(n,t?-1:1);break;case`ArrowUp`:r=a.addDays(n,-7);break;case`ArrowDown`:r=a.addDays(n,7);break;case`Home`:r=a.startOfWeek(n,D);break;case`End`:r=a.endOfWeek(n,D);break;case`PageUp`:r=a.addMonths(n,e.shiftKey?-12:-1);break;case`PageDown`:r=a.addMonths(n,e.shiftKey?12:1);break;case`Enter`:case` `:e.preventDefault(),ve(n);return;default:return}e.preventDefault(),Y(r)},X=T&&j.start&&!j.end?U??(ge?K:null):null,Z=null,Q=null,be=`range`;M&&N&&M!==N?[Z,Q]=[M,N]:M&&X&&X!==M&&([Z,Q]=X<M?[X,M]:[M,X],be=`preview`);let xe=e=>!Z||!Q||e<Z||e>Q?null:{shape:e===Z?`start`:e===Q?`end`:`middle`,kind:be},Se=(0,c.useId)(),Ce=(0,c.useMemo)(()=>{let e=a.getFormatter(x,{weekday:`short`}),t=a.getFormatter(x,{weekday:`long`});return Array.from({length:7},(n,r)=>{let i=(D+r)%7,o=a.makeDate(2023,0,1+i);return{key:i,short:e.format(o),long:t.format(o)}})},[x,D]),we=a.getFormatter(x,{day:`numeric`}),Te=!!v&&a.lastOfMonth(a.addMonthsToMonth(F,-1))<v,Ee=!!y&&a.firstOfMonth(a.addMonthsToMonth(I[I.length-1],1))>y,De=`h${le}`,Oe=d[C],$=e=>(0,l.jsx)(r.IconButton,{variant:`ghost`,tone:`neutral`,size:Oe,"aria-label":e===`previous`?ue:de,disabled:e===`previous`?Te:Ee,className:o.default.navButton,onClick:()=>P(a.addMonthsToMonth(F,e===`previous`?-1:1)),children:e===`previous`?(0,l.jsx)(i.ChevronLeftIcon,{className:o.default.flipInRtl}):(0,l.jsx)(i.ChevronRightIcon,{className:o.default.flipInRtl})});return(0,l.jsx)(`div`,{role:`group`,...pe,ref:_e,className:t.cx(o.default.root,u[C],fe),"data-size":C,"data-mode":_,children:(0,l.jsx)(`div`,{className:o.default.months,children:I.map((e,n)=>{let r=`${Se}-heading-${n}`;return(0,l.jsxs)(`div`,{className:o.default.month,children:[(0,l.jsxs)(`div`,{className:o.default.header,children:[n===0?$(`previous`):(0,l.jsx)(`span`,{className:o.default.navSpacer}),(0,l.jsx)(De,{id:r,className:o.default.heading,"aria-live":`polite`,children:a.formatMonthYear(e,x)}),n===I.length-1?$(`next`):(0,l.jsx)(`span`,{className:o.default.navSpacer})]}),(0,l.jsxs)(`table`,{role:`grid`,"aria-labelledby":r,"aria-multiselectable":T?!0:void 0,className:o.default.grid,onKeyDown:ye,onFocus:()=>G(!0),onBlur:()=>G(!1),onPointerLeave:()=>W(null),children:[(0,l.jsx)(`thead`,{children:(0,l.jsx)(`tr`,{children:Ce.map(e=>(0,l.jsx)(`th`,{scope:`col`,abbr:e.long,className:o.default.weekday,children:e.short},e.key))})}),(0,l.jsx)(`tbody`,{children:a.monthGrid(e,D).map(n=>(0,l.jsx)(`tr`,{children:n.map(n=>{let r=a.toISOMonth(n)!==e;if(r&&!se)return(0,l.jsx)(`td`,{role:`gridcell`,className:o.default.cell},n);let i=B(n),s=!r&&n===K,c=n===E,u=!T&&n===A,d=T&&n===M,f=T&&n===N,p=T&&!!M&&!!N&&n>M&&n<N,m=u||d||f||p,h=r?null:xe(n),g=h?.kind===`preview`&&n===X;return(0,l.jsx)(`td`,{role:`gridcell`,"data-date":n,"data-active":s?``:void 0,"data-outside":r?``:void 0,"data-band":h?.shape,"data-band-kind":h?.kind,tabIndex:s?0:-1,"aria-label":a.formatFullDate(n,x),"aria-selected":r?void 0:m,"aria-current":c?`date`:void 0,"aria-disabled":i?!0:void 0,className:t.cx(o.default.cell,r&&o.default.outside,c&&o.default.today,i&&o.default.unavailable,(u||d||f)&&o.default.selected,p&&o.default.inRange,g&&o.default.previewEnd),onClick:()=>ve(n),onFocus:()=>{r||H(n)},onPointerEnter:()=>W(n),children:(0,l.jsx)(`span`,{className:o.default.day,"aria-hidden":`true`,children:we.format(a.parseISODate(n))})},n)})},n[0]))})]})]},n)})})})};exports.Calendar=m;