@cube-dev/ui-kit 0.197.0 → 0.198.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.
- package/dist/CHANGELOG.md +48 -9
- package/dist/_internal/hooks/use-debounced-value.js +2 -3
- package/dist/_internal/hooks/use-debounced-value.js.map +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +2 -3
- package/dist/_internal/hooks/use-deprecation-warning.js.map +1 -1
- package/dist/_internal/hooks/use-event.js +2 -3
- package/dist/_internal/hooks/use-event.js.map +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +2 -3
- package/dist/_internal/hooks/use-is-first-render.js.map +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +2 -3
- package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +2 -2
- package/dist/_internal/hooks/use-timer/timer.js.map +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +2 -3
- package/dist/_internal/hooks/use-timer/use-timer.js.map +1 -1
- package/dist/_internal/hooks/use-warn.js +2 -3
- package/dist/_internal/hooks/use-warn.js.map +1 -1
- package/dist/components/Block.d.ts +2 -5
- package/dist/components/Block.js +2 -3
- package/dist/components/Block.js.map +1 -1
- package/dist/components/CollectionItem.d.ts +4 -5
- package/dist/components/CollectionItem.js +4 -5
- package/dist/components/CollectionItem.js.map +1 -1
- package/dist/components/GlobalStyles.js +4 -5
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.d.ts +2 -5
- package/dist/components/GridProvider.js +4 -4
- package/dist/components/GridProvider.js.map +1 -1
- package/dist/components/HiddenInput.js +2 -3
- package/dist/components/HiddenInput.js.map +1 -1
- package/dist/components/Root.d.ts +2 -5
- package/dist/components/Root.js +2 -3
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.d.ts +2 -6
- package/dist/components/actions/Action/Action.js +2 -3
- package/dist/components/actions/Action/Action.js.map +1 -1
- package/dist/components/actions/Banner/Banner.d.ts +9 -12
- package/dist/components/actions/Banner/Banner.js +3 -4
- package/dist/components/actions/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Banner/index.d.ts +2 -1
- package/dist/components/actions/Button/Button.d.ts +4 -7
- package/dist/components/actions/Button/Button.js +2 -3
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/Button/index.d.ts +2 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.d.ts +1 -4
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +2 -3
- package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +3 -6
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +5 -5
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.d.ts +3 -6
- package/dist/components/actions/ButtonSplit/context.js +2 -3
- package/dist/components/actions/ButtonSplit/context.js.map +1 -1
- package/dist/components/actions/ButtonSplit/index.d.ts +2 -1
- package/dist/components/actions/CommandMenu/CommandMenu.d.ts +6 -9
- package/dist/components/actions/CommandMenu/CommandMenu.js +89 -76
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/index.d.ts +2 -1
- package/dist/components/actions/CommandMenu/styled.js +3 -4
- package/dist/components/actions/CommandMenu/styled.js.map +1 -1
- package/dist/components/actions/ItemAction/ItemAction.d.ts +3 -6
- package/dist/components/actions/ItemAction/ItemAction.js +11 -9
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemAction/index.d.ts +2 -1
- package/dist/components/actions/ItemActionContext.d.ts +5 -14
- package/dist/components/actions/ItemActionContext.js +2 -3
- package/dist/components/actions/ItemActionContext.js.map +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +2 -3
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.d.ts +6 -9
- package/dist/components/actions/ItemButton/ItemButton.js +4 -5
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/ItemButton/index.d.ts +2 -1
- package/dist/components/actions/Link/Link.d.ts +1 -5
- package/dist/components/actions/Link/Link.js +2 -3
- package/dist/components/actions/Link/Link.js.map +1 -1
- package/dist/components/actions/Menu/Menu.d.ts +7 -10
- package/dist/components/actions/Menu/Menu.js +9 -8
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.d.ts +3 -4
- package/dist/components/actions/Menu/MenuCollectionItem.js +4 -5
- package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuItem.d.ts +5 -8
- package/dist/components/actions/Menu/MenuItem.js +4 -4
- package/dist/components/actions/Menu/MenuItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuSection.d.ts +4 -7
- package/dist/components/actions/Menu/MenuSection.js +2 -3
- package/dist/components/actions/Menu/MenuSection.js.map +1 -1
- package/dist/components/actions/Menu/MenuTrigger.d.ts +4 -6
- package/dist/components/actions/Menu/MenuTrigger.js +5 -6
- package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.d.ts +3 -5
- package/dist/components/actions/Menu/SubMenuTrigger.js +3 -4
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +2 -3
- package/dist/components/actions/Menu/SubmenuTriggerContext.js.map +1 -1
- package/dist/components/actions/Menu/context.d.ts +3 -5
- package/dist/components/actions/Menu/context.js +2 -3
- package/dist/components/actions/Menu/context.js.map +1 -1
- package/dist/components/actions/Menu/index.d.ts +4 -3
- package/dist/components/actions/Menu/styled.js +3 -4
- package/dist/components/actions/Menu/styled.js.map +1 -1
- package/dist/components/actions/actions-run.js +2 -2
- package/dist/components/actions/actions-run.js.map +1 -1
- package/dist/components/actions/index.d.ts +8 -11
- package/dist/components/actions/index.js +8 -9
- package/dist/components/actions/index.js.map +1 -1
- package/dist/components/actions/use-action.d.ts +10 -27
- package/dist/components/actions/use-action.js +15 -7
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.d.ts +3 -5
- package/dist/components/actions/use-anchored-menu.js +5 -5
- package/dist/components/actions/use-anchored-menu.js.map +1 -1
- package/dist/components/actions/use-context-menu.d.ts +4 -5
- package/dist/components/actions/use-context-menu.js +9 -7
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.d.ts +3 -5
- package/dist/components/content/ActiveZone/ActiveZone.js +3 -4
- package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
- package/dist/components/content/Alert/Alert.d.ts +1 -4
- package/dist/components/content/Alert/Alert.js +3 -3
- package/dist/components/content/Alert/Alert.js.map +1 -1
- package/dist/components/content/Alert/index.d.ts +2 -1
- package/dist/components/content/Alert/types.d.ts +2 -4
- package/dist/components/content/Alert/use-alert.js +2 -3
- package/dist/components/content/Alert/use-alert.js.map +1 -1
- package/dist/components/content/Avatar/Avatar.d.ts +2 -5
- package/dist/components/content/Avatar/Avatar.js +2 -3
- package/dist/components/content/Avatar/Avatar.js.map +1 -1
- package/dist/components/content/Badge/Badge.d.ts +5 -7
- package/dist/components/content/Badge/Badge.js +4 -5
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.d.ts +2 -5
- package/dist/components/content/Card/Card.js +2 -3
- package/dist/components/content/Card/Card.js.map +1 -1
- package/dist/components/content/Content.d.ts +2 -5
- package/dist/components/content/Content.js +2 -3
- package/dist/components/content/Content.js.map +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.d.ts +3 -5
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -4
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
- package/dist/components/content/CopyPasteBlock/index.d.ts +2 -1
- package/dist/components/content/CopySnippet/CopySnippet.d.ts +529 -526
- package/dist/components/content/CopySnippet/CopySnippet.js +5 -6
- package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/CopySnippet/index.d.ts +2 -1
- package/dist/components/content/Disclosure/Disclosure.d.ts +12 -14
- package/dist/components/content/Disclosure/Disclosure.js +8 -7
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Disclosure/index.d.ts +2 -1
- package/dist/components/content/Divider.d.ts +2 -5
- package/dist/components/content/Divider.js +4 -4
- package/dist/components/content/Divider.js.map +1 -1
- package/dist/components/content/Footer.d.ts +2 -5
- package/dist/components/content/Footer.js +2 -3
- package/dist/components/content/Footer.js.map +1 -1
- package/dist/components/content/Header.d.ts +2 -5
- package/dist/components/content/Header.js +2 -3
- package/dist/components/content/Header.js.map +1 -1
- package/dist/components/content/HotKeys/HotKeys.d.ts +3 -5
- package/dist/components/content/HotKeys/HotKeys.js +4 -5
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/HotKeys/index.d.ts +2 -1
- package/dist/components/content/InfoBadge/InfoBadge.d.ts +4 -6
- package/dist/components/content/InfoBadge/InfoBadge.js +2 -3
- package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
- package/dist/components/content/InlineInput/InlineInput.d.ts +4 -7
- package/dist/components/content/InlineInput/InlineInput.js +5 -5
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/InlineInput/index.d.ts +2 -1
- package/dist/components/content/Item/Item.d.ts +4 -7
- package/dist/components/content/Item/Item.js +4 -5
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +2 -3
- package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -1
- package/dist/components/content/Item/index.d.ts +2 -1
- package/dist/components/content/ItemBadge/ItemBadge.d.ts +3 -5
- package/dist/components/content/ItemBadge/ItemBadge.js +2 -3
- package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
- package/dist/components/content/ItemBadge/index.d.ts +2 -1
- package/dist/components/content/ItemCard/ItemCard.d.ts +5 -8
- package/dist/components/content/ItemCard/ItemCard.js +3 -4
- package/dist/components/content/ItemCard/ItemCard.js.map +1 -1
- package/dist/components/content/Layout/GridLayout.d.ts +12 -13
- package/dist/components/content/Layout/GridLayout.js +13 -14
- package/dist/components/content/Layout/GridLayout.js.map +1 -1
- package/dist/components/content/Layout/Layout.d.ts +1 -3
- package/dist/components/content/Layout/Layout.js +28 -17
- package/dist/components/content/Layout/Layout.js.map +1 -1
- package/dist/components/content/Layout/LayoutBlock.d.ts +3 -5
- package/dist/components/content/Layout/LayoutBlock.js +4 -5
- package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
- package/dist/components/content/Layout/LayoutCenter.d.ts +3 -5
- package/dist/components/content/Layout/LayoutCenter.js +4 -5
- package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
- package/dist/components/content/Layout/LayoutContainer.d.ts +3 -5
- package/dist/components/content/Layout/LayoutContainer.js +5 -5
- package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.d.ts +4 -6
- package/dist/components/content/Layout/LayoutContent.js +3 -4
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.d.ts +1 -3
- package/dist/components/content/Layout/LayoutContext.js +2 -3
- package/dist/components/content/Layout/LayoutContext.js.map +1 -1
- package/dist/components/content/Layout/LayoutFlex.d.ts +3 -5
- package/dist/components/content/Layout/LayoutFlex.js +4 -5
- package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
- package/dist/components/content/Layout/LayoutFooter.d.ts +3 -5
- package/dist/components/content/Layout/LayoutFooter.js +4 -5
- package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
- package/dist/components/content/Layout/LayoutGrid.d.ts +3 -5
- package/dist/components/content/Layout/LayoutGrid.js +4 -5
- package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
- package/dist/components/content/Layout/LayoutHeader.d.ts +3 -5
- package/dist/components/content/Layout/LayoutHeader.js +6 -6
- package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPane.d.ts +4 -6
- package/dist/components/content/Layout/LayoutPane.js +7 -8
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.d.ts +20 -6
- package/dist/components/content/Layout/LayoutPanel.js +32 -21
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.d.ts +4 -6
- package/dist/components/content/Layout/LayoutPanelHeader.js +4 -5
- package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelTransition.js +54 -51
- package/dist/components/content/Layout/LayoutPanelTransition.js.map +1 -1
- package/dist/components/content/Layout/LayoutToolbar.d.ts +3 -5
- package/dist/components/content/Layout/LayoutToolbar.js +4 -5
- package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +2 -3
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
- package/dist/components/content/Layout/index.d.ts +13 -14
- package/dist/components/content/Layout/index.js +17 -18
- package/dist/components/content/Layout/index.js.map +1 -1
- package/dist/components/content/Layout/utils.js +2 -2
- package/dist/components/content/Layout/utils.js.map +1 -1
- package/dist/components/content/Paragraph.d.ts +2 -5
- package/dist/components/content/Paragraph.js +3 -4
- package/dist/components/content/Paragraph.js.map +1 -1
- package/dist/components/content/Placeholder/Placeholder.d.ts +2 -5
- package/dist/components/content/Placeholder/Placeholder.js +2 -3
- package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/content/PrismCode/PrismCode.d.ts +3 -5
- package/dist/components/content/PrismCode/PrismCode.js +4 -5
- package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +3 -4
- package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.d.ts +2 -9
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +3 -4
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
- package/dist/components/content/Result/Result.d.ts +9 -12
- package/dist/components/content/Result/Result.js +4 -5
- package/dist/components/content/Result/Result.js.map +1 -1
- package/dist/components/content/Skeleton/Skeleton.d.ts +13 -61
- package/dist/components/content/Skeleton/Skeleton.js +2 -3
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.d.ts +4 -6
- package/dist/components/content/Tag/Tag.js +4 -5
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.d.ts +1347 -1350
- package/dist/components/content/Text.js +3 -4
- package/dist/components/content/Text.js.map +1 -1
- package/dist/components/content/TextItem/TextItem.d.ts +6 -5
- package/dist/components/content/TextItem/TextItem.js +2 -3
- package/dist/components/content/TextItem/TextItem.js.map +1 -1
- package/dist/components/content/TextItem/index.d.ts +2 -1
- package/dist/components/content/Title.d.ts +5 -7
- package/dist/components/content/Title.js +3 -4
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.d.ts +1 -4
- package/dist/components/content/Tree/Tree.js +4 -4
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +5 -6
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/index.d.ts +2 -1
- package/dist/components/content/Tree/styled.js +18 -4
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +2 -2
- package/dist/components/content/Tree/tree-index.js.map +1 -1
- package/dist/components/content/Tree/types.d.ts +11 -13
- package/dist/components/content/Tree/use-checkbox-tree.js +2 -3
- package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
- package/dist/components/content/Tree/use-load-data.js +2 -3
- package/dist/components/content/Tree/use-load-data.js.map +1 -1
- package/dist/components/content/highlightText.js +3 -4
- package/dist/components/content/highlightText.js.map +1 -1
- package/dist/components/content/use-auto-tooltip.d.ts +1 -3
- package/dist/components/content/use-auto-tooltip.js +2 -3
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/data/DataTable/DataTable.d.ts +1 -2
- package/dist/components/data/DataTable/DataTable.js +35 -25
- package/dist/components/data/DataTable/DataTable.js.map +1 -1
- package/dist/components/data/DataTable/index.d.ts +2 -1
- package/dist/components/data/DataTable/types.d.ts +4 -6
- package/dist/components/data/ItemTable/ItemTable.d.ts +6 -4
- package/dist/components/data/ItemTable/ItemTable.js +8 -5
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +2 -5
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +8 -4
- package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +3 -4
- package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +8 -4
- package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +4 -15
- package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -3
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
- package/dist/components/data/ItemTable/index.d.ts +2 -1
- package/dist/components/data/ItemTable/types.d.ts +6 -6
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +4 -4
- package/dist/components/data/ItemTable/use-item-table-column-widths.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +2 -3
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +2 -3
- package/dist/components/data/ItemTable/use-item-table-pagination.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +2 -3
- package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +2 -3
- package/dist/components/data/ItemTable/use-item-table-sort.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +2 -3
- package/dist/components/data/ItemTable/use-item-table-tree-model.js.map +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +2 -3
- package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
- package/dist/components/data/TableBase/RowCollection.d.ts +2 -0
- package/dist/components/data/TableBase/RowCollection.js +2 -2
- package/dist/components/data/TableBase/RowCollection.js.map +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +2 -3
- package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
- package/dist/components/data/TableBase/TableRow.js +2 -3
- package/dist/components/data/TableBase/TableRow.js.map +1 -1
- package/dist/components/data/TableBase/TableView.d.ts +2 -3
- package/dist/components/data/TableBase/TableView.js +25 -15
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +9 -9
- package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
- package/dist/components/data/TableBase/column-header.js +2 -3
- package/dist/components/data/TableBase/column-header.js.map +1 -1
- package/dist/components/data/TableBase/column-menu.d.ts +3 -6
- package/dist/components/data/TableBase/column-menu.js +3 -4
- package/dist/components/data/TableBase/column-menu.js.map +1 -1
- package/dist/components/data/TableBase/column-styles.js +2 -3
- package/dist/components/data/TableBase/column-styles.js.map +1 -1
- package/dist/components/data/TableBase/column-tint.js +4 -5
- package/dist/components/data/TableBase/column-tint.js.map +1 -1
- package/dist/components/data/TableBase/index.d.ts +2 -1
- package/dist/components/data/TableBase/row-menu.js +2 -3
- package/dist/components/data/TableBase/row-menu.js.map +1 -1
- package/dist/components/data/TableBase/styled.d.ts +1 -3
- package/dist/components/data/TableBase/styled.js +168 -4
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.d.ts +2 -0
- package/dist/components/data/TableBase/table-tree.js +2 -2
- package/dist/components/data/TableBase/table-tree.js.map +1 -1
- package/dist/components/data/TableBase/types.d.ts +30 -26
- package/dist/components/data/TableBase/types.js +2 -2
- package/dist/components/data/TableBase/types.js.map +1 -1
- package/dist/components/data/TableBase/use-cell-selection.d.ts +1 -2
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-column-menu.js +4 -5
- package/dist/components/data/TableBase/use-column-menu.js.map +1 -1
- package/dist/components/data/TableBase/use-column-order.js +3 -4
- package/dist/components/data/TableBase/use-column-order.js.map +1 -1
- package/dist/components/data/TableBase/use-column-window.js +3 -4
- package/dist/components/data/TableBase/use-column-window.js.map +1 -1
- package/dist/components/data/TableBase/use-container-width.js +2 -3
- package/dist/components/data/TableBase/use-container-width.js.map +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +3 -7
- package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +2 -3
- package/dist/components/data/TableBase/use-scrollability.js.map +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +4 -8
- package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
- package/dist/components/data/TableBase/use-table-search.js +2 -3
- package/dist/components/data/TableBase/use-table-search.js.map +1 -1
- package/dist/components/data/TableBase/use-table-selection.d.ts +1 -0
- package/dist/components/data/TableBase/use-table-selection.js +7 -6
- package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +2 -3
- package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +2 -3
- package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
- package/dist/components/data/TableBase/use-table-storage.d.ts +1 -3
- package/dist/components/data/TableBase/use-table-storage.js +4 -4
- package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +3 -4
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js.map +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +2 -3
- package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
- package/dist/components/data/index.d.ts +4 -3
- package/dist/components/fields/Checkbox/Checkbox.d.ts +7 -10
- package/dist/components/fields/Checkbox/Checkbox.js +39 -36
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +4 -6
- package/dist/components/fields/Checkbox/CheckboxGroup.js +16 -16
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/fields/Checkbox/context.js +2 -3
- package/dist/components/fields/Checkbox/context.js.map +1 -1
- package/dist/components/fields/Checkbox/index.d.ts +3 -2
- package/dist/components/fields/ColorInput/ColorInput.d.ts +3 -6
- package/dist/components/fields/ColorInput/ColorInput.js +2 -3
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorInput/index.d.ts +2 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +3 -6
- package/dist/components/fields/ColorPicker/ColorPicker.js +321 -118
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorPicker/index.d.ts +2 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.d.ts +2 -5
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +14 -3
- package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
- package/dist/components/fields/ColorSwatch/index.d.ts +2 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +3 -6
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +235 -72
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ColorSwatchGroup/index.d.ts +2 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +5 -6
- package/dist/components/fields/ComboBox/ComboBox.js +48 -45
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +2 -3
- package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -1
- package/dist/components/fields/ComboBox/index.d.ts +2 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +10 -9
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +7 -7
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +2 -2
- package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
- package/dist/components/fields/CommandTextArea/index.d.ts +2 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +2 -3
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInput.d.ts +2 -3
- package/dist/components/fields/DatePicker/DateInput.js +10 -8
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +53 -44
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.d.ts +3 -6
- package/dist/components/fields/DatePicker/DatePicker.js +28 -26
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +2 -3
- package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +2 -3
- package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +2 -3
- package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +2 -3
- package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.d.ts +2 -3
- package/dist/components/fields/DatePicker/DateRangePicker.js +29 -27
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +2 -3
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +110 -110
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.d.ts +3 -6
- package/dist/components/fields/DatePicker/MonthPicker.js +3 -4
- package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.d.ts +2 -4
- package/dist/components/fields/DatePicker/PeriodPicker.js +14 -14
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.d.ts +3 -6
- package/dist/components/fields/DatePicker/QuarterPicker.js +3 -4
- package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/TimeInput.d.ts +3 -6
- package/dist/components/fields/DatePicker/TimeInput.js +10 -8
- package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.d.ts +3 -6
- package/dist/components/fields/DatePicker/WeekPicker.js +3 -4
- package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/YearPicker.d.ts +3 -6
- package/dist/components/fields/DatePicker/YearPicker.js +3 -4
- package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/index.d.ts +10 -9
- package/dist/components/fields/DatePicker/parseDate.d.ts +1 -4
- package/dist/components/fields/DatePicker/parseDate.js +2 -3
- package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
- package/dist/components/fields/DatePicker/period.d.ts +5 -7
- package/dist/components/fields/DatePicker/period.js +3 -4
- package/dist/components/fields/DatePicker/period.js.map +1 -1
- package/dist/components/fields/DatePicker/props.js +2 -2
- package/dist/components/fields/DatePicker/props.js.map +1 -1
- package/dist/components/fields/DatePicker/types.d.ts +2 -4
- package/dist/components/fields/DatePicker/utils.js +14 -11
- package/dist/components/fields/DatePicker/utils.js.map +1 -1
- package/dist/components/fields/FileInput/FileInput.d.ts +3 -5
- package/dist/components/fields/FileInput/FileInput.js +290 -107
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.d.ts +4 -5
- package/dist/components/fields/FilterListBox/FilterListBox.js +24 -19
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterListBox/index.d.ts +2 -1
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +3 -5
- package/dist/components/fields/FilterPicker/FilterPicker.js +12 -10
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/FilterPicker/index.d.ts +2 -1
- package/dist/components/fields/Input/Input.d.ts +6 -7
- package/dist/components/fields/Input/Input.js +6 -7
- package/dist/components/fields/Input/Input.js.map +1 -1
- package/dist/components/fields/Input/index.d.ts +2 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +2 -3
- package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +5 -7
- package/dist/components/fields/ListBox/ListBox.js +30 -26
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/index.d.ts +2 -1
- package/dist/components/fields/ListBox/optionId.js +2 -2
- package/dist/components/fields/ListBox/optionId.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +3 -4
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +2 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.d.ts +2 -4
- package/dist/components/fields/ListBoxPopover/listNavigation.js +2 -2
- package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +4 -12
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +2 -3
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
- package/dist/components/fields/NumberInput/NumberInput.d.ts +4 -6
- package/dist/components/fields/NumberInput/NumberInput.js +114 -110
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +2 -3
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.d.ts +3 -5
- package/dist/components/fields/PasswordInput/PasswordInput.js +4 -4
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +3 -5
- package/dist/components/fields/Picker/Picker.js +12 -10
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/Picker/index.d.ts +2 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +397 -398
- package/dist/components/fields/RadioGroup/Radio.js +60 -65
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.d.ts +5 -7
- package/dist/components/fields/RadioGroup/RadioGroup.js +19 -19
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +2 -3
- package/dist/components/fields/RadioGroup/context.js.map +1 -1
- package/dist/components/fields/RadioGroup/index.d.ts +3 -2
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +5 -6
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +16 -16
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchComboBox/index.d.ts +2 -1
- package/dist/components/fields/SearchInput/SearchInput.d.ts +4 -6
- package/dist/components/fields/SearchInput/SearchInput.js +48 -49
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/SearchInput/index.d.ts +2 -1
- package/dist/components/fields/Select/Select.d.ts +9 -29
- package/dist/components/fields/Select/Select.js +12 -10
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Select/index.d.ts +2 -1
- package/dist/components/fields/Slider/Gradation.js +2 -3
- package/dist/components/fields/Slider/Gradation.js.map +1 -1
- package/dist/components/fields/Slider/HueSlider.d.ts +3 -6
- package/dist/components/fields/Slider/HueSlider.js +5 -6
- package/dist/components/fields/Slider/HueSlider.js.map +1 -1
- package/dist/components/fields/Slider/RangeSlider.d.ts +3 -6
- package/dist/components/fields/Slider/RangeSlider.js +4 -5
- package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
- package/dist/components/fields/Slider/Slider.d.ts +3 -6
- package/dist/components/fields/Slider/Slider.js +4 -5
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +296 -88
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +2 -3
- package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +2 -3
- package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
- package/dist/components/fields/Slider/elements.js +2 -3
- package/dist/components/fields/Slider/elements.js.map +1 -1
- package/dist/components/fields/Slider/index.d.ts +4 -4
- package/dist/components/fields/Slider/index.js +5 -6
- package/dist/components/fields/Slider/types.d.ts +2 -3
- package/dist/components/fields/Switch/Switch.d.ts +4 -6
- package/dist/components/fields/Switch/Switch.js +78 -70
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +5 -6
- package/dist/components/fields/TagInput/TagInput.js +411 -998
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +3 -4
- package/dist/components/fields/TagInput/TagList.js.map +1 -1
- package/dist/components/fields/TagInput/index.d.ts +2 -1
- package/dist/components/fields/TagInput/useActiveOption.js +2 -3
- package/dist/components/fields/TagInput/useActiveOption.js.map +1 -1
- package/dist/components/fields/TagInput/useTagError.js +2 -3
- package/dist/components/fields/TagInput/useTagError.js.map +1 -1
- package/dist/components/fields/TextArea/TextArea.d.ts +4 -6
- package/dist/components/fields/TextArea/TextArea.js +4 -4
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextArea/index.d.ts +2 -1
- package/dist/components/fields/TextInput/TextInput.d.ts +4 -6
- package/dist/components/fields/TextInput/TextInput.js +3 -3
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -8
- package/dist/components/fields/TextInput/TextInputBase.js +10 -9
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +2 -3
- package/dist/components/fields/TextInput/displayed-validation.js.map +1 -1
- package/dist/components/fields/TextInput/index.d.ts +2 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +2 -3
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +4 -6
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +8 -10
- package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
- package/dist/components/fields/TextInputMapper/index.d.ts +2 -1
- package/dist/components/fields/TriggerActions.js +3 -4
- package/dist/components/fields/TriggerActions.js.map +1 -1
- package/dist/components/fields/color/ColorPanel.js +4 -5
- package/dist/components/fields/color/ColorPanel.js.map +1 -1
- package/dist/components/fields/color/channels.d.ts +2 -4
- package/dist/components/fields/color/channels.js +2 -3
- package/dist/components/fields/color/channels.js.map +1 -1
- package/dist/components/fields/color/color.d.ts +4 -5
- package/dist/components/fields/color/color.js +3 -4
- package/dist/components/fields/color/color.js.map +1 -1
- package/dist/components/fields/color/context.js +2 -3
- package/dist/components/fields/color/context.js.map +1 -1
- package/dist/components/fields/color/index.d.ts +2 -1
- package/dist/components/fields/index.d.ts +27 -26
- package/dist/components/fields/option-origin-press.js +2 -2
- package/dist/components/fields/option-origin-press.js.map +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +15 -19
- package/dist/components/form/FieldWrapper/FieldWrapper.js +123 -123
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +2 -3
- package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
- package/dist/components/form/FieldWrapper/index.d.ts +2 -1
- package/dist/components/form/FieldWrapper/types.d.ts +20 -12
- package/dist/components/form/Form/Field.d.ts +2 -5
- package/dist/components/form/Form/Field.js +2 -3
- package/dist/components/form/Form/Field.js.map +1 -1
- package/dist/components/form/Form/Form.d.ts +6 -12
- package/dist/components/form/Form/Form.js +5 -6
- package/dist/components/form/Form/Form.js.map +1 -1
- package/dist/components/form/Form/ModernFormRoot.d.ts +1 -3
- package/dist/components/form/Form/ModernFormRoot.js +3 -4
- package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.d.ts +3 -6
- package/dist/components/form/Form/ResetButton/ResetButton.js +3 -4
- package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
- package/dist/components/form/Form/ResetButton/index.d.ts +2 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.d.ts +3 -6
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +3 -4
- package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/dist/components/form/Form/SubmitButton/index.d.ts +2 -1
- package/dist/components/form/Form/SubmitError.d.ts +3 -5
- package/dist/components/form/Form/SubmitError.js +3 -4
- package/dist/components/form/Form/SubmitError.js.map +1 -1
- package/dist/components/form/Form/backend.d.ts +3 -5
- package/dist/components/form/Form/backend.js +2 -2
- package/dist/components/form/Form/backend.js.map +1 -1
- package/dist/components/form/Form/index.d.ts +7 -10
- package/dist/components/form/Form/index.js +7 -8
- package/dist/components/form/Form/index.js.map +1 -1
- package/dist/components/form/Form/modern/actions.js +2 -3
- package/dist/components/form/Form/modern/actions.js.map +1 -1
- package/dist/components/form/Form/modern/context.d.ts +2 -4
- package/dist/components/form/Form/modern/context.js +2 -3
- package/dist/components/form/Form/modern/context.js.map +1 -1
- package/dist/components/form/Form/modern/controller.d.ts +9 -11
- package/dist/components/form/Form/modern/controller.js +2 -3
- package/dist/components/form/Form/modern/controller.js.map +1 -1
- package/dist/components/form/Form/modern/field-binding.js +2 -3
- package/dist/components/form/Form/modern/field-binding.js.map +1 -1
- package/dist/components/form/Form/modern/field.d.ts +4 -5
- package/dist/components/form/Form/modern/field.js +2 -3
- package/dist/components/form/Form/modern/field.js.map +1 -1
- package/dist/components/form/Form/modern/path-types.d.ts +4 -5
- package/dist/components/form/Form/modern/react.d.ts +7 -10
- package/dist/components/form/Form/modern/react.js +2 -3
- package/dist/components/form/Form/modern/react.js.map +1 -1
- package/dist/components/form/Form/modern/read-types.d.ts +3 -4
- package/dist/components/form/Form/modern/store.js +2 -3
- package/dist/components/form/Form/modern/store.js.map +1 -1
- package/dist/components/form/Form/modern/types.d.ts +18 -20
- package/dist/components/form/Form/modern/validation.d.ts +2 -4
- package/dist/components/form/Form/modern/validation.js +2 -3
- package/dist/components/form/Form/modern/validation.js.map +1 -1
- package/dist/components/form/Form/modern/values.d.ts +1 -2
- package/dist/components/form/Form/modern/values.js +2 -2
- package/dist/components/form/Form/modern/values.js.map +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +3 -5
- package/dist/components/form/Form/reset-unbound-controls.js.map +1 -1
- package/dist/components/form/Form/types.d.ts +4 -6
- package/dist/components/form/Form/use-field/index.d.ts +2 -1
- package/dist/components/form/Form/use-field/types.d.ts +6 -6
- package/dist/components/form/Form/use-field/use-field-binding.js +2 -3
- package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field-props.d.ts +11 -9
- package/dist/components/form/Form/use-field/use-field-props.js +48 -42
- package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field.d.ts +2 -4
- package/dist/components/form/Form/use-field/use-field.js +2 -3
- package/dist/components/form/Form/use-field/use-field.js.map +1 -1
- package/dist/components/form/Form/use-form.d.ts +5 -6
- package/dist/components/form/Form/use-form.js +3 -4
- package/dist/components/form/Form/use-form.js.map +1 -1
- package/dist/components/form/Form/validation.js +2 -3
- package/dist/components/form/Form/validation.js.map +1 -1
- package/dist/components/form/Label.d.ts +7 -9
- package/dist/components/form/Label.js +3 -4
- package/dist/components/form/Label.js.map +1 -1
- package/dist/components/form/field-chrome.js +46 -6
- package/dist/components/form/field-chrome.js.map +1 -1
- package/dist/components/form/index.d.ts +6 -5
- package/dist/components/form/legacy-tooltip.js +2 -3
- package/dist/components/form/legacy-tooltip.js.map +1 -1
- package/dist/components/form/validation/ValidationIndicator.d.ts +4 -10
- package/dist/components/form/validation/ValidationIndicator.js +2 -3
- package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
- package/dist/components/form/validation/index.d.ts +2 -1
- package/dist/components/form/validation/resolve-validation-props.d.ts +6 -17
- package/dist/components/form/validation/resolve-validation-props.js +2 -2
- package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
- package/dist/components/form/validation/use-validation-props.d.ts +1 -3
- package/dist/components/form/validation/use-validation-props.js +2 -3
- package/dist/components/form/validation/use-validation-props.js.map +1 -1
- package/dist/components/form/wrapper.d.ts +23 -9
- package/dist/components/form/wrapper.js +20 -11
- package/dist/components/form/wrapper.js.map +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.d.ts +22 -25
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +16 -16
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.d.ts +3 -5
- package/dist/components/helpers/IconSwitch/IconSwitch.js +2 -3
- package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
- package/dist/components/layout/Flex.d.ts +2 -5
- package/dist/components/layout/Flex.js +2 -3
- package/dist/components/layout/Flex.js.map +1 -1
- package/dist/components/layout/Flow.d.ts +2 -5
- package/dist/components/layout/Flow.js +2 -3
- package/dist/components/layout/Flow.js.map +1 -1
- package/dist/components/layout/Grid.d.ts +2 -5
- package/dist/components/layout/Grid.js +2 -3
- package/dist/components/layout/Grid.js.map +1 -1
- package/dist/components/layout/Panel.d.ts +3 -5
- package/dist/components/layout/Panel.js +22 -22
- package/dist/components/layout/Panel.js.map +1 -1
- package/dist/components/layout/Prefix.d.ts +2 -5
- package/dist/components/layout/Prefix.js +2 -3
- package/dist/components/layout/Prefix.js.map +1 -1
- package/dist/components/layout/ResizablePanel.d.ts +3 -5
- package/dist/components/layout/ResizablePanel.js +4 -5
- package/dist/components/layout/ResizablePanel.js.map +1 -1
- package/dist/components/layout/Space.d.ts +2 -5
- package/dist/components/layout/Space.js +2 -3
- package/dist/components/layout/Space.js.map +1 -1
- package/dist/components/layout/Suffix.d.ts +2 -5
- package/dist/components/layout/Suffix.js +2 -3
- package/dist/components/layout/Suffix.js.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.d.ts +2 -4
- package/dist/components/navigation/Pagination/Pagination.js +9 -5
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/index.d.ts +3 -2
- package/dist/components/navigation/Pagination/types.d.ts +4 -6
- package/dist/components/navigation/Pagination/use-pagination.d.ts +11 -16
- package/dist/components/navigation/Pagination/use-pagination.js +2 -3
- package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.d.ts +2 -5
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +2 -3
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js.map +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +2 -3
- package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +4 -5
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +2 -3
- package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +3 -4
- package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +2 -3
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.d.ts +4 -7
- package/dist/components/navigation/Tabs/Tabs.js +5 -5
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.d.ts +2 -6
- package/dist/components/navigation/Tabs/TabsAction.js +3 -4
- package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +2 -3
- package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
- package/dist/components/navigation/Tabs/index.d.ts +2 -1
- package/dist/components/navigation/Tabs/popover-placement.js +2 -2
- package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
- package/dist/components/navigation/Tabs/styled.js +3 -4
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +15 -16
- package/dist/components/navigation/Tabs/types.js +2 -2
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +2 -3
- package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +2 -3
- package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
- package/dist/components/navigation/index.d.ts +3 -2
- package/dist/components/organisms/StatsCard/StatsCard.d.ts +2 -10
- package/dist/components/organisms/StatsCard/StatsCard.js +4 -5
- package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
- package/dist/components/other/Calendar/Calendar.js +3 -4
- package/dist/components/other/Calendar/Calendar.js.map +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +2 -3
- package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +2 -3
- package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +3 -4
- package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +2 -3
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +2 -3
- package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +2 -3
- package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +3 -4
- package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
- package/dist/components/other/Calendar/styled.js +2 -3
- package/dist/components/other/Calendar/styled.js.map +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.d.ts +3 -6
- package/dist/components/other/CubeLogo/CubeLogo.js +2 -3
- package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.d.ts +2 -5
- package/dist/components/other/NoDataIcon/NoDataIcon.js +2 -3
- package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
- package/dist/components/other/NoDataIcon/index.d.ts +2 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +4 -6
- package/dist/components/overlays/AlertDialog/AlertDialog.js +4 -5
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +3 -6
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -5
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.d.ts +1 -2
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +3 -4
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
- package/dist/components/overlays/AlertDialog/index.d.ts +3 -2
- package/dist/components/overlays/AlertDialog/types.d.ts +5 -10
- package/dist/components/overlays/Dialog/Dialog.d.ts +6 -6
- package/dist/components/overlays/Dialog/Dialog.js +95 -33
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.d.ts +2 -5
- package/dist/components/overlays/Dialog/DialogContainer.js +4 -5
- package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogForm.d.ts +5 -7
- package/dist/components/overlays/Dialog/DialogForm.js +5 -6
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +3 -6
- package/dist/components/overlays/Dialog/DialogTrigger.js +5 -6
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +5 -6
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/context.js +12 -4
- package/dist/components/overlays/Dialog/context.js.map +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +2 -2
- package/dist/components/overlays/Dialog/default-button-text.js.map +1 -1
- package/dist/components/overlays/Dialog/index.d.ts +2 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +2 -3
- package/dist/components/overlays/Dialog/use-content-overflow.js.map +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.d.ts +2 -5
- package/dist/components/overlays/Dialog/use-dialog-container.js +2 -3
- package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +2 -3
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +386 -0
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js.map +1 -0
- package/dist/components/overlays/Modal/Modal.d.ts +1 -2
- package/dist/components/overlays/Modal/Modal.js +5 -6
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +2 -3
- package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
- package/dist/components/overlays/Modal/Overlay.js +35 -14
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +4 -5
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +5 -6
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +3 -4
- package/dist/components/overlays/Modal/Underlay.js.map +1 -1
- package/dist/components/overlays/Modal/index.d.ts +2 -1
- package/dist/components/overlays/Modal/modal-containment.js +2 -3
- package/dist/components/overlays/Modal/modal-containment.js.map +1 -1
- package/dist/components/overlays/Modal/types.d.ts +1 -3
- package/dist/components/overlays/Notifications/Notification.d.ts +1 -3
- package/dist/components/overlays/Notifications/Notification.js +4 -4
- package/dist/components/overlays/Notifications/Notification.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.d.ts +1 -10
- package/dist/components/overlays/Notifications/NotificationAction.js +2 -3
- package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.d.ts +2 -18
- package/dist/components/overlays/Notifications/NotificationCard.js +3 -4
- package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.d.ts +1 -4
- package/dist/components/overlays/Notifications/NotificationContext.js +2 -3
- package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.d.ts +2 -9
- package/dist/components/overlays/Notifications/NotificationItem.js +2 -3
- package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +6 -8
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.d.ts +1 -7
- package/dist/components/overlays/Notifications/OverlayProvider.js +3 -4
- package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.d.ts +1 -8
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +3 -4
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +2 -2
- package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -3
- package/dist/components/overlays/Notifications/format-relative-time.js +2 -2
- package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
- package/dist/components/overlays/Notifications/index.d.ts +3 -4
- package/dist/components/overlays/Notifications/index.js +4 -5
- package/dist/components/overlays/Notifications/index.js.map +1 -1
- package/dist/components/overlays/Notifications/types.d.ts +14 -16
- package/dist/components/overlays/Notifications/use-notification-state.js +3 -4
- package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-notifications.d.ts +1 -3
- package/dist/components/overlays/Notifications/use-notifications.js +8 -7
- package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +2 -3
- package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.d.ts +2 -4
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +2 -3
- package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +2 -3
- package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +2 -3
- package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
- package/dist/components/overlays/Toast/ToastItem.d.ts +3 -6
- package/dist/components/overlays/Toast/ToastItem.js +3 -4
- package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
- package/dist/components/overlays/Toast/ToastProvider.d.ts +2 -1
- package/dist/components/overlays/Toast/index.d.ts +6 -7
- package/dist/components/overlays/Toast/index.js +3 -4
- package/dist/components/overlays/Toast/index.js.map +1 -1
- package/dist/components/overlays/Toast/types.d.ts +8 -10
- package/dist/components/overlays/Toast/useProgressToast.d.ts +1 -3
- package/dist/components/overlays/Toast/useProgressToast.js +11 -10
- package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
- package/dist/components/overlays/Toast/useToast.d.ts +2 -4
- package/dist/components/overlays/Toast/useToast.js +2 -3
- package/dist/components/overlays/Toast/useToast.js.map +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.d.ts +3 -5
- package/dist/components/overlays/Tooltip/Tooltip.js +3 -4
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.d.ts +2 -4
- package/dist/components/overlays/Tooltip/TooltipProvider.js +3 -4
- package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +3 -6
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +4 -5
- package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/overlays/Tooltip/context.js +2 -3
- package/dist/components/overlays/Tooltip/context.js.map +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.d.ts +2 -3
- package/dist/components/overlays/Tooltip/split-trigger-props.js +2 -3
- package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
- package/dist/components/portal/Portal.d.ts +1 -4
- package/dist/components/portal/Portal.js +2 -3
- package/dist/components/portal/Portal.js.map +1 -1
- package/dist/components/portal/PortalProvider.js +2 -3
- package/dist/components/portal/PortalProvider.js.map +1 -1
- package/dist/components/portal/index.d.ts +2 -1
- package/dist/components/portal/types.d.ts +1 -3
- package/dist/components/portal/usePortal.js +2 -3
- package/dist/components/portal/usePortal.js.map +1 -1
- package/dist/components/shared/DraggableCollection.js +15 -15
- package/dist/components/shared/DraggableCollection.js.map +1 -1
- package/dist/components/shared/InvalidIcon.js +2 -3
- package/dist/components/shared/InvalidIcon.js.map +1 -1
- package/dist/components/shared/ValidIcon.js +2 -3
- package/dist/components/shared/ValidIcon.js.map +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.d.ts +2 -8
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +2 -3
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
- package/dist/components/status/LoadingAnimation/index.d.ts +2 -1
- package/dist/components/status/Spin/Cube.js +2 -3
- package/dist/components/status/Spin/Cube.js.map +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +2 -3
- package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
- package/dist/components/status/Spin/Spin.d.ts +1 -4
- package/dist/components/status/Spin/Spin.js +2 -3
- package/dist/components/status/Spin/Spin.js.map +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +2 -3
- package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
- package/dist/components/status/Spin/index.d.ts +2 -1
- package/dist/components/status/Spin/types.d.ts +2 -4
- package/dist/components/status/index.d.ts +2 -1
- package/dist/data/item-themes.d.ts +1 -3
- package/dist/data/item-themes.js +3 -3
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.d.ts +9 -9
- package/dist/data/themes.js +10 -10
- package/dist/data/themes.js.map +1 -1
- package/dist/eslint-plugin/defaults.generated.d.ts +1 -3
- package/dist/eslint-plugin/defaults.generated.js +3 -8
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.d.ts +0 -1
- package/dist/eslint-plugin/index.js +2 -3
- package/dist/eslint-plugin/index.js.map +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.d.ts +2 -4
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +2 -3
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
- package/dist/eslint-plugin/types.d.ts +17 -10
- package/dist/i18n/I18nProvider.d.ts +2 -9
- package/dist/i18n/I18nProvider.js +2 -3
- package/dist/i18n/I18nProvider.js.map +1 -1
- package/dist/i18n/createFormatter.d.ts +6 -7
- package/dist/i18n/createFormatter.js +2 -2
- package/dist/i18n/createFormatter.js.map +1 -1
- package/dist/i18n/index.d.ts +2 -4
- package/dist/i18n/index.js +3 -4
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/instance.d.ts +5 -6
- package/dist/i18n/instance.js +3 -4
- package/dist/i18n/instance.js.map +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +2 -2
- package/dist/i18n/locales/en-US/uikit.js +2 -2
- package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -41
- package/dist/i18n/locales/es-ES/uikit.js +2 -2
- package/dist/i18n/locales/es-MX/uikit.js +2 -2
- package/dist/i18n/locales/fr-FR/uikit.js +2 -2
- package/dist/i18n/locales/it-IT/uikit.js +2 -2
- package/dist/i18n/locales/ja-JP/uikit.js +2 -2
- package/dist/i18n/locales/nb-NO/uikit.js +2 -2
- package/dist/i18n/locales/pt-BR/uikit.js +2 -2
- package/dist/i18n/locales/pt-PT/uikit.js +2 -2
- package/dist/i18n/locales/sv-SE/uikit.js +2 -2
- package/dist/i18n/locales/vi-VN/uikit.js +2 -2
- package/dist/i18n/locales.d.ts +4 -5
- package/dist/i18n/locales.js +2 -2
- package/dist/i18n/locales.js.map +1 -1
- package/dist/i18n/namespace.d.ts +1 -2
- package/dist/i18n/namespace.js +2 -2
- package/dist/i18n/useFormatter.d.ts +1 -3
- package/dist/i18n/useFormatter.js +2 -3
- package/dist/i18n/useFormatter.js.map +1 -1
- package/dist/i18n/useI18n.js +2 -3
- package/dist/i18n/useI18n.js.map +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.d.ts +2 -5
- package/dist/icons/AdjustmentsHorizontalIcon.js +2 -3
- package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
- package/dist/icons/AdjustmentsIcon.d.ts +2 -5
- package/dist/icons/AdjustmentsIcon.js +2 -3
- package/dist/icons/AdjustmentsIcon.js.map +1 -1
- package/dist/icons/AiIcon.d.ts +2 -5
- package/dist/icons/AiIcon.js +2 -3
- package/dist/icons/AiIcon.js.map +1 -1
- package/dist/icons/AreaChartIcon.d.ts +2 -5
- package/dist/icons/AreaChartIcon.js +2 -3
- package/dist/icons/AreaChartIcon.js.map +1 -1
- package/dist/icons/ArrowNarrowDownIcon.d.ts +2 -5
- package/dist/icons/ArrowNarrowDownIcon.js +2 -3
- package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
- package/dist/icons/ArrowNarrowUpIcon.d.ts +2 -5
- package/dist/icons/ArrowNarrowUpIcon.js +2 -3
- package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
- package/dist/icons/BackwardIcon.d.ts +2 -5
- package/dist/icons/BackwardIcon.js +2 -3
- package/dist/icons/BackwardIcon.js.map +1 -1
- package/dist/icons/BarChartIcon.d.ts +2 -5
- package/dist/icons/BarChartIcon.js +2 -3
- package/dist/icons/BarChartIcon.js.map +1 -1
- package/dist/icons/BellFilledIcon.d.ts +2 -5
- package/dist/icons/BellFilledIcon.js +2 -3
- package/dist/icons/BellFilledIcon.js.map +1 -1
- package/dist/icons/BellIcon.d.ts +2 -5
- package/dist/icons/BellIcon.js +2 -3
- package/dist/icons/BellIcon.js.map +1 -1
- package/dist/icons/BooleanIcon.d.ts +2 -5
- package/dist/icons/BooleanIcon.js +2 -3
- package/dist/icons/BooleanIcon.js.map +1 -1
- package/dist/icons/CalendarEditIcon.d.ts +2 -5
- package/dist/icons/CalendarEditIcon.js +2 -3
- package/dist/icons/CalendarEditIcon.js.map +1 -1
- package/dist/icons/CalendarIcon.d.ts +2 -5
- package/dist/icons/CalendarIcon.js +2 -3
- package/dist/icons/CalendarIcon.js.map +1 -1
- package/dist/icons/CaretDownIcon.d.ts +2 -5
- package/dist/icons/CaretDownIcon.js +2 -3
- package/dist/icons/CaretDownIcon.js.map +1 -1
- package/dist/icons/CaretUpIcon.d.ts +2 -5
- package/dist/icons/CaretUpIcon.js +2 -3
- package/dist/icons/CaretUpIcon.js.map +1 -1
- package/dist/icons/ChartAreaStackedIcon.d.ts +2 -5
- package/dist/icons/ChartAreaStackedIcon.js +2 -3
- package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.d.ts +2 -5
- package/dist/icons/ChartAreaStackedPercentageIcon.js +2 -3
- package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.d.ts +2 -5
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +2 -3
- package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarGroupedIcon.d.ts +2 -5
- package/dist/icons/ChartBarGroupedIcon.js +2 -3
- package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
- package/dist/icons/ChartBarHorizontalIcon.d.ts +2 -5
- package/dist/icons/ChartBarHorizontalIcon.js +2 -3
- package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarLineIcon.d.ts +2 -5
- package/dist/icons/ChartBarLineIcon.js +2 -3
- package/dist/icons/ChartBarLineIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.d.ts +2 -5
- package/dist/icons/ChartBarStackedHorizontalIcon.js +2 -3
- package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedIcon.d.ts +2 -5
- package/dist/icons/ChartBarStackedIcon.js +2 -3
- package/dist/icons/ChartBarStackedIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.d.ts +2 -5
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -3
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.d.ts +2 -5
- package/dist/icons/ChartBarStackedPercentageIcon.js +2 -3
- package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
- package/dist/icons/ChartBoxPlot2Icon.d.ts +2 -5
- package/dist/icons/ChartBoxPlot2Icon.js +2 -3
- package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
- package/dist/icons/ChartBoxPlotIcon.d.ts +2 -5
- package/dist/icons/ChartBoxPlotIcon.js +2 -3
- package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
- package/dist/icons/ChartBubbleIcon.d.ts +2 -5
- package/dist/icons/ChartBubbleIcon.js +2 -3
- package/dist/icons/ChartBubbleIcon.js.map +1 -1
- package/dist/icons/ChartDonut2Icon.d.ts +2 -5
- package/dist/icons/ChartDonut2Icon.js +2 -3
- package/dist/icons/ChartDonut2Icon.js.map +1 -1
- package/dist/icons/ChartFunnelIcon.d.ts +2 -5
- package/dist/icons/ChartFunnelIcon.js +2 -3
- package/dist/icons/ChartFunnelIcon.js.map +1 -1
- package/dist/icons/ChartHeatmapIcon.d.ts +2 -5
- package/dist/icons/ChartHeatmapIcon.js +2 -3
- package/dist/icons/ChartHeatmapIcon.js.map +1 -1
- package/dist/icons/ChartKPIIcon.d.ts +2 -5
- package/dist/icons/ChartKPIIcon.js +2 -3
- package/dist/icons/ChartKPIIcon.js.map +1 -1
- package/dist/icons/ChartPie2Icon.d.ts +2 -5
- package/dist/icons/ChartPie2Icon.js +2 -3
- package/dist/icons/ChartPie2Icon.js.map +1 -1
- package/dist/icons/ChartScatterIcon.d.ts +2 -5
- package/dist/icons/ChartScatterIcon.js +2 -3
- package/dist/icons/ChartScatterIcon.js.map +1 -1
- package/dist/icons/CheckCircleFilledIcon.d.ts +2 -5
- package/dist/icons/CheckCircleFilledIcon.js +2 -3
- package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
- package/dist/icons/CheckCircleIcon.d.ts +2 -5
- package/dist/icons/CheckCircleIcon.js +2 -3
- package/dist/icons/CheckCircleIcon.js.map +1 -1
- package/dist/icons/CheckIcon.d.ts +2 -5
- package/dist/icons/CheckIcon.js +2 -3
- package/dist/icons/CheckIcon.js.map +1 -1
- package/dist/icons/CircleFilledIcon.d.ts +2 -5
- package/dist/icons/CircleFilledIcon.js +2 -3
- package/dist/icons/CircleFilledIcon.js.map +1 -1
- package/dist/icons/ClearIcon.d.ts +2 -5
- package/dist/icons/ClearIcon.js +2 -3
- package/dist/icons/ClearIcon.js.map +1 -1
- package/dist/icons/CloseCircleFilledIcon.d.ts +2 -5
- package/dist/icons/CloseCircleFilledIcon.js +2 -3
- package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
- package/dist/icons/CloseCircleIcon.d.ts +2 -5
- package/dist/icons/CloseCircleIcon.js +2 -3
- package/dist/icons/CloseCircleIcon.js.map +1 -1
- package/dist/icons/CloseIcon.d.ts +2 -5
- package/dist/icons/CloseIcon.js +2 -3
- package/dist/icons/CloseIcon.js.map +1 -1
- package/dist/icons/CodeIcon.d.ts +2 -5
- package/dist/icons/CodeIcon.js +2 -3
- package/dist/icons/CodeIcon.js.map +1 -1
- package/dist/icons/ColumnTotalIcon.d.ts +2 -5
- package/dist/icons/ColumnTotalIcon.js +2 -3
- package/dist/icons/ColumnTotalIcon.js.map +1 -1
- package/dist/icons/CopyIcon.d.ts +2 -5
- package/dist/icons/CopyIcon.js +2 -3
- package/dist/icons/CopyIcon.js.map +1 -1
- package/dist/icons/CountIcon.d.ts +2 -5
- package/dist/icons/CountIcon.js +2 -3
- package/dist/icons/CountIcon.js.map +1 -1
- package/dist/icons/CubeIcon.d.ts +2 -5
- package/dist/icons/CubeIcon.js +2 -3
- package/dist/icons/CubeIcon.js.map +1 -1
- package/dist/icons/CubePauseIcon.d.ts +2 -5
- package/dist/icons/CubePauseIcon.js +2 -3
- package/dist/icons/CubePauseIcon.js.map +1 -1
- package/dist/icons/CubePlayIcon.d.ts +2 -5
- package/dist/icons/CubePlayIcon.js +2 -3
- package/dist/icons/CubePlayIcon.js.map +1 -1
- package/dist/icons/CurrencyDollarIcon.d.ts +2 -5
- package/dist/icons/CurrencyDollarIcon.js +2 -3
- package/dist/icons/CurrencyDollarIcon.js.map +1 -1
- package/dist/icons/DangerIcon.d.ts +2 -5
- package/dist/icons/DangerIcon.js +2 -3
- package/dist/icons/DangerIcon.js.map +1 -1
- package/dist/icons/DashboardIcon.d.ts +2 -5
- package/dist/icons/DashboardIcon.js +2 -3
- package/dist/icons/DashboardIcon.js.map +1 -1
- package/dist/icons/DatabaseIcon.d.ts +2 -5
- package/dist/icons/DatabaseIcon.js +2 -3
- package/dist/icons/DatabaseIcon.js.map +1 -1
- package/dist/icons/DecimalDecreaseIcon.d.ts +2 -5
- package/dist/icons/DecimalDecreaseIcon.js +2 -3
- package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
- package/dist/icons/DecimalIncreaseIcon.d.ts +2 -5
- package/dist/icons/DecimalIncreaseIcon.js +2 -3
- package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
- package/dist/icons/DirectionIcon.d.ts +3 -5
- package/dist/icons/DirectionIcon.js +2 -3
- package/dist/icons/DirectionIcon.js.map +1 -1
- package/dist/icons/DonutIcon.d.ts +2 -5
- package/dist/icons/DonutIcon.js +2 -3
- package/dist/icons/DonutIcon.js.map +1 -1
- package/dist/icons/DownIcon.d.ts +2 -5
- package/dist/icons/DownIcon.js +2 -3
- package/dist/icons/DownIcon.js.map +1 -1
- package/dist/icons/EditIcon.d.ts +2 -5
- package/dist/icons/EditIcon.js +2 -3
- package/dist/icons/EditIcon.js.map +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.d.ts +2 -5
- package/dist/icons/ExclamationCircleFilledIcon.js +2 -3
- package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
- package/dist/icons/ExclamationCircleIcon.d.ts +2 -5
- package/dist/icons/ExclamationCircleIcon.js +2 -3
- package/dist/icons/ExclamationCircleIcon.js.map +1 -1
- package/dist/icons/ExclamationIcon.d.ts +2 -5
- package/dist/icons/ExclamationIcon.js +2 -3
- package/dist/icons/ExclamationIcon.js.map +1 -1
- package/dist/icons/EyeIcon.d.ts +2 -5
- package/dist/icons/EyeIcon.js +2 -3
- package/dist/icons/EyeIcon.js.map +1 -1
- package/dist/icons/EyeInvisibleIcon.d.ts +2 -5
- package/dist/icons/EyeInvisibleIcon.js +2 -3
- package/dist/icons/EyeInvisibleIcon.js.map +1 -1
- package/dist/icons/FilterIcon.d.ts +2 -5
- package/dist/icons/FilterIcon.js +2 -3
- package/dist/icons/FilterIcon.js.map +1 -1
- package/dist/icons/FolderFilledIcon.d.ts +2 -5
- package/dist/icons/FolderFilledIcon.js +2 -3
- package/dist/icons/FolderFilledIcon.js.map +1 -1
- package/dist/icons/FolderIcon.d.ts +2 -5
- package/dist/icons/FolderIcon.js +2 -3
- package/dist/icons/FolderIcon.js.map +1 -1
- package/dist/icons/FolderOpenFilledIcon.d.ts +2 -5
- package/dist/icons/FolderOpenFilledIcon.js +2 -3
- package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
- package/dist/icons/FolderOpenIcon.d.ts +2 -5
- package/dist/icons/FolderOpenIcon.js +2 -3
- package/dist/icons/FolderOpenIcon.js.map +1 -1
- package/dist/icons/ForwardIcon.d.ts +2 -5
- package/dist/icons/ForwardIcon.js +2 -3
- package/dist/icons/ForwardIcon.js.map +1 -1
- package/dist/icons/GripVerticalIcon.d.ts +2 -5
- package/dist/icons/GripVerticalIcon.js +2 -3
- package/dist/icons/GripVerticalIcon.js.map +1 -1
- package/dist/icons/HierarchyIcon.d.ts +2 -5
- package/dist/icons/HierarchyIcon.js +2 -3
- package/dist/icons/HierarchyIcon.js.map +1 -1
- package/dist/icons/HierarchyOpenIcon.d.ts +2 -5
- package/dist/icons/HierarchyOpenIcon.js +2 -3
- package/dist/icons/HierarchyOpenIcon.js.map +1 -1
- package/dist/icons/Icon.d.ts +2 -5
- package/dist/icons/Icon.js +2 -3
- package/dist/icons/Icon.js.map +1 -1
- package/dist/icons/InfoCircleIcon.d.ts +2 -5
- package/dist/icons/InfoCircleIcon.js +2 -3
- package/dist/icons/InfoCircleIcon.js.map +1 -1
- package/dist/icons/InfoIcon.d.ts +2 -5
- package/dist/icons/InfoIcon.js +2 -3
- package/dist/icons/InfoIcon.js.map +1 -1
- package/dist/icons/KeyIcon.d.ts +2 -5
- package/dist/icons/KeyIcon.js +2 -3
- package/dist/icons/KeyIcon.js.map +1 -1
- package/dist/icons/LeftIcon.d.ts +2 -5
- package/dist/icons/LeftIcon.js +2 -3
- package/dist/icons/LeftIcon.js.map +1 -1
- package/dist/icons/LineChartIcon.d.ts +2 -5
- package/dist/icons/LineChartIcon.js +2 -3
- package/dist/icons/LineChartIcon.js.map +1 -1
- package/dist/icons/LoadingIcon.d.ts +2 -5
- package/dist/icons/LoadingIcon.js +2 -3
- package/dist/icons/LoadingIcon.js.map +1 -1
- package/dist/icons/LockFilledIcon.d.ts +2 -5
- package/dist/icons/LockFilledIcon.js +2 -3
- package/dist/icons/LockFilledIcon.js.map +1 -1
- package/dist/icons/LockIcon.d.ts +2 -5
- package/dist/icons/LockIcon.js +2 -3
- package/dist/icons/LockIcon.js.map +1 -1
- package/dist/icons/MoreIcon.d.ts +2 -5
- package/dist/icons/MoreIcon.js +2 -3
- package/dist/icons/MoreIcon.js.map +1 -1
- package/dist/icons/NotAllowedIcon.d.ts +2 -5
- package/dist/icons/NotAllowedIcon.js +2 -3
- package/dist/icons/NotAllowedIcon.js.map +1 -1
- package/dist/icons/Number123Icon.d.ts +2 -5
- package/dist/icons/Number123Icon.js +2 -3
- package/dist/icons/Number123Icon.js.map +1 -1
- package/dist/icons/NumberIcon.d.ts +2 -5
- package/dist/icons/NumberIcon.js +2 -3
- package/dist/icons/NumberIcon.js.map +1 -1
- package/dist/icons/PauseCircleFilledIcon.d.ts +2 -5
- package/dist/icons/PauseCircleFilledIcon.js +2 -3
- package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
- package/dist/icons/PauseCircleIcon.d.ts +2 -5
- package/dist/icons/PauseCircleIcon.js +2 -3
- package/dist/icons/PauseCircleIcon.js.map +1 -1
- package/dist/icons/PauseIcon.d.ts +2 -5
- package/dist/icons/PauseIcon.js +2 -3
- package/dist/icons/PauseIcon.js.map +1 -1
- package/dist/icons/PercentageIcon.d.ts +2 -5
- package/dist/icons/PercentageIcon.js +2 -3
- package/dist/icons/PercentageIcon.js.map +1 -1
- package/dist/icons/PieChartIcon.d.ts +2 -5
- package/dist/icons/PieChartIcon.js +2 -3
- package/dist/icons/PieChartIcon.js.map +1 -1
- package/dist/icons/PipetteIcon.d.ts +2 -5
- package/dist/icons/PipetteIcon.js +2 -3
- package/dist/icons/PipetteIcon.js.map +1 -1
- package/dist/icons/PlayCircleIcon.d.ts +2 -5
- package/dist/icons/PlayCircleIcon.js +2 -3
- package/dist/icons/PlayCircleIcon.js.map +1 -1
- package/dist/icons/PlayIcon.d.ts +2 -5
- package/dist/icons/PlayIcon.js +2 -3
- package/dist/icons/PlayIcon.js.map +1 -1
- package/dist/icons/PlusIcon.d.ts +2 -5
- package/dist/icons/PlusIcon.js +2 -3
- package/dist/icons/PlusIcon.js.map +1 -1
- package/dist/icons/ProgressBarIcon.d.ts +2 -5
- package/dist/icons/ProgressBarIcon.js +2 -3
- package/dist/icons/ProgressBarIcon.js.map +1 -1
- package/dist/icons/ReloadIcon.d.ts +2 -5
- package/dist/icons/ReloadIcon.js +2 -3
- package/dist/icons/ReloadIcon.js.map +1 -1
- package/dist/icons/ReportIcon.d.ts +2 -5
- package/dist/icons/ReportIcon.js +2 -3
- package/dist/icons/ReportIcon.js.map +1 -1
- package/dist/icons/ReturnIcon.d.ts +2 -5
- package/dist/icons/ReturnIcon.js +2 -3
- package/dist/icons/ReturnIcon.js.map +1 -1
- package/dist/icons/RightIcon.d.ts +2 -5
- package/dist/icons/RightIcon.js +2 -3
- package/dist/icons/RightIcon.js.map +1 -1
- package/dist/icons/RowTotalsIcon.d.ts +2 -5
- package/dist/icons/RowTotalsIcon.js +2 -3
- package/dist/icons/RowTotalsIcon.js.map +1 -1
- package/dist/icons/SchemeIcon.d.ts +2 -5
- package/dist/icons/SchemeIcon.js +2 -3
- package/dist/icons/SchemeIcon.js.map +1 -1
- package/dist/icons/SearchIcon.d.ts +2 -5
- package/dist/icons/SearchIcon.js +2 -3
- package/dist/icons/SearchIcon.js.map +1 -1
- package/dist/icons/SemanticQueryIcon.d.ts +2 -5
- package/dist/icons/SemanticQueryIcon.js +2 -3
- package/dist/icons/SemanticQueryIcon.js.map +1 -1
- package/dist/icons/SettingsIcon.d.ts +2 -5
- package/dist/icons/SettingsIcon.js +2 -3
- package/dist/icons/SettingsIcon.js.map +1 -1
- package/dist/icons/ShieldFilledIcon.d.ts +2 -5
- package/dist/icons/ShieldFilledIcon.js +2 -3
- package/dist/icons/ShieldFilledIcon.js.map +1 -1
- package/dist/icons/ShieldIcon.d.ts +2 -5
- package/dist/icons/ShieldIcon.js +2 -3
- package/dist/icons/ShieldIcon.js.map +1 -1
- package/dist/icons/SlashIcon.d.ts +2 -5
- package/dist/icons/SlashIcon.js +2 -3
- package/dist/icons/SlashIcon.js.map +1 -1
- package/dist/icons/SparklesIcon.d.ts +2 -5
- package/dist/icons/SparklesIcon.js +2 -3
- package/dist/icons/SparklesIcon.js.map +1 -1
- package/dist/icons/SqlIcon.d.ts +2 -5
- package/dist/icons/SqlIcon.js +2 -3
- package/dist/icons/SqlIcon.js.map +1 -1
- package/dist/icons/StatsIcon.d.ts +2 -5
- package/dist/icons/StatsIcon.js +2 -3
- package/dist/icons/StatsIcon.js.map +1 -1
- package/dist/icons/StopIcon.d.ts +2 -5
- package/dist/icons/StopIcon.js +2 -3
- package/dist/icons/StopIcon.js.map +1 -1
- package/dist/icons/StringIcon.d.ts +2 -5
- package/dist/icons/StringIcon.js +2 -3
- package/dist/icons/StringIcon.js.map +1 -1
- package/dist/icons/SubtotalsIcon.d.ts +2 -5
- package/dist/icons/SubtotalsIcon.js +2 -3
- package/dist/icons/SubtotalsIcon.js.map +1 -1
- package/dist/icons/SwitchIcon.d.ts +2 -5
- package/dist/icons/SwitchIcon.js +2 -3
- package/dist/icons/SwitchIcon.js.map +1 -1
- package/dist/icons/TableIcon.d.ts +2 -5
- package/dist/icons/TableIcon.js +2 -3
- package/dist/icons/TableIcon.js.map +1 -1
- package/dist/icons/ThumbsDownIcon.d.ts +2 -5
- package/dist/icons/ThumbsDownIcon.js +2 -3
- package/dist/icons/ThumbsDownIcon.js.map +1 -1
- package/dist/icons/ThumbsUpIcon.d.ts +2 -5
- package/dist/icons/ThumbsUpIcon.js +2 -3
- package/dist/icons/ThumbsUpIcon.js.map +1 -1
- package/dist/icons/ThunderboltCrossedIcon.d.ts +2 -5
- package/dist/icons/ThunderboltCrossedIcon.js +2 -3
- package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
- package/dist/icons/ThunderboltFilledIcon.d.ts +2 -5
- package/dist/icons/ThunderboltFilledIcon.js +2 -3
- package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
- package/dist/icons/ThunderboltIcon.d.ts +2 -5
- package/dist/icons/ThunderboltIcon.js +2 -3
- package/dist/icons/ThunderboltIcon.js.map +1 -1
- package/dist/icons/TimeIcon.d.ts +2 -5
- package/dist/icons/TimeIcon.js +2 -3
- package/dist/icons/TimeIcon.js.map +1 -1
- package/dist/icons/TrashIcon.d.ts +2 -5
- package/dist/icons/TrashIcon.js +2 -3
- package/dist/icons/TrashIcon.js.map +1 -1
- package/dist/icons/UnlockIcon.d.ts +2 -5
- package/dist/icons/UnlockIcon.js +2 -3
- package/dist/icons/UnlockIcon.js.map +1 -1
- package/dist/icons/UpIcon.d.ts +2 -5
- package/dist/icons/UpIcon.js +2 -3
- package/dist/icons/UpIcon.js.map +1 -1
- package/dist/icons/UserGroupIcon.d.ts +2 -5
- package/dist/icons/UserGroupIcon.js +2 -3
- package/dist/icons/UserGroupIcon.js.map +1 -1
- package/dist/icons/UserIcon.d.ts +2 -5
- package/dist/icons/UserIcon.js +2 -3
- package/dist/icons/UserIcon.js.map +1 -1
- package/dist/icons/UserLockIcon.d.ts +2 -5
- package/dist/icons/UserLockIcon.js +2 -3
- package/dist/icons/UserLockIcon.js.map +1 -1
- package/dist/icons/ViewIcon.d.ts +2 -5
- package/dist/icons/ViewIcon.js +2 -3
- package/dist/icons/ViewIcon.js.map +1 -1
- package/dist/icons/WarningFilledIcon.d.ts +2 -5
- package/dist/icons/WarningFilledIcon.js +2 -3
- package/dist/icons/WarningFilledIcon.js.map +1 -1
- package/dist/icons/WarningIcon.d.ts +2 -5
- package/dist/icons/WarningIcon.js +2 -3
- package/dist/icons/WarningIcon.js.map +1 -1
- package/dist/icons/index.d.ts +2 -1
- package/dist/icons/wrap-icon.d.ts +2 -5
- package/dist/icons/wrap-icon.js +2 -3
- package/dist/icons/wrap-icon.js.map +1 -1
- package/dist/index.d.ts +59 -61
- package/dist/index.js +59 -64
- package/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/csstype@3.1.2/node_modules/csstype/index.d.ts +3 -4
- package/dist/probe/canonicalize.d.ts +3 -4
- package/dist/probe/canonicalize.js +2 -2
- package/dist/probe/canonicalize.js.map +1 -1
- package/dist/probe/css.d.ts +4 -5
- package/dist/probe/css.js +2 -3
- package/dist/probe/css.js.map +1 -1
- package/dist/probe/index.js +2 -3
- package/dist/props.d.ts +1 -2
- package/dist/provider.d.ts +3 -6
- package/dist/provider.js +2 -3
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.d.ts +1 -3
- package/dist/providers/TrackingProvider.js +3 -4
- package/dist/providers/TrackingProvider.js.map +1 -1
- package/dist/providers/navigation-url.js +2 -2
- package/dist/providers/navigation-url.js.map +1 -1
- package/dist/providers/navigation.types.d.ts +7 -8
- package/dist/providers/navigationAdapter.default.d.ts +1 -3
- package/dist/providers/navigationAdapter.default.js +6 -4
- package/dist/providers/navigationAdapter.default.js.map +1 -1
- package/dist/providers/use-navigation.js +2 -3
- package/dist/providers/use-navigation.js.map +1 -1
- package/dist/shared/form.d.ts +33 -23
- package/dist/shared/index.d.ts +4 -5
- package/dist/tokens/all-tokens.d.ts +2 -4
- package/dist/tokens/all-tokens.js +2 -3
- package/dist/tokens/all-tokens.js.map +1 -1
- package/dist/tokens/base.d.ts +1 -3
- package/dist/tokens/base.js +38 -2
- package/dist/tokens/base.js.map +1 -1
- package/dist/tokens/color-seed.d.ts +2 -3
- package/dist/tokens/color-seed.js +2 -3
- package/dist/tokens/color-seed.js.map +1 -1
- package/dist/tokens/color-theme.d.ts +5 -7
- package/dist/tokens/color-theme.js +5 -6
- package/dist/tokens/color-theme.js.map +1 -1
- package/dist/tokens/colors.d.ts +3 -5
- package/dist/tokens/colors.js +2 -3
- package/dist/tokens/colors.js.map +1 -1
- package/dist/tokens/index.d.ts +2 -1
- package/dist/tokens/layout.d.ts +1 -3
- package/dist/tokens/layout.js +7 -2
- package/dist/tokens/layout.js.map +1 -1
- package/dist/tokens/lazy-styles.js +2 -2
- package/dist/tokens/lazy-styles.js.map +1 -1
- package/dist/tokens/legacy-color.d.ts +3 -4
- package/dist/tokens/legacy-color.js +2 -3
- package/dist/tokens/legacy-color.js.map +1 -1
- package/dist/tokens/palette-config.d.ts +19 -20
- package/dist/tokens/palette-config.js +9 -24
- package/dist/tokens/palette-config.js.map +1 -1
- package/dist/tokens/palette.d.ts +6 -8
- package/dist/tokens/palette.js +73 -89
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/resolve.d.ts +8 -9
- package/dist/tokens/resolve.js +5 -6
- package/dist/tokens/resolve.js.map +1 -1
- package/dist/tokens/shadows.d.ts +1 -3
- package/dist/tokens/shadows.js +6 -2
- package/dist/tokens/shadows.js.map +1 -1
- package/dist/tokens/sizes.d.ts +5 -7
- package/dist/tokens/sizes.js +2 -2
- package/dist/tokens/sizes.js.map +1 -1
- package/dist/tokens/spacing.d.ts +1 -3
- package/dist/tokens/spacing.js +2 -2
- package/dist/tokens/spacing.js.map +1 -1
- package/dist/tokens/typography.d.ts +2 -3
- package/dist/tokens/typography.js +2 -2
- package/dist/tokens/typography.js.map +1 -1
- package/dist/utils/ResizeSensor.d.ts +1 -2
- package/dist/utils/ResizeSensor.js +11 -9
- package/dist/utils/ResizeSensor.js.map +1 -1
- package/dist/utils/colors.js +3 -4
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/dotize.js +2 -2
- package/dist/utils/dotize.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/is-dev-env.js +2 -2
- package/dist/utils/is-dev-env.js.map +1 -1
- package/dist/utils/modules.d.ts +1 -2
- package/dist/utils/modules.js +2 -2
- package/dist/utils/modules.js.map +1 -1
- package/dist/utils/promise.d.ts +1 -2
- package/dist/utils/promise.js +2 -2
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/raf.d.ts +1 -2
- package/dist/utils/raf.js +2 -2
- package/dist/utils/raf.js.map +1 -1
- package/dist/utils/random.d.ts +2 -3
- package/dist/utils/random.js +3 -4
- package/dist/utils/random.js.map +1 -1
- package/dist/utils/range.d.ts +1 -2
- package/dist/utils/range.js +2 -2
- package/dist/utils/range.js.map +1 -1
- package/dist/utils/react/RenderCache.d.ts +2 -9
- package/dist/utils/react/RenderCache.js +2 -3
- package/dist/utils/react/RenderCache.js.map +1 -1
- package/dist/utils/react/Slots.d.ts +3 -6
- package/dist/utils/react/Slots.js +2 -3
- package/dist/utils/react/Slots.js.map +1 -1
- package/dist/utils/react/chain.d.ts +1 -2
- package/dist/utils/react/chain.js +2 -2
- package/dist/utils/react/chain.js.map +1 -1
- package/dist/utils/react/disabledProps.d.ts +4 -10
- package/dist/utils/react/disabledProps.js +3 -3
- package/dist/utils/react/disabledProps.js.map +1 -1
- package/dist/utils/react/forwardRefWithGenerics.d.ts +2 -5
- package/dist/utils/react/forwardRefWithGenerics.js +2 -2
- package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
- package/dist/utils/react/index.d.ts +1 -1
- package/dist/utils/react/index.js +2 -3
- package/dist/utils/react/interactions.js +2 -3
- package/dist/utils/react/interactions.js.map +1 -1
- package/dist/utils/react/isTextOnly.d.ts +1 -2
- package/dist/utils/react/isTextOnly.js +2 -3
- package/dist/utils/react/isTextOnly.js.map +1 -1
- package/dist/utils/react/mapProps.js +2 -2
- package/dist/utils/react/mapProps.js.map +1 -1
- package/dist/utils/react/mergeProps.d.ts +2 -3
- package/dist/utils/react/mergeProps.js +2 -3
- package/dist/utils/react/mergeProps.js.map +1 -1
- package/dist/utils/react/nullableValue.d.ts +1 -3
- package/dist/utils/react/nullableValue.js +3 -3
- package/dist/utils/react/nullableValue.js.map +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +3 -3
- package/dist/utils/react/overlayKeyPropagation.js.map +1 -1
- package/dist/utils/react/programmaticFocus.js +2 -2
- package/dist/utils/react/programmaticFocus.js.map +1 -1
- package/dist/utils/react/resolveIcon.d.ts +4 -6
- package/dist/utils/react/resolveIcon.js +2 -2
- package/dist/utils/react/resolveIcon.js.map +1 -1
- package/dist/utils/react/sharedStore.js +2 -3
- package/dist/utils/react/sharedStore.js.map +1 -1
- package/dist/utils/react/useBufferedValue.d.ts +3 -4
- package/dist/utils/react/useBufferedValue.js +2 -3
- package/dist/utils/react/useBufferedValue.js.map +1 -1
- package/dist/utils/react/useCombinedRefs.d.ts +2 -4
- package/dist/utils/react/useCombinedRefs.js +2 -3
- package/dist/utils/react/useCombinedRefs.js.map +1 -1
- package/dist/utils/react/useControlledFocusVisible.d.ts +2 -3
- package/dist/utils/react/useControlledFocusVisible.js +2 -3
- package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
- package/dist/utils/react/useEventBus.d.ts +6 -10
- package/dist/utils/react/useEventBus.js +2 -3
- package/dist/utils/react/useEventBus.js.map +1 -1
- package/dist/utils/react/useId.js +3 -4
- package/dist/utils/react/useId.js.map +1 -1
- package/dist/utils/react/useIsDarwin.js +2 -3
- package/dist/utils/react/useIsDarwin.js.map +1 -1
- package/dist/utils/react/useKeySymbols.js +2 -3
- package/dist/utils/react/useKeySymbols.js.map +1 -1
- package/dist/utils/react/useLayoutEffect.d.ts +0 -1
- package/dist/utils/react/useLayoutEffect.js +2 -3
- package/dist/utils/react/useLayoutEffect.js.map +1 -1
- package/dist/utils/react/useLocalStorage.d.ts +2 -2
- package/dist/utils/react/useLocalStorage.js +2 -3
- package/dist/utils/react/useLocalStorage.js.map +1 -1
- package/dist/utils/react/useMergeStyles.d.ts +1 -3
- package/dist/utils/react/useMergeStyles.js +4 -4
- package/dist/utils/react/useMergeStyles.js.map +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +2 -3
- package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
- package/dist/utils/react/usePopoverSync.d.ts +3 -14
- package/dist/utils/react/usePopoverSync.js +2 -3
- package/dist/utils/react/usePopoverSync.js.map +1 -1
- package/dist/utils/react/useQaProps.d.ts +2 -2
- package/dist/utils/react/useQaProps.js +6 -4
- package/dist/utils/react/useQaProps.js.map +1 -1
- package/dist/utils/react/useScheme.d.ts +6 -7
- package/dist/utils/react/useScheme.js +2 -3
- package/dist/utils/react/useScheme.js.map +1 -1
- package/dist/utils/react/useViewportSize.d.ts +3 -3
- package/dist/utils/react/useViewportSize.js +2 -3
- package/dist/utils/react/useViewportSize.js.map +1 -1
- package/dist/utils/react/wrapNodeIfPlain.d.ts +1 -3
- package/dist/utils/react/wrapNodeIfPlain.js +2 -3
- package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
- package/dist/utils/selection.d.ts +1 -3
- package/dist/utils/selection.js +2 -2
- package/dist/utils/selection.js.map +1 -1
- package/dist/utils/styles.d.ts +1 -3
- package/dist/utils/styles.js +2 -3
- package/dist/utils/styles.js.map +1 -1
- package/dist/utils/tree.d.ts +1 -2
- package/dist/utils/tree.js +2 -2
- package/dist/utils/tree.js.map +1 -1
- package/dist/utils/warnings.d.ts +1 -2
- package/dist/utils/warnings.js +2 -3
- package/dist/utils/warnings.js.map +1 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +4 -4
- package/dist/version.js.map +1 -1
- package/docs/CreateComponent.md +1 -1
- package/docs/FieldProperties.md +11 -7
- package/docs/Theming.md +1 -1
- package/docs/Usage.md +4 -2
- package/docs/components/content/Alert.md +3 -2
- package/docs/components/content/Layout.md +47 -0
- package/docs/components/content/TextItem.md +2 -2
- package/docs/components/fields/ComboBox.md +1 -2
- package/docs/components/fields/FilterListBox.md +3 -3
- package/docs/components/fields/FilterPicker.md +8 -12
- package/docs/components/fields/ListBox.md +11 -10
- package/docs/components/fields/NumberInput.md +1 -2
- package/docs/components/fields/Picker.md +10 -14
- package/docs/components/fields/Select.md +11 -9
- package/docs/components/fields/Switch.md +4 -5
- package/docs/components/overlays/AlertDialog.md +1 -1
- package/docs/components/overlays/Dialog.md +6 -6
- package/docs/components/overlays/DialogContainer.md +20 -1
- package/docs/components/overlays/DialogTrigger.md +5 -3
- package/docs/tasty/README.md +4 -1
- package/docs/tasty/adoption.md +25 -17
- package/docs/tasty/ai-agents.md +42 -34
- package/docs/tasty/comparison.md +9 -8
- package/docs/tasty/configuration.md +187 -69
- package/docs/tasty/debug.md +3 -2
- package/docs/tasty/design-system.md +117 -15
- package/docs/tasty/dsl.md +211 -117
- package/docs/tasty/getting-started.md +81 -24
- package/docs/tasty/injector.md +41 -40
- package/docs/tasty/methodology.md +46 -21
- package/docs/tasty/migration-v3.md +3 -3
- package/docs/tasty/pipeline.md +22 -19
- package/docs/tasty/plugins.md +21 -41
- package/docs/tasty/react-api.md +72 -9
- package/docs/tasty/runtime-benchmarks.md +11 -11
- package/docs/tasty/ssr.md +92 -66
- package/docs/tasty/styles.md +37 -17
- package/docs/tasty/tasty-static.md +175 -57
- package/package.json +18 -16
- package/tasty.config.ts +8 -0
- package/dist/i18n/useI18n.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-auto-tooltip.js","names":["HTMLAttributes","ReactNode","Ref","RefObject","useCallback","useEffect","useRef","useState","PositionProps","flushSync","CubeTooltipProviderProps","TooltipProvider","Props","AutoTooltipValue","Omit","auto","UseAutoTooltipOptions","tooltip","children","description","labelProps","isDynamicLabel","labelRef","HTMLElement","descriptionRef","assignRef","ref","element","current","pendingOverflowChecks","Set","overflowChecksByNode","WeakMap","refreshAutoTooltipsWithin","node","Array","from","querySelectorAll","get","forEach","queueOverflowCheck","runOverflowChecks","checks","clear","check","size","queueMicrotask","add","allowsAutoTooltip","title","undefined","Truncation","getAutoTitle","truncation","resolveTooltip","isOverflowed","autoTitle","hasAutoContent","isDisabled","tooltipProps","isTruncated","scrollWidth","clientWidth","measureTruncation","label","isLabelCut","isDescriptionCut","MeasuredNodes","observer","ResizeObserver","observeMeasuredNodes","measured","onResize","disconnect","observe","useAutoTooltip","t0","$","_c","t1","labelRefOption","descriptionRefOption","t2","allowsAuto","isLabelMeasured","isDescriptionMeasured","isAutoTooltipEnabled","externalLabelRef","setTruncation","t3","Symbol","for","measuredRef","verdictRef","t4","value","setVerdict","t5","description_0","checkOverflow","t6","scheduleOverflowCheck","measuredLabel","measuredDescription","t7","t8","t9","part","previous","delete","checks_0","set","attachMeasuredNode","t10","element_0","handleLabelElementRef","t11","element_1","handleDescriptionElementRef","t12","finalLabelProps","_labelPropsRef","t13","resolvedTooltip","isTooltipActive","t14","renderElement","defaultTooltipPlacement","triggerProps","renderWithTooltip","t15","t16","t17","hasTooltip"],"sources":["../../../src/components/content/use-auto-tooltip.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n ReactNode,\n Ref,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { PositionProps } from 'react-aria';\nimport { flushSync } from 'react-dom';\n\nimport {\n CubeTooltipProviderProps,\n TooltipProvider,\n} from '../overlays/Tooltip/TooltipProvider';\n\nimport type { Props } from '../../props';\n\nexport type AutoTooltipValue =\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n\nexport interface UseAutoTooltipOptions {\n tooltip: AutoTooltipValue | undefined;\n children: ReactNode;\n /**\n * Secondary text that truncates alongside the label, such as `Item`'s\n * description. A string description is measured with the label, and the auto\n * tooltip shows whichever of the two is cut off.\n */\n description?: ReactNode;\n labelProps?: Props;\n isDynamicLabel?: boolean;\n /**\n * The caller's own ref to the label element. The hook owns the label's ref\n * (it measures the node), so a caller that also needs the node hands its ref\n * over here rather than attaching a second one.\n */\n labelRef?: Ref<HTMLElement>;\n /** The caller's own ref to the description element, as `labelRef`. */\n descriptionRef?: Ref<HTMLElement>;\n}\n\nfunction assignRef(ref: unknown, element: HTMLElement | null) {\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n (ref as { current: HTMLElement | null }).current = element;\n }\n}\n\n/** Overflow checks queued for the end of the current task, from every label. */\nconst pendingOverflowChecks = new Set<() => void>();\nconst overflowChecksByNode = new WeakMap<HTMLElement, Set<() => void>>();\n\n/** Refresh a retained tooltip tree after inherited appearance changes. */\nexport function refreshAutoTooltipsWithin(element: HTMLElement) {\n for (const node of [\n element,\n ...Array.from(element.querySelectorAll<HTMLElement>('*')),\n ]) {\n overflowChecksByNode.get(node)?.forEach(queueOverflowCheck);\n }\n}\n\n/**\n * Runs every queued check in one pass and commits the verdicts that changed in\n * one synchronous render.\n *\n * All reads happen before React touches the DOM again, so they share one\n * layout. `flushSync` applies the verdicts, and the `TooltipProvider` remounts\n * they cause, before paint and before any other task, so code that looks the\n * label up after this task gets the node the verdict leaves in place, not one\n * about to be replaced. Outside a React commit this is an ordinary sync\n * render, not a nested update.\n */\nfunction runOverflowChecks() {\n const checks = Array.from(pendingOverflowChecks);\n\n pendingOverflowChecks.clear();\n\n flushSync(() => {\n for (const check of checks) check();\n });\n}\n\nfunction queueOverflowCheck(check: () => void) {\n if (!pendingOverflowChecks.size) queueMicrotask(runOverflowChecks);\n\n pendingOverflowChecks.add(check);\n}\n\n/**\n * Whether the tooltip value asks to detect overflow on its own. What it\n * measures is decided separately: overflow detection measures text, so only a\n * string label or description takes part.\n */\nfunction allowsAutoTooltip(tooltip: AutoTooltipValue | undefined): boolean {\n // Boolean true enables auto overflow detection\n if (tooltip === true) return true;\n if (typeof tooltip === 'object') {\n // If title is provided and auto is explicitly true, enable auto overflow detection\n if (tooltip.title) {\n return tooltip.auto === true;\n }\n\n // If no title is provided, default to auto=true unless explicitly disabled\n return tooltip.auto !== undefined ? !!tooltip.auto : true;\n }\n return false;\n}\n\n/** Which measured parts are cut off. */\ntype Truncation = 'none' | 'label' | 'description' | 'both';\n\n/**\n * What the auto tooltip shows: the text that is cut off, and nothing the row\n * already shows in full. When both parts are, the description goes below the\n * label as the tooltip's `Description`, styled as secondary text.\n */\nfunction getAutoTitle(\n children: ReactNode,\n description: ReactNode,\n truncation: Truncation,\n): ReactNode {\n if (truncation === 'description') return description;\n if (truncation === 'both') {\n return (\n <>\n {children}\n <div data-element=\"Description\">{description}</div>\n </>\n );\n }\n\n // The label is cut off, or nothing is and the tooltip stays mounted but\n // disabled for a dynamic label.\n return children;\n}\n\n/**\n * The `TooltipProvider` props a tooltip resolves to, or `null` when no tooltip\n * is rendered at all.\n */\nfunction resolveTooltip({\n tooltip,\n children,\n description,\n labelProps,\n isDynamicLabel,\n truncation,\n}: Omit<UseAutoTooltipOptions, 'labelRef' | 'descriptionRef'> & {\n truncation: Truncation;\n}): Omit<CubeTooltipProviderProps, 'children'> | null {\n if (!tooltip) return null;\n\n // String tooltip - simple case\n if (typeof tooltip === 'string') {\n return { title: tooltip };\n }\n\n const isOverflowed = truncation !== 'none';\n const autoTitle = getAutoTitle(children, description, truncation);\n const hasAutoContent =\n !!(autoTitle || labelProps) && (isOverflowed || isDynamicLabel);\n\n // Boolean tooltip - auto tooltip on overflow\n if (tooltip === true) {\n if (!hasAutoContent) return null;\n\n return {\n title: autoTitle,\n isDisabled: !isOverflowed && isDynamicLabel,\n };\n }\n\n // Object tooltip - advanced configuration\n const { auto, ...tooltipProps } = tooltip;\n\n // If title is provided and auto is not explicitly true, always show the tooltip\n if (tooltipProps.title && auto !== true) {\n return tooltipProps;\n }\n\n // If title is provided with auto=true, OR no title but auto behavior enabled\n if (!hasAutoContent) return null;\n\n // A nullish `title` falls back to the auto title, so it goes after the spread.\n return {\n ...tooltipProps,\n title: tooltipProps.title ?? autoTitle,\n isDisabled: tooltipProps.isDisabled ?? (!isOverflowed && isDynamicLabel),\n };\n}\n\n/** Whether a measured node's text is cut off. */\nfunction isTruncated(element: HTMLElement | null): boolean {\n return !!element && element.scrollWidth > element.clientWidth;\n}\n\nfunction measureTruncation(\n label: HTMLElement | null,\n description: HTMLElement | null,\n): Truncation {\n const isLabelCut = isTruncated(label);\n const isDescriptionCut = isTruncated(description);\n\n if (isLabelCut) return isDescriptionCut ? 'both' : 'label';\n\n return isDescriptionCut ? 'description' : 'none';\n}\n\ninterface MeasuredNodes {\n label: HTMLElement | null;\n description: HTMLElement | null;\n observer: ResizeObserver | null;\n}\n\n/**\n * Points the hook's one observer at the nodes now measured, so a row with a\n * label and a description still costs a single observer. It re-points by\n * disconnecting and observing again rather than with `unobserve`: those are\n * the only two calls the hook has ever made, so a consumer's test stub that\n * implements just them keeps working.\n */\nfunction observeMeasuredNodes(measured: MeasuredNodes, onResize: () => void) {\n try {\n measured.observer?.disconnect();\n } catch {\n // do nothing\n }\n\n const { label, description } = measured;\n\n if (!label && !description) return;\n\n measured.observer ??= new ResizeObserver(() => onResize());\n\n if (label) measured.observer.observe(label);\n if (description) measured.observer.observe(description);\n}\n\nexport function useAutoTooltip({\n tooltip,\n children,\n description,\n labelProps,\n isDynamicLabel = false,\n labelRef: labelRefOption,\n descriptionRef: descriptionRefOption,\n}: UseAutoTooltipOptions) {\n const allowsAuto = allowsAutoTooltip(tooltip);\n const isLabelMeasured = allowsAuto && typeof children === 'string';\n const isDescriptionMeasured = allowsAuto && typeof description === 'string';\n const isAutoTooltipEnabled = isLabelMeasured || isDescriptionMeasured;\n\n // Track overflow for auto tooltip (only when enabled)\n const externalLabelRef = (labelProps as any)?.ref;\n const [truncation, setTruncation] = useState<Truncation>('none');\n // The nodes being measured, and the one observer watching all of them.\n const measuredRef = useRef<MeasuredNodes>({\n label: null,\n description: null,\n observer: null,\n });\n\n const verdictRef = useRef<Truncation>('none');\n\n /**\n * Sets the verdict only when it changes. React skips an unchanged `setState`\n * only while the component has no other update queued; otherwise the no-op is\n * enqueued like any other update. From an effect flushed inside a sync commit\n * that is a pending update, and a nested one — see the mount effect below.\n * Mirroring the verdict makes every unchanged write free, whatever else the\n * component has queued.\n */\n const setVerdict = useCallback((value: Truncation) => {\n if (verdictRef.current === value) return;\n\n verdictRef.current = value;\n setTruncation(value);\n }, []);\n\n const checkOverflow = useCallback(() => {\n const { label, description } = measuredRef.current;\n\n if (!label && !description) return;\n\n setVerdict(measureTruncation(label, description));\n }, [setVerdict]);\n\n /**\n * Measure once the current task has finished, not inside it.\n *\n * A microtask runs after React's whole commit — every mutation, layout effect\n * and ref attachment — and before paint. Every label on the page therefore\n * reads after all of them have written, so the reads collapse into one style\n * and layout flush instead of forcing one each, mid-commit. Reading straight\n * from the callback ref is what cost 122ms of `get scrollWidth` in one Cloud\n * profile, more than the entire style engine.\n *\n * A microtask rather than the observer's first delivery: observer callbacks\n * are part of the rendering steps, so a runner that is not producing frames —\n * a background tab, or a headless browser running many stories at once — can\n * delay them past the point something asks whether the tooltip is active.\n * Microtasks do not depend on a frame. See `runOverflowChecks` for how the\n * verdicts are applied.\n */\n const scheduleOverflowCheck = useCallback(() => {\n queueOverflowCheck(checkOverflow);\n }, [checkOverflow]);\n\n // Text can change its overflow without changing the observed box size.\n const measuredLabel = isLabelMeasured ? children : undefined;\n const measuredDescription = isDescriptionMeasured ? description : undefined;\n\n useEffect(() => {\n if (isAutoTooltipEnabled) {\n // Queued, not measured here. React 19 flushes a sync commit's passive\n // effects before the commit returns, so a verdict set from this effect\n // leaves that commit with an update pending — a nested update. A list\n // that commits each row on its own (ag-grid-react wraps every new row in\n // `flushSync`) then gains one per row, and React throws \"Maximum update\n // depth exceeded\" once the count passes 50. The queued check runs after\n // the commit and still before paint. The callback refs have usually\n // queued it already, so this call is absorbed. It matters when what is\n // measured changes without a node re-attaching — the description stops\n // being a string, say, while the label stays.\n scheduleOverflowCheck();\n\n return;\n }\n\n // Clearing here rather than in the callback ref, which cannot be trusted\n // to do it. Flipping `isAutoTooltipEnabled` changes the ref's identity, so\n // React detaches with the PREVIOUS callback — the one that still believes\n // auto tooltips are on, and therefore keeps the last verdict — and only\n // attaches the new one if the label still exists. When `children` stops\n // being a string the label unmounts, so the new callback never runs and a\n // stale verdict would keep an auto tooltip mounted over content that is no\n // longer text. That is the default `Button` path, where `tooltip` is `true`.\n setVerdict('none');\n }, [\n isAutoTooltipEnabled,\n isLabelMeasured,\n isDescriptionMeasured,\n measuredLabel,\n measuredDescription,\n scheduleOverflowCheck,\n setVerdict,\n ]);\n\n // The callback refs own the observer: React hands them `null` when a node\n // goes away. Effect cleanup must not discard nodes still owned by refs:\n // reconnecting effects would otherwise strand queued measurements. Let\n // attachment/detachment update observer ownership symmetrically.\n const attachMeasuredNode = useCallback(\n (part: 'label' | 'description', element: HTMLElement | null) => {\n const measured = measuredRef.current;\n\n const previous = measured[part];\n measured[part] = element;\n\n if (\n previous &&\n previous !== measured.label &&\n previous !== measured.description\n ) {\n const checks = overflowChecksByNode.get(previous);\n checks?.delete(checkOverflow);\n if (!checks?.size) overflowChecksByNode.delete(previous);\n }\n if (element) {\n const checks = overflowChecksByNode.get(element) ?? new Set();\n checks.add(checkOverflow);\n overflowChecksByNode.set(element, checks);\n }\n\n // The observer covers every later size change.\n observeMeasuredNodes(measured, checkOverflow);\n\n // No node to measure. Leave the previous verdict alone rather than\n // clearing it: turning the verdict on mounts `TooltipProvider`, which\n // remounts the label underneath it, so React detaches the old node and\n // attaches a new one within that commit. Clearing here would unmount the\n // provider, remount the label, measure it, mount the provider again — a\n // loop that never settles.\n if (!element) return;\n\n // Do NOT measure synchronously here — see `scheduleOverflowCheck`. This\n // covers the node the ref just handed us, including the fresh one React\n // creates when `TooltipProvider` mounts and remounts the element.\n scheduleOverflowCheck();\n },\n [checkOverflow, scheduleOverflowCheck],\n );\n\n const handleLabelElementRef = useCallback(\n (element: HTMLElement | null) => {\n // Notify the external refs\n assignRef(externalLabelRef, element);\n assignRef(labelRefOption, element);\n\n attachMeasuredNode('label', isLabelMeasured ? element : null);\n },\n [externalLabelRef, labelRefOption, isLabelMeasured, attachMeasuredNode],\n );\n\n const handleDescriptionElementRef = useCallback(\n (element: HTMLElement | null) => {\n assignRef(descriptionRefOption, element);\n\n attachMeasuredNode('description', isDescriptionMeasured ? element : null);\n },\n [descriptionRefOption, isDescriptionMeasured, attachMeasuredNode],\n );\n\n const { ref: _labelPropsRef, ...finalLabelProps } = labelProps || {};\n\n // Resolved once so that both the rendering below and `isTooltipActive` speak\n // about the same tooltip.\n const resolvedTooltip = resolveTooltip({\n tooltip,\n children,\n description,\n labelProps,\n isDynamicLabel,\n truncation,\n });\n\n /** Whether a tooltip is rendered and able to open. */\n const isTooltipActive =\n !!resolvedTooltip && resolvedTooltip.isDisabled !== true;\n\n const renderWithTooltip = (\n renderElement: (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => ReactNode,\n defaultTooltipPlacement: PositionProps['placement'],\n ) => {\n if (!resolvedTooltip) return renderElement();\n\n return (\n <TooltipProvider placement={defaultTooltipPlacement} {...resolvedTooltip}>\n {(triggerProps, ref) => renderElement(triggerProps, ref)}\n </TooltipProvider>\n );\n };\n\n return {\n labelRef: handleLabelElementRef,\n descriptionRef: handleDescriptionElementRef,\n labelProps: finalLabelProps,\n isOverflowed: truncation !== 'none',\n isAutoTooltipEnabled,\n hasTooltip: !!tooltip,\n isTooltipActive,\n renderWithTooltip,\n scheduleOverflowCheck,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-auto-tooltip.js","names":["HTMLAttributes","ReactNode","Ref","RefObject","useCallback","useEffect","useRef","useState","PositionProps","flushSync","CubeTooltipProviderProps","TooltipProvider","Props","AutoTooltipValue","Omit","auto","UseAutoTooltipOptions","tooltip","children","description","labelProps","isDynamicLabel","labelRef","HTMLElement","descriptionRef","assignRef","ref","element","current","pendingOverflowChecks","Set","overflowChecksByNode","WeakMap","refreshAutoTooltipsWithin","node","Array","from","querySelectorAll","get","forEach","queueOverflowCheck","runOverflowChecks","checks","clear","check","size","queueMicrotask","add","allowsAutoTooltip","title","undefined","Truncation","getAutoTitle","truncation","resolveTooltip","isOverflowed","autoTitle","hasAutoContent","isDisabled","tooltipProps","isTruncated","scrollWidth","clientWidth","measureTruncation","label","isLabelCut","isDescriptionCut","MeasuredNodes","observer","ResizeObserver","observeMeasuredNodes","measured","onResize","disconnect","observe","useAutoTooltip","t0","$","_c","t1","labelRefOption","descriptionRefOption","t2","allowsAuto","isLabelMeasured","isDescriptionMeasured","isAutoTooltipEnabled","externalLabelRef","setTruncation","t3","Symbol","for","measuredRef","verdictRef","t4","value","setVerdict","t5","description_0","checkOverflow","t6","scheduleOverflowCheck","measuredLabel","measuredDescription","t7","t8","t9","part","previous","delete","checks_0","set","attachMeasuredNode","t10","element_0","handleLabelElementRef","t11","element_1","handleDescriptionElementRef","t12","finalLabelProps","_labelPropsRef","t13","resolvedTooltip","isTooltipActive","t14","renderElement","defaultTooltipPlacement","triggerProps","renderWithTooltip","t15","t16","t17","hasTooltip","_c"],"sources":["../../../src/components/content/use-auto-tooltip.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n ReactNode,\n Ref,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { PositionProps } from 'react-aria';\nimport { flushSync } from 'react-dom';\n\nimport {\n CubeTooltipProviderProps,\n TooltipProvider,\n} from '../overlays/Tooltip/TooltipProvider';\n\nimport type { Props } from '../../props';\n\nexport type AutoTooltipValue =\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n\nexport interface UseAutoTooltipOptions {\n tooltip: AutoTooltipValue | undefined;\n children: ReactNode;\n /**\n * Secondary text that truncates alongside the label, such as `Item`'s\n * description. A string description is measured with the label, and the auto\n * tooltip shows whichever of the two is cut off.\n */\n description?: ReactNode;\n labelProps?: Props;\n isDynamicLabel?: boolean;\n /**\n * The caller's own ref to the label element. The hook owns the label's ref\n * (it measures the node), so a caller that also needs the node hands its ref\n * over here rather than attaching a second one.\n */\n labelRef?: Ref<HTMLElement>;\n /** The caller's own ref to the description element, as `labelRef`. */\n descriptionRef?: Ref<HTMLElement>;\n}\n\nfunction assignRef(ref: unknown, element: HTMLElement | null) {\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n (ref as { current: HTMLElement | null }).current = element;\n }\n}\n\n/** Overflow checks queued for the end of the current task, from every label. */\nconst pendingOverflowChecks = new Set<() => void>();\nconst overflowChecksByNode = new WeakMap<HTMLElement, Set<() => void>>();\n\n/** Refresh a retained tooltip tree after inherited appearance changes. */\nexport function refreshAutoTooltipsWithin(element: HTMLElement) {\n for (const node of [\n element,\n ...Array.from(element.querySelectorAll<HTMLElement>('*')),\n ]) {\n overflowChecksByNode.get(node)?.forEach(queueOverflowCheck);\n }\n}\n\n/**\n * Runs every queued check in one pass and commits the verdicts that changed in\n * one synchronous render.\n *\n * All reads happen before React touches the DOM again, so they share one\n * layout. `flushSync` applies the verdicts, and the `TooltipProvider` remounts\n * they cause, before paint and before any other task, so code that looks the\n * label up after this task gets the node the verdict leaves in place, not one\n * about to be replaced. Outside a React commit this is an ordinary sync\n * render, not a nested update.\n */\nfunction runOverflowChecks() {\n const checks = Array.from(pendingOverflowChecks);\n\n pendingOverflowChecks.clear();\n\n flushSync(() => {\n for (const check of checks) check();\n });\n}\n\nfunction queueOverflowCheck(check: () => void) {\n if (!pendingOverflowChecks.size) queueMicrotask(runOverflowChecks);\n\n pendingOverflowChecks.add(check);\n}\n\n/**\n * Whether the tooltip value asks to detect overflow on its own. What it\n * measures is decided separately: overflow detection measures text, so only a\n * string label or description takes part.\n */\nfunction allowsAutoTooltip(tooltip: AutoTooltipValue | undefined): boolean {\n // Boolean true enables auto overflow detection\n if (tooltip === true) return true;\n if (typeof tooltip === 'object') {\n // If title is provided and auto is explicitly true, enable auto overflow detection\n if (tooltip.title) {\n return tooltip.auto === true;\n }\n\n // If no title is provided, default to auto=true unless explicitly disabled\n return tooltip.auto !== undefined ? !!tooltip.auto : true;\n }\n return false;\n}\n\n/** Which measured parts are cut off. */\ntype Truncation = 'none' | 'label' | 'description' | 'both';\n\n/**\n * What the auto tooltip shows: the text that is cut off, and nothing the row\n * already shows in full. When both parts are, the description goes below the\n * label as the tooltip's `Description`, styled as secondary text.\n */\nfunction getAutoTitle(\n children: ReactNode,\n description: ReactNode,\n truncation: Truncation,\n): ReactNode {\n if (truncation === 'description') return description;\n if (truncation === 'both') {\n return (\n <>\n {children}\n <div data-element=\"Description\">{description}</div>\n </>\n );\n }\n\n // The label is cut off, or nothing is and the tooltip stays mounted but\n // disabled for a dynamic label.\n return children;\n}\n\n/**\n * The `TooltipProvider` props a tooltip resolves to, or `null` when no tooltip\n * is rendered at all.\n */\nfunction resolveTooltip({\n tooltip,\n children,\n description,\n labelProps,\n isDynamicLabel,\n truncation,\n}: Omit<UseAutoTooltipOptions, 'labelRef' | 'descriptionRef'> & {\n truncation: Truncation;\n}): Omit<CubeTooltipProviderProps, 'children'> | null {\n if (!tooltip) return null;\n\n // String tooltip - simple case\n if (typeof tooltip === 'string') {\n return { title: tooltip };\n }\n\n const isOverflowed = truncation !== 'none';\n const autoTitle = getAutoTitle(children, description, truncation);\n const hasAutoContent =\n !!(autoTitle || labelProps) && (isOverflowed || isDynamicLabel);\n\n // Boolean tooltip - auto tooltip on overflow\n if (tooltip === true) {\n if (!hasAutoContent) return null;\n\n return {\n title: autoTitle,\n isDisabled: !isOverflowed && isDynamicLabel,\n };\n }\n\n // Object tooltip - advanced configuration\n const { auto, ...tooltipProps } = tooltip;\n\n // If title is provided and auto is not explicitly true, always show the tooltip\n if (tooltipProps.title && auto !== true) {\n return tooltipProps;\n }\n\n // If title is provided with auto=true, OR no title but auto behavior enabled\n if (!hasAutoContent) return null;\n\n // A nullish `title` falls back to the auto title, so it goes after the spread.\n return {\n ...tooltipProps,\n title: tooltipProps.title ?? autoTitle,\n isDisabled: tooltipProps.isDisabled ?? (!isOverflowed && isDynamicLabel),\n };\n}\n\n/** Whether a measured node's text is cut off. */\nfunction isTruncated(element: HTMLElement | null): boolean {\n return !!element && element.scrollWidth > element.clientWidth;\n}\n\nfunction measureTruncation(\n label: HTMLElement | null,\n description: HTMLElement | null,\n): Truncation {\n const isLabelCut = isTruncated(label);\n const isDescriptionCut = isTruncated(description);\n\n if (isLabelCut) return isDescriptionCut ? 'both' : 'label';\n\n return isDescriptionCut ? 'description' : 'none';\n}\n\ninterface MeasuredNodes {\n label: HTMLElement | null;\n description: HTMLElement | null;\n observer: ResizeObserver | null;\n}\n\n/**\n * Points the hook's one observer at the nodes now measured, so a row with a\n * label and a description still costs a single observer. It re-points by\n * disconnecting and observing again rather than with `unobserve`: those are\n * the only two calls the hook has ever made, so a consumer's test stub that\n * implements just them keeps working.\n */\nfunction observeMeasuredNodes(measured: MeasuredNodes, onResize: () => void) {\n try {\n measured.observer?.disconnect();\n } catch {\n // do nothing\n }\n\n const { label, description } = measured;\n\n if (!label && !description) return;\n\n measured.observer ??= new ResizeObserver(() => onResize());\n\n if (label) measured.observer.observe(label);\n if (description) measured.observer.observe(description);\n}\n\nexport function useAutoTooltip({\n tooltip,\n children,\n description,\n labelProps,\n isDynamicLabel = false,\n labelRef: labelRefOption,\n descriptionRef: descriptionRefOption,\n}: UseAutoTooltipOptions) {\n const allowsAuto = allowsAutoTooltip(tooltip);\n const isLabelMeasured = allowsAuto && typeof children === 'string';\n const isDescriptionMeasured = allowsAuto && typeof description === 'string';\n const isAutoTooltipEnabled = isLabelMeasured || isDescriptionMeasured;\n\n // Track overflow for auto tooltip (only when enabled)\n const externalLabelRef = (labelProps as any)?.ref;\n const [truncation, setTruncation] = useState<Truncation>('none');\n // The nodes being measured, and the one observer watching all of them.\n const measuredRef = useRef<MeasuredNodes>({\n label: null,\n description: null,\n observer: null,\n });\n\n const verdictRef = useRef<Truncation>('none');\n\n /**\n * Sets the verdict only when it changes. React skips an unchanged `setState`\n * only while the component has no other update queued; otherwise the no-op is\n * enqueued like any other update. From an effect flushed inside a sync commit\n * that is a pending update, and a nested one — see the mount effect below.\n * Mirroring the verdict makes every unchanged write free, whatever else the\n * component has queued.\n */\n const setVerdict = useCallback((value: Truncation) => {\n if (verdictRef.current === value) return;\n\n verdictRef.current = value;\n setTruncation(value);\n }, []);\n\n const checkOverflow = useCallback(() => {\n const { label, description } = measuredRef.current;\n\n if (!label && !description) return;\n\n setVerdict(measureTruncation(label, description));\n }, [setVerdict]);\n\n /**\n * Measure once the current task has finished, not inside it.\n *\n * A microtask runs after React's whole commit — every mutation, layout effect\n * and ref attachment — and before paint. Every label on the page therefore\n * reads after all of them have written, so the reads collapse into one style\n * and layout flush instead of forcing one each, mid-commit. Reading straight\n * from the callback ref is what cost 122ms of `get scrollWidth` in one Cloud\n * profile, more than the entire style engine.\n *\n * A microtask rather than the observer's first delivery: observer callbacks\n * are part of the rendering steps, so a runner that is not producing frames —\n * a background tab, or a headless browser running many stories at once — can\n * delay them past the point something asks whether the tooltip is active.\n * Microtasks do not depend on a frame. See `runOverflowChecks` for how the\n * verdicts are applied.\n */\n const scheduleOverflowCheck = useCallback(() => {\n queueOverflowCheck(checkOverflow);\n }, [checkOverflow]);\n\n // Text can change its overflow without changing the observed box size.\n const measuredLabel = isLabelMeasured ? children : undefined;\n const measuredDescription = isDescriptionMeasured ? description : undefined;\n\n useEffect(() => {\n if (isAutoTooltipEnabled) {\n // Queued, not measured here. React 19 flushes a sync commit's passive\n // effects before the commit returns, so a verdict set from this effect\n // leaves that commit with an update pending — a nested update. A list\n // that commits each row on its own (ag-grid-react wraps every new row in\n // `flushSync`) then gains one per row, and React throws \"Maximum update\n // depth exceeded\" once the count passes 50. The queued check runs after\n // the commit and still before paint. The callback refs have usually\n // queued it already, so this call is absorbed. It matters when what is\n // measured changes without a node re-attaching — the description stops\n // being a string, say, while the label stays.\n scheduleOverflowCheck();\n\n return;\n }\n\n // Clearing here rather than in the callback ref, which cannot be trusted\n // to do it. Flipping `isAutoTooltipEnabled` changes the ref's identity, so\n // React detaches with the PREVIOUS callback — the one that still believes\n // auto tooltips are on, and therefore keeps the last verdict — and only\n // attaches the new one if the label still exists. When `children` stops\n // being a string the label unmounts, so the new callback never runs and a\n // stale verdict would keep an auto tooltip mounted over content that is no\n // longer text. That is the default `Button` path, where `tooltip` is `true`.\n setVerdict('none');\n }, [\n isAutoTooltipEnabled,\n isLabelMeasured,\n isDescriptionMeasured,\n measuredLabel,\n measuredDescription,\n scheduleOverflowCheck,\n setVerdict,\n ]);\n\n // The callback refs own the observer: React hands them `null` when a node\n // goes away. Effect cleanup must not discard nodes still owned by refs:\n // reconnecting effects would otherwise strand queued measurements. Let\n // attachment/detachment update observer ownership symmetrically.\n const attachMeasuredNode = useCallback(\n (part: 'label' | 'description', element: HTMLElement | null) => {\n const measured = measuredRef.current;\n\n const previous = measured[part];\n measured[part] = element;\n\n if (\n previous &&\n previous !== measured.label &&\n previous !== measured.description\n ) {\n const checks = overflowChecksByNode.get(previous);\n checks?.delete(checkOverflow);\n if (!checks?.size) overflowChecksByNode.delete(previous);\n }\n if (element) {\n const checks = overflowChecksByNode.get(element) ?? new Set();\n checks.add(checkOverflow);\n overflowChecksByNode.set(element, checks);\n }\n\n // The observer covers every later size change.\n observeMeasuredNodes(measured, checkOverflow);\n\n // No node to measure. Leave the previous verdict alone rather than\n // clearing it: turning the verdict on mounts `TooltipProvider`, which\n // remounts the label underneath it, so React detaches the old node and\n // attaches a new one within that commit. Clearing here would unmount the\n // provider, remount the label, measure it, mount the provider again — a\n // loop that never settles.\n if (!element) return;\n\n // Do NOT measure synchronously here — see `scheduleOverflowCheck`. This\n // covers the node the ref just handed us, including the fresh one React\n // creates when `TooltipProvider` mounts and remounts the element.\n scheduleOverflowCheck();\n },\n [checkOverflow, scheduleOverflowCheck],\n );\n\n const handleLabelElementRef = useCallback(\n (element: HTMLElement | null) => {\n // Notify the external refs\n assignRef(externalLabelRef, element);\n assignRef(labelRefOption, element);\n\n attachMeasuredNode('label', isLabelMeasured ? element : null);\n },\n [externalLabelRef, labelRefOption, isLabelMeasured, attachMeasuredNode],\n );\n\n const handleDescriptionElementRef = useCallback(\n (element: HTMLElement | null) => {\n assignRef(descriptionRefOption, element);\n\n attachMeasuredNode('description', isDescriptionMeasured ? element : null);\n },\n [descriptionRefOption, isDescriptionMeasured, attachMeasuredNode],\n );\n\n const { ref: _labelPropsRef, ...finalLabelProps } = labelProps || {};\n\n // Resolved once so that both the rendering below and `isTooltipActive` speak\n // about the same tooltip.\n const resolvedTooltip = resolveTooltip({\n tooltip,\n children,\n description,\n labelProps,\n isDynamicLabel,\n truncation,\n });\n\n /** Whether a tooltip is rendered and able to open. */\n const isTooltipActive =\n !!resolvedTooltip && resolvedTooltip.isDisabled !== true;\n\n const renderWithTooltip = (\n renderElement: (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => ReactNode,\n defaultTooltipPlacement: PositionProps['placement'],\n ) => {\n if (!resolvedTooltip) return renderElement();\n\n return (\n <TooltipProvider placement={defaultTooltipPlacement} {...resolvedTooltip}>\n {(triggerProps, ref) => renderElement(triggerProps, ref)}\n </TooltipProvider>\n );\n };\n\n return {\n labelRef: handleLabelElementRef,\n descriptionRef: handleDescriptionElementRef,\n labelProps: finalLabelProps,\n isOverflowed: truncation !== 'none',\n isAutoTooltipEnabled,\n hasTooltip: !!tooltip,\n isTooltipActive,\n renderWithTooltip,\n scheduleOverflowCheck,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { CubeDataTableProps } from "./types.js";
|
|
3
3
|
import { ForwardedRef, ReactElement } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/components/data/DataTable/DataTable.d.ts
|
|
6
5
|
declare const _DataTable: (<T = any>(props: CubeDataTableProps<T> & {
|
|
7
6
|
ref?: ForwardedRef<HTMLDivElement>;
|
|
@@ -9,5 +8,5 @@ declare const _DataTable: (<T = any>(props: CubeDataTableProps<T> & {
|
|
|
9
8
|
displayName?: string;
|
|
10
9
|
};
|
|
11
10
|
//#endregion
|
|
12
|
-
export { _DataTable };
|
|
11
|
+
export { _DataTable as DataTable };
|
|
13
12
|
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -27,7 +27,6 @@ import { useMultipleSelectionState } from "react-stately";
|
|
|
27
27
|
import { useControlledState } from "@react-stately/utils";
|
|
28
28
|
import { useCollator } from "@react-aria/i18n";
|
|
29
29
|
import { SelectionManager } from "@react-stately/selection";
|
|
30
|
-
|
|
31
30
|
//#region src/components/data/DataTable/DataTable.tsx
|
|
32
31
|
/** Wide enough for five digits at the dense default. */
|
|
33
32
|
const ROW_NUMBER_WIDTH = 56;
|
|
@@ -105,7 +104,8 @@ function defaultGetRowKey(rowKey) {
|
|
|
105
104
|
*/
|
|
106
105
|
function DataTable(props, ref) {
|
|
107
106
|
const { data, columns, rowKey = "id", getRowKey, getRowChildren, treeColumnKey, expandedKeys, defaultExpandedKeys, onExpand, pinnedTopRows, pinnedBottomRows, isLoading = false, loadingIndicator = "overlay", skeletonRowCount, error, emptyLabel, noResultsLabel, isFiltered, shape = "plain", size = "small", rowSize, rowHeight, headerHeight, isStriped = true, isHeaderHidden, isHeaderSticky, isAutoHeight = false, showRowNumbers = false, sortMode, sorts: sortsProp, defaultSorts, onSortsChange, paginationMode = "client", page: pageProp, defaultPage, onPageChange, pageSize: pageSizeProp, defaultPageSize = 100, onPageSizeChange, pageSizeOptions, total: totalProp, totalPages, hasNextPage, summary = true, autoHidePagination = true, footerStart, footerCenter, footerEnd, cellSelectionMode = "range", isCellSelectable, selectedCellRange, defaultSelectedCellRange, onCellRangeChange, isRowMoveAnimated, isResizable = true, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnResize, isColumnReorderable = false, columnOrder, defaultColumnOrder, onColumnOrderChange, columnContextMenu, onColumnMenuAction, columnMenuTriggerProps, columnMenuProps, isVirtualized, virtualizeThreshold, overscan, getRowProps, storageKey, styles, headerStyles, headerCellStyles, bodyStyles, rowStyles, cellStyles, footerStyles, ariaLabel, qa, mods, ...rest } = props;
|
|
108
|
-
const
|
|
107
|
+
const localRef = useRef(null);
|
|
108
|
+
const rootRef = useCombinedRefs(ref, localRef);
|
|
109
109
|
const [scrollerEl, setScrollerEl] = useState(null);
|
|
110
110
|
const containerWidth = useContainerWidth(scrollerEl);
|
|
111
111
|
const resolvedGetRowKey = useMemo(() => getRowKey ?? defaultGetRowKey(rowKey), [getRowKey, rowKey]);
|
|
@@ -125,15 +125,21 @@ function DataTable(props, ref) {
|
|
|
125
125
|
const storage = useTableStorage(storageKey);
|
|
126
126
|
const columnModel = useMemo(() => buildColumnModel(columns), [columns]);
|
|
127
127
|
const hasColumnGroups = columnModel.headerPaths.size > 0;
|
|
128
|
+
/**
|
|
129
|
+
* `dataType` is presentational, so it is folded into the column here rather
|
|
130
|
+
* than reaching the renderer: `number` right-aligns and takes tabular figures
|
|
131
|
+
* so digits line up down the column.
|
|
132
|
+
*/
|
|
133
|
+
const resolvedColumns = useMemo(() => columnModel.columns.map((column) => {
|
|
134
|
+
const isNumeric = column.dataType === "number";
|
|
135
|
+
return {
|
|
136
|
+
...column,
|
|
137
|
+
align: column.align ?? (isNumeric ? "end" : "start"),
|
|
138
|
+
cellStyles: isNumeric ? numericCellStyles(column.cellStyles) : column.cellStyles
|
|
139
|
+
};
|
|
140
|
+
}), [columnModel.columns]);
|
|
128
141
|
const columnOrderState = useColumnOrder({
|
|
129
|
-
columns:
|
|
130
|
-
const isNumeric = column.dataType === "number";
|
|
131
|
-
return {
|
|
132
|
-
...column,
|
|
133
|
-
align: column.align ?? (isNumeric ? "end" : "start"),
|
|
134
|
-
cellStyles: isNumeric ? numericCellStyles(column.cellStyles) : column.cellStyles
|
|
135
|
-
};
|
|
136
|
-
}), [columnModel.columns]),
|
|
142
|
+
columns: resolvedColumns,
|
|
137
143
|
columnOrder,
|
|
138
144
|
defaultColumnOrder,
|
|
139
145
|
onColumnOrderChange,
|
|
@@ -205,13 +211,14 @@ function DataTable(props, ref) {
|
|
|
205
211
|
if (pageSizeProp === void 0) storage.write({ pageSize: next_0 });
|
|
206
212
|
});
|
|
207
213
|
const flatVisibleRows = paginationMode === "client" ? sortedRows.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : sortedRows;
|
|
214
|
+
const pageTreeRoots = useMemo(() => reindexTableTree(paginationMode === "client" ? processedTreeRoots.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : processedTreeRoots), [
|
|
215
|
+
processedTreeRoots,
|
|
216
|
+
paginationMode,
|
|
217
|
+
pageInfo.page,
|
|
218
|
+
pageSize
|
|
219
|
+
]);
|
|
208
220
|
const treeState = useTableTreeState({
|
|
209
|
-
roots:
|
|
210
|
-
processedTreeRoots,
|
|
211
|
-
paginationMode,
|
|
212
|
-
pageInfo.page,
|
|
213
|
-
pageSize
|
|
214
|
-
]),
|
|
221
|
+
roots: pageTreeRoots,
|
|
215
222
|
allNodesByKey: treeModel?.byKey ?? /* @__PURE__ */ new Map(),
|
|
216
223
|
expandedKeys,
|
|
217
224
|
defaultExpandedKeys,
|
|
@@ -237,8 +244,9 @@ function DataTable(props, ref) {
|
|
|
237
244
|
*/
|
|
238
245
|
const layoutRef = useRef(null);
|
|
239
246
|
const handleColumnResize = useEvent((key, width) => {
|
|
247
|
+
const base = draftRef.current ?? freezeColumnWidths(layoutRef.current, baseColumnWidths);
|
|
240
248
|
draftRef.current = {
|
|
241
|
-
...
|
|
249
|
+
...base,
|
|
242
250
|
[key]: Math.round(width)
|
|
243
251
|
};
|
|
244
252
|
setDraftColumnWidths(draftRef.current);
|
|
@@ -253,14 +261,15 @@ function DataTable(props, ref) {
|
|
|
253
261
|
draftRef.current = null;
|
|
254
262
|
setDraftColumnWidths(null);
|
|
255
263
|
});
|
|
264
|
+
const leadingColumns = useMemo(() => showRowNumbers ? [{
|
|
265
|
+
key: ROW_NUMBER_COLUMN_KEY,
|
|
266
|
+
width: ROW_NUMBER_WIDTH
|
|
267
|
+
}] : void 0, [showRowNumbers]);
|
|
256
268
|
const layout = useTableColumns({
|
|
257
269
|
columns: orderedColumns,
|
|
258
270
|
containerWidth,
|
|
259
271
|
columnWidths,
|
|
260
|
-
leadingColumns
|
|
261
|
-
key: ROW_NUMBER_COLUMN_KEY,
|
|
262
|
-
width: ROW_NUMBER_WIDTH
|
|
263
|
-
}] : void 0, [showRowNumbers])
|
|
272
|
+
leadingColumns
|
|
264
273
|
});
|
|
265
274
|
layoutRef.current = layout;
|
|
266
275
|
const { t } = useI18n();
|
|
@@ -288,11 +297,12 @@ function DataTable(props, ref) {
|
|
|
288
297
|
if (!isCellSelectable) return true;
|
|
289
298
|
const index_2 = selectionRowKeys.indexOf(rowKey_0);
|
|
290
299
|
const topCount = pinnedTopRows?.length ?? 0;
|
|
300
|
+
const section = index_2 < topCount ? "pinnedTop" : index_2 < topCount + visibleRows.length ? "body" : "pinnedBottom";
|
|
291
301
|
return isCellSelectable({
|
|
292
302
|
row: row_2,
|
|
293
303
|
rowKey: rowKey_0,
|
|
294
304
|
columnKey,
|
|
295
|
-
section
|
|
305
|
+
section
|
|
296
306
|
});
|
|
297
307
|
});
|
|
298
308
|
const cellSelection = useCellSelection({
|
|
@@ -440,7 +450,7 @@ function DataTable(props, ref) {
|
|
|
440
450
|
}
|
|
441
451
|
const _DataTable = forwardRef(DataTable);
|
|
442
452
|
_DataTable.displayName = "DataTable";
|
|
443
|
-
|
|
444
453
|
//#endregion
|
|
445
|
-
export { _DataTable };
|
|
454
|
+
export { _DataTable as DataTable };
|
|
455
|
+
|
|
446
456
|
//# sourceMappingURL=DataTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":["useCollator","SelectionManager","useControlledState","CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useMultipleSelectionState","useEvent","useWarn","useI18n","useCombinedRefs","extractStyles","mergeStyleLayers","clampPage","getPageInfo","DraggableCollection","ItemTableFooter","RowCollection","buildTableTree","flattenTableTree","reindexTableTree","sortTableTree","TableView","selectionRowKey","useCellSelection","getDraggableColumnKeys","isColumnDraggable","useColumnOrder","useContainerWidth","freezeColumnWidths","getColumnText","useTableColumns","ROW_NUMBER_COLUMN_KEY","compareByColumn","useTableSorts","useTableStorage","useTableTreeState","Key","Styles","ForwardedRef","ReactElement","CubeTableColumnGroupHeader","CubeTableColumnLayout","CubeTableRowSection","CubeDataTableColumn","CubeDataTableColumnDefinition","CubeDataTableColumnGroup","CubeDataTableProps","ROW_NUMBER_WIDTH","EMPTY_WIDTHS","Record","DataTableColumnModel","columns","T","headerPaths","Map","isColumnGroup","column","buildColumnModel","definitions","visit","entries","path","entry","children","key","title","push","length","set","NUMERIC_CELL_STYLES","fontVariantNumeric","NUMERIC_MERGED","WeakMap","withNumeric","own","merged","get","numericCellStyles","cellStyles","ctx","defaultGetRowKey","rowKey","row","index","value","DataTable","props","ref","HTMLDivElement","data","getRowKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","pinnedTopRows","pinnedBottomRows","isLoading","loadingIndicator","skeletonRowCount","error","emptyLabel","noResultsLabel","isFiltered","shape","size","rowSize","rowHeight","headerHeight","isStriped","isHeaderHidden","isHeaderSticky","isAutoHeight","showRowNumbers","sortMode","sorts","sortsProp","defaultSorts","onSortsChange","paginationMode","page","pageProp","defaultPage","onPageChange","pageSize","pageSizeProp","defaultPageSize","onPageSizeChange","pageSizeOptions","total","totalProp","totalPages","hasNextPage","summary","autoHidePagination","footerStart","footerCenter","footerEnd","cellSelectionMode","isCellSelectable","selectedCellRange","defaultSelectedCellRange","onCellRangeChange","isRowMoveAnimated","isResizable","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","isColumnReorderable","columnOrder","defaultColumnOrder","onColumnOrderChange","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","isVirtualized","virtualizeThreshold","overscan","getRowProps","storageKey","styles","headerStyles","headerCellStyles","bodyStyles","rowStyles","footerStyles","ariaLabel","qa","mods","rest","localRef","rootRef","scrollerEl","setScrollerEl","HTMLElement","containerWidth","resolvedGetRowKey","treeModel","duplicateKeys","args","cyclicKeys","storage","columnModel","hasColumnGroups","resolvedColumns","map","isNumeric","dataType","align","columnOrderState","orderedColumns","resolvedTreeColumnKey","undefined","visibleColumns","filter","isHidden","some","sortedRows","toggleSort","setColumnSort","mode","resolvedSortMode","rows","roots","node","collator","numeric","sensitivity","treeSortMode","isSortable","processedTreeRoots","active","sort","find","columnKey","a","b","result","sourceIndex","direction","siblingIndex","setPageSizeState","has","initial","setPageState","isPaginated","isServerPaginated","pageInfo","setPage","next","setPageSize","write","flatVisibleRows","slice","pageTreeRoots","treeState","allNodesByKey","byKey","getTextValue","String","visibleTreeEntries","visibleEntries","visibleRows","visibleRowKeys","ownColumnWidths","setOwnColumnWidths","draftColumnWidths","setDraftColumnWidths","draftRef","baseColumnWidths","layoutRef","handleColumnResize","width","base","current","Math","round","handleColumnResizeEnd","leadingColumns","layout","t","selectionRows","selectionRowKeys","resolveCellSelectable","indexOf","topCount","section","cellSelection","rowKeys","range","defaultRange","onRangeChange","rootStyles","smallestPageSize","min","showPagination","hasFooter","canReorderColumns","headRowRef","HTMLTableRowElement","draggableColumnKeys","columnCollection","Set","columnSelectionState","selectionMode","disabledBehavior","columnSelectionManager","handleColumnFocus","setFocusedKey","isColumnDragEnabled","treeRowNumberOffset","renderTable","columnDragState","columnDropState","headCollectionProps","state","ariaProps","nodes","visibleNodes","collection","selectionManager","disabledKeys","reorder","dragState","dropState","collectionProps","_DataTable","displayName"],"sources":["../../../../src/components/data/DataTable/DataTable.tsx"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { SelectionManager } from '@react-stately/selection';\nimport { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\nimport { useMultipleSelectionState } from 'react-stately';\n\nimport { useEvent, useWarn } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport { ItemTableFooter } from '../ItemTable/ItemTableFooter';\nimport { RowCollection } from '../TableBase/RowCollection';\nimport {\n buildTableTree,\n flattenTableTree,\n reindexTableTree,\n sortTableTree,\n} from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { selectionRowKey } from '../TableBase/types';\nimport { useCellSelection } from '../TableBase/use-cell-selection';\nimport {\n getDraggableColumnKeys,\n isColumnDraggable,\n useColumnOrder,\n} from '../TableBase/use-column-order';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport {\n freezeColumnWidths,\n getColumnText,\n useTableColumns,\n} from '../TableBase/use-table-columns';\nimport { ROW_NUMBER_COLUMN_KEY } from '../TableBase/use-table-selection';\nimport { compareByColumn } from '../TableBase/use-table-sort';\nimport { useTableSorts } from '../TableBase/use-table-sorts';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ForwardedRef, ReactElement } from 'react';\nimport type {\n CubeTableColumnGroupHeader,\n CubeTableColumnLayout,\n CubeTableRowSection,\n} from '../TableBase/types';\nimport type {\n CubeDataTableColumn,\n CubeDataTableColumnDefinition,\n CubeDataTableColumnGroup,\n CubeDataTableProps,\n} from './types';\n\n/** Wide enough for five digits at the dense default. */\nconst ROW_NUMBER_WIDTH = 56;\n\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\ninterface DataTableColumnModel<T> {\n columns: CubeDataTableColumn<T>[];\n headerPaths: Map<string, readonly CubeTableColumnGroupHeader[]>;\n}\n\nfunction isColumnGroup<T>(\n column: CubeDataTableColumnDefinition<T>,\n): column is CubeDataTableColumnGroup<T> {\n return 'children' in column;\n}\n\n/** Flattens the public column tree while retaining each leaf's header path. */\nfunction buildColumnModel<T>(\n definitions: readonly CubeDataTableColumnDefinition<T>[],\n): DataTableColumnModel<T> {\n const columns: CubeDataTableColumn<T>[] = [];\n const headerPaths = new Map<string, readonly CubeTableColumnGroupHeader[]>();\n\n function visit(\n entries: readonly CubeDataTableColumnDefinition<T>[],\n path: readonly CubeTableColumnGroupHeader[],\n ) {\n for (const entry of entries) {\n if (isColumnGroup(entry)) {\n visit(entry.children, [\n ...path,\n { key: entry.key, title: entry.title },\n ]);\n } else {\n columns.push(entry);\n if (path.length) headerPaths.set(entry.key, path);\n }\n }\n }\n\n visit(definitions, []);\n\n return { columns, headerPaths };\n}\n\n/** What `dataType: 'number'` adds to a column's own `cellStyles`. */\nconst NUMERIC_CELL_STYLES: Styles = { fontVariantNumeric: 'tabular-nums' };\n\n/**\n * The merge per consumer object, so a `cellStyles` that returns a shared\n * constant keeps one identity per cell rather than a fresh object on every\n * call — which is what `column-styles.ts` and tasty key their caches on.\n */\nconst NUMERIC_MERGED = new WeakMap<Styles, Styles>();\n\nfunction withNumeric(own: Styles | null | undefined): Styles {\n if (!own) return NUMERIC_CELL_STYLES;\n\n let merged = NUMERIC_MERGED.get(own);\n\n if (!merged) {\n merged = { ...NUMERIC_CELL_STYLES, ...own };\n NUMERIC_MERGED.set(own, merged);\n }\n\n return merged;\n}\n\n/**\n * Folds the numeric default under a column's own `cellStyles`, in either form.\n * A function stays a function, called per cell with its result merged over the\n * default, so a numeric column keeps reacting to its cell context.\n */\nfunction numericCellStyles<T>(\n cellStyles: CubeDataTableColumn<T>['cellStyles'],\n): CubeDataTableColumn<T>['cellStyles'] {\n if (typeof cellStyles === 'function') {\n return (ctx) => withNumeric(cellStyles(ctx));\n }\n\n return withNumeric(cellStyles);\n}\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\n/**\n * A grid for query results.\n *\n * The same engine as `ItemTable` — one `TableView`, one column layout, one\n * value pipeline — with the defaults an analytical grid wants rather than a\n * list's: denser type, banded rows, resizable columns, multi-column sort, and\n * rows pinned for totals.\n *\n * It knows nothing about Cube. Measures, dimensions, pivots and drill-downs\n * reach it as leaf columns, presentational column groups, `render` output and\n * `column.header.menu` content, which is what keeps the ~34 kB of Cloud's\n * column-header menu in Cloud.\n */\nfunction DataTable<T = any>(\n props: CubeDataTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n pinnedTopRows,\n pinnedBottomRows,\n isLoading = false,\n loadingIndicator = 'overlay',\n skeletonRowCount,\n error,\n emptyLabel,\n noResultsLabel,\n isFiltered,\n shape = 'plain',\n // Denser than `ItemTable`'s `medium`: a result grid is read as a block, and\n // more rows on screen is the point of it.\n size = 'small',\n rowSize,\n rowHeight,\n headerHeight,\n isStriped = true,\n isHeaderHidden,\n isHeaderSticky,\n isAutoHeight = false,\n showRowNumbers = false,\n sortMode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n paginationMode = 'client',\n page: pageProp,\n defaultPage,\n onPageChange,\n pageSize: pageSizeProp,\n defaultPageSize = 100,\n onPageSizeChange,\n pageSizeOptions,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n autoHidePagination = true,\n footerStart,\n footerCenter,\n footerEnd,\n cellSelectionMode = 'range',\n isCellSelectable,\n selectedCellRange,\n defaultSelectedCellRange,\n onCellRangeChange,\n isRowMoveAnimated,\n isResizable = true,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n isColumnReorderable = false,\n columnOrder,\n defaultColumnOrder,\n onColumnOrderChange,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n isVirtualized,\n virtualizeThreshold,\n overscan,\n getRowProps,\n storageKey,\n styles,\n headerStyles,\n headerCellStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n footerStyles,\n ariaLabel,\n qa,\n mods,\n ...rest\n } = props;\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n const [scrollerEl, setScrollerEl] = useState<HTMLElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const treeModel = useMemo(\n () =>\n getRowChildren\n ? buildTableTree(data, getRowChildren, resolvedGetRowKey)\n : null,\n [data, getRowChildren, resolvedGetRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['data-table-tree-duplicate-keys'],\n args: [\n 'DataTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['data-table-tree-cyclic-keys'],\n args: [\n 'DataTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n\n const storage = useTableStorage(storageKey);\n\n const columnModel = useMemo(() => buildColumnModel(columns), [columns]);\n const hasColumnGroups = columnModel.headerPaths.size > 0;\n\n /**\n * `dataType` is presentational, so it is folded into the column here rather\n * than reaching the renderer: `number` right-aligns and takes tabular figures\n * so digits line up down the column.\n */\n const resolvedColumns = useMemo(\n () =>\n columnModel.columns.map((column) => {\n const isNumeric = column.dataType === 'number';\n\n return {\n ...column,\n align: column.align ?? (isNumeric ? 'end' : 'start'),\n cellStyles: isNumeric\n ? numericCellStyles(column.cellStyles)\n : column.cellStyles,\n } as CubeDataTableColumn<T>;\n }),\n [columnModel.columns],\n );\n\n // Applied to the SOURCE columns, before `useTableColumns`, so hidden-column\n // filtering, structural injection and pinned hoisting all still happen\n // downstream and `columnOrder` can never fight `pin`.\n const columnOrderState = useColumnOrder<T>({\n columns: resolvedColumns,\n columnOrder,\n defaultColumnOrder,\n onColumnOrderChange,\n storage,\n });\n const orderedColumns = columnOrderState.columns;\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = orderedColumns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, orderedColumns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['data-table-tree-column-invalid', treeColumnKey],\n args: [\n 'DataTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n const {\n sorts,\n sortedRows,\n toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSorts<T>({\n columns: orderedColumns,\n rows: treeModel ? treeModel.roots.map((node) => node.row) : data,\n mode: treeModel ? 'server' : sortMode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = treeModel\n ? sortMode ??\n (orderedColumns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const processedTreeRoots = useMemo(() => {\n const roots = treeModel?.roots ?? [];\n if (treeSortMode !== 'client' || !sorts.length) return roots;\n\n const active = sorts\n .map((sort) => ({\n sort,\n column: orderedColumns.find((column) => column.key === sort.columnKey),\n }))\n .filter((entry) => entry.column != null);\n\n return sortTableTree(roots, (a, b) => {\n for (const { sort, column } of active) {\n const result = compareByColumn(\n column!,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n if (result !== 0) {\n return result * (sort.direction === 'asc' ? 1 : -1);\n }\n }\n return a.siblingIndex - b.siblingIndex;\n });\n }, [treeModel, treeSortMode, sorts, orderedColumns, collator]);\n\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n (pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize) as number,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isPaginated = paginationMode !== 'off';\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : treeModel\n ? processedTreeRoots.length\n : sortedRows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n setPageState(1);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n });\n\n const flatVisibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n paginationMode === 'client'\n ? processedTreeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : processedTreeRoots,\n ),\n [processedTreeRoots, paginationMode, pageInfo.page, pageSize],\n );\n\n const treeState = useTableTreeState<T>({\n roots: pageTreeRoots,\n allNodesByKey: treeModel?.byKey ?? new Map(),\n expandedKeys,\n defaultExpandedKeys,\n getTextValue: (node) => {\n const column = orderedColumns.find(\n (entry) => entry.key === resolvedTreeColumnKey,\n );\n return column\n ? getColumnText(column, node.row, node.sourceIndex) ?? String(node.key)\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : flatVisibleRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? storage.initial.columnWidths ?? defaultColumnWidths\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n const draftRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n /**\n * The resolved widths, for the freeze below. A ref because `layout` is\n * computed *after* this handler is defined, and `useEvent` only reads it when\n * the drag actually runs.\n */\n const layoutRef = useRef<CubeTableColumnLayout<T> | null>(null);\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n // First move of a drag freezes every column, so this changes exactly one\n // width instead of re-splitting the flex pool. See `freezeColumnWidths`.\n const base =\n draftRef.current ??\n freezeColumnWidths(layoutRef.current, baseColumnWidths);\n\n draftRef.current = { ...base, [key]: Math.round(width) };\n setDraftColumnWidths(draftRef.current);\n });\n\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n draftRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const leadingColumns = useMemo(\n () =>\n showRowNumbers\n ? [{ key: ROW_NUMBER_COLUMN_KEY, width: ROW_NUMBER_WIDTH }]\n : undefined,\n [showRowNumbers],\n );\n\n const layout = useTableColumns<T>({\n columns: orderedColumns,\n containerWidth,\n columnWidths,\n leadingColumns,\n });\n\n layoutRef.current = layout;\n\n const { t } = useI18n();\n\n // Every row a range can reach, in the order they appear on screen. Pinned rows\n // are in it: a total is a figure like any other, and having to copy it\n // separately from the column it sums is the wrong trade.\n //\n // The keys are built here rather than inside the hook so they cannot disagree\n // with the ones the renderer stamps — a pinned row is keyed by its own index\n // within its group, exactly as `renderPinnedRow` keys it.\n const selectionRows = useMemo(\n () => [\n ...(pinnedTopRows ?? []),\n ...visibleRows,\n ...(pinnedBottomRows ?? []),\n ],\n [pinnedTopRows, visibleRows, pinnedBottomRows],\n );\n const selectionRowKeys = useMemo(\n () => [\n // Section-qualified, matching what the renderer stamps: the same record\n // is routinely pinned at both edges, and one flat key space collapsed the\n // two into whichever came first.\n ...(pinnedTopRows ?? []).map((row, index) =>\n selectionRowKey('pinnedTop', resolvedGetRowKey(row, index)),\n ),\n ...visibleRows.map(\n (row, index) =>\n visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index),\n ),\n ...(pinnedBottomRows ?? []).map((row, index) =>\n selectionRowKey('pinnedBottom', resolvedGetRowKey(row, index)),\n ),\n ],\n [\n pinnedTopRows,\n visibleRows,\n visibleRowKeys,\n pinnedBottomRows,\n resolvedGetRowKey,\n ],\n );\n\n // The hook works in one flat row order; the section a row belongs to is a\n // property of where it sits in that order, so it is resolved here rather than\n // asking the consumer to track it.\n const resolveCellSelectable = useEvent(\n (row: T, rowKey: Key, columnKey: string) => {\n if (!isCellSelectable) return true;\n\n const index = selectionRowKeys.indexOf(rowKey);\n const topCount = pinnedTopRows?.length ?? 0;\n const section: CubeTableRowSection =\n index < topCount\n ? 'pinnedTop'\n : index < topCount + visibleRows.length\n ? 'body'\n : 'pinnedBottom';\n\n return isCellSelectable({ row, rowKey, columnKey, section });\n },\n );\n\n const cellSelection = useCellSelection<T>({\n mode: cellSelectionMode,\n columns: layout.columns,\n rows: selectionRows,\n rowKeys: selectionRowKeys,\n isCellSelectable: isCellSelectable ? resolveCellSelectable : undefined,\n range: selectedCellRange,\n defaultRange: defaultSelectedCellRange,\n onRangeChange: onCellRangeChange,\n });\n\n const rootStyles = mergeStyleLayers(\n extractStyles(props, CONTAINER_STYLES),\n styles,\n );\n\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const showPagination =\n isPaginated &&\n !(\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize\n );\n\n const hasFooter =\n showPagination ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n /* ── column reordering ────────────────────────────────────────────────── */\n\n useWarn(isColumnReorderable && hasColumnGroups, {\n key: ['data-table-grouped-column-reorder'],\n args: [\n 'DataTable:',\n '`isColumnReorderable` is ignored when columns contain header groups.',\n ],\n });\n\n const canReorderColumns = isColumnReorderable && !hasColumnGroups;\n\n const headRowRef = useRef<HTMLTableRowElement>(null);\n const draggableColumnKeys = useMemo(\n () => getDraggableColumnKeys(layout.columns, canReorderColumns),\n [layout.columns, canReorderColumns],\n );\n const columnCollection = useMemo(\n () =>\n new RowCollection(\n layout.columns.filter((column) =>\n isColumnDraggable(column, canReorderColumns),\n ),\n (column) => column.key,\n new Set(),\n // The drag announcements read this — otherwise a screen reader hears\n // \"Insert between and \".\n (column) =>\n typeof column.title === 'string' ? column.title : column.key,\n ),\n [layout.columns, canReorderColumns],\n );\n /**\n * `'single'`, not `'none'`.\n *\n * `useDraggableItem` only deletes its own `onClick` — the one that would\n * hijack a screen-reader click away from the sort — when the selection mode is\n * not `'none'`, and only then does it attach the keyboard drag description.\n * Nothing is ever actually selected here.\n */\n const columnSelectionState = useMultipleSelectionState({\n selectionMode: 'single',\n disabledBehavior: 'all',\n });\n const columnSelectionManager = useMemo(\n () => new SelectionManager(columnCollection, columnSelectionState),\n [columnCollection, columnSelectionState],\n );\n const handleColumnFocus = useEvent((columnKey: string | null) => {\n columnSelectionManager.setFocusedKey(columnKey);\n });\n\n // One draggable column cannot be reordered, so the machinery stays unmounted\n // and the header keeps its exact DOM.\n const isColumnDragEnabled =\n canReorderColumns && draggableColumnKeys.length > 1;\n\n const treeRowNumberOffset = treeModel\n ? paginationMode === 'client'\n ? flattenTableTree(\n processedTreeRoots.slice(0, (pageInfo.page - 1) * pageSize),\n treeState.expandedKeys,\n ).length\n : 0\n : null;\n\n const renderTable = (\n columnDragState?: any,\n columnDropState?: any,\n headCollectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n {...rest}\n rootRef={rootRef}\n qa={qa || 'DataTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n pinnedTopRows={pinnedTopRows}\n pinnedBottomRows={pinnedBottomRows}\n // Continuous across pages: row 101 is row 101, not row 1 of page two.\n //\n // Server mode counts too — the page and its size are known there just the\n // same, and `rows` is that page. Only `'off'` starts at 1, because then\n // there is no page to be on.\n rowNumberOffset={\n treeRowNumberOffset ??\n (paginationMode === 'off' ? 0 : (pageInfo.page - 1) * pageSize)\n }\n // The same offset drives `aria-rowindex`, which is document-absolute by\n // contract — a screen reader on page 3 should hear \"row 51 of 240\", not\n // \"row 1 of 25\".\n rowIndexOffset={\n treeModel\n ? 0\n : paginationMode === 'off'\n ? 0\n : (pageInfo.page - 1) * pageSize\n }\n totalRowCount={treeModel ? visibleRows.length : total}\n layout={layout}\n columnHeaderPaths={columnModel.headerPaths}\n // Always on, unlike `ItemTable`. A result grid is read down a column, and\n // once the values are wide and right-aligned the rule is what keeps a\n // figure attached to its column — which is why Cloud's ag-grid theme sets\n // `columnBorder` for `DataTable` and not for the list grids.\n hasColumnDividers\n cellSelection={cellSelection}\n getRowKey={resolvedGetRowKey}\n onScrollerRef={setScrollerEl}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n skeletonRowCount={skeletonRowCount}\n error={error}\n // Same localized fallbacks as `ItemTable`: a grid that has finished\n // loading and shows an unexplained blank rectangle reads as broken.\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n isFiltered={isFiltered}\n shape={shape}\n size={size}\n rowSize={rowSize}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n isAutoHeight={isAutoHeight}\n // The header shows the column name at body size — a result grid has no\n // room for the uppercase caption a list header uses.\n // `t4` throughout: a result grid is read as a block, and one step down\n // from the list preset fits noticeably more on screen without losing\n // legibility. The header takes the medium weight of the same step.\n contentPreset=\"t4\"\n headerPreset=\"t4m\"\n sortMode={treeSortMode}\n sorts={sorts}\n onColumnSort={toggleSort}\n onColumnSortChange={setColumnSort}\n columnContextMenu={columnContextMenu}\n onColumnMenuAction={onColumnMenuAction}\n columnMenuTriggerProps={columnMenuTriggerProps}\n columnMenuProps={columnMenuProps}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n isColumnReorderable={isColumnDragEnabled}\n columnDragState={columnDragState}\n columnDropState={columnDropState}\n headCollectionProps={headCollectionProps}\n headRowRef={headRowRef}\n onColumnFocus={handleColumnFocus}\n tree={\n treeModel\n ? {\n state: treeState.state,\n ariaProps: treeState.ariaProps,\n nodes: treeState.visibleNodes,\n entries: visibleTreeEntries,\n columnKey: resolvedTreeColumnKey!,\n }\n : undefined\n }\n footer={\n hasFooter ? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={\n showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined\n }\n />\n ) : null\n }\n />\n );\n\n return isColumnDragEnabled ? (\n <DraggableCollection\n state={{\n collection: columnCollection as any,\n selectionManager: columnSelectionManager as any,\n disabledKeys: new Set(),\n }}\n // The element that DIRECTLY contains the header cells. React Aria's\n // `ListDropTargetDelegate` resolves a drop by measuring `[data-key]`\n // descendants of this element, so pointing it anywhere else leaves every\n // drop unresolvable — the column lifts but never lands.\n listRef={headRowRef}\n orderedKeys={draggableColumnKeys}\n orientation=\"horizontal\"\n onReorder={columnOrderState.reorder}\n >\n {(dragState, dropState, collectionProps) =>\n renderTable(dragState, dropState, collectionProps)\n }\n </DraggableCollection>\n ) : (\n renderTable()\n );\n}\n\nconst _DataTable = forwardRef(DataTable) as unknown as (<T = any>(\n props: CubeDataTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReactElement) & { displayName?: string };\n\n_DataTable.displayName = 'DataTable';\n\nexport { _DataTable as DataTable };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,MAAMkD,mBAAmB;AAEzB,MAAMC,eAAuC,EAAE;AAO/C,SAASO,cACPC,QACuC;AACvC,QAAO,cAAcA;;;AAIvB,SAASC,iBACPC,aACyB;CACzB,MAAMP,UAAoC,EAAE;CAC5C,MAAME,8BAAc,IAAIC,KAAoD;CAE5E,SAASK,MACPC,SACAC,MACA;AACA,OAAK,MAAMC,SAASF,QAClB,KAAIL,cAAcO,MAAM,CACtBH,OAAMG,MAAMC,UAAU,CACpB,GAAGF,MACH;GAAEG,KAAKF,MAAME;GAAKC,OAAOH,MAAMG;GAAO,CACvC,CAAC;OACG;AACLd,WAAQe,KAAKJ,MAAM;AACnB,OAAID,KAAKM,OAAQd,aAAYe,IAAIN,MAAME,KAAKH,KAAK;;;AAKvDF,OAAMD,aAAa,EAAE,CAAC;AAEtB,QAAO;EAAEP;EAASE;EAAa;;;AAIjC,MAAMgB,sBAA8B,EAAEC,oBAAoB,gBAAgB;;;;;;AAO1E,MAAMC,iCAAiB,IAAIC,SAAyB;AAEpD,SAASC,YAAYC,KAAwC;AAC3D,KAAI,CAACA,IAAK,QAAOL;CAEjB,IAAIM,SAASJ,eAAeK,IAAIF,IAAI;AAEpC,KAAI,CAACC,QAAQ;AACXA,WAAS;GAAE,GAAGN;GAAqB,GAAGK;GAAK;AAC3CH,iBAAeH,IAAIM,KAAKC,OAAO;;AAGjC,QAAOA;;;;;;;AAQT,SAASE,kBACPC,YACsC;AACtC,KAAI,OAAOA,eAAe,WACxB,SAAQC,QAAQN,YAAYK,WAAWC,IAAI,CAAC;AAG9C,QAAON,YAAYK,WAAW;;AAGhC,SAASE,iBAAoBC,QAAgB;AAC3C,SAAQC,KAAQC,UAAuB;EACrC,MAAMC,QAASF,MAAcD;AAE7B,SAAOG,SAAS,OAAOD,QAASC;;;;;;;;;;;;;;;;AAiBpC,SAASC,UACPC,OACAC,KACA;CACA,MAAM,EACJE,MACAtC,SACA8B,SAAS,MACTS,WACAC,gBACAC,eACAC,cACAC,qBACAC,UACAC,eACAC,kBACAC,YAAY,OACZC,mBAAmB,WACnBC,kBACAC,OACAC,YACAC,gBACAC,YACAC,QAAQ,SAGRC,OAAO,SACPC,SACAC,WACAC,cACAC,YAAY,MACZC,gBACAC,gBACAC,eAAe,OACfC,iBAAiB,OACjBC,UACAC,OAAOC,WACPC,cACAC,eACAC,iBAAiB,UACjBC,MAAMC,UACNC,aACAC,cACAC,UAAUC,cACVC,kBAAkB,KAClBC,kBACAC,iBACAC,OAAOC,WACPC,YACAC,aACAC,UAAU,MACVC,qBAAqB,MACrBC,aACAC,cACAC,WACAC,oBAAoB,SACpBC,kBACAC,mBACAC,0BACAC,mBACAC,mBACAC,cAAc,MACdC,cAAcC,kBACdC,qBACAC,gBACAC,sBAAsB,OACtBC,aACAC,oBACAC,qBACAC,mBACAC,oBACAC,wBACAC,iBACAC,eACAC,qBACAC,UACAC,aACAC,YACAC,QACAC,cACAC,kBACAC,YACAC,WACAzF,YACA0F,cACAC,WACAC,IACAC,MACA,GAAGC,SACDtF;CAGJ,MAAMwF,UAAUrK,gBAAgB8E,KADfpF,OAAuB,KAAK,CACC;CAC9C,MAAM,CAAC4K,YAAYC,iBAAiB5K,SAA6B,KAAK;CACtE,MAAM8K,iBAAiBvJ,kBAAkBoJ,WAAW;CAEpD,MAAMI,oBAAoBjL,cAClBwF,aAAaV,iBAAoBC,OAAO,EAC9C,CAACS,WAAWT,OACd,CAAC;CAED,MAAMmG,YAAYlL,cAEdyF,iBACI1E,eAAewE,MAAME,gBAAgBwF,kBAAkB,GACvD,MACN;EAAC1F;EAAME;EAAgBwF;EACzB,CAAC;AAED5K,SAAQ6K,aAAa,QAAQA,UAAUC,cAAclH,SAAS,GAAG;EAC/DH,KAAK,CAAC,iCAAiC;EACvCsH,MAAM,CACJ,cACA,2FAA0F;EAE7F,CAAC;AACF/K,SAAQ6K,aAAa,QAAQA,UAAUG,WAAWpH,SAAS,GAAG;EAC5DH,KAAK,CAAC,8BAA8B;EACpCsH,MAAM,CACJ,cACA,+DAA8D;EAEjE,CAAC;CAEF,MAAME,UAAUtJ,gBAAgBgI,WAAW;CAE3C,MAAMuB,cAAcvL,cAAcuD,iBAAiBN,QAAQ,EAAE,CAACA,QAAQ,CAAC;CACvE,MAAMuI,kBAAkBD,YAAYpI,YAAYqD,OAAO;CA0BvD,MAAMsF,mBAAmBtK,eAAkB;EACzCyB,SApBsBjD,cAEpBuL,YAAYtI,QAAQyI,KAAKpI,WAAW;GAClC,MAAMqI,YAAYrI,OAAOsI,aAAa;AAEtC,UAAO;IACL,GAAGtI;IACHuI,OAAOvI,OAAOuI,UAAUF,YAAY,QAAQ;IAC5C/G,YAAY+G,YACRhH,kBAAkBrB,OAAOsB,WAAW,GACpCtB,OAAOsB;IACZ;IACD,EACJ,CAAC2G,YAAYtI,QACf,CAAC;EAOCoG;EACAC;EACAC;EACA+B;EACD,CAAC;CACF,MAAMS,iBAAiBD,iBAAiB7I;CAExC,MAAM+I,wBAAwBhM,cAAc;AAC1C,MAAI,CAACkL,UAAW,QAAOe;EACvB,MAAMC,iBAAiBH,eAAeI,QAAQ7I,aAAW,CAACA,SAAO8I,SAAS;AAC1E,SAAOF,eAAeG,MAAM/I,aAAWA,SAAOQ,QAAQ4B,cAAc,GAChEA,gBACAwG,eAAe,IAAIpI;IACtB;EAACoH;EAAWa;EAAgBrG;EAAc,CAAC;AAE9CrF,SACE6K,aAAa,QACXxF,iBAAiB,QACjBsG,0BAA0BtG,eAC5B;EACE5B,KAAK,CAAC,kCAAkC4B,cAAc;EACtD0F,MAAM,CACJ,cACA,iGAAgG;EAGtG,CAAC;CAED,MAAM,EACJlE,OACAoF,YACAC,YACAC,eACAC,MAAMC,qBACJ3K,cAAiB;EACnBkB,SAAS8I;EACTY,MAAMzB,YAAYA,UAAU0B,MAAMlB,KAAKmB,SAASA,KAAK7H,IAAI,GAAGO;EAC5DkH,MAAMvB,YAAY,WAAWjE;EAC7BC,OAAOC;EACPC;EACAC;EACD,CAAC;CAEF,MAAMyF,WAAWnN,YAAY;EAAEoN,SAAS;EAAMC,aAAa;EAAQ,CAAC;CACpE,MAAMC,eAAe/B,YACjBjE,aACC8E,eAAeM,MAAM/I,aAAWA,SAAO4J,WAAW,GAAG,WAAW,SACjER;CACJ,MAAMS,qBAAqBnN,cAAc;EACvC,MAAM4M,QAAQ1B,WAAW0B,SAAS,EAAE;AACpC,MAAIK,iBAAiB,YAAY,CAAC/F,MAAMjD,OAAQ,QAAO2I;EAEvD,MAAMQ,SAASlG,MACZwE,KAAK2B,UAAU;GACdA;GACA/J,QAAQyI,eAAeuB,MAAMhK,aAAWA,SAAOQ,QAAQuJ,KAAKE,UAAS;GACtE,EAAE,CACFpB,QAAQvI,UAAUA,MAAMN,UAAU,KAAK;AAE1C,SAAOpC,cAAc0L,QAAQY,GAAGC,MAAM;AACpC,QAAK,MAAM,EAAEJ,MAAAA,QAAM/J,QAAAA,cAAY8J,QAAQ;IACrC,MAAMM,SAAS5L,gBACbwB,UACAwJ,UACAU,EAAExI,KACFwI,EAAEG,aACFF,EAAEzI,KACFyI,EAAEE,YACH;AACD,QAAID,WAAW,EACb,QAAOA,UAAUL,OAAKO,cAAc,QAAQ,IAAI;;AAGpD,UAAOJ,EAAEK,eAAeJ,EAAEI;IAC1B;IACD;EAAC3C;EAAW+B;EAAc/F;EAAO6E;EAAgBe;EAAS,CAAC;CAE9D,MAAM,CAACnF,UAAUmG,oBAAoBjO,mBACnC+H,cACCA,iBAAiBqE,UAAaX,QAAQyC,IAAI,WAAW,GAClDzC,QAAQ0C,QAAQrG,YAAYE,kBAC5BA,iBACJC,iBACD;CACD,MAAM,CAACP,MAAM0G,gBAAgBpO,mBAC3B2H,UACAC,eAAe,GACfC,aACD;CAED,MAAMwG,cAAc5G,mBAAmB;CACvC,MAAM6G,oBAAoB7G,mBAAmB;CAC7C,MAAMU,QAAQmG,oBACVlG,aAAa,IACbiD,YACEiC,mBAAmBlJ,SACnBqI,WAAWrI;CAEjB,MAAMmK,WAAWzN,YAAY;EAC3B4G;EACAI;EACAK;EACAE,YAAYiG,oBAAoBjG,aAAa+D;EAC9C,CAAC;CAEF,MAAMoC,UAAUjO,UAAUkO,SACxBL,aAAavN,UAAU4N,MAAMF,SAASlG,WAAW,CACnD,CAAC;CACD,MAAMqG,cAAcnO,UAAUkO,WAAiB;AAC7CR,mBAAiBQ,OAAK;AACtBL,eAAa,EAAE;AAEf,MAAIrG,iBAAiBqE,OAAWX,SAAQkD,MAAM,EAAE7G,UAAU2G,QAAM,CAAC;GACjE;CAEF,MAAMG,kBACJnH,mBAAmB,WACfgF,WAAWoC,OACRN,SAAS7G,OAAO,KAAKI,UACtByG,SAAS7G,OAAOI,SACjB,GACD2E;CAeN,MAAMsC,YAAY3M,kBAAqB;EACrC2K,OAdoB5M,cAElBiB,iBACEqG,mBAAmB,WACf6F,mBAAmBuB,OAChBN,SAAS7G,OAAO,KAAKI,UACtByG,SAAS7G,OAAOI,SACjB,GACDwF,mBACL,EACH;GAACA;GAAoB7F;GAAgB8G,SAAS7G;GAAMI;GACtD,CAAC;EAICkH,eAAe3D,WAAW4D,yBAAS,IAAI1L,KAAK;EAC5CuC;EACAC;EACAmJ,eAAelC,WAAS;GACtB,MAAMvJ,WAASyI,eAAeuB,MAC3B1J,YAAUA,QAAME,QAAQkI,sBAC1B;AACD,UAAO1I,WACH3B,cAAc2B,UAAQuJ,OAAK7H,KAAK6H,OAAKc,YAAY,IAAIqB,OAAOnC,OAAK/I,IAAI,GACrEkL,OAAOnC,OAAK/I,IAAI;;EAEtB+B;EACA0E;EACD,CAAC;CAEF,MAAM0E,qBAAqB/D,YAAY0D,UAAUM,iBAAiB,EAAE;CACpE,MAAMC,cAAcjE,YAChB+D,mBAAmBvD,KAAK9H,YAAUA,QAAMoB,IAAI,GAC5CyJ;CACJ,MAAMW,iBAAiBlE,YACnB+D,mBAAmBvD,KAAK9H,YAAUA,QAAME,IAAI,GAC5CmI;CAEJ,MAAM,CAACoD,iBAAiBC,sBAAsBpP,gBAIzC+I,qBAAqBgD,UAAaX,QAAQyC,IAAI,eAAe,GAC1DzC,QAAQ0C,QAAQhF,gBAAgBE,sBAChCA,wBAAwBpG,aAC/B;CACD,MAAM,CAACyM,mBAAmBC,wBAAwBtP,SAGxC,KAAK;CACf,MAAMuP,WAAWxP,OAAsC,KAAK;CAE5D,MAAMyP,mBAAmBzG,oBAAoBoG;CAC7C,MAAMrG,eAAeuG,qBAAqBG;;;;;;CAO1C,MAAMC,YAAY1P,OAAwC,KAAK;CAE/D,MAAM2P,qBAAqBxP,UAAU0D,KAAa+L,UAAkB;AAOlEJ,WAASM,UAAU;GAAE,GAHnBN,SAASM,WACTrO,mBAAmBiO,UAAUI,SAASL,iBAAiB;IAE1B5L,MAAMkM,KAAKC,MAAMJ,MAAK;GAAG;AACxDL,uBAAqBC,SAASM,QAAQ;GACtC;CAEF,MAAMG,wBAAwB9P,UAAU0D,UAAgB;EACtD,MAAMwK,SAAOmB,SAASM,WAAWL;AAEjC,MAAIzG,qBAAqBgD,QAAW;AAClCqD,sBAAmBhB,OAAK;AACxBhD,WAAQkD,MAAM,EAAExF,cAAcsF,QAAM,CAAC;;AAGvCnF,mBAAiBrF,OAAKwK,OAAKxK,QAAMwK,OAAK;AACtCmB,WAASM,UAAU;AACnBP,uBAAqB,KAAK;GAC1B;CAUF,MAAMY,SAASxO,gBAAmB;EAChCqB,SAAS8I;EACTf;EACAhC;EACAmH,gBAZqBnQ,cAEnBgH,iBACI,CAAC;GAAElD,KAAKjC;GAAuBgO,OAAOhN;GAAkB,CAAC,GACzDoJ,QACN,CAACjF,eACH,CAAC;EAOA,CAAC;AAEF2I,WAAUI,UAAUK;CAEpB,MAAM,EAAEC,MAAM/P,SAAS;CASvB,MAAMgQ,gBAAgBtQ,cACd;EACJ,GAAI8F,iBAAiB,EAAE;EACvB,GAAGqJ;EACH,GAAIpJ,oBAAoB,EAAE;EAC3B,EACD;EAACD;EAAeqJ;EAAapJ;EAC/B,CAAC;CACD,MAAMwK,mBAAmBvQ,cACjB;EAIJ,IAAI8F,iBAAiB,EAAE,EAAE4F,KAAK1G,KAAKC,UACjC7D,gBAAgB,aAAa6J,kBAAkBjG,KAAKC,MAAM,CAC5D,CAAC;EACD,GAAGkK,YAAYzD,KACZ1G,OAAKC,YACJmK,iBAAiBnK,YAAUgG,kBAAkBjG,OAAKC,QACtD,CAAC;EACD,IAAIc,oBAAoB,EAAE,EAAE2F,KAAK1G,OAAKC,YACpC7D,gBAAgB,gBAAgB6J,kBAAkBjG,OAAKC,QAAM,CAC/D,CAAC;EACF,EACD;EACEa;EACAqJ;EACAC;EACArJ;EACAkF;EAEJ,CAAC;CAKD,MAAMuF,wBAAwBpQ,UAC3B4E,OAAQD,UAAawI,cAAsB;AAC1C,MAAI,CAAC7E,iBAAkB,QAAO;EAE9B,MAAMzD,UAAQsL,iBAAiBE,QAAQ1L,SAAO;EAC9C,MAAM2L,WAAW5K,eAAe7B,UAAU;AAQ1C,SAAOyE,iBAAiB;GAAE1D,KAAAA;GAAKD,QAAAA;GAAQwI;GAAWoD,SANhD1L,UAAQyL,WACJ,cACAzL,UAAQyL,WAAWvB,YAAYlL,SAC7B,SACA;GAEmD,CAAC;GAE/D;CAED,MAAM2M,gBAAgBvP,iBAAoB;EACxCoL,MAAMhE;EACNxF,SAASmN,OAAOnN;EAChB0J,MAAM2D;EACNO,SAASN;EACT7H,kBAAkBA,mBAAmB8H,wBAAwBvE;EAC7D6E,OAAOnI;EACPoI,cAAcnI;EACdoI,eAAenI;EAChB,CAAC;CAEF,MAAMoI,aAAaxQ,iBACjBD,cAAc4E,OAAOtF,iBAAiB,EACtCmK,OACD;CAED,MAAMiH,mBAAmBnJ,iBAAiB9D,SACtC+L,KAAKmB,IAAI,GAAGpJ,gBAAgB,GAC5BJ;CAEJ,MAAMyJ,iBACJlD,eACA,EACE7F,sBACA,CAACF,eACDiG,SAASlG,cAAc,KACvBF,SAASkJ;CAGb,MAAMG,YACJD,kBACA9I,eAAe,QACfC,gBAAgB,QAChBC,aAAa;AAIfnI,SAAQ+I,uBAAuBoC,iBAAiB;EAC9C1H,KAAK,CAAC,oCAAoC;EAC1CsH,MAAM,CACJ,cACA,uEAAsE;EAEzE,CAAC;CAEF,MAAMkG,oBAAoBlI,uBAAuB,CAACoC;CAElD,MAAM+F,aAAatR,OAA4B,KAAK;CACpD,MAAMwR,sBAAsBzR,cACpBsB,uBAAuB8O,OAAOnN,SAASqO,kBAAkB,EAC/D,CAAClB,OAAOnN,SAASqO,kBACnB,CAAC;CACD,MAAMI,mBAAmB1R,cAErB,IAAIc,cACFsP,OAAOnN,QAAQkJ,QAAQ7I,aACrB/B,kBAAkB+B,UAAQgO,kBAC5B,CAAC,GACAhO,aAAWA,SAAOQ,qBACnB,IAAI6N,KAAK,GAGRrO,aACC,OAAOA,SAAOS,UAAU,WAAWT,SAAOS,QAAQT,SAAOQ,IAC5D,EACH,CAACsM,OAAOnN,SAASqO,kBACnB,CAAC;;;;;;;;;CASD,MAAMM,uBAAuBzR,0BAA0B;EACrD0R,eAAe;EACfC,kBAAkB;EACnB,CAAC;CACF,MAAMC,yBAAyB/R,cACvB,IAAIJ,iBAAiB8R,kBAAkBE,qBAAqB,EAClE,CAACF,kBAAkBE,qBACrB,CAAC;CACD,MAAMI,oBAAoB5R,UAAUmN,gBAA6B;AAC/DwE,yBAAuBE,cAAc1E,YAAU;GAC/C;CAIF,MAAM2E,sBACJZ,qBAAqBG,oBAAoBxN,SAAS;CAEpD,MAAMkO,sBAAsBjH,YACxB5D,mBAAmB,WACjBtG,iBACEmM,mBAAmBuB,MAAM,IAAIN,SAAS7G,OAAO,KAAKI,SAAS,EAC3DiH,UAAUjJ,aACX,CAAC1B,SACF,IACF;CAEJ,MAAMmO,eACJC,iBACAC,iBACAC,wBAEA,oBAAC;EACC,GAAI7H;EACKE;EACT,IAAIJ,MAAM;EACV,MAAM2E;EACN,SAASC;EACMtJ;EACGC;EAMlB,iBACEoM,wBACC7K,mBAAmB,QAAQ,KAAK8G,SAAS7G,OAAO,KAAKI;EAKxD,gBACEuD,YACI,IACA5D,mBAAmB,QACjB,KACC8G,SAAS7G,OAAO,KAAKI;EAE9B,eAAeuD,YAAYiE,YAAYlL,SAAS+D;EACxCoI;EACR,mBAAmB7E,YAAYpI;EAK/B;EACeyN;EACf,WAAW3F;EACX,eAAeH;EACJ9E;EACOC;EACAC;EACXC;EAGP,YAAYC,cAAciK,EAAE,qBAAqB,WAAW;EAC5D,gBACEhK,kBAAkBgK,EAAE,uBAAuB,mBAC7C;EACY/J;EACLC;EACDC;EACGC;EACEC;EACGC;EACHC;EACQkC;EACHjC;EACAC;EACFC;EAMd,eAAc;EACd,cAAa;EACb,UAAUkG;EACH/F;EACP,cAAcqF;EACd,oBAAoBC;EACDhD;EACCC;EACIC;EACPC;EACFC;EACMC;EACXC;EACGf;EACb,gBAAgB6G;EAChB,mBAAmBM;EACNnG;EACFQ;EACX,QAAQ0G;EACM/G;EACIC;EACNC;EACDC;EACCzF;EACN6F;EACN,qBAAqByH;EACJG;EACAC;EACIC;EACThB;EACZ,eAAeS;EACf,MACE9G,YACI;GACEsH,OAAO5D,UAAU4D;GACjBC,WAAW7D,UAAU6D;GACrBC,OAAO9D,UAAU+D;GACjBjP,SAASuL;GACT1B,WAAWvB;GACZ,GACDC;EAEN,QACEoF,YACE,oBAAC;GACC,OAAO/I;GACP,QAAQC;GACR,KAAKC;GACL,QAAQ8B;GACR,YACE8G,iBACI;IACE7J,MAAM6G,SAAS7G;IACfI;IACAK;IACAE,YAAYkG,SAASlG;IACrBH;IACAK;IACAD;IACAT,cAAc2G;IACdvG,kBAAkByG;IACnB,GACDtC;IAEN,GACA;GAGT;AAED,QAAOiG,sBACL,oBAAC;EACC,OAAO;GACLU,YAAYlB;GACZmB,kBAAkBd;GAClBe,8BAAc,IAAInB,KAAI;GACvB;EAKD,SAASJ;EACT,aAAaE;EACb,aAAY;EACZ,WAAW3F,iBAAiBiH;aAE1BC,WAAWC,WAAWC,oBACtBd,YAAYY,WAAWC,WAAWC,gBACpC;GACoB,GAEtBd,aACD;;AAGH,MAAMe,aAAapT,WAAWoF,UAAU;AAIxCgO,WAAWC,cAAc"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":["useCollator","SelectionManager","useControlledState","CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useMultipleSelectionState","useEvent","useWarn","useI18n","useCombinedRefs","extractStyles","mergeStyleLayers","clampPage","getPageInfo","DraggableCollection","ItemTableFooter","RowCollection","buildTableTree","flattenTableTree","reindexTableTree","sortTableTree","TableView","selectionRowKey","useCellSelection","getDraggableColumnKeys","isColumnDraggable","useColumnOrder","useContainerWidth","freezeColumnWidths","getColumnText","useTableColumns","ROW_NUMBER_COLUMN_KEY","compareByColumn","useTableSorts","useTableStorage","useTableTreeState","Key","Styles","ForwardedRef","ReactElement","CubeTableColumnGroupHeader","CubeTableColumnLayout","CubeTableRowSection","CubeDataTableColumn","CubeDataTableColumnDefinition","CubeDataTableColumnGroup","CubeDataTableProps","ROW_NUMBER_WIDTH","EMPTY_WIDTHS","Record","DataTableColumnModel","columns","T","headerPaths","Map","isColumnGroup","column","buildColumnModel","definitions","visit","entries","path","entry","children","key","title","push","length","set","NUMERIC_CELL_STYLES","fontVariantNumeric","NUMERIC_MERGED","WeakMap","withNumeric","own","merged","get","numericCellStyles","cellStyles","ctx","defaultGetRowKey","rowKey","row","index","value","DataTable","props","ref","HTMLDivElement","data","getRowKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","pinnedTopRows","pinnedBottomRows","isLoading","loadingIndicator","skeletonRowCount","error","emptyLabel","noResultsLabel","isFiltered","shape","size","rowSize","rowHeight","headerHeight","isStriped","isHeaderHidden","isHeaderSticky","isAutoHeight","showRowNumbers","sortMode","sorts","sortsProp","defaultSorts","onSortsChange","paginationMode","page","pageProp","defaultPage","onPageChange","pageSize","pageSizeProp","defaultPageSize","onPageSizeChange","pageSizeOptions","total","totalProp","totalPages","hasNextPage","summary","autoHidePagination","footerStart","footerCenter","footerEnd","cellSelectionMode","isCellSelectable","selectedCellRange","defaultSelectedCellRange","onCellRangeChange","isRowMoveAnimated","isResizable","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","isColumnReorderable","columnOrder","defaultColumnOrder","onColumnOrderChange","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","isVirtualized","virtualizeThreshold","overscan","getRowProps","storageKey","styles","headerStyles","headerCellStyles","bodyStyles","rowStyles","footerStyles","ariaLabel","qa","mods","rest","localRef","rootRef","scrollerEl","setScrollerEl","HTMLElement","containerWidth","resolvedGetRowKey","treeModel","duplicateKeys","args","cyclicKeys","storage","columnModel","hasColumnGroups","resolvedColumns","map","isNumeric","dataType","align","columnOrderState","orderedColumns","resolvedTreeColumnKey","undefined","visibleColumns","filter","isHidden","some","sortedRows","toggleSort","setColumnSort","mode","resolvedSortMode","rows","roots","node","collator","numeric","sensitivity","treeSortMode","isSortable","processedTreeRoots","active","sort","find","columnKey","a","b","result","sourceIndex","direction","siblingIndex","setPageSizeState","has","initial","setPageState","isPaginated","isServerPaginated","pageInfo","setPage","next","setPageSize","write","flatVisibleRows","slice","pageTreeRoots","treeState","allNodesByKey","byKey","getTextValue","String","visibleTreeEntries","visibleEntries","visibleRows","visibleRowKeys","ownColumnWidths","setOwnColumnWidths","draftColumnWidths","setDraftColumnWidths","draftRef","baseColumnWidths","layoutRef","handleColumnResize","width","base","current","Math","round","handleColumnResizeEnd","leadingColumns","layout","t","selectionRows","selectionRowKeys","resolveCellSelectable","indexOf","topCount","section","cellSelection","rowKeys","range","defaultRange","onRangeChange","rootStyles","smallestPageSize","min","showPagination","hasFooter","canReorderColumns","headRowRef","HTMLTableRowElement","draggableColumnKeys","columnCollection","Set","columnSelectionState","selectionMode","disabledBehavior","columnSelectionManager","handleColumnFocus","setFocusedKey","isColumnDragEnabled","treeRowNumberOffset","renderTable","columnDragState","columnDropState","headCollectionProps","state","ariaProps","nodes","visibleNodes","collection","selectionManager","disabledKeys","reorder","dragState","dropState","collectionProps","_DataTable","displayName"],"sources":["../../../../src/components/data/DataTable/DataTable.tsx"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { SelectionManager } from '@react-stately/selection';\nimport { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\nimport { useMultipleSelectionState } from 'react-stately';\n\nimport { useEvent, useWarn } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport { ItemTableFooter } from '../ItemTable/ItemTableFooter';\nimport { RowCollection } from '../TableBase/RowCollection';\nimport {\n buildTableTree,\n flattenTableTree,\n reindexTableTree,\n sortTableTree,\n} from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { selectionRowKey } from '../TableBase/types';\nimport { useCellSelection } from '../TableBase/use-cell-selection';\nimport {\n getDraggableColumnKeys,\n isColumnDraggable,\n useColumnOrder,\n} from '../TableBase/use-column-order';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport {\n freezeColumnWidths,\n getColumnText,\n useTableColumns,\n} from '../TableBase/use-table-columns';\nimport { ROW_NUMBER_COLUMN_KEY } from '../TableBase/use-table-selection';\nimport { compareByColumn } from '../TableBase/use-table-sort';\nimport { useTableSorts } from '../TableBase/use-table-sorts';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ForwardedRef, ReactElement } from 'react';\nimport type {\n CubeTableColumnGroupHeader,\n CubeTableColumnLayout,\n CubeTableRowSection,\n} from '../TableBase/types';\nimport type {\n CubeDataTableColumn,\n CubeDataTableColumnDefinition,\n CubeDataTableColumnGroup,\n CubeDataTableProps,\n} from './types';\n\n/** Wide enough for five digits at the dense default. */\nconst ROW_NUMBER_WIDTH = 56;\n\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\ninterface DataTableColumnModel<T> {\n columns: CubeDataTableColumn<T>[];\n headerPaths: Map<string, readonly CubeTableColumnGroupHeader[]>;\n}\n\nfunction isColumnGroup<T>(\n column: CubeDataTableColumnDefinition<T>,\n): column is CubeDataTableColumnGroup<T> {\n return 'children' in column;\n}\n\n/** Flattens the public column tree while retaining each leaf's header path. */\nfunction buildColumnModel<T>(\n definitions: readonly CubeDataTableColumnDefinition<T>[],\n): DataTableColumnModel<T> {\n const columns: CubeDataTableColumn<T>[] = [];\n const headerPaths = new Map<string, readonly CubeTableColumnGroupHeader[]>();\n\n function visit(\n entries: readonly CubeDataTableColumnDefinition<T>[],\n path: readonly CubeTableColumnGroupHeader[],\n ) {\n for (const entry of entries) {\n if (isColumnGroup(entry)) {\n visit(entry.children, [\n ...path,\n { key: entry.key, title: entry.title },\n ]);\n } else {\n columns.push(entry);\n if (path.length) headerPaths.set(entry.key, path);\n }\n }\n }\n\n visit(definitions, []);\n\n return { columns, headerPaths };\n}\n\n/** What `dataType: 'number'` adds to a column's own `cellStyles`. */\nconst NUMERIC_CELL_STYLES: Styles = { fontVariantNumeric: 'tabular-nums' };\n\n/**\n * The merge per consumer object, so a `cellStyles` that returns a shared\n * constant keeps one identity per cell rather than a fresh object on every\n * call — which is what `column-styles.ts` and tasty key their caches on.\n */\nconst NUMERIC_MERGED = new WeakMap<Styles, Styles>();\n\nfunction withNumeric(own: Styles | null | undefined): Styles {\n if (!own) return NUMERIC_CELL_STYLES;\n\n let merged = NUMERIC_MERGED.get(own);\n\n if (!merged) {\n merged = { ...NUMERIC_CELL_STYLES, ...own };\n NUMERIC_MERGED.set(own, merged);\n }\n\n return merged;\n}\n\n/**\n * Folds the numeric default under a column's own `cellStyles`, in either form.\n * A function stays a function, called per cell with its result merged over the\n * default, so a numeric column keeps reacting to its cell context.\n */\nfunction numericCellStyles<T>(\n cellStyles: CubeDataTableColumn<T>['cellStyles'],\n): CubeDataTableColumn<T>['cellStyles'] {\n if (typeof cellStyles === 'function') {\n return (ctx) => withNumeric(cellStyles(ctx));\n }\n\n return withNumeric(cellStyles);\n}\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\n/**\n * A grid for query results.\n *\n * The same engine as `ItemTable` — one `TableView`, one column layout, one\n * value pipeline — with the defaults an analytical grid wants rather than a\n * list's: denser type, banded rows, resizable columns, multi-column sort, and\n * rows pinned for totals.\n *\n * It knows nothing about Cube. Measures, dimensions, pivots and drill-downs\n * reach it as leaf columns, presentational column groups, `render` output and\n * `column.header.menu` content, which is what keeps the ~34 kB of Cloud's\n * column-header menu in Cloud.\n */\nfunction DataTable<T = any>(\n props: CubeDataTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n pinnedTopRows,\n pinnedBottomRows,\n isLoading = false,\n loadingIndicator = 'overlay',\n skeletonRowCount,\n error,\n emptyLabel,\n noResultsLabel,\n isFiltered,\n shape = 'plain',\n // Denser than `ItemTable`'s `medium`: a result grid is read as a block, and\n // more rows on screen is the point of it.\n size = 'small',\n rowSize,\n rowHeight,\n headerHeight,\n isStriped = true,\n isHeaderHidden,\n isHeaderSticky,\n isAutoHeight = false,\n showRowNumbers = false,\n sortMode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n paginationMode = 'client',\n page: pageProp,\n defaultPage,\n onPageChange,\n pageSize: pageSizeProp,\n defaultPageSize = 100,\n onPageSizeChange,\n pageSizeOptions,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n autoHidePagination = true,\n footerStart,\n footerCenter,\n footerEnd,\n cellSelectionMode = 'range',\n isCellSelectable,\n selectedCellRange,\n defaultSelectedCellRange,\n onCellRangeChange,\n isRowMoveAnimated,\n isResizable = true,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n isColumnReorderable = false,\n columnOrder,\n defaultColumnOrder,\n onColumnOrderChange,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n isVirtualized,\n virtualizeThreshold,\n overscan,\n getRowProps,\n storageKey,\n styles,\n headerStyles,\n headerCellStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n footerStyles,\n ariaLabel,\n qa,\n mods,\n ...rest\n } = props;\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n const [scrollerEl, setScrollerEl] = useState<HTMLElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const treeModel = useMemo(\n () =>\n getRowChildren\n ? buildTableTree(data, getRowChildren, resolvedGetRowKey)\n : null,\n [data, getRowChildren, resolvedGetRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['data-table-tree-duplicate-keys'],\n args: [\n 'DataTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['data-table-tree-cyclic-keys'],\n args: [\n 'DataTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n\n const storage = useTableStorage(storageKey);\n\n const columnModel = useMemo(() => buildColumnModel(columns), [columns]);\n const hasColumnGroups = columnModel.headerPaths.size > 0;\n\n /**\n * `dataType` is presentational, so it is folded into the column here rather\n * than reaching the renderer: `number` right-aligns and takes tabular figures\n * so digits line up down the column.\n */\n const resolvedColumns = useMemo(\n () =>\n columnModel.columns.map((column) => {\n const isNumeric = column.dataType === 'number';\n\n return {\n ...column,\n align: column.align ?? (isNumeric ? 'end' : 'start'),\n cellStyles: isNumeric\n ? numericCellStyles(column.cellStyles)\n : column.cellStyles,\n } as CubeDataTableColumn<T>;\n }),\n [columnModel.columns],\n );\n\n // Applied to the SOURCE columns, before `useTableColumns`, so hidden-column\n // filtering, structural injection and pinned hoisting all still happen\n // downstream and `columnOrder` can never fight `pin`.\n const columnOrderState = useColumnOrder<T>({\n columns: resolvedColumns,\n columnOrder,\n defaultColumnOrder,\n onColumnOrderChange,\n storage,\n });\n const orderedColumns = columnOrderState.columns;\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = orderedColumns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, orderedColumns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['data-table-tree-column-invalid', treeColumnKey],\n args: [\n 'DataTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n const {\n sorts,\n sortedRows,\n toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSorts<T>({\n columns: orderedColumns,\n rows: treeModel ? treeModel.roots.map((node) => node.row) : data,\n mode: treeModel ? 'server' : sortMode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = treeModel\n ? (sortMode ??\n (orderedColumns.some((column) => column.isSortable) ? 'client' : 'off'))\n : resolvedSortMode;\n const processedTreeRoots = useMemo(() => {\n const roots = treeModel?.roots ?? [];\n if (treeSortMode !== 'client' || !sorts.length) return roots;\n\n const active = sorts\n .map((sort) => ({\n sort,\n column: orderedColumns.find((column) => column.key === sort.columnKey),\n }))\n .filter((entry) => entry.column != null);\n\n return sortTableTree(roots, (a, b) => {\n for (const { sort, column } of active) {\n const result = compareByColumn(\n column!,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n if (result !== 0) {\n return result * (sort.direction === 'asc' ? 1 : -1);\n }\n }\n return a.siblingIndex - b.siblingIndex;\n });\n }, [treeModel, treeSortMode, sorts, orderedColumns, collator]);\n\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n (pageSizeProp === undefined && storage.has('pageSize')\n ? (storage.initial.pageSize ?? defaultPageSize)\n : defaultPageSize) as number,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isPaginated = paginationMode !== 'off';\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated\n ? (totalProp ?? 0)\n : treeModel\n ? processedTreeRoots.length\n : sortedRows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n setPageState(1);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n });\n\n const flatVisibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n paginationMode === 'client'\n ? processedTreeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : processedTreeRoots,\n ),\n [processedTreeRoots, paginationMode, pageInfo.page, pageSize],\n );\n\n const treeState = useTableTreeState<T>({\n roots: pageTreeRoots,\n allNodesByKey: treeModel?.byKey ?? new Map(),\n expandedKeys,\n defaultExpandedKeys,\n getTextValue: (node) => {\n const column = orderedColumns.find(\n (entry) => entry.key === resolvedTreeColumnKey,\n );\n return column\n ? (getColumnText(column, node.row, node.sourceIndex) ??\n String(node.key))\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : flatVisibleRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? (storage.initial.columnWidths ?? defaultColumnWidths)\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n const draftRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n /**\n * The resolved widths, for the freeze below. A ref because `layout` is\n * computed *after* this handler is defined, and `useEvent` only reads it when\n * the drag actually runs.\n */\n const layoutRef = useRef<CubeTableColumnLayout<T> | null>(null);\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n // First move of a drag freezes every column, so this changes exactly one\n // width instead of re-splitting the flex pool. See `freezeColumnWidths`.\n const base =\n draftRef.current ??\n freezeColumnWidths(layoutRef.current, baseColumnWidths);\n\n draftRef.current = { ...base, [key]: Math.round(width) };\n setDraftColumnWidths(draftRef.current);\n });\n\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n draftRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const leadingColumns = useMemo(\n () =>\n showRowNumbers\n ? [{ key: ROW_NUMBER_COLUMN_KEY, width: ROW_NUMBER_WIDTH }]\n : undefined,\n [showRowNumbers],\n );\n\n const layout = useTableColumns<T>({\n columns: orderedColumns,\n containerWidth,\n columnWidths,\n leadingColumns,\n });\n\n layoutRef.current = layout;\n\n const { t } = useI18n();\n\n // Every row a range can reach, in the order they appear on screen. Pinned rows\n // are in it: a total is a figure like any other, and having to copy it\n // separately from the column it sums is the wrong trade.\n //\n // The keys are built here rather than inside the hook so they cannot disagree\n // with the ones the renderer stamps — a pinned row is keyed by its own index\n // within its group, exactly as `renderPinnedRow` keys it.\n const selectionRows = useMemo(\n () => [\n ...(pinnedTopRows ?? []),\n ...visibleRows,\n ...(pinnedBottomRows ?? []),\n ],\n [pinnedTopRows, visibleRows, pinnedBottomRows],\n );\n const selectionRowKeys = useMemo(\n () => [\n // Section-qualified, matching what the renderer stamps: the same record\n // is routinely pinned at both edges, and one flat key space collapsed the\n // two into whichever came first.\n ...(pinnedTopRows ?? []).map((row, index) =>\n selectionRowKey('pinnedTop', resolvedGetRowKey(row, index)),\n ),\n ...visibleRows.map(\n (row, index) =>\n visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index),\n ),\n ...(pinnedBottomRows ?? []).map((row, index) =>\n selectionRowKey('pinnedBottom', resolvedGetRowKey(row, index)),\n ),\n ],\n [\n pinnedTopRows,\n visibleRows,\n visibleRowKeys,\n pinnedBottomRows,\n resolvedGetRowKey,\n ],\n );\n\n // The hook works in one flat row order; the section a row belongs to is a\n // property of where it sits in that order, so it is resolved here rather than\n // asking the consumer to track it.\n const resolveCellSelectable = useEvent(\n (row: T, rowKey: Key, columnKey: string) => {\n if (!isCellSelectable) return true;\n\n const index = selectionRowKeys.indexOf(rowKey);\n const topCount = pinnedTopRows?.length ?? 0;\n const section: CubeTableRowSection =\n index < topCount\n ? 'pinnedTop'\n : index < topCount + visibleRows.length\n ? 'body'\n : 'pinnedBottom';\n\n return isCellSelectable({ row, rowKey, columnKey, section });\n },\n );\n\n const cellSelection = useCellSelection<T>({\n mode: cellSelectionMode,\n columns: layout.columns,\n rows: selectionRows,\n rowKeys: selectionRowKeys,\n isCellSelectable: isCellSelectable ? resolveCellSelectable : undefined,\n range: selectedCellRange,\n defaultRange: defaultSelectedCellRange,\n onRangeChange: onCellRangeChange,\n });\n\n const rootStyles = mergeStyleLayers(\n extractStyles(props, CONTAINER_STYLES),\n styles,\n );\n\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const showPagination =\n isPaginated &&\n !(\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize\n );\n\n const hasFooter =\n showPagination ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n /* ── column reordering ────────────────────────────────────────────────── */\n\n useWarn(isColumnReorderable && hasColumnGroups, {\n key: ['data-table-grouped-column-reorder'],\n args: [\n 'DataTable:',\n '`isColumnReorderable` is ignored when columns contain header groups.',\n ],\n });\n\n const canReorderColumns = isColumnReorderable && !hasColumnGroups;\n\n const headRowRef = useRef<HTMLTableRowElement>(null);\n const draggableColumnKeys = useMemo(\n () => getDraggableColumnKeys(layout.columns, canReorderColumns),\n [layout.columns, canReorderColumns],\n );\n const columnCollection = useMemo(\n () =>\n new RowCollection(\n layout.columns.filter((column) =>\n isColumnDraggable(column, canReorderColumns),\n ),\n (column) => column.key,\n new Set(),\n // The drag announcements read this — otherwise a screen reader hears\n // \"Insert between and \".\n (column) =>\n typeof column.title === 'string' ? column.title : column.key,\n ),\n [layout.columns, canReorderColumns],\n );\n /**\n * `'single'`, not `'none'`.\n *\n * `useDraggableItem` only deletes its own `onClick` — the one that would\n * hijack a screen-reader click away from the sort — when the selection mode is\n * not `'none'`, and only then does it attach the keyboard drag description.\n * Nothing is ever actually selected here.\n */\n const columnSelectionState = useMultipleSelectionState({\n selectionMode: 'single',\n disabledBehavior: 'all',\n });\n const columnSelectionManager = useMemo(\n () => new SelectionManager(columnCollection, columnSelectionState),\n [columnCollection, columnSelectionState],\n );\n const handleColumnFocus = useEvent((columnKey: string | null) => {\n columnSelectionManager.setFocusedKey(columnKey);\n });\n\n // One draggable column cannot be reordered, so the machinery stays unmounted\n // and the header keeps its exact DOM.\n const isColumnDragEnabled =\n canReorderColumns && draggableColumnKeys.length > 1;\n\n const treeRowNumberOffset = treeModel\n ? paginationMode === 'client'\n ? flattenTableTree(\n processedTreeRoots.slice(0, (pageInfo.page - 1) * pageSize),\n treeState.expandedKeys,\n ).length\n : 0\n : null;\n\n const renderTable = (\n columnDragState?: any,\n columnDropState?: any,\n headCollectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n {...rest}\n rootRef={rootRef}\n qa={qa || 'DataTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n pinnedTopRows={pinnedTopRows}\n pinnedBottomRows={pinnedBottomRows}\n // Continuous across pages: row 101 is row 101, not row 1 of page two.\n //\n // Server mode counts too — the page and its size are known there just the\n // same, and `rows` is that page. Only `'off'` starts at 1, because then\n // there is no page to be on.\n rowNumberOffset={\n treeRowNumberOffset ??\n (paginationMode === 'off' ? 0 : (pageInfo.page - 1) * pageSize)\n }\n // The same offset drives `aria-rowindex`, which is document-absolute by\n // contract — a screen reader on page 3 should hear \"row 51 of 240\", not\n // \"row 1 of 25\".\n rowIndexOffset={\n treeModel\n ? 0\n : paginationMode === 'off'\n ? 0\n : (pageInfo.page - 1) * pageSize\n }\n totalRowCount={treeModel ? visibleRows.length : total}\n layout={layout}\n columnHeaderPaths={columnModel.headerPaths}\n // Always on, unlike `ItemTable`. A result grid is read down a column, and\n // once the values are wide and right-aligned the rule is what keeps a\n // figure attached to its column — which is why Cloud's ag-grid theme sets\n // `columnBorder` for `DataTable` and not for the list grids.\n hasColumnDividers\n cellSelection={cellSelection}\n getRowKey={resolvedGetRowKey}\n onScrollerRef={setScrollerEl}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n skeletonRowCount={skeletonRowCount}\n error={error}\n // Same localized fallbacks as `ItemTable`: a grid that has finished\n // loading and shows an unexplained blank rectangle reads as broken.\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n isFiltered={isFiltered}\n shape={shape}\n size={size}\n rowSize={rowSize}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n isAutoHeight={isAutoHeight}\n // The header shows the column name at body size — a result grid has no\n // room for the uppercase caption a list header uses.\n // `t4` throughout: a result grid is read as a block, and one step down\n // from the list preset fits noticeably more on screen without losing\n // legibility. The header takes the medium weight of the same step.\n contentPreset=\"t4\"\n headerPreset=\"t4m\"\n sortMode={treeSortMode}\n sorts={sorts}\n onColumnSort={toggleSort}\n onColumnSortChange={setColumnSort}\n columnContextMenu={columnContextMenu}\n onColumnMenuAction={onColumnMenuAction}\n columnMenuTriggerProps={columnMenuTriggerProps}\n columnMenuProps={columnMenuProps}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n isColumnReorderable={isColumnDragEnabled}\n columnDragState={columnDragState}\n columnDropState={columnDropState}\n headCollectionProps={headCollectionProps}\n headRowRef={headRowRef}\n onColumnFocus={handleColumnFocus}\n tree={\n treeModel\n ? {\n state: treeState.state,\n ariaProps: treeState.ariaProps,\n nodes: treeState.visibleNodes,\n entries: visibleTreeEntries,\n columnKey: resolvedTreeColumnKey!,\n }\n : undefined\n }\n footer={\n hasFooter ? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={\n showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined\n }\n />\n ) : null\n }\n />\n );\n\n return isColumnDragEnabled ? (\n <DraggableCollection\n state={{\n collection: columnCollection as any,\n selectionManager: columnSelectionManager as any,\n disabledKeys: new Set(),\n }}\n // The element that DIRECTLY contains the header cells. React Aria's\n // `ListDropTargetDelegate` resolves a drop by measuring `[data-key]`\n // descendants of this element, so pointing it anywhere else leaves every\n // drop unresolvable — the column lifts but never lands.\n listRef={headRowRef}\n orderedKeys={draggableColumnKeys}\n orientation=\"horizontal\"\n onReorder={columnOrderState.reorder}\n >\n {(dragState, dropState, collectionProps) =>\n renderTable(dragState, dropState, collectionProps)\n }\n </DraggableCollection>\n ) : (\n renderTable()\n );\n}\n\nconst _DataTable = forwardRef(DataTable) as unknown as (<T = any>(\n props: CubeDataTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReactElement) & { displayName?: string };\n\n_DataTable.displayName = 'DataTable';\n\nexport { _DataTable as DataTable };\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
|
|
2
2
|
import { CubeDataTableColumn, CubeDataTableColumnDefinition, CubeDataTableColumnGroup, CubeDataTableProps } from "./types.js";
|
|
3
|
-
import { _DataTable } from "./DataTable.js";
|
|
3
|
+
import { DataTable as _DataTable } from "./DataTable.js";
|
|
4
|
+
export { type CubeDataTableColumn, type CubeDataTableColumnDefinition, type CubeDataTableColumnGroup, type CubeDataTableProps, _DataTable as DataTable };
|
|
@@ -7,7 +7,6 @@ import { CubeTableCellRange, CubeTableColumn, CubeTableLayoutProps, CubeTableLoa
|
|
|
7
7
|
import { BaseProps, ContainerStyleProps, Styles } from "@tenphi/tasty";
|
|
8
8
|
import { ReactNode } from "react";
|
|
9
9
|
import { Key as Key$1 } from "@react-types/shared";
|
|
10
|
-
|
|
11
10
|
//#region src/components/data/DataTable/types.d.ts
|
|
12
11
|
/**
|
|
13
12
|
* A `DataTable` column.
|
|
@@ -16,7 +15,7 @@ import { Key as Key$1 } from "@react-types/shared";
|
|
|
16
15
|
* deliberately presentational — alignment and numeric formatting — rather than
|
|
17
16
|
* a Cube type: nothing under `src/components/data/` knows what a measure is.
|
|
18
17
|
*/
|
|
19
|
-
interface CubeDataTableColumn<T = any> extends CubeTableColumn<T> {
|
|
18
|
+
export interface CubeDataTableColumn<T = any> extends CubeTableColumn<T> {
|
|
20
19
|
/**
|
|
21
20
|
* Drives the default alignment and numeric font. `number` right-aligns and
|
|
22
21
|
* switches to tabular figures so digits line up down the column. The figures
|
|
@@ -31,15 +30,15 @@ interface CubeDataTableColumn<T = any> extends CubeTableColumn<T> {
|
|
|
31
30
|
* Groups are presentational: sorting, resizing, selection and the value
|
|
32
31
|
* pipeline continue to operate on the leaf columns in `children`.
|
|
33
32
|
*/
|
|
34
|
-
interface CubeDataTableColumnGroup<T = any> {
|
|
33
|
+
export interface CubeDataTableColumnGroup<T = any> {
|
|
35
34
|
/** Stable identity within the column tree. */
|
|
36
35
|
key: string;
|
|
37
36
|
title?: ReactNode;
|
|
38
37
|
children: CubeDataTableColumnDefinition<T>[];
|
|
39
38
|
}
|
|
40
39
|
/** A leaf column or a nested header group. */
|
|
41
|
-
type CubeDataTableColumnDefinition<T = any> = CubeDataTableColumn<T> | CubeDataTableColumnGroup<T>;
|
|
42
|
-
interface CubeDataTableProps<T = any> extends BaseProps, ContainerStyleProps, CubeTableLayoutProps, CubeTableTreeProps<T> {
|
|
40
|
+
export type CubeDataTableColumnDefinition<T = any> = CubeDataTableColumn<T> | CubeDataTableColumnGroup<T>;
|
|
41
|
+
export interface CubeDataTableProps<T = any> extends BaseProps, ContainerStyleProps, CubeTableLayoutProps, CubeTableTreeProps<T> {
|
|
43
42
|
data: readonly T[];
|
|
44
43
|
columns: CubeDataTableColumnDefinition<T>[];
|
|
45
44
|
rowKey?: string;
|
|
@@ -213,5 +212,4 @@ interface CubeDataTableProps<T = any> extends BaseProps, ContainerStyleProps, Cu
|
|
|
213
212
|
mods?: Record<string, boolean>;
|
|
214
213
|
}
|
|
215
214
|
//#endregion
|
|
216
|
-
export { CubeDataTableColumn, CubeDataTableColumnDefinition, CubeDataTableColumnGroup, CubeDataTableProps };
|
|
217
215
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -3,17 +3,19 @@ import { CubeItemTableProps } from "./types.js";
|
|
|
3
3
|
import { ItemTableBulkBar } from "./ItemTableBulkBar.js";
|
|
4
4
|
import { ItemTableSearch, ItemTableToolbar } from "./ItemTableToolbar.js";
|
|
5
5
|
import { ForwardedRef, ReactElement } from "react";
|
|
6
|
-
|
|
7
6
|
//#region src/components/data/ItemTable/ItemTable.d.ts
|
|
8
7
|
declare const _ItemTable: (<T = any>(props: CubeItemTableProps<T> & {
|
|
9
8
|
ref?: ForwardedRef<HTMLDivElement>;
|
|
10
9
|
}) => ReactElement) & {
|
|
11
10
|
displayName?: string;
|
|
12
11
|
} & {
|
|
13
|
-
/** The table's search input, bound to the table's own state. */
|
|
14
|
-
|
|
12
|
+
/** The table's search input, bound to the table's own state. */
|
|
13
|
+
Search: typeof ItemTableSearch;
|
|
14
|
+
/** The default toolbar row, for rebuilding it around extra content. */
|
|
15
|
+
Toolbar: typeof ItemTableToolbar;
|
|
16
|
+
/** The selection action bar, for placing it outside the default chrome. */
|
|
15
17
|
BulkBar: typeof ItemTableBulkBar;
|
|
16
18
|
};
|
|
17
19
|
//#endregion
|
|
18
|
-
export { _ItemTable };
|
|
20
|
+
export { _ItemTable as ItemTable };
|
|
19
21
|
//# sourceMappingURL=ItemTable.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -25,7 +25,6 @@ import { c } from "react/compiler-runtime";
|
|
|
25
25
|
import { CONTAINER_STYLES } from "@tenphi/tasty";
|
|
26
26
|
import { forwardRef, useRef, useState } from "react";
|
|
27
27
|
import { jsx } from "react/jsx-runtime";
|
|
28
|
-
|
|
29
28
|
//#region src/components/data/ItemTable/ItemTable.tsx
|
|
30
29
|
function defaultGetRowKey(rowKey) {
|
|
31
30
|
return (row, index) => {
|
|
@@ -77,7 +76,8 @@ function ItemTable(props, ref) {
|
|
|
77
76
|
const overscan = t26 === void 0 ? 20 : t26;
|
|
78
77
|
const headerPreset = t27 === void 0 ? "c3" : t27;
|
|
79
78
|
const { t } = useI18n();
|
|
80
|
-
const
|
|
79
|
+
const localRef = useRef(null);
|
|
80
|
+
const rootRef = useCombinedRefs(ref, localRef);
|
|
81
81
|
const [scrollerEl, setScrollerEl] = useState(null);
|
|
82
82
|
const containerWidth = useContainerWidth(scrollerEl);
|
|
83
83
|
let t29;
|
|
@@ -575,12 +575,15 @@ function _temp(entry_0) {
|
|
|
575
575
|
return entry_0.row;
|
|
576
576
|
}
|
|
577
577
|
const _ItemTable = Object.assign(forwardRef(ItemTable), {
|
|
578
|
+
/** The table's search input, bound to the table's own state. */
|
|
578
579
|
Search: ItemTableSearch,
|
|
580
|
+
/** The default toolbar row, for rebuilding it around extra content. */
|
|
579
581
|
Toolbar: ItemTableToolbar,
|
|
582
|
+
/** The selection action bar, for placing it outside the default chrome. */
|
|
580
583
|
BulkBar: ItemTableBulkBar
|
|
581
584
|
});
|
|
582
585
|
_ItemTable.displayName = "ItemTable";
|
|
583
|
-
|
|
584
586
|
//#endregion
|
|
585
|
-
export { _ItemTable };
|
|
587
|
+
export { _ItemTable as ItemTable };
|
|
588
|
+
|
|
586
589
|
//# sourceMappingURL=ItemTable.js.map
|