@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/useControllableState.cjs.js"),t=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),n=require("../../../hooks/useMergedRef.cjs.js"),r=require("../../../utils/cx.cjs.js"),i=require("../../../utils/announce.cjs.js"),a=require("../../feedback/Spinner/Spinner.cjs.js"),o=require("../../primitives/Icon/icons.cjs.js"),s=require("../../layout/ScrollArea/ScrollArea.cjs.js"),c=require("../../forms/CheckBox/CheckBox.cjs.js"),ee=require("../../navigation/Pagination/Pagination.cjs.js"),l=require("./dataGridUtils.cjs.js"),u=require("./DataGrid.module.css.cjs.js");let d=require("react"),f=require("react/jsx-runtime");var te={compact:u.default.compact,comfortable:u.default.comfortable,spacious:u.default.spacious},ne={plain:u.default.plain,striped:u.default.striped,outline:u.default.outline},re={start:u.default.alignStart,center:u.default.alignCenter,end:u.default.alignEnd},ie=10,ae=`a[href],button:not([disabled]),input:not([disabled]):not([type='hidden']),select:not([disabled]),textarea:not([disabled]),[contenteditable='true'],[data-grid-widget]`,p=e=>Array.from(e.querySelectorAll(ae));function m(e){return e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement?!0:e instanceof HTMLInputElement?![`checkbox`,`radio`,`button`,`submit`,`reset`,`color`,`file`,`image`].includes(e.type):e.getAttribute(`contenteditable`)===`true`}function h(e){let t=p(e).filter(e=>!e.hasAttribute(`data-grid-secondary`));return t.length===1&&!m(t[0])?t[0]:e}var oe=e=>{let[t,n]=(e.getAttribute(`data-cell`)??`0:0`).split(`:`).map(Number);return[t,n]},se=e=>typeof e==`number`?`${e}px`:e,ce=e=>e.id;function g({rows:m,columns:g,getRowId:_=ce,getRowLabel:le,"aria-label":v,"aria-labelledby":y,"aria-describedby":ue,sort:de,defaultSort:fe,onSortChange:pe,multiSort:me=!0,filter:b=``,selectionMode:x=`none`,selected:he,defaultSelected:ge,onSelectedChange:_e,isRowSelectable:ve,pageSize:S,page:ye,defaultPage:be=1,onPageChange:xe,manual:C=!1,rowCount:Se,onRowActivate:w,loading:T=!1,emptyState:Ce,density:we=`comfortable`,variant:Te=`outline`,hoverable:Ee=!0,stickyHeader:De=!0,maxHeight:Oe,layout:ke=`auto`,tableStyle:Ae,className:je,style:Me,ref:Ne}){let{messages:E,locale:D}=t.useLocale(),O=E.dataGrid,k=(0,d.useRef)(null),Pe=(0,d.useId)(),Fe=`${Pe}-pages`,Ie=`${Pe}-name`,Le=n.useMergedRef(k,Ne),[A,Re]=e.useControllableState({value:de,defaultValue:fe??[],onChange:pe}),[j,M]=e.useControllableState({value:he,defaultValue:ge??[],onChange:_e}),[ze,N]=e.useControllableState({value:ye,defaultValue:be,onChange:xe}),P=(0,d.useMemo)(()=>C?m.slice():l.sortRows(l.filterRows(m,b,g),A,g,D),[C,m,b,g,A,D]),F=C?Se??m.length:P.length,I=S?Math.max(1,Math.ceil(F/S)):1,L=Math.min(Math.max(1,ze),I),R=S&&!C?(L-1)*S:0,z=S&&!C?P.slice(R,R+S):P,B=S?(L-1)*S:0,V=`${b}|${JSON.stringify(A)}`,Be=(0,d.useRef)(V);(0,d.useEffect)(()=>{Be.current!==V&&(Be.current=V,S&&L!==1&&N(1))},[V,S,L,N]);let Ve=(0,d.useRef)(b);(0,d.useEffect)(()=>{if(Ve.current===b)return;let e=window.setTimeout(()=>{Ve.current=b,i.announce(F===0?O.noResults:O.rowCount(F))},600);return()=>window.clearTimeout(e)},[b,F,O]);let H=x===`multiple`,U=x!==`none`,W=+!!H,G=g.length+W,He=g.find(e=>e.rowHeader)??g[0],Ue=e=>le?.(e)??String((He&&l.getCellValue(e,He))??_(e)),We=e=>e.headerLabel??(typeof e.header==`string`?e.header:e.key),K=(0,d.useMemo)(()=>new Set(j),[j]),Ge=e=>ve?.(e)??!0,q=(0,d.useMemo)(()=>P.filter(e=>ve?.(e)??!0).map(_),[P,ve,_]),J=q.filter(e=>K.has(e)).length,Ke=q.length>0&&J===q.length,qe=J>0&&!Ke,Je=(0,d.useRef)(null),Y=(0,d.useRef)(!1),Ye=(e,t,n)=>{let r=z[e];if(!r||!Ge(r))return;let i=_(r);if(x===`single`){M(K.has(i)&&n!==!0?[]:[i]),Je.current=e;return}let a=n??!K.has(i),o=Je.current,s=[i];if(t&&o!==null&&o!==e){let[t,n]=o<e?[o,e]:[e,o];s=z.slice(t,n+1).filter(Ge).map(_)}let c=new Set(j);for(let e of s)a?c.add(e):c.delete(e);Je.current=e,M(Array.from(c))},Xe=e=>{let t=new Set(j);for(let n of q)e?t.add(n):t.delete(n);M(Array.from(t))},Ze=(e,t)=>{let n=A.find(t=>t.key===e.key),r=n?n.direction===`ascending`?`descending`:null:`ascending`,a;a=t&&me?n?r?A.map(t=>t.key===e.key?{key:t.key,direction:r}:t):A.filter(t=>t.key!==e.key):[...A,{key:e.key,direction:`ascending`}]:r?[{key:e.key,direction:r}]:[],Re(a),i.announce(r?O.sorted(We(e),r===`ascending`?O.ascending:O.descending):O.sortCleared)},Qe=z.length,[$e,et]=(0,d.useState)({r:0,c:0}),X=Math.min($e.r,Qe),Z=Math.min($e.c,G-1),[tt,Q]=(0,d.useState)(!1),[nt,rt]=(0,d.useState)(0),it=(e,t)=>k.current?.querySelector(`[data-cell="${e}:${t}"]`)??null;(0,d.useLayoutEffect)(()=>{let e=k.current;if(!e)return;for(let t of e.querySelectorAll(`[data-cell]`)){t.tabIndex=-1;for(let e of p(t))e.tabIndex=-1}let t=it(X,Z);if(t){if(tt)for(let e of p(t))e.tabIndex=0;else h(t).tabIndex=0}}),(0,d.useLayoutEffect)(()=>{if(nt===0)return;let e=it(X,Z);if(!e)return;let t=h(e);t.focus({preventScroll:!0}),(t===e?e:t).scrollIntoView?.({block:`nearest`,inline:`nearest`})},[nt]);let $=(e,t)=>{Q(!1),et({r:Math.max(0,Math.min(e,Qe)),c:Math.max(0,Math.min(t,G-1))}),rt(e=>e+1)},at=e=>{let t=e.target,n=t.closest(`[data-cell]`);if(!n||!k.current?.contains(n))return;let[r,i]=oe(n);(r!==X||i!==Z)&&et({r,c:i}),Q(t!==n&&t!==h(n))},ot=e=>{let t=e.relatedTarget;(!t||!k.current?.contains(t))&&Q(!1)},st=e=>{if(Y.current=e.shiftKey,e.defaultPrevented||e.nativeEvent.isComposing)return;let t=e.target,n=t.closest(`[data-cell]`);if(!n||!k.current?.contains(n))return;let[r,i]=oe(n);if(tt||t!==n&&t!==h(n)){if(e.key===`Escape`)e.preventDefault(),Q(!1),n.focus();else if(e.key===`Tab`){let r=p(n);if(r.length===0)return;e.preventDefault(),r[(r.indexOf(t)+(e.shiftKey?-1:1)+r.length)%r.length].focus()}return}let a=getComputedStyle(n).direction===`rtl`,o=e.ctrlKey||e.metaKey,s=r>0?z[r-1]:void 0;switch(e.key){case`ArrowDown`:e.preventDefault(),$(r+1,i);return;case`ArrowUp`:e.preventDefault(),$(r-1,i);return;case`ArrowRight`:e.preventDefault(),$(r,a?i-1:i+1);return;case`ArrowLeft`:e.preventDefault(),$(r,a?i+1:i-1);return;case`Home`:e.preventDefault(),$(o?0:r,0);return;case`End`:e.preventDefault(),$(o?Qe:r,G-1);return;case`PageDown`:e.preventDefault(),$(Math.max(1,r+ie),i);return;case`PageUp`:e.preventDefault(),$(Math.max(+(r>0),r-ie),i);return;case`Enter`:case`F2`:{let r=p(n);r.length>0&&(t===n||e.key===`F2`)?(e.preventDefault(),Q(!0),r[0].focus()):e.key===`Enter`&&t===n&&s&&w&&(e.preventDefault(),w(s));return}case` `:s&&U&&t===n&&(e.preventDefault(),Ye(r-1,e.shiftKey));return;default:o&&e.key.toLowerCase()===`a`&&H&&(e.preventDefault(),Xe(!Ke))}},ct=(0,d.useMemo)(()=>new Intl.NumberFormat(D),[D]),lt=(0,d.useMemo)(()=>new Intl.DateTimeFormat(D,{dateStyle:`medium`}),[D]),ut=e=>e==null?``:typeof e==`number`?ct.format(e):e instanceof Date?lt.format(e):String(e),dt=(e,t)=>{if(e.target.closest(ae))return;let n=z[t];x===`single`&&Ye(t,!1,!0),n&&w&&w(n)},ft=A[0],pt=!C&&b.trim()!==``,mt=!!S||H&&J>0,ht=F===0?0:B+1,gt=Math.min(F,B+z.length);return(0,f.jsxs)(`div`,{className:r.cx(u.default.frame,ne[Te],te[we],Ee&&u.default.hoverable,De&&u.default.sticky,je),style:Me,children:[(0,f.jsx)(s.ScrollArea,{scrollbars:`both`,maxHeight:Oe,shadows:!1,tabIndex:-1,className:u.default.scroll,children:(0,f.jsxs)(`table`,{ref:Le,role:`grid`,className:r.cx(u.default.table,ke===`fixed`&&u.default.fixed),style:Ae,"aria-label":v,"aria-labelledby":y,"aria-describedby":ue,"aria-rowcount":F+1,"aria-colcount":G,"aria-multiselectable":H||void 0,"aria-busy":T||void 0,onKeyDown:st,onFocus:at,onBlur:ot,onPointerDown:e=>{Y.current=e.shiftKey},children:[(0,f.jsx)(`thead`,{className:u.default.head,children:(0,f.jsxs)(`tr`,{"aria-rowindex":1,children:[H&&(0,f.jsx)(`th`,{role:`columnheader`,"data-cell":`0:0`,"data-select-column":``,"aria-colindex":1,className:r.cx(u.default.cell,u.default.selectCell),children:(0,f.jsx)(c.CheckBox,{checked:Ke,indeterminate:qe,disabled:q.length===0,onCheckedChange:e=>Xe(qe?!0:e),"aria-label":E.table.selectAll})}),g.map((e,t)=>{let n=t+W,i=A.findIndex(t=>t.key===e.key),a=i>=0?A[i].direction:null,s=a===`ascending`?o.ArrowUpIcon:a===`descending`?o.ArrowDownIcon:o.SortIcon,c=e.align??(e.numeric?`end`:`start`);return(0,f.jsxs)(`th`,{role:`columnheader`,"data-cell":`0:${n}`,"aria-colindex":n+1,scope:`col`,"aria-sort":ft?.key===e.key?ft.direction:void 0,"data-sorted":a??void 0,className:r.cx(u.default.cell,u.default.headerCell,e.sortable&&u.default.sortableCell,re[c],e.numeric&&u.default.numeric,e.headerEnd!=null&&u.default.hasHeaderEnd,e.className),style:{inlineSize:se(e.width),minInlineSize:se(e.minWidth),...e.style},children:[e.sortable?(0,f.jsxs)(`button`,{type:`button`,className:u.default.sortButton,onClick:t=>Ze(e,t.shiftKey||Y.current),children:[(0,f.jsx)(`span`,{className:u.default.sortLabel,children:e.header}),(0,f.jsxs)(`span`,{className:u.default.sortIcon,"aria-hidden":`true`,children:[(0,f.jsx)(s,{size:`sm`,strokeWidth:2.5}),A.length>1&&i>=0&&(0,f.jsx)(`span`,{className:u.default.sortPriority,children:i+1})]})]}):e.header,e.headerEnd]},e.key)})]})}),(0,f.jsx)(`tbody`,{className:u.default.body,children:z.length===0?(0,f.jsx)(`tr`,{className:u.default.emptyRow,children:(0,f.jsx)(`td`,{role:`gridcell`,colSpan:G,className:r.cx(u.default.cell,u.default.emptyCell),children:T?(0,f.jsxs)(`span`,{className:u.default.loadingInline,children:[(0,f.jsx)(a.Spinner,{size:`sm`,decorative:!0}),E.table.loading]}):Ce??(pt?O.noResults:O.empty)})}):z.map((e,t)=>{let n=_(e),i=t+1,a=K.has(n),o=Ge(e);return(0,f.jsxs)(`tr`,{"aria-rowindex":B+t+2,"aria-selected":U?a:void 0,"aria-disabled":U&&!o?!0:void 0,"data-selected":a||void 0,className:r.cx(u.default.row,(w||x===`single`)&&u.default.clickable),onClick:e=>dt(e,t),children:[H&&(0,f.jsx)(`td`,{role:`gridcell`,"data-cell":`${i}:0`,"data-select-column":``,"aria-colindex":1,className:r.cx(u.default.cell,u.default.selectCell),children:(0,f.jsx)(c.CheckBox,{checked:a,disabled:!o,onCheckedChange:e=>Ye(t,Y.current,e),"aria-label":E.table.selectRowNamed(Ue(e))})}),g.map((n,o)=>{let s=o+W,c=l.getCellValue(e,n),ee=n.cell?n.cell(e,{value:c,rowIndex:R+t,selected:a}):ut(c),d=n.align??(n.numeric?`end`:`start`),te=n.rowHeader?`th`:`td`;return(0,f.jsx)(te,{role:n.rowHeader?`rowheader`:`gridcell`,"data-cell":`${i}:${s}`,"aria-colindex":s+1,scope:n.rowHeader?`row`:void 0,className:r.cx(u.default.cell,n.rowHeader&&u.default.rowHeader,re[d],n.numeric&&u.default.numeric,n.className),style:n.style,children:ee},n.key)})]},n)})})]})}),T&&z.length>0&&(0,f.jsx)(`div`,{className:u.default.loadingOverlay,children:(0,f.jsx)(a.Spinner,{label:E.table.loading})}),(0,f.jsx)(`span`,{hidden:!0,id:Fe,children:E.pagination.nav}),v&&!y&&(0,f.jsx)(`span`,{hidden:!0,id:Ie,children:v}),mt&&(0,f.jsxs)(`div`,{className:u.default.footer,children:[(0,f.jsx)(`span`,{role:`status`,className:u.default.status,children:H&&J>0?O.selectedCount(J):null}),S?(0,f.jsxs)(`div`,{className:u.default.paging,children:[(0,f.jsx)(`span`,{className:u.default.range,children:O.range(ht,gt,F)}),I>1&&(0,f.jsx)(ee.Pagination,{size:`sm`,compact:!0,pageCount:I,page:L,onPageChange:N,"aria-labelledby":`${Fe} ${y??Ie}`})]}):null]})]})}exports.DataGrid=g,exports.compareValues=l.compareValues,exports.filterRows=l.filterRows,exports.getCellValue=l.getCellValue,exports.sortRows=l.sortRows;
1
+ "use client";const e=require("../../../hooks/useControllableState.cjs.js"),t=require("../../../hooks/useMergedRef.cjs.js"),n=require("../../../hooks/useVirtualizer.cjs.js"),r=require("../../../utils/cx.cjs.js"),i=require("../../../utils/announce.cjs.js"),a=require("../../forms/CheckBox/CheckBox.cjs.js"),o=require("../../feedback/Spinner/Spinner.cjs.js"),s=require("../../layout/ScrollArea/ScrollArea.cjs.js"),c=require("../../navigation/Pagination/Pagination.cjs.js"),l=require("../../primitives/Icon/icons.cjs.js"),u=require("../../utilities/LocaleProvider/LocaleProvider.cjs.js"),d=require("./dataGridUtils.cjs.js"),f=require("./DataGrid.module.css.cjs.js");let p=require("react"),m=require("react/jsx-runtime");var ee={compact:f.default.compact,comfortable:f.default.comfortable,spacious:f.default.spacious},te={plain:f.default.plain,striped:f.default.striped,outline:f.default.outline},ne={start:f.default.alignStart,center:f.default.alignCenter,end:f.default.alignEnd},re=10,ie=100,ae=2e3,oe={compact:37,comfortable:49,spacious:65},se=`a[href],button:not([disabled]),input:not([disabled]):not([type='hidden']),select:not([disabled]),textarea:not([disabled]),[contenteditable='true'],[data-grid-widget]`,h=e=>Array.from(e.querySelectorAll(se)),ce=`[data-cell], [data-cell] :is(${se})`;function g(e){return e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement?!0:e instanceof HTMLInputElement?![`checkbox`,`radio`,`button`,`submit`,`reset`,`color`,`file`,`image`].includes(e.type):e.getAttribute(`contenteditable`)===`true`}function _(e){let t=h(e).filter(e=>!e.hasAttribute(`data-grid-secondary`));return t.length===1&&!g(t[0])?t[0]:e}var le=e=>{let[t,n]=(e.getAttribute(`data-cell`)??`0:0`).split(`:`).map(Number);return[t,n]},ue=e=>typeof e==`number`?`${e}px`:e,de=e=>e.id;function v({rows:g,columns:v,getRowId:y=de,getRowLabel:fe,"aria-label":pe,"aria-labelledby":me,"aria-describedby":he,sort:ge,defaultSort:_e,onSortChange:ve,multiSort:ye=!0,filter:be,selectionMode:b=`none`,selected:xe,defaultSelected:Se,onSelectedChange:Ce,isRowSelectable:x,pageSize:S,virtualize:we=`auto`,page:Te,defaultPage:Ee=1,onPageChange:De,manual:C=!1,rowCount:Oe,onRowActivate:w,loading:T=!1,emptyState:ke,density:Ae=`comfortable`,variant:je=`outline`,hoverable:Me=!0,stickyHeader:Ne=!0,maxHeight:Pe,layout:Fe,tableStyle:Ie,className:Le,style:Re,ref:ze}){let{messages:E,locale:D}=u.useLocale(),O=E.dataGrid,k=(0,p.useRef)(null),Be=(0,p.useId)(),Ve=`${Be}-pages`,He=`${Be}-name`,Ue=t.useMergedRef(k,ze),[A,We]=e.useControllableState({value:ge,defaultValue:_e??[],onChange:ve}),[j,Ge]=e.useControllableState({value:xe,defaultValue:Se??[],onChange:Ce}),[Ke,qe]=e.useControllableState({value:Te,defaultValue:Ee,onChange:De}),M=(0,p.useMemo)(()=>C?null:d.sortIndices(g,A,v,D),[C,g,A,v,D]),N=(0,p.useMemo)(()=>d.createSearchIndex(g,v),[g,v]),P=be??``,Je=(0,p.useDeferredValue)(P),Ye=be!==void 0&&!C;(0,p.useEffect)(()=>{if(!Ye||g.length<ae||typeof window>`u`)return;let e=window.requestIdleCallback??(e=>window.setTimeout(()=>e({didTimeout:!1,timeRemaining:()=>8}),50)),t=window.cancelIdleCallback??window.clearTimeout,n=0,r=0,i=t=>{for(;n<g.length&&t.timeRemaining()>2;)for(let e=Math.min(g.length,n+1e3);n<e;n++)N.text(n);n<g.length&&(r=e(i))};return r=e(i),()=>t(r)},[Ye,g,N]);let F=(0,p.useMemo)(()=>{if(C||!M)return g;let e=d.searchWords(Je);if(e.length===0)return M.map(e=>g[e]);let t=[];for(let n of M)d.matchesWords(N.text(n),e)&&t.push(g[n]);return t},[C,M,g,Je,N]),I=C?Oe??g.length:F.length,Xe=S?Math.max(1,Math.ceil(I/S)):1,L=Math.min(Math.max(1,Ke),Xe),Ze=S&&!C?(L-1)*S:0,R=S&&!C?F.slice(Ze,Ze+S):F,z=S?(L-1)*S:0,B=we===`auto`?R.length>ie:we,Qe=(0,p.useRef)(null),$e=(0,p.useRef)(null),[et,tt]=(0,p.useState)(0);(0,p.useLayoutEffect)(()=>{let e=$e.current;if(!B||!e)return;let t=()=>tt(e.offsetHeight);if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[B]);let V=n.useVirtualizer({count:B?R.length:0,scrollElement:Qe,estimateSize:oe[Ae],paddingStart:et,overscan:10,initialCount:30}),nt=Pe??(B?`70vh`:void 0),rt=Fe??(B?`fixed`:`auto`),H=`${P}|${JSON.stringify(A)}`,it=(0,p.useRef)(H);(0,p.useEffect)(()=>{it.current!==H&&(it.current=H,S&&L!==1&&qe(1))},[H,S,L,qe]);let at=(0,p.useRef)(P);(0,p.useEffect)(()=>{if(at.current===P)return;let e=window.setTimeout(()=>{at.current=P,i.announce(I===0?O.noResults:O.rowCount(I))},600);return()=>window.clearTimeout(e)},[P,I,O]);let U=b===`multiple`,ot=b!==`none`,st=+!!U,W=v.length+st,ct=v.find(e=>e.rowHeader)??v[0],lt=e=>fe?.(e)??String((ct&&d.getCellValue(e,ct))??y(e)),ut=e=>e.headerLabel??(typeof e.header==`string`?e.header:e.key),G=(0,p.useMemo)(()=>new Set(j),[j]),dt=e=>x?.(e)??!0,K=(0,p.useMemo)(()=>F.filter(e=>x?.(e)??!0).map(y),[F,x,y]),q=(0,p.useMemo)(()=>{let e=0;for(let t of K)G.has(t)&&e++;return e},[K,G]),ft=K.length>0&&q===K.length,pt=q>0&&!ft,mt=(0,p.useRef)(null),J=(0,p.useRef)(!1),ht=(e,t,n)=>{let r=R[e];if(!r||!dt(r))return;let i=y(r);if(b===`single`){Ge(G.has(i)&&n!==!0?[]:[i]),mt.current=e;return}let a=n??!G.has(i),o=mt.current,s=[i];if(t&&o!==null&&o!==e){let[t,n]=o<e?[o,e]:[e,o];s=R.slice(t,n+1).filter(dt).map(y)}let c=new Set(j);for(let e of s)a?c.add(e):c.delete(e);mt.current=e,Ge(Array.from(c))},gt=e=>{let t=new Set(j);for(let n of K)e?t.add(n):t.delete(n);Ge(Array.from(t))},_t=(e,t)=>{let n=A.find(t=>t.key===e.key),r=n?n.direction===`ascending`?`descending`:null:`ascending`,a;a=t&&ye?n?r?A.map(t=>t.key===e.key?{key:t.key,direction:r}:t):A.filter(t=>t.key!==e.key):[...A,{key:e.key,direction:`ascending`}]:r?[{key:e.key,direction:r}]:[],We(a),i.announce(r?O.sorted(ut(e),r===`ascending`?O.ascending:O.descending):O.sortCleared)},vt=R.length,[yt,bt]=(0,p.useState)({r:0,c:0}),Y=Math.min(yt.r,vt),X=Math.min(yt.c,W-1),[xt,Z]=(0,p.useState)(!1),[St,Ct]=(0,p.useState)(0),wt=(e,t)=>k.current?.querySelector(`[data-cell="${e}:${t}"]`)??null;(0,p.useLayoutEffect)(()=>{let e=k.current;if(!e)return;let t=wt(Y,X);!t&&Y>0&&(t=e.querySelector(`tbody [data-cell$=":${X}"]`));let n=new Set;if(t){if(xt)for(let e of h(t))n.add(e);else n.add(_(t))}for(let t of e.querySelectorAll(ce)){let e=n.has(t)?`0`:`-1`;t.getAttribute(`tabindex`)!==e&&t.setAttribute(`tabindex`,e)}});let Tt=(0,p.useRef)(!1),Et=()=>{let e=wt(Y,X);if(!e)return!1;let t=_(e);return t.focus({preventScroll:!0}),(t===e?e:t).scrollIntoView?.({block:`nearest`,inline:`nearest`}),!0};(0,p.useLayoutEffect)(()=>{St!==0&&(Tt.current=!Et())},[St]),(0,p.useLayoutEffect)(()=>{Tt.current&&(Et()?Tt.current=!1:B&&Y>0&&V.scrollToIndex(Y-1))});let Q=(e,t)=>{let n=Math.max(0,Math.min(e,vt));Z(!1),bt({r:n,c:Math.max(0,Math.min(t,W-1))}),B&&n>0&&V.scrollToIndex(n-1),Ct(e=>e+1)},Dt=e=>{let t=e.target,n=t.closest(`[data-cell]`);if(!n||!k.current?.contains(n))return;let[r,i]=le(n);(r!==Y||i!==X)&&bt({r,c:i}),Z(t!==n&&t!==_(n))},Ot=e=>{let t=e.relatedTarget;t&&k.current?.contains(t)||Z(!1)},kt=e=>{if(J.current=e.shiftKey,e.defaultPrevented||e.nativeEvent.isComposing)return;let t=e.target,n=t.closest(`[data-cell]`);if(!n||!k.current?.contains(n))return;let[r,i]=le(n);if(xt||t!==n&&t!==_(n)){if(e.key===`Escape`)e.preventDefault(),Z(!1),n.focus();else if(e.key===`Tab`){let r=h(n);if(r.length===0)return;e.preventDefault(),r[(r.indexOf(t)+(e.shiftKey?-1:1)+r.length)%r.length].focus()}return}let a=getComputedStyle(n).direction===`rtl`,o=e.ctrlKey||e.metaKey,s=r>0?R[r-1]:void 0;switch(e.key){case`ArrowDown`:e.preventDefault(),Q(r+1,i);return;case`ArrowUp`:e.preventDefault(),Q(r-1,i);return;case`ArrowRight`:e.preventDefault(),Q(r,a?i-1:i+1);return;case`ArrowLeft`:e.preventDefault(),Q(r,a?i+1:i-1);return;case`Home`:e.preventDefault(),Q(o?0:r,0);return;case`End`:e.preventDefault(),Q(o?vt:r,W-1);return;case`PageDown`:e.preventDefault(),Q(Math.max(1,r+re),i);return;case`PageUp`:e.preventDefault(),Q(Math.max(+(r>0),r-re),i);return;case`Enter`:case`F2`:{let r=h(n);r.length>0&&(t===n||e.key===`F2`)?(e.preventDefault(),Z(!0),r[0].focus()):e.key===`Enter`&&t===n&&s&&w&&(e.preventDefault(),w(s));return}case` `:s&&ot&&t===n&&(e.preventDefault(),ht(r-1,e.shiftKey));return;default:o&&e.key.toLowerCase()===`a`&&U&&(e.preventDefault(),gt(!ft))}},At=(0,p.useMemo)(()=>new Intl.NumberFormat(D),[D]),jt=(0,p.useMemo)(()=>new Intl.DateTimeFormat(D,{dateStyle:`medium`}),[D]),Mt=e=>e==null?``:typeof e==`number`?At.format(e):e instanceof Date?jt.format(e):String(e),Nt=(e,t)=>{if(e.target.closest(se))return;let n=R[t];b===`single`&&ht(t,!1,!0),n&&w&&w(n)},$=B?n.withExtraItems(V,Y>0?[Y-1]:[]):R.map((e,t)=>({index:t,start:0,end:0,size:0})),Pt=$[$.length-1],Ft=B&&Pt?V.totalSize-Pt.end:0,It=A[0],Lt=!C&&Je.trim()!==``,Rt=!!S||U&&q>0,zt=I===0?0:z+1,Bt=Math.min(I,z+R.length);return(0,m.jsxs)(`div`,{className:r.cx(f.default.frame,te[je],ee[Ae],Me&&f.default.hoverable,Ne&&f.default.sticky,Le),style:B?{...Re,"--_head-h":`${et}px`}:Re,children:[(0,m.jsx)(s.ScrollArea,{scrollbars:`both`,maxHeight:nt,shadows:!1,tabIndex:-1,className:f.default.scroll,viewportRef:Qe,viewportClassName:B?f.default.virtualViewport:void 0,children:(0,m.jsxs)(`table`,{ref:Ue,role:`grid`,className:r.cx(f.default.table,rt===`fixed`&&f.default.fixed),style:Ie,"aria-label":pe,"aria-labelledby":me,"aria-describedby":he,"aria-rowcount":I+1,"aria-colcount":W,"aria-multiselectable":U||void 0,"aria-busy":T||void 0,onKeyDown:kt,onFocus:Dt,onBlur:Ot,onPointerDown:e=>{J.current=e.shiftKey},children:[(0,m.jsx)(`thead`,{ref:$e,className:f.default.head,children:(0,m.jsxs)(`tr`,{"aria-rowindex":1,children:[U&&(0,m.jsx)(`th`,{role:`columnheader`,"data-cell":`0:0`,"data-select-column":``,"aria-colindex":1,className:r.cx(f.default.cell,f.default.selectCell),children:(0,m.jsx)(a.CheckBox,{checked:ft,indeterminate:pt,disabled:K.length===0,onCheckedChange:e=>gt(pt?!0:e),"aria-label":E.table.selectAll})}),v.map((e,t)=>{let n=t+st,i=A.findIndex(t=>t.key===e.key),a=i>=0?A[i].direction:null,o=a===`ascending`?l.ArrowUpIcon:a===`descending`?l.ArrowDownIcon:l.SortIcon,s=e.align??(e.numeric?`end`:`start`);return(0,m.jsxs)(`th`,{role:`columnheader`,"data-cell":`0:${n}`,"aria-colindex":n+1,scope:`col`,"aria-sort":It?.key===e.key?It.direction:void 0,"data-sorted":a??void 0,className:r.cx(f.default.cell,f.default.headerCell,e.sortable&&f.default.sortableCell,ne[s],e.numeric&&f.default.numeric,e.headerEnd!=null&&f.default.hasHeaderEnd,e.className),style:{inlineSize:ue(e.width),minInlineSize:ue(e.minWidth),...e.style},children:[e.sortable?(0,m.jsxs)(`button`,{type:`button`,className:f.default.sortButton,onClick:t=>_t(e,t.shiftKey||J.current),children:[(0,m.jsx)(`span`,{className:f.default.sortLabel,children:e.header}),(0,m.jsxs)(`span`,{className:f.default.sortIcon,"aria-hidden":`true`,children:[(0,m.jsx)(o,{size:`sm`,strokeWidth:2.5}),A.length>1&&i>=0&&(0,m.jsx)(`span`,{className:f.default.sortPriority,children:i+1})]})]}):e.header,e.headerEnd]},e.key)})]})}),(0,m.jsx)(`tbody`,{className:f.default.body,children:R.length===0?(0,m.jsx)(`tr`,{className:f.default.emptyRow,children:(0,m.jsx)(`td`,{role:`gridcell`,colSpan:W,className:r.cx(f.default.cell,f.default.emptyCell),children:T?(0,m.jsxs)(`span`,{className:f.default.loadingInline,children:[(0,m.jsx)(o.Spinner,{size:`sm`,decorative:!0}),E.table.loading]}):ke??(Lt?O.noResults:O.empty)})}):(0,m.jsxs)(m.Fragment,{children:[$.map((e,t)=>{let n=e.index,i=R[n],o=y(i),s=n+1,c=G.has(o),l=dt(i),u=B?e.start-(t===0?et:$[t-1].end):0;return(0,m.jsxs)(p.Fragment,{children:[u>.5&&(0,m.jsx)(`tr`,{"aria-hidden":`true`,className:f.default.spacer,style:{blockSize:u},children:(0,m.jsx)(`td`,{colSpan:W})}),(0,m.jsxs)(`tr`,{ref:B?V.measureElement:void 0,"data-index":B?n:void 0,"data-even":(z+n)%2==1||void 0,"aria-rowindex":z+n+2,"aria-selected":ot?c:void 0,"aria-disabled":ot&&!l?!0:void 0,"data-selected":c||void 0,className:r.cx(f.default.row,(w||b===`single`)&&f.default.clickable),onClick:e=>Nt(e,n),children:[U&&(0,m.jsx)(`td`,{role:`gridcell`,"data-cell":`${s}:0`,"data-select-column":``,"aria-colindex":1,className:r.cx(f.default.cell,f.default.selectCell),children:(0,m.jsx)(a.CheckBox,{checked:c,disabled:!l,onCheckedChange:e=>ht(n,J.current,e),"aria-label":E.table.selectRowNamed(lt(i))})}),v.map((e,t)=>{let a=t+st,o=d.getCellValue(i,e),l=e.cell?e.cell(i,{value:o,rowIndex:Ze+n,selected:c}):Mt(o),u=e.align??(e.numeric?`end`:`start`),p=e.rowHeader?`th`:`td`;return(0,m.jsx)(p,{role:e.rowHeader?`rowheader`:`gridcell`,"data-cell":`${s}:${a}`,"aria-colindex":a+1,scope:e.rowHeader?`row`:void 0,className:r.cx(f.default.cell,e.rowHeader&&f.default.rowHeader,ne[u],e.numeric&&f.default.numeric,e.className),style:e.style,children:l},e.key)})]})]},o)}),Ft>.5&&(0,m.jsx)(`tr`,{"aria-hidden":`true`,className:f.default.spacer,style:{blockSize:Ft},children:(0,m.jsx)(`td`,{colSpan:W})})]})})]})}),T&&R.length>0&&(0,m.jsx)(`div`,{className:f.default.loadingOverlay,children:(0,m.jsx)(o.Spinner,{label:E.table.loading})}),(0,m.jsx)(`span`,{hidden:!0,id:Ve,children:E.pagination.nav}),pe&&!me&&(0,m.jsx)(`span`,{hidden:!0,id:He,children:pe}),Rt&&(0,m.jsxs)(`div`,{className:f.default.footer,children:[(0,m.jsx)(`span`,{role:`status`,className:f.default.status,children:U&&q>0?O.selectedCount(q):null}),S?(0,m.jsxs)(`div`,{className:f.default.paging,children:[(0,m.jsx)(`span`,{className:f.default.range,children:O.range(zt,Bt,I)}),Xe>1&&(0,m.jsx)(c.Pagination,{size:`sm`,compact:!0,pageCount:Xe,page:L,onPageChange:qe,"aria-labelledby":`${Ve} ${me??He}`})]}):null]})]})}exports.DataGrid=v,exports.compareValues=d.compareValues,exports.createSearchIndex=d.createSearchIndex,exports.filterRows=d.filterRows,exports.getCellValue=d.getCellValue,exports.sortIndices=d.sortIndices,exports.sortRows=d.sortRows;
@@ -1,7 +1,7 @@
1
1
  import { CSSProperties, ReactNode, Ref } from 'react';
2
2
  import { DataGridRowId, DataGridSortItem } from './dataGridUtils';
3
3
  export type { DataGridRowId, DataGridSortItem } from './dataGridUtils';
4
- export { compareValues, filterRows, getCellValue, sortRows } from './dataGridUtils';
4
+ export { compareValues, createSearchIndex, filterRows, getCellValue, sortIndices, sortRows, } from './dataGridUtils';
5
5
  /** Horizontal alignment of a column's cells. */
6
6
  export type DataGridAlign = "start" | "center" | "end";
7
7
  /** Row height and padding. */
@@ -103,6 +103,17 @@ export interface DataGridProps<T> {
103
103
  isRowSelectable?: (row: T) => boolean;
104
104
  /** Rows per page. Shows a footer with the range and `Pagination`. Without it, every row shows. */
105
105
  pageSize?: number;
106
+ /**
107
+ * Render only the rows in view (plus a few above and below), so grids of
108
+ * 100,000+ rows scroll, sort, filter, and select without delay. `"auto"`
109
+ * turns it on when more than 100 rows show at once. While it's on, the body
110
+ * scrolls inside the grid (its height is `maxHeight`, 70% of the window by
111
+ * default) and the table uses fixed layout unless you set `layout`, so
112
+ * columns keep their widths while you scroll; give columns a `width` to
113
+ * size them. Screen readers still get the full count (`aria-rowcount`)
114
+ * and each row's position (`aria-rowindex`). @default "auto"
115
+ */
116
+ virtualize?: boolean | "auto";
106
117
  /** Current page, starting at 1 (controlled). */
107
118
  page?: number;
108
119
  /** Initial page when uncontrolled. @default 1 */
@@ -135,7 +146,7 @@ export interface DataGridProps<T> {
135
146
  maxHeight?: CSSProperties["maxHeight"];
136
147
  /**
137
148
  * Table layout. `fixed` makes column widths exact (content wraps or clips
138
- * instead of widening a column). @default "auto"
149
+ * instead of widening a column). @default "auto" ("fixed" while virtualized)
139
150
  */
140
151
  layout?: "auto" | "fixed";
141
152
  /** Style for the `<table>` (for example a total width when columns are resized). */
@@ -180,4 +191,4 @@ export interface DataGridProps<T> {
180
191
  * />
181
192
  * ```
182
193
  */
183
- export declare function DataGrid<T>({ rows, columns, getRowId, getRowLabel, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, sort: sortProp, defaultSort, onSortChange, multiSort, filter, selectionMode, selected: selectedProp, defaultSelected, onSelectedChange, isRowSelectable, pageSize, page: pageProp, defaultPage, onPageChange, manual, rowCount, onRowActivate, loading, emptyState, density, variant, hoverable, stickyHeader, maxHeight, layout, tableStyle, className, style, ref, }: DataGridProps<T>): import("react").JSX.Element;
194
+ export declare function DataGrid<T>({ rows, columns, getRowId, getRowLabel, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, sort: sortProp, defaultSort, onSortChange, multiSort, filter: filterProp, selectionMode, selected: selectedProp, defaultSelected, onSelectedChange, isRowSelectable, pageSize, virtualize, page: pageProp, defaultPage, onPageChange, manual, rowCount, onRowActivate, loading, emptyState, density, variant, hoverable, stickyHeader, maxHeight, layout, tableStyle, className, style, ref, }: DataGridProps<T>): import("react").JSX.Element;