@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":"table-tree.js","names":["Key","TableTreeNode","key","row","T","parentKey","level","siblingIndex","siblingCount","sourceIndex","children","TableTreeModel","roots","byKey","Map","parentOf","childrenOf","duplicateKeys","cyclicKeys","buildTableTree","rows","getChildren","getKey","visiting","Set","visitingRows","visit","input","output","forEach","currentSourceIndex","has","push","node","length","set","add","delete","map","child","sortTableTree","nodes","compare","a","b","sorted","sort","FilteredTableTree","forcedExpandedKeys","filterTableTree","matches","cloneComplete","reindexTableTree","filter","flattenTableTree","expandedKeys","ReadonlySet","items","tableTreeDescendantKeys","isTableTreeDescendant","model","Pick","possibleDescendant","ancestor","parent","get"],"sources":["../../../../src/components/data/TableBase/table-tree.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\n\nexport interface TableTreeNode<T> {\n key: Key;\n row: T;\n parentKey: Key | null;\n level: number;\n siblingIndex: number;\n siblingCount: number;\n sourceIndex: number;\n children: TableTreeNode<T>[];\n}\n\nexport interface TableTreeModel<T> {\n roots: TableTreeNode<T>[];\n byKey: Map<Key, TableTreeNode<T>>;\n parentOf: Map<Key, Key | null>;\n childrenOf: Map<Key, Key[]>;\n duplicateKeys: Key[];\n cyclicKeys: Key[];\n}\n\n/** Build identity and parent/child indexes without modifying consumer rows. */\nexport function buildTableTree<T>(\n rows: readonly T[],\n getChildren: (row: T) => readonly T[] | undefined,\n getKey: (row: T, sourceIndex: number) => Key,\n): TableTreeModel<T> {\n const byKey = new Map<Key, TableTreeNode<T>>();\n const parentOf = new Map<Key, Key | null>();\n const childrenOf = new Map<Key, Key[]>();\n const duplicateKeys: Key[] = [];\n const cyclicKeys: Key[] = [];\n const visiting = new Set<Key>();\n const visitingRows = new Set<T>();\n let sourceIndex = 0;\n\n const visit = (\n input: readonly T[],\n parentKey: Key | null,\n level: number,\n ): TableTreeNode<T>[] => {\n const output: TableTreeNode<T>[] = [];\n\n input.forEach((row, siblingIndex) => {\n const currentSourceIndex = sourceIndex++;\n const key = getKey(row, currentSourceIndex);\n\n if (visiting.has(key) || visitingRows.has(row)) {\n cyclicKeys.push(key);\n return;\n }\n\n if (byKey.has(key)) {\n duplicateKeys.push(key);\n return;\n }\n\n const node: TableTreeNode<T> = {\n key,\n row,\n parentKey,\n level,\n siblingIndex,\n siblingCount: input.length,\n sourceIndex: currentSourceIndex,\n children: [],\n };\n\n byKey.set(key, node);\n parentOf.set(key, parentKey);\n visiting.add(key);\n visitingRows.add(row);\n node.children = visit(getChildren(row) ?? [], key, level + 1);\n visiting.delete(key);\n visitingRows.delete(row);\n childrenOf.set(\n key,\n node.children.map((child) => child.key),\n );\n output.push(node);\n });\n\n return output;\n };\n\n const roots = visit(rows, null, 0);\n\n return {\n roots,\n byKey,\n parentOf,\n childrenOf,\n duplicateKeys,\n cyclicKeys,\n };\n}\n\nexport function sortTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n compare: (a: TableTreeNode<T>, b: TableTreeNode<T>) => number,\n): TableTreeNode<T>[] {\n const sorted = nodes\n .map((node) => ({\n ...node,\n children: sortTableTree(node.children, compare),\n }))\n .sort(compare);\n\n return sorted.map((node, siblingIndex) => ({\n ...node,\n siblingIndex,\n siblingCount: sorted.length,\n }));\n}\n\nexport interface FilteredTableTree<T> {\n roots: TableTreeNode<T>[];\n forcedExpandedKeys: Set<Key>;\n}\n\n/**\n * Keep matching rows, their ancestor paths, and the complete subtree of a row\n * that matches itself. Every retained branch is opened while filtering so a\n * match can never remain hidden behind a collapsed ancestor.\n */\nexport function filterTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n matches: (node: TableTreeNode<T>) => boolean,\n): FilteredTableTree<T> {\n const forcedExpandedKeys = new Set<Key>();\n\n const cloneComplete = (node: TableTreeNode<T>): TableTreeNode<T> => {\n const children = node.children.map(cloneComplete);\n if (children.length) forcedExpandedKeys.add(node.key);\n\n return { ...node, children: reindexTableTree(children) };\n };\n\n const visit = (node: TableTreeNode<T>): TableTreeNode<T> | null => {\n if (matches(node)) return cloneComplete(node);\n\n const children = node.children\n .map(visit)\n .filter((child): child is TableTreeNode<T> => child != null);\n\n if (!children.length) return null;\n\n forcedExpandedKeys.add(node.key);\n return { ...node, children: reindexTableTree(children) };\n };\n\n return {\n roots: reindexTableTree(\n nodes.map(visit).filter((node): node is TableTreeNode<T> => node != null),\n ),\n forcedExpandedKeys,\n };\n}\n\n/** Re-number a transformed sibling collection for its rendered treegrid. */\nexport function reindexTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n): TableTreeNode<T>[] {\n return nodes.map((node, siblingIndex) => ({\n ...node,\n siblingIndex,\n siblingCount: nodes.length,\n children: reindexTableTree(node.children),\n }));\n}\n\nexport function flattenTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n expandedKeys?: ReadonlySet<Key>,\n): TableTreeNode<T>[] {\n const output: TableTreeNode<T>[] = [];\n\n const visit = (items: readonly TableTreeNode<T>[]) => {\n for (const node of items) {\n output.push(node);\n if (expandedKeys == null || expandedKeys.has(node.key)) {\n visit(node.children);\n }\n }\n };\n\n visit(nodes);\n return output;\n}\n\nexport function tableTreeDescendantKeys<T>(node: TableTreeNode<T>): Key[] {\n return flattenTableTree(node.children).map((child) => child.key);\n}\n\nexport function isTableTreeDescendant<T>(\n model: Pick<TableTreeModel<T>, 'parentOf'>,\n possibleDescendant: Key,\n ancestor: Key,\n) {\n let parent = model.parentOf.get(possibleDescendant);\n\n while (parent != null) {\n if (parent === ancestor) return true;\n parent = model.parentOf.get(parent);\n }\n\n return false;\n}\n"],"mappings":";;;AAuBA,SAAgBmB,eACdC,MACAC,aACAC,QACmB;CACnB,MAAMT,wBAAQ,IAAIC,
|
|
1
|
+
{"version":3,"file":"table-tree.js","names":["Key","TableTreeNode","key","row","T","parentKey","level","siblingIndex","siblingCount","sourceIndex","children","TableTreeModel","roots","byKey","Map","parentOf","childrenOf","duplicateKeys","cyclicKeys","buildTableTree","rows","getChildren","getKey","visiting","Set","visitingRows","visit","input","output","forEach","currentSourceIndex","has","push","node","length","set","add","delete","map","child","sortTableTree","nodes","compare","a","b","sorted","sort","FilteredTableTree","forcedExpandedKeys","filterTableTree","matches","cloneComplete","reindexTableTree","filter","flattenTableTree","expandedKeys","ReadonlySet","items","tableTreeDescendantKeys","isTableTreeDescendant","model","Pick","possibleDescendant","ancestor","parent","get"],"sources":["../../../../src/components/data/TableBase/table-tree.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\n\nexport interface TableTreeNode<T> {\n key: Key;\n row: T;\n parentKey: Key | null;\n level: number;\n siblingIndex: number;\n siblingCount: number;\n sourceIndex: number;\n children: TableTreeNode<T>[];\n}\n\nexport interface TableTreeModel<T> {\n roots: TableTreeNode<T>[];\n byKey: Map<Key, TableTreeNode<T>>;\n parentOf: Map<Key, Key | null>;\n childrenOf: Map<Key, Key[]>;\n duplicateKeys: Key[];\n cyclicKeys: Key[];\n}\n\n/** Build identity and parent/child indexes without modifying consumer rows. */\nexport function buildTableTree<T>(\n rows: readonly T[],\n getChildren: (row: T) => readonly T[] | undefined,\n getKey: (row: T, sourceIndex: number) => Key,\n): TableTreeModel<T> {\n const byKey = new Map<Key, TableTreeNode<T>>();\n const parentOf = new Map<Key, Key | null>();\n const childrenOf = new Map<Key, Key[]>();\n const duplicateKeys: Key[] = [];\n const cyclicKeys: Key[] = [];\n const visiting = new Set<Key>();\n const visitingRows = new Set<T>();\n let sourceIndex = 0;\n\n const visit = (\n input: readonly T[],\n parentKey: Key | null,\n level: number,\n ): TableTreeNode<T>[] => {\n const output: TableTreeNode<T>[] = [];\n\n input.forEach((row, siblingIndex) => {\n const currentSourceIndex = sourceIndex++;\n const key = getKey(row, currentSourceIndex);\n\n if (visiting.has(key) || visitingRows.has(row)) {\n cyclicKeys.push(key);\n return;\n }\n\n if (byKey.has(key)) {\n duplicateKeys.push(key);\n return;\n }\n\n const node: TableTreeNode<T> = {\n key,\n row,\n parentKey,\n level,\n siblingIndex,\n siblingCount: input.length,\n sourceIndex: currentSourceIndex,\n children: [],\n };\n\n byKey.set(key, node);\n parentOf.set(key, parentKey);\n visiting.add(key);\n visitingRows.add(row);\n node.children = visit(getChildren(row) ?? [], key, level + 1);\n visiting.delete(key);\n visitingRows.delete(row);\n childrenOf.set(\n key,\n node.children.map((child) => child.key),\n );\n output.push(node);\n });\n\n return output;\n };\n\n const roots = visit(rows, null, 0);\n\n return {\n roots,\n byKey,\n parentOf,\n childrenOf,\n duplicateKeys,\n cyclicKeys,\n };\n}\n\nexport function sortTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n compare: (a: TableTreeNode<T>, b: TableTreeNode<T>) => number,\n): TableTreeNode<T>[] {\n const sorted = nodes\n .map((node) => ({\n ...node,\n children: sortTableTree(node.children, compare),\n }))\n .sort(compare);\n\n return sorted.map((node, siblingIndex) => ({\n ...node,\n siblingIndex,\n siblingCount: sorted.length,\n }));\n}\n\nexport interface FilteredTableTree<T> {\n roots: TableTreeNode<T>[];\n forcedExpandedKeys: Set<Key>;\n}\n\n/**\n * Keep matching rows, their ancestor paths, and the complete subtree of a row\n * that matches itself. Every retained branch is opened while filtering so a\n * match can never remain hidden behind a collapsed ancestor.\n */\nexport function filterTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n matches: (node: TableTreeNode<T>) => boolean,\n): FilteredTableTree<T> {\n const forcedExpandedKeys = new Set<Key>();\n\n const cloneComplete = (node: TableTreeNode<T>): TableTreeNode<T> => {\n const children = node.children.map(cloneComplete);\n if (children.length) forcedExpandedKeys.add(node.key);\n\n return { ...node, children: reindexTableTree(children) };\n };\n\n const visit = (node: TableTreeNode<T>): TableTreeNode<T> | null => {\n if (matches(node)) return cloneComplete(node);\n\n const children = node.children\n .map(visit)\n .filter((child): child is TableTreeNode<T> => child != null);\n\n if (!children.length) return null;\n\n forcedExpandedKeys.add(node.key);\n return { ...node, children: reindexTableTree(children) };\n };\n\n return {\n roots: reindexTableTree(\n nodes.map(visit).filter((node): node is TableTreeNode<T> => node != null),\n ),\n forcedExpandedKeys,\n };\n}\n\n/** Re-number a transformed sibling collection for its rendered treegrid. */\nexport function reindexTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n): TableTreeNode<T>[] {\n return nodes.map((node, siblingIndex) => ({\n ...node,\n siblingIndex,\n siblingCount: nodes.length,\n children: reindexTableTree(node.children),\n }));\n}\n\nexport function flattenTableTree<T>(\n nodes: readonly TableTreeNode<T>[],\n expandedKeys?: ReadonlySet<Key>,\n): TableTreeNode<T>[] {\n const output: TableTreeNode<T>[] = [];\n\n const visit = (items: readonly TableTreeNode<T>[]) => {\n for (const node of items) {\n output.push(node);\n if (expandedKeys == null || expandedKeys.has(node.key)) {\n visit(node.children);\n }\n }\n };\n\n visit(nodes);\n return output;\n}\n\nexport function tableTreeDescendantKeys<T>(node: TableTreeNode<T>): Key[] {\n return flattenTableTree(node.children).map((child) => child.key);\n}\n\nexport function isTableTreeDescendant<T>(\n model: Pick<TableTreeModel<T>, 'parentOf'>,\n possibleDescendant: Key,\n ancestor: Key,\n) {\n let parent = model.parentOf.get(possibleDescendant);\n\n while (parent != null) {\n if (parent === ancestor) return true;\n parent = model.parentOf.get(parent);\n }\n\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import "../../content/Item/index.js";
|
|
3
|
-
import { CubeItemProps } from "../../content/Item/Item.js";
|
|
3
|
+
import { CubeItemBaseProps as CubeItemProps } from "../../content/Item/Item.js";
|
|
4
4
|
import { Styles } from "@tenphi/tasty";
|
|
5
5
|
import { ReactNode } from "react";
|
|
6
6
|
import { Key as Key$1 } from "@react-types/shared";
|
|
7
|
-
|
|
8
7
|
//#region src/components/data/TableBase/types.d.ts
|
|
9
|
-
type CubeTableSortDirection = 'asc' | 'desc';
|
|
8
|
+
export type CubeTableSortDirection = 'asc' | 'desc';
|
|
10
9
|
/**
|
|
11
10
|
* Named row heights: 28px, 32px and 40px.
|
|
12
11
|
*
|
|
@@ -14,23 +13,23 @@ type CubeTableSortDirection = 'asc' | 'desc';
|
|
|
14
13
|
* but `rowSize` moves only the ROWS. `size` also drives the header, so reaching
|
|
15
14
|
* for a denser body through it drags the header down too.
|
|
16
15
|
*/
|
|
17
|
-
type CubeTableRowSize = 'small' | 'medium' | 'large';
|
|
18
|
-
type CubeTableAlign = 'start' | 'center' | 'end';
|
|
19
|
-
type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';
|
|
20
|
-
interface CubeTableCellRange {
|
|
16
|
+
export type CubeTableRowSize = 'small' | 'medium' | 'large';
|
|
17
|
+
export type CubeTableAlign = 'start' | 'center' | 'end';
|
|
18
|
+
export type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';
|
|
19
|
+
export interface CubeTableCellRange {
|
|
21
20
|
fromRowKey: Key$1;
|
|
22
21
|
toRowKey: Key$1;
|
|
23
22
|
fromColumnKey: string;
|
|
24
23
|
toColumnKey: string;
|
|
25
24
|
}
|
|
26
|
-
interface CubeTableTreeRowState {
|
|
25
|
+
export interface CubeTableTreeRowState {
|
|
27
26
|
/** Zero-based depth in the hierarchy. */
|
|
28
27
|
level: number;
|
|
29
28
|
parentKey: Key$1 | null;
|
|
30
29
|
hasChildren: boolean;
|
|
31
30
|
isExpanded: boolean;
|
|
32
31
|
}
|
|
33
|
-
interface CubeTableRowExpandInfo<T = any> {
|
|
32
|
+
export interface CubeTableRowExpandInfo<T = any> {
|
|
34
33
|
row: T;
|
|
35
34
|
rowKey: Key$1;
|
|
36
35
|
level: number;
|
|
@@ -38,7 +37,7 @@ interface CubeTableRowExpandInfo<T = any> {
|
|
|
38
37
|
expanded: boolean;
|
|
39
38
|
}
|
|
40
39
|
/** Shared root sizing contract used by both table adapters. */
|
|
41
|
-
interface CubeTableLayoutProps {
|
|
40
|
+
export interface CubeTableLayoutProps {
|
|
42
41
|
/**
|
|
43
42
|
* Shrink-wraps the frame to its rendered rows instead of filling the
|
|
44
43
|
* available flex pane. This mode disables virtualization because there is no
|
|
@@ -49,7 +48,7 @@ interface CubeTableLayoutProps {
|
|
|
49
48
|
isAutoHeight?: boolean;
|
|
50
49
|
}
|
|
51
50
|
/** Shared opt-in hierarchy contract used by both table adapters. */
|
|
52
|
-
interface CubeTableTreeProps<T = any> {
|
|
51
|
+
export interface CubeTableTreeProps<T = any> {
|
|
53
52
|
/**
|
|
54
53
|
* Returns a row's already-loaded children. Supplying this enables tree mode
|
|
55
54
|
* and makes `data` the top-level row collection.
|
|
@@ -64,12 +63,12 @@ interface CubeTableTreeProps<T = any> {
|
|
|
64
63
|
/** Called after a user expands or collapses a row. */
|
|
65
64
|
onExpand?: (keys: Key$1[], info: CubeTableRowExpandInfo<T>) => void;
|
|
66
65
|
}
|
|
67
|
-
interface CubeTableSort {
|
|
66
|
+
export interface CubeTableSort {
|
|
68
67
|
/** `key` of the sorted column. */
|
|
69
68
|
columnKey: string;
|
|
70
69
|
direction: CubeTableSortDirection;
|
|
71
70
|
}
|
|
72
|
-
interface CubeTableCellContext<T = any> {
|
|
71
|
+
export interface CubeTableCellContext<T = any> {
|
|
73
72
|
row: T;
|
|
74
73
|
rowKey: Key$1;
|
|
75
74
|
rowIndex: number;
|
|
@@ -93,7 +92,7 @@ interface CubeTableCellContext<T = any> {
|
|
|
93
92
|
/** Present only when `getRowChildren` enables tree mode. */
|
|
94
93
|
tree?: CubeTableTreeRowState;
|
|
95
94
|
}
|
|
96
|
-
interface CubeTableRowContext<T = any> {
|
|
95
|
+
export interface CubeTableRowContext<T = any> {
|
|
97
96
|
row: T;
|
|
98
97
|
rowKey: Key$1;
|
|
99
98
|
rowIndex: number;
|
|
@@ -105,7 +104,7 @@ interface CubeTableRowContext<T = any> {
|
|
|
105
104
|
/** Present only when `getRowChildren` enables tree mode. */
|
|
106
105
|
tree?: CubeTableTreeRowState;
|
|
107
106
|
}
|
|
108
|
-
interface CubeTableHeaderContext {
|
|
107
|
+
export interface CubeTableHeaderContext {
|
|
109
108
|
columnKey: string;
|
|
110
109
|
columnIndex: number;
|
|
111
110
|
sort: CubeTableSortDirection | null;
|
|
@@ -119,7 +118,7 @@ interface CubeTableHeaderContext {
|
|
|
119
118
|
* tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s
|
|
120
119
|
* `actions` slot behind a `⋮` trigger.
|
|
121
120
|
*/
|
|
122
|
-
interface CubeTableColumnHeader {
|
|
121
|
+
export interface CubeTableColumnHeader {
|
|
123
122
|
icon?: CubeItemProps['icon'];
|
|
124
123
|
rightIcon?: CubeItemProps['rightIcon'];
|
|
125
124
|
prefix?: ReactNode;
|
|
@@ -172,7 +171,7 @@ interface CubeTableColumnHeader {
|
|
|
172
171
|
* `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with
|
|
173
172
|
* no tinted-surface ramp to borrow.
|
|
174
173
|
*/
|
|
175
|
-
type CubeTableColumnTheme = 'primary' | 'purple' | 'success' | 'danger' | 'warning' | 'note';
|
|
174
|
+
export type CubeTableColumnTheme = 'primary' | 'purple' | 'success' | 'danger' | 'warning' | 'note';
|
|
176
175
|
/**
|
|
177
176
|
* How a column is tinted.
|
|
178
177
|
*
|
|
@@ -181,10 +180,16 @@ type CubeTableColumnTheme = 'primary' | 'purple' | 'success' | 'danger' | 'warni
|
|
|
181
180
|
* a column stays readable in light, dark and high contrast without the caller
|
|
182
181
|
* checking — which is the part hand-picked hex pairs get wrong.
|
|
183
182
|
*/
|
|
184
|
-
type CubeTableColumnColor =
|
|
183
|
+
export type CubeTableColumnColor =
|
|
184
|
+
/** A palette theme name. */
|
|
185
|
+
CubeTableColumnTheme |
|
|
186
|
+
/** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */
|
|
187
|
+
(string & {}) |
|
|
188
|
+
/** The seed said directly. `saturation` is 0–100. */
|
|
189
|
+
{
|
|
185
190
|
hue: number;
|
|
186
191
|
saturation?: number;
|
|
187
|
-
}
|
|
192
|
+
} |
|
|
188
193
|
/**
|
|
189
194
|
* Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).
|
|
190
195
|
*
|
|
@@ -192,7 +197,7 @@ type CubeTableColumnColor = /** A palette theme name. */CubeTableColumnTheme /**
|
|
|
192
197
|
* hatch, and readability in every scheme becomes the caller's problem.
|
|
193
198
|
* `fillBand` defaults to `fill`, which turns banding off for the column.
|
|
194
199
|
*/
|
|
195
|
-
|
|
200
|
+
{
|
|
196
201
|
fill: string;
|
|
197
202
|
fillBand?: string;
|
|
198
203
|
text?: string;
|
|
@@ -202,8 +207,8 @@ type CubeTableColumnColor = /** A palette theme name. */CubeTableColumnTheme /**
|
|
|
202
207
|
*
|
|
203
208
|
* @default ['header','body','totals']
|
|
204
209
|
*/
|
|
205
|
-
type CubeTableColumnColorScope = 'header' | 'body' | 'totals';
|
|
206
|
-
interface CubeTableColumn<T = any> {
|
|
210
|
+
export type CubeTableColumnColorScope = 'header' | 'body' | 'totals';
|
|
211
|
+
export interface CubeTableColumn<T = any> {
|
|
207
212
|
/**
|
|
208
213
|
* Column id. Also the default data path — dot notation is supported
|
|
209
214
|
* (`'owner.name'`). Anything beyond a path needs `getValue`.
|
|
@@ -298,8 +303,8 @@ interface CubeTableColumn<T = any> {
|
|
|
298
303
|
* - `skeleton` — discard the previous rows and show placeholders.
|
|
299
304
|
* - `none` — no visuals beyond `aria-busy`; the page owns the indicator.
|
|
300
305
|
*/
|
|
301
|
-
type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';
|
|
302
|
-
type CubeTableSelectionMode = 'none' | 'single' | 'multiple';
|
|
306
|
+
export type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';
|
|
307
|
+
export type CubeTableSelectionMode = 'none' | 'single' | 'multiple';
|
|
303
308
|
/**
|
|
304
309
|
* What the header checkbox acts on.
|
|
305
310
|
*
|
|
@@ -308,7 +313,6 @@ type CubeTableSelectionMode = 'none' | 'single' | 'multiple';
|
|
|
308
313
|
* - `all` — emits the `'all'` sentinel, meaning "everything, including rows the
|
|
309
314
|
* client has not loaded". The consumer decides what that means for its query.
|
|
310
315
|
*/
|
|
311
|
-
type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';
|
|
316
|
+
export type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';
|
|
312
317
|
//#endregion
|
|
313
|
-
export { CubeTableAlign, CubeTableCellContext, CubeTableCellRange, CubeTableColumn, CubeTableColumnHeader, CubeTableHeaderContext, CubeTableLayoutProps, CubeTableLoadingIndicator, CubeTableRowContext, CubeTableRowExpandInfo, CubeTableRowSection, CubeTableRowSize, CubeTableSelectAllMode, CubeTableSelectionMode, CubeTableSort, CubeTableSortDirection, CubeTableTreeProps, CubeTableTreeRowState };
|
|
314
318
|
//# sourceMappingURL=types.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
|
//#region src/components/data/TableBase/types.ts
|
|
3
3
|
/**
|
|
4
4
|
* `asc | desc` rather than React Aria's `ascending | descending`: we do not use
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
function selectionRowKey(section, rowKey) {
|
|
26
26
|
return section === "body" ? rowKey : `${section}:${rowKey}`;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
28
|
//#endregion
|
|
30
29
|
export { selectionRowKey };
|
|
30
|
+
|
|
31
31
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["Key","Styles","ReactNode","CubeItemProps","CubeTableSortDirection","CubeTableRowSize","CubeTableAlign","CubeTableRowSection","selectionRowKey","section","rowKey","CubeTableCellRange","fromRowKey","toRowKey","fromColumnKey","toColumnKey","CubeTableTreeRowState","level","parentKey","hasChildren","isExpanded","CubeTableRowExpandInfo","row","T","expanded","CubeTableLayoutProps","isAutoHeight","CubeTableTreeProps","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","keys","info","CubeTableSort","columnKey","direction","CubeTableCellContext","rowIndex","columnIndex","isSelected","isRowFocused","isDropTarget","tree","CubeTableRowContext","isFocused","CubeTableHeaderContext","sort","isSortable","isResizing","width","CubeTableColumnGroupHeader","key","title","CubeTableColumnHeader","icon","rightIcon","prefix","suffix","description","descriptionPlacement","tooltip","actions","autoHideActions","menu","menuTriggerProps","Record","menuProps","onMenuAction","action","theme","render","ctx","align","styles","CubeTableColumnTheme","CubeTableColumnColor","hue","saturation","fill","fillBand","text","CubeTableColumnColorScope","CubeTableColumn","header","isRowHeader","flex","minWidth","maxWidth","isResizable","isReorderable","pin","isHidden","getValue","format","value","compare","a","b","rowA","rowB","cellStyles","cellProps","color","colorScope","disallowSortRemoval","isSearchable","isCopyable","autoHeight","meta","CubeResolvedColumn","Omit","index","ariaColIndex","pinOffset","isPinEdge","isStructural","CubeTableColumnLayout","columns","pinnedStartWidth","pinnedEndWidth","totalWidth","isOverflowing","CubeTableLoadingIndicator","CubeTableSelectionMode","CubeTableSelectAllMode"],"sources":["../../../../src/components/data/TableBase/types.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemProps } from '../../content/Item';\n\nexport type CubeTableSortDirection = 'asc' | 'desc';\n/**\n * Named row heights: 28px, 32px and 40px.\n *\n * A subset of the kit's size scale, and the same three steps `size` would give —\n * but `rowSize` moves only the ROWS. `size` also drives the header, so reaching\n * for a denser body through it drags the header down too.\n */\nexport type CubeTableRowSize = 'small' | 'medium' | 'large';\nexport type CubeTableAlign = 'start' | 'center' | 'end';\nexport type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';\n\n/**\n * `asc | desc` rather than React Aria's `ascending | descending`: we do not use\n * `useTableState`, so there is no `SortDescriptor` interop to preserve, and\n * every consumer and server query parameter already speaks `asc|desc`.\n * `aria-sort` is a one-line map in the header cell.\n */\n/**\n * A rectangular block of cells, stored as two opposite corners.\n *\n * Corners rather than a set of keys so the selection survives a re-sort or a\n * page change the way a keyed row selection does: \"the block between these two\n * cells\" is re-resolved against the current order every render.\n */\n/**\n * The key a cell range identifies a row by.\n *\n * Not the consumer's row key: a pinned total is commonly the SAME record at the\n * top and the bottom (`id: 'total'`), and one flat key space collapsed the two\n * into whichever `indexOf` found first — so a range aimed at the footer total\n * resolved against the header one. The section is part of the identity here,\n * and only here; `ctx.rowKey` stays the consumer's own.\n */\nexport function selectionRowKey(\n section: CubeTableRowSection,\n rowKey: Key,\n): Key {\n return section === 'body' ? rowKey : `${section}:${rowKey}`;\n}\n\nexport interface CubeTableCellRange {\n fromRowKey: Key;\n toRowKey: Key;\n fromColumnKey: string;\n toColumnKey: string;\n}\n\nexport interface CubeTableTreeRowState {\n /** Zero-based depth in the hierarchy. */\n level: number;\n parentKey: Key | null;\n hasChildren: boolean;\n isExpanded: boolean;\n}\n\nexport interface CubeTableRowExpandInfo<T = any> {\n row: T;\n rowKey: Key;\n level: number;\n parentKey: Key | null;\n expanded: boolean;\n}\n\n/** Shared root sizing contract used by both table adapters. */\nexport interface CubeTableLayoutProps {\n /**\n * Shrink-wraps the frame to its rendered rows instead of filling the\n * available flex pane. This mode disables virtualization because there is no\n * bounded vertical viewport to virtualize against.\n *\n * @default false\n */\n isAutoHeight?: boolean;\n}\n\n/** Shared opt-in hierarchy contract used by both table adapters. */\nexport interface CubeTableTreeProps<T = any> {\n /**\n * Returns a row's already-loaded children. Supplying this enables tree mode\n * and makes `data` the top-level row collection.\n */\n getRowChildren?: (row: T) => readonly T[] | undefined;\n /** Column that owns the indentation and disclosure control. */\n treeColumnKey?: string;\n /** Controlled expanded row keys. */\n expandedKeys?: Key[];\n /** Initially expanded row keys. */\n defaultExpandedKeys?: Key[];\n /** Called after a user expands or collapses a row. */\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n}\n\nexport interface CubeTableSort {\n /** `key` of the sorted column. */\n columnKey: string;\n direction: CubeTableSortDirection;\n}\n\n/* ── render contexts ─────────────────────────────────────────────────────── */\n\nexport interface CubeTableCellContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n columnKey: string;\n columnIndex: number;\n section: CubeTableRowSection;\n /** Whether the ROW is selected, matching `isRowFocused` below. */\n isSelected: boolean;\n /**\n * Not yet wired — always absent.\n *\n * Optional rather than `boolean`, because there is nowhere honest to compute\n * them from where this context is built. Focus lives in the DOM, and drop\n * state comes out of `useDropIndicator`, a hook that can only run inside the\n * row component — so populating either means moving the `render` / `cellStyles`\n * call sites into `TableRow`. Declaring them required and passing `false`\n * would just be a documented lie.\n */\n isRowFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableRowContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n section: CubeTableRowSection;\n isSelected: boolean;\n /** Not yet wired — always absent. See `CubeTableCellContext` for why. */\n isFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableHeaderContext {\n columnKey: string;\n columnIndex: number;\n sort: CubeTableSortDirection | null;\n isSortable: boolean;\n isResizing: boolean;\n width: number | null;\n}\n\n/** Presentational path entry used to build multi-row column headers. */\nexport interface CubeTableColumnGroupHeader {\n key: string;\n title?: ReactNode;\n}\n\n/* ── column ──────────────────────────────────────────────────────────────── */\n\n/**\n * Rich header content. Every slot except `menu` maps 1:1 onto the `Item`\n * rendered inside the header `<th>`, so a header gets icon / description /\n * tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s\n * `actions` slot behind a `⋮` trigger.\n */\nexport interface CubeTableColumnHeader {\n icon?: CubeItemProps['icon'];\n rightIcon?: CubeItemProps['rightIcon'];\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: CubeItemProps['descriptionPlacement'];\n /** `true` = auto tooltip when the label is truncated. */\n tooltip?: CubeItemProps['tooltip'];\n actions?: ReactNode;\n /** Hide `actions` until hover/focus. @default true */\n autoHideActions?: boolean;\n /**\n * A column menu, opened from a `⋮` trigger in the header's actions slot and —\n * unless the table says otherwise — by right-click or Shift+F10.\n *\n * `Menu.Item` children. Opaque: the table mounts the node and reports the\n * pressed key back through `onColumnMenuAction`, so what a \"pin\" or a \"drill\n * down\" means stays in the consuming app. The exception is the reserved sort\n * keys (`sort-asc`, `sort-desc`, `clear-sort`), which the table labels,\n * disables when redundant, and applies itself before telling the consumer.\n *\n * An empty menu renders no trigger at all, rather than one that opens nothing.\n * Ignored when `header.render` takes the cell over.\n */\n menu?: ReactNode;\n /** Props for the `⋮` trigger. Merged over the table's `columnMenuTriggerProps`. */\n menuTriggerProps?: Record<string, any>;\n /** Props for the `Menu`. Merged over the table's `columnMenuProps`. */\n menuProps?: Record<string, any>;\n /** Called before the table-level `onColumnMenuAction`. */\n onMenuAction?: (action: string) => void;\n theme?: CubeItemProps['theme'];\n /**\n * Full takeover of the header cell's content. Overrides `title` and every\n * slot — including `actions` and `menu`, which are simply not rendered. A\n * takeover that wants a menu owns the trigger too.\n */\n render?: (ctx: CubeTableHeaderContext) => ReactNode;\n /** Overrides `column.align` for the header only. */\n align?: CubeTableAlign;\n styles?: Styles;\n}\n\n/* ── column colour ───────────────────────────────────────────────────────── */\n\n/**\n * A palette theme a column can borrow its tint from.\n *\n * Resolved through the same runtime generator as a custom colour, seeded from the\n * theme's own hue and saturation in `palette-config` — so it tracks a re-seeded\n * palette, and it gets the banding step the palette itself does not define.\n *\n * `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with\n * no tinted-surface ramp to borrow.\n */\nexport type CubeTableColumnTheme =\n | 'primary'\n | 'purple'\n | 'success'\n | 'danger'\n | 'warning'\n | 'note';\n\n/**\n * How a column is tinted.\n *\n * Every form but the last is *derived*: only a hue and a saturation are kept, and\n * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour scheme. So\n * a column stays readable in light, dark and high contrast without the caller\n * checking — which is the part hand-picked hex pairs get wrong.\n */\nexport type CubeTableColumnColor =\n /** A palette theme name. */\n | CubeTableColumnTheme\n /** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */\n | (string & {})\n /** The seed said directly. `saturation` is 0–100. */\n | { hue: number; saturation?: number }\n /**\n * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).\n *\n * Nothing is derived and nothing is contrast-checked — this is the escape\n * hatch, and readability in every scheme becomes the caller's problem.\n * `fillBand` defaults to `fill`, which turns banding off for the column.\n */\n | { fill: string; fillBand?: string; text?: string };\n\n/**\n * Which parts of a column `color` reaches.\n *\n * @default ['header','body','totals']\n */\nexport type CubeTableColumnColorScope = 'header' | 'body' | 'totals';\n\nexport interface CubeTableColumn<T = any> {\n /**\n * Column id. Also the default data path — dot notation is supported\n * (`'owner.name'`). Anything beyond a path needs `getValue`.\n */\n key: string;\n /** Header label. Shorthand for `header` with no extra slots. */\n title?: ReactNode;\n header?: CubeTableColumnHeader;\n /**\n * Renders `<th scope=\"row\">` instead of `<td>`, names the row for screen\n * readers, and hosts the `rowLink` anchor. Defaults to the first\n * non-structural column when a row link is present.\n */\n isRowHeader?: boolean;\n\n /* sizing */\n /** Fixed width in px. Mutually exclusive with `flex`. */\n width?: number;\n /** Weight for the leftover space. @default 1 when `width` is unset */\n flex?: number;\n /** @default 150 */\n minWidth?: number;\n maxWidth?: number;\n /** Inherits the table's `isResizable`. */\n isResizable?: boolean;\n /**\n * Inherits the table's `isColumnReorderable`; `false` pins this column in\n * place while the others still move around it.\n */\n isReorderable?: boolean;\n /** Stick to the start/end edge during horizontal scroll. */\n pin?: 'start' | 'end';\n /** Hide without losing width or order state. */\n isHidden?: boolean;\n\n /* value pipeline */\n /** @default (row) => get(row, key) */\n getValue?: (row: T, rowIndex: number) => unknown;\n /** Raw value → display text. Feeds client sort, client search and TSV copy. */\n format?: (value: any, row: T, rowIndex: number) => string;\n /** Client-side comparator over raw `getValue` results. */\n compare?: (a: any, b: any, rowA: T, rowB: T) => number;\n\n /* rendering */\n /** A returned string is wrapped in a truncating `TextItem`. */\n render?: (\n value: any,\n row: T,\n rowIndex: number,\n ctx: CubeTableCellContext<T>,\n ) => ReactNode;\n /**\n * Tasty styles for this column's body cells: tokens (`#surface-text-soft-2`),\n * units, presets, recipes and state maps all work, and a state key asks about\n * the cell itself (`@own(pinned=bottom)`). They win over the table's own cell\n * paint, its column tint and the table-level `cellStyles`.\n *\n * The function form runs per cell, so it can vary with `ctx` (the row, its\n * section, its selection). Cells whose styles are equal share one class, so a\n * function returning a few distinct objects costs a few classes, not one per\n * cell.\n */\n cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);\n cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;\n\n /**\n * Tints the column — header, cells and pinned totals — with an adaptive fill\n * and a text colour solved to stay readable on it in every scheme.\n *\n * Row banding survives: the tint carries its own band one tone step away, so\n * the stripe still reads down the column instead of being painted over.\n */\n color?: CubeTableColumnColor;\n /** Narrows what `color` reaches. @default ['header','body','totals'] */\n colorScope?: readonly CubeTableColumnColorScope[];\n\n /* behaviour */\n align?: CubeTableAlign;\n /**\n * Opt IN, per column — a table is not sortable until at least one column says\n * so, and `sortMode` then defaults to `'client'`.\n *\n * (This read `@default true` for a long time, which was never what the code\n * did: `TableView` requires `isSortable === true` before a header becomes a\n * control at all.)\n *\n * @default false\n */\n isSortable?: boolean;\n /** Two-state cycling (asc ↔ desc), never back to unsorted. @default false */\n disallowSortRemoval?: boolean;\n /** Include in the built-in client search. @default true */\n isSearchable?: boolean;\n /** Include in TSV copy. @default true */\n isCopyable?: boolean;\n /** Wrap text and let the row grow to fit. */\n autoHeight?: boolean;\n\n /** Consumer-owned bag. Never reaches the DOM. */\n meta?: Record<string, unknown>;\n}\n\n/* ── resolved layout (internal, but exported for adapters) ───────────────── */\n\nexport interface CubeResolvedColumn<T = any>\n // `width`, `minWidth`, `maxWidth`, `flex` and `align` are all resolved here,\n // so they narrow from optional to definite and must be replaced, not extended.\n extends Omit<\n CubeTableColumn<T>,\n 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'align'\n > {\n /** Position among the visible leaf columns, 0-based. */\n index: number;\n /** `aria-colindex`, 1-based and document-absolute. */\n ariaColIndex: number;\n /** Resolved pixel width, or `null` while the container is unmeasured. */\n width: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n align: CubeTableAlign;\n /** Cumulative sticky offset in px for a pinned column. */\n pinOffset: number | null;\n /** `true` for the last pinned-start / first pinned-end column. */\n isPinEdge: boolean;\n /** Structural columns (selection, drag handle, row menu) never enter sorting,\n * search, copy, or the value pipeline. */\n isStructural: boolean;\n}\n\nexport interface CubeTableColumnLayout<T = any> {\n columns: CubeResolvedColumn<T>[];\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n /** Sum of resolved widths, or `null` while unmeasured. */\n totalWidth: number | null;\n /** `true` when the columns cannot fit and the table scrolls horizontally. */\n isOverflowing: boolean;\n}\n\n/**\n * How a refresh over an existing result is presented.\n *\n * - `overlay` — keep the previous rows visible, dimmed, behind a spinner. A\n * server page or a re-sort never blanks the table.\n * - `skeleton` — discard the previous rows and show placeholders.\n * - `none` — no visuals beyond `aria-busy`; the page owns the indicator.\n */\nexport type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';\n\nexport type CubeTableSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * What the header checkbox acts on.\n *\n * - `page` — the rows on the current page.\n * - `filtered` — every row passing the current search/filter, across pages.\n * - `all` — emits the `'all'` sentinel, meaning \"everything, including rows the\n * client has not loaded\". The consumer decides what that means for its query.\n */\nexport type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgBQ,gBACdC,SACAC,QACK;AACL,QAAOD,YAAY,SAASC,SAAS,GAAGD,QAAO,GAAIC"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["Key","Styles","ReactNode","CubeItemProps","CubeTableSortDirection","CubeTableRowSize","CubeTableAlign","CubeTableRowSection","selectionRowKey","section","rowKey","CubeTableCellRange","fromRowKey","toRowKey","fromColumnKey","toColumnKey","CubeTableTreeRowState","level","parentKey","hasChildren","isExpanded","CubeTableRowExpandInfo","row","T","expanded","CubeTableLayoutProps","isAutoHeight","CubeTableTreeProps","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","keys","info","CubeTableSort","columnKey","direction","CubeTableCellContext","rowIndex","columnIndex","isSelected","isRowFocused","isDropTarget","tree","CubeTableRowContext","isFocused","CubeTableHeaderContext","sort","isSortable","isResizing","width","CubeTableColumnGroupHeader","key","title","CubeTableColumnHeader","icon","rightIcon","prefix","suffix","description","descriptionPlacement","tooltip","actions","autoHideActions","menu","menuTriggerProps","Record","menuProps","onMenuAction","action","theme","render","ctx","align","styles","CubeTableColumnTheme","CubeTableColumnColor","hue","saturation","fill","fillBand","text","CubeTableColumnColorScope","CubeTableColumn","header","isRowHeader","flex","minWidth","maxWidth","isResizable","isReorderable","pin","isHidden","getValue","format","value","compare","a","b","rowA","rowB","cellStyles","cellProps","color","colorScope","disallowSortRemoval","isSearchable","isCopyable","autoHeight","meta","CubeResolvedColumn","Omit","index","ariaColIndex","pinOffset","isPinEdge","isStructural","CubeTableColumnLayout","columns","pinnedStartWidth","pinnedEndWidth","totalWidth","isOverflowing","CubeTableLoadingIndicator","CubeTableSelectionMode","CubeTableSelectAllMode"],"sources":["../../../../src/components/data/TableBase/types.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemProps } from '../../content/Item';\n\nexport type CubeTableSortDirection = 'asc' | 'desc';\n/**\n * Named row heights: 28px, 32px and 40px.\n *\n * A subset of the kit's size scale, and the same three steps `size` would give —\n * but `rowSize` moves only the ROWS. `size` also drives the header, so reaching\n * for a denser body through it drags the header down too.\n */\nexport type CubeTableRowSize = 'small' | 'medium' | 'large';\nexport type CubeTableAlign = 'start' | 'center' | 'end';\nexport type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';\n\n/**\n * `asc | desc` rather than React Aria's `ascending | descending`: we do not use\n * `useTableState`, so there is no `SortDescriptor` interop to preserve, and\n * every consumer and server query parameter already speaks `asc|desc`.\n * `aria-sort` is a one-line map in the header cell.\n */\n/**\n * A rectangular block of cells, stored as two opposite corners.\n *\n * Corners rather than a set of keys so the selection survives a re-sort or a\n * page change the way a keyed row selection does: \"the block between these two\n * cells\" is re-resolved against the current order every render.\n */\n/**\n * The key a cell range identifies a row by.\n *\n * Not the consumer's row key: a pinned total is commonly the SAME record at the\n * top and the bottom (`id: 'total'`), and one flat key space collapsed the two\n * into whichever `indexOf` found first — so a range aimed at the footer total\n * resolved against the header one. The section is part of the identity here,\n * and only here; `ctx.rowKey` stays the consumer's own.\n */\nexport function selectionRowKey(\n section: CubeTableRowSection,\n rowKey: Key,\n): Key {\n return section === 'body' ? rowKey : `${section}:${rowKey}`;\n}\n\nexport interface CubeTableCellRange {\n fromRowKey: Key;\n toRowKey: Key;\n fromColumnKey: string;\n toColumnKey: string;\n}\n\nexport interface CubeTableTreeRowState {\n /** Zero-based depth in the hierarchy. */\n level: number;\n parentKey: Key | null;\n hasChildren: boolean;\n isExpanded: boolean;\n}\n\nexport interface CubeTableRowExpandInfo<T = any> {\n row: T;\n rowKey: Key;\n level: number;\n parentKey: Key | null;\n expanded: boolean;\n}\n\n/** Shared root sizing contract used by both table adapters. */\nexport interface CubeTableLayoutProps {\n /**\n * Shrink-wraps the frame to its rendered rows instead of filling the\n * available flex pane. This mode disables virtualization because there is no\n * bounded vertical viewport to virtualize against.\n *\n * @default false\n */\n isAutoHeight?: boolean;\n}\n\n/** Shared opt-in hierarchy contract used by both table adapters. */\nexport interface CubeTableTreeProps<T = any> {\n /**\n * Returns a row's already-loaded children. Supplying this enables tree mode\n * and makes `data` the top-level row collection.\n */\n getRowChildren?: (row: T) => readonly T[] | undefined;\n /** Column that owns the indentation and disclosure control. */\n treeColumnKey?: string;\n /** Controlled expanded row keys. */\n expandedKeys?: Key[];\n /** Initially expanded row keys. */\n defaultExpandedKeys?: Key[];\n /** Called after a user expands or collapses a row. */\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n}\n\nexport interface CubeTableSort {\n /** `key` of the sorted column. */\n columnKey: string;\n direction: CubeTableSortDirection;\n}\n\n/* ── render contexts ─────────────────────────────────────────────────────── */\n\nexport interface CubeTableCellContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n columnKey: string;\n columnIndex: number;\n section: CubeTableRowSection;\n /** Whether the ROW is selected, matching `isRowFocused` below. */\n isSelected: boolean;\n /**\n * Not yet wired — always absent.\n *\n * Optional rather than `boolean`, because there is nowhere honest to compute\n * them from where this context is built. Focus lives in the DOM, and drop\n * state comes out of `useDropIndicator`, a hook that can only run inside the\n * row component — so populating either means moving the `render` / `cellStyles`\n * call sites into `TableRow`. Declaring them required and passing `false`\n * would just be a documented lie.\n */\n isRowFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableRowContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n section: CubeTableRowSection;\n isSelected: boolean;\n /** Not yet wired — always absent. See `CubeTableCellContext` for why. */\n isFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableHeaderContext {\n columnKey: string;\n columnIndex: number;\n sort: CubeTableSortDirection | null;\n isSortable: boolean;\n isResizing: boolean;\n width: number | null;\n}\n\n/** Presentational path entry used to build multi-row column headers. */\nexport interface CubeTableColumnGroupHeader {\n key: string;\n title?: ReactNode;\n}\n\n/* ── column ──────────────────────────────────────────────────────────────── */\n\n/**\n * Rich header content. Every slot except `menu` maps 1:1 onto the `Item`\n * rendered inside the header `<th>`, so a header gets icon / description /\n * tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s\n * `actions` slot behind a `⋮` trigger.\n */\nexport interface CubeTableColumnHeader {\n icon?: CubeItemProps['icon'];\n rightIcon?: CubeItemProps['rightIcon'];\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: CubeItemProps['descriptionPlacement'];\n /** `true` = auto tooltip when the label is truncated. */\n tooltip?: CubeItemProps['tooltip'];\n actions?: ReactNode;\n /** Hide `actions` until hover/focus. @default true */\n autoHideActions?: boolean;\n /**\n * A column menu, opened from a `⋮` trigger in the header's actions slot and —\n * unless the table says otherwise — by right-click or Shift+F10.\n *\n * `Menu.Item` children. Opaque: the table mounts the node and reports the\n * pressed key back through `onColumnMenuAction`, so what a \"pin\" or a \"drill\n * down\" means stays in the consuming app. The exception is the reserved sort\n * keys (`sort-asc`, `sort-desc`, `clear-sort`), which the table labels,\n * disables when redundant, and applies itself before telling the consumer.\n *\n * An empty menu renders no trigger at all, rather than one that opens nothing.\n * Ignored when `header.render` takes the cell over.\n */\n menu?: ReactNode;\n /** Props for the `⋮` trigger. Merged over the table's `columnMenuTriggerProps`. */\n menuTriggerProps?: Record<string, any>;\n /** Props for the `Menu`. Merged over the table's `columnMenuProps`. */\n menuProps?: Record<string, any>;\n /** Called before the table-level `onColumnMenuAction`. */\n onMenuAction?: (action: string) => void;\n theme?: CubeItemProps['theme'];\n /**\n * Full takeover of the header cell's content. Overrides `title` and every\n * slot — including `actions` and `menu`, which are simply not rendered. A\n * takeover that wants a menu owns the trigger too.\n */\n render?: (ctx: CubeTableHeaderContext) => ReactNode;\n /** Overrides `column.align` for the header only. */\n align?: CubeTableAlign;\n styles?: Styles;\n}\n\n/* ── column colour ───────────────────────────────────────────────────────── */\n\n/**\n * A palette theme a column can borrow its tint from.\n *\n * Resolved through the same runtime generator as a custom colour, seeded from the\n * theme's own hue and saturation in `palette-config` — so it tracks a re-seeded\n * palette, and it gets the banding step the palette itself does not define.\n *\n * `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with\n * no tinted-surface ramp to borrow.\n */\nexport type CubeTableColumnTheme =\n 'primary' | 'purple' | 'success' | 'danger' | 'warning' | 'note';\n\n/**\n * How a column is tinted.\n *\n * Every form but the last is *derived*: only a hue and a saturation are kept, and\n * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour scheme. So\n * a column stays readable in light, dark and high contrast without the caller\n * checking — which is the part hand-picked hex pairs get wrong.\n */\nexport type CubeTableColumnColor =\n /** A palette theme name. */\n | CubeTableColumnTheme\n /** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */\n | (string & {})\n /** The seed said directly. `saturation` is 0–100. */\n | { hue: number; saturation?: number }\n /**\n * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).\n *\n * Nothing is derived and nothing is contrast-checked — this is the escape\n * hatch, and readability in every scheme becomes the caller's problem.\n * `fillBand` defaults to `fill`, which turns banding off for the column.\n */\n | { fill: string; fillBand?: string; text?: string };\n\n/**\n * Which parts of a column `color` reaches.\n *\n * @default ['header','body','totals']\n */\nexport type CubeTableColumnColorScope = 'header' | 'body' | 'totals';\n\nexport interface CubeTableColumn<T = any> {\n /**\n * Column id. Also the default data path — dot notation is supported\n * (`'owner.name'`). Anything beyond a path needs `getValue`.\n */\n key: string;\n /** Header label. Shorthand for `header` with no extra slots. */\n title?: ReactNode;\n header?: CubeTableColumnHeader;\n /**\n * Renders `<th scope=\"row\">` instead of `<td>`, names the row for screen\n * readers, and hosts the `rowLink` anchor. Defaults to the first\n * non-structural column when a row link is present.\n */\n isRowHeader?: boolean;\n\n /* sizing */\n /** Fixed width in px. Mutually exclusive with `flex`. */\n width?: number;\n /** Weight for the leftover space. @default 1 when `width` is unset */\n flex?: number;\n /** @default 150 */\n minWidth?: number;\n maxWidth?: number;\n /** Inherits the table's `isResizable`. */\n isResizable?: boolean;\n /**\n * Inherits the table's `isColumnReorderable`; `false` pins this column in\n * place while the others still move around it.\n */\n isReorderable?: boolean;\n /** Stick to the start/end edge during horizontal scroll. */\n pin?: 'start' | 'end';\n /** Hide without losing width or order state. */\n isHidden?: boolean;\n\n /* value pipeline */\n /** @default (row) => get(row, key) */\n getValue?: (row: T, rowIndex: number) => unknown;\n /** Raw value → display text. Feeds client sort, client search and TSV copy. */\n format?: (value: any, row: T, rowIndex: number) => string;\n /** Client-side comparator over raw `getValue` results. */\n compare?: (a: any, b: any, rowA: T, rowB: T) => number;\n\n /* rendering */\n /** A returned string is wrapped in a truncating `TextItem`. */\n render?: (\n value: any,\n row: T,\n rowIndex: number,\n ctx: CubeTableCellContext<T>,\n ) => ReactNode;\n /**\n * Tasty styles for this column's body cells: tokens (`#surface-text-soft-2`),\n * units, presets, recipes and state maps all work, and a state key asks about\n * the cell itself (`@own(pinned=bottom)`). They win over the table's own cell\n * paint, its column tint and the table-level `cellStyles`.\n *\n * The function form runs per cell, so it can vary with `ctx` (the row, its\n * section, its selection). Cells whose styles are equal share one class, so a\n * function returning a few distinct objects costs a few classes, not one per\n * cell.\n */\n cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);\n cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;\n\n /**\n * Tints the column — header, cells and pinned totals — with an adaptive fill\n * and a text colour solved to stay readable on it in every scheme.\n *\n * Row banding survives: the tint carries its own band one tone step away, so\n * the stripe still reads down the column instead of being painted over.\n */\n color?: CubeTableColumnColor;\n /** Narrows what `color` reaches. @default ['header','body','totals'] */\n colorScope?: readonly CubeTableColumnColorScope[];\n\n /* behaviour */\n align?: CubeTableAlign;\n /**\n * Opt IN, per column — a table is not sortable until at least one column says\n * so, and `sortMode` then defaults to `'client'`.\n *\n * (This read `@default true` for a long time, which was never what the code\n * did: `TableView` requires `isSortable === true` before a header becomes a\n * control at all.)\n *\n * @default false\n */\n isSortable?: boolean;\n /** Two-state cycling (asc ↔ desc), never back to unsorted. @default false */\n disallowSortRemoval?: boolean;\n /** Include in the built-in client search. @default true */\n isSearchable?: boolean;\n /** Include in TSV copy. @default true */\n isCopyable?: boolean;\n /** Wrap text and let the row grow to fit. */\n autoHeight?: boolean;\n\n /** Consumer-owned bag. Never reaches the DOM. */\n meta?: Record<string, unknown>;\n}\n\n/* ── resolved layout (internal, but exported for adapters) ───────────────── */\n\nexport interface CubeResolvedColumn<T = any>\n // `width`, `minWidth`, `maxWidth`, `flex` and `align` are all resolved here,\n // so they narrow from optional to definite and must be replaced, not extended.\n extends Omit<\n CubeTableColumn<T>,\n 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'align'\n > {\n /** Position among the visible leaf columns, 0-based. */\n index: number;\n /** `aria-colindex`, 1-based and document-absolute. */\n ariaColIndex: number;\n /** Resolved pixel width, or `null` while the container is unmeasured. */\n width: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n align: CubeTableAlign;\n /** Cumulative sticky offset in px for a pinned column. */\n pinOffset: number | null;\n /** `true` for the last pinned-start / first pinned-end column. */\n isPinEdge: boolean;\n /** Structural columns (selection, drag handle, row menu) never enter sorting,\n * search, copy, or the value pipeline. */\n isStructural: boolean;\n}\n\nexport interface CubeTableColumnLayout<T = any> {\n columns: CubeResolvedColumn<T>[];\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n /** Sum of resolved widths, or `null` while unmeasured. */\n totalWidth: number | null;\n /** `true` when the columns cannot fit and the table scrolls horizontally. */\n isOverflowing: boolean;\n}\n\n/**\n * How a refresh over an existing result is presented.\n *\n * - `overlay` — keep the previous rows visible, dimmed, behind a spinner. A\n * server page or a re-sort never blanks the table.\n * - `skeleton` — discard the previous rows and show placeholders.\n * - `none` — no visuals beyond `aria-busy`; the page owns the indicator.\n */\nexport type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';\n\nexport type CubeTableSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * What the header checkbox acts on.\n *\n * - `page` — the rows on the current page.\n * - `filtered` — every row passing the current search/filter, across pages.\n * - `all` — emits the `'all'` sentinel, meaning \"everything, including rows the\n * client has not loaded\". The consumer decides what that means for its query.\n */\nexport type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgBQ,gBACdC,SACAC,QACK;CACL,OAAOD,YAAY,SAASC,SAAS,GAAGD,QAAO,GAAIC;AACrD"}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cell-selection.js","names":["useControlledState","useCallback","useMemo","useRef","useEvent","Key","CubeResolvedColumn","CubeTableCellRange","CubeTableCellSelectionMode","UseCellSelectionOptions","mode","columns","T","rows","rowKeys","isCellSelectable","row","rowKey","columnKey","range","defaultRange","onRangeChange","cellKey","useCellSelection","rangeProp","setRange","value","anchorRef","isDraggingRef","selectableColumns","filter","column","isStructural","isEnabled","bounds","rowFrom","indexOf","fromRowKey","rowTo","toRowKey","colFrom","findIndex","key","fromColumnKey","colTo","toColumnKey","rowStart","Math","min","rowEnd","max","colStart","colEnd","selectedKeys","keys","Set","r","c","add","isSelected","has","isSelectableColumn","some","canSelectCell","index","select","next","current","extendTo","anchor","clear","getSelectionMatrix","getText","rowIndex","getHeader","cols","slice","matrix","push","map","hasRange","size","cellCount","toTsv","quote","join","test","replace"],"sources":["../../../../src/components/data/TableBase/use-cell-selection.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { Key } from '@react-types/shared';\nimport type { CubeResolvedColumn, CubeTableCellRange } from './types';\n\nexport type CubeTableCellSelectionMode = 'none' | 'cell' | 'range';\n\nexport interface UseCellSelectionOptions<T> {\n /** @default 'range' */\n mode?: CubeTableCellSelectionMode;\n columns: CubeResolvedColumn<T>[];\n /**\n * Every row a range can reach, in the order they appear on screen — pinned\n * rows included. ag-grid excludes them (`!rowNode.rowPinned`), and we do not:\n * a total is a figure like any other, and selecting a column of revenue only\n * to have to copy its sum separately is the wrong trade.\n *\n * A pinned row is still not reachable by dragging THROUGH it — see\n * `TableView`'s pointer handlers for why.\n */\n rows: readonly T[];\n /**\n * Parallel to `rows`. Supplied rather than derived, so it cannot disagree with\n * the keys the renderer stamps on the cells — when the two drifted, every\n * range silently resolved to nothing.\n */\n rowKeys: readonly Key[];\n /**\n * Vetoes individual cells. A pinned total's label cell is the motivating\n * case: \"Total\" is a caption for the row, not a figure, and there is nothing\n * useful to do with it selected.\n *\n * A vetoed cell cannot anchor or receive a range, never highlights, and copies\n * as an empty field so a block spanning it keeps its shape.\n */\n isCellSelectable?: (row: T, rowKey: Key, columnKey: string) => boolean;\n range?: CubeTableCellRange | null;\n defaultRange?: CubeTableCellRange | null;\n onRangeChange?: (range: CubeTableCellRange | null) => void;\n}\n\nconst cellKey = (rowKey: Key, columnKey: string) => `${rowKey}\u0000${columnKey}`;\n\n/**\n * Rectangular cell selection.\n *\n * A result grid is read by cell, not by row: the thing a user wants out of it is\n * a figure, or a block of figures to paste somewhere else. So a click selects a\n * cell, shift-click and drag grow a rectangle, and ⌘/Ctrl+C writes the rectangle\n * out as TSV.\n *\n * The range is stored as two corners rather than a set of keys, so it survives\n * sorting and paging the way a keyed row selection does — and normalizing it\n * against the CURRENT row and column order is what makes \"the block between\n * these two cells\" keep meaning that after a re-sort.\n *\n * Structural columns (the row number, the checkbox, the row-menu button) can\n * never enter a range: they are chrome, and copying them would put the grid's\n * own furniture into the user's spreadsheet.\n */\nexport function useCellSelection<T>({\n mode = 'range',\n columns,\n rows,\n rowKeys,\n isCellSelectable,\n range: rangeProp,\n defaultRange,\n onRangeChange,\n}: UseCellSelectionOptions<T>) {\n const [range, setRange] = useControlledState<CubeTableCellRange | null>(\n rangeProp as CubeTableCellRange | null,\n defaultRange ?? null,\n onRangeChange as (value: CubeTableCellRange | null) => void,\n );\n\n // The press that started a drag. A ref rather than state: it is written and\n // read inside one pointer gesture, and re-rendering on every `pointerenter`\n // would drop frames across a wide grid.\n const anchorRef = useRef<CubeTableCellRange | null>(null);\n const isDraggingRef = useRef(false);\n\n const selectableColumns = useMemo(\n () => columns.filter((column) => !column.isStructural),\n [columns],\n );\n\n const isEnabled = mode !== 'none';\n\n /**\n * The range's corners resolved against the current order, as index bounds.\n * `null` when either corner has scrolled out of the data — a range whose\n * anchor no longer exists is not a range.\n */\n const bounds = useMemo(() => {\n if (!isEnabled || !range) return null;\n\n const rowFrom = rowKeys.indexOf(range.fromRowKey);\n const rowTo = rowKeys.indexOf(range.toRowKey);\n const colFrom = selectableColumns.findIndex(\n (column) => column.key === range.fromColumnKey,\n );\n const colTo = selectableColumns.findIndex(\n (column) => column.key === range.toColumnKey,\n );\n\n if (rowFrom === -1 || rowTo === -1 || colFrom === -1 || colTo === -1) {\n return null;\n }\n\n return {\n rowStart: Math.min(rowFrom, rowTo),\n rowEnd: Math.max(rowFrom, rowTo),\n colStart: Math.min(colFrom, colTo),\n colEnd: Math.max(colFrom, colTo),\n };\n }, [isEnabled, range, rowKeys, selectableColumns]);\n\n /**\n * Every selected cell, precomputed. A range spanning a full page is tens of\n * thousands of cells and every one of them asks whether it is selected on\n * every render, so this has to be a lookup rather than four comparisons.\n */\n const selectedKeys = useMemo(() => {\n const keys = new Set<string>();\n\n if (!bounds) return keys;\n\n for (let r = bounds.rowStart; r <= bounds.rowEnd; r++) {\n for (let c = bounds.colStart; c <= bounds.colEnd; c++) {\n const columnKey = selectableColumns[c].key;\n\n if (isCellSelectable?.(rows[r], rowKeys[r], columnKey) === false) {\n continue;\n }\n\n keys.add(cellKey(rowKeys[r], columnKey));\n }\n }\n\n return keys;\n }, [bounds, rows, rowKeys, selectableColumns, isCellSelectable]);\n\n // `useCallback`, not `useEvent`: the renderer asks this DURING render, once\n // per cell. `useEvent` keeps its closure current through a layout effect, so a\n // render-time reader sees the PREVIOUS render's answer — the highlight then\n // trails the selection by one commit and a cleared range stays painted.\n const isSelected = useCallback(\n (rowKey: Key, columnKey: string) =>\n selectedKeys.has(cellKey(rowKey, columnKey)),\n [selectedKeys],\n );\n\n const isSelectableColumn = useEvent((columnKey: string) =>\n selectableColumns.some((column) => column.key === columnKey),\n );\n\n /**\n * Whether a cell can take part at all — asked by the renderer before it wires\n * up any pointer handler, so a vetoed cell is inert rather than merely\n * unpainted.\n */\n const canSelectCell = useEvent((rowKey: Key, columnKey: string) => {\n if (!isEnabled || !isSelectableColumn(columnKey)) return false;\n if (!isCellSelectable) return true;\n\n const index = rowKeys.indexOf(rowKey);\n\n return index === -1 || isCellSelectable(rows[index], rowKey, columnKey);\n });\n\n const select = useEvent((rowKey: Key, columnKey: string) => {\n if (!canSelectCell(rowKey, columnKey)) return;\n\n const next: CubeTableCellRange = {\n fromRowKey: rowKey,\n toRowKey: rowKey,\n fromColumnKey: columnKey,\n toColumnKey: columnKey,\n };\n\n anchorRef.current = next;\n setRange(next);\n });\n\n /** Grow the range from the standing anchor. Shift-click and drag both land here. */\n const extendTo = useEvent((rowKey: Key, columnKey: string) => {\n if (mode !== 'range' || !canSelectCell(rowKey, columnKey)) return;\n\n // Shift-clicking with nothing selected yet behaves as a plain click, which\n // is what every grid and every file manager does.\n const anchor = anchorRef.current ?? range;\n\n if (!anchor) {\n select(rowKey, columnKey);\n\n return;\n }\n\n setRange({\n fromRowKey: anchor.fromRowKey,\n toRowKey: rowKey,\n fromColumnKey: anchor.fromColumnKey,\n toColumnKey: columnKey,\n });\n });\n\n const clear = useEvent(() => {\n anchorRef.current = null;\n if (range) setRange(null);\n });\n\n /**\n * The selection as a grid of display strings, unescaped.\n *\n * A matrix rather than a formatted blob, because the clipboard needs the same\n * block in two formats and re-parsing one to build the other does not\n * survive contact with the data: a value carrying a tab is RFC-4180 quoted\n * for the TSV, and splitting that back apart on tabs tore the cell in half.\n * Both formats are built from this instead.\n *\n * Values come from the same display-text pipeline client sort and search use,\n * so what lands on the clipboard is what was on screen: a formatted currency\n * stays formatted, and a value with no text representation copies as empty\n * rather than as `[object Object]`.\n */\n const getSelectionMatrix = useEvent(\n (\n getText: (\n column: CubeResolvedColumn<T>,\n row: T,\n rowIndex: number,\n ) => string,\n getHeader?: (column: CubeResolvedColumn<T>) => string,\n ) => {\n if (!bounds) return [];\n\n const cols = selectableColumns.slice(bounds.colStart, bounds.colEnd + 1);\n const matrix: string[][] = [];\n\n if (getHeader) matrix.push(cols.map((column) => getHeader(column)));\n\n for (let r = bounds.rowStart; r <= bounds.rowEnd; r++) {\n matrix.push(\n cols.map((column) =>\n selectedKeys.has(cellKey(rowKeys[r], column.key))\n ? getText(column, rows[r], r)\n : '',\n ),\n );\n }\n\n return matrix;\n },\n );\n\n return {\n mode,\n isEnabled,\n range: bounds ? range : null,\n /** Cells in the range, for `aria-selected` and the highlight. */\n isSelected,\n /** `true` once the range covers more than one cell. */\n hasRange: selectedKeys.size > 1,\n cellCount: selectedKeys.size,\n canSelectCell,\n select,\n extendTo,\n clear,\n getSelectionMatrix,\n anchorRef,\n isDraggingRef,\n };\n}\n\n/**\n * The matrix as tab-separated values — the format Excel and Sheets both paste\n * as a grid rather than as one run of text.\n *\n * RFC-4180 quoting: a value carrying a tab or a newline would otherwise break\n * the grid apart on paste, one cell becoming two or one row becoming two.\n */\nexport function toTsv(matrix: string[][]) {\n return matrix.map((row) => row.map(quote).join('\\t')).join('\\n');\n}\n\nfunction quote(value: string) {\n if (!/[\\t\\n\\r\"]/.test(value)) return value;\n\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-cell-selection.js","names":["useControlledState","useCallback","useMemo","useRef","useEvent","Key","CubeResolvedColumn","CubeTableCellRange","CubeTableCellSelectionMode","UseCellSelectionOptions","mode","columns","T","rows","rowKeys","isCellSelectable","row","rowKey","columnKey","range","defaultRange","onRangeChange","cellKey","useCellSelection","rangeProp","setRange","value","anchorRef","isDraggingRef","selectableColumns","filter","column","isStructural","isEnabled","bounds","rowFrom","indexOf","fromRowKey","rowTo","toRowKey","colFrom","findIndex","key","fromColumnKey","colTo","toColumnKey","rowStart","Math","min","rowEnd","max","colStart","colEnd","selectedKeys","keys","Set","r","c","add","isSelected","has","isSelectableColumn","some","canSelectCell","index","select","next","current","extendTo","anchor","clear","getSelectionMatrix","getText","rowIndex","getHeader","cols","slice","matrix","push","map","hasRange","size","cellCount","toTsv","quote","join","test","replace"],"sources":["../../../../src/components/data/TableBase/use-cell-selection.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { Key } from '@react-types/shared';\nimport type { CubeResolvedColumn, CubeTableCellRange } from './types';\n\nexport type CubeTableCellSelectionMode = 'none' | 'cell' | 'range';\n\nexport interface UseCellSelectionOptions<T> {\n /** @default 'range' */\n mode?: CubeTableCellSelectionMode;\n columns: CubeResolvedColumn<T>[];\n /**\n * Every row a range can reach, in the order they appear on screen — pinned\n * rows included. ag-grid excludes them (`!rowNode.rowPinned`), and we do not:\n * a total is a figure like any other, and selecting a column of revenue only\n * to have to copy its sum separately is the wrong trade.\n *\n * A pinned row is still not reachable by dragging THROUGH it — see\n * `TableView`'s pointer handlers for why.\n */\n rows: readonly T[];\n /**\n * Parallel to `rows`. Supplied rather than derived, so it cannot disagree with\n * the keys the renderer stamps on the cells — when the two drifted, every\n * range silently resolved to nothing.\n */\n rowKeys: readonly Key[];\n /**\n * Vetoes individual cells. A pinned total's label cell is the motivating\n * case: \"Total\" is a caption for the row, not a figure, and there is nothing\n * useful to do with it selected.\n *\n * A vetoed cell cannot anchor or receive a range, never highlights, and copies\n * as an empty field so a block spanning it keeps its shape.\n */\n isCellSelectable?: (row: T, rowKey: Key, columnKey: string) => boolean;\n range?: CubeTableCellRange | null;\n defaultRange?: CubeTableCellRange | null;\n onRangeChange?: (range: CubeTableCellRange | null) => void;\n}\n\nconst cellKey = (rowKey: Key, columnKey: string) => `${rowKey}\u0000${columnKey}`;\n\n/**\n * Rectangular cell selection.\n *\n * A result grid is read by cell, not by row: the thing a user wants out of it is\n * a figure, or a block of figures to paste somewhere else. So a click selects a\n * cell, shift-click and drag grow a rectangle, and ⌘/Ctrl+C writes the rectangle\n * out as TSV.\n *\n * The range is stored as two corners rather than a set of keys, so it survives\n * sorting and paging the way a keyed row selection does — and normalizing it\n * against the CURRENT row and column order is what makes \"the block between\n * these two cells\" keep meaning that after a re-sort.\n *\n * Structural columns (the row number, the checkbox, the row-menu button) can\n * never enter a range: they are chrome, and copying them would put the grid's\n * own furniture into the user's spreadsheet.\n */\nexport function useCellSelection<T>({\n mode = 'range',\n columns,\n rows,\n rowKeys,\n isCellSelectable,\n range: rangeProp,\n defaultRange,\n onRangeChange,\n}: UseCellSelectionOptions<T>) {\n const [range, setRange] = useControlledState<CubeTableCellRange | null>(\n rangeProp as CubeTableCellRange | null,\n defaultRange ?? null,\n onRangeChange as (value: CubeTableCellRange | null) => void,\n );\n\n // The press that started a drag. A ref rather than state: it is written and\n // read inside one pointer gesture, and re-rendering on every `pointerenter`\n // would drop frames across a wide grid.\n const anchorRef = useRef<CubeTableCellRange | null>(null);\n const isDraggingRef = useRef(false);\n\n const selectableColumns = useMemo(\n () => columns.filter((column) => !column.isStructural),\n [columns],\n );\n\n const isEnabled = mode !== 'none';\n\n /**\n * The range's corners resolved against the current order, as index bounds.\n * `null` when either corner has scrolled out of the data — a range whose\n * anchor no longer exists is not a range.\n */\n const bounds = useMemo(() => {\n if (!isEnabled || !range) return null;\n\n const rowFrom = rowKeys.indexOf(range.fromRowKey);\n const rowTo = rowKeys.indexOf(range.toRowKey);\n const colFrom = selectableColumns.findIndex(\n (column) => column.key === range.fromColumnKey,\n );\n const colTo = selectableColumns.findIndex(\n (column) => column.key === range.toColumnKey,\n );\n\n if (rowFrom === -1 || rowTo === -1 || colFrom === -1 || colTo === -1) {\n return null;\n }\n\n return {\n rowStart: Math.min(rowFrom, rowTo),\n rowEnd: Math.max(rowFrom, rowTo),\n colStart: Math.min(colFrom, colTo),\n colEnd: Math.max(colFrom, colTo),\n };\n }, [isEnabled, range, rowKeys, selectableColumns]);\n\n /**\n * Every selected cell, precomputed. A range spanning a full page is tens of\n * thousands of cells and every one of them asks whether it is selected on\n * every render, so this has to be a lookup rather than four comparisons.\n */\n const selectedKeys = useMemo(() => {\n const keys = new Set<string>();\n\n if (!bounds) return keys;\n\n for (let r = bounds.rowStart; r <= bounds.rowEnd; r++) {\n for (let c = bounds.colStart; c <= bounds.colEnd; c++) {\n const columnKey = selectableColumns[c].key;\n\n if (isCellSelectable?.(rows[r], rowKeys[r], columnKey) === false) {\n continue;\n }\n\n keys.add(cellKey(rowKeys[r], columnKey));\n }\n }\n\n return keys;\n }, [bounds, rows, rowKeys, selectableColumns, isCellSelectable]);\n\n // `useCallback`, not `useEvent`: the renderer asks this DURING render, once\n // per cell. `useEvent` keeps its closure current through a layout effect, so a\n // render-time reader sees the PREVIOUS render's answer — the highlight then\n // trails the selection by one commit and a cleared range stays painted.\n const isSelected = useCallback(\n (rowKey: Key, columnKey: string) =>\n selectedKeys.has(cellKey(rowKey, columnKey)),\n [selectedKeys],\n );\n\n const isSelectableColumn = useEvent((columnKey: string) =>\n selectableColumns.some((column) => column.key === columnKey),\n );\n\n /**\n * Whether a cell can take part at all — asked by the renderer before it wires\n * up any pointer handler, so a vetoed cell is inert rather than merely\n * unpainted.\n */\n const canSelectCell = useEvent((rowKey: Key, columnKey: string) => {\n if (!isEnabled || !isSelectableColumn(columnKey)) return false;\n if (!isCellSelectable) return true;\n\n const index = rowKeys.indexOf(rowKey);\n\n return index === -1 || isCellSelectable(rows[index], rowKey, columnKey);\n });\n\n const select = useEvent((rowKey: Key, columnKey: string) => {\n if (!canSelectCell(rowKey, columnKey)) return;\n\n const next: CubeTableCellRange = {\n fromRowKey: rowKey,\n toRowKey: rowKey,\n fromColumnKey: columnKey,\n toColumnKey: columnKey,\n };\n\n anchorRef.current = next;\n setRange(next);\n });\n\n /** Grow the range from the standing anchor. Shift-click and drag both land here. */\n const extendTo = useEvent((rowKey: Key, columnKey: string) => {\n if (mode !== 'range' || !canSelectCell(rowKey, columnKey)) return;\n\n // Shift-clicking with nothing selected yet behaves as a plain click, which\n // is what every grid and every file manager does.\n const anchor = anchorRef.current ?? range;\n\n if (!anchor) {\n select(rowKey, columnKey);\n\n return;\n }\n\n setRange({\n fromRowKey: anchor.fromRowKey,\n toRowKey: rowKey,\n fromColumnKey: anchor.fromColumnKey,\n toColumnKey: columnKey,\n });\n });\n\n const clear = useEvent(() => {\n anchorRef.current = null;\n if (range) setRange(null);\n });\n\n /**\n * The selection as a grid of display strings, unescaped.\n *\n * A matrix rather than a formatted blob, because the clipboard needs the same\n * block in two formats and re-parsing one to build the other does not\n * survive contact with the data: a value carrying a tab is RFC-4180 quoted\n * for the TSV, and splitting that back apart on tabs tore the cell in half.\n * Both formats are built from this instead.\n *\n * Values come from the same display-text pipeline client sort and search use,\n * so what lands on the clipboard is what was on screen: a formatted currency\n * stays formatted, and a value with no text representation copies as empty\n * rather than as `[object Object]`.\n */\n const getSelectionMatrix = useEvent(\n (\n getText: (\n column: CubeResolvedColumn<T>,\n row: T,\n rowIndex: number,\n ) => string,\n getHeader?: (column: CubeResolvedColumn<T>) => string,\n ) => {\n if (!bounds) return [];\n\n const cols = selectableColumns.slice(bounds.colStart, bounds.colEnd + 1);\n const matrix: string[][] = [];\n\n if (getHeader) matrix.push(cols.map((column) => getHeader(column)));\n\n for (let r = bounds.rowStart; r <= bounds.rowEnd; r++) {\n matrix.push(\n cols.map((column) =>\n selectedKeys.has(cellKey(rowKeys[r], column.key))\n ? getText(column, rows[r], r)\n : '',\n ),\n );\n }\n\n return matrix;\n },\n );\n\n return {\n mode,\n isEnabled,\n range: bounds ? range : null,\n /** Cells in the range, for `aria-selected` and the highlight. */\n isSelected,\n /** `true` once the range covers more than one cell. */\n hasRange: selectedKeys.size > 1,\n cellCount: selectedKeys.size,\n canSelectCell,\n select,\n extendTo,\n clear,\n getSelectionMatrix,\n anchorRef,\n isDraggingRef,\n };\n}\n\n/**\n * The matrix as tab-separated values — the format Excel and Sheets both paste\n * as a grid rather than as one run of text.\n *\n * RFC-4180 quoting: a value carrying a tab or a newline would otherwise break\n * the grid apart on paste, one cell becoming two or one row becoming two.\n */\nexport function toTsv(matrix: string[][]) {\n return matrix.map((row) => row.map(quote).join('\\t')).join('\\n');\n}\n\nfunction quote(value: string) {\n if (!/[\\t\\n\\r\"]/.test(value)) return value;\n\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n}\n"],"mappings":"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"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
5
|
-
import { _MenuTrigger } from "../../actions/Menu/MenuTrigger.js";
|
|
6
|
-
import { __Menu } from "../../actions/Menu/Menu.js";
|
|
5
|
+
import { MenuTrigger as _MenuTrigger } from "../../actions/Menu/MenuTrigger.js";
|
|
6
|
+
import { Menu as __Menu } from "../../actions/Menu/Menu.js";
|
|
7
7
|
import { MoreIcon } from "../../../icons/MoreIcon.js";
|
|
8
8
|
import { isMenuEmpty, normalizeMenuAction } from "./row-menu.js";
|
|
9
9
|
import { COLUMN_MENU_SORT_DIRECTION, isColumnMenuSortKey, processColumnMenuItems } from "./column-menu.js";
|
|
10
10
|
import { c } from "react/compiler-runtime";
|
|
11
11
|
import { useState } from "react";
|
|
12
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
|
|
14
13
|
//#region src/components/data/TableBase/use-column-menu.tsx
|
|
15
14
|
/**
|
|
16
15
|
* A column's `header.menu`, on both of its surfaces: the `⋮` trigger in the
|
|
@@ -160,7 +159,7 @@ function useColumnMenu(options) {
|
|
|
160
159
|
} else t6 = $[30];
|
|
161
160
|
return t6;
|
|
162
161
|
}
|
|
163
|
-
|
|
164
162
|
//#endregion
|
|
165
163
|
export { useColumnMenu };
|
|
164
|
+
|
|
166
165
|
//# sourceMappingURL=use-column-menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-column-menu.js","names":["useState","useEvent","useI18n","MoreIcon","ItemAction","Menu","MenuTrigger","COLUMN_MENU_SORT_DIRECTION","isColumnMenuSortKey","processColumnMenuItems","isMenuEmpty","normalizeMenuAction","Key","KeyboardEvent","ReactKeyboardEvent","MouseEvent","ReactMouseEvent","ReactNode","UseContextMenuReturn","ColumnSortState","CubeColumnMenuContext","CubeResolvedColumn","CubeTableSortDirection","UseColumnMenuOptions","contextMenu","Pick","HTMLDivElement","columnContextMenu","columnMenuProps","Record","columnMenuTriggerProps","onColumnSortChange","columnKey","direction","onColumnMenuAction","action","useColumnMenu","options","$","_c","t","isContextOnly","openMenuColumnKey","setOpenMenuColumnKey","t0","resolveColumnMenu","column","isStructural","items","header","menu","t1","columnMenuContext","column_0","sort","isSortable","activeSort","disallowSortRemoval","labels","t2","columnMenuActionHandler","column_1","closeAfter","normalized","key","onMenuAction","close","t3","column_2","sort_0","event","items_0","preventDefault","stopPropagation","open","menuProps","children","onAction","undefined","nativeEvent","openColumnContextMenu","t4","openColumnMenuFromKeyboard","column_3","sort_1","event_0","t5","renderColumnMenuTrigger","column_4","items_1","sort_2","menuTriggerProps","t6"],"sources":["../../../../src/components/data/TableBase/use-column-menu.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n/useI18n';\nimport { MoreIcon } from '../../../icons/MoreIcon';\nimport { ItemAction } from '../../actions/ItemAction/ItemAction';\nimport { Menu } from '../../actions/Menu/Menu';\nimport { MenuTrigger } from '../../actions/Menu/MenuTrigger';\n\nimport {\n COLUMN_MENU_SORT_DIRECTION,\n isColumnMenuSortKey,\n processColumnMenuItems,\n} from './column-menu';\nimport { isMenuEmpty, normalizeMenuAction } from './row-menu';\n\nimport type { Key } from '@react-types/shared';\nimport type {\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n} from 'react';\nimport type { UseContextMenuReturn } from '../../actions/use-context-menu';\nimport type { ColumnSortState } from './column-header';\nimport type { CubeColumnMenuContext } from './column-menu';\nimport type { CubeResolvedColumn, CubeTableSortDirection } from './types';\n\nexport interface UseColumnMenuOptions {\n /** The table's one context menu, shared with the row menu. */\n contextMenu: Pick<\n UseContextMenuReturn<HTMLDivElement, any>,\n 'open' | 'close'\n >;\n /** See `TableViewProps.columnContextMenu`. */\n columnContextMenu: boolean | 'context-only';\n columnMenuProps?: Record<string, any>;\n columnMenuTriggerProps?: Record<string, any>;\n onColumnSortChange?: (\n columnKey: string,\n direction: CubeTableSortDirection | null,\n ) => void;\n onColumnMenuAction?: (action: string, columnKey: string) => void;\n}\n\n/**\n * A column's `header.menu`, on both of its surfaces: the `⋮` trigger in the\n * header's actions slot, and the context menu a right-click or Shift+F10 opens.\n *\n * Both surfaces share the item resolution, the reserved sort keys and the\n * action dispatch here, so they cannot drift apart.\n */\nexport function useColumnMenu<T>(options: UseColumnMenuOptions) {\n const {\n contextMenu,\n columnContextMenu,\n columnMenuProps,\n columnMenuTriggerProps,\n onColumnSortChange,\n onColumnMenuAction,\n } = options;\n const { t } = useI18n();\n const isContextOnly = columnContextMenu === 'context-only';\n\n /**\n * The column whose menu is open, held for the whole table rather than per\n * header cell.\n *\n * `renderHeaderCell` is a closure inside `TableView`, not a component of its\n * own, so it cannot hold state — and only one column menu can be open at a\n * time anyway. Controlled rather than letting `MenuTrigger` own it: Shift+F10\n * has to be able to open it from the `<th>`, and the trigger is not a tab stop.\n */\n const [openMenuColumnKey, setOpenMenuColumnKey] = useState<string | null>(\n null,\n );\n\n /** The column's menu items, or `null` when it has no menu on any surface. */\n function resolveColumnMenu(column: CubeResolvedColumn<T>): ReactNode | null {\n if (columnContextMenu === false || column.isStructural) return null;\n\n const items = column.header?.menu;\n\n return isMenuEmpty(items) ? null : items;\n }\n\n /** The reserved sort keys, labelled here so `column-menu.ts` stays pure. */\n function columnMenuContext(\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n ): CubeColumnMenuContext {\n return {\n isSortable: sort.isSortable,\n sort: sort.activeSort?.direction ?? null,\n disallowSortRemoval: column.disallowSortRemoval === true,\n labels: {\n 'sort-asc': t('itemTable.sortAscending', 'Sort ascending'),\n 'sort-desc': t('itemTable.sortDescending', 'Sort descending'),\n 'clear-sort': t('itemTable.clearSort', 'Clear sort'),\n },\n };\n }\n\n function columnMenuActionHandler(\n column: CubeResolvedColumn<T>,\n closeAfter: boolean,\n ) {\n return (action: Key) => {\n const normalized = normalizeMenuAction(action);\n\n // The table's own keys are applied first, then the consumer hears about\n // them anyway — so a key can be both understood here and observed there.\n if (isColumnMenuSortKey(normalized)) {\n onColumnSortChange?.(\n column.key,\n COLUMN_MENU_SORT_DIRECTION[normalized],\n );\n }\n\n column.header?.onMenuAction?.(normalized);\n onColumnMenuAction?.(normalized, column.key);\n\n // `useContextMenu` leaves its popover open after an action; see\n // `menuActionHandler` in `TableView`.\n if (closeAfter) contextMenu.close();\n };\n }\n\n const openColumnContextMenu = useEvent(\n (\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n event: ReactMouseEvent | ReactKeyboardEvent,\n ) => {\n const items = resolveColumnMenu(column);\n\n if (items == null) return;\n\n event.preventDefault();\n // The Scroller listens for Shift+F10 too, for the row menu.\n event.stopPropagation();\n contextMenu.open(\n {\n ...columnMenuProps,\n ...column.header?.menuProps,\n children: processColumnMenuItems(\n items,\n columnMenuContext(column, sort),\n ),\n onAction: columnMenuActionHandler(column, true),\n },\n undefined,\n 'clientX' in event.nativeEvent\n ? (event.nativeEvent as MouseEvent)\n : undefined,\n );\n },\n );\n\n /**\n * Shift+F10 on the header cell: the `⋮` trigger's own popover when there is\n * a trigger, the context menu when `columnContextMenu` is `'context-only'`.\n */\n function openColumnMenuFromKeyboard(\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n event: ReactKeyboardEvent,\n ) {\n if (isContextOnly) {\n openColumnContextMenu(column, sort, event);\n\n return;\n }\n\n event.preventDefault();\n // The Scroller listens for Shift+F10 too, for the row menu.\n event.stopPropagation();\n setOpenMenuColumnKey(column.key);\n }\n\n /** The `⋮` trigger, or `null` when the menu is context-only or absent. */\n function renderColumnMenuTrigger(\n column: CubeResolvedColumn<T>,\n items: ReactNode | null,\n sort: ColumnSortState,\n ) {\n if (items == null || isContextOnly) return null;\n\n const header = column.header;\n\n return (\n <MenuTrigger\n isOpen={openMenuColumnKey === column.key}\n // `bottom end`: the trigger sits at the column's trailing edge, so a\n // start-aligned popover hangs off the table on the last column.\n placement=\"bottom end\"\n onOpenChange={(open) => setOpenMenuColumnKey(open ? column.key : null)}\n >\n <ItemAction\n // The grid is one tab stop; the trigger is reached from the header\n // cell with Shift+F10, matching the row menu.\n tabIndex={-1}\n icon={<MoreIcon />}\n aria-label={t('itemTable.columnMenu', 'Column menu')}\n {...columnMenuTriggerProps}\n {...header?.menuTriggerProps}\n />\n <Menu\n {...columnMenuProps}\n {...header?.menuProps}\n onAction={columnMenuActionHandler(column, false)}\n >\n {processColumnMenuItems(items, columnMenuContext(column, sort))}\n </Menu>\n </MenuTrigger>\n );\n }\n\n return {\n openMenuColumnKey,\n resolveColumnMenu,\n openColumnContextMenu,\n openColumnMenuFromKeyboard,\n renderColumnMenuTrigger,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmDA,SAAOoC,cAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACL,MAAA,EAAAf,aAAAG,mBAAAC,iBAAAE,wBAAAC,oBAAAG,uBAOIG;CACJ,MAAA,EAAAG,MAActC,SAAS;CACvB,MAAAuC,gBAAsBd,sBAAsB;CAW5C,MAAA,CAAAe,mBAAAC,wBAAkD3C,SAChD,KACD;CAAC,IAAA4C;AAAA,KAAAN,EAAA,OAAAX,mBAAA;AAGFiB,OAAA,SAAAC,kBAAAC,QAAA;AACE,OAAInB,sBAAsB,SAASmB,OAAMC,aAAa,QAAS;GAE/D,MAAAC,QAAcF,OAAMG,QAAaC;AAAC,UAE3BxC,YAAYsC,MAAqB,GAAjC,OAAAA;;AACRV,IAAA,KAAAX;AAAAW,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAND,MAAAO,oBAAAD;CAMC,IAAAO;AAAA,KAAAb,EAAA,OAAAE,GAAA;AAGDW,OAAA,SAAAC,kBAAAC,UAAAC,MAAA;AAAA,UAIS;IAAAC,YACOD,KAAIC;IAAWD,MACrBA,KAAIE,YAAsBvB,aAA1B;IAAkCwB,qBACnBX,SAAMW,wBAAyB;IAAIC,QAChD;KAAA,YACMlB,EAAE,2BAA2B,iBAAiB;KAAA,aAC7CA,EAAE,4BAA4B,kBAAkB;KAAA,cAC/CA,EAAE,uBAAuB,aAAY;KACrD;IACD;;AACFF,IAAA,KAAAE;AAAAF,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAdD,MAAAc,oBAAAD;CAcC,IAAAQ;AAAA,KAAArB,EAAA,OAAAd,eAAAc,EAAA,OAAAJ,sBAAAI,EAAA,OAAAP,oBAAA;AAED4B,OAAA,SAAAC,wBAAAC,UAAAC,YAAA;AAAA,WAIS3B,WAAA;IACL,MAAA4B,aAAmBpD,oBAAoBwB,OAAO;AAI9C,QAAI3B,oBAAoBuD,WAAW,CACjChC,sBACEe,SAAMkB,KACNzD,2BAA2BwD,YAC5B;AAGHjB,aAAMG,QAAqBgB,eAAGF,WAAW;AACzC7B,yBAAqB6B,YAAYjB,SAAMkB,IAAK;AAI5C,QAAIF,WAAYtC,aAAW0C,OAAQ;;;AAEtC5B,IAAA,KAAAd;AAAAc,IAAA,KAAAJ;AAAAI,IAAA,KAAAP;AAAAO,IAAA,KAAAqB;OAAAA,MAAArB,EAAA;CAvBD,MAAAsB,0BAAAD;CAuBC,IAAAQ;AAAA,KAAA7B,EAAA,OAAAsB,2BAAAtB,EAAA,OAAAc,qBAAAd,EAAA,QAAAV,mBAAAU,EAAA,QAAAd,eAAAc,EAAA,QAAAO,mBAAA;AAGCsB,QAAAC,UAAAC,QAAAC,UAAA;GAKE,MAAAC,UAAc1B,kBAAkBC,SAAO;AAEvC,OAAIE,WAAS,KAAI;AAEjBsB,SAAKE,gBAAiB;AAEtBF,SAAKG,iBAAkB;AACvBjD,eAAWkD,KACT;IAAA,GACK9C;IAAe,GACfkB,SAAMG,QAAkB0B;IAAAC,UACjBnE,uBACRuC,SACAI,kBAAkBN,UAAQQ,OAC5B,CAAC;IAAAuB,UACSjB,wBAAwBd,UAAQ,KAAI;IAC/C,EACDgC,QACA,aAAaR,MAAKS,cACbT,MAAKS,cADVD,OAGD;;AACFxC,IAAA,KAAAsB;AAAAtB,IAAA,KAAAc;AAAAd,IAAA,MAAAV;AAAAU,IAAA,MAAAd;AAAAc,IAAA,MAAAO;AAAAP,IAAA,MAAA6B;OAAAA,MAAA7B,EAAA;CA5BH,MAAA0C,wBAA8B/E,SAC5BkE,GA4BD;CAAC,IAAAc;AAAA,KAAA3C,EAAA,QAAAG,iBAAAH,EAAA,QAAA0C,uBAAA;AAMFC,OAAA,SAAAC,2BAAAC,UAAAC,QAAAC,SAAA;AAKE,OAAI5C,eAAa;AACfuC,0BAAsBlC,UAAQQ,QAAMgB,QAAM;AAAA;;AAK5CA,WAAKE,gBAAiB;AAEtBF,WAAKG,iBAAkB;AACvB9B,wBAAqBG,SAAMkB,IAAK;;AACjC1B,IAAA,MAAAG;AAAAH,IAAA,MAAA0C;AAAA1C,IAAA,MAAA2C;OAAAA,MAAA3C,EAAA;CAfD,MAAA4C,6BAAAD;CAeC,IAAAK;AAAA,KAAAhD,EAAA,QAAAsB,2BAAAtB,EAAA,QAAAc,qBAAAd,EAAA,QAAAV,mBAAAU,EAAA,QAAAR,0BAAAQ,EAAA,QAAAG,iBAAAH,EAAA,QAAAI,qBAAAJ,EAAA,QAAAE,GAAA;AAGD8C,OAAA,SAAAC,wBAAAC,UAAAC,SAAAC,QAAA;AAKE,OAAI1C,WAAS,QAATP,cAA8B,QAAS;GAE3C,MAAAQ,SAAeH,SAAMG;AAAQ,UAG3B,qBAAC;IACS,QAAAP,sBAAsBI,SAAMkB;IAG1B,WAAA;IACI,eAAAU,SAAU/B,qBAAqB+B,OAAO5B,SAAMkB,MAAb,KAAwB;eAErE,oBAAC;KAGW,UAAA;KACJ,MAAA,oBAAC,aAAU;KACL,cAAAxB,EAAE,wBAAwB,cAAa;KAAC,GAChDV;KAAsB,GACtBmB,QAAM0C;MAEZ,sBAAC;KAAI,GACC/D;KAAe,GACfqB,QAAM0B;KACA,UAAAf,wBAAwBd,UAAQ,MAAK;eAE9CrC,uBAAuBuC,SAAOI,kBAAkBN,UAAQQ,OAAK,CAAA;MAElE;KAAc;;AAEjBhB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAc;AAAAd,IAAA,MAAAV;AAAAU,IAAA,MAAAR;AAAAQ,IAAA,MAAAG;AAAAH,IAAA,MAAAI;AAAAJ,IAAA,MAAAE;AAAAF,IAAA,MAAAgD;OAAAA,MAAAhD,EAAA;CAnCD,MAAAiD,0BAAAD;CAmCC,IAAAM;AAAA,KAAAtD,EAAA,QAAA0C,yBAAA1C,EAAA,QAAA4C,8BAAA5C,EAAA,QAAAI,qBAAAJ,EAAA,QAAAiD,2BAAAjD,EAAA,QAAAO,mBAAA;AAEM+C,OAAA;GAAAlD;GAAAG;GAAAmC;GAAAE;GAAAK;GAMN;AAAAjD,IAAA,MAAA0C;AAAA1C,IAAA,MAAA4C;AAAA5C,IAAA,MAAAI;AAAAJ,IAAA,MAAAiD;AAAAjD,IAAA,MAAAO;AAAAP,IAAA,MAAAsD;OAAAA,MAAAtD,EAAA;AAAA,QANMsD"}
|
|
1
|
+
{"version":3,"file":"use-column-menu.js","names":["useState","useEvent","useI18n","MoreIcon","ItemAction","Menu","MenuTrigger","COLUMN_MENU_SORT_DIRECTION","isColumnMenuSortKey","processColumnMenuItems","isMenuEmpty","normalizeMenuAction","Key","KeyboardEvent","ReactKeyboardEvent","MouseEvent","ReactMouseEvent","ReactNode","UseContextMenuReturn","ColumnSortState","CubeColumnMenuContext","CubeResolvedColumn","CubeTableSortDirection","UseColumnMenuOptions","contextMenu","Pick","HTMLDivElement","columnContextMenu","columnMenuProps","Record","columnMenuTriggerProps","onColumnSortChange","columnKey","direction","onColumnMenuAction","action","useColumnMenu","options","$","_c","t","isContextOnly","openMenuColumnKey","setOpenMenuColumnKey","t0","resolveColumnMenu","column","isStructural","items","header","menu","t1","columnMenuContext","column_0","sort","isSortable","activeSort","disallowSortRemoval","labels","t2","columnMenuActionHandler","column_1","closeAfter","normalized","key","onMenuAction","close","t3","column_2","sort_0","event","items_0","preventDefault","stopPropagation","open","menuProps","children","onAction","undefined","nativeEvent","openColumnContextMenu","t4","openColumnMenuFromKeyboard","column_3","sort_1","event_0","t5","renderColumnMenuTrigger","column_4","items_1","sort_2","menuTriggerProps","t6","_c","MenuTrigger","Menu"],"sources":["../../../../src/components/data/TableBase/use-column-menu.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n/useI18n';\nimport { MoreIcon } from '../../../icons/MoreIcon';\nimport { ItemAction } from '../../actions/ItemAction/ItemAction';\nimport { Menu } from '../../actions/Menu/Menu';\nimport { MenuTrigger } from '../../actions/Menu/MenuTrigger';\n\nimport {\n COLUMN_MENU_SORT_DIRECTION,\n isColumnMenuSortKey,\n processColumnMenuItems,\n} from './column-menu';\nimport { isMenuEmpty, normalizeMenuAction } from './row-menu';\n\nimport type { Key } from '@react-types/shared';\nimport type {\n KeyboardEvent as ReactKeyboardEvent,\n MouseEvent as ReactMouseEvent,\n ReactNode,\n} from 'react';\nimport type { UseContextMenuReturn } from '../../actions/use-context-menu';\nimport type { ColumnSortState } from './column-header';\nimport type { CubeColumnMenuContext } from './column-menu';\nimport type { CubeResolvedColumn, CubeTableSortDirection } from './types';\n\nexport interface UseColumnMenuOptions {\n /** The table's one context menu, shared with the row menu. */\n contextMenu: Pick<\n UseContextMenuReturn<HTMLDivElement, any>,\n 'open' | 'close'\n >;\n /** See `TableViewProps.columnContextMenu`. */\n columnContextMenu: boolean | 'context-only';\n columnMenuProps?: Record<string, any>;\n columnMenuTriggerProps?: Record<string, any>;\n onColumnSortChange?: (\n columnKey: string,\n direction: CubeTableSortDirection | null,\n ) => void;\n onColumnMenuAction?: (action: string, columnKey: string) => void;\n}\n\n/**\n * A column's `header.menu`, on both of its surfaces: the `⋮` trigger in the\n * header's actions slot, and the context menu a right-click or Shift+F10 opens.\n *\n * Both surfaces share the item resolution, the reserved sort keys and the\n * action dispatch here, so they cannot drift apart.\n */\nexport function useColumnMenu<T>(options: UseColumnMenuOptions) {\n const {\n contextMenu,\n columnContextMenu,\n columnMenuProps,\n columnMenuTriggerProps,\n onColumnSortChange,\n onColumnMenuAction,\n } = options;\n const { t } = useI18n();\n const isContextOnly = columnContextMenu === 'context-only';\n\n /**\n * The column whose menu is open, held for the whole table rather than per\n * header cell.\n *\n * `renderHeaderCell` is a closure inside `TableView`, not a component of its\n * own, so it cannot hold state — and only one column menu can be open at a\n * time anyway. Controlled rather than letting `MenuTrigger` own it: Shift+F10\n * has to be able to open it from the `<th>`, and the trigger is not a tab stop.\n */\n const [openMenuColumnKey, setOpenMenuColumnKey] = useState<string | null>(\n null,\n );\n\n /** The column's menu items, or `null` when it has no menu on any surface. */\n function resolveColumnMenu(column: CubeResolvedColumn<T>): ReactNode | null {\n if (columnContextMenu === false || column.isStructural) return null;\n\n const items = column.header?.menu;\n\n return isMenuEmpty(items) ? null : items;\n }\n\n /** The reserved sort keys, labelled here so `column-menu.ts` stays pure. */\n function columnMenuContext(\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n ): CubeColumnMenuContext {\n return {\n isSortable: sort.isSortable,\n sort: sort.activeSort?.direction ?? null,\n disallowSortRemoval: column.disallowSortRemoval === true,\n labels: {\n 'sort-asc': t('itemTable.sortAscending', 'Sort ascending'),\n 'sort-desc': t('itemTable.sortDescending', 'Sort descending'),\n 'clear-sort': t('itemTable.clearSort', 'Clear sort'),\n },\n };\n }\n\n function columnMenuActionHandler(\n column: CubeResolvedColumn<T>,\n closeAfter: boolean,\n ) {\n return (action: Key) => {\n const normalized = normalizeMenuAction(action);\n\n // The table's own keys are applied first, then the consumer hears about\n // them anyway — so a key can be both understood here and observed there.\n if (isColumnMenuSortKey(normalized)) {\n onColumnSortChange?.(\n column.key,\n COLUMN_MENU_SORT_DIRECTION[normalized],\n );\n }\n\n column.header?.onMenuAction?.(normalized);\n onColumnMenuAction?.(normalized, column.key);\n\n // `useContextMenu` leaves its popover open after an action; see\n // `menuActionHandler` in `TableView`.\n if (closeAfter) contextMenu.close();\n };\n }\n\n const openColumnContextMenu = useEvent(\n (\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n event: ReactMouseEvent | ReactKeyboardEvent,\n ) => {\n const items = resolveColumnMenu(column);\n\n if (items == null) return;\n\n event.preventDefault();\n // The Scroller listens for Shift+F10 too, for the row menu.\n event.stopPropagation();\n contextMenu.open(\n {\n ...columnMenuProps,\n ...column.header?.menuProps,\n children: processColumnMenuItems(\n items,\n columnMenuContext(column, sort),\n ),\n onAction: columnMenuActionHandler(column, true),\n },\n undefined,\n 'clientX' in event.nativeEvent\n ? (event.nativeEvent as MouseEvent)\n : undefined,\n );\n },\n );\n\n /**\n * Shift+F10 on the header cell: the `⋮` trigger's own popover when there is\n * a trigger, the context menu when `columnContextMenu` is `'context-only'`.\n */\n function openColumnMenuFromKeyboard(\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n event: ReactKeyboardEvent,\n ) {\n if (isContextOnly) {\n openColumnContextMenu(column, sort, event);\n\n return;\n }\n\n event.preventDefault();\n // The Scroller listens for Shift+F10 too, for the row menu.\n event.stopPropagation();\n setOpenMenuColumnKey(column.key);\n }\n\n /** The `⋮` trigger, or `null` when the menu is context-only or absent. */\n function renderColumnMenuTrigger(\n column: CubeResolvedColumn<T>,\n items: ReactNode | null,\n sort: ColumnSortState,\n ) {\n if (items == null || isContextOnly) return null;\n\n const header = column.header;\n\n return (\n <MenuTrigger\n isOpen={openMenuColumnKey === column.key}\n // `bottom end`: the trigger sits at the column's trailing edge, so a\n // start-aligned popover hangs off the table on the last column.\n placement=\"bottom end\"\n onOpenChange={(open) => setOpenMenuColumnKey(open ? column.key : null)}\n >\n <ItemAction\n // The grid is one tab stop; the trigger is reached from the header\n // cell with Shift+F10, matching the row menu.\n tabIndex={-1}\n icon={<MoreIcon />}\n aria-label={t('itemTable.columnMenu', 'Column menu')}\n {...columnMenuTriggerProps}\n {...header?.menuTriggerProps}\n />\n <Menu\n {...columnMenuProps}\n {...header?.menuProps}\n onAction={columnMenuActionHandler(column, false)}\n >\n {processColumnMenuItems(items, columnMenuContext(column, sort))}\n </Menu>\n </MenuTrigger>\n );\n }\n\n return {\n openMenuColumnKey,\n resolveColumnMenu,\n openColumnContextMenu,\n openColumnMenuFromKeyboard,\n renderColumnMenuTrigger,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useState } from "react";
|
|
5
5
|
import { useControlledState } from "@react-stately/utils";
|
|
6
|
-
|
|
7
6
|
//#region src/components/data/TableBase/use-column-order.ts
|
|
8
7
|
/**
|
|
9
8
|
* Reorders the source columns to match `order`.
|
|
@@ -137,7 +136,7 @@ function useColumnOrder(t0) {
|
|
|
137
136
|
function _temp(column) {
|
|
138
137
|
return column.key;
|
|
139
138
|
}
|
|
140
|
-
|
|
141
139
|
//#endregion
|
|
142
|
-
export { getDraggableColumnKeys, isColumnDraggable, useColumnOrder };
|
|
140
|
+
export { applyColumnOrder, getDraggableColumnKeys, isColumnDraggable, projectReorder, useColumnOrder };
|
|
141
|
+
|
|
143
142
|
//# sourceMappingURL=use-column-order.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-column-order.js","names":["useControlledState","useState","useEvent","CubeResolvedColumn","CubeTableColumn","useTableStorage","applyColumnOrder","columns","T","order","length","present","Set","map","column","key","rank","Map","forEach","index","has","set","size","carried","sourceIndex","own","get","sort","a","b","entry","isColumnDraggable","Pick","isEnabled","isStructural","pin","isReorderable","getDraggableColumnKeys","filter","projectReorder","fullOrder","nextDraggable","draggable","next","cursor","slot","EMPTY_ORDER","UseColumnOrderOptions","columnOrder","defaultColumnOrder","onColumnOrderChange","storage","ReturnType","UseColumnOrderResult","reorder","useColumnOrder","t0","$","_c","t1","undefined","initial","storedOrder","setOrder","value","ordered","t2","_temp","t3","write","t4"],"sources":["../../../../src/components/data/TableBase/use-column-order.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { CubeResolvedColumn, CubeTableColumn } from './types';\nimport type { useTableStorage } from './use-table-storage';\n\n/**\n * Reorders the source columns to match `order`.\n *\n * Rank-based rather than filter-then-concat, because `order` is routinely\n * *stale*: it was persisted or lifted into page state before the current\n * `columns` array existed. A column missing from it inherits the rank of the\n * nearest preceding known column plus a half step, so it lands immediately after\n * the neighbour it had in the source array instead of being swept to the end. A\n * new leading column keeps its lead.\n *\n * Applied to the SOURCE array, before `useTableColumns` — so hidden-column\n * filtering, structural injection, pinned hoisting and `aria-colindex` all still\n * happen downstream, and `columnOrder` can never fight `pin`.\n */\nexport function applyColumnOrder<T>(\n columns: CubeTableColumn<T>[],\n order?: readonly string[],\n): CubeTableColumn<T>[] {\n if (!order?.length) return columns;\n\n const present = new Set(columns.map((column) => column.key));\n const rank = new Map<string, number>();\n\n order.forEach((key, index) => {\n // A key for a column that no longer exists is ignored rather than treated as\n // a gap, and a duplicate keeps its first position.\n if (present.has(key) && !rank.has(key)) rank.set(key, index);\n });\n\n if (!rank.size) return columns;\n\n let carried = -1;\n\n return columns\n .map((column, sourceIndex) => {\n const own = rank.get(column.key);\n\n if (own != null) carried = own;\n\n return { column, sourceIndex, rank: own ?? carried + 0.5 };\n })\n .sort((a, b) => a.rank - b.rank || a.sourceIndex - b.sourceIndex)\n .map((entry) => entry.column);\n}\n\n/**\n * Whether a column can be picked up and moved.\n *\n * The single shared predicate: `DataTable` builds the draggable key list from\n * it and `TableView` decides which `<th>` is a drag source from it, so the two\n * cannot drift. A renderer disagreeing with the state behind it is exactly how\n * the drop indicator that never matched its selector happened.\n *\n * Pinned columns are excluded, for three reasons that all point the same way: a\n * pinned `<th>` is `position: sticky`, so under horizontal scroll its rect sits\n * on top of columns it is nowhere near and React Aria's drop-target binary\n * search goes wrong; `use-table-columns` hoists pinned columns to the edges\n * regardless of source order, so a cross-boundary drop would be undone\n * immediately; and `pin` is already the ordering authority there. What that buys\n * is a draggable set that is one contiguous, non-sticky run — every permutation\n * of which stays monotonic, which is what the delegate needs.\n */\nexport function isColumnDraggable<T>(\n column: Pick<CubeResolvedColumn<T>, 'isStructural' | 'pin' | 'isReorderable'>,\n isEnabled: boolean,\n): boolean {\n return (\n isEnabled &&\n !column.isStructural &&\n column.pin == null &&\n (column.isReorderable ?? true)\n );\n}\n\nexport function getDraggableColumnKeys<T>(\n columns: readonly CubeResolvedColumn<T>[],\n isEnabled: boolean,\n): string[] {\n return columns\n .filter((column) => isColumnDraggable(column, isEnabled))\n .map((column) => column.key);\n}\n\n/**\n * Folds a permutation of the draggable subset back into the full order.\n *\n * Only the slots the draggable keys already occupy are rewritten, so a hidden\n * column, a pinned one, or one that opted out keeps its absolute index and\n * cannot be displaced by a drag it took no part in.\n *\n * The visible consequence, worth knowing: a hidden column between two draggable\n * ones keeps its slot rather than following a neighbour, so it may come back\n * between different columns than it left. Predictable beats clever.\n */\nexport function projectReorder(\n fullOrder: readonly string[],\n nextDraggable: readonly string[],\n): string[] {\n const draggable = new Set(nextDraggable);\n const next = [...fullOrder];\n let cursor = 0;\n\n for (let slot = 0; slot < next.length; slot++) {\n if (draggable.has(next[slot])) next[slot] = nextDraggable[cursor++];\n }\n\n return next;\n}\n\nconst EMPTY_ORDER: string[] = [];\n\nexport interface UseColumnOrderOptions<T> {\n columns: CubeTableColumn<T>[];\n columnOrder?: string[];\n defaultColumnOrder?: string[];\n onColumnOrderChange?: (order: string[]) => void;\n storage: ReturnType<typeof useTableStorage>;\n}\n\nexport interface UseColumnOrderResult<T> {\n /** `columns`, reordered. Feed this to `useTableColumns`. */\n columns: CubeTableColumn<T>[];\n /** The full key list in its current order, including hidden and pinned keys. */\n order: string[];\n /** Takes the reordered DRAGGABLE keys and commits the full order. */\n reorder: (nextDraggable: string[]) => void;\n}\n\nexport function useColumnOrder<T>({\n columns,\n columnOrder,\n defaultColumnOrder,\n onColumnOrderChange,\n storage,\n}: UseColumnOrderOptions<T>): UseColumnOrderResult<T> {\n // Seeded once, like `ownColumnWidths`: a controlled `columnOrder` belongs to\n // the page, so restoring over it would fight the page's own source of truth.\n const [storedOrder] = useState(() =>\n columnOrder === undefined && storage.has('columnOrder')\n ? storage.initial.columnOrder\n : undefined,\n );\n\n // An empty array means \"no order\", which `applyColumnOrder` treats as a\n // no-op — same shape `useTableSorts` uses for its own empty default, and it\n // keeps `useControlledState` off the `undefined` overload.\n const [order, setOrder] = useControlledState<string[]>(\n columnOrder as string[],\n defaultColumnOrder ?? storedOrder ?? EMPTY_ORDER,\n onColumnOrderChange as (value: string[]) => void,\n );\n\n const ordered = applyColumnOrder(columns, order);\n\n // Always the FULL source key list, in current order — so a key never drops out\n // of persisted state just because its column happened to be hidden.\n const fullOrder = ordered.map((column) => column.key);\n\n const reorder = useEvent((nextDraggable: string[]) => {\n const next = projectReorder(fullOrder, nextDraggable);\n\n setOrder(next);\n\n // Only what the table OWNS is persisted — a controlled order belongs to the\n // page, and storing it would fight the page on the next mount. Same rule\n // `handleColumnResizeEnd` follows for widths.\n if (columnOrder === undefined) storage.write({ columnOrder: next });\n });\n\n return { columns: ordered, order: fullOrder, reorder };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-column-order.js","names":["useControlledState","useState","useEvent","CubeResolvedColumn","CubeTableColumn","useTableStorage","applyColumnOrder","columns","T","order","length","present","Set","map","column","key","rank","Map","forEach","index","has","set","size","carried","sourceIndex","own","get","sort","a","b","entry","isColumnDraggable","Pick","isEnabled","isStructural","pin","isReorderable","getDraggableColumnKeys","filter","projectReorder","fullOrder","nextDraggable","draggable","next","cursor","slot","EMPTY_ORDER","UseColumnOrderOptions","columnOrder","defaultColumnOrder","onColumnOrderChange","storage","ReturnType","UseColumnOrderResult","reorder","useColumnOrder","t0","$","_c","t1","undefined","initial","storedOrder","setOrder","value","ordered","t2","_temp","t3","write","t4","_c"],"sources":["../../../../src/components/data/TableBase/use-column-order.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { CubeResolvedColumn, CubeTableColumn } from './types';\nimport type { useTableStorage } from './use-table-storage';\n\n/**\n * Reorders the source columns to match `order`.\n *\n * Rank-based rather than filter-then-concat, because `order` is routinely\n * *stale*: it was persisted or lifted into page state before the current\n * `columns` array existed. A column missing from it inherits the rank of the\n * nearest preceding known column plus a half step, so it lands immediately after\n * the neighbour it had in the source array instead of being swept to the end. A\n * new leading column keeps its lead.\n *\n * Applied to the SOURCE array, before `useTableColumns` — so hidden-column\n * filtering, structural injection, pinned hoisting and `aria-colindex` all still\n * happen downstream, and `columnOrder` can never fight `pin`.\n */\nexport function applyColumnOrder<T>(\n columns: CubeTableColumn<T>[],\n order?: readonly string[],\n): CubeTableColumn<T>[] {\n if (!order?.length) return columns;\n\n const present = new Set(columns.map((column) => column.key));\n const rank = new Map<string, number>();\n\n order.forEach((key, index) => {\n // A key for a column that no longer exists is ignored rather than treated as\n // a gap, and a duplicate keeps its first position.\n if (present.has(key) && !rank.has(key)) rank.set(key, index);\n });\n\n if (!rank.size) return columns;\n\n let carried = -1;\n\n return columns\n .map((column, sourceIndex) => {\n const own = rank.get(column.key);\n\n if (own != null) carried = own;\n\n return { column, sourceIndex, rank: own ?? carried + 0.5 };\n })\n .sort((a, b) => a.rank - b.rank || a.sourceIndex - b.sourceIndex)\n .map((entry) => entry.column);\n}\n\n/**\n * Whether a column can be picked up and moved.\n *\n * The single shared predicate: `DataTable` builds the draggable key list from\n * it and `TableView` decides which `<th>` is a drag source from it, so the two\n * cannot drift. A renderer disagreeing with the state behind it is exactly how\n * the drop indicator that never matched its selector happened.\n *\n * Pinned columns are excluded, for three reasons that all point the same way: a\n * pinned `<th>` is `position: sticky`, so under horizontal scroll its rect sits\n * on top of columns it is nowhere near and React Aria's drop-target binary\n * search goes wrong; `use-table-columns` hoists pinned columns to the edges\n * regardless of source order, so a cross-boundary drop would be undone\n * immediately; and `pin` is already the ordering authority there. What that buys\n * is a draggable set that is one contiguous, non-sticky run — every permutation\n * of which stays monotonic, which is what the delegate needs.\n */\nexport function isColumnDraggable<T>(\n column: Pick<CubeResolvedColumn<T>, 'isStructural' | 'pin' | 'isReorderable'>,\n isEnabled: boolean,\n): boolean {\n return (\n isEnabled &&\n !column.isStructural &&\n column.pin == null &&\n (column.isReorderable ?? true)\n );\n}\n\nexport function getDraggableColumnKeys<T>(\n columns: readonly CubeResolvedColumn<T>[],\n isEnabled: boolean,\n): string[] {\n return columns\n .filter((column) => isColumnDraggable(column, isEnabled))\n .map((column) => column.key);\n}\n\n/**\n * Folds a permutation of the draggable subset back into the full order.\n *\n * Only the slots the draggable keys already occupy are rewritten, so a hidden\n * column, a pinned one, or one that opted out keeps its absolute index and\n * cannot be displaced by a drag it took no part in.\n *\n * The visible consequence, worth knowing: a hidden column between two draggable\n * ones keeps its slot rather than following a neighbour, so it may come back\n * between different columns than it left. Predictable beats clever.\n */\nexport function projectReorder(\n fullOrder: readonly string[],\n nextDraggable: readonly string[],\n): string[] {\n const draggable = new Set(nextDraggable);\n const next = [...fullOrder];\n let cursor = 0;\n\n for (let slot = 0; slot < next.length; slot++) {\n if (draggable.has(next[slot])) next[slot] = nextDraggable[cursor++];\n }\n\n return next;\n}\n\nconst EMPTY_ORDER: string[] = [];\n\nexport interface UseColumnOrderOptions<T> {\n columns: CubeTableColumn<T>[];\n columnOrder?: string[];\n defaultColumnOrder?: string[];\n onColumnOrderChange?: (order: string[]) => void;\n storage: ReturnType<typeof useTableStorage>;\n}\n\nexport interface UseColumnOrderResult<T> {\n /** `columns`, reordered. Feed this to `useTableColumns`. */\n columns: CubeTableColumn<T>[];\n /** The full key list in its current order, including hidden and pinned keys. */\n order: string[];\n /** Takes the reordered DRAGGABLE keys and commits the full order. */\n reorder: (nextDraggable: string[]) => void;\n}\n\nexport function useColumnOrder<T>({\n columns,\n columnOrder,\n defaultColumnOrder,\n onColumnOrderChange,\n storage,\n}: UseColumnOrderOptions<T>): UseColumnOrderResult<T> {\n // Seeded once, like `ownColumnWidths`: a controlled `columnOrder` belongs to\n // the page, so restoring over it would fight the page's own source of truth.\n const [storedOrder] = useState(() =>\n columnOrder === undefined && storage.has('columnOrder')\n ? storage.initial.columnOrder\n : undefined,\n );\n\n // An empty array means \"no order\", which `applyColumnOrder` treats as a\n // no-op — same shape `useTableSorts` uses for its own empty default, and it\n // keeps `useControlledState` off the `undefined` overload.\n const [order, setOrder] = useControlledState<string[]>(\n columnOrder as string[],\n defaultColumnOrder ?? storedOrder ?? EMPTY_ORDER,\n onColumnOrderChange as (value: string[]) => void,\n );\n\n const ordered = applyColumnOrder(columns, order);\n\n // Always the FULL source key list, in current order — so a key never drops out\n // of persisted state just because its column happened to be hidden.\n const fullOrder = ordered.map((column) => column.key);\n\n const reorder = useEvent((nextDraggable: string[]) => {\n const next = projectReorder(fullOrder, nextDraggable);\n\n setOrder(next);\n\n // Only what the table OWNS is persisted — a controlled order belongs to the\n // page, and storing it would fight the page on the next mount. Same rule\n // `handleColumnResizeEnd` follows for widths.\n if (columnOrder === undefined) storage.write({ columnOrder: next });\n });\n\n return { columns: ordered, order: fullOrder, reorder };\n}\n"],"mappings":"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"}
|