@cube-dev/ui-kit 0.0.0-canary-9a2a686 → 0.0.0-canary-3d8a959

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 (579) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +44 -42
  40. package/dist/components/actions/use-context-menu.js.map +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +2 -2
  86. package/dist/components/content/Tag/Tag.js.map +1 -1
  87. package/dist/components/content/Text.js +1 -1
  88. package/dist/components/content/TextItem/TextItem.js +1 -1
  89. package/dist/components/content/Title.js +1 -1
  90. package/dist/components/content/Tree/Tree.js +1 -1
  91. package/dist/components/content/Tree/TreeNode.js +1 -1
  92. package/dist/components/content/Tree/styled.js +1 -1
  93. package/dist/components/content/Tree/tree-index.js +1 -1
  94. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  95. package/dist/components/content/Tree/use-load-data.js +1 -1
  96. package/dist/components/content/highlightText.js +1 -1
  97. package/dist/components/content/use-auto-tooltip.js +1 -1
  98. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  99. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  100. package/dist/components/fields/Checkbox/context.js +1 -1
  101. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  102. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  103. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  104. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  105. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  106. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  107. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  108. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  109. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  110. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  111. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  112. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  113. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  115. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  116. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  117. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  118. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  119. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  120. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  121. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  122. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  123. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  124. package/dist/components/fields/DatePicker/period.js +1 -1
  125. package/dist/components/fields/DatePicker/props.js +1 -1
  126. package/dist/components/fields/DatePicker/utils.js +1 -1
  127. package/dist/components/fields/FileInput/FileInput.js +1 -1
  128. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
  129. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  130. package/dist/components/fields/FilterPicker/FilterPicker.js +6 -1
  131. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  132. package/dist/components/fields/Input/Input.js +2 -2
  133. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  134. package/dist/components/fields/ListBox/ListBox.d.ts +7 -0
  135. package/dist/components/fields/ListBox/ListBox.js +4 -3
  136. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  137. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  138. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  139. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  140. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  141. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  142. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  143. package/dist/components/fields/Picker/Picker.js +6 -1
  144. package/dist/components/fields/Picker/Picker.js.map +1 -1
  145. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  146. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  147. package/dist/components/fields/RadioGroup/context.js +1 -1
  148. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  149. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  150. package/dist/components/fields/Select/Select.js +1 -1
  151. package/dist/components/fields/Slider/Gradation.js +1 -1
  152. package/dist/components/fields/Slider/HueSlider.js +1 -1
  153. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  154. package/dist/components/fields/Slider/Slider.js +1 -1
  155. package/dist/components/fields/Slider/SliderBase.js +1 -1
  156. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  157. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  158. package/dist/components/fields/Slider/elements.js +1 -1
  159. package/dist/components/fields/Slider/index.js +1 -1
  160. package/dist/components/fields/Switch/Switch.js +1 -1
  161. package/dist/components/fields/TextArea/TextArea.js +1 -1
  162. package/dist/components/fields/TextInput/TextInput.js +1 -1
  163. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  164. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  165. package/dist/components/fields/color/ColorPanel.js +1 -1
  166. package/dist/components/fields/color/ColorSwatch.js +1 -1
  167. package/dist/components/fields/color/channels.js +1 -1
  168. package/dist/components/fields/color/color.js +1 -1
  169. package/dist/components/fields/color/context.js +1 -1
  170. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  171. package/dist/components/form/Form/Field.js +1 -1
  172. package/dist/components/form/Form/Form.js +1 -1
  173. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  174. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  175. package/dist/components/form/Form/SubmitError.js +1 -1
  176. package/dist/components/form/Form/index.js +1 -1
  177. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  178. package/dist/components/form/Form/use-field/use-field.js +1 -1
  179. package/dist/components/form/Form/use-form.js +1 -1
  180. package/dist/components/form/Form/validation.js +1 -1
  181. package/dist/components/form/Label.js +1 -1
  182. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  183. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  184. package/dist/components/form/validation/use-validation-props.js +1 -1
  185. package/dist/components/form/wrapper.js +1 -1
  186. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  187. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  188. package/dist/components/layout/Board/Board.js +1 -1
  189. package/dist/components/layout/Board/BoardProvider.js +1 -1
  190. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  191. package/dist/components/layout/Board/Widget.js +1 -1
  192. package/dist/components/layout/Board/WidgetHost.js +1 -1
  193. package/dist/components/layout/Board/board-context.js +1 -1
  194. package/dist/components/layout/Board/board-store.js +1 -1
  195. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  196. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  197. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  198. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  199. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  200. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  201. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  202. package/dist/components/layout/Board/index.js +1 -1
  203. package/dist/components/layout/Board/responsive-utils.js +1 -1
  204. package/dist/components/layout/Board/use-board-layout.js +1 -1
  205. package/dist/components/layout/Board/use-board-registry.js +1 -1
  206. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  207. package/dist/components/layout/Board/use-board-selection.js +1 -1
  208. package/dist/components/layout/Flex.js +1 -1
  209. package/dist/components/layout/Flow.js +1 -1
  210. package/dist/components/layout/Grid.js +1 -1
  211. package/dist/components/layout/Panel.js +1 -1
  212. package/dist/components/layout/Prefix.js +1 -1
  213. package/dist/components/layout/ResizablePanel.js +1 -1
  214. package/dist/components/layout/Space.js +1 -1
  215. package/dist/components/layout/Suffix.js +1 -1
  216. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  217. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  218. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  219. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  220. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  221. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  222. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  223. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  224. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  225. package/dist/components/navigation/Tabs/styled.js +1 -1
  226. package/dist/components/navigation/Tabs/types.js +1 -1
  227. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  228. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  229. package/dist/components/navigation/index.d.ts +1 -5
  230. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  231. package/dist/components/other/Calendar/Calendar.js +1 -1
  232. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  233. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  234. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  235. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  236. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  237. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  238. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  239. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  240. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  241. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  242. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  243. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  244. package/dist/components/overlays/Dialog/context.js +1 -1
  245. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  246. package/dist/components/overlays/Modal/Modal.js +1 -1
  247. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  248. package/dist/components/overlays/Modal/Overlay.js +1 -1
  249. package/dist/components/overlays/Modal/Popover.js +1 -1
  250. package/dist/components/overlays/Modal/Tray.js +1 -1
  251. package/dist/components/overlays/Modal/Underlay.js +1 -1
  252. package/dist/components/overlays/Notifications/Notification.js +1 -1
  253. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  254. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  255. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  256. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  257. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  258. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  259. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  260. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  261. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  262. package/dist/components/overlays/Notifications/index.js +1 -1
  263. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  264. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  265. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  266. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  267. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  268. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  269. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  270. package/dist/components/overlays/Toast/index.js +1 -1
  271. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  272. package/dist/components/overlays/Toast/useToast.js +1 -1
  273. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  274. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  275. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  276. package/dist/components/overlays/Tooltip/context.js +1 -1
  277. package/dist/components/portal/Portal.js +1 -1
  278. package/dist/components/portal/PortalProvider.js +1 -1
  279. package/dist/components/portal/usePortal.js +1 -1
  280. package/dist/components/shared/DraggableCollection.js +8 -24
  281. package/dist/components/shared/DraggableCollection.js.map +1 -1
  282. package/dist/components/shared/InvalidIcon.js +1 -1
  283. package/dist/components/shared/ValidIcon.js +1 -1
  284. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  285. package/dist/components/status/Spin/Cube.js +1 -1
  286. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  287. package/dist/components/status/Spin/Spin.js +1 -1
  288. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  289. package/dist/data/item-themes.js +1 -1
  290. package/dist/data/themes.js +1 -1
  291. package/dist/eslint-plugin/defaults.generated.js +1 -203
  292. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  293. package/dist/eslint-plugin/index.js +1 -1
  294. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  295. package/dist/i18n/I18nProvider.js +1 -1
  296. package/dist/i18n/createFormatter.js +1 -1
  297. package/dist/i18n/index.js +1 -1
  298. package/dist/i18n/instance.js +1 -1
  299. package/dist/i18n/locales/de-DE/uikit.js +1 -36
  300. package/dist/i18n/locales/en-US/uikit.js +1 -36
  301. package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -41
  302. package/dist/i18n/locales/es-ES/uikit.js +1 -36
  303. package/dist/i18n/locales/es-MX/uikit.js +1 -36
  304. package/dist/i18n/locales/fr-FR/uikit.js +1 -36
  305. package/dist/i18n/locales/it-IT/uikit.js +1 -36
  306. package/dist/i18n/locales/ja-JP/uikit.js +1 -36
  307. package/dist/i18n/locales/nb-NO/uikit.js +1 -36
  308. package/dist/i18n/locales/pt-BR/uikit.js +1 -36
  309. package/dist/i18n/locales/pt-PT/uikit.js +1 -36
  310. package/dist/i18n/locales/sv-SE/uikit.js +1 -36
  311. package/dist/i18n/locales/vi-VN/uikit.js +1 -36
  312. package/dist/i18n/locales.js +1 -1
  313. package/dist/i18n/useFormatter.js +1 -1
  314. package/dist/i18n/useI18n.js +1 -1
  315. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  316. package/dist/icons/AdjustmentsIcon.js +1 -1
  317. package/dist/icons/AiIcon.js +1 -1
  318. package/dist/icons/AreaChartIcon.js +1 -1
  319. package/dist/icons/BackwardIcon.js +1 -1
  320. package/dist/icons/BarChartIcon.js +1 -1
  321. package/dist/icons/BellFilledIcon.js +1 -1
  322. package/dist/icons/BellIcon.js +1 -1
  323. package/dist/icons/BooleanIcon.js +1 -1
  324. package/dist/icons/CalendarEditIcon.js +1 -1
  325. package/dist/icons/CalendarIcon.js +1 -1
  326. package/dist/icons/CaretDownIcon.js +1 -1
  327. package/dist/icons/CaretUpIcon.js +1 -1
  328. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  329. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  330. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  331. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  332. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  333. package/dist/icons/ChartBarLineIcon.js +1 -1
  334. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  335. package/dist/icons/ChartBarStackedIcon.js +1 -1
  336. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  337. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  338. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  339. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  340. package/dist/icons/ChartBubbleIcon.js +1 -1
  341. package/dist/icons/ChartDonut2Icon.js +1 -1
  342. package/dist/icons/ChartFunnelIcon.js +1 -1
  343. package/dist/icons/ChartHeatmapIcon.js +1 -1
  344. package/dist/icons/ChartKPIIcon.js +1 -1
  345. package/dist/icons/ChartPie2Icon.js +1 -1
  346. package/dist/icons/ChartScatterIcon.js +1 -1
  347. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  348. package/dist/icons/CheckCircleIcon.js +1 -1
  349. package/dist/icons/CheckIcon.js +1 -1
  350. package/dist/icons/CircleFilledIcon.js +1 -1
  351. package/dist/icons/ClearIcon.js +1 -1
  352. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  353. package/dist/icons/CloseCircleIcon.js +1 -1
  354. package/dist/icons/CloseIcon.js +1 -1
  355. package/dist/icons/CodeIcon.js +1 -1
  356. package/dist/icons/ColumnTotalIcon.js +1 -1
  357. package/dist/icons/CopyIcon.js +1 -1
  358. package/dist/icons/CountIcon.js +1 -1
  359. package/dist/icons/CubeIcon.js +1 -1
  360. package/dist/icons/CubePauseIcon.js +1 -1
  361. package/dist/icons/CubePlayIcon.js +1 -1
  362. package/dist/icons/CurrencyDollarIcon.js +1 -1
  363. package/dist/icons/DangerIcon.js +1 -1
  364. package/dist/icons/DashboardIcon.js +1 -1
  365. package/dist/icons/DatabaseIcon.js +1 -1
  366. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  367. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  368. package/dist/icons/DirectionIcon.js +1 -1
  369. package/dist/icons/DonutIcon.js +1 -1
  370. package/dist/icons/DownIcon.js +1 -1
  371. package/dist/icons/EditIcon.js +1 -1
  372. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  373. package/dist/icons/ExclamationCircleIcon.js +1 -1
  374. package/dist/icons/ExclamationIcon.js +1 -1
  375. package/dist/icons/EyeIcon.js +1 -1
  376. package/dist/icons/EyeInvisibleIcon.js +1 -1
  377. package/dist/icons/FilterIcon.js +1 -1
  378. package/dist/icons/FolderFilledIcon.js +1 -1
  379. package/dist/icons/FolderIcon.js +1 -1
  380. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  381. package/dist/icons/FolderOpenIcon.js +1 -1
  382. package/dist/icons/ForwardIcon.js +1 -1
  383. package/dist/icons/GripVerticalIcon.js +1 -1
  384. package/dist/icons/HierarchyIcon.js +1 -1
  385. package/dist/icons/HierarchyOpenIcon.js +1 -1
  386. package/dist/icons/Icon.js +1 -1
  387. package/dist/icons/InfoCircleIcon.js +1 -1
  388. package/dist/icons/InfoIcon.js +1 -1
  389. package/dist/icons/KeyIcon.js +1 -1
  390. package/dist/icons/LeftIcon.js +1 -1
  391. package/dist/icons/LineChartIcon.js +1 -1
  392. package/dist/icons/LoadingIcon.js +1 -1
  393. package/dist/icons/LockFilledIcon.js +1 -1
  394. package/dist/icons/LockIcon.js +1 -1
  395. package/dist/icons/MoreIcon.js +1 -1
  396. package/dist/icons/NotAllowedIcon.js +1 -1
  397. package/dist/icons/Number123Icon.js +1 -1
  398. package/dist/icons/NumberIcon.js +1 -1
  399. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  400. package/dist/icons/PauseCircleIcon.js +1 -1
  401. package/dist/icons/PauseIcon.js +1 -1
  402. package/dist/icons/PercentageIcon.js +1 -1
  403. package/dist/icons/PieChartIcon.js +1 -1
  404. package/dist/icons/PipetteIcon.js +1 -1
  405. package/dist/icons/PlayCircleIcon.js +1 -1
  406. package/dist/icons/PlayIcon.js +1 -1
  407. package/dist/icons/PlusIcon.js +1 -1
  408. package/dist/icons/ProgressBarIcon.js +1 -1
  409. package/dist/icons/ReloadIcon.js +1 -1
  410. package/dist/icons/ReportIcon.js +1 -1
  411. package/dist/icons/ReturnIcon.js +1 -1
  412. package/dist/icons/RightIcon.js +1 -1
  413. package/dist/icons/RowTotalsIcon.js +1 -1
  414. package/dist/icons/SchemeIcon.js +1 -1
  415. package/dist/icons/SearchIcon.js +1 -1
  416. package/dist/icons/SemanticQueryIcon.js +1 -1
  417. package/dist/icons/SettingsIcon.js +1 -1
  418. package/dist/icons/ShieldFilledIcon.js +1 -1
  419. package/dist/icons/ShieldIcon.js +1 -1
  420. package/dist/icons/SlashIcon.js +1 -1
  421. package/dist/icons/SparklesIcon.js +1 -1
  422. package/dist/icons/SqlIcon.js +1 -1
  423. package/dist/icons/StatsIcon.js +1 -1
  424. package/dist/icons/StopIcon.js +1 -1
  425. package/dist/icons/StringIcon.js +1 -1
  426. package/dist/icons/SubtotalsIcon.js +1 -1
  427. package/dist/icons/SwitchIcon.js +1 -1
  428. package/dist/icons/TableIcon.js +1 -1
  429. package/dist/icons/ThumbsDownIcon.js +1 -1
  430. package/dist/icons/ThumbsUpIcon.js +1 -1
  431. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  432. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  433. package/dist/icons/ThunderboltIcon.js +1 -1
  434. package/dist/icons/TimeIcon.js +1 -1
  435. package/dist/icons/TrashIcon.js +1 -1
  436. package/dist/icons/UnlockIcon.js +1 -1
  437. package/dist/icons/UpIcon.js +1 -1
  438. package/dist/icons/UserGroupIcon.js +1 -1
  439. package/dist/icons/UserIcon.js +1 -1
  440. package/dist/icons/UserLockIcon.js +1 -1
  441. package/dist/icons/ViewIcon.js +1 -1
  442. package/dist/icons/WarningFilledIcon.js +1 -1
  443. package/dist/icons/WarningIcon.js +1 -1
  444. package/dist/icons/wrap-icon.js +1 -1
  445. package/dist/index.d.ts +9 -19
  446. package/dist/index.js +4 -8
  447. package/dist/index.js.map +1 -1
  448. package/dist/provider.js +1 -1
  449. package/dist/providers/TrackingProvider.js +1 -1
  450. package/dist/providers/navigationAdapter.default.js +1 -1
  451. package/dist/tokens/base.js +1 -1
  452. package/dist/tokens/colors.js +1 -1
  453. package/dist/tokens/index.js +1 -1
  454. package/dist/tokens/layout.js +1 -1
  455. package/dist/tokens/lazy-styles.js +1 -1
  456. package/dist/tokens/palette-config.js +1 -1
  457. package/dist/tokens/palette.js +1 -1
  458. package/dist/tokens/shadows.js +1 -1
  459. package/dist/tokens/sizes.js +1 -1
  460. package/dist/tokens/spacing.js +1 -1
  461. package/dist/tokens/typography.d.ts +1 -1
  462. package/dist/tokens/typography.js +2 -11
  463. package/dist/tokens/typography.js.map +1 -1
  464. package/dist/utils/ResizeSensor.js +1 -1
  465. package/dist/utils/is-dev-env.js +1 -1
  466. package/dist/utils/modules.js +1 -1
  467. package/dist/utils/promise.js +1 -1
  468. package/dist/utils/raf.js +1 -1
  469. package/dist/utils/random.js +1 -1
  470. package/dist/utils/range.js +1 -1
  471. package/dist/utils/react/RenderCache.js +1 -1
  472. package/dist/utils/react/Slots.js +1 -1
  473. package/dist/utils/react/chain.js +1 -1
  474. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  475. package/dist/utils/react/index.js +1 -1
  476. package/dist/utils/react/interactions.js +1 -1
  477. package/dist/utils/react/isTextOnly.js +1 -1
  478. package/dist/utils/react/mapProps.js +1 -1
  479. package/dist/utils/react/mergeProps.js +1 -1
  480. package/dist/utils/react/nullableValue.js +1 -1
  481. package/dist/utils/react/resolveIcon.js +1 -1
  482. package/dist/utils/react/sharedStore.js +1 -1
  483. package/dist/utils/react/useBufferedValue.js +1 -1
  484. package/dist/utils/react/useCombinedRefs.js +1 -1
  485. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  486. package/dist/utils/react/useEventBus.js +1 -1
  487. package/dist/utils/react/useId.js +1 -1
  488. package/dist/utils/react/useIsDarwin.js +1 -1
  489. package/dist/utils/react/useKeySymbols.js +1 -1
  490. package/dist/utils/react/useLayoutEffect.js +1 -1
  491. package/dist/utils/react/useLocalStorage.js +1 -1
  492. package/dist/utils/react/useMergeStyles.js +1 -1
  493. package/dist/utils/react/usePopoverSync.js +1 -1
  494. package/dist/utils/react/useQaProps.js +1 -1
  495. package/dist/utils/react/useViewportSize.js +1 -1
  496. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  497. package/dist/utils/selection.js +1 -1
  498. package/dist/utils/styles.js +1 -1
  499. package/dist/utils/tree.js +1 -1
  500. package/dist/utils/warnings.js +1 -1
  501. package/dist/version.js +2 -2
  502. package/docs/components/fields/FilterPicker.md +1 -1
  503. package/docs/components/fields/ListBox.md +4 -0
  504. package/docs/components/fields/Picker.md +1 -1
  505. package/package.json +3 -8
  506. package/dist/components/data/DataTable/DataTable.d.ts +0 -13
  507. package/dist/components/data/DataTable/DataTable.js +0 -246
  508. package/dist/components/data/DataTable/DataTable.js.map +0 -1
  509. package/dist/components/data/DataTable/index.d.ts +0 -3
  510. package/dist/components/data/DataTable/types.d.ts +0 -145
  511. package/dist/components/data/ItemTable/ItemTable.d.ts +0 -19
  512. package/dist/components/data/ItemTable/ItemTable.js +0 -350
  513. package/dist/components/data/ItemTable/ItemTable.js.map +0 -1
  514. package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +0 -23
  515. package/dist/components/data/ItemTable/ItemTableBulkBar.js +0 -131
  516. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +0 -1
  517. package/dist/components/data/ItemTable/ItemTableDragPreview.js +0 -46
  518. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +0 -1
  519. package/dist/components/data/ItemTable/ItemTableFooter.js +0 -79
  520. package/dist/components/data/ItemTable/ItemTableFooter.js.map +0 -1
  521. package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +0 -34
  522. package/dist/components/data/ItemTable/ItemTableToolbar.js +0 -91
  523. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +0 -1
  524. package/dist/components/data/ItemTable/index.d.ts +0 -4
  525. package/dist/components/data/ItemTable/types.d.ts +0 -327
  526. package/dist/components/data/TableBase/ColumnResizer.js +0 -70
  527. package/dist/components/data/TableBase/ColumnResizer.js.map +0 -1
  528. package/dist/components/data/TableBase/RowCollection.js +0 -99
  529. package/dist/components/data/TableBase/RowCollection.js.map +0 -1
  530. package/dist/components/data/TableBase/TableRow.js +0 -89
  531. package/dist/components/data/TableBase/TableRow.js.map +0 -1
  532. package/dist/components/data/TableBase/TableView.d.ts +0 -22
  533. package/dist/components/data/TableBase/TableView.js +0 -921
  534. package/dist/components/data/TableBase/TableView.js.map +0 -1
  535. package/dist/components/data/TableBase/index.d.ts +0 -5
  536. package/dist/components/data/TableBase/row-menu.js +0 -40
  537. package/dist/components/data/TableBase/row-menu.js.map +0 -1
  538. package/dist/components/data/TableBase/styled.d.ts +0 -5
  539. package/dist/components/data/TableBase/styled.js +0 -532
  540. package/dist/components/data/TableBase/styled.js.map +0 -1
  541. package/dist/components/data/TableBase/types.d.ts +0 -160
  542. package/dist/components/data/TableBase/types.js +0 -31
  543. package/dist/components/data/TableBase/types.js.map +0 -1
  544. package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -3
  545. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  546. package/dist/components/data/TableBase/use-cell-selection.js.map +0 -1
  547. package/dist/components/data/TableBase/use-container-width.js +0 -35
  548. package/dist/components/data/TableBase/use-container-width.js.map +0 -1
  549. package/dist/components/data/TableBase/use-row-move-animation.js +0 -90
  550. package/dist/components/data/TableBase/use-row-move-animation.js.map +0 -1
  551. package/dist/components/data/TableBase/use-scrollability.js +0 -49
  552. package/dist/components/data/TableBase/use-scrollability.js.map +0 -1
  553. package/dist/components/data/TableBase/use-table-columns.d.ts +0 -2
  554. package/dist/components/data/TableBase/use-table-columns.js +0 -166
  555. package/dist/components/data/TableBase/use-table-columns.js.map +0 -1
  556. package/dist/components/data/TableBase/use-table-search.js +0 -64
  557. package/dist/components/data/TableBase/use-table-search.js.map +0 -1
  558. package/dist/components/data/TableBase/use-table-selection.d.ts +0 -4
  559. package/dist/components/data/TableBase/use-table-selection.js +0 -233
  560. package/dist/components/data/TableBase/use-table-selection.js.map +0 -1
  561. package/dist/components/data/TableBase/use-table-sort.js +0 -91
  562. package/dist/components/data/TableBase/use-table-sort.js.map +0 -1
  563. package/dist/components/data/TableBase/use-table-sorts.js +0 -97
  564. package/dist/components/data/TableBase/use-table-sorts.js.map +0 -1
  565. package/dist/components/data/TableBase/use-table-storage.d.ts +0 -8
  566. package/dist/components/data/TableBase/use-table-storage.js +0 -58
  567. package/dist/components/data/TableBase/use-table-storage.js.map +0 -1
  568. package/dist/components/data/index.d.ts +0 -10
  569. package/dist/components/navigation/Pagination/Pagination.d.ts +0 -9
  570. package/dist/components/navigation/Pagination/Pagination.js +0 -258
  571. package/dist/components/navigation/Pagination/Pagination.js.map +0 -1
  572. package/dist/components/navigation/Pagination/index.d.ts +0 -4
  573. package/dist/components/navigation/Pagination/types.d.ts +0 -81
  574. package/dist/components/navigation/Pagination/use-pagination.d.ts +0 -52
  575. package/dist/components/navigation/Pagination/use-pagination.js +0 -83
  576. package/dist/components/navigation/Pagination/use-pagination.js.map +0 -1
  577. package/docs/components/data/DataTable.md +0 -298
  578. package/docs/components/data/ItemTable.md +0 -984
  579. package/docs/components/navigation/Pagination.md +0 -245
@@ -1,58 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9a2a686 | Cube Dev Team */
2
- import { useCallback, useRef, useState } from "react";
3
-
4
- //#region src/components/data/TableBase/use-table-storage.ts
5
- /**
6
- * Namespaced so a `storageKey` cannot collide with whatever else the host app
7
- * keeps in `localStorage`, and so the kit's own stored shape can be migrated or
8
- * cleared as a group later.
9
- */
10
- const PREFIX = "cube-ui-kit:table:";
11
- const DEFAULT_PERSIST_KEYS = ["pageSize", "columnWidths"];
12
- function read(storageKey) {
13
- if (!storageKey || typeof window === "undefined") return {};
14
- try {
15
- const raw = window.localStorage.getItem(PREFIX + storageKey);
16
- if (!raw) return {};
17
- const parsed = JSON.parse(raw);
18
- return parsed && typeof parsed === "object" ? parsed : {};
19
- } catch {
20
- return {};
21
- }
22
- }
23
- /**
24
- * Persists the parts of the table's own state that a user expects to survive a
25
- * reload. Only state the table *owns* is stored: a controlled `pageSize` or
26
- * `sort` belongs to the page, so restoring it would fight the page's own source
27
- * of truth.
28
- *
29
- * Returns the state read at mount — a one-shot snapshot, deliberately, so a
30
- * second table sharing the key cannot yank this one's page size mid-session.
31
- */
32
- function useTableStorage(storageKey, persist = DEFAULT_PERSIST_KEYS) {
33
- const [initial] = useState(() => read(storageKey));
34
- const persistRef = useRef(persist);
35
- persistRef.current = persist;
36
- const write = useCallback((patch) => {
37
- if (!storageKey || typeof window === "undefined") return;
38
- const allowed = persistRef.current;
39
- const entries = Object.entries(patch).filter(([key]) => allowed.includes(key));
40
- if (!entries.length) return;
41
- try {
42
- const next = {
43
- ...read(storageKey),
44
- ...Object.fromEntries(entries)
45
- };
46
- window.localStorage.setItem(PREFIX + storageKey, JSON.stringify(next));
47
- } catch {}
48
- }, [storageKey]);
49
- return {
50
- initial: storageKey ? initial : {},
51
- has: (key) => !!storageKey && persist.includes(key),
52
- write
53
- };
54
- }
55
-
56
- //#endregion
57
- export { useTableStorage };
58
- //# sourceMappingURL=use-table-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-table-storage.js","names":[],"sources":["../../../../src/components/data/TableBase/use-table-storage.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nimport type { CubeTableSort } from './types';\n\n/**\n * Namespaced so a `storageKey` cannot collide with whatever else the host app\n * keeps in `localStorage`, and so the kit's own stored shape can be migrated or\n * cleared as a group later.\n */\nconst PREFIX = 'cube-ui-kit:table:';\n\nexport type CubeTablePersistKey = 'pageSize' | 'columnWidths' | 'sort';\n\nexport interface CubeTableStoredState {\n pageSize?: number;\n sort?: CubeTableSort | null;\n columnWidths?: Record<string, number>;\n}\n\nexport const DEFAULT_PERSIST_KEYS: CubeTablePersistKey[] = [\n 'pageSize',\n 'columnWidths',\n];\n\nfunction read(storageKey: string | undefined): CubeTableStoredState {\n // No `storageKey` means the feature is off; no `window` means SSR. Both are\n // normal, not errors.\n if (!storageKey || typeof window === 'undefined') return {};\n\n try {\n const raw = window.localStorage.getItem(PREFIX + storageKey);\n\n if (!raw) return {};\n\n const parsed = JSON.parse(raw);\n\n // Anything could be under that key — a hand-edited value, a stale shape\n // from an older version. A non-object is simply ignored.\n return parsed && typeof parsed === 'object' ? parsed : {};\n } catch {\n // Private mode, a disabled store, or malformed JSON. Persistence is a\n // convenience; losing it must never take the table down with it.\n return {};\n }\n}\n\n/**\n * Persists the parts of the table's own state that a user expects to survive a\n * reload. Only state the table *owns* is stored: a controlled `pageSize` or\n * `sort` belongs to the page, so restoring it would fight the page's own source\n * of truth.\n *\n * Returns the state read at mount — a one-shot snapshot, deliberately, so a\n * second table sharing the key cannot yank this one's page size mid-session.\n */\nexport function useTableStorage(\n storageKey: string | undefined,\n persist: CubeTablePersistKey[] = DEFAULT_PERSIST_KEYS,\n) {\n const [initial] = useState(() => read(storageKey));\n const persistRef = useRef(persist);\n\n persistRef.current = persist;\n\n const write = useCallback(\n (patch: CubeTableStoredState) => {\n if (!storageKey || typeof window === 'undefined') return;\n\n const allowed = persistRef.current;\n const entries = Object.entries(patch).filter(([key]) =>\n allowed.includes(key as CubeTablePersistKey),\n );\n\n if (!entries.length) return;\n\n try {\n const next = {\n ...read(storageKey),\n ...Object.fromEntries(entries),\n };\n\n window.localStorage.setItem(PREFIX + storageKey, JSON.stringify(next));\n } catch {\n // Quota exceeded or a disabled store — nothing to do but carry on.\n }\n },\n [storageKey],\n );\n\n return {\n initial: storageKey ? initial : {},\n /** `true` when this key is persisted, so callers can skip the work. */\n has: (key: CubeTablePersistKey) => !!storageKey && persist.includes(key),\n write,\n };\n}\n"],"mappings":";;;;;;;;;AASA,MAAM,SAAS;AAUf,MAAa,uBAA8C,CACzD,YACA,eACD;AAED,SAAS,KAAK,YAAsD;AAGlE,KAAI,CAAC,cAAc,OAAO,WAAW,YAAa,QAAO,EAAE;AAE3D,KAAI;EACF,MAAM,MAAM,OAAO,aAAa,QAAQ,SAAS,WAAW;AAE5D,MAAI,CAAC,IAAK,QAAO,EAAE;EAEnB,MAAM,SAAS,KAAK,MAAM,IAAI;AAI9B,SAAO,UAAU,OAAO,WAAW,WAAW,SAAS,EAAE;SACnD;AAGN,SAAO,EAAE;;;;;;;;;;;;AAab,SAAgB,gBACd,YACA,UAAiC,sBACjC;CACA,MAAM,CAAC,WAAW,eAAe,KAAK,WAAW,CAAC;CAClD,MAAM,aAAa,OAAO,QAAQ;AAElC,YAAW,UAAU;CAErB,MAAM,QAAQ,aACX,UAAgC;AAC/B,MAAI,CAAC,cAAc,OAAO,WAAW,YAAa;EAElD,MAAM,UAAU,WAAW;EAC3B,MAAM,UAAU,OAAO,QAAQ,MAAM,CAAC,QAAQ,CAAC,SAC7C,QAAQ,SAAS,IAA2B,CAC7C;AAED,MAAI,CAAC,QAAQ,OAAQ;AAErB,MAAI;GACF,MAAM,OAAO;IACX,GAAG,KAAK,WAAW;IACnB,GAAG,OAAO,YAAY,QAAQ;IAC/B;AAED,UAAO,aAAa,QAAQ,SAAS,YAAY,KAAK,UAAU,KAAK,CAAC;UAChE;IAIV,CAAC,WAAW,CACb;AAED,QAAO;EACL,SAAS,aAAa,UAAU,EAAE;EAElC,MAAM,QAA6B,CAAC,CAAC,cAAc,QAAQ,SAAS,IAAI;EACxE;EACD"}
@@ -1,10 +0,0 @@
1
-
2
- import { CubeTableAlign, CubeTableCellContext, CubeTableColumn, CubeTableColumnHeader, CubeTableHeaderContext, CubeTableRowContext, CubeTableRowSection, CubeTableSort, CubeTableSortDirection } from "./TableBase/types.js";
3
- import { CubeDataTableColumn, CubeDataTableProps } from "./DataTable/types.js";
4
- import { _DataTable } from "./DataTable/DataTable.js";
5
- import "./DataTable/index.js";
6
- import { CubeTableRowRenderProps } from "./TableBase/TableView.js";
7
- import { CubeItemTableColumn, CubeItemTableProps } from "./ItemTable/types.js";
8
- import { _ItemTable } from "./ItemTable/ItemTable.js";
9
- import "./ItemTable/index.js";
10
- import "./TableBase/index.js";
@@ -1,9 +0,0 @@
1
-
2
- import { CubePaginationProps } from "./types.js";
3
- import * as react from "react";
4
-
5
- //#region src/components/navigation/Pagination/Pagination.d.ts
6
- declare const _Pagination: react.ForwardRefExoticComponent<CubePaginationProps & react.RefAttributes<HTMLElement>>;
7
- //#endregion
8
- export { _Pagination };
9
- //# sourceMappingURL=Pagination.d.ts.map
@@ -1,258 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9a2a686 | Cube Dev Team */
2
- import { extractStyles } from "../../../utils/styles.js";
3
- import { useEvent } from "../../../_internal/hooks/use-event.js";
4
- import { useI18n } from "../../../i18n/useI18n.js";
5
- import { useFormatter } from "../../../i18n/useFormatter.js";
6
- import { BackwardIcon } from "../../../icons/BackwardIcon.js";
7
- import { ForwardIcon } from "../../../icons/ForwardIcon.js";
8
- import { LeftIcon } from "../../../icons/LeftIcon.js";
9
- import { RightIcon } from "../../../icons/RightIcon.js";
10
- import { Button } from "../../actions/index.js";
11
- import { __Select } from "../../fields/Select/Select.js";
12
- import { clampPage, getPageInfo, getPaginationRange } from "./use-pagination.js";
13
- import { OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
14
- import { forwardRef, useMemo } from "react";
15
- import { jsx, jsxs } from "react/jsx-runtime";
16
- import { useControlledState } from "@react-stately/utils";
17
-
18
- //#region src/components/navigation/Pagination/Pagination.tsx
19
- const PaginationElement = tasty({
20
- qa: "Pagination",
21
- as: "nav",
22
- styles: {
23
- display: "flex",
24
- flow: "row",
25
- gap: "1x",
26
- placeItems: "center",
27
- placeContent: "start",
28
- Summary: {
29
- preset: {
30
- "": "t3",
31
- "size=xsmall": "t4"
32
- },
33
- color: "#dark-03",
34
- whiteSpace: "nowrap"
35
- },
36
- Controls: {
37
- display: "flex",
38
- flow: "row",
39
- gap: ".5x",
40
- placeItems: "center"
41
- },
42
- Gap: {
43
- display: "grid",
44
- placeItems: "center",
45
- width: "min $gap-size",
46
- height: "$gap-size",
47
- preset: "t3",
48
- color: "#dark-04",
49
- userSelect: "none"
50
- },
51
- Pages: {
52
- display: "flex",
53
- flow: "row",
54
- gap: "1bw",
55
- placeItems: "center"
56
- },
57
- "$gap-size": {
58
- "": "$size-sm",
59
- "size=xsmall": "$size-xs",
60
- "size=medium": "$size-md"
61
- }
62
- },
63
- styleProps: OUTER_STYLES
64
- });
65
- const NavButton = tasty(Button, {
66
- type: "clear",
67
- styles: { border: true }
68
- });
69
- const PageButton = tasty(Button, { type: "clear" });
70
- function formatRange(info) {
71
- return `${(info.page - 1) * info.pageSize + 1}–${info.total > 0 ? Math.min(info.page * info.pageSize, info.total) : info.page * info.pageSize}`;
72
- }
73
- function Pagination(props, ref) {
74
- const { page: pageProp, defaultPage, onPageChange, totalPages: totalPagesProp, total, pageSize: pageSizeProp, defaultPageSize, pageSizeOptions, onPageSizeChange, type = "numbers", siblingCount = 1, boundaryCount = 1, size = "small", isDisabled, hasNextPage, isCompact = false, summary = false, labelFormatter, ariaLabel, pageSizeSelectStyles, qa, mods, ...rest } = props;
75
- const { t } = useI18n();
76
- const { formatNumber } = useFormatter();
77
- const [pageSize, setPageSize] = useControlledState(pageSizeProp, defaultPageSize ?? 50, onPageSizeChange);
78
- const [page, setPage] = useControlledState(pageProp, defaultPage ?? 1, onPageChange);
79
- const isCountable = totalPagesProp != null || total != null;
80
- const info = isCountable ? getPageInfo({
81
- page,
82
- pageSize,
83
- total: total ?? 0,
84
- totalPages: totalPagesProp
85
- }) : {
86
- page: clampPage(page, Number.MAX_SAFE_INTEGER),
87
- pageSize,
88
- totalPages: 0,
89
- total: 0,
90
- from: 0,
91
- to: 0
92
- };
93
- const { totalPages } = info;
94
- const goTo = useEvent((next) => {
95
- const clamped = isCountable ? clampPage(next, totalPages) : Math.max(next, 1);
96
- if (clamped !== info.page) setPage(clamped);
97
- });
98
- const onPageSizeSelectionChange = useEvent((value) => {
99
- setPageSize(Number(value));
100
- setPage(1);
101
- });
102
- const onPageSelectionChange = useEvent((value) => {
103
- goTo(Number(value));
104
- });
105
- const pageItems = useMemo(() => type === "numbers" && isCountable ? getPaginationRange({
106
- page: info.page,
107
- totalPages,
108
- siblingCount,
109
- boundaryCount
110
- }) : [], [
111
- type,
112
- isCountable,
113
- info.page,
114
- totalPages,
115
- siblingCount,
116
- boundaryCount
117
- ]);
118
- const selectEntries = useMemo(() => type === "select" && isCountable && totalPages <= 200 ? Array.from({ length: totalPages }, (_, i) => i + 1) : null, [
119
- type,
120
- isCountable,
121
- totalPages
122
- ]);
123
- const isFirst = info.page <= 1;
124
- const isLast = isCountable ? info.page >= totalPages : !hasNextPage;
125
- const styles = extractStyles(props, OUTER_STYLES);
126
- const summaryNode = summary === false ? null : typeof summary === "function" ? summary(info) : info.total > 0 ? t("pagination.summary", "{{from}}–{{to}} of {{total}}", {
127
- from: formatNumber(info.from),
128
- to: formatNumber(info.to),
129
- total: formatNumber(info.total)
130
- }) : null;
131
- function renderPageControl() {
132
- if (selectEntries) return /* @__PURE__ */ jsx(__Select, {
133
- qa: "PaginationPageSelect",
134
- size,
135
- isDisabled,
136
- "aria-label": t("pagination.selectPage", "Select page"),
137
- selectedKey: String(info.page),
138
- width: "min 15x",
139
- styles: pageSizeSelectStyles,
140
- onSelectionChange: onPageSelectionChange,
141
- children: selectEntries.map((entry) => {
142
- const entryInfo = {
143
- ...info,
144
- page: entry
145
- };
146
- const label = labelFormatter?.(entryInfo) ?? (info.total > 0 ? formatRange(entryInfo) : t("pagination.page", "Page {{page}}", { page: entry }));
147
- return /* @__PURE__ */ jsx(__Select.Item, {
148
- textValue: String(label),
149
- children: label
150
- }, entry);
151
- })
152
- });
153
- if (type === "numbers" && pageItems.length > 0) return /* @__PURE__ */ jsx("div", {
154
- "data-element": "Pages",
155
- children: pageItems.map((entry, index) => entry === "gap" ? /* @__PURE__ */ jsx("div", {
156
- "data-element": "Gap",
157
- "aria-hidden": "true",
158
- children: "…"
159
- }, `gap-${index}`) : /* @__PURE__ */ jsx(PageButton, {
160
- qa: `PaginationPage_${entry}`,
161
- size,
162
- type: entry === info.page ? "outline" : "clear",
163
- isDisabled,
164
- "aria-label": t("pagination.page", "Page {{page}}", { page: entry }),
165
- "aria-current": entry === info.page ? "page" : void 0,
166
- onPress: () => goTo(entry),
167
- children: entry
168
- }, entry))
169
- });
170
- if (!isCountable) return null;
171
- return /* @__PURE__ */ jsx("div", {
172
- "data-element": "Summary",
173
- "data-qa": "PaginationPageLabel",
174
- children: t("pagination.pageOf", "{{page}} of {{totalPages}}", {
175
- page: info.page,
176
- totalPages
177
- })
178
- });
179
- }
180
- const showEdgeButtons = !isCompact && isCountable;
181
- return /* @__PURE__ */ jsxs(PaginationElement, {
182
- ...filterBaseProps(rest, { eventProps: true }),
183
- ref,
184
- qa: qa || "Pagination",
185
- styles,
186
- mods: {
187
- size,
188
- ...mods
189
- },
190
- "aria-label": ariaLabel ?? t("pagination.ariaLabel", "Pagination"),
191
- children: [
192
- summaryNode ? /* @__PURE__ */ jsx("div", {
193
- "data-element": "Summary",
194
- children: summaryNode
195
- }) : null,
196
- pageSizeOptions && onPageSizeChange ? /* @__PURE__ */ jsx(__Select, {
197
- qa: "PaginationPageSizeSelect",
198
- size,
199
- isDisabled,
200
- "aria-label": t("pagination.itemsPerPage", "Items per page"),
201
- selectedKey: String(pageSize),
202
- styles: pageSizeSelectStyles,
203
- onSelectionChange: onPageSizeSelectionChange,
204
- children: pageSizeOptions.map((option) => {
205
- const label = t("pagination.itemsPerPageOption", "{{size}} / page", { size: option });
206
- return /* @__PURE__ */ jsx(__Select.Item, {
207
- textValue: label,
208
- children: label
209
- }, option);
210
- })
211
- }) : null,
212
- /* @__PURE__ */ jsxs("div", {
213
- "data-element": "Controls",
214
- children: [
215
- showEdgeButtons ? /* @__PURE__ */ jsx(NavButton, {
216
- qa: "PaginationFirstButton",
217
- size,
218
- icon: /* @__PURE__ */ jsx(BackwardIcon, {}),
219
- isDisabled: isFirst || isDisabled,
220
- "aria-label": t("pagination.firstPage", "First page"),
221
- onPress: () => goTo(1)
222
- }) : null,
223
- /* @__PURE__ */ jsx(NavButton, {
224
- qa: "PaginationPrevButton",
225
- size,
226
- icon: /* @__PURE__ */ jsx(LeftIcon, {}),
227
- isDisabled: isFirst || isDisabled,
228
- "aria-label": t("pagination.previousPage", "Previous page"),
229
- onPress: () => goTo(info.page - 1)
230
- }),
231
- renderPageControl(),
232
- /* @__PURE__ */ jsx(NavButton, {
233
- qa: "PaginationNextButton",
234
- size,
235
- icon: /* @__PURE__ */ jsx(RightIcon, {}),
236
- isDisabled: isLast || isDisabled,
237
- "aria-label": t("pagination.nextPage", "Next page"),
238
- onPress: () => goTo(info.page + 1)
239
- }),
240
- showEdgeButtons ? /* @__PURE__ */ jsx(NavButton, {
241
- qa: "PaginationLastButton",
242
- size,
243
- icon: /* @__PURE__ */ jsx(ForwardIcon, {}),
244
- isDisabled: isLast || isDisabled,
245
- "aria-label": t("pagination.lastPage", "Last page"),
246
- onPress: () => goTo(totalPages)
247
- }) : null
248
- ]
249
- })
250
- ]
251
- });
252
- }
253
- const _Pagination = forwardRef(Pagination);
254
- _Pagination.displayName = "Pagination";
255
-
256
- //#endregion
257
- export { _Pagination };
258
- //# sourceMappingURL=Pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pagination.js","names":["Select"],"sources":["../../../../src/components/navigation/Pagination/Pagination.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { filterBaseProps, OUTER_STYLES, tasty } from '@tenphi/tasty';\nimport { forwardRef, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useFormatter, useI18n } from '../../../i18n';\nimport { BackwardIcon, ForwardIcon, LeftIcon, RightIcon } from '../../../icons';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions';\nimport { Select } from '../../fields/Select';\n\nimport { clampPage, getPageInfo, getPaginationRange } from './use-pagination';\n\nimport type { ForwardedRef, ReactElement } from 'react';\nimport type { CubePaginationProps, CubeTablePageInfo } from './types';\n\nconst PaginationElement = tasty({\n qa: 'Pagination',\n as: 'nav',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'start',\n\n Summary: {\n // Follows the control's size rather than being fixed, so the summary\n // matches whatever the buttons beside it are.\n preset: { '': 't3', 'size=xsmall': 't4' },\n color: '#dark-03',\n whiteSpace: 'nowrap',\n },\n\n Controls: {\n display: 'flex',\n flow: 'row',\n gap: '.5x',\n placeItems: 'center',\n },\n\n Gap: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $gap-size',\n height: '$gap-size',\n preset: 't3',\n color: '#dark-04',\n userSelect: 'none',\n },\n\n /**\n * The page numbers sit tighter than the nav buttons around them: they read\n * as one run of pages, not as separate controls, and a hairline is enough\n * to keep the current page's outline off its neighbours.\n */\n Pages: {\n display: 'flex',\n flow: 'row',\n gap: '1bw',\n placeItems: 'center',\n },\n\n '$gap-size': {\n '': '$size-sm',\n 'size=xsmall': '$size-xs',\n 'size=medium': '$size-md',\n },\n },\n styleProps: OUTER_STYLES,\n});\n\nconst NavButton = tasty(Button, {\n type: 'clear',\n styles: { border: true },\n});\n\n// Page buttons are borderless so the current page — which renders as `outline`\n// and therefore draws its own border — is the only bordered one in the run.\nconst PageButton = tasty(Button, {\n type: 'clear',\n});\n\nfunction formatRange(info: CubeTablePageInfo): string {\n const start = (info.page - 1) * info.pageSize + 1;\n const end =\n info.total > 0\n ? Math.min(info.page * info.pageSize, info.total)\n : info.page * info.pageSize;\n\n return `${start}–${end}`;\n}\n\nfunction Pagination(\n props: CubePaginationProps,\n ref: ForwardedRef<HTMLElement>,\n): ReactElement {\n const {\n page: pageProp,\n defaultPage,\n onPageChange,\n totalPages: totalPagesProp,\n total,\n pageSize: pageSizeProp,\n defaultPageSize,\n pageSizeOptions,\n onPageSizeChange,\n type = 'numbers',\n siblingCount = 1,\n boundaryCount = 1,\n size = 'small',\n isDisabled,\n hasNextPage,\n isCompact = false,\n summary = false,\n labelFormatter,\n ariaLabel,\n pageSizeSelectStyles,\n qa,\n mods,\n ...rest\n } = props;\n\n const { t } = useI18n();\n const { formatNumber } = useFormatter();\n\n const [pageSize, setPageSize] = useControlledState<number>(\n pageSizeProp as number,\n defaultPageSize ?? 50,\n onPageSizeChange as (v: number) => void,\n );\n const [page, setPage] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (v: number) => void,\n );\n\n // Unknown total: prev/next only, with `hasNextPage` driving the next button.\n // The page must NOT be clamped in that mode — there is nothing to clamp to.\n const isCountable = totalPagesProp != null || total != null;\n\n const info: CubeTablePageInfo = isCountable\n ? getPageInfo({\n page,\n pageSize,\n total: total ?? 0,\n totalPages: totalPagesProp,\n })\n : {\n page: clampPage(page, Number.MAX_SAFE_INTEGER),\n pageSize,\n totalPages: 0,\n total: 0,\n from: 0,\n to: 0,\n };\n\n const { totalPages } = info;\n\n const goTo = useEvent((next: number) => {\n const clamped = isCountable\n ? clampPage(next, totalPages)\n : Math.max(next, 1);\n\n if (clamped !== info.page) setPage(clamped);\n });\n\n const onPageSizeSelectionChange = useEvent((value: any) => {\n setPageSize(Number(value));\n setPage(1);\n });\n\n const onPageSelectionChange = useEvent((value: any) => {\n goTo(Number(value));\n });\n\n const pageItems = useMemo(\n () =>\n type === 'numbers' && isCountable\n ? getPaginationRange({\n page: info.page,\n totalPages,\n siblingCount,\n boundaryCount,\n })\n : [],\n [type, isCountable, info.page, totalPages, siblingCount, boundaryCount],\n );\n\n // `type=\"select\"` materializes one entry per page, so it is only safe for\n // small page counts. Above the cap we fall back to `compact`, which reads the\n // same but renders a single label.\n const selectEntries = useMemo(\n () =>\n type === 'select' && isCountable && totalPages <= 200\n ? Array.from({ length: totalPages }, (_, i) => i + 1)\n : null,\n [type, isCountable, totalPages],\n );\n\n const isFirst = info.page <= 1;\n const isLast = isCountable ? info.page >= totalPages : !hasNextPage;\n\n const styles = extractStyles(props, OUTER_STYLES);\n\n const summaryNode =\n summary === false\n ? null\n : typeof summary === 'function'\n ? summary(info)\n : info.total > 0\n ? // Numbers are formatted here rather than left to i18next, which\n // interpolates them raw (\"1204\", not \"1,204\").\n t('pagination.summary', '{{from}}–{{to}} of {{total}}', {\n from: formatNumber(info.from),\n to: formatNumber(info.to),\n total: formatNumber(info.total),\n })\n : null;\n\n function renderPageControl() {\n if (selectEntries) {\n return (\n <Select\n qa=\"PaginationPageSelect\"\n size={size}\n isDisabled={isDisabled}\n aria-label={t('pagination.selectPage', 'Select page')}\n selectedKey={String(info.page)}\n width=\"min 15x\"\n styles={pageSizeSelectStyles}\n onSelectionChange={onPageSelectionChange}\n >\n {selectEntries.map((entry) => {\n const entryInfo = { ...info, page: entry };\n const label =\n labelFormatter?.(entryInfo) ??\n (info.total > 0\n ? formatRange(entryInfo)\n : t('pagination.page', 'Page {{page}}', { page: entry }));\n\n return (\n <Select.Item key={entry} textValue={String(label)}>\n {label}\n </Select.Item>\n );\n })}\n </Select>\n );\n }\n\n if (type === 'numbers' && pageItems.length > 0) {\n return (\n <div data-element=\"Pages\">\n {pageItems.map((entry, index) =>\n entry === 'gap' ? (\n <div key={`gap-${index}`} data-element=\"Gap\" aria-hidden=\"true\">\n {'…'}\n </div>\n ) : (\n <PageButton\n key={entry}\n qa={`PaginationPage_${entry}`}\n size={size}\n type={entry === info.page ? 'outline' : 'clear'}\n isDisabled={isDisabled}\n aria-label={t('pagination.page', 'Page {{page}}', {\n page: entry,\n })}\n aria-current={entry === info.page ? 'page' : undefined}\n onPress={() => goTo(entry)}\n >\n {entry}\n </PageButton>\n ),\n )}\n </div>\n );\n }\n\n if (!isCountable) return null;\n\n return (\n <div data-element=\"Summary\" data-qa=\"PaginationPageLabel\">\n {t('pagination.pageOf', '{{page}} of {{totalPages}}', {\n page: info.page,\n totalPages,\n })}\n </div>\n );\n }\n\n const showEdgeButtons = !isCompact && isCountable;\n\n return (\n <PaginationElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n qa={qa || 'Pagination'}\n styles={styles}\n mods={{ size, ...mods }}\n aria-label={ariaLabel ?? t('pagination.ariaLabel', 'Pagination')}\n >\n {summaryNode ? <div data-element=\"Summary\">{summaryNode}</div> : null}\n\n {pageSizeOptions && onPageSizeChange ? (\n <Select\n qa=\"PaginationPageSizeSelect\"\n size={size}\n isDisabled={isDisabled}\n aria-label={t('pagination.itemsPerPage', 'Items per page')}\n selectedKey={String(pageSize)}\n styles={pageSizeSelectStyles}\n onSelectionChange={onPageSizeSelectionChange}\n >\n {pageSizeOptions.map((option) => {\n const label = t(\n 'pagination.itemsPerPageOption',\n '{{size}} / page',\n {\n size: option,\n },\n );\n\n return (\n <Select.Item key={option} textValue={label}>\n {label}\n </Select.Item>\n );\n })}\n </Select>\n ) : null}\n\n <div data-element=\"Controls\">\n {showEdgeButtons ? (\n <NavButton\n qa=\"PaginationFirstButton\"\n size={size}\n icon={<BackwardIcon />}\n isDisabled={isFirst || isDisabled}\n aria-label={t('pagination.firstPage', 'First page')}\n onPress={() => goTo(1)}\n />\n ) : null}\n\n <NavButton\n qa=\"PaginationPrevButton\"\n size={size}\n icon={<LeftIcon />}\n isDisabled={isFirst || isDisabled}\n aria-label={t('pagination.previousPage', 'Previous page')}\n onPress={() => goTo(info.page - 1)}\n />\n\n {renderPageControl()}\n\n <NavButton\n qa=\"PaginationNextButton\"\n size={size}\n icon={<RightIcon />}\n isDisabled={isLast || isDisabled}\n aria-label={t('pagination.nextPage', 'Next page')}\n onPress={() => goTo(info.page + 1)}\n />\n\n {showEdgeButtons ? (\n <NavButton\n qa=\"PaginationLastButton\"\n size={size}\n icon={<ForwardIcon />}\n isDisabled={isLast || isDisabled}\n aria-label={t('pagination.lastPage', 'Last page')}\n onPress={() => goTo(totalPages)}\n />\n ) : null}\n </div>\n </PaginationElement>\n );\n}\n\nconst _Pagination = forwardRef(Pagination);\n\n_Pagination.displayName = 'Pagination';\n\nexport { _Pagination as Pagination };\n"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
-
2
- import { CubePaginationItem, CubePaginationProps, CubePaginationType, CubeTablePageInfo } from "./types.js";
3
- import { _Pagination } from "./Pagination.js";
4
- import { PaginationRangeOptions, UsePaginationOptions, UsePaginationResult, clampPage, getPageInfo, getPaginationRange, usePagination } from "./use-pagination.js";
@@ -1,81 +0,0 @@
1
-
2
- import { BaseProps, OuterStyleProps, Styles } from "@tenphi/tasty";
3
- import { ReactNode } from "react";
4
-
5
- //#region src/components/navigation/Pagination/types.d.ts
6
- /**
7
- * How the page control is rendered.
8
- *
9
- * - `numbers` — `1 2 3 … 42` buttons. Correct for large page counts because it
10
- * never materializes one element per page.
11
- * - `select` — a `Select` listing every page (or item range). Only viable when
12
- * the page count is small.
13
- * - `compact` — `‹ 3 of 42 ›`, no page buttons at all.
14
- */
15
- type CubePaginationType = 'numbers' | 'select' | 'compact';
16
- /** Everything a summary or label renderer needs to describe the current page. */
17
- interface CubeTablePageInfo {
18
- /** 1-based. */
19
- page: number;
20
- pageSize: number;
21
- totalPages: number;
22
- /** Total items across all pages. `0` when unknown. */
23
- total: number;
24
- /** 1-based index of the first item on this page. */
25
- from: number;
26
- /** 1-based index of the last item on this page. */
27
- to: number;
28
- }
29
- /**
30
- * A `'gap'` entry stands for the ellipsis between two runs of page numbers.
31
- * Exported because `Pagination` and its tests both need to reason about it.
32
- */
33
- type CubePaginationItem = number | 'gap';
34
- interface CubePaginationProps extends BaseProps, OuterStyleProps {
35
- /** Controlled current page. 1-based. */
36
- page?: number;
37
- /** Initial page for uncontrolled usage. @default 1 */
38
- defaultPage?: number;
39
- onPageChange?: (page: number) => void;
40
- /**
41
- * Total number of pages. Supply this, or `total` + `pageSize` and it is
42
- * derived. When neither is available the control falls back to prev/next
43
- * only, driven by `hasNextPage`.
44
- */
45
- totalPages?: number;
46
- /** Total items across all pages. Preferred over `totalPages`. */
47
- total?: number;
48
- /** Controlled page size. */
49
- pageSize?: number;
50
- /** Initial page size for uncontrolled usage. @default 50 */
51
- defaultPageSize?: number;
52
- /** Supplying this together with `onPageSizeChange` renders the size selector. */
53
- pageSizeOptions?: number[];
54
- onPageSizeChange?: (pageSize: number) => void;
55
- /** @default 'numbers' */
56
- type?: CubePaginationType;
57
- /** Page buttons rendered either side of the current page. @default 1 */
58
- siblingCount?: number;
59
- /** Page buttons pinned at each end. @default 1 */
60
- boundaryCount?: number;
61
- /** @default 'small' */
62
- size?: 'xsmall' | 'small' | 'medium';
63
- isDisabled?: boolean;
64
- /**
65
- * Cursor pagination with an unknown total: keeps "next" enabled while there
66
- * is more to fetch. Ignored when `totalPages` is known.
67
- */
68
- hasNextPage?: boolean;
69
- /** Hide the first/last jump buttons. @default false */
70
- isCompact?: boolean;
71
- /** `true` renders the localized "1–50 of 1,204". @default false */
72
- summary?: boolean | ((info: CubeTablePageInfo) => ReactNode);
73
- /** Labels the entries of `type="select"`. Defaults to item ranges. */
74
- labelFormatter?: (info: CubeTablePageInfo) => ReactNode;
75
- ariaLabel?: string;
76
- styles?: Styles;
77
- pageSizeSelectStyles?: Styles;
78
- }
79
- //#endregion
80
- export { CubePaginationItem, CubePaginationProps, CubePaginationType, CubeTablePageInfo };
81
- //# sourceMappingURL=types.d.ts.map
@@ -1,52 +0,0 @@
1
-
2
- import { CubePaginationItem, CubeTablePageInfo } from "./types.js";
3
-
4
- //#region src/components/navigation/Pagination/use-pagination.d.ts
5
- declare function clampPage(page: number, totalPages: number): number;
6
- interface PaginationRangeOptions {
7
- page: number;
8
- totalPages: number;
9
- /** Page buttons either side of the current page. @default 1 */
10
- siblingCount?: number;
11
- /** Page buttons pinned at each end. @default 1 */
12
- boundaryCount?: number;
13
- }
14
- /**
15
- * Page numbers to render, with `'gap'` marking an elided run. The output length
16
- * is bounded by `boundaryCount * 2 + siblingCount * 2 + 3` regardless of
17
- * `totalPages` — which is the whole point of `type="numbers"`: a 100k-row table
18
- * at 100 per page renders ~7 buttons, not 1000 `Select` items.
19
- */
20
- declare function getPaginationRange({
21
- page,
22
- totalPages,
23
- siblingCount,
24
- boundaryCount
25
- }: PaginationRangeOptions): CubePaginationItem[];
26
- declare function getPageInfo(options: {
27
- page: number;
28
- pageSize: number;
29
- total: number;
30
- totalPages?: number;
31
- }): CubeTablePageInfo;
32
- interface UsePaginationOptions {
33
- page?: number;
34
- defaultPage?: number;
35
- onPageChange?: (page: number) => void;
36
- pageSize?: number;
37
- defaultPageSize?: number;
38
- onPageSizeChange?: (pageSize: number) => void;
39
- }
40
- type UsePaginationResult<T> = CubeTablePageInfo & {
41
- /** The current page's slice of `items`. */pageItems: T[];
42
- setPage: (page: number) => void; /** Also resets to page 1, since the old page index no longer means anything. */
43
- setPageSize: (pageSize: number) => void;
44
- };
45
- /**
46
- * Client-side pagination over an in-memory array. Standalone — `ItemTable` uses
47
- * it internally, but it works on its own for any paged list.
48
- */
49
- declare function usePagination<T>(items: readonly T[], options?: UsePaginationOptions): UsePaginationResult<T>;
50
- //#endregion
51
- export { PaginationRangeOptions, UsePaginationOptions, UsePaginationResult, clampPage, getPageInfo, getPaginationRange, usePagination };
52
- //# sourceMappingURL=use-pagination.d.ts.map
@@ -1,83 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9a2a686 | Cube Dev Team */
2
- import { useEvent } from "../../../_internal/hooks/use-event.js";
3
- import { useMemo } from "react";
4
- import { useControlledState } from "@react-stately/utils";
5
-
6
- //#region src/components/navigation/Pagination/use-pagination.ts
7
- function range(start, end) {
8
- const length = end - start + 1;
9
- return length > 0 ? Array.from({ length }, (_, i) => start + i) : [];
10
- }
11
- function clampPage(page, totalPages) {
12
- if (!Number.isFinite(page)) return 1;
13
- return Math.min(Math.max(Math.trunc(page), 1), Math.max(totalPages, 1));
14
- }
15
- /**
16
- * Page numbers to render, with `'gap'` marking an elided run. The output length
17
- * is bounded by `boundaryCount * 2 + siblingCount * 2 + 3` regardless of
18
- * `totalPages` — which is the whole point of `type="numbers"`: a 100k-row table
19
- * at 100 per page renders ~7 buttons, not 1000 `Select` items.
20
- */
21
- function getPaginationRange({ page, totalPages, siblingCount = 1, boundaryCount = 1 }) {
22
- if (totalPages <= 0) return [];
23
- const current = clampPage(page, totalPages);
24
- const startPages = range(1, Math.min(boundaryCount, totalPages));
25
- const endPages = range(Math.max(totalPages - boundaryCount + 1, boundaryCount + 1), totalPages);
26
- const siblingsStart = Math.max(Math.min(current - siblingCount, totalPages - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);
27
- const siblingsEnd = Math.min(Math.max(current + siblingCount, boundaryCount + siblingCount * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : totalPages - 1);
28
- return [
29
- ...startPages,
30
- ...siblingsStart > boundaryCount + 2 ? ["gap"] : boundaryCount + 1 < totalPages - boundaryCount ? [boundaryCount + 1] : [],
31
- ...range(siblingsStart, siblingsEnd),
32
- ...siblingsEnd < totalPages - boundaryCount - 1 ? ["gap"] : totalPages - boundaryCount > boundaryCount ? [totalPages - boundaryCount] : [],
33
- ...endPages
34
- ];
35
- }
36
- function getPageInfo(options) {
37
- const { pageSize, total } = options;
38
- const totalPages = options.totalPages ?? (pageSize > 0 ? Math.max(Math.ceil(total / pageSize), 1) : 1);
39
- const page = clampPage(options.page, totalPages);
40
- return {
41
- page,
42
- pageSize,
43
- totalPages,
44
- total,
45
- from: total === 0 ? 0 : (page - 1) * pageSize + 1,
46
- to: total === 0 ? 0 : Math.min(page * pageSize, total)
47
- };
48
- }
49
- /**
50
- * Client-side pagination over an in-memory array. Standalone — `ItemTable` uses
51
- * it internally, but it works on its own for any paged list.
52
- */
53
- function usePagination(items, options = {}) {
54
- const [pageSize, setPageSizeState] = useControlledState(options.pageSize, options.defaultPageSize ?? 50, options.onPageSizeChange);
55
- const [page, setPageState] = useControlledState(options.page, options.defaultPage ?? 1, options.onPageChange);
56
- const info = getPageInfo({
57
- page,
58
- pageSize,
59
- total: items.length
60
- });
61
- const setPage = useEvent((next) => {
62
- setPageState(clampPage(next, info.totalPages));
63
- });
64
- const setPageSize = useEvent((next) => {
65
- setPageSizeState(next);
66
- setPageState(1);
67
- });
68
- const pageItems = useMemo(() => items.slice((info.page - 1) * pageSize, info.page * pageSize), [
69
- items,
70
- info.page,
71
- pageSize
72
- ]);
73
- return {
74
- ...info,
75
- pageItems,
76
- setPage,
77
- setPageSize
78
- };
79
- }
80
-
81
- //#endregion
82
- export { clampPage, getPageInfo, getPaginationRange, usePagination };
83
- //# sourceMappingURL=use-pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-pagination.js","names":[],"sources":["../../../../src/components/navigation/Pagination/use-pagination.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { CubePaginationItem, CubeTablePageInfo } from './types';\n\nfunction range(start: number, end: number): number[] {\n const length = end - start + 1;\n\n return length > 0 ? Array.from({ length }, (_, i) => start + i) : [];\n}\n\nexport function clampPage(page: number, totalPages: number): number {\n if (!Number.isFinite(page)) return 1;\n\n return Math.min(Math.max(Math.trunc(page), 1), Math.max(totalPages, 1));\n}\n\nexport interface PaginationRangeOptions {\n page: number;\n totalPages: number;\n /** Page buttons either side of the current page. @default 1 */\n siblingCount?: number;\n /** Page buttons pinned at each end. @default 1 */\n boundaryCount?: number;\n}\n\n/**\n * Page numbers to render, with `'gap'` marking an elided run. The output length\n * is bounded by `boundaryCount * 2 + siblingCount * 2 + 3` regardless of\n * `totalPages` — which is the whole point of `type=\"numbers\"`: a 100k-row table\n * at 100 per page renders ~7 buttons, not 1000 `Select` items.\n */\nexport function getPaginationRange({\n page,\n totalPages,\n siblingCount = 1,\n boundaryCount = 1,\n}: PaginationRangeOptions): CubePaginationItem[] {\n if (totalPages <= 0) return [];\n\n const current = clampPage(page, totalPages);\n\n const startPages = range(1, Math.min(boundaryCount, totalPages));\n const endPages = range(\n Math.max(totalPages - boundaryCount + 1, boundaryCount + 1),\n totalPages,\n );\n\n // Pull the sibling window inwards when it would run past either boundary, so\n // the rendered count stays constant as the user pages through.\n const siblingsStart = Math.max(\n Math.min(\n current - siblingCount,\n totalPages - boundaryCount - siblingCount * 2 - 1,\n ),\n boundaryCount + 2,\n );\n const siblingsEnd = Math.min(\n Math.max(current + siblingCount, boundaryCount + siblingCount * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : totalPages - 1,\n );\n\n return [\n ...startPages,\n\n // A gap that would hide exactly one page renders that page instead.\n ...(siblingsStart > boundaryCount + 2\n ? (['gap'] as CubePaginationItem[])\n : boundaryCount + 1 < totalPages - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n ...range(siblingsStart, siblingsEnd),\n\n ...(siblingsEnd < totalPages - boundaryCount - 1\n ? (['gap'] as CubePaginationItem[])\n : totalPages - boundaryCount > boundaryCount\n ? [totalPages - boundaryCount]\n : []),\n\n ...endPages,\n ];\n}\n\nexport function getPageInfo(options: {\n page: number;\n pageSize: number;\n total: number;\n totalPages?: number;\n}): CubeTablePageInfo {\n const { pageSize, total } = options;\n const totalPages =\n options.totalPages ??\n (pageSize > 0 ? Math.max(Math.ceil(total / pageSize), 1) : 1);\n const page = clampPage(options.page, totalPages);\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\n const to = total === 0 ? 0 : Math.min(page * pageSize, total);\n\n return { page, pageSize, totalPages, total, from, to };\n}\n\nexport interface UsePaginationOptions {\n page?: number;\n defaultPage?: number;\n onPageChange?: (page: number) => void;\n pageSize?: number;\n defaultPageSize?: number;\n onPageSizeChange?: (pageSize: number) => void;\n}\n\nexport type UsePaginationResult<T> = CubeTablePageInfo & {\n /** The current page's slice of `items`. */\n pageItems: T[];\n setPage: (page: number) => void;\n /** Also resets to page 1, since the old page index no longer means anything. */\n setPageSize: (pageSize: number) => void;\n};\n\n/**\n * Client-side pagination over an in-memory array. Standalone — `ItemTable` uses\n * it internally, but it works on its own for any paged list.\n */\nexport function usePagination<T>(\n items: readonly T[],\n options: UsePaginationOptions = {},\n): UsePaginationResult<T> {\n const [pageSize, setPageSizeState] = useControlledState<number>(\n options.pageSize as number,\n options.defaultPageSize ?? 50,\n options.onPageSizeChange as (v: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n options.page as number,\n options.defaultPage ?? 1,\n options.onPageChange as (v: number) => void,\n );\n\n const info = getPageInfo({ page, pageSize, total: items.length });\n\n const setPage = useEvent((next: number) => {\n setPageState(clampPage(next, info.totalPages));\n });\n\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n setPageState(1);\n });\n\n const pageItems = useMemo(\n () => items.slice((info.page - 1) * pageSize, info.page * pageSize) as T[],\n [items, info.page, pageSize],\n );\n\n return { ...info, pageItems, setPage, setPageSize };\n}\n"],"mappings":";;;;;;AAOA,SAAS,MAAM,OAAe,KAAuB;CACnD,MAAM,SAAS,MAAM,QAAQ;AAE7B,QAAO,SAAS,IAAI,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,MAAM,QAAQ,EAAE,GAAG,EAAE;;AAGtE,SAAgB,UAAU,MAAc,YAA4B;AAClE,KAAI,CAAC,OAAO,SAAS,KAAK,CAAE,QAAO;AAEnC,QAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,YAAY,EAAE,CAAC;;;;;;;;AAkBzE,SAAgB,mBAAmB,EACjC,MACA,YACA,eAAe,GACf,gBAAgB,KAC+B;AAC/C,KAAI,cAAc,EAAG,QAAO,EAAE;CAE9B,MAAM,UAAU,UAAU,MAAM,WAAW;CAE3C,MAAM,aAAa,MAAM,GAAG,KAAK,IAAI,eAAe,WAAW,CAAC;CAChE,MAAM,WAAW,MACf,KAAK,IAAI,aAAa,gBAAgB,GAAG,gBAAgB,EAAE,EAC3D,WACD;CAID,MAAM,gBAAgB,KAAK,IACzB,KAAK,IACH,UAAU,cACV,aAAa,gBAAgB,eAAe,IAAI,EACjD,EACD,gBAAgB,EACjB;CACD,MAAM,cAAc,KAAK,IACvB,KAAK,IAAI,UAAU,cAAc,gBAAgB,eAAe,IAAI,EAAE,EACtE,SAAS,SAAS,IAAI,SAAS,KAAK,IAAI,aAAa,EACtD;AAED,QAAO;EACL,GAAG;EAGH,GAAI,gBAAgB,gBAAgB,IAC/B,CAAC,MAAM,GACR,gBAAgB,IAAI,aAAa,gBAC/B,CAAC,gBAAgB,EAAE,GACnB,EAAE;EAER,GAAG,MAAM,eAAe,YAAY;EAEpC,GAAI,cAAc,aAAa,gBAAgB,IAC1C,CAAC,MAAM,GACR,aAAa,gBAAgB,gBAC3B,CAAC,aAAa,cAAc,GAC5B,EAAE;EAER,GAAG;EACJ;;AAGH,SAAgB,YAAY,SAKN;CACpB,MAAM,EAAE,UAAU,UAAU;CAC5B,MAAM,aACJ,QAAQ,eACP,WAAW,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,SAAS,EAAE,EAAE,GAAG;CAC7D,MAAM,OAAO,UAAU,QAAQ,MAAM,WAAW;AAIhD,QAAO;EAAE;EAAM;EAAU;EAAY;EAAO,MAH/B,UAAU,IAAI,KAAK,OAAO,KAAK,WAAW;EAGL,IAFvC,UAAU,IAAI,IAAI,KAAK,IAAI,OAAO,UAAU,MAAM;EAEP;;;;;;AAwBxD,SAAgB,cACd,OACA,UAAgC,EAAE,EACV;CACxB,MAAM,CAAC,UAAU,oBAAoB,mBACnC,QAAQ,UACR,QAAQ,mBAAmB,IAC3B,QAAQ,iBACT;CACD,MAAM,CAAC,MAAM,gBAAgB,mBAC3B,QAAQ,MACR,QAAQ,eAAe,GACvB,QAAQ,aACT;CAED,MAAM,OAAO,YAAY;EAAE;EAAM;EAAU,OAAO,MAAM;EAAQ,CAAC;CAEjE,MAAM,UAAU,UAAU,SAAiB;AACzC,eAAa,UAAU,MAAM,KAAK,WAAW,CAAC;GAC9C;CAEF,MAAM,cAAc,UAAU,SAAiB;AAC7C,mBAAiB,KAAK;AACtB,eAAa,EAAE;GACf;CAEF,MAAM,YAAY,cACV,MAAM,OAAO,KAAK,OAAO,KAAK,UAAU,KAAK,OAAO,SAAS,EACnE;EAAC;EAAO,KAAK;EAAM;EAAS,CAC7B;AAED,QAAO;EAAE,GAAG;EAAM;EAAW;EAAS;EAAa"}