@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":"TextInputBase.js","names":["createFocusableRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","COLOR_STYLES","ColorStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","FocusEventHandler","forwardRef","MouseEvent","ReactElement","ReactNode","RefObject","useImperativeHandle","useMemo","useRef","AriaNumberFieldProps","AriaTextFieldProps","useHover","FieldBaseProps","TextFieldKeyboardProps","mergeProps","useCombinedRefs","useFocus","extractStyles","getValidationMods","hasValidationIndicator","ValidationIndicator","wrapWithField","Props","ADD_STYLES","$","display","placeContent","placeItems","gridRows","flow","gap","cursor","opacity","disabled","INPUT_WRAPPER_STYLES","position","gridColumns","prefix","suffix","fill","border","valid","invalid","focused","preset","radius","color","zIndex","boxSizing","transition","backgroundClip","height","multiline","$size","Prefix","Suffix","State","InputIcon","width","fontSize","ValidationIcon","InputWrapperElement","qa","styles","PROP_STYLES","DEFAULT_INPUT_STYLES","recipe","placeSelf","padding","textAlign","flexGrow","margin","resize","userSelect","Placeholder","InputElement","INTERACTIVE_ELEMENTS","focusInputOnBoxPress","event","HTMLElement","input","HTMLInputElement","HTMLTextAreaElement","button","defaultPrevented","box","currentTarget","target","Element","contains","interactive","closest","preventDefault","focus","CubeTextInputBaseProps","Omit","validate","onFocus","onBlur","icon","suffixPosition","actions","multiLine","autoFocus","inputProps","wrapperProps","inputRef","wrapperRef","HTMLDivElement","isLoading","loadingIndicator","inputStyles","rows","size","autoComplete","autocomplete","CubeBufferedValueProps","isBuffered","_TextInputBase","props","ref","mods","isInvalid","isValid","isDisabled","value","maxLength","minLength","form","otherProps","type","ElementType","isFocused","focusProps","hoverProps","isHovered","domRef","select","current","getInputElement","showValidationIndicator","placeholder","modifiers","loadable","hovered","resolvedAutoComplete","resolvedAutoFocus","hasTextSecurity","textSecurityStyles","length","fontFamily","textField","onMouseDown","undefined","TextInputBase"],"sources":["../../../../src/components/fields/TextInput/TextInputBase.tsx"],"sourcesContent":["import { createFocusableRef } from '@react-spectrum/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n FocusEventHandler,\n forwardRef,\n MouseEvent,\n ReactElement,\n ReactNode,\n RefObject,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\nimport { AriaNumberFieldProps, AriaTextFieldProps, useHover } from 'react-aria';\n\nimport { FieldBaseProps, TextFieldKeyboardProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport {\n getValidationMods,\n hasValidationIndicator,\n ValidationIndicator,\n wrapWithField,\n} from '../../form';\n\nimport type { Props } from '../../../props';\n\nconst ADD_STYLES = {\n $: '>',\n display: 'grid',\n placeContent: 'stretch',\n placeItems: 'center',\n gridRows: '1sf',\n flow: 'column',\n gap: 0,\n cursor: 'inherit',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n};\n\nexport const INPUT_WRAPPER_STYLES: Styles = {\n display: 'grid',\n flow: 'row',\n position: 'relative',\n gridColumns: {\n '': '1sf',\n prefix: 'max-content 1sf',\n suffix: '1sf max-content',\n 'prefix & suffix': 'max-content 1sf max-content',\n },\n gridRows: '1sf',\n placeItems: 'stretch',\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n },\n border: {\n '': true,\n valid: '#success-text.50',\n invalid: '#danger-text.50',\n focused: '#primary-text',\n 'valid & focused': '#success-text',\n 'invalid & focused': '#danger-text',\n disabled: true,\n },\n preset: 't3',\n radius: true,\n cursor: 'text',\n color: {\n '': '#dark-02',\n focused: '#dark-02',\n invalid: '#danger-text',\n disabled: '#dark.30',\n },\n zIndex: {\n '': 'initial',\n focused: 1,\n },\n boxSizing: 'border-box',\n transition: 'theme',\n backgroundClip: 'content-box',\n height: {\n '': '$size $size',\n multiline: 'min $size',\n },\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n\n Prefix: ADD_STYLES,\n\n Suffix: ADD_STYLES,\n\n State: {\n $: '> Suffix >',\n display: 'flex',\n },\n\n InputIcon: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $size-sm',\n color: 'inherit',\n fontSize: '$icon-size',\n },\n\n ValidationIcon: {\n $: '> Suffix > State >',\n display: 'grid',\n placeItems: 'center',\n width: {\n '': 'min $size-sm',\n suffix: 'min $size-xs',\n },\n fontSize: '$icon-size',\n },\n};\n\nconst InputWrapperElement = tasty({\n qa: 'InputWrapper',\n styles: INPUT_WRAPPER_STYLES,\n});\n\nconst PROP_STYLES = [\n ...BASE_STYLES,\n ...OUTER_STYLES,\n ...BLOCK_STYLES,\n ...COLOR_STYLES,\n];\n\nexport const DEFAULT_INPUT_STYLES: Styles = {\n recipe: 'reset input / input-autofill',\n placeSelf: 'stretch',\n width: 'initial 100% 100%',\n transition: 'theme',\n radius: true,\n padding: '$vertical-padding $right-padding $vertical-padding $left-padding',\n textAlign: 'left',\n preset: 't3',\n flexGrow: 1,\n margin: {\n '': 0,\n multiline: '((($size-md - 1lh) / 2) - 1bw) 0',\n 'multiline & size=small': '((($size-sm - 1lh) / 2) - 1bw) 0',\n 'multiline & size=large': '((($size-lg - 1lh) / 2) - 1bw) 0',\n },\n resize: 'none',\n userSelect: 'auto',\n\n Placeholder: {\n $: '&::placeholder',\n recipe: 'input-placeholder',\n },\n '&::-webkit-search-cancel-button': {\n recipe: 'input-search-cancel-button',\n },\n\n '$vertical-padding': 0,\n '$left-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n prefix: '0',\n },\n '$right-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n suffix: '0',\n },\n};\n\nconst InputElement = tasty({ qa: 'Input', styles: DEFAULT_INPUT_STYLES });\n\nconst INTERACTIVE_ELEMENTS =\n 'a[href], button, input, select, textarea, [tabindex], [contenteditable]';\n\n/**\n * A press inside the field box but outside the input — the prefix or suffix area, an icon, a\n * textarea's margins — focuses the input, as a press anywhere in a native field does. Presses on\n * the input itself and on interactive children, such as a clear button or the steppers, stay\n * theirs.\n */\nfunction focusInputOnBoxPress(\n event: MouseEvent<HTMLElement>,\n input: HTMLInputElement | HTMLTextAreaElement | null | undefined,\n) {\n if (event.button !== 0 || event.defaultPrevented) return;\n if (!input || input.disabled) return;\n\n const box = event.currentTarget;\n const target = event.target as Element;\n\n // React bubbles presses from a portal (a popover opened from a field action)\n // through the box; those belong to the portal.\n if (!box.contains(target)) return;\n\n const interactive = target.closest(INTERACTIVE_ELEMENTS);\n\n if (interactive && box.contains(interactive)) return;\n\n // The default action would move focus to the press target first, blurring the input.\n event.preventDefault();\n input.focus();\n}\n\nexport interface CubeTextInputBaseProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n BaseStyleProps,\n ColorStyleProps,\n Omit<\n AriaTextFieldProps<HTMLInputElement | HTMLTextAreaElement>,\n | 'validate'\n | 'form'\n | 'name'\n | 'errorMessage'\n | 'onKeyDown'\n | 'onKeyUp'\n | 'onFocus'\n | 'onBlur'\n >,\n TextFieldKeyboardProps,\n FieldBaseProps {\n validate?: AriaTextFieldProps['validate'] | AriaNumberFieldProps['validate'];\n onFocus?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n onBlur?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n /** Left input icon */\n icon?: ReactElement | null;\n /** Input decoration before the main input */\n prefix?: ReactNode;\n /** Input decoration after the main input */\n suffix?: ReactNode;\n /** Suffix position goes before or after the validation and loading statuses */\n suffixPosition?: 'before' | 'after';\n /**\n * Controls placed last in the suffix, after the validation and loading\n * statuses and after `suffix` whatever its position, such as a popover\n * trigger.\n */\n actions?: ReactNode;\n /** Whether the input is multiline */\n multiLine?: boolean;\n /** Whether the input should have autofocus */\n autoFocus?: boolean;\n /**\n * Direct input props. The explicit props above (`isDisabled`, `maxLength`, `minLength`,\n * `autoFocus`, `rows`, `autoComplete`) win over the same attributes here when they are set; an\n * unset one leaves the value given here in place.\n */\n inputProps?: Props;\n /** Direct input wrapper props */\n wrapperProps?: Props;\n /** The input ref */\n inputRef?: RefObject<HTMLInputElement | HTMLTextAreaElement | null>;\n /** The wrapper ref */\n wrapperRef?: RefObject<HTMLDivElement | null>;\n /** Whether the input has the loading status */\n isLoading?: boolean;\n /** Rendered in place of the default loading icon while `isLoading` is set */\n loadingIndicator?: ReactNode;\n /** Style map for the input */\n inputStyles?: Styles;\n /** The number of rows for the input. Only applies to textarea. */\n rows?: number;\n /** The resize CSS property sets whether an element is resizable, and if so, in which directions. */\n resize?: Styles['resize'];\n /** The size of the input */\n size?: 'small' | 'medium' | 'large' | (string & {});\n /**\n * What kind of autofill the browser may offer for the input, as the HTML `autocomplete` token\n * (`email`, `current-password`, `off`, …). See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete).\n */\n autoComplete?: string;\n /**\n * @deprecated Use `autoComplete` instead. Kept as an alias so existing callers keep working;\n * `autoComplete` wins when both are set.\n */\n autocomplete?: string;\n}\n\n/**\n * Mixed into the fields that actually buffer their value — `TextInput`, `TextArea`,\n * `PasswordInput`, `SearchInput` — rather than declared on `CubeTextInputBaseProps`. Every field\n * built on that base would otherwise inherit the prop, including `NumberInput` and\n * `CommandTextArea`, which keep their own text and ignore it: a public API that accepts a flag and\n * does nothing with it.\n */\nexport interface CubeBufferedValueProps {\n /**\n * Whether the typed text is held locally until the controlled `value` catches up. On by default,\n * which is what keeps the caret in place when the value round-trips through a store that\n * re-renders a pass late. Set to `false` for a caller that must see the value snap back to its\n * own `value` prop the instant it declines a keystroke. See `useBufferedValue`.\n */\n isBuffered?: boolean;\n}\n\n/**\n * The presentational base for text-like inputs. It renders the input chrome and the field wrapper, but\n * never wires form state — that is the job of the component rendering it (`TextInput`, `TextArea`,\n * `PasswordInput`, `NumberInput`, `SearchInput`, `CommandTextArea`).\n */\nfunction _TextInputBase(props: CubeTextInputBaseProps, ref) {\n let {\n qa,\n mods,\n isInvalid,\n isValid,\n prefix,\n isDisabled,\n multiLine,\n autoFocus,\n inputProps,\n wrapperProps,\n inputRef,\n isLoading,\n loadingIndicator,\n value,\n inputStyles = {},\n suffix,\n suffixPosition = 'before',\n actions,\n wrapperRef,\n rows,\n size = 'medium',\n autoComplete,\n autocomplete,\n icon,\n maxLength,\n minLength,\n form,\n resize,\n ...otherProps\n } = props;\n\n let styles = extractStyles(otherProps, PROP_STYLES);\n let type = otherProps.type;\n\n if (resize) {\n inputStyles = { ...inputStyles, resize };\n }\n\n let ElementType: 'textarea' | 'input' = multiLine ? 'textarea' : 'input';\n let { isFocused, focusProps } = useFocus();\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let domRef = useRef(null);\n\n inputRef = useCombinedRefs(inputRef);\n\n // Expose imperative interface for ref\n useImperativeHandle(ref, () => ({\n ...createFocusableRef(domRef, inputRef),\n select() {\n if (inputRef?.current) {\n inputRef.current.select();\n }\n },\n getInputElement() {\n return inputRef?.current;\n },\n }));\n\n const showValidationIndicator = hasValidationIndicator({\n isInvalid,\n isValid,\n isLoading,\n });\n\n // Fix safari bug: https://github.com/philipwalton/flexbugs/issues/270\n if (!inputProps?.placeholder) {\n if (!inputProps) {\n inputProps = {};\n }\n\n inputProps.placeholder = ' ';\n }\n\n if (icon) {\n icon = <div data-element=\"InputIcon\">{icon}</div>;\n\n if (prefix) {\n prefix = (\n <>\n {icon}\n {prefix}\n </>\n );\n } else {\n prefix = icon;\n }\n }\n\n const modifiers = useMemo(\n () => ({\n ...getValidationMods({ isInvalid, isValid }),\n loadable: !!loadingIndicator,\n focused: isFocused,\n hovered: isHovered,\n disabled: isDisabled,\n multiline: multiLine,\n prefix: !!prefix,\n suffix: showValidationIndicator || !!suffix || !!actions,\n ...mods,\n }),\n [\n mods,\n isInvalid,\n isValid,\n showValidationIndicator,\n loadingIndicator,\n isFocused,\n isDisabled,\n isHovered,\n multiLine,\n prefix,\n suffix,\n actions,\n ],\n );\n\n // The explicit props win when they are set; an unset one falls back to the merged `inputProps`\n // instead of overwriting it with `undefined`. For `autoComplete` that keeps both a caller's\n // `inputProps={{ autoComplete }}` and `useNumberField`'s own `off`. `autocomplete` is the\n // deprecated alias.\n const resolvedAutoComplete =\n autoComplete ?? autocomplete ?? inputProps.autoComplete;\n const resolvedAutoFocus = autoFocus ?? inputProps.autoFocus;\n\n const hasTextSecurity = multiLine && type === 'password';\n const textSecurityStyles =\n hasTextSecurity && inputProps.value?.length\n ? {\n fontFamily: 'text-security-disc',\n }\n : {};\n\n const textField = (\n <InputWrapperElement\n ref={wrapperRef}\n mods={modifiers}\n data-size={size}\n styles={styles}\n {...mergeProps(wrapperProps, {\n onMouseDown: (event: MouseEvent<HTMLElement>) =>\n focusInputOnBoxPress(event, inputRef?.current),\n })}\n >\n {prefix ? <div data-element=\"Prefix\">{prefix}</div> : null}\n <InputElement\n qa={qa || 'Input'}\n as={ElementType}\n data-input-type=\"textinput\"\n {...mergeProps(inputProps, focusProps, hoverProps)}\n ref={inputRef}\n rows={multiLine ? rows ?? inputProps.rows ?? 1 : inputProps.rows}\n mods={modifiers}\n style={textSecurityStyles}\n data-autofocus={resolvedAutoFocus ? '' : undefined}\n autoFocus={resolvedAutoFocus}\n data-size={size}\n autoComplete={resolvedAutoComplete}\n styles={inputStyles}\n disabled={!!(isDisabled ?? inputProps.disabled)}\n maxLength={maxLength ?? inputProps.maxLength}\n minLength={minLength ?? inputProps.minLength}\n />\n {showValidationIndicator || suffix || actions ? (\n <div data-element=\"Suffix\">\n {suffixPosition === 'before' ? suffix : null}\n {isLoading && loadingIndicator ? (\n <div data-element=\"State\">{loadingIndicator}</div>\n ) : (\n <ValidationIndicator\n isInvalid={isInvalid}\n isValid={isValid}\n isLoading={isLoading}\n />\n )}\n {suffixPosition === 'after' ? suffix : null}\n {actions}\n </div>\n ) : null}\n </InputWrapperElement>\n );\n\n return wrapWithField(textField, domRef, props);\n}\n\nconst TextInputBase = forwardRef(_TextInputBase);\n\nexport { TextInputBase };\nexport type { AriaTextFieldProps };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextInputBase.js","names":["useObjectRef","createFocusableRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","COLOR_STYLES","ColorStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","FocusEventHandler","forwardRef","MouseEvent","ReactElement","ReactNode","RefObject","useImperativeHandle","useMemo","AriaNumberFieldProps","AriaTextFieldProps","useHover","FieldBaseProps","TextFieldKeyboardProps","mergeProps","useCombinedRefs","useFocus","extractStyles","getValidationMods","hasValidationIndicator","ValidationIndicator","wrapWithField","Props","ADD_STYLES","$","display","placeContent","placeItems","gridRows","flow","gap","cursor","opacity","disabled","INPUT_WRAPPER_STYLES","position","gridColumns","prefix","suffix","fill","border","valid","invalid","focused","preset","radius","color","zIndex","boxSizing","transition","backgroundClip","height","multiline","$size","Prefix","Suffix","State","InputIcon","width","fontSize","ValidationIcon","InputWrapperElement","qa","styles","PROP_STYLES","DEFAULT_INPUT_STYLES","recipe","placeSelf","padding","textAlign","flexGrow","margin","resize","userSelect","Placeholder","InputElement","INTERACTIVE_ELEMENTS","focusInputOnBoxPress","event","HTMLElement","input","HTMLInputElement","HTMLTextAreaElement","button","defaultPrevented","box","currentTarget","target","Element","contains","interactive","closest","preventDefault","focus","CubeTextInputBaseProps","Omit","validate","onFocus","onBlur","icon","suffixPosition","actions","multiLine","autoFocus","inputProps","wrapperProps","inputRef","wrapperRef","HTMLDivElement","isLoading","loadingIndicator","inputStyles","rows","size","autoComplete","autocomplete","CubeBufferedValueProps","isBuffered","_TextInputBase","props","ref","mods","isInvalid","isValid","isDisabled","value","maxLength","minLength","form","otherProps","type","ElementType","isFocused","focusProps","hoverProps","isHovered","domRef","select","current","getInputElement","showValidationIndicator","placeholder","modifiers","loadable","hovered","resolvedAutoComplete","resolvedAutoFocus","hasTextSecurity","textSecurityStyles","length","fontFamily","textField","onMouseDown","undefined","TextInputBase","useFocus","mergeProps"],"sources":["../../../../src/components/fields/TextInput/TextInputBase.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { createFocusableRef } from '@react-spectrum/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n COLOR_STYLES,\n ColorStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n FocusEventHandler,\n forwardRef,\n MouseEvent,\n ReactElement,\n ReactNode,\n RefObject,\n useImperativeHandle,\n useMemo,\n} from 'react';\nimport { AriaNumberFieldProps, AriaTextFieldProps, useHover } from 'react-aria';\n\nimport { FieldBaseProps, TextFieldKeyboardProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport {\n getValidationMods,\n hasValidationIndicator,\n ValidationIndicator,\n wrapWithField,\n} from '../../form';\n\nimport type { Props } from '../../../props';\n\nconst ADD_STYLES = {\n $: '>',\n display: 'grid',\n placeContent: 'stretch',\n placeItems: 'center',\n gridRows: '1sf',\n flow: 'column',\n gap: 0,\n cursor: 'inherit',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n};\n\nexport const INPUT_WRAPPER_STYLES: Styles = {\n display: 'grid',\n flow: 'row',\n position: 'relative',\n gridColumns: {\n '': '1sf',\n prefix: 'max-content 1sf',\n suffix: '1sf max-content',\n 'prefix & suffix': 'max-content 1sf max-content',\n },\n gridRows: '1sf',\n placeItems: 'stretch',\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n },\n border: {\n '': true,\n valid: '#success-text.50',\n invalid: '#danger-text.50',\n focused: '#primary-text',\n 'valid & focused': '#success-text',\n 'invalid & focused': '#danger-text',\n disabled: true,\n },\n preset: 't3',\n radius: true,\n cursor: 'text',\n color: {\n '': '#dark-02',\n focused: '#dark-02',\n invalid: '#danger-text',\n disabled: '#dark.30',\n },\n zIndex: {\n '': 'initial',\n focused: 1,\n },\n boxSizing: 'border-box',\n transition: 'theme',\n backgroundClip: 'content-box',\n height: {\n '': '$size $size',\n multiline: 'min $size',\n },\n\n $size: {\n '': '$size-md',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n },\n\n Prefix: ADD_STYLES,\n\n Suffix: ADD_STYLES,\n\n State: {\n $: '> Suffix >',\n display: 'flex',\n },\n\n InputIcon: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $size-sm',\n color: 'inherit',\n fontSize: '$icon-size',\n },\n\n ValidationIcon: {\n $: '> Suffix > State >',\n display: 'grid',\n placeItems: 'center',\n width: {\n '': 'min $size-sm',\n suffix: 'min $size-xs',\n },\n fontSize: '$icon-size',\n },\n};\n\nconst InputWrapperElement = tasty({\n qa: 'InputWrapper',\n styles: INPUT_WRAPPER_STYLES,\n});\n\nconst PROP_STYLES = [\n ...BASE_STYLES,\n ...OUTER_STYLES,\n ...BLOCK_STYLES,\n ...COLOR_STYLES,\n];\n\nexport const DEFAULT_INPUT_STYLES: Styles = {\n recipe: 'reset input / input-autofill',\n placeSelf: 'stretch',\n width: 'initial 100% 100%',\n transition: 'theme',\n radius: true,\n padding: '$vertical-padding $right-padding $vertical-padding $left-padding',\n textAlign: 'left',\n preset: 't3',\n flexGrow: 1,\n margin: {\n '': 0,\n multiline: '((($size-md - 1lh) / 2) - 1bw) 0',\n 'multiline & size=small': '((($size-sm - 1lh) / 2) - 1bw) 0',\n 'multiline & size=large': '((($size-lg - 1lh) / 2) - 1bw) 0',\n },\n resize: 'none',\n userSelect: 'auto',\n\n Placeholder: {\n $: '&::placeholder',\n recipe: 'input-placeholder',\n },\n '&::-webkit-search-cancel-button': {\n recipe: 'input-search-cancel-button',\n },\n\n '$vertical-padding': 0,\n '$left-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n prefix: '0',\n },\n '$right-padding': {\n '': '(1x - 1bw)',\n 'size=small': '(1x - 1bw)',\n 'size=large': '(1.25x - 1bw)',\n 'size=xlarge': '(1.5x - 1bw)',\n suffix: '0',\n },\n};\n\nconst InputElement = tasty({ qa: 'Input', styles: DEFAULT_INPUT_STYLES });\n\nconst INTERACTIVE_ELEMENTS =\n 'a[href], button, input, select, textarea, [tabindex], [contenteditable]';\n\n/**\n * A press inside the field box but outside the input — the prefix or suffix area, an icon, a\n * textarea's margins — focuses the input, as a press anywhere in a native field does. Presses on\n * the input itself and on interactive children, such as a clear button or the steppers, stay\n * theirs.\n */\nfunction focusInputOnBoxPress(\n event: MouseEvent<HTMLElement>,\n input: HTMLInputElement | HTMLTextAreaElement | null | undefined,\n) {\n if (event.button !== 0 || event.defaultPrevented) return;\n if (!input || input.disabled) return;\n\n const box = event.currentTarget;\n const target = event.target as Element;\n\n // React bubbles presses from a portal (a popover opened from a field action)\n // through the box; those belong to the portal.\n if (!box.contains(target)) return;\n\n const interactive = target.closest(INTERACTIVE_ELEMENTS);\n\n if (interactive && box.contains(interactive)) return;\n\n // The default action would move focus to the press target first, blurring the input.\n event.preventDefault();\n input.focus();\n}\n\nexport interface CubeTextInputBaseProps\n extends\n BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n BaseStyleProps,\n ColorStyleProps,\n Omit<\n AriaTextFieldProps<HTMLInputElement | HTMLTextAreaElement>,\n | 'validate'\n | 'form'\n | 'name'\n | 'errorMessage'\n | 'onKeyDown'\n | 'onKeyUp'\n | 'onFocus'\n | 'onBlur'\n >,\n TextFieldKeyboardProps,\n FieldBaseProps {\n validate?: AriaTextFieldProps['validate'] | AriaNumberFieldProps['validate'];\n onFocus?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n onBlur?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n /** Left input icon */\n icon?: ReactElement | null;\n /** Input decoration before the main input */\n prefix?: ReactNode;\n /** Input decoration after the main input */\n suffix?: ReactNode;\n /** Suffix position goes before or after the validation and loading statuses */\n suffixPosition?: 'before' | 'after';\n /**\n * Controls placed last in the suffix, after the validation and loading\n * statuses and after `suffix` whatever its position, such as a popover\n * trigger.\n */\n actions?: ReactNode;\n /** Whether the input is multiline */\n multiLine?: boolean;\n /** Whether the input should have autofocus */\n autoFocus?: boolean;\n /**\n * Direct input props. The explicit props above (`isDisabled`, `maxLength`, `minLength`,\n * `autoFocus`, `rows`, `autoComplete`) win over the same attributes here when they are set; an\n * unset one leaves the value given here in place.\n */\n inputProps?: Props;\n /** Direct input wrapper props */\n wrapperProps?: Props;\n /** The input ref */\n inputRef?: RefObject<HTMLInputElement | HTMLTextAreaElement | null>;\n /** The wrapper ref */\n wrapperRef?: RefObject<HTMLDivElement | null>;\n /** Whether the input has the loading status */\n isLoading?: boolean;\n /** Rendered in place of the default loading icon while `isLoading` is set */\n loadingIndicator?: ReactNode;\n /** Style map for the input */\n inputStyles?: Styles;\n /** The number of rows for the input. Only applies to textarea. */\n rows?: number;\n /** The resize CSS property sets whether an element is resizable, and if so, in which directions. */\n resize?: Styles['resize'];\n /** The size of the input */\n size?: 'small' | 'medium' | 'large' | (string & {});\n /**\n * What kind of autofill the browser may offer for the input, as the HTML `autocomplete` token\n * (`email`, `current-password`, `off`, …). See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete).\n */\n autoComplete?: string;\n /**\n * @deprecated Use `autoComplete` instead. Kept as an alias so existing callers keep working;\n * `autoComplete` wins when both are set.\n */\n autocomplete?: string;\n}\n\n/**\n * Mixed into the fields that actually buffer their value — `TextInput`, `TextArea`,\n * `PasswordInput`, `SearchInput` — rather than declared on `CubeTextInputBaseProps`. Every field\n * built on that base would otherwise inherit the prop, including `NumberInput` and\n * `CommandTextArea`, which keep their own text and ignore it: a public API that accepts a flag and\n * does nothing with it.\n */\nexport interface CubeBufferedValueProps {\n /**\n * Whether the typed text is held locally until the controlled `value` catches up. On by default,\n * which is what keeps the caret in place when the value round-trips through a store that\n * re-renders a pass late. Set to `false` for a caller that must see the value snap back to its\n * own `value` prop the instant it declines a keystroke. See `useBufferedValue`.\n */\n isBuffered?: boolean;\n}\n\n/**\n * The presentational base for text-like inputs. It renders the input chrome and the field wrapper, but\n * never wires form state — that is the job of the component rendering it (`TextInput`, `TextArea`,\n * `PasswordInput`, `NumberInput`, `SearchInput`, `CommandTextArea`).\n */\nfunction _TextInputBase(props: CubeTextInputBaseProps, ref) {\n let {\n qa,\n mods,\n isInvalid,\n isValid,\n prefix,\n isDisabled,\n multiLine,\n autoFocus,\n inputProps,\n wrapperProps,\n inputRef,\n isLoading,\n loadingIndicator,\n value,\n inputStyles = {},\n suffix,\n suffixPosition = 'before',\n actions,\n wrapperRef,\n rows,\n size = 'medium',\n autoComplete,\n autocomplete,\n icon,\n maxLength,\n minLength,\n form,\n resize,\n ...otherProps\n } = props;\n\n let styles = extractStyles(otherProps, PROP_STYLES);\n let type = otherProps.type;\n\n if (resize) {\n inputStyles = { ...inputStyles, resize };\n }\n\n let ElementType: 'textarea' | 'input' = multiLine ? 'textarea' : 'input';\n let { isFocused, focusProps } = useFocus();\n let { hoverProps, isHovered } = useHover({ isDisabled });\n // The input box, with or without the field chrome, so the field's ref never\n // resolves to `null`; `wrapperRef` reaches the same element.\n let domRef = useObjectRef(wrapperRef);\n\n inputRef = useCombinedRefs(inputRef);\n\n // Expose imperative interface for ref\n useImperativeHandle(ref, () => ({\n ...createFocusableRef(domRef, inputRef),\n select() {\n if (inputRef?.current) {\n inputRef.current.select();\n }\n },\n getInputElement() {\n return inputRef?.current;\n },\n }));\n\n const showValidationIndicator = hasValidationIndicator({\n isInvalid,\n isValid,\n isLoading,\n });\n\n // Fix safari bug: https://github.com/philipwalton/flexbugs/issues/270\n if (!inputProps?.placeholder) {\n if (!inputProps) {\n inputProps = {};\n }\n\n inputProps.placeholder = ' ';\n }\n\n if (icon) {\n icon = <div data-element=\"InputIcon\">{icon}</div>;\n\n if (prefix) {\n prefix = (\n <>\n {icon}\n {prefix}\n </>\n );\n } else {\n prefix = icon;\n }\n }\n\n const modifiers = useMemo(\n () => ({\n ...getValidationMods({ isInvalid, isValid }),\n loadable: !!loadingIndicator,\n focused: isFocused,\n hovered: isHovered,\n disabled: isDisabled,\n multiline: multiLine,\n prefix: !!prefix,\n suffix: showValidationIndicator || !!suffix || !!actions,\n ...mods,\n }),\n [\n mods,\n isInvalid,\n isValid,\n showValidationIndicator,\n loadingIndicator,\n isFocused,\n isDisabled,\n isHovered,\n multiLine,\n prefix,\n suffix,\n actions,\n ],\n );\n\n // The explicit props win when they are set; an unset one falls back to the merged `inputProps`\n // instead of overwriting it with `undefined`. For `autoComplete` that keeps both a caller's\n // `inputProps={{ autoComplete }}` and `useNumberField`'s own `off`. `autocomplete` is the\n // deprecated alias.\n const resolvedAutoComplete =\n autoComplete ?? autocomplete ?? inputProps.autoComplete;\n const resolvedAutoFocus = autoFocus ?? inputProps.autoFocus;\n\n const hasTextSecurity = multiLine && type === 'password';\n const textSecurityStyles =\n hasTextSecurity && inputProps.value?.length\n ? {\n fontFamily: 'text-security-disc',\n }\n : {};\n\n const textField = (\n <InputWrapperElement\n ref={domRef}\n mods={modifiers}\n data-size={size}\n styles={styles}\n {...mergeProps(wrapperProps, {\n onMouseDown: (event: MouseEvent<HTMLElement>) =>\n focusInputOnBoxPress(event, inputRef?.current),\n })}\n >\n {prefix ? <div data-element=\"Prefix\">{prefix}</div> : null}\n <InputElement\n qa={qa || 'Input'}\n as={ElementType}\n data-input-type=\"textinput\"\n {...mergeProps(inputProps, focusProps, hoverProps)}\n ref={inputRef}\n rows={multiLine ? (rows ?? inputProps.rows ?? 1) : inputProps.rows}\n mods={modifiers}\n style={textSecurityStyles}\n {...(resolvedAutoFocus ? { 'data-autofocus': '' } : undefined)}\n autoFocus={resolvedAutoFocus}\n data-size={size}\n autoComplete={resolvedAutoComplete}\n styles={inputStyles}\n disabled={!!(isDisabled ?? inputProps.disabled)}\n maxLength={maxLength ?? inputProps.maxLength}\n minLength={minLength ?? inputProps.minLength}\n />\n {showValidationIndicator || suffix || actions ? (\n <div data-element=\"Suffix\">\n {suffixPosition === 'before' ? suffix : null}\n {isLoading && loadingIndicator ? (\n <div data-element=\"State\">{loadingIndicator}</div>\n ) : (\n <ValidationIndicator\n isInvalid={isInvalid}\n isValid={isValid}\n isLoading={isLoading}\n />\n )}\n {suffixPosition === 'after' ? suffix : null}\n {actions}\n </div>\n ) : null}\n </InputWrapperElement>\n );\n\n return wrapWithField(textField, props);\n}\n\nconst TextInputBase = forwardRef(_TextInputBase);\n\nexport { TextInputBase };\nexport type { AriaTextFieldProps };\n"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { chain } from "../../../utils/react/chain.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useState } from "react";
|
|
5
|
-
|
|
6
5
|
//#region src/components/fields/TextInput/displayed-validation.ts
|
|
7
6
|
/**
|
|
8
7
|
* The validation the field chrome shows. React Aria runs `validate` from the first render and sets
|
|
@@ -44,7 +43,7 @@ function useDisplayedValidation() {
|
|
|
44
43
|
} else t1 = $[2];
|
|
45
44
|
return t1;
|
|
46
45
|
}
|
|
47
|
-
|
|
48
46
|
//#endregion
|
|
49
47
|
export { useDisplayedValidation };
|
|
48
|
+
|
|
50
49
|
//# sourceMappingURL=displayed-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayed-validation.js","names":["useState","chain","ValidationResult","ReactNode","ValidationTriggers","onChange","args","onBlur","useDisplayedValidation","$","_c","isTouched","setIsTouched","t0","Symbol","for","touch","t1","trackTouched","props","getDisplayedValidation","t2","validation","isInvalid","errorMessage","isShown","undefined","validationErrors","length","join"],"sources":["../../../../src/components/fields/TextInput/displayed-validation.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { chain } from '../../../utils/react/chain';\n\nimport type { ValidationResult } from '@react-types/shared';\nimport type { ReactNode } from 'react';\n\ninterface ValidationTriggers {\n onChange?: (...args: any[]) => void;\n onBlur?: (...args: any[]) => void;\n}\n\n/**\n * The validation the field chrome shows. React Aria runs `validate` from the first render and sets\n * `aria-invalid` from it, so an untouched field would open with the invalid style and the message\n * for its empty value. Both wait until the user has changed the value or left the field. An explicit\n * `isInvalid`, which a form's validation also sets, shows at once, and a caller's `errorMessage`\n * still wins over the errors `validate` returns.\n */\nexport function useDisplayedValidation() {\n let [isTouched, setIsTouched] = useState(false);\n let touch = () => setIsTouched(true);\n\n return {\n /** Wraps the React Aria hook's props so its first `onChange` or `onBlur` marks the field touched. */\n trackTouched<P extends ValidationTriggers>(props: P): P {\n return {\n ...props,\n onChange: chain(props.onChange, touch),\n onBlur: chain(props.onBlur, touch),\n };\n },\n getDisplayedValidation(\n {\n isInvalid,\n errorMessage,\n }: { isInvalid?: boolean; errorMessage?: ReactNode },\n validation: ValidationResult,\n ) {\n let isShown = isTouched || isInvalid !== undefined;\n\n return {\n isInvalid: isShown && validation.isInvalid,\n errorMessage:\n errorMessage === undefined &&\n isShown &&\n validation.validationErrors.length\n ? validation.validationErrors.join(' ')\n : errorMessage,\n };\n },\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"displayed-validation.js","names":["useState","chain","ValidationResult","ReactNode","ValidationTriggers","onChange","args","onBlur","useDisplayedValidation","$","_c","isTouched","setIsTouched","t0","Symbol","for","touch","t1","trackTouched","props","getDisplayedValidation","t2","validation","isInvalid","errorMessage","isShown","undefined","validationErrors","length","join","_c"],"sources":["../../../../src/components/fields/TextInput/displayed-validation.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { chain } from '../../../utils/react/chain';\n\nimport type { ValidationResult } from '@react-types/shared';\nimport type { ReactNode } from 'react';\n\ninterface ValidationTriggers {\n onChange?: (...args: any[]) => void;\n onBlur?: (...args: any[]) => void;\n}\n\n/**\n * The validation the field chrome shows. React Aria runs `validate` from the first render and sets\n * `aria-invalid` from it, so an untouched field would open with the invalid style and the message\n * for its empty value. Both wait until the user has changed the value or left the field. An explicit\n * `isInvalid`, which a form's validation also sets, shows at once, and a caller's `errorMessage`\n * still wins over the errors `validate` returns.\n */\nexport function useDisplayedValidation() {\n let [isTouched, setIsTouched] = useState(false);\n let touch = () => setIsTouched(true);\n\n return {\n /** Wraps the React Aria hook's props so its first `onChange` or `onBlur` marks the field touched. */\n trackTouched<P extends ValidationTriggers>(props: P): P {\n return {\n ...props,\n onChange: chain(props.onChange, touch),\n onBlur: chain(props.onBlur, touch),\n };\n },\n getDisplayedValidation(\n {\n isInvalid,\n errorMessage,\n }: { isInvalid?: boolean; errorMessage?: ReactNode },\n validation: ValidationResult,\n ) {\n let isShown = isTouched || isInvalid !== undefined;\n\n return {\n isInvalid: isShown && validation.isInvalid,\n errorMessage:\n errorMessage === undefined &&\n isShown &&\n validation.validationErrors.length\n ? validation.validationErrors.join(' ')\n : errorMessage,\n };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;AAmBA,SAAOQ,yBAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAA,CAAAC,WAAAC,gBAAgCZ,SAAS,KAAK;CAAE,IAAAa;CAAA,IAAAJ,EAAA,OAAAK,OAAAC,IAAA,2BAAA,GAAA;EACpCF,WAAMD,aAAa,IAAI;EAACH,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAApC,MAAAO,QAAYH;CAAyB,IAAAI;CAAA,IAAAR,EAAA,OAAAE,WAAA;EAE9BM,KAAA;GAAAC,aAAAC,OAAA;IAAA,OAGI;KAAA,GACFA;KAAKd,UACEJ,MAAMkB,MAAKd,UAAWW,KAAK;KAACT,QAC9BN,MAAMkB,MAAKZ,QAASS,KAAK;IACnC;GAAC;GAAAI,uBAAAC,IAAAC,YAAA;IAGD,MAAA,EAAAC,WAAAC,iBAAAH;IAMA,MAAAI,UAAcd,aAAaY,cAAcG,KAAAA;IAAU,OAE5C;KAAAH,WACME,WAAWH,WAAUC;KAAUC,cAExCA,iBAAiBE,KAAAA,KAAjBD,WAEAH,WAAUK,iBAAiBC,SACvBN,WAAUK,iBAAiBE,KAAM,GACtB,IAJfL;IAKJ;GAAC;EAEL;EAACf,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OA5BMQ;AA4BN"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
|
|
2
2
|
import { AriaTextFieldProps, CubeBufferedValueProps, CubeTextInputBaseProps, DEFAULT_INPUT_STYLES, INPUT_WRAPPER_STYLES, TextInputBase } from "./TextInputBase.js";
|
|
3
|
-
import { CubeTextInputProps, TextInput, useTextField } from "./TextInput.js";
|
|
3
|
+
import { CubeTextInputProps, TextInput, useTextField } from "./TextInput.js";
|
|
4
|
+
export { type AriaTextFieldProps, CubeBufferedValueProps, CubeTextInputBaseProps, CubeTextInputProps, DEFAULT_INPUT_STYLES, INPUT_WRAPPER_STYLES, TextInput, TextInputBase, useTextField };
|
|
@@ -1,7 +1,6 @@
|
|
|
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 { useEffect, useLayoutEffect, useRef } from "react";
|
|
4
|
-
|
|
5
4
|
//#region src/components/fields/TextInput/useAutoSizeTextArea.ts
|
|
6
5
|
/**
|
|
7
6
|
* Computed properties that decide where text wraps and how tall a line box is.
|
|
@@ -140,7 +139,7 @@ function useAutoSizeTextArea({ inputRef, autoSize, rows, maxRows, value }) {
|
|
|
140
139
|
}, []);
|
|
141
140
|
return adjustHeight;
|
|
142
141
|
}
|
|
143
|
-
|
|
144
142
|
//#endregion
|
|
145
143
|
export { useAutoSizeTextArea };
|
|
144
|
+
|
|
146
145
|
//# sourceMappingURL=useAutoSizeTextArea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoSizeTextArea.js","names":["RefObject","useEffect","useLayoutEffect","useRef","useEvent","MIRROR_TYPOGRAPHY_PROPS","const","FALLBACK_LINE_HEIGHT","createMirror","HTMLTextAreaElement","mirror","document","createElement","setAttribute","readOnly","rows","Object","assign","style","position","top","left","boxSizing","margin","padding","border","height","minHeight","maxHeight","overflow","resize","visibility","pointerEvents","getContentWidth","textarea","CSSStyleDeclaration","paddingLeft","parseFloat","paddingRight","borderLeft","borderLeftWidth","borderRight","borderRightWidth","scrollbar","Math","max","round","offsetWidth","clientWidth","getBoundingClientRect","width","getLineHeight","parsed","lineHeight","Number","isFinite","previousValue","value","measured","scrollHeight","AutoSizeTextAreaOptions","inputRef","autoSize","maxRows","useAutoSizeTextArea","mirrorRef","adjustHeight","current","body","appendChild","getComputedStyle","contentWidth","prop","contentRows","targetRows","min","paddingTop","paddingBottom","borderTop","borderTopWidth","borderBottom","borderBottomWidth","box","nextHeight","useEnvironmentalEffect","window","resizeObserver","ResizeObserver","observe","disconnect","remove"],"sources":["../../../../src/components/fields/TextInput/useAutoSizeTextArea.ts"],"sourcesContent":["import { RefObject, useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/index';\n\n/**\n * Computed properties that decide where text wraps and how tall a line box is.\n * Copied onto the mirror so it wraps exactly like the live textarea.\n */\nconst MIRROR_TYPOGRAPHY_PROPS = [\n 'direction',\n 'fontFamily',\n 'fontFeatureSettings',\n 'fontKerning',\n 'fontSize',\n 'fontStretch',\n 'fontStyle',\n 'fontVariant',\n 'fontVariationSettings',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n 'overflowWrap',\n 'tabSize',\n 'textIndent',\n 'textTransform',\n 'whiteSpace',\n 'wordBreak',\n 'wordSpacing',\n] as const;\n\nconst FALLBACK_LINE_HEIGHT = 20;\n\n/**\n * An off-screen textarea used to measure how tall the content wants to be.\n *\n * It carries no padding and no border, and its width is set to the live\n * element's *content* width, so `scrollHeight` is the content height and\n * nothing else. `height: 0` is what makes shrinking measurable: a textarea's\n * `scrollHeight` never drops below its own client height, so measuring the live\n * element can only ever report \"at least what it already is\".\n */\nfunction createMirror(): HTMLTextAreaElement {\n const mirror = document.createElement('textarea');\n\n mirror.setAttribute('aria-hidden', 'true');\n mirror.setAttribute('tabindex', '-1');\n mirror.readOnly = true;\n mirror.rows = 1;\n\n Object.assign(mirror.style, {\n position: 'absolute',\n top: '0',\n left: '-9999px',\n boxSizing: 'content-box',\n margin: '0',\n padding: '0',\n border: '0',\n height: '0',\n minHeight: '0',\n maxHeight: 'none',\n overflow: 'hidden',\n resize: 'none',\n visibility: 'hidden',\n pointerEvents: 'none',\n });\n\n return mirror;\n}\n\n/** The width the text actually has to wrap in, scrollbar and padding removed. */\nfunction getContentWidth(\n textarea: HTMLTextAreaElement,\n style: CSSStyleDeclaration,\n): number {\n const paddingLeft = parseFloat(style.paddingLeft) || 0;\n const paddingRight = parseFloat(style.paddingRight) || 0;\n const borderLeft = parseFloat(style.borderLeftWidth) || 0;\n const borderRight = parseFloat(style.borderRightWidth) || 0;\n // A classic (space-taking) scrollbar narrows the text; overlay scrollbars\n // report 0 here.\n const scrollbar = Math.max(\n 0,\n Math.round(\n textarea.offsetWidth - textarea.clientWidth - borderLeft - borderRight,\n ),\n );\n\n return Math.max(\n 0,\n textarea.getBoundingClientRect().width -\n borderLeft -\n borderRight -\n scrollbar -\n paddingLeft -\n paddingRight,\n );\n}\n\n/** `line-height: normal` has no px value to read, so measure one line instead. */\nfunction getLineHeight(\n style: CSSStyleDeclaration,\n mirror: HTMLTextAreaElement,\n): number {\n const parsed = parseFloat(style.lineHeight);\n\n if (Number.isFinite(parsed) && parsed > 0) return parsed;\n\n const previousValue = mirror.value;\n\n mirror.value = 'x';\n\n const measured = mirror.scrollHeight;\n\n mirror.value = previousValue;\n\n return measured > 0 ? measured : FALLBACK_LINE_HEIGHT;\n}\n\nexport interface AutoSizeTextAreaOptions {\n inputRef: RefObject<HTMLTextAreaElement | null>;\n /** Whether the textarea resizes to fit its content. */\n autoSize: boolean;\n /** Minimum number of visible rows. */\n rows: number;\n /** Maximum number of visible rows. */\n maxRows: number;\n /** The rendered value. A change re-measures, so buffered drafts count too. */\n value: unknown;\n}\n\n/**\n * Keeps an `autoSize` textarea's height in step with its content, and returns\n * the `adjustHeight` callback so a change handler can resize in the same tick\n * as the keystroke.\n *\n * The height is derived from an off-screen mirror rather than from the live\n * element. Measuring the live element — `height: auto`, read `scrollHeight`,\n * restore — re-lays out every ancestor mid-keystroke: in a chat-style column\n * the input box collapses to one row and the scroll viewport grows by the\n * difference, and the browser's scroll anchoring has to undo that. It does so\n * imperfectly, which is visible as the whole conversation bouncing by a pixel\n * on every keystroke (CUB-4042). Measuring off-screen touches no ancestor, so\n * there is nothing to undo.\n */\nexport function useAutoSizeTextArea({\n inputRef,\n autoSize,\n rows,\n maxRows,\n value,\n}: AutoSizeTextAreaOptions) {\n const mirrorRef = useRef<HTMLTextAreaElement | null>(null);\n\n const adjustHeight = useEvent(() => {\n const textarea = inputRef.current;\n\n if (!textarea || !autoSize) return;\n\n let mirror = mirrorRef.current;\n\n if (!mirror) {\n mirror = createMirror();\n mirrorRef.current = mirror;\n document.body.appendChild(mirror);\n }\n\n const style = getComputedStyle(textarea);\n const contentWidth = getContentWidth(textarea, style);\n\n // Nothing to wrap into: the field is display:none, or has not been laid out\n // yet. Measuring at zero width would wrap every character onto its own line\n // and pin the height at `maxRows`; keep the current height instead and wait\n // for the ResizeObserver to report a real one.\n if (contentWidth === 0) return;\n\n for (const prop of MIRROR_TYPOGRAPHY_PROPS) {\n mirror.style[prop] = style[prop];\n }\n\n mirror.style.width = `${contentWidth}px`;\n mirror.value = textarea.value;\n\n const lineHeight = getLineHeight(style, mirror);\n // A textarea lays every line out at `line-height`, so the content height is\n // a whole number of lines — `round` keeps a fractional line height (a zoomed\n // page, a percentage preset) from adding a phantom row.\n const contentRows = Math.max(\n 1,\n Math.round(mirror.scrollHeight / lineHeight),\n );\n const targetRows = Math.max(Math.min(contentRows, maxRows), rows);\n\n const paddingTop = parseFloat(style.paddingTop) || 0;\n const paddingBottom = parseFloat(style.paddingBottom) || 0;\n const borderTop = parseFloat(style.borderTopWidth) || 0;\n const borderBottom = parseFloat(style.borderBottomWidth) || 0;\n // `height` covers padding and border under `border-box` only.\n const box =\n style.boxSizing === 'border-box'\n ? paddingTop + paddingBottom + borderTop + borderBottom\n : 0;\n\n const nextHeight = `${targetRows * lineHeight + box}px`;\n\n // Writing an unchanged height would wake the ResizeObserver below for\n // nothing.\n if (textarea.style.height !== nextHeight) {\n textarea.style.height = nextHeight;\n }\n });\n\n const useEnvironmentalEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n // Re-measure on element resize as that can affect wrapping.\n useEnvironmentalEffect(() => {\n if (!autoSize || !inputRef.current) return;\n\n adjustHeight();\n\n const resizeObserver = new ResizeObserver(adjustHeight);\n\n resizeObserver.observe(inputRef.current);\n\n return () => resizeObserver.disconnect();\n }, [autoSize, inputRef.current]);\n\n // Adjust when the value changes programmatically (controlled mode).\n useEnvironmentalEffect(() => {\n if (autoSize && inputRef.current) {\n adjustHeight();\n }\n }, [value]);\n\n useEffect(\n () => () => {\n mirrorRef.current?.remove();\n mirrorRef.current = null;\n },\n [],\n );\n\n return adjustHeight;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAutoSizeTextArea.js","names":["RefObject","useEffect","useLayoutEffect","useRef","useEvent","MIRROR_TYPOGRAPHY_PROPS","const","FALLBACK_LINE_HEIGHT","createMirror","HTMLTextAreaElement","mirror","document","createElement","setAttribute","readOnly","rows","Object","assign","style","position","top","left","boxSizing","margin","padding","border","height","minHeight","maxHeight","overflow","resize","visibility","pointerEvents","getContentWidth","textarea","CSSStyleDeclaration","paddingLeft","parseFloat","paddingRight","borderLeft","borderLeftWidth","borderRight","borderRightWidth","scrollbar","Math","max","round","offsetWidth","clientWidth","getBoundingClientRect","width","getLineHeight","parsed","lineHeight","Number","isFinite","previousValue","value","measured","scrollHeight","AutoSizeTextAreaOptions","inputRef","autoSize","maxRows","useAutoSizeTextArea","mirrorRef","adjustHeight","current","body","appendChild","getComputedStyle","contentWidth","prop","contentRows","targetRows","min","paddingTop","paddingBottom","borderTop","borderTopWidth","borderBottom","borderBottomWidth","box","nextHeight","useEnvironmentalEffect","window","resizeObserver","ResizeObserver","observe","disconnect","remove"],"sources":["../../../../src/components/fields/TextInput/useAutoSizeTextArea.ts"],"sourcesContent":["import { RefObject, useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/index';\n\n/**\n * Computed properties that decide where text wraps and how tall a line box is.\n * Copied onto the mirror so it wraps exactly like the live textarea.\n */\nconst MIRROR_TYPOGRAPHY_PROPS = [\n 'direction',\n 'fontFamily',\n 'fontFeatureSettings',\n 'fontKerning',\n 'fontSize',\n 'fontStretch',\n 'fontStyle',\n 'fontVariant',\n 'fontVariationSettings',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n 'overflowWrap',\n 'tabSize',\n 'textIndent',\n 'textTransform',\n 'whiteSpace',\n 'wordBreak',\n 'wordSpacing',\n] as const;\n\nconst FALLBACK_LINE_HEIGHT = 20;\n\n/**\n * An off-screen textarea used to measure how tall the content wants to be.\n *\n * It carries no padding and no border, and its width is set to the live\n * element's *content* width, so `scrollHeight` is the content height and\n * nothing else. `height: 0` is what makes shrinking measurable: a textarea's\n * `scrollHeight` never drops below its own client height, so measuring the live\n * element can only ever report \"at least what it already is\".\n */\nfunction createMirror(): HTMLTextAreaElement {\n const mirror = document.createElement('textarea');\n\n mirror.setAttribute('aria-hidden', 'true');\n mirror.setAttribute('tabindex', '-1');\n mirror.readOnly = true;\n mirror.rows = 1;\n\n Object.assign(mirror.style, {\n position: 'absolute',\n top: '0',\n left: '-9999px',\n boxSizing: 'content-box',\n margin: '0',\n padding: '0',\n border: '0',\n height: '0',\n minHeight: '0',\n maxHeight: 'none',\n overflow: 'hidden',\n resize: 'none',\n visibility: 'hidden',\n pointerEvents: 'none',\n });\n\n return mirror;\n}\n\n/** The width the text actually has to wrap in, scrollbar and padding removed. */\nfunction getContentWidth(\n textarea: HTMLTextAreaElement,\n style: CSSStyleDeclaration,\n): number {\n const paddingLeft = parseFloat(style.paddingLeft) || 0;\n const paddingRight = parseFloat(style.paddingRight) || 0;\n const borderLeft = parseFloat(style.borderLeftWidth) || 0;\n const borderRight = parseFloat(style.borderRightWidth) || 0;\n // A classic (space-taking) scrollbar narrows the text; overlay scrollbars\n // report 0 here.\n const scrollbar = Math.max(\n 0,\n Math.round(\n textarea.offsetWidth - textarea.clientWidth - borderLeft - borderRight,\n ),\n );\n\n return Math.max(\n 0,\n textarea.getBoundingClientRect().width -\n borderLeft -\n borderRight -\n scrollbar -\n paddingLeft -\n paddingRight,\n );\n}\n\n/** `line-height: normal` has no px value to read, so measure one line instead. */\nfunction getLineHeight(\n style: CSSStyleDeclaration,\n mirror: HTMLTextAreaElement,\n): number {\n const parsed = parseFloat(style.lineHeight);\n\n if (Number.isFinite(parsed) && parsed > 0) return parsed;\n\n const previousValue = mirror.value;\n\n mirror.value = 'x';\n\n const measured = mirror.scrollHeight;\n\n mirror.value = previousValue;\n\n return measured > 0 ? measured : FALLBACK_LINE_HEIGHT;\n}\n\nexport interface AutoSizeTextAreaOptions {\n inputRef: RefObject<HTMLTextAreaElement | null>;\n /** Whether the textarea resizes to fit its content. */\n autoSize: boolean;\n /** Minimum number of visible rows. */\n rows: number;\n /** Maximum number of visible rows. */\n maxRows: number;\n /** The rendered value. A change re-measures, so buffered drafts count too. */\n value: unknown;\n}\n\n/**\n * Keeps an `autoSize` textarea's height in step with its content, and returns\n * the `adjustHeight` callback so a change handler can resize in the same tick\n * as the keystroke.\n *\n * The height is derived from an off-screen mirror rather than from the live\n * element. Measuring the live element — `height: auto`, read `scrollHeight`,\n * restore — re-lays out every ancestor mid-keystroke: in a chat-style column\n * the input box collapses to one row and the scroll viewport grows by the\n * difference, and the browser's scroll anchoring has to undo that. It does so\n * imperfectly, which is visible as the whole conversation bouncing by a pixel\n * on every keystroke (CUB-4042). Measuring off-screen touches no ancestor, so\n * there is nothing to undo.\n */\nexport function useAutoSizeTextArea({\n inputRef,\n autoSize,\n rows,\n maxRows,\n value,\n}: AutoSizeTextAreaOptions) {\n const mirrorRef = useRef<HTMLTextAreaElement | null>(null);\n\n const adjustHeight = useEvent(() => {\n const textarea = inputRef.current;\n\n if (!textarea || !autoSize) return;\n\n let mirror = mirrorRef.current;\n\n if (!mirror) {\n mirror = createMirror();\n mirrorRef.current = mirror;\n document.body.appendChild(mirror);\n }\n\n const style = getComputedStyle(textarea);\n const contentWidth = getContentWidth(textarea, style);\n\n // Nothing to wrap into: the field is display:none, or has not been laid out\n // yet. Measuring at zero width would wrap every character onto its own line\n // and pin the height at `maxRows`; keep the current height instead and wait\n // for the ResizeObserver to report a real one.\n if (contentWidth === 0) return;\n\n for (const prop of MIRROR_TYPOGRAPHY_PROPS) {\n mirror.style[prop] = style[prop];\n }\n\n mirror.style.width = `${contentWidth}px`;\n mirror.value = textarea.value;\n\n const lineHeight = getLineHeight(style, mirror);\n // A textarea lays every line out at `line-height`, so the content height is\n // a whole number of lines — `round` keeps a fractional line height (a zoomed\n // page, a percentage preset) from adding a phantom row.\n const contentRows = Math.max(\n 1,\n Math.round(mirror.scrollHeight / lineHeight),\n );\n const targetRows = Math.max(Math.min(contentRows, maxRows), rows);\n\n const paddingTop = parseFloat(style.paddingTop) || 0;\n const paddingBottom = parseFloat(style.paddingBottom) || 0;\n const borderTop = parseFloat(style.borderTopWidth) || 0;\n const borderBottom = parseFloat(style.borderBottomWidth) || 0;\n // `height` covers padding and border under `border-box` only.\n const box =\n style.boxSizing === 'border-box'\n ? paddingTop + paddingBottom + borderTop + borderBottom\n : 0;\n\n const nextHeight = `${targetRows * lineHeight + box}px`;\n\n // Writing an unchanged height would wake the ResizeObserver below for\n // nothing.\n if (textarea.style.height !== nextHeight) {\n textarea.style.height = nextHeight;\n }\n });\n\n const useEnvironmentalEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n // Re-measure on element resize as that can affect wrapping.\n useEnvironmentalEffect(() => {\n if (!autoSize || !inputRef.current) return;\n\n adjustHeight();\n\n const resizeObserver = new ResizeObserver(adjustHeight);\n\n resizeObserver.observe(inputRef.current);\n\n return () => resizeObserver.disconnect();\n }, [autoSize, inputRef.current]);\n\n // Adjust when the value changes programmatically (controlled mode).\n useEnvironmentalEffect(() => {\n if (autoSize && inputRef.current) {\n adjustHeight();\n }\n }, [value]);\n\n useEffect(\n () => () => {\n mirrorRef.current?.remove();\n mirrorRef.current = null;\n },\n [],\n );\n\n return adjustHeight;\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
import { FieldBaseProps } from "../../../shared/form.js";
|
|
3
3
|
import "../../../shared/index.js";
|
|
4
|
-
import * as react from "react";
|
|
5
4
|
import { ComponentType } from "react";
|
|
6
|
-
|
|
7
5
|
//#region src/components/fields/TextInputMapper/TextInputMapper.d.ts
|
|
8
|
-
interface CubeTextInputMapperProps extends FieldBaseProps<Record<string, string> | null | undefined> {
|
|
6
|
+
export interface CubeTextInputMapperProps extends FieldBaseProps<Record<string, string> | null | undefined> {
|
|
9
7
|
qa?: string;
|
|
10
8
|
actionLabel?: string;
|
|
11
9
|
isDisabled?: boolean;
|
|
@@ -18,7 +16,7 @@ interface CubeTextInputMapperProps extends FieldBaseProps<Record<string, string>
|
|
|
18
16
|
allowsCustomValue?: boolean;
|
|
19
17
|
size?: 'small' | 'medium' | 'large' | (string & {});
|
|
20
18
|
}
|
|
21
|
-
interface CubeTextInputMapperInputProps {
|
|
19
|
+
export interface CubeTextInputMapperInputProps {
|
|
22
20
|
id: number;
|
|
23
21
|
fieldType: 'key' | 'value';
|
|
24
22
|
inputType?: 'input' | 'combobox' | 'password' | 'textarea';
|
|
@@ -39,7 +37,7 @@ interface CubeTextInputMapperInputProps {
|
|
|
39
37
|
*/
|
|
40
38
|
autoComplete?: string;
|
|
41
39
|
}
|
|
42
|
-
declare const _TextInputMapper: react.ForwardRefExoticComponent<CubeTextInputMapperProps & react.RefAttributes<HTMLDivElement>>;
|
|
40
|
+
declare const _TextInputMapper: import("react").ForwardRefExoticComponent<CubeTextInputMapperProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
43
41
|
//#endregion
|
|
44
|
-
export {
|
|
42
|
+
export { _TextInputMapper as TextInputMapper };
|
|
45
43
|
//# sourceMappingURL=TextInputMapper.d.ts.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
3
|
-
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
5
4
|
import { Block } from "../../Block.js";
|
|
6
5
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -11,15 +10,14 @@ import { Flow } from "../../layout/Flow.js";
|
|
|
11
10
|
import { CloseIcon } from "../../../icons/CloseIcon.js";
|
|
12
11
|
import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
|
|
13
12
|
import { wrapWithField } from "../../form/wrapper.js";
|
|
14
|
-
import { _PasswordInput } from "../PasswordInput/PasswordInput.js";
|
|
15
|
-
import { _TextArea } from "../TextArea/TextArea.js";
|
|
13
|
+
import { PasswordInput as _PasswordInput } from "../PasswordInput/PasswordInput.js";
|
|
14
|
+
import { TextArea as _TextArea } from "../TextArea/TextArea.js";
|
|
16
15
|
import { TextInput } from "../TextInput/TextInput.js";
|
|
17
16
|
import { ComboBox } from "../ComboBox/ComboBox.js";
|
|
18
17
|
import { PlusIcon } from "../../../icons/PlusIcon.js";
|
|
19
18
|
import { c } from "react/compiler-runtime";
|
|
20
19
|
import { forwardRef, useEffect, useMemo, useRef, useState } from "react";
|
|
21
20
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
-
|
|
23
21
|
//#region src/components/fields/TextInputMapper/TextInputMapper.tsx
|
|
24
22
|
const PROPS_GRID_HACK = { styles: { InputArea: { gridColumn: {
|
|
25
23
|
"": "auto",
|
|
@@ -35,7 +33,6 @@ function removeDuplicates(mappings) {
|
|
|
35
33
|
}
|
|
36
34
|
function TextInputMapper(props, ref) {
|
|
37
35
|
const { t } = useI18n();
|
|
38
|
-
ref = useCombinedRefs(ref);
|
|
39
36
|
props = useFieldProps(props, {
|
|
40
37
|
defaultValidationTrigger: "onChange",
|
|
41
38
|
valuePropsMapper: ({ value, onChange }) => ({
|
|
@@ -166,7 +163,7 @@ function TextInputMapper(props, ref) {
|
|
|
166
163
|
isInvalid,
|
|
167
164
|
isValid
|
|
168
165
|
]);
|
|
169
|
-
|
|
166
|
+
const element = /* @__PURE__ */ jsxs(Flow, {
|
|
170
167
|
ref,
|
|
171
168
|
role: "group",
|
|
172
169
|
"aria-label": ariaLabel,
|
|
@@ -192,7 +189,8 @@ function TextInputMapper(props, ref) {
|
|
|
192
189
|
children: actionLabel ? actionLabel : t("textInputMapper.mapping", "Mapping")
|
|
193
190
|
})]
|
|
194
191
|
}) : null]
|
|
195
|
-
})
|
|
192
|
+
});
|
|
193
|
+
return wrapWithField(element, {
|
|
196
194
|
...props,
|
|
197
195
|
labelProps: mergeProps(props.labelProps, { id: labelId })
|
|
198
196
|
});
|
|
@@ -325,7 +323,7 @@ function _temp(option) {
|
|
|
325
323
|
}
|
|
326
324
|
const _TextInputMapper = forwardRef(TextInputMapper);
|
|
327
325
|
_TextInputMapper.displayName = "TextInputMapper";
|
|
328
|
-
|
|
329
326
|
//#endregion
|
|
330
|
-
export { _TextInputMapper };
|
|
327
|
+
export { _TextInputMapper as TextInputMapper };
|
|
328
|
+
|
|
331
329
|
//# sourceMappingURL=TextInputMapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInputMapper.js","names":["ComponentType","ForwardedRef","forwardRef","KeyboardEvent","useEffect","useMemo","useRef","useState","useEvent","useI18n","CloseIcon","PlusIcon","FieldBaseProps","mergeProps","useCombinedRefs","Button","Block","useFieldProps","wrapWithField","Flow","Grid","Space","ComboBox","PasswordInput","TextArea","TextInput","AriaLabelingProps","Mapping","key","value","id","CubeTextInputMapperProps","Record","qa","actionLabel","isDisabled","onChange","KeyComponent","CubeTextInputMapperInputProps","ValueComponent","keyProps","Partial","valueProps","allowsCustomValue","size","PROPS_GRID_HACK","styles","InputArea","gridColumn","removeDuplicates","mappings","keys","Set","filter","has","add","TextInputMapper","props","ref","HTMLDivElement","t","defaultValidationTrigger","valuePropsMapper","counterRef","isInvalid","isValid","form","ariaLabel","ariaLabelledBy","ariaDescribedBy","labelId","labelProps","extractLocalValues","localValues","valueKeys","Object","localKeys","map","forEach","includes","k","entries","exist","find","push","current","setMappings","JSON","stringify","onMappingsChange","newMappings","newValue","reduce","acc","trim","length","undefined","updatedMappings","addNewMapping","prev","showNewButton","some","TextInputMapperInput","onKeyChange","mapping","onValueChange","onSubmit","onKeyDown","e","ctrlKey","metaKey","renderedMappings","index","m","element","label","overflow","width","fieldType","inputType","options","placeholder","autoFocus","autoComplete","$","_c","t0","t1","rest","t2","t3","onBlur","t4","newValue_0","onSelectionChange","t5","Symbol","for","input","textarea","password","Component","t6","t7","val","t8","t9","_temp","t10","t11","option","_TextInputMapper","displayName"],"sources":["../../../../src/components/fields/TextInputMapper/TextInputMapper.tsx"],"sourcesContent":["import {\n ComponentType,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { PlusIcon } from '../../../icons/PlusIcon';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { Button } from '../../actions';\nimport { Block } from '../../Block';\nimport { useFieldProps, wrapWithField } from '../../form';\nimport { Flow } from '../../layout/Flow';\nimport { Grid } from '../../layout/Grid';\nimport { Space } from '../../layout/Space';\nimport { ComboBox } from '../ComboBox';\nimport { PasswordInput } from '../PasswordInput/PasswordInput';\nimport { TextArea } from '../TextArea/index';\nimport { TextInput } from '../TextInput';\n\nimport type { AriaLabelingProps } from '@react-types/shared';\n\ntype Mapping = {\n key: string;\n value: string;\n id: number;\n};\n\nexport interface CubeTextInputMapperProps\n extends FieldBaseProps<Record<string, string> | null | undefined> {\n qa?: string;\n actionLabel?: string;\n isDisabled?: boolean;\n value?: Record<string, string>;\n onChange?: (value: Record<string, string> | undefined) => void;\n KeyComponent?: ComponentType<CubeTextInputMapperInputProps>;\n ValueComponent?: ComponentType<CubeTextInputMapperInputProps>;\n keyProps?: Partial<CubeTextInputMapperInputProps>;\n valueProps?: Partial<CubeTextInputMapperInputProps>;\n allowsCustomValue?: boolean;\n size?: 'small' | 'medium' | 'large' | (string & {});\n}\n\n// Rewrites upper level field component styles\n// @TODO: Remove this after the release of new Element API\nconst PROPS_GRID_HACK = {\n styles: {\n InputArea: {\n gridColumn: {\n '': 'auto',\n 'has-sider': 'auto',\n },\n },\n },\n};\n\n// remove duplicates in mappings\nfunction removeDuplicates(mappings: Mapping[]) {\n const keys = new Set<string>();\n\n return mappings.filter(({ key }) => {\n if (keys.has(key)) {\n return false;\n }\n\n keys.add(key);\n\n return true;\n });\n}\n\nfunction TextInputMapper(\n props: CubeTextInputMapperProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n ref = useCombinedRefs(ref);\n\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value != null ? value : {},\n onChange: onChange,\n }),\n });\n\n const counterRef = useRef(0);\n\n let {\n qa,\n isDisabled,\n isInvalid,\n isValid,\n actionLabel,\n value,\n onChange,\n keyProps,\n valueProps,\n KeyComponent,\n ValueComponent,\n size = 'medium',\n form,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n } = props as typeof props & AriaLabelingProps;\n\n // The rows are one field, so they form a group that the label, or the\n // caller's `aria-label`, names and the field's description and message\n // describe. A `<label for>` cannot name a group, so the label gets an id,\n // unless the caller gave it one.\n const labelId = props.labelProps?.id ?? `${props.id}-label`;\n\n function extractLocalValues(\n value: Record<string, string>,\n localValues: Mapping[],\n ) {\n const valueKeys = Object.keys(value);\n const localKeys = localValues.map(({ key }) => key);\n\n localKeys.forEach((key) => {\n if (!valueKeys.includes(key) && key !== '') {\n localValues = localValues.filter(({ key: k }) => k !== key);\n }\n });\n\n Object.entries(value ?? {}).forEach(([key, value]) => {\n const exist = localValues.find(({ key: k }) => k === key);\n\n if (exist) {\n exist.value = value;\n } else {\n localValues.push({ key, value, id: counterRef.current++ });\n }\n });\n\n return removeDuplicates(localValues);\n }\n\n const [mappings, setMappings] = useState(() => {\n return extractLocalValues(value ?? {}, []);\n });\n\n useEffect(() => {\n setMappings(extractLocalValues(value ?? {}, mappings));\n }, [JSON.stringify(value)]);\n\n const onMappingsChange = useEvent((newMappings: Mapping[]) => {\n const newValue = newMappings.reduce(\n (acc, { key, value }) => {\n acc[key.trim()] = value.trim();\n\n return acc;\n },\n {} as Record<string, string>,\n );\n\n const keys = Object.keys(newValue);\n\n if (!keys.length) {\n onChange?.(undefined);\n } else {\n onChange?.(newValue);\n }\n\n const updatedMappings = extractLocalValues(newValue ?? {}, newMappings);\n\n if (JSON.stringify(updatedMappings) !== JSON.stringify(mappings)) {\n setMappings(updatedMappings);\n }\n });\n\n // useEffect(() => {\n // // focus on the last non-disabled input\n // setTimeout(() => {\n // (\n // ref?.current?.querySelector(\n // '[data-qa=\"Mapping\"]:last-child input:not([disabled])',\n // ) as HTMLInputElement\n // )?.focus();\n // }, 100);\n // }, [mappings.length]);\n\n const addNewMapping = useEvent(() => {\n setMappings((prev) => {\n return [...prev, { key: '', value: '', id: counterRef.current++ }];\n });\n });\n\n const showNewButton = useMemo(() => {\n return (\n !mappings.length || !mappings.some(({ key, value }) => !key || !value)\n );\n }, [mappings]);\n\n KeyComponent = KeyComponent ?? TextInputMapperInput;\n ValueComponent = ValueComponent ?? TextInputMapperInput;\n\n const onKeyChange = useEvent((id: number, value: string) => {\n mappings.forEach((mapping) => {\n if (mapping.id === id) {\n mapping.key = value;\n }\n });\n\n setMappings([...mappings]);\n });\n\n const onValueChange = useEvent((id: number, value: string) => {\n mappings.forEach((mapping) => {\n if (mapping.id === id) {\n mapping.value = value;\n }\n });\n\n setMappings([...mappings]);\n });\n\n const onSubmit = useEvent(() => {\n onMappingsChange(mappings);\n });\n\n const onKeyDown = useEvent((e: KeyboardEvent<HTMLDivElement>) => {\n // if Ctrl+Enter or Cmd+Enter is pressed then add new mapping if that's enabled\n if ((e.ctrlKey || e.metaKey) && e.key === 'Enter' && showNewButton) {\n addNewMapping();\n }\n });\n\n const renderedMappings = useMemo(() => {\n return mappings.map((mapping, index) => {\n const { key, value, id } = mapping;\n\n return (\n <Grid\n key={id}\n qa=\"Mapping\"\n columns=\"minmax(0, 1fr) minmax(0, 1fr) min-content\"\n gap=\"1x\"\n >\n <KeyComponent\n autoFocus={index === mappings.length - 1}\n id={id}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n fieldType=\"key\"\n value={key}\n placeholder={t('textInputMapper.key', 'Key')}\n size={size}\n onChange={onKeyChange}\n onSubmit={onSubmit}\n {...keyProps}\n />\n <ValueComponent\n id={id}\n fieldType=\"value\"\n isDisabled={!key || isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n value={value}\n placeholder={t('textInputMapper.value', 'Value')}\n size={size}\n onChange={onValueChange}\n onSubmit={onSubmit}\n {...valueProps}\n />\n <Button\n aria-label={t('textInputMapper.removeMapping', 'Remove mapping')}\n theme=\"danger\"\n type=\"clear\"\n size={size}\n icon={<CloseIcon />}\n onPress={() => {\n setMappings(mappings.filter((m) => m.id !== id));\n onMappingsChange(mappings.filter((m) => m.id !== id));\n }}\n />\n </Grid>\n );\n });\n }, [JSON.stringify(mappings), t, isDisabled, isInvalid, isValid]);\n\n const element = (\n <Flow\n ref={ref}\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy ?? (props.label ? labelId : undefined)}\n aria-describedby={ariaDescribedBy}\n gap=\"1x\"\n data-qa={qa || 'TextInputMapper'}\n data-input-type=\"textinputmapper\"\n onKeyDown={onKeyDown}\n >\n {[...renderedMappings]}\n {showNewButton ? (\n <Space gap={0}>\n {/** Hotfix for inconsistent alignment with the label **/}\n <Block styles={{ overflow: 'clip', width: 'max 0px' }}> </Block>\n <Button\n isDisabled={isDisabled}\n size={size}\n icon={<PlusIcon />}\n onPress={addNewMapping}\n >\n {actionLabel\n ? actionLabel\n : t('textInputMapper.mapping', 'Mapping')}\n </Button>\n </Space>\n ) : null}\n </Flow>\n );\n\n return wrapWithField(element, ref, {\n ...props,\n labelProps: mergeProps(props.labelProps, { id: labelId }),\n });\n}\n\nexport interface CubeTextInputMapperInputProps {\n id: number;\n fieldType: 'key' | 'value';\n inputType?: 'input' | 'combobox' | 'password' | 'textarea';\n size?: 'small' | 'medium' | 'large' | (string & {});\n value?: string;\n options?: string[];\n placeholder?: string;\n onChange?: (id: number, newValue: string) => void;\n onSubmit?: (id: number) => void;\n isDisabled?: boolean;\n isInvalid?: boolean;\n isValid?: boolean;\n autoFocus?: boolean;\n allowsCustomValue?: boolean;\n /**\n * What kind of autofill the browser may offer for the input, as the HTML `autocomplete` token\n * (`off`, `email`, …). Forwarded to the underlying input component.\n */\n autoComplete?: string;\n}\n\nfunction TextInputMapperInput(props: CubeTextInputMapperInputProps) {\n const {\n id,\n fieldType,\n inputType = 'input',\n options,\n value,\n size = 'medium',\n placeholder,\n allowsCustomValue,\n ...rest\n } = props;\n\n const onChange = useEvent((newValue: string) => {\n props.onChange?.(id, newValue);\n });\n\n const onBlur = useEvent(() => {\n props.onSubmit?.(id);\n });\n\n const onSelectionChange = useEvent((newValue: string) => {\n if (!allowsCustomValue && !options?.includes(newValue)) {\n props.onChange?.(id, '');\n } else {\n props.onChange?.(id, newValue);\n }\n\n props.onSubmit?.(id);\n });\n\n const Component = {\n input: TextInput,\n textarea: TextArea,\n password: PasswordInput,\n }[inputType];\n\n if (inputType === 'combobox') {\n return (\n <ComboBox\n isBare\n qa=\"AddMapping\"\n data-type={fieldType}\n width=\"auto\"\n size={size}\n {...mergeProps(rest, PROPS_GRID_HACK)}\n id={undefined}\n inputValue={value}\n selectedKey={value}\n labelPosition=\"top\"\n aria-label={placeholder}\n placeholder={placeholder}\n allowsCustomValue={allowsCustomValue}\n onInputChange={onChange}\n onSelectionChange={(val) => onSelectionChange(val ?? '')}\n >\n {(options ?? []).map((option) => (\n <ComboBox.Item key={option}>{option}</ComboBox.Item>\n ))}\n </ComboBox>\n );\n }\n\n return (\n <Component\n isBare\n qa=\"AddMapping\"\n data-type={fieldType}\n width=\"auto\"\n rows={1}\n size={size}\n {...mergeProps(rest, PROPS_GRID_HACK)}\n id={undefined}\n value={value}\n labelPosition=\"top\"\n aria-label={placeholder}\n placeholder={placeholder}\n onChange={onChange}\n onBlur={onBlur}\n />\n );\n}\n\nconst _TextInputMapper = forwardRef(TextInputMapper);\n\n_TextInputMapper.displayName = 'TextInputMapper';\n\nexport { _TextInputMapper as TextInputMapper };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextInputMapper.js","names":["ComponentType","ForwardedRef","forwardRef","KeyboardEvent","useEffect","useMemo","useRef","useState","useEvent","useI18n","CloseIcon","PlusIcon","FieldBaseProps","mergeProps","Button","Block","useFieldProps","wrapWithField","Flow","Grid","Space","ComboBox","PasswordInput","TextArea","TextInput","AriaLabelingProps","Mapping","key","value","id","CubeTextInputMapperProps","Record","qa","actionLabel","isDisabled","onChange","KeyComponent","CubeTextInputMapperInputProps","ValueComponent","keyProps","Partial","valueProps","allowsCustomValue","size","PROPS_GRID_HACK","styles","InputArea","gridColumn","removeDuplicates","mappings","keys","Set","filter","has","add","TextInputMapper","props","ref","HTMLDivElement","t","defaultValidationTrigger","valuePropsMapper","counterRef","isInvalid","isValid","form","ariaLabel","ariaLabelledBy","ariaDescribedBy","labelId","labelProps","extractLocalValues","localValues","valueKeys","Object","localKeys","map","forEach","includes","k","entries","exist","find","push","current","setMappings","JSON","stringify","onMappingsChange","newMappings","newValue","reduce","acc","trim","length","undefined","updatedMappings","addNewMapping","prev","showNewButton","some","TextInputMapperInput","onKeyChange","mapping","onValueChange","onSubmit","onKeyDown","e","ctrlKey","metaKey","renderedMappings","index","m","element","label","overflow","width","fieldType","inputType","options","placeholder","autoFocus","autoComplete","$","_c","t0","t1","rest","t2","t3","onBlur","t4","newValue_0","onSelectionChange","t5","Symbol","for","input","textarea","password","Component","t6","t7","val","t8","t9","_temp","t10","t11","option","_TextInputMapper","displayName","_c","TextArea","PasswordInput"],"sources":["../../../../src/components/fields/TextInputMapper/TextInputMapper.tsx"],"sourcesContent":["import {\n ComponentType,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { PlusIcon } from '../../../icons/PlusIcon';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { Button } from '../../actions';\nimport { Block } from '../../Block';\nimport { useFieldProps, wrapWithField } from '../../form';\nimport { Flow } from '../../layout/Flow';\nimport { Grid } from '../../layout/Grid';\nimport { Space } from '../../layout/Space';\nimport { ComboBox } from '../ComboBox';\nimport { PasswordInput } from '../PasswordInput/PasswordInput';\nimport { TextArea } from '../TextArea/index';\nimport { TextInput } from '../TextInput';\n\nimport type { AriaLabelingProps } from '@react-types/shared';\n\ntype Mapping = {\n key: string;\n value: string;\n id: number;\n};\n\nexport interface CubeTextInputMapperProps extends FieldBaseProps<\n Record<string, string> | null | undefined\n> {\n qa?: string;\n actionLabel?: string;\n isDisabled?: boolean;\n value?: Record<string, string>;\n onChange?: (value: Record<string, string> | undefined) => void;\n KeyComponent?: ComponentType<CubeTextInputMapperInputProps>;\n ValueComponent?: ComponentType<CubeTextInputMapperInputProps>;\n keyProps?: Partial<CubeTextInputMapperInputProps>;\n valueProps?: Partial<CubeTextInputMapperInputProps>;\n allowsCustomValue?: boolean;\n size?: 'small' | 'medium' | 'large' | (string & {});\n}\n\n// Rewrites upper level field component styles\n// @TODO: Remove this after the release of new Element API\nconst PROPS_GRID_HACK = {\n styles: {\n InputArea: {\n gridColumn: {\n '': 'auto',\n 'has-sider': 'auto',\n },\n },\n },\n};\n\n// remove duplicates in mappings\nfunction removeDuplicates(mappings: Mapping[]) {\n const keys = new Set<string>();\n\n return mappings.filter(({ key }) => {\n if (keys.has(key)) {\n return false;\n }\n\n keys.add(key);\n\n return true;\n });\n}\n\nfunction TextInputMapper(\n props: CubeTextInputMapperProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value != null ? value : {},\n onChange: onChange,\n }),\n });\n\n const counterRef = useRef(0);\n\n let {\n qa,\n isDisabled,\n isInvalid,\n isValid,\n actionLabel,\n value,\n onChange,\n keyProps,\n valueProps,\n KeyComponent,\n ValueComponent,\n size = 'medium',\n form,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n } = props as typeof props & AriaLabelingProps;\n\n // The rows are one field, so they form a group that the label, or the\n // caller's `aria-label`, names and the field's description and message\n // describe. A `<label for>` cannot name a group, so the label gets an id,\n // unless the caller gave it one.\n const labelId = props.labelProps?.id ?? `${props.id}-label`;\n\n function extractLocalValues(\n value: Record<string, string>,\n localValues: Mapping[],\n ) {\n const valueKeys = Object.keys(value);\n const localKeys = localValues.map(({ key }) => key);\n\n localKeys.forEach((key) => {\n if (!valueKeys.includes(key) && key !== '') {\n localValues = localValues.filter(({ key: k }) => k !== key);\n }\n });\n\n Object.entries(value ?? {}).forEach(([key, value]) => {\n const exist = localValues.find(({ key: k }) => k === key);\n\n if (exist) {\n exist.value = value;\n } else {\n localValues.push({ key, value, id: counterRef.current++ });\n }\n });\n\n return removeDuplicates(localValues);\n }\n\n const [mappings, setMappings] = useState(() => {\n return extractLocalValues(value ?? {}, []);\n });\n\n useEffect(() => {\n setMappings(extractLocalValues(value ?? {}, mappings));\n }, [JSON.stringify(value)]);\n\n const onMappingsChange = useEvent((newMappings: Mapping[]) => {\n const newValue = newMappings.reduce(\n (acc, { key, value }) => {\n acc[key.trim()] = value.trim();\n\n return acc;\n },\n {} as Record<string, string>,\n );\n\n const keys = Object.keys(newValue);\n\n if (!keys.length) {\n onChange?.(undefined);\n } else {\n onChange?.(newValue);\n }\n\n const updatedMappings = extractLocalValues(newValue ?? {}, newMappings);\n\n if (JSON.stringify(updatedMappings) !== JSON.stringify(mappings)) {\n setMappings(updatedMappings);\n }\n });\n\n // useEffect(() => {\n // // focus on the last non-disabled input\n // setTimeout(() => {\n // (\n // ref?.current?.querySelector(\n // '[data-qa=\"Mapping\"]:last-child input:not([disabled])',\n // ) as HTMLInputElement\n // )?.focus();\n // }, 100);\n // }, [mappings.length]);\n\n const addNewMapping = useEvent(() => {\n setMappings((prev) => {\n return [...prev, { key: '', value: '', id: counterRef.current++ }];\n });\n });\n\n const showNewButton = useMemo(() => {\n return (\n !mappings.length || !mappings.some(({ key, value }) => !key || !value)\n );\n }, [mappings]);\n\n KeyComponent = KeyComponent ?? TextInputMapperInput;\n ValueComponent = ValueComponent ?? TextInputMapperInput;\n\n const onKeyChange = useEvent((id: number, value: string) => {\n mappings.forEach((mapping) => {\n if (mapping.id === id) {\n mapping.key = value;\n }\n });\n\n setMappings([...mappings]);\n });\n\n const onValueChange = useEvent((id: number, value: string) => {\n mappings.forEach((mapping) => {\n if (mapping.id === id) {\n mapping.value = value;\n }\n });\n\n setMappings([...mappings]);\n });\n\n const onSubmit = useEvent(() => {\n onMappingsChange(mappings);\n });\n\n const onKeyDown = useEvent((e: KeyboardEvent<HTMLDivElement>) => {\n // if Ctrl+Enter or Cmd+Enter is pressed then add new mapping if that's enabled\n if ((e.ctrlKey || e.metaKey) && e.key === 'Enter' && showNewButton) {\n addNewMapping();\n }\n });\n\n const renderedMappings = useMemo(() => {\n return mappings.map((mapping, index) => {\n const { key, value, id } = mapping;\n\n return (\n <Grid\n key={id}\n qa=\"Mapping\"\n columns=\"minmax(0, 1fr) minmax(0, 1fr) min-content\"\n gap=\"1x\"\n >\n <KeyComponent\n autoFocus={index === mappings.length - 1}\n id={id}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n fieldType=\"key\"\n value={key}\n placeholder={t('textInputMapper.key', 'Key')}\n size={size}\n onChange={onKeyChange}\n onSubmit={onSubmit}\n {...keyProps}\n />\n <ValueComponent\n id={id}\n fieldType=\"value\"\n isDisabled={!key || isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n value={value}\n placeholder={t('textInputMapper.value', 'Value')}\n size={size}\n onChange={onValueChange}\n onSubmit={onSubmit}\n {...valueProps}\n />\n <Button\n aria-label={t('textInputMapper.removeMapping', 'Remove mapping')}\n theme=\"danger\"\n type=\"clear\"\n size={size}\n icon={<CloseIcon />}\n onPress={() => {\n setMappings(mappings.filter((m) => m.id !== id));\n onMappingsChange(mappings.filter((m) => m.id !== id));\n }}\n />\n </Grid>\n );\n });\n }, [JSON.stringify(mappings), t, isDisabled, isInvalid, isValid]);\n\n const element = (\n <Flow\n ref={ref}\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy ?? (props.label ? labelId : undefined)}\n aria-describedby={ariaDescribedBy}\n gap=\"1x\"\n data-qa={qa || 'TextInputMapper'}\n data-input-type=\"textinputmapper\"\n onKeyDown={onKeyDown}\n >\n {[...renderedMappings]}\n {showNewButton ? (\n <Space gap={0}>\n {/** Hotfix for inconsistent alignment with the label **/}\n <Block styles={{ overflow: 'clip', width: 'max 0px' }}> </Block>\n <Button\n isDisabled={isDisabled}\n size={size}\n icon={<PlusIcon />}\n onPress={addNewMapping}\n >\n {actionLabel\n ? actionLabel\n : t('textInputMapper.mapping', 'Mapping')}\n </Button>\n </Space>\n ) : null}\n </Flow>\n );\n\n return wrapWithField(element, {\n ...props,\n labelProps: mergeProps(props.labelProps, { id: labelId }),\n });\n}\n\nexport interface CubeTextInputMapperInputProps {\n id: number;\n fieldType: 'key' | 'value';\n inputType?: 'input' | 'combobox' | 'password' | 'textarea';\n size?: 'small' | 'medium' | 'large' | (string & {});\n value?: string;\n options?: string[];\n placeholder?: string;\n onChange?: (id: number, newValue: string) => void;\n onSubmit?: (id: number) => void;\n isDisabled?: boolean;\n isInvalid?: boolean;\n isValid?: boolean;\n autoFocus?: boolean;\n allowsCustomValue?: boolean;\n /**\n * What kind of autofill the browser may offer for the input, as the HTML `autocomplete` token\n * (`off`, `email`, …). Forwarded to the underlying input component.\n */\n autoComplete?: string;\n}\n\nfunction TextInputMapperInput(props: CubeTextInputMapperInputProps) {\n const {\n id,\n fieldType,\n inputType = 'input',\n options,\n value,\n size = 'medium',\n placeholder,\n allowsCustomValue,\n ...rest\n } = props;\n\n const onChange = useEvent((newValue: string) => {\n props.onChange?.(id, newValue);\n });\n\n const onBlur = useEvent(() => {\n props.onSubmit?.(id);\n });\n\n const onSelectionChange = useEvent((newValue: string) => {\n if (!allowsCustomValue && !options?.includes(newValue)) {\n props.onChange?.(id, '');\n } else {\n props.onChange?.(id, newValue);\n }\n\n props.onSubmit?.(id);\n });\n\n const Component = {\n input: TextInput,\n textarea: TextArea,\n password: PasswordInput,\n }[inputType];\n\n if (inputType === 'combobox') {\n return (\n <ComboBox\n isBare\n qa=\"AddMapping\"\n data-type={fieldType}\n width=\"auto\"\n size={size}\n {...mergeProps(rest, PROPS_GRID_HACK)}\n id={undefined}\n inputValue={value}\n selectedKey={value}\n labelPosition=\"top\"\n aria-label={placeholder}\n placeholder={placeholder}\n allowsCustomValue={allowsCustomValue}\n onInputChange={onChange}\n onSelectionChange={(val) => onSelectionChange(val ?? '')}\n >\n {(options ?? []).map((option) => (\n <ComboBox.Item key={option}>{option}</ComboBox.Item>\n ))}\n </ComboBox>\n );\n }\n\n return (\n <Component\n isBare\n qa=\"AddMapping\"\n data-type={fieldType}\n width=\"auto\"\n rows={1}\n size={size}\n {...mergeProps(rest, PROPS_GRID_HACK)}\n id={undefined}\n value={value}\n labelPosition=\"top\"\n aria-label={placeholder}\n placeholder={placeholder}\n onChange={onChange}\n onBlur={onBlur}\n />\n );\n}\n\nconst _TextInputMapper = forwardRef(TextInputMapper);\n\n_TextInputMapper.displayName = 'TextInputMapper';\n\nexport { _TextInputMapper as TextInputMapper };\n"],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
|
|
2
|
-
import { CubeTextInputMapperInputProps, CubeTextInputMapperProps, _TextInputMapper } from "./TextInputMapper.js";
|
|
2
|
+
import { CubeTextInputMapperInputProps, CubeTextInputMapperProps, TextInputMapper as _TextInputMapper } from "./TextInputMapper.js";
|
|
3
|
+
export { CubeTextInputMapperInputProps, CubeTextInputMapperProps, _TextInputMapper as TextInputMapper };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { ItemActionIcon } from "../actions/ItemActionsWrapper.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { Fragment, jsxs } from "react/jsx-runtime";
|
|
5
|
-
|
|
6
5
|
//#region src/components/fields/TriggerActions.tsx
|
|
7
6
|
function TriggerActions(props) {
|
|
8
7
|
const $ = c(3);
|
|
@@ -16,7 +15,7 @@ function TriggerActions(props) {
|
|
|
16
15
|
} else t0 = $[2];
|
|
17
16
|
return t0;
|
|
18
17
|
}
|
|
19
|
-
|
|
20
18
|
//#endregion
|
|
21
|
-
export { TriggerActions };
|
|
19
|
+
export { TriggerActions, ItemActionIcon as TriggerIcon };
|
|
20
|
+
|
|
22
21
|
//# sourceMappingURL=TriggerActions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerActions.js","names":["ItemActionIcon","ReactNode","TriggerActionsProps","actions","builtIn","TriggerActions","props","$","_c","t0","TriggerIcon"],"sources":["../../../src/components/fields/TriggerActions.tsx"],"sourcesContent":["import { ItemActionIcon } from '../actions/ItemActionsWrapper';\n\nimport type { ReactNode } from 'react';\n\n/**\n * The trailing run of a `Select` / `Picker` / `FilterPicker` trigger: the\n * caller's custom `actions`, then the built-in control — a loading spinner, the\n * clear button, or the dropdown caret.\n *\n * It renders into `ItemActionsWrapper`'s run, which lies over the trigger's\n * trailing end as a SIBLING of the `<button>` rather than inside it. That is\n * what keeps the clear button from being a `<button>` nested in a `<button>`,\n * and it is why the caret is an `ItemActionIcon`: the run is transparent to the\n * pointer except where a child opts in, so a press on the caret lands on the\n * trigger underneath and opens the popover exactly as it did when the caret\n * lived in the `rightIcon` slot.\n *\n * The run isolates its children's presses from the trigger and identifies them\n * to the overlay as the trigger's own — both in `ItemActionsWrapper`, so every\n * row that has actions gets them and not only these three.\n */\nexport interface TriggerActionsProps {\n /** The caller's custom actions. They come first — leftmost in LTR. */\n actions?: ReactNode;\n /** The built-in control: spinner, clear button, or caret. */\n builtIn?: ReactNode;\n}\n\nexport function TriggerActions(props: TriggerActionsProps) {\n const { actions, builtIn } = props;\n\n return (\n <>\n {actions}\n {builtIn}\n </>\n );\n}\n\nexport { ItemActionIcon as TriggerIcon };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TriggerActions.js","names":["ItemActionIcon","ReactNode","TriggerActionsProps","actions","builtIn","TriggerActions","props","$","_c","t0","TriggerIcon","_c"],"sources":["../../../src/components/fields/TriggerActions.tsx"],"sourcesContent":["import { ItemActionIcon } from '../actions/ItemActionsWrapper';\n\nimport type { ReactNode } from 'react';\n\n/**\n * The trailing run of a `Select` / `Picker` / `FilterPicker` trigger: the\n * caller's custom `actions`, then the built-in control — a loading spinner, the\n * clear button, or the dropdown caret.\n *\n * It renders into `ItemActionsWrapper`'s run, which lies over the trigger's\n * trailing end as a SIBLING of the `<button>` rather than inside it. That is\n * what keeps the clear button from being a `<button>` nested in a `<button>`,\n * and it is why the caret is an `ItemActionIcon`: the run is transparent to the\n * pointer except where a child opts in, so a press on the caret lands on the\n * trigger underneath and opens the popover exactly as it did when the caret\n * lived in the `rightIcon` slot.\n *\n * The run isolates its children's presses from the trigger and identifies them\n * to the overlay as the trigger's own — both in `ItemActionsWrapper`, so every\n * row that has actions gets them and not only these three.\n */\nexport interface TriggerActionsProps {\n /** The caller's custom actions. They come first — leftmost in LTR. */\n actions?: ReactNode;\n /** The built-in control: spinner, clear button, or caret. */\n builtIn?: ReactNode;\n}\n\nexport function TriggerActions(props: TriggerActionsProps) {\n const { actions, builtIn } = props;\n\n return (\n <>\n {actions}\n {builtIn}\n </>\n );\n}\n\nexport { ItemActionIcon as TriggerIcon };\n"],"mappings":";;;;;AA4BA,SAAOK,eAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAA,EAAAL,SAAAC,YAA6BE;CAAM,IAAAG;CAAA,IAAAF,EAAA,OAAAJ,WAAAI,EAAA,OAAAH,SAAA;EAGjCK,KAAA,qBAAA,UAAA,EAAA,UAAA,CACGN,SACAC,OAAO,EAAA,CAAA;EACPG,EAAA,KAAAJ;EAAAI,EAAA,KAAAH;EAAAG,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,OAHHE;AAGG"}
|
|
@@ -1,14 +1,13 @@
|
|
|
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 { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { formatColor, getContrastingColor, toHex } from "./color.js";
|
|
5
5
|
import { CHANNELS, COLOR_SPACES, COLOR_SPACE_HINTS, COLOR_SPACE_LABELS } from "./channels.js";
|
|
6
|
-
import { __Radio } from "../RadioGroup/Radio.js";
|
|
7
|
-
import { __Slider } from "../Slider/Slider.js";
|
|
6
|
+
import { Radio as __Radio } from "../RadioGroup/Radio.js";
|
|
7
|
+
import { Slider as __Slider } from "../Slider/Slider.js";
|
|
8
8
|
import { c } from "react/compiler-runtime";
|
|
9
9
|
import { tasty } from "@tenphi/tasty";
|
|
10
10
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
-
|
|
12
11
|
//#region src/components/fields/color/ColorPanel.tsx
|
|
13
12
|
const PanelElement = tasty({
|
|
14
13
|
qa: "ColorPanel",
|
|
@@ -335,7 +334,7 @@ function _temp(item) {
|
|
|
335
334
|
children: COLOR_SPACE_LABELS[item]
|
|
336
335
|
}, item);
|
|
337
336
|
}
|
|
338
|
-
|
|
339
337
|
//#endregion
|
|
340
338
|
export { ColorPanel };
|
|
339
|
+
|
|
341
340
|
//# sourceMappingURL=ColorPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPanel.js","names":["Styles","tasty","ReactNode","useEvent","useI18n","Radio","Slider","CHANNELS","COLOR_SPACE_HINTS","COLOR_SPACE_LABELS","COLOR_SPACES","ColorChannel","ColorSpace","ColorFormat","ColorValue","formatColor","getContrastingColor","toHex","PanelElement","qa","styles","display","flow","gap","padding","width","PreviewElement","placeItems","height","radius","preset","fill","color","shadow","ChannelsElement","gridColumns","ChannelLabelElement","textAlign","ChannelTrackElement","ChannelValueElement","whiteSpace","TRACK_STYLES","top","image","Fill","THUMB_STYLES","THUMB_TOKENS","SPACE_STYLES","TAB_STYLES","flexGrow","ColorPanelProps","space","isDisabled","previewFormat","swatches","input","onChange","onSpaceChange","ChannelRowProps","channel","ChannelRow","t0","$","_c","t1","max","t2","value","apply","handleChange","t3","label","t4","stops","t5","t6","t7","title","t8","t9","Math","min","t10","step","t11","t12","t13","t14","ColorPanel","props","t","colorTokens","handleSpaceChange","Symbol","for","map","_temp","item"],"sources":["../../../../src/components/fields/color/ColorPanel.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { ReactNode } from 'react';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { Radio } from '../RadioGroup';\nimport { Slider } from '../Slider';\n\nimport {\n CHANNELS,\n COLOR_SPACE_HINTS,\n COLOR_SPACE_LABELS,\n COLOR_SPACES,\n ColorChannel,\n ColorSpace,\n} from './channels';\nimport {\n ColorFormat,\n ColorValue,\n formatColor,\n getContrastingColor,\n toHex,\n} from './color';\n\nconst PanelElement = tasty({\n qa: 'ColorPanel',\n styles: {\n display: 'grid',\n flow: 'row',\n gap: '1x',\n padding: '1x',\n width: '34x',\n },\n});\n\nconst PreviewElement = tasty({\n qa: 'ColorPreview',\n styles: {\n display: 'grid',\n placeItems: 'center',\n height: '6x',\n radius: true,\n preset: 's4',\n fill: '(#color-picker, #clear)',\n color: '(#color-picker-contrast, #dark)',\n shadow: 'inset 0 0 0 1bw #dark.1',\n },\n});\n\nconst ChannelsElement = tasty({\n styles: {\n display: 'grid',\n gridColumns: 'max-content 1sf max-content',\n placeItems: 'center stretch',\n gap: '1x',\n },\n});\n\nconst ChannelLabelElement = tasty({\n styles: {\n preset: 'c2',\n color: '#dark-03',\n textAlign: 'center',\n width: '2x',\n },\n});\n\nconst ChannelTrackElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center stretch',\n },\n});\n\nconst ChannelValueElement = tasty({\n styles: {\n preset: 's4',\n color: '#dark-02',\n textAlign: 'right',\n whiteSpace: 'nowrap',\n width: '5.5x',\n },\n});\n\n/**\n * The gradient reaches the track through a plain custom property so the track\n * keeps a single cached style rule. A color picker moves its channels\n * continuously, and a fresh `styles` object per frame would emit a fresh CSS\n * rule per frame.\n */\nconst TRACK_STYLES: Styles = {\n height: '1x',\n top: '.5x',\n radius: '1r',\n fill: '#clear',\n image: '$channel-gradient',\n shadow: 'inset 0 0 0 1bw #dark.1',\n Fill: false,\n};\n\n/** A ring keeps the thumb visible wherever it sits on its own gradient. */\nconst THUMB_STYLES: Styles = {\n shadow: '0 0 0 2bw #surface, 0 0 0 3bw #dark.2',\n};\n\nconst THUMB_TOKENS = { '#slider-thumb': '(#color-picker, #surface)' };\n\nconst SPACE_STYLES: Styles = { width: '100%' };\nconst TAB_STYLES: Styles = { flexGrow: 1 };\n\nexport interface ColorPanelProps {\n color: ColorValue;\n space: ColorSpace;\n isDisabled?: boolean;\n /** Notation used for the preview caption. */\n previewFormat: ColorFormat;\n /** Optional palette rendered under the channels. */\n swatches?: ReactNode;\n /** Optional value field rendered above the preview. */\n input?: ReactNode;\n onChange: (color: ColorValue) => void;\n onSpaceChange: (space: ColorSpace) => void;\n}\n\ninterface ChannelRowProps {\n channel: ColorChannel;\n color: ColorValue;\n isDisabled?: boolean;\n onChange: (color: ColorValue) => void;\n}\n\nfunction ChannelRow({ channel, color, isDisabled, onChange }: ChannelRowProps) {\n const max = channel.max(color);\n\n const handleChange = useEvent((value: number) => {\n onChange(channel.apply(color, value));\n });\n\n return (\n <>\n <ChannelLabelElement aria-hidden=\"true\">\n {channel.label}\n </ChannelLabelElement>\n <ChannelTrackElement\n style={{\n '--channel-gradient': `linear-gradient(to right, ${channel.stops(\n color,\n )})`,\n }}\n >\n <Slider\n isBare\n aria-label={channel.title}\n value={Math.min(channel.value(color), max)}\n minValue={channel.min}\n maxValue={max}\n step={channel.step}\n isDisabled={isDisabled}\n trackStyles={TRACK_STYLES}\n thumbStyles={THUMB_STYLES}\n thumbTokens={THUMB_TOKENS}\n onChange={handleChange}\n />\n </ChannelTrackElement>\n <ChannelValueElement>{channel.display(color)}</ChannelValueElement>\n </>\n );\n}\n\n/**\n * The popover body shared by `ColorInput` and `ColorPicker`: a preview, a\n * switch between the three color concepts, and one gradient slider per channel\n * of the active one.\n */\nexport function ColorPanel(props: ColorPanelProps) {\n const {\n color,\n space,\n isDisabled,\n previewFormat,\n swatches,\n input,\n onChange,\n onSpaceChange,\n } = props;\n const { t } = useI18n();\n\n const colorTokens = {\n '--color-picker-color': toHex(color),\n '--color-picker-contrast-color': getContrastingColor(color),\n };\n\n const handleSpaceChange = useEvent((value: string) => {\n onSpaceChange(value as ColorSpace);\n });\n\n return (\n <PanelElement style={colorTokens}>\n {input}\n <PreviewElement>{formatColor(color, previewFormat)}</PreviewElement>\n <Radio.Tabs\n isBare\n aria-label={t('colorPicker.colorSpace', 'Color space')}\n value={space}\n isDisabled={isDisabled}\n styles={SPACE_STYLES}\n onChange={handleSpaceChange}\n >\n {COLOR_SPACES.map((item) => (\n <Radio\n key={item}\n value={item}\n aria-label={COLOR_SPACE_LABELS[item]}\n tooltip={COLOR_SPACE_HINTS[item]}\n styles={TAB_STYLES}\n >\n {COLOR_SPACE_LABELS[item]}\n </Radio>\n ))}\n </Radio.Tabs>\n <ChannelsElement>\n {CHANNELS[space].map((channel) => (\n <ChannelRow\n key={`${space}-${channel.label}`}\n channel={channel}\n color={color}\n isDisabled={isDisabled}\n onChange={onChange}\n />\n ))}\n </ChannelsElement>\n {swatches}\n </PanelElement>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColorPanel.js","names":["Styles","tasty","ReactNode","useEvent","useI18n","Radio","Slider","CHANNELS","COLOR_SPACE_HINTS","COLOR_SPACE_LABELS","COLOR_SPACES","ColorChannel","ColorSpace","ColorFormat","ColorValue","formatColor","getContrastingColor","toHex","PanelElement","qa","styles","display","flow","gap","padding","width","PreviewElement","placeItems","height","radius","preset","fill","color","shadow","ChannelsElement","gridColumns","ChannelLabelElement","textAlign","ChannelTrackElement","ChannelValueElement","whiteSpace","TRACK_STYLES","top","image","Fill","THUMB_STYLES","THUMB_TOKENS","SPACE_STYLES","TAB_STYLES","flexGrow","ColorPanelProps","space","isDisabled","previewFormat","swatches","input","onChange","onSpaceChange","ChannelRowProps","channel","ChannelRow","t0","$","_c","t1","max","t2","value","apply","handleChange","t3","label","t4","stops","t5","t6","t7","title","t8","t9","Math","min","t10","step","t11","t12","t13","t14","ColorPanel","props","t","colorTokens","handleSpaceChange","Symbol","for","map","_temp","item","_c","Slider","Radio"],"sources":["../../../../src/components/fields/color/ColorPanel.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { ReactNode } from 'react';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { Radio } from '../RadioGroup';\nimport { Slider } from '../Slider';\n\nimport {\n CHANNELS,\n COLOR_SPACE_HINTS,\n COLOR_SPACE_LABELS,\n COLOR_SPACES,\n ColorChannel,\n ColorSpace,\n} from './channels';\nimport {\n ColorFormat,\n ColorValue,\n formatColor,\n getContrastingColor,\n toHex,\n} from './color';\n\nconst PanelElement = tasty({\n qa: 'ColorPanel',\n styles: {\n display: 'grid',\n flow: 'row',\n gap: '1x',\n padding: '1x',\n width: '34x',\n },\n});\n\nconst PreviewElement = tasty({\n qa: 'ColorPreview',\n styles: {\n display: 'grid',\n placeItems: 'center',\n height: '6x',\n radius: true,\n preset: 's4',\n fill: '(#color-picker, #clear)',\n color: '(#color-picker-contrast, #dark)',\n shadow: 'inset 0 0 0 1bw #dark.1',\n },\n});\n\nconst ChannelsElement = tasty({\n styles: {\n display: 'grid',\n gridColumns: 'max-content 1sf max-content',\n placeItems: 'center stretch',\n gap: '1x',\n },\n});\n\nconst ChannelLabelElement = tasty({\n styles: {\n preset: 'c2',\n color: '#dark-03',\n textAlign: 'center',\n width: '2x',\n },\n});\n\nconst ChannelTrackElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center stretch',\n },\n});\n\nconst ChannelValueElement = tasty({\n styles: {\n preset: 's4',\n color: '#dark-02',\n textAlign: 'right',\n whiteSpace: 'nowrap',\n width: '5.5x',\n },\n});\n\n/**\n * The gradient reaches the track through a plain custom property so the track\n * keeps a single cached style rule. A color picker moves its channels\n * continuously, and a fresh `styles` object per frame would emit a fresh CSS\n * rule per frame.\n */\nconst TRACK_STYLES: Styles = {\n height: '1x',\n top: '.5x',\n radius: '1r',\n fill: '#clear',\n image: '$channel-gradient',\n shadow: 'inset 0 0 0 1bw #dark.1',\n Fill: false,\n};\n\n/** A ring keeps the thumb visible wherever it sits on its own gradient. */\nconst THUMB_STYLES: Styles = {\n shadow: '0 0 0 2bw #surface, 0 0 0 3bw #dark.2',\n};\n\nconst THUMB_TOKENS = { '#slider-thumb': '(#color-picker, #surface)' };\n\nconst SPACE_STYLES: Styles = { width: '100%' };\nconst TAB_STYLES: Styles = { flexGrow: 1 };\n\nexport interface ColorPanelProps {\n color: ColorValue;\n space: ColorSpace;\n isDisabled?: boolean;\n /** Notation used for the preview caption. */\n previewFormat: ColorFormat;\n /** Optional palette rendered under the channels. */\n swatches?: ReactNode;\n /** Optional value field rendered above the preview. */\n input?: ReactNode;\n onChange: (color: ColorValue) => void;\n onSpaceChange: (space: ColorSpace) => void;\n}\n\ninterface ChannelRowProps {\n channel: ColorChannel;\n color: ColorValue;\n isDisabled?: boolean;\n onChange: (color: ColorValue) => void;\n}\n\nfunction ChannelRow({ channel, color, isDisabled, onChange }: ChannelRowProps) {\n const max = channel.max(color);\n\n const handleChange = useEvent((value: number) => {\n onChange(channel.apply(color, value));\n });\n\n return (\n <>\n <ChannelLabelElement aria-hidden=\"true\">\n {channel.label}\n </ChannelLabelElement>\n <ChannelTrackElement\n style={{\n '--channel-gradient': `linear-gradient(to right, ${channel.stops(\n color,\n )})`,\n }}\n >\n <Slider\n isBare\n aria-label={channel.title}\n value={Math.min(channel.value(color), max)}\n minValue={channel.min}\n maxValue={max}\n step={channel.step}\n isDisabled={isDisabled}\n trackStyles={TRACK_STYLES}\n thumbStyles={THUMB_STYLES}\n thumbTokens={THUMB_TOKENS}\n onChange={handleChange}\n />\n </ChannelTrackElement>\n <ChannelValueElement>{channel.display(color)}</ChannelValueElement>\n </>\n );\n}\n\n/**\n * The popover body shared by `ColorInput` and `ColorPicker`: a preview, a\n * switch between the three color concepts, and one gradient slider per channel\n * of the active one.\n */\nexport function ColorPanel(props: ColorPanelProps) {\n const {\n color,\n space,\n isDisabled,\n previewFormat,\n swatches,\n input,\n onChange,\n onSpaceChange,\n } = props;\n const { t } = useI18n();\n\n const colorTokens = {\n '--color-picker-color': toHex(color),\n '--color-picker-contrast-color': getContrastingColor(color),\n };\n\n const handleSpaceChange = useEvent((value: string) => {\n onSpaceChange(value as ColorSpace);\n });\n\n return (\n <PanelElement style={colorTokens}>\n {input}\n <PreviewElement>{formatColor(color, previewFormat)}</PreviewElement>\n <Radio.Tabs\n isBare\n aria-label={t('colorPicker.colorSpace', 'Color space')}\n value={space}\n isDisabled={isDisabled}\n styles={SPACE_STYLES}\n onChange={handleSpaceChange}\n >\n {COLOR_SPACES.map((item) => (\n <Radio\n key={item}\n value={item}\n aria-label={COLOR_SPACE_LABELS[item]}\n tooltip={COLOR_SPACE_HINTS[item]}\n styles={TAB_STYLES}\n >\n {COLOR_SPACE_LABELS[item]}\n </Radio>\n ))}\n </Radio.Tabs>\n <ChannelsElement>\n {CHANNELS[space].map((channel) => (\n <ChannelRow\n key={`${space}-${channel.label}`}\n channel={channel}\n color={color}\n isDisabled={isDisabled}\n onChange={onChange}\n />\n ))}\n </ChannelsElement>\n {swatches}\n </PanelElement>\n );\n}\n"],"mappings":"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"}
|