@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,16 +1,15 @@
|
|
|
1
1
|
|
|
2
2
|
import { FormPath } from "./values.js";
|
|
3
|
-
|
|
4
3
|
//#region src/components/form/Form/modern/path-types.d.ts
|
|
5
4
|
type ValidPath<Value, Path extends readonly (string | number)[]> = unknown extends Value ? true : Path extends readonly [infer Key extends string | number, ...infer Rest extends readonly (string | number)[]] ? Key extends keyof NonNullable<Value> ? Rest extends readonly [] ? true : ValidPath<NonNullable<Value>[Key], Rest> : NonNullable<Value> extends readonly (infer Item)[] ? Key extends `${number}` ? ValidPath<Item, Rest> : false : false : true;
|
|
6
5
|
/** Check only the supplied literal path. Widened strings support dynamic models. */
|
|
7
|
-
type CheckedFormPath<T extends object, Path extends FormPath> = Path & (Path extends string ? string extends Path ? unknown : Path extends keyof T ? unknown : never : Path extends readonly (string | number)[] ? ValidPath<T, Path> extends false ? never : unknown : never);
|
|
6
|
+
export type CheckedFormPath<T extends object, Path extends FormPath> = Path & (Path extends string ? string extends Path ? unknown : Path extends keyof T ? unknown : never : Path extends readonly (string | number)[] ? ValidPath<T, Path> extends false ? never : unknown : never);
|
|
8
7
|
/** Resolve only the supplied path; never enumerate a model's possible paths. */
|
|
9
8
|
type SegmentValue<Value, Key extends string | number> = Value extends null | undefined ? undefined : Key extends keyof Value ? Value[Key] : Value extends readonly (infer Item)[] ? Key extends `${number}` ? Item : unknown : unknown;
|
|
10
9
|
type TupleValue<Value, Path extends readonly (string | number)[]> = Path extends readonly [infer Key extends string | number, ...infer Rest extends readonly (string | number)[]] ? Rest extends readonly [] ? SegmentValue<Value, Key> : TupleValue<SegmentValue<Value, Key>, Rest> : unknown;
|
|
11
10
|
/** Strings are literal keys; unknown/dynamic names and paths return unknown. */
|
|
12
|
-
type FormValueAtPath<Values extends object, Path extends FormPath> = Path extends string ? Path extends keyof Values ? Values[Path] : unknown : Path extends readonly (string | number)[] ? TupleValue<Values, Path> : unknown;
|
|
13
|
-
type CheckedFormDependencies<T extends object, Dependencies extends readonly FormPath[]> = { readonly [I in keyof Dependencies]: CheckedFormPath<T, Dependencies[I]
|
|
11
|
+
export type FormValueAtPath<Values extends object, Path extends FormPath> = Path extends string ? Path extends keyof Values ? Values[Path] : unknown : Path extends readonly (string | number)[] ? TupleValue<Values, Path> : unknown;
|
|
12
|
+
export type CheckedFormDependencies<T extends object, Dependencies extends readonly FormPath[]> = { readonly [I in keyof Dependencies]: CheckedFormPath<T, Dependencies[I]>; };
|
|
14
13
|
//#endregion
|
|
15
|
-
export {
|
|
14
|
+
export {};
|
|
16
15
|
//# sourceMappingURL=path-types.d.ts.map
|
|
@@ -3,24 +3,21 @@ import { FormPath } from "./values.js";
|
|
|
3
3
|
import { CheckedFormPath, FormValueAtPath } from "./path-types.js";
|
|
4
4
|
import { FormReadValue } from "./read-types.js";
|
|
5
5
|
import { FormController, ModernFieldState, ModernFormState, UseFormControllerOptions } from "./controller.js";
|
|
6
|
-
import * as react from "react";
|
|
7
6
|
import { ReactNode } from "react";
|
|
8
|
-
|
|
9
7
|
//#region src/components/form/Form/modern/react.d.ts
|
|
10
|
-
declare function useFormController<T extends object = Record<string, unknown>>(options?: UseFormControllerOptions<T>): FormController<T>;
|
|
11
|
-
declare function useFormValue<T extends object, const Path extends FormPath>(form: FormController<T>, path: CheckedFormPath<T, Path>): FormReadValue<FormValueAtPath<T, Path>> | undefined;
|
|
12
|
-
declare function useFormFieldState<T extends object, const Path extends FormPath>(form: FormController<T>, path: CheckedFormPath<T, Path>): ModernFieldState<FormValueAtPath<T, Path>> | undefined;
|
|
13
|
-
interface FormSelectorOptions<Selected> {
|
|
8
|
+
export declare function useFormController<T extends object = Record<string, unknown>>(options?: UseFormControllerOptions<T>): FormController<T>;
|
|
9
|
+
export declare function useFormValue<T extends object, const Path extends FormPath>(form: FormController<T>, path: CheckedFormPath<T, Path>): FormReadValue<FormValueAtPath<T, Path>> | undefined;
|
|
10
|
+
export declare function useFormFieldState<T extends object, const Path extends FormPath>(form: FormController<T>, path: CheckedFormPath<T, Path>): ModernFieldState<FormValueAtPath<T, Path>> | undefined;
|
|
11
|
+
export interface FormSelectorOptions<Selected> {
|
|
14
12
|
isEqual?: (previous: Selected, next: Selected) => boolean;
|
|
15
13
|
}
|
|
16
|
-
declare function useFormSelector<T extends object, Selected>(controller: FormController<T>, selector: (state: ModernFormState<T>) => Selected, options?: FormSelectorOptions<Selected>): Selected;
|
|
17
|
-
interface FormSubscribeProps<T extends object, Selected> extends FormSelectorOptions<Selected> {
|
|
14
|
+
export declare function useFormSelector<T extends object, Selected>(controller: FormController<T>, selector: (state: ModernFormState<T>) => Selected, options?: FormSelectorOptions<Selected>): Selected;
|
|
15
|
+
export interface FormSubscribeProps<T extends object, Selected> extends FormSelectorOptions<Selected> {
|
|
18
16
|
/** Omit to use modern context. An explicit undefined detaches from context. */
|
|
19
17
|
form?: FormController<T>;
|
|
20
18
|
selector: (state: ModernFormState<T>) => Selected;
|
|
21
19
|
children: (selected: Selected) => ReactNode;
|
|
22
20
|
}
|
|
23
|
-
declare function FormSubscribe<T extends object = Record<string, unknown>, Selected = unknown>(props: FormSubscribeProps<T, Selected>): react.JSX.Element;
|
|
21
|
+
export declare function FormSubscribe<T extends object = Record<string, unknown>, Selected = unknown>(props: FormSubscribeProps<T, Selected>): import("react").JSX.Element;
|
|
24
22
|
//#endregion
|
|
25
|
-
export { FormSelectorOptions, FormSubscribe, FormSubscribeProps, useFormController, useFormFieldState, useFormSelector, useFormValue };
|
|
26
23
|
//# sourceMappingURL=react.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { ModernControllerContext } from "./context.js";
|
|
4
4
|
import { getFieldKey, normalizePath, readPath } from "./values.js";
|
|
@@ -7,7 +7,6 @@ import { c } from "react/compiler-runtime";
|
|
|
7
7
|
import { useContext, useState } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
9
9
|
import { useSyncExternalStoreWithSelector } from "use-sync-external-store/with-selector.js";
|
|
10
|
-
|
|
11
10
|
//#region src/components/form/Form/modern/react.tsx
|
|
12
11
|
function useFormController(options) {
|
|
13
12
|
const $ = c(9);
|
|
@@ -122,7 +121,7 @@ function FormSubscribe(props) {
|
|
|
122
121
|
} else t3 = $[9];
|
|
123
122
|
return t3;
|
|
124
123
|
}
|
|
125
|
-
|
|
126
124
|
//#endregion
|
|
127
125
|
export { FormSubscribe, useFormController, useFormFieldState, useFormSelector, useFormValue };
|
|
126
|
+
|
|
128
127
|
//# sourceMappingURL=react.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","names":["useContext","useState","useSyncExternalStoreWithSelector","useLayoutEffect","ModernControllerContext","createFormController","getControllerInternals","getFieldKey","normalizePath","readPath","ReactNode","FormController","ModernFieldState","ModernFormState","UseFormControllerOptions","CheckedFormPath","FormValueAtPath","FormReadValue","FormPath","useFormController","options","$","_c","t0","controller","t1","store","t2","onSubmit","onSubmitFailed","onValuesChange","updateCallbacks","useFormValue","form","path","normalized","state","values","useFormSelector","T","Path","useFormFieldState","key","fields","FormSelectorOptions","isEqual","previous","Selected","next","selector","getServerSnapshot","subscribe","getSnapshot","FormSubscribeProps","children","selected","FormSubscribe","props","fromContext","Object","hasOwn","Error","t3"],"sources":["../../../../../src/components/form/Form/modern/react.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';\n\nimport { useLayoutEffect } from '../../../../utils/react/useLayoutEffect';\n\nimport { ModernControllerContext } from './context';\nimport { createFormController, getControllerInternals } from './controller';\nimport { getFieldKey, normalizePath, readPath } from './values';\n\nimport type { ReactNode } from 'react';\nimport type {\n FormController,\n ModernFieldState,\n ModernFormState,\n UseFormControllerOptions,\n} from './controller';\nimport type { CheckedFormPath, FormValueAtPath } from './path-types';\nimport type { FormReadValue } from './read-types';\nimport type { FormPath } from './values';\n\nexport function useFormController<T extends object = Record<string, unknown>>(\n options?: UseFormControllerOptions<T>,\n): FormController<T> {\n // Initial options seed synchronously. A new options object never resets the\n // controller, and the creator does not subscribe its owner to form changes.\n const [controller] = useState(() => createFormController(options));\n const { store } = getControllerInternals(controller, 'Form.useController()');\n // Intentionally commit after every render: callbacks are live, unlike the\n // initial defaults/policy. Abandoned renders must never replace callbacks.\n useLayoutEffect(() => {\n store.updateCallbacks({\n onSubmit: options?.onSubmit,\n onSubmitFailed: options?.onSubmitFailed,\n onValuesChange: options?.onValuesChange,\n });\n });\n // Do not dispose from effect cleanup: Strict Mode and hidden React trees\n // reconnect effects while preserving state. Subscriptions own their cleanup;\n // the controller has no external resources and is collected with its owner.\n return controller;\n}\n\nexport function useFormValue<T extends object, const Path extends FormPath>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): FormReadValue<FormValueAtPath<T, Path>> | undefined {\n const normalized = normalizePath(path);\n return useFormSelector(form, (state) =>\n readPath(state.values, normalized),\n ) as FormReadValue<FormValueAtPath<T, Path>> | undefined;\n}\n\nexport function useFormFieldState<\n T extends object,\n const Path extends FormPath,\n>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): ModernFieldState<FormValueAtPath<T, Path>> | undefined {\n const key = getFieldKey(path);\n return useFormSelector(form, (state) => state.fields[key]) as\n
|
|
1
|
+
{"version":3,"file":"react.js","names":["useContext","useState","useSyncExternalStoreWithSelector","useLayoutEffect","ModernControllerContext","createFormController","getControllerInternals","getFieldKey","normalizePath","readPath","ReactNode","FormController","ModernFieldState","ModernFormState","UseFormControllerOptions","CheckedFormPath","FormValueAtPath","FormReadValue","FormPath","useFormController","options","$","_c","t0","controller","t1","store","t2","onSubmit","onSubmitFailed","onValuesChange","updateCallbacks","useFormValue","form","path","normalized","state","values","useFormSelector","T","Path","useFormFieldState","key","fields","FormSelectorOptions","isEqual","previous","Selected","next","selector","getServerSnapshot","subscribe","getSnapshot","FormSubscribeProps","children","selected","FormSubscribe","props","fromContext","Object","hasOwn","Error","t3","_c"],"sources":["../../../../../src/components/form/Form/modern/react.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';\n\nimport { useLayoutEffect } from '../../../../utils/react/useLayoutEffect';\n\nimport { ModernControllerContext } from './context';\nimport { createFormController, getControllerInternals } from './controller';\nimport { getFieldKey, normalizePath, readPath } from './values';\n\nimport type { ReactNode } from 'react';\nimport type {\n FormController,\n ModernFieldState,\n ModernFormState,\n UseFormControllerOptions,\n} from './controller';\nimport type { CheckedFormPath, FormValueAtPath } from './path-types';\nimport type { FormReadValue } from './read-types';\nimport type { FormPath } from './values';\n\nexport function useFormController<T extends object = Record<string, unknown>>(\n options?: UseFormControllerOptions<T>,\n): FormController<T> {\n // Initial options seed synchronously. A new options object never resets the\n // controller, and the creator does not subscribe its owner to form changes.\n const [controller] = useState(() => createFormController(options));\n const { store } = getControllerInternals(controller, 'Form.useController()');\n // Intentionally commit after every render: callbacks are live, unlike the\n // initial defaults/policy. Abandoned renders must never replace callbacks.\n useLayoutEffect(() => {\n store.updateCallbacks({\n onSubmit: options?.onSubmit,\n onSubmitFailed: options?.onSubmitFailed,\n onValuesChange: options?.onValuesChange,\n });\n });\n // Do not dispose from effect cleanup: Strict Mode and hidden React trees\n // reconnect effects while preserving state. Subscriptions own their cleanup;\n // the controller has no external resources and is collected with its owner.\n return controller;\n}\n\nexport function useFormValue<T extends object, const Path extends FormPath>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): FormReadValue<FormValueAtPath<T, Path>> | undefined {\n const normalized = normalizePath(path);\n return useFormSelector(form, (state) =>\n readPath(state.values, normalized),\n ) as FormReadValue<FormValueAtPath<T, Path>> | undefined;\n}\n\nexport function useFormFieldState<\n T extends object,\n const Path extends FormPath,\n>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): ModernFieldState<FormValueAtPath<T, Path>> | undefined {\n const key = getFieldKey(path);\n return useFormSelector(form, (state) => state.fields[key]) as\n ModernFieldState<FormValueAtPath<T, Path>> | undefined;\n}\n\nexport interface FormSelectorOptions<Selected> {\n isEqual?: (previous: Selected, next: Selected) => boolean;\n}\n\nexport function useFormSelector<T extends object, Selected>(\n controller: FormController<T>,\n selector: (state: ModernFormState<T>) => Selected,\n options?: FormSelectorOptions<Selected>,\n): Selected {\n const { getServerSnapshot } = getControllerInternals(\n controller,\n 'Form.useSelector()',\n );\n return useSyncExternalStoreWithSelector(\n controller.subscribe,\n controller.getSnapshot,\n getServerSnapshot,\n selector,\n options?.isEqual,\n );\n}\n\nexport interface FormSubscribeProps<\n T extends object,\n Selected,\n> extends FormSelectorOptions<Selected> {\n /** Omit to use modern context. An explicit undefined detaches from context. */\n form?: FormController<T>;\n selector: (state: ModernFormState<T>) => Selected;\n children: (selected: Selected) => ReactNode;\n}\n\nexport function FormSubscribe<\n T extends object = Record<string, unknown>,\n Selected = unknown,\n>(props: FormSubscribeProps<T, Selected>) {\n const fromContext = useContext(ModernControllerContext);\n const controller = Object.hasOwn(props, 'form') ? props.form : fromContext;\n if (!controller) {\n throw new Error(\n '<Form.Subscribe> requires a modern form prop or a modern <Form> root.',\n );\n }\n const selected = useFormSelector(controller, props.selector, {\n isEqual: props.isEqual,\n });\n return <>{props.children(selected)}</>;\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from "@internationalized/date";
|
|
3
|
-
|
|
4
3
|
//#region src/components/form/Form/modern/read-types.d.ts
|
|
5
4
|
type AtomicFormValue = Date | RegExp | File | Blob | Map<any, any> | Set<any> | ((...args: any[]) => any) | CalendarDate | CalendarDateTime | Time | ZonedDateTime;
|
|
6
5
|
/** Partial immutable data; platform and date-control values stay atomic. */
|
|
7
|
-
type FormReadValue<T> = T extends AtomicFormValue ? T : T extends object ? { readonly [K in keyof T]?: FormReadValue<T[K]
|
|
8
|
-
type FormValues<T extends object> = FormReadValue<T>;
|
|
6
|
+
export type FormReadValue<T> = T extends AtomicFormValue ? T : T extends object ? { readonly [K in keyof T]?: FormReadValue<T[K]>; } : T;
|
|
7
|
+
export type FormValues<T extends object> = FormReadValue<T>;
|
|
9
8
|
//#endregion
|
|
10
|
-
export {
|
|
9
|
+
export {};
|
|
11
10
|
//# sourceMappingURL=read-types.d.ts.map
|
|
@@ -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 { FORM_BACKEND } from "../backend.js";
|
|
3
3
|
import { createValueSnapshotter, defineValue, formValueEqual, freezeContainer, getFieldKey, hasPath, isPlainObject, normalizePath, pathValueChanged, readPath, readonlySet, sameMembers, writePath } from "./values.js";
|
|
4
4
|
import { rulesSignature, runRules } from "./validation.js";
|
|
5
|
-
|
|
6
5
|
//#region src/components/form/Form/modern/store.ts
|
|
7
6
|
const EMPTY_ERRORS = Object.freeze([]);
|
|
8
7
|
const EMPTY_OBJECT = Object.freeze({});
|
|
@@ -880,7 +879,7 @@ function createFormStore(inputOptions = {}) {
|
|
|
880
879
|
})
|
|
881
880
|
});
|
|
882
881
|
}
|
|
883
|
-
|
|
884
882
|
//#endregion
|
|
885
883
|
export { createFormStore };
|
|
884
|
+
|
|
886
885
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","names":["FORM_BACKEND","rulesSignature","runRules","createValueSnapshotter","defineValue","formValueEqual","freezeContainer","getFieldKey","hasPath","isPlainObject","normalizePath","pathValueChanged","readonlySet","readPath","sameMembers","writePath","FormValues","CallbackBinding","FieldState","FormCallbacks","FormChange","FormState","FormStore","FormStoreOptions","ModernFieldValidationResult","ModernSubmitResult","ModernValidationResult","RegistrationOptions","RegistrationToken","SetValueOptions","SubmissionToken","ValidationToken","FormPath","PreparedRegistration","Omit","ErrorValue","dependsOn","Registration","options","signature","order","defaultConsidered","FieldRecord","name","path","explicit","registrations","Set","owner","fieldDefault","value","touched","errors","status","validationRevision","validation","AbortController","reads","Map","readsAll","EMPTY_ERRORS","Object","freeze","EMPTY_OBJECT","EMPTY_FIELDS","create","Readonly","Record","related","a","b","slice","Math","min","length","every","key","index","sameDependencies","is","samePaths","ActivePath","terminal","children","projectActive","previous","result","Array","isArray","child","hasOwn","Reflect","get","createFormStore","inputOptions","T","ownValue","records","listeners","notify","values","defaultValues","defaults","submitError","submission","binding","callbacks","onSubmitted","depth","notifying","disposed","pending","changes","cancellations","state","activeValues","fields","dirtyFields","touchedFields","isDirty","isTouched","isValid","isInvalid","isValidating","isSubmitting","canReset","undefined","revision","assertLive","Error","report","error","onListenerError","console","reportError","developmentError","message","process","env","NODE_ENV","onDevelopmentError","ensure","normalized","record","set","dirty","isEqual","invalidate","keepErrors","controller","add","cancelPending","from","delete","abort","dependencyChanged","some","validationReadChanged","invalidateRelated","config","dependency","fieldChanged","revalidate","size","validate","validateTrigger","validateRecord","tree","node","buildSnapshot","dirtyNames","touchedNames","activeCount","validCount","invalid","validating","resettable","field","defaultValue","active","registrationCount","defineProperty","enumerable","next","flush","events","published","listener","has","resolveCallbacks","onValuesChange","change","names","flatMap","event","source","kind","Promise","resolve","catch","batch","fn","push","write","changed","touch","setValue","prepared","setValues","Partial","entries","map","const","checked","prepareRegistration","deps","rules","rule","enum","seed","registration","register","hashFunctions","rulesKey","released","update","validationChanged","validationDelay","errorPolicy","hasNewDefault","preserve","release","deferValueRemoval","sort","removeValue","queueMicrotask","replaceDefaults","keys","forEach","setDefaultValues","currentValues","replace","adoptDefaultValues","when","preserveDirty","candidates","preserved","filter","exists","saved","reset","setFieldErrors","copied","startValidation","current","signal","aborted","complete","cancel","startSubmission","immediate","parentSignal","AbortSignal","stale","token","committed","validationValues","timer","ReturnType","setTimeout","settled","finish","clearTimeout","removeEventListener","addEventListener","once","run","getValue","getValues","delay","paths","targets","runs","revisions","all","then","results","cancelSubmission","bindCallbacks","own","submit","include","reason","pendingValidation","validatedRecords","changedSinceValidation","fromEntries","onSubmitFailed","onSubmit","failure","subscribe","entry","dispose","clear","getSnapshot","getFieldSnapshot","getActiveValues","subscribeSelector","selector","snapshot","Selected","selected","updateCallbacks","blur","clearFieldErrors","setSubmitError","clearSubmitError","debug","listenerCount","reduce","count"],"sources":["../../../../../src/components/form/Form/modern/store.ts"],"sourcesContent":["import { FORM_BACKEND } from '../backend';\n\nimport { rulesSignature, runRules } from './validation';\nimport {\n createValueSnapshotter,\n defineValue,\n formValueEqual,\n freezeContainer,\n getFieldKey,\n hasPath,\n isPlainObject,\n normalizePath,\n pathValueChanged,\n readonlySet,\n readPath,\n sameMembers,\n writePath,\n} from './values';\n\nimport type { FormValues } from './read-types';\nimport type {\n CallbackBinding,\n FieldState,\n FormCallbacks,\n FormChange,\n FormState,\n FormStore,\n FormStoreOptions,\n ModernFieldValidationResult,\n ModernSubmitResult,\n ModernValidationResult,\n RegistrationOptions,\n RegistrationToken,\n SetValueOptions,\n SubmissionToken,\n ValidationToken,\n} from './types';\nimport type { FormPath } from './values';\n\ninterface PreparedRegistration<ErrorValue>\n extends Omit<RegistrationOptions<ErrorValue>, 'dependsOn'> {\n readonly dependsOn?: readonly (readonly string[])[];\n}\n\ninterface Registration<ErrorValue> {\n options: PreparedRegistration<ErrorValue>;\n signature: string;\n order: number;\n defaultConsidered: boolean;\n}\n\ninterface FieldRecord<ErrorValue> {\n name: string;\n path: readonly string[];\n /** Defaults create aggregate metadata; explicit commands/fields own guards. */\n explicit: boolean;\n registrations: Set<Registration<ErrorValue>>;\n owner?: Registration<ErrorValue>;\n fieldDefault?: { value: unknown };\n touched: boolean;\n errors: readonly ErrorValue[];\n status: FieldState['status'];\n validationRevision: number;\n validation?: AbortController;\n reads?: Map<string, readonly string[]>;\n readsAll?: boolean;\n}\n\nconst EMPTY_ERRORS = Object.freeze([]);\nconst EMPTY_OBJECT = Object.freeze({});\nconst EMPTY_FIELDS = Object.freeze(Object.create(null)) as Readonly<\n Record<string, never>\n>;\n\nfunction related(a: readonly string[], b: readonly string[]): boolean {\n return a\n .slice(0, Math.min(a.length, b.length))\n .every((key, index) => key === b[index]);\n}\n\nfunction sameDependencies(\n a: readonly unknown[] = [],\n b: readonly unknown[] = [],\n) {\n return (\n a.length === b.length &&\n a.every((value, index) => Object.is(value, b[index]))\n );\n}\n\nfunction samePaths(\n a: readonly (readonly string[])[] = [],\n b: readonly (readonly string[])[] = [],\n) {\n return (\n a.length === b.length &&\n a.every((path, index) => sameDependencies(path, b[index]))\n );\n}\n\ninterface ActivePath {\n terminal: boolean;\n children: Map<string, ActivePath>;\n}\n\n/** Only traverse path ancestors; a field's value (even cyclic data) is a leaf. */\nfunction projectActive(\n value: unknown,\n path: ActivePath,\n previous: unknown,\n): unknown {\n if (path.terminal) return value;\n const result: Record<string, unknown> | unknown[] = Array.isArray(value)\n ? []\n : {};\n if (isPlainObject(value) || Array.isArray(value)) {\n for (const [key, child] of path.children) {\n if (!Object.hasOwn(value, key)) continue;\n defineValue(\n result,\n key,\n projectActive(\n Reflect.get(value, key),\n child,\n readPath(previous, [key]),\n ),\n );\n }\n }\n return formValueEqual(result, previous) ? previous : freezeContainer(result);\n}\n\n/**\n * Framework-neutral store, registration ownership, and async pipelines.\n * Not exported from the package; React receives the public command facade.\n */\nexport function createFormStore<\n T extends object = Record<string, unknown>,\n ErrorValue = unknown,\n>(\n inputOptions: FormStoreOptions<T, ErrorValue> = {},\n): FormStore<T, ErrorValue> {\n const options = { ...inputOptions };\n const ownValue = createValueSnapshotter();\n const records = new Map<string, FieldRecord<ErrorValue>>();\n // Subscription identity belongs to the registration, not to the callback.\n const listeners = new Set<{ notify: () => void }>();\n let values: object = ownValue(options.defaultValues ?? {});\n let defaults = values;\n let submitError: unknown;\n let submission: AbortController | undefined;\n let binding:\n | { callbacks: FormCallbacks<T, ErrorValue>; onSubmitted?: () => void }\n | undefined;\n let order = 0;\n let depth = 0;\n let notifying = false;\n let disposed = false;\n let pending = false;\n let changes: FormChange[] = [];\n const cancellations = new Set<AbortController>();\n\n let state: FormState<T, ErrorValue> = Object.freeze({\n values: values as FormValues<T>,\n defaultValues: defaults as FormValues<T>,\n activeValues: EMPTY_OBJECT as FormValues<T>,\n fields: EMPTY_FIELDS,\n dirtyFields: readonlySet<string>([]),\n touchedFields: readonlySet<string>([]),\n isDirty: false,\n isTouched: false,\n isValid: false,\n isInvalid: false,\n isValidating: false,\n isSubmitting: false,\n canReset: false,\n submitError: undefined,\n revision: 0,\n });\n\n function assertLive() {\n if (disposed) throw new Error('Cannot use a disposed modern form store.');\n }\n\n function report(error: unknown) {\n try {\n if (options.onListenerError) options.onListenerError(error);\n else console.error('[form-store] Listener failed', error);\n } catch (reportError) {\n // An error reporter must not break delivery to the remaining listeners.\n console.error('[form-store] Error reporter failed', reportError);\n }\n }\n\n function developmentError(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n try {\n if (options.onDevelopmentError) options.onDevelopmentError(message);\n else console.error(`[form-store] ${message}`);\n } catch (error) {\n report(error);\n }\n }\n\n function ensure(path: FormPath, explicit = true): FieldRecord<ErrorValue> {\n const normalized = normalizePath(path);\n const name = getFieldKey(normalized);\n let record = records.get(name);\n if (!record) {\n record = {\n name,\n path: normalized,\n explicit,\n registrations: new Set(),\n touched: false,\n errors: EMPTY_ERRORS,\n status: 'unvalidated',\n validationRevision: 0,\n };\n records.set(name, record);\n }\n record.explicit ||= explicit;\n return record;\n }\n\n function dirty(record: FieldRecord<ErrorValue>): boolean {\n return (\n hasPath(values, record.path) &&\n !(record.owner?.options.isEqual ?? formValueEqual)(\n readPath(values, record.path),\n readPath(defaults, record.path),\n )\n );\n }\n\n function invalidate(record: FieldRecord<ErrorValue>, keepErrors = false) {\n const controller = record.validation;\n record.validation = undefined;\n record.reads = undefined;\n record.readsAll = false;\n record.validationRevision++;\n record.status = 'unvalidated';\n if (!keepErrors) record.errors = EMPTY_ERRORS;\n // Abort handlers are user code. Deliver them after the complete snapshot\n // publishes, so they cannot interleave writes with the command cancelling\n // them (or resurrect a token that command later overwrites).\n if (controller) cancellations.add(controller);\n }\n\n function cancelPending() {\n for (const controller of Array.from(cancellations)) {\n cancellations.delete(controller);\n controller.abort();\n }\n }\n\n function dependencyChanged(\n record: FieldRecord<ErrorValue>,\n previous: object,\n ) {\n return (\n record.owner?.options.dependsOn?.some((path) =>\n pathValueChanged(previous, values, path),\n ) ?? false\n );\n }\n\n function validationReadChanged(\n record: FieldRecord<ErrorValue>,\n previous: object,\n ) {\n if (!record.validation) return false;\n if (record.readsAll && previous !== values) return true;\n for (const path of record.reads?.values() ?? []) {\n if (pathValueChanged(previous, values, path)) return true;\n }\n return false;\n }\n\n function invalidateRelated(\n path: readonly string[],\n previous: object,\n config?: SetValueOptions,\n ) {\n for (const record of records.values()) {\n const dependency = dependencyChanged(record, previous);\n const fieldChanged =\n related(path, record.path) ||\n pathValueChanged(previous, values, record.path);\n if (\n fieldChanged ||\n dependency ||\n validationReadChanged(record, previous)\n ) {\n const revalidate =\n (fieldChanged || dependency) &&\n !!config &&\n !!record.registrations.size &&\n (config.validate === 'always' ||\n (config.validate !== 'never' &&\n (record.owner?.options.validateTrigger === 'onChange' ||\n !!record.errors.length ||\n (dependency && record.status !== 'unvalidated'))));\n invalidate(record, revalidate);\n if (revalidate) void validateRecord(record, false);\n }\n }\n }\n\n function activeValues(): object {\n const tree: ActivePath = { terminal: false, children: new Map() };\n // A registered parent includes its complete object, including inactive\n // descendants. Register only the leaves to submit only those leaves.\n for (const record of records.values()) {\n if (!record.registrations.size || !hasPath(values, record.path)) continue;\n let node = tree;\n for (const key of record.path) {\n let child = node.children.get(key);\n if (!child) {\n child = { terminal: false, children: new Map() };\n node.children.set(key, child);\n }\n node = child;\n }\n node.terminal = true;\n }\n return projectActive(values, tree, state.activeValues) as object;\n }\n\n function buildSnapshot(): FormState<T, ErrorValue> {\n const fields: Record<string, FieldState<ErrorValue>> = Object.create(null);\n const dirtyNames = new Set<string>();\n const touchedNames = new Set<string>();\n let activeCount = 0;\n let validCount = 0;\n let invalid = false;\n let validating = false;\n let resettable = submitError != null;\n for (const record of records.values()) {\n const field: FieldState<ErrorValue> = {\n name: record.name,\n value: readPath(values, record.path),\n defaultValue: readPath(defaults, record.path),\n errors: record.errors,\n status: record.status,\n touched: record.touched,\n dirty: dirty(record),\n active: record.registrations.size > 0,\n registrationCount: record.registrations.size,\n validationRevision: record.validationRevision,\n };\n const previous = state.fields[record.name];\n Object.defineProperty(fields, record.name, {\n value: formValueEqual(field, previous)\n ? previous\n : Object.freeze(field),\n enumerable: true,\n });\n if (field.dirty) dirtyNames.add(record.name);\n if (field.touched) touchedNames.add(record.name);\n resettable ||=\n field.dirty ||\n field.touched ||\n !!field.errors.length ||\n field.status !== 'unvalidated';\n if (field.active) {\n activeCount++;\n if (field.status === 'valid') validCount++;\n invalid ||= field.status === 'invalid';\n validating ||= field.status === 'validating';\n }\n }\n const next: FormState<T, ErrorValue> = {\n values: values as FormValues<T>,\n defaultValues: defaults as FormValues<T>,\n activeValues: activeValues() as FormValues<T>,\n fields: formValueEqual(fields, state.fields)\n ? state.fields\n : Object.freeze(fields),\n dirtyFields: sameMembers(dirtyNames, state.dirtyFields)\n ? state.dirtyFields\n : readonlySet(dirtyNames),\n touchedFields: sameMembers(touchedNames, state.touchedFields)\n ? state.touchedFields\n : readonlySet(touchedNames),\n isDirty: dirtyNames.size > 0,\n isTouched: touchedNames.size > 0,\n isValid: activeCount > 0 && validCount === activeCount,\n isInvalid: invalid,\n isValidating: validating,\n isSubmitting: !!submission,\n canReset: !submission && resettable,\n submitError,\n revision: state.revision,\n };\n if (formValueEqual(next, state)) return state;\n return Object.freeze({ ...next, revision: state.revision + 1 });\n }\n\n function flush() {\n if (depth || notifying || disposed) return;\n notifying = true;\n try {\n while ((pending || cancellations.size) && !disposed) {\n pending = false;\n const events = changes;\n changes = [];\n const previous = state;\n state = buildSnapshot();\n const published = state;\n if (state !== previous) {\n for (const listener of Array.from(listeners)) {\n if (!listeners.has(listener)) continue;\n try {\n listener.notify();\n } catch (error) {\n report(error);\n }\n }\n }\n if (events.length && !disposed && resolveCallbacks().onValuesChange) {\n // One callback per transaction; names are unioned, user source wins,\n // and the final command supplies the transaction's kind.\n const change: FormChange = Object.freeze({\n names: Object.freeze(\n Array.from(new Set(events.flatMap((event) => event.names))),\n ),\n source: events.some((event) => event.source === 'user')\n ? 'user'\n : 'program',\n kind: events[events.length - 1].kind,\n });\n try {\n const result = resolveCallbacks().onValuesChange?.(\n published.values,\n change,\n );\n if (result) Promise.resolve(result).catch(report);\n } catch (error) {\n report(error);\n }\n }\n cancelPending();\n }\n } finally {\n notifying = false;\n }\n }\n\n function batch(fn: () => void) {\n assertLive();\n depth++;\n try {\n fn();\n } finally {\n depth--;\n pending = true;\n flush();\n }\n }\n\n function event(\n names: string[],\n kind: FormChange['kind'],\n source: FormChange['source'] = 'program',\n ) {\n if (names.length) changes.push({ names, kind, source });\n }\n\n function write(\n path: FormPath,\n value: unknown,\n config: SetValueOptions = {},\n ): boolean {\n const normalized = normalizePath(path);\n const previous = values;\n const next = writePath(values, normalized, ownValue(value));\n const record = ensure(normalized);\n const changed = next !== values;\n if (changed) {\n values = next;\n invalidateRelated(record.path, previous, config);\n }\n if (config.touch ?? config.source === 'user') record.touched = true;\n if (changed && (config.notify ?? config.source === 'user')) {\n event([record.name], 'set', config.source);\n }\n return changed;\n }\n\n function setValue(path: FormPath, value: unknown, config?: SetValueOptions) {\n // Validate paths before entering a transaction (no partial invalid writes).\n const normalized = normalizePath(path);\n const prepared = { ...config };\n batch(() => {\n write(normalized, value, prepared);\n });\n }\n\n function setValues(next: Partial<T>, config?: SetValueOptions) {\n assertLive();\n const prepared = { ...config };\n const entries = Object.entries(next).map(\n ([name, value]) => [normalizePath(name), ownValue(value)] as const,\n );\n // Copying input or an invalid array-length write can throw. Check every\n // value/path before the first write, including when inside an outer batch.\n let checked = values;\n for (const [path, value] of entries)\n checked = writePath(checked, path, value);\n batch(() => {\n for (const [path, value] of entries) write(path, value, prepared);\n });\n }\n\n function prepareRegistration(\n path: FormPath,\n config: RegistrationOptions<ErrorValue>,\n ): PreparedRegistration<ErrorValue> {\n const prepared = {\n ...config,\n deps: config.deps ? Object.freeze([...config.deps]) : undefined,\n dependsOn: config.dependsOn?.map((dependency) =>\n Object.freeze(normalizePath(dependency)),\n ),\n rules: config.rules?.map((rule) =>\n Object.freeze({\n ...rule,\n ...(rule.enum ? { enum: Object.freeze([...rule.enum]) } : {}),\n }),\n ),\n };\n if (Object.hasOwn(prepared, 'defaultValue')) {\n prepared.defaultValue = ownValue(prepared.defaultValue);\n const normalized = normalizePath(path);\n if (!hasPath(values, normalized) && !hasPath(defaults, normalized)) {\n writePath(values, normalized, prepared.defaultValue);\n writePath(defaults, normalized, prepared.defaultValue);\n }\n }\n return prepared;\n }\n\n function seed(\n record: FieldRecord<ErrorValue>,\n registration: Registration<ErrorValue>,\n ) {\n if (\n registration.defaultConsidered ||\n !Object.hasOwn(registration.options, 'defaultValue')\n )\n return;\n registration.defaultConsidered = true;\n const value = ownValue(registration.options.defaultValue);\n if (!hasPath(values, record.path) && !hasPath(defaults, record.path)) {\n const previous = values;\n values = writePath(values, record.path, value);\n defaults = writePath(defaults, record.path, value);\n record.fieldDefault = { value };\n invalidateRelated(record.path, previous);\n } else if (\n record.fieldDefault &&\n record.registrations.size > 1 &&\n !formValueEqual(record.fieldDefault.value, value)\n ) {\n developmentError(\n `Field \"${record.name}\" registered with conflicting defaultValue; the first default is kept.`,\n );\n }\n }\n\n function register(\n path: FormPath,\n config: RegistrationOptions<ErrorValue> = {},\n ): RegistrationToken<ErrorValue> {\n assertLive();\n const normalized = normalizePath(path);\n const prepared = prepareRegistration(normalized, config);\n const signature = rulesSignature(prepared.rules, {\n hashFunctions: prepared.rulesKey === undefined,\n });\n const record = ensure(normalized);\n const registration: Registration<ErrorValue> = {\n options: prepared,\n signature,\n order: ++order,\n defaultConsidered: false,\n };\n let released = false;\n batch(() => {\n record.registrations.add(registration);\n record.owner = registration;\n seed(record, registration);\n invalidate(record);\n });\n return Object.freeze({\n name: record.name,\n get released() {\n return released || disposed;\n },\n update(next: RegistrationOptions<ErrorValue>) {\n if (released || disposed) return;\n const prepared = prepareRegistration(record.path, next);\n const signature = rulesSignature(prepared.rules, {\n hashFunctions: prepared.rulesKey === undefined,\n });\n const validationChanged =\n registration.signature !== signature ||\n registration.options.rulesKey !== prepared.rulesKey ||\n !sameDependencies(registration.options.deps, prepared.deps) ||\n !samePaths(registration.options.dependsOn, prepared.dependsOn) ||\n registration.options.validationDelay !== prepared.validationDelay ||\n registration.options.validateTrigger !== prepared.validateTrigger ||\n registration.options.errorPolicy !== prepared.errorPolicy;\n const hasNewDefault =\n !registration.defaultConsidered &&\n Object.hasOwn(prepared, 'defaultValue');\n if (\n !hasNewDefault &&\n !validationChanged &&\n (registration.options.preserve ?? true) ===\n (prepared.preserve ?? true) &&\n registration.options.isEqual === prepared.isEqual\n ) {\n // Keep the latest closures/messages without invalidating equivalent rules.\n registration.options = prepared;\n return;\n }\n batch(() => {\n registration.options = prepared;\n registration.signature = signature;\n registration.order = ++order;\n // Only an ownership change invalidates; equivalent options pushed\n // after every React commit must not cause a publication loop.\n const revalidate =\n validationChanged && record.status !== 'unvalidated';\n if (record.owner !== registration || validationChanged)\n invalidate(record, revalidate);\n record.owner = registration;\n seed(record, registration);\n if (revalidate) void validateRecord(record, false);\n });\n },\n release(config: { deferValueRemoval?: boolean } = {}) {\n if (released || disposed) return;\n released = true;\n batch(() => {\n record.registrations.delete(registration);\n if (record.owner === registration) {\n record.owner = Array.from(record.registrations).sort(\n (a, b) => b.order - a.order,\n )[0];\n invalidate(record);\n }\n if (!record.registrations.size) {\n if (registration.options.preserve === false) {\n const removeValue = () => {\n const previous = values;\n values = writePath(values, record.path, undefined, true);\n record.touched = false;\n invalidateRelated(record.path, previous, { validate: 'auto' });\n if (!hasPath(defaults, record.path))\n records.delete(record.name);\n };\n if (config.deferValueRemoval) {\n // Unregister and abort immediately. Only destructive retention\n // cleanup waits one microtask, allowing Strict Mode's effect\n // replay to reconnect without losing the current value.\n const revision = record.validationRevision;\n queueMicrotask(() => {\n if (\n !disposed &&\n records.get(record.name) === record &&\n !record.registrations.size &&\n record.validationRevision === revision\n )\n batch(removeValue);\n });\n } else removeValue();\n }\n if (\n !hasPath(values, record.path) &&\n !hasPath(defaults, record.path)\n )\n records.delete(record.name);\n }\n });\n },\n });\n }\n\n function replaceDefaults(next: Partial<T>) {\n const entries = Object.keys(next);\n entries.forEach((name) => normalizePath(name));\n defaults = ownValue(next);\n for (const name of entries) ensure(name, false);\n for (const record of records.values()) record.fieldDefault = undefined;\n }\n\n function setDefaultValues(\n next: Partial<T>,\n config: { currentValues?: 'preserve' | 'replace' } = {},\n ) {\n const replace = config.currentValues === 'replace';\n batch(() => {\n replaceDefaults(next);\n if (replace) {\n values = defaults;\n for (const record of records.values()) {\n invalidate(record);\n record.touched = false;\n }\n event(Array.from(records.keys()), 'defaults');\n }\n });\n }\n\n function adoptDefaultValues(\n next: Partial<T>,\n config: {\n when?: 'untouched' | 'clean' | 'always';\n preserveDirty?: boolean;\n } = {},\n ) {\n const when = config.when ?? 'untouched';\n const preserveDirty = config.preserveDirty ?? false;\n batch(() => {\n // Retain edits at the narrowest guarded field path. This also protects a\n // nested edited leaf when the server replaces its containing object.\n const candidates = Array.from(records.values());\n const preserved = candidates\n .filter((record) => {\n // An implicitly tracked parent must not shield untouched siblings\n // when an explicit nested field is the actual edited control.\n if (\n !record.explicit &&\n candidates.some(\n (child) =>\n child.explicit &&\n child.path.length > record.path.length &&\n related(record.path, child.path),\n )\n )\n return false;\n return (\n (when === 'untouched' && record.touched) ||\n (when === 'clean' && dirty(record)) ||\n (preserveDirty && dirty(record))\n );\n })\n .map((record) => ({\n path: record.path,\n exists: hasPath(values, record.path),\n value: readPath(values, record.path),\n }));\n const previous = values;\n replaceDefaults(next);\n values = defaults;\n for (const saved of preserved.sort(\n (a, b) => a.path.length - b.path.length,\n )) {\n values = writePath(values, saved.path, saved.value, !saved.exists);\n }\n const names: string[] = [];\n for (const record of records.values()) {\n const changed = pathValueChanged(previous, values, record.path);\n if (\n changed ||\n dependencyChanged(record, previous) ||\n validationReadChanged(record, previous)\n )\n invalidate(record);\n if (changed) names.push(record.name);\n }\n event(names, 'adopt');\n });\n }\n\n function reset(config: { values?: Partial<T> } = {}) {\n batch(() => {\n if (Object.hasOwn(config, 'values')) replaceDefaults(config.values ?? {});\n values = defaults;\n const names = Array.from(records.keys());\n for (const record of records.values()) {\n invalidate(record);\n record.touched = false;\n if (!record.registrations.size && !hasPath(values, record.path))\n records.delete(record.name);\n }\n const previous = submission;\n submission = undefined;\n submitError = undefined;\n if (previous) cancellations.add(previous);\n event(names, 'reset');\n });\n }\n\n function setFieldErrors(path: FormPath, errors: readonly ErrorValue[]) {\n assertLive();\n const copied = errors.length ? Object.freeze([...errors]) : EMPTY_ERRORS;\n batch(() => {\n const record = ensure(path);\n const status = copied.length ? 'invalid' : 'valid';\n if (record.status === status && formValueEqual(record.errors, copied))\n return;\n invalidate(record);\n record.errors = copied;\n record.status = status;\n });\n }\n\n function startValidation(path: FormPath): ValidationToken<ErrorValue> {\n assertLive();\n const record = records.get(getFieldKey(path));\n if (!record?.registrations.size)\n throw new Error('Only active form fields can validate.');\n const controller = new AbortController();\n batch(() => {\n invalidate(record, true);\n record.validation = controller;\n record.status = 'validating';\n });\n const current = () =>\n !disposed &&\n record.validation === controller &&\n !controller.signal.aborted;\n return Object.freeze({\n signal: controller.signal,\n complete(errors: readonly ErrorValue[]) {\n if (!current()) return false;\n const copied = errors.length\n ? Object.freeze([...errors])\n : EMPTY_ERRORS;\n batch(() => {\n record.validation = undefined;\n record.reads = undefined;\n record.readsAll = false;\n record.errors = copied;\n record.status = copied.length ? 'invalid' : 'valid';\n });\n return true;\n },\n cancel() {\n if (current())\n batch(() => {\n invalidate(record, true);\n });\n },\n });\n }\n\n function startSubmission(): SubmissionToken | undefined {\n assertLive();\n if (submission) return undefined;\n const controller = new AbortController();\n batch(() => {\n submission = controller;\n submitError = undefined;\n });\n return Object.freeze({\n signal: controller.signal,\n complete(result?: { error: unknown }) {\n if (disposed || submission !== controller || controller.signal.aborted)\n return false;\n const error = result?.error;\n batch(() => {\n submission = undefined;\n submitError = error;\n });\n return true;\n },\n });\n }\n\n function validateRecord(\n record: FieldRecord<ErrorValue>,\n immediate: boolean,\n parentSignal?: AbortSignal,\n ): Promise<ModernFieldValidationResult<ErrorValue>> {\n const result = (errors: readonly ErrorValue[], stale = false) => ({\n name: record.name,\n errors,\n isValid: !stale && !errors.length,\n stale,\n });\n if (parentSignal?.aborted)\n return Promise.resolve(result(EMPTY_ERRORS, true));\n const config = record.owner?.options;\n const rules = config?.rules ?? [];\n const token = startValidation(record.path);\n const revision = record.validationRevision;\n if (token.signal.aborted || parentSignal?.aborted) {\n token.cancel();\n return Promise.resolve(result(EMPTY_ERRORS, true));\n }\n if (!rules.length) {\n record.reads = undefined;\n record.readsAll = false;\n const committed = token.complete(EMPTY_ERRORS);\n return Promise.resolve(\n result(\n EMPTY_ERRORS,\n !committed || record.validationRevision !== revision,\n ),\n );\n }\n const validationValues = values;\n const reads = new Map<string, readonly string[]>();\n record.reads = reads;\n record.readsAll = false;\n const value = readPath(validationValues, record.path);\n return new Promise((resolve) => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n let settled = false;\n const finish = (errors: readonly ErrorValue[], stale: boolean) => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n token.signal.removeEventListener('abort', abort);\n parentSignal?.removeEventListener('abort', cancel);\n resolve(result(errors, stale));\n };\n const abort = () => finish(EMPTY_ERRORS, true);\n const cancel = () => token.cancel();\n token.signal.addEventListener('abort', abort, { once: true });\n parentSignal?.addEventListener('abort', cancel, { once: true });\n const run = async () => {\n timer = undefined;\n const errors = await runRules(\n value,\n rules,\n {\n name: record.name,\n signal: token.signal,\n getValue: (path) => {\n const normalized = normalizePath(path);\n if (!settled && !token.signal.aborted) {\n reads.set(getFieldKey(normalized), normalized);\n if (pathValueChanged(validationValues, values, normalized))\n token.cancel();\n }\n return readPath(validationValues, normalized);\n },\n getValues: () => {\n if (!settled && !token.signal.aborted) {\n record.readsAll = true;\n if (values !== validationValues) token.cancel();\n }\n return validationValues as FormValues<T>;\n },\n },\n config?.errorPolicy ?? options.errorPolicy ?? 'first',\n );\n if (!settled) {\n const committed = token.complete(errors);\n finish(\n Object.freeze(errors),\n !committed ||\n record.validationRevision !== revision ||\n !!parentSignal?.aborted,\n );\n }\n };\n const delay = immediate ? 0 : config?.validationDelay ?? 0;\n if (delay > 0) timer = setTimeout(() => void run(), delay);\n else void run();\n });\n }\n\n function validate(\n paths?: readonly FormPath[],\n config: { immediate?: boolean; signal?: AbortSignal } = {},\n ): Promise<ModernValidationResult<ErrorValue>> {\n assertLive();\n const targets = paths\n ? Array.from(new Set(paths.map(getFieldKey))).map((key) =>\n records.get(key),\n )\n : Array.from(records.values());\n const active = targets.filter(\n (record): record is FieldRecord<ErrorValue> =>\n !!record?.registrations.size,\n );\n let runs: Promise<ModernFieldValidationResult<ErrorValue>>[] = [];\n let revisions: number[] = [];\n batch(() => {\n runs = active.map((record) =>\n validateRecord(record, config.immediate ?? true, config.signal),\n );\n // Capture before publishing: a synchronous subscriber can edit/reset.\n revisions = active.map((record) => record.validationRevision);\n });\n return Promise.all(runs).then((results) => {\n const fields = results.map((result, index) => {\n const record = active[index];\n return record.validationRevision === revisions[index] &&\n !!record.registrations.size &&\n !config.signal?.aborted\n ? result\n : { ...result, stale: true, isValid: false };\n });\n return {\n fields,\n stale: fields.some((field) => field.stale) || !!config.signal?.aborted,\n isValid: !!fields.length && fields.every((field) => field.isValid),\n };\n });\n }\n\n function resolveCallbacks(): FormCallbacks<T, ErrorValue> {\n return { ...options, ...binding?.callbacks };\n }\n\n function cancelSubmission() {\n batch(() => {\n if (submission) cancellations.add(submission);\n submission = undefined;\n });\n }\n\n function bindCallbacks(\n callbacks: FormCallbacks<T, ErrorValue>,\n onSubmitted?: () => void,\n ): CallbackBinding<T, ErrorValue> {\n assertLive();\n if (binding)\n developmentError(\n 'A second Form root owns this controller; the newest callback binding wins.',\n );\n const own = { callbacks: { ...callbacks }, onSubmitted };\n binding = own;\n let released = false;\n return Object.freeze({\n update(next: FormCallbacks<T, ErrorValue>) {\n if (!released && !disposed && binding === own)\n own.callbacks = { ...next };\n },\n release() {\n if (released || disposed) return;\n released = true;\n if (binding === own) {\n binding = undefined;\n cancelSubmission();\n }\n },\n });\n }\n\n async function submit(\n config: { include?: 'active' | 'all' } = {},\n ): Promise<ModernSubmitResult<ErrorValue>> {\n const token = startSubmission();\n if (!token) return { status: 'ignored', reason: 'submitting' };\n const include = config.include ?? 'active';\n // Cancellation settles promptly even if a validator or callback ignores its signal.\n return new Promise((resolve) => {\n let settled = false;\n const finish = (result: ModernSubmitResult<ErrorValue>) => {\n if (settled) return;\n settled = true;\n token.signal.removeEventListener('abort', abort);\n resolve(result);\n };\n const abort = () => finish({ status: 'stale' });\n token.signal.addEventListener('abort', abort, { once: true });\n if (token.signal.aborted) {\n abort();\n return;\n }\n const run = async () => {\n const pendingValidation = validate(undefined, { signal: token.signal });\n const validatedRecords = Array.from(records.values()).filter(\n (record) => record.registrations.size,\n );\n const revisions = validatedRecords.map(\n (record) => record.validationRevision,\n );\n const validation = await pendingValidation;\n if (settled) return;\n const changedSinceValidation =\n validatedRecords.length !== validation.fields.length ||\n validatedRecords.length !==\n Array.from(records.values()).filter(\n (record) => record.registrations.size,\n ).length ||\n validatedRecords.some(\n (record, index) =>\n !record.registrations.size ||\n record.validationRevision !== revisions[index],\n );\n if (validation.stale || changedSinceValidation) {\n token.complete();\n finish({ status: 'stale' });\n return;\n }\n const owner = binding;\n const callbacks = resolveCallbacks();\n let result: ModernSubmitResult<ErrorValue>;\n if (!validation.isValid) {\n const errors = Object.fromEntries(\n validation.fields\n .filter((field) => !field.isValid)\n .map((field) => [field.name, field.errors]),\n );\n result = { status: 'invalid', errors: Object.freeze(errors) };\n try {\n await callbacks.onSubmitFailed?.({\n status: 'invalid',\n errors: Object.freeze(errors),\n });\n } catch (error) {\n report(error);\n }\n if (!settled) {\n token.complete();\n finish(result);\n }\n return;\n }\n try {\n await callbacks.onSubmit?.(\n (include === 'all' ? values : activeValues()) as FormValues<T>,\n { include, signal: token.signal },\n );\n result = { status: 'submitted' };\n } catch (error) {\n if (settled) return;\n // Keep the guard active while failure callbacks run.\n batch(() => {\n submitError = error;\n });\n try {\n await callbacks.onSubmitFailed?.({ status: 'failed', error });\n } catch (failure) {\n report(failure);\n }\n result = { status: 'failed', error };\n }\n if (!settled) {\n token.complete(\n result.status === 'failed' ? { error: result.error } : undefined,\n );\n finish(result);\n // Finish before a wrapper closes/unmounts its root. Closing must not\n // turn a successful submission into a stale result.\n if (result.status === 'submitted' && binding === owner) {\n try {\n owner?.onSubmitted?.();\n } catch (error) {\n report(error);\n }\n }\n }\n };\n void run().catch((error) => {\n if (!settled) {\n token.complete({ error });\n finish({ status: 'failed', error });\n }\n });\n });\n }\n\n function subscribe(listener: () => void) {\n assertLive();\n const entry = { notify: listener };\n listeners.add(entry);\n return () => {\n listeners.delete(entry);\n };\n }\n\n function dispose() {\n if (disposed) return;\n disposed = true;\n listeners.clear();\n binding = undefined;\n changes = [];\n pending = false;\n for (const record of records.values()) {\n record.registrations.clear();\n record.owner = undefined;\n invalidate(record);\n }\n const previous = submission;\n submission = undefined;\n if (previous) cancellations.add(previous);\n state = buildSnapshot();\n records.clear();\n cancelPending();\n }\n\n for (const name of Object.keys(values)) ensure(name, false);\n state = buildSnapshot();\n\n return Object.freeze({\n [FORM_BACKEND]: 'modern' as const,\n getSnapshot: () => state,\n getFieldSnapshot: (path: FormPath) => state.fields[getFieldKey(path)],\n getValue: (path: FormPath) => readPath(values, normalizePath(path)),\n getValues: () => values as FormValues<T>,\n getActiveValues: () => activeValues() as FormValues<T>,\n subscribe,\n subscribeSelector<Selected>(\n selector: (snapshot: FormState<T, ErrorValue>) => Selected,\n listener: (value: Selected, previous: Selected) => void,\n isEqual: (a: Selected, b: Selected) => boolean = Object.is,\n ) {\n let selected = selector(state);\n return subscribe(() => {\n const next = selector(state);\n if (isEqual(selected, next)) return;\n const previous = selected;\n selected = next;\n listener(next, previous);\n });\n },\n register,\n validate,\n submit,\n bindCallbacks,\n cancelSubmission,\n updateCallbacks(callbacks: FormCallbacks<T, ErrorValue>) {\n options.onSubmit = callbacks.onSubmit;\n options.onSubmitFailed = callbacks.onSubmitFailed;\n options.onValuesChange = callbacks.onValuesChange;\n },\n blur(path: FormPath) {\n const record = records.get(getFieldKey(path));\n if (!record?.registrations.size) return;\n batch(() => {\n record.touched = true;\n if ((record.owner?.options.validateTrigger ?? 'onBlur') === 'onBlur')\n void validateRecord(record, false);\n });\n },\n setValue,\n setValues,\n batch,\n setDefaultValues,\n adoptDefaultValues,\n reset,\n touch(path: FormPath, touched = true) {\n batch(() => {\n ensure(path).touched = touched;\n });\n },\n setFieldErrors,\n clearFieldErrors: (path: FormPath) => setFieldErrors(path, EMPTY_ERRORS),\n startValidation,\n startSubmission,\n setSubmitError(error: unknown) {\n batch(() => {\n submitError = error;\n });\n },\n clearSubmitError() {\n batch(() => {\n submitError = undefined;\n });\n },\n dispose,\n debug: Object.freeze({\n listenerCount: () => listeners.size,\n registrationCount: () =>\n Array.from(records.values()).reduce(\n (count, record) => count + record.registrations.size,\n 0,\n ),\n }),\n }) as FormStore<T, ErrorValue>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","names":["FORM_BACKEND","rulesSignature","runRules","createValueSnapshotter","defineValue","formValueEqual","freezeContainer","getFieldKey","hasPath","isPlainObject","normalizePath","pathValueChanged","readonlySet","readPath","sameMembers","writePath","FormValues","CallbackBinding","FieldState","FormCallbacks","FormChange","FormState","FormStore","FormStoreOptions","ModernFieldValidationResult","ModernSubmitResult","ModernValidationResult","RegistrationOptions","RegistrationToken","SetValueOptions","SubmissionToken","ValidationToken","FormPath","PreparedRegistration","Omit","ErrorValue","dependsOn","Registration","options","signature","order","defaultConsidered","FieldRecord","name","path","explicit","registrations","Set","owner","fieldDefault","value","touched","errors","status","validationRevision","validation","AbortController","reads","Map","readsAll","EMPTY_ERRORS","Object","freeze","EMPTY_OBJECT","EMPTY_FIELDS","create","Readonly","Record","related","a","b","slice","Math","min","length","every","key","index","sameDependencies","is","samePaths","ActivePath","terminal","children","projectActive","previous","result","Array","isArray","child","hasOwn","Reflect","get","createFormStore","inputOptions","T","ownValue","records","listeners","notify","values","defaultValues","defaults","submitError","submission","binding","callbacks","onSubmitted","depth","notifying","disposed","pending","changes","cancellations","state","activeValues","fields","dirtyFields","touchedFields","isDirty","isTouched","isValid","isInvalid","isValidating","isSubmitting","canReset","undefined","revision","assertLive","Error","report","error","onListenerError","console","reportError","developmentError","message","process","env","NODE_ENV","onDevelopmentError","ensure","normalized","record","set","dirty","isEqual","invalidate","keepErrors","controller","add","cancelPending","from","delete","abort","dependencyChanged","some","validationReadChanged","invalidateRelated","config","dependency","fieldChanged","revalidate","size","validate","validateTrigger","validateRecord","tree","node","buildSnapshot","dirtyNames","touchedNames","activeCount","validCount","invalid","validating","resettable","field","defaultValue","active","registrationCount","defineProperty","enumerable","next","flush","events","published","listener","has","resolveCallbacks","onValuesChange","change","names","flatMap","event","source","kind","Promise","resolve","catch","batch","fn","push","write","changed","touch","setValue","prepared","setValues","Partial","entries","map","const","checked","prepareRegistration","deps","rules","rule","enum","seed","registration","register","hashFunctions","rulesKey","released","update","validationChanged","validationDelay","errorPolicy","hasNewDefault","preserve","release","deferValueRemoval","sort","removeValue","queueMicrotask","replaceDefaults","keys","forEach","setDefaultValues","currentValues","replace","adoptDefaultValues","when","preserveDirty","candidates","preserved","filter","exists","saved","reset","setFieldErrors","copied","startValidation","current","signal","aborted","complete","cancel","startSubmission","immediate","parentSignal","AbortSignal","stale","token","committed","validationValues","timer","ReturnType","setTimeout","settled","finish","clearTimeout","removeEventListener","addEventListener","once","run","getValue","getValues","delay","paths","targets","runs","revisions","all","then","results","cancelSubmission","bindCallbacks","own","submit","include","reason","pendingValidation","validatedRecords","changedSinceValidation","fromEntries","onSubmitFailed","onSubmit","failure","subscribe","entry","dispose","clear","getSnapshot","getFieldSnapshot","getActiveValues","subscribeSelector","selector","snapshot","Selected","selected","updateCallbacks","blur","clearFieldErrors","setSubmitError","clearSubmitError","debug","listenerCount","reduce","count"],"sources":["../../../../../src/components/form/Form/modern/store.ts"],"sourcesContent":["import { FORM_BACKEND } from '../backend';\n\nimport { rulesSignature, runRules } from './validation';\nimport {\n createValueSnapshotter,\n defineValue,\n formValueEqual,\n freezeContainer,\n getFieldKey,\n hasPath,\n isPlainObject,\n normalizePath,\n pathValueChanged,\n readonlySet,\n readPath,\n sameMembers,\n writePath,\n} from './values';\n\nimport type { FormValues } from './read-types';\nimport type {\n CallbackBinding,\n FieldState,\n FormCallbacks,\n FormChange,\n FormState,\n FormStore,\n FormStoreOptions,\n ModernFieldValidationResult,\n ModernSubmitResult,\n ModernValidationResult,\n RegistrationOptions,\n RegistrationToken,\n SetValueOptions,\n SubmissionToken,\n ValidationToken,\n} from './types';\nimport type { FormPath } from './values';\n\ninterface PreparedRegistration<ErrorValue> extends Omit<\n RegistrationOptions<ErrorValue>,\n 'dependsOn'\n> {\n readonly dependsOn?: readonly (readonly string[])[];\n}\n\ninterface Registration<ErrorValue> {\n options: PreparedRegistration<ErrorValue>;\n signature: string;\n order: number;\n defaultConsidered: boolean;\n}\n\ninterface FieldRecord<ErrorValue> {\n name: string;\n path: readonly string[];\n /** Defaults create aggregate metadata; explicit commands/fields own guards. */\n explicit: boolean;\n registrations: Set<Registration<ErrorValue>>;\n owner?: Registration<ErrorValue>;\n fieldDefault?: { value: unknown };\n touched: boolean;\n errors: readonly ErrorValue[];\n status: FieldState['status'];\n validationRevision: number;\n validation?: AbortController;\n reads?: Map<string, readonly string[]>;\n readsAll?: boolean;\n}\n\nconst EMPTY_ERRORS = Object.freeze([]);\nconst EMPTY_OBJECT = Object.freeze({});\nconst EMPTY_FIELDS = Object.freeze(Object.create(null)) as Readonly<\n Record<string, never>\n>;\n\nfunction related(a: readonly string[], b: readonly string[]): boolean {\n return a\n .slice(0, Math.min(a.length, b.length))\n .every((key, index) => key === b[index]);\n}\n\nfunction sameDependencies(\n a: readonly unknown[] = [],\n b: readonly unknown[] = [],\n) {\n return (\n a.length === b.length &&\n a.every((value, index) => Object.is(value, b[index]))\n );\n}\n\nfunction samePaths(\n a: readonly (readonly string[])[] = [],\n b: readonly (readonly string[])[] = [],\n) {\n return (\n a.length === b.length &&\n a.every((path, index) => sameDependencies(path, b[index]))\n );\n}\n\ninterface ActivePath {\n terminal: boolean;\n children: Map<string, ActivePath>;\n}\n\n/** Only traverse path ancestors; a field's value (even cyclic data) is a leaf. */\nfunction projectActive(\n value: unknown,\n path: ActivePath,\n previous: unknown,\n): unknown {\n if (path.terminal) return value;\n const result: Record<string, unknown> | unknown[] = Array.isArray(value)\n ? []\n : {};\n if (isPlainObject(value) || Array.isArray(value)) {\n for (const [key, child] of path.children) {\n if (!Object.hasOwn(value, key)) continue;\n defineValue(\n result,\n key,\n projectActive(\n Reflect.get(value, key),\n child,\n readPath(previous, [key]),\n ),\n );\n }\n }\n return formValueEqual(result, previous) ? previous : freezeContainer(result);\n}\n\n/**\n * Framework-neutral store, registration ownership, and async pipelines.\n * Not exported from the package; React receives the public command facade.\n */\nexport function createFormStore<\n T extends object = Record<string, unknown>,\n ErrorValue = unknown,\n>(\n inputOptions: FormStoreOptions<T, ErrorValue> = {},\n): FormStore<T, ErrorValue> {\n const options = { ...inputOptions };\n const ownValue = createValueSnapshotter();\n const records = new Map<string, FieldRecord<ErrorValue>>();\n // Subscription identity belongs to the registration, not to the callback.\n const listeners = new Set<{ notify: () => void }>();\n let values: object = ownValue(options.defaultValues ?? {});\n let defaults = values;\n let submitError: unknown;\n let submission: AbortController | undefined;\n let binding:\n | { callbacks: FormCallbacks<T, ErrorValue>; onSubmitted?: () => void }\n | undefined;\n let order = 0;\n let depth = 0;\n let notifying = false;\n let disposed = false;\n let pending = false;\n let changes: FormChange[] = [];\n const cancellations = new Set<AbortController>();\n\n let state: FormState<T, ErrorValue> = Object.freeze({\n values: values as FormValues<T>,\n defaultValues: defaults as FormValues<T>,\n activeValues: EMPTY_OBJECT as FormValues<T>,\n fields: EMPTY_FIELDS,\n dirtyFields: readonlySet<string>([]),\n touchedFields: readonlySet<string>([]),\n isDirty: false,\n isTouched: false,\n isValid: false,\n isInvalid: false,\n isValidating: false,\n isSubmitting: false,\n canReset: false,\n submitError: undefined,\n revision: 0,\n });\n\n function assertLive() {\n if (disposed) throw new Error('Cannot use a disposed modern form store.');\n }\n\n function report(error: unknown) {\n try {\n if (options.onListenerError) options.onListenerError(error);\n else console.error('[form-store] Listener failed', error);\n } catch (reportError) {\n // An error reporter must not break delivery to the remaining listeners.\n console.error('[form-store] Error reporter failed', reportError);\n }\n }\n\n function developmentError(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n try {\n if (options.onDevelopmentError) options.onDevelopmentError(message);\n else console.error(`[form-store] ${message}`);\n } catch (error) {\n report(error);\n }\n }\n\n function ensure(path: FormPath, explicit = true): FieldRecord<ErrorValue> {\n const normalized = normalizePath(path);\n const name = getFieldKey(normalized);\n let record = records.get(name);\n if (!record) {\n record = {\n name,\n path: normalized,\n explicit,\n registrations: new Set(),\n touched: false,\n errors: EMPTY_ERRORS,\n status: 'unvalidated',\n validationRevision: 0,\n };\n records.set(name, record);\n }\n record.explicit ||= explicit;\n return record;\n }\n\n function dirty(record: FieldRecord<ErrorValue>): boolean {\n return (\n hasPath(values, record.path) &&\n !(record.owner?.options.isEqual ?? formValueEqual)(\n readPath(values, record.path),\n readPath(defaults, record.path),\n )\n );\n }\n\n function invalidate(record: FieldRecord<ErrorValue>, keepErrors = false) {\n const controller = record.validation;\n record.validation = undefined;\n record.reads = undefined;\n record.readsAll = false;\n record.validationRevision++;\n record.status = 'unvalidated';\n if (!keepErrors) record.errors = EMPTY_ERRORS;\n // Abort handlers are user code. Deliver them after the complete snapshot\n // publishes, so they cannot interleave writes with the command cancelling\n // them (or resurrect a token that command later overwrites).\n if (controller) cancellations.add(controller);\n }\n\n function cancelPending() {\n for (const controller of Array.from(cancellations)) {\n cancellations.delete(controller);\n controller.abort();\n }\n }\n\n function dependencyChanged(\n record: FieldRecord<ErrorValue>,\n previous: object,\n ) {\n return (\n record.owner?.options.dependsOn?.some((path) =>\n pathValueChanged(previous, values, path),\n ) ?? false\n );\n }\n\n function validationReadChanged(\n record: FieldRecord<ErrorValue>,\n previous: object,\n ) {\n if (!record.validation) return false;\n if (record.readsAll && previous !== values) return true;\n for (const path of record.reads?.values() ?? []) {\n if (pathValueChanged(previous, values, path)) return true;\n }\n return false;\n }\n\n function invalidateRelated(\n path: readonly string[],\n previous: object,\n config?: SetValueOptions,\n ) {\n for (const record of records.values()) {\n const dependency = dependencyChanged(record, previous);\n const fieldChanged =\n related(path, record.path) ||\n pathValueChanged(previous, values, record.path);\n if (\n fieldChanged ||\n dependency ||\n validationReadChanged(record, previous)\n ) {\n const revalidate =\n (fieldChanged || dependency) &&\n !!config &&\n !!record.registrations.size &&\n (config.validate === 'always' ||\n (config.validate !== 'never' &&\n (record.owner?.options.validateTrigger === 'onChange' ||\n !!record.errors.length ||\n (dependency && record.status !== 'unvalidated'))));\n invalidate(record, revalidate);\n if (revalidate) void validateRecord(record, false);\n }\n }\n }\n\n function activeValues(): object {\n const tree: ActivePath = { terminal: false, children: new Map() };\n // A registered parent includes its complete object, including inactive\n // descendants. Register only the leaves to submit only those leaves.\n for (const record of records.values()) {\n if (!record.registrations.size || !hasPath(values, record.path)) continue;\n let node = tree;\n for (const key of record.path) {\n let child = node.children.get(key);\n if (!child) {\n child = { terminal: false, children: new Map() };\n node.children.set(key, child);\n }\n node = child;\n }\n node.terminal = true;\n }\n return projectActive(values, tree, state.activeValues) as object;\n }\n\n function buildSnapshot(): FormState<T, ErrorValue> {\n const fields: Record<string, FieldState<ErrorValue>> = Object.create(null);\n const dirtyNames = new Set<string>();\n const touchedNames = new Set<string>();\n let activeCount = 0;\n let validCount = 0;\n let invalid = false;\n let validating = false;\n let resettable = submitError != null;\n for (const record of records.values()) {\n const field: FieldState<ErrorValue> = {\n name: record.name,\n value: readPath(values, record.path),\n defaultValue: readPath(defaults, record.path),\n errors: record.errors,\n status: record.status,\n touched: record.touched,\n dirty: dirty(record),\n active: record.registrations.size > 0,\n registrationCount: record.registrations.size,\n validationRevision: record.validationRevision,\n };\n const previous = state.fields[record.name];\n Object.defineProperty(fields, record.name, {\n value: formValueEqual(field, previous)\n ? previous\n : Object.freeze(field),\n enumerable: true,\n });\n if (field.dirty) dirtyNames.add(record.name);\n if (field.touched) touchedNames.add(record.name);\n resettable ||=\n field.dirty ||\n field.touched ||\n !!field.errors.length ||\n field.status !== 'unvalidated';\n if (field.active) {\n activeCount++;\n if (field.status === 'valid') validCount++;\n invalid ||= field.status === 'invalid';\n validating ||= field.status === 'validating';\n }\n }\n const next: FormState<T, ErrorValue> = {\n values: values as FormValues<T>,\n defaultValues: defaults as FormValues<T>,\n activeValues: activeValues() as FormValues<T>,\n fields: formValueEqual(fields, state.fields)\n ? state.fields\n : Object.freeze(fields),\n dirtyFields: sameMembers(dirtyNames, state.dirtyFields)\n ? state.dirtyFields\n : readonlySet(dirtyNames),\n touchedFields: sameMembers(touchedNames, state.touchedFields)\n ? state.touchedFields\n : readonlySet(touchedNames),\n isDirty: dirtyNames.size > 0,\n isTouched: touchedNames.size > 0,\n isValid: activeCount > 0 && validCount === activeCount,\n isInvalid: invalid,\n isValidating: validating,\n isSubmitting: !!submission,\n canReset: !submission && resettable,\n submitError,\n revision: state.revision,\n };\n if (formValueEqual(next, state)) return state;\n return Object.freeze({ ...next, revision: state.revision + 1 });\n }\n\n function flush() {\n if (depth || notifying || disposed) return;\n notifying = true;\n try {\n while ((pending || cancellations.size) && !disposed) {\n pending = false;\n const events = changes;\n changes = [];\n const previous = state;\n state = buildSnapshot();\n const published = state;\n if (state !== previous) {\n for (const listener of Array.from(listeners)) {\n if (!listeners.has(listener)) continue;\n try {\n listener.notify();\n } catch (error) {\n report(error);\n }\n }\n }\n if (events.length && !disposed && resolveCallbacks().onValuesChange) {\n // One callback per transaction; names are unioned, user source wins,\n // and the final command supplies the transaction's kind.\n const change: FormChange = Object.freeze({\n names: Object.freeze(\n Array.from(new Set(events.flatMap((event) => event.names))),\n ),\n source: events.some((event) => event.source === 'user')\n ? 'user'\n : 'program',\n kind: events[events.length - 1].kind,\n });\n try {\n const result = resolveCallbacks().onValuesChange?.(\n published.values,\n change,\n );\n if (result) Promise.resolve(result).catch(report);\n } catch (error) {\n report(error);\n }\n }\n cancelPending();\n }\n } finally {\n notifying = false;\n }\n }\n\n function batch(fn: () => void) {\n assertLive();\n depth++;\n try {\n fn();\n } finally {\n depth--;\n pending = true;\n flush();\n }\n }\n\n function event(\n names: string[],\n kind: FormChange['kind'],\n source: FormChange['source'] = 'program',\n ) {\n if (names.length) changes.push({ names, kind, source });\n }\n\n function write(\n path: FormPath,\n value: unknown,\n config: SetValueOptions = {},\n ): boolean {\n const normalized = normalizePath(path);\n const previous = values;\n const next = writePath(values, normalized, ownValue(value));\n const record = ensure(normalized);\n const changed = next !== values;\n if (changed) {\n values = next;\n invalidateRelated(record.path, previous, config);\n }\n if (config.touch ?? config.source === 'user') record.touched = true;\n if (changed && (config.notify ?? config.source === 'user')) {\n event([record.name], 'set', config.source);\n }\n return changed;\n }\n\n function setValue(path: FormPath, value: unknown, config?: SetValueOptions) {\n // Validate paths before entering a transaction (no partial invalid writes).\n const normalized = normalizePath(path);\n const prepared = { ...config };\n batch(() => {\n write(normalized, value, prepared);\n });\n }\n\n function setValues(next: Partial<T>, config?: SetValueOptions) {\n assertLive();\n const prepared = { ...config };\n const entries = Object.entries(next).map(\n ([name, value]) => [normalizePath(name), ownValue(value)] as const,\n );\n // Copying input or an invalid array-length write can throw. Check every\n // value/path before the first write, including when inside an outer batch.\n let checked = values;\n for (const [path, value] of entries)\n checked = writePath(checked, path, value);\n batch(() => {\n for (const [path, value] of entries) write(path, value, prepared);\n });\n }\n\n function prepareRegistration(\n path: FormPath,\n config: RegistrationOptions<ErrorValue>,\n ): PreparedRegistration<ErrorValue> {\n const prepared = {\n ...config,\n deps: config.deps ? Object.freeze([...config.deps]) : undefined,\n dependsOn: config.dependsOn?.map((dependency) =>\n Object.freeze(normalizePath(dependency)),\n ),\n rules: config.rules?.map((rule) =>\n Object.freeze({\n ...rule,\n ...(rule.enum ? { enum: Object.freeze([...rule.enum]) } : {}),\n }),\n ),\n };\n if (Object.hasOwn(prepared, 'defaultValue')) {\n prepared.defaultValue = ownValue(prepared.defaultValue);\n const normalized = normalizePath(path);\n if (!hasPath(values, normalized) && !hasPath(defaults, normalized)) {\n writePath(values, normalized, prepared.defaultValue);\n writePath(defaults, normalized, prepared.defaultValue);\n }\n }\n return prepared;\n }\n\n function seed(\n record: FieldRecord<ErrorValue>,\n registration: Registration<ErrorValue>,\n ) {\n if (\n registration.defaultConsidered ||\n !Object.hasOwn(registration.options, 'defaultValue')\n )\n return;\n registration.defaultConsidered = true;\n const value = ownValue(registration.options.defaultValue);\n if (!hasPath(values, record.path) && !hasPath(defaults, record.path)) {\n const previous = values;\n values = writePath(values, record.path, value);\n defaults = writePath(defaults, record.path, value);\n record.fieldDefault = { value };\n invalidateRelated(record.path, previous);\n } else if (\n record.fieldDefault &&\n record.registrations.size > 1 &&\n !formValueEqual(record.fieldDefault.value, value)\n ) {\n developmentError(\n `Field \"${record.name}\" registered with conflicting defaultValue; the first default is kept.`,\n );\n }\n }\n\n function register(\n path: FormPath,\n config: RegistrationOptions<ErrorValue> = {},\n ): RegistrationToken<ErrorValue> {\n assertLive();\n const normalized = normalizePath(path);\n const prepared = prepareRegistration(normalized, config);\n const signature = rulesSignature(prepared.rules, {\n hashFunctions: prepared.rulesKey === undefined,\n });\n const record = ensure(normalized);\n const registration: Registration<ErrorValue> = {\n options: prepared,\n signature,\n order: ++order,\n defaultConsidered: false,\n };\n let released = false;\n batch(() => {\n record.registrations.add(registration);\n record.owner = registration;\n seed(record, registration);\n invalidate(record);\n });\n return Object.freeze({\n name: record.name,\n get released() {\n return released || disposed;\n },\n update(next: RegistrationOptions<ErrorValue>) {\n if (released || disposed) return;\n const prepared = prepareRegistration(record.path, next);\n const signature = rulesSignature(prepared.rules, {\n hashFunctions: prepared.rulesKey === undefined,\n });\n const validationChanged =\n registration.signature !== signature ||\n registration.options.rulesKey !== prepared.rulesKey ||\n !sameDependencies(registration.options.deps, prepared.deps) ||\n !samePaths(registration.options.dependsOn, prepared.dependsOn) ||\n registration.options.validationDelay !== prepared.validationDelay ||\n registration.options.validateTrigger !== prepared.validateTrigger ||\n registration.options.errorPolicy !== prepared.errorPolicy;\n const hasNewDefault =\n !registration.defaultConsidered &&\n Object.hasOwn(prepared, 'defaultValue');\n if (\n !hasNewDefault &&\n !validationChanged &&\n (registration.options.preserve ?? true) ===\n (prepared.preserve ?? true) &&\n registration.options.isEqual === prepared.isEqual\n ) {\n // Keep the latest closures/messages without invalidating equivalent rules.\n registration.options = prepared;\n return;\n }\n batch(() => {\n registration.options = prepared;\n registration.signature = signature;\n registration.order = ++order;\n // Only an ownership change invalidates; equivalent options pushed\n // after every React commit must not cause a publication loop.\n const revalidate =\n validationChanged && record.status !== 'unvalidated';\n if (record.owner !== registration || validationChanged)\n invalidate(record, revalidate);\n record.owner = registration;\n seed(record, registration);\n if (revalidate) void validateRecord(record, false);\n });\n },\n release(config: { deferValueRemoval?: boolean } = {}) {\n if (released || disposed) return;\n released = true;\n batch(() => {\n record.registrations.delete(registration);\n if (record.owner === registration) {\n record.owner = Array.from(record.registrations).sort(\n (a, b) => b.order - a.order,\n )[0];\n invalidate(record);\n }\n if (!record.registrations.size) {\n if (registration.options.preserve === false) {\n const removeValue = () => {\n const previous = values;\n values = writePath(values, record.path, undefined, true);\n record.touched = false;\n invalidateRelated(record.path, previous, { validate: 'auto' });\n if (!hasPath(defaults, record.path))\n records.delete(record.name);\n };\n if (config.deferValueRemoval) {\n // Unregister and abort immediately. Only destructive retention\n // cleanup waits one microtask, allowing Strict Mode's effect\n // replay to reconnect without losing the current value.\n const revision = record.validationRevision;\n queueMicrotask(() => {\n if (\n !disposed &&\n records.get(record.name) === record &&\n !record.registrations.size &&\n record.validationRevision === revision\n )\n batch(removeValue);\n });\n } else removeValue();\n }\n if (\n !hasPath(values, record.path) &&\n !hasPath(defaults, record.path)\n )\n records.delete(record.name);\n }\n });\n },\n });\n }\n\n function replaceDefaults(next: Partial<T>) {\n const entries = Object.keys(next);\n entries.forEach((name) => normalizePath(name));\n defaults = ownValue(next);\n for (const name of entries) ensure(name, false);\n for (const record of records.values()) record.fieldDefault = undefined;\n }\n\n function setDefaultValues(\n next: Partial<T>,\n config: { currentValues?: 'preserve' | 'replace' } = {},\n ) {\n const replace = config.currentValues === 'replace';\n batch(() => {\n replaceDefaults(next);\n if (replace) {\n values = defaults;\n for (const record of records.values()) {\n invalidate(record);\n record.touched = false;\n }\n event(Array.from(records.keys()), 'defaults');\n }\n });\n }\n\n function adoptDefaultValues(\n next: Partial<T>,\n config: {\n when?: 'untouched' | 'clean' | 'always';\n preserveDirty?: boolean;\n } = {},\n ) {\n const when = config.when ?? 'untouched';\n const preserveDirty = config.preserveDirty ?? false;\n batch(() => {\n // Retain edits at the narrowest guarded field path. This also protects a\n // nested edited leaf when the server replaces its containing object.\n const candidates = Array.from(records.values());\n const preserved = candidates\n .filter((record) => {\n // An implicitly tracked parent must not shield untouched siblings\n // when an explicit nested field is the actual edited control.\n if (\n !record.explicit &&\n candidates.some(\n (child) =>\n child.explicit &&\n child.path.length > record.path.length &&\n related(record.path, child.path),\n )\n )\n return false;\n return (\n (when === 'untouched' && record.touched) ||\n (when === 'clean' && dirty(record)) ||\n (preserveDirty && dirty(record))\n );\n })\n .map((record) => ({\n path: record.path,\n exists: hasPath(values, record.path),\n value: readPath(values, record.path),\n }));\n const previous = values;\n replaceDefaults(next);\n values = defaults;\n for (const saved of preserved.sort(\n (a, b) => a.path.length - b.path.length,\n )) {\n values = writePath(values, saved.path, saved.value, !saved.exists);\n }\n const names: string[] = [];\n for (const record of records.values()) {\n const changed = pathValueChanged(previous, values, record.path);\n if (\n changed ||\n dependencyChanged(record, previous) ||\n validationReadChanged(record, previous)\n )\n invalidate(record);\n if (changed) names.push(record.name);\n }\n event(names, 'adopt');\n });\n }\n\n function reset(config: { values?: Partial<T> } = {}) {\n batch(() => {\n if (Object.hasOwn(config, 'values')) replaceDefaults(config.values ?? {});\n values = defaults;\n const names = Array.from(records.keys());\n for (const record of records.values()) {\n invalidate(record);\n record.touched = false;\n if (!record.registrations.size && !hasPath(values, record.path))\n records.delete(record.name);\n }\n const previous = submission;\n submission = undefined;\n submitError = undefined;\n if (previous) cancellations.add(previous);\n event(names, 'reset');\n });\n }\n\n function setFieldErrors(path: FormPath, errors: readonly ErrorValue[]) {\n assertLive();\n const copied = errors.length ? Object.freeze([...errors]) : EMPTY_ERRORS;\n batch(() => {\n const record = ensure(path);\n const status = copied.length ? 'invalid' : 'valid';\n if (record.status === status && formValueEqual(record.errors, copied))\n return;\n invalidate(record);\n record.errors = copied;\n record.status = status;\n });\n }\n\n function startValidation(path: FormPath): ValidationToken<ErrorValue> {\n assertLive();\n const record = records.get(getFieldKey(path));\n if (!record?.registrations.size)\n throw new Error('Only active form fields can validate.');\n const controller = new AbortController();\n batch(() => {\n invalidate(record, true);\n record.validation = controller;\n record.status = 'validating';\n });\n const current = () =>\n !disposed &&\n record.validation === controller &&\n !controller.signal.aborted;\n return Object.freeze({\n signal: controller.signal,\n complete(errors: readonly ErrorValue[]) {\n if (!current()) return false;\n const copied = errors.length\n ? Object.freeze([...errors])\n : EMPTY_ERRORS;\n batch(() => {\n record.validation = undefined;\n record.reads = undefined;\n record.readsAll = false;\n record.errors = copied;\n record.status = copied.length ? 'invalid' : 'valid';\n });\n return true;\n },\n cancel() {\n if (current())\n batch(() => {\n invalidate(record, true);\n });\n },\n });\n }\n\n function startSubmission(): SubmissionToken | undefined {\n assertLive();\n if (submission) return undefined;\n const controller = new AbortController();\n batch(() => {\n submission = controller;\n submitError = undefined;\n });\n return Object.freeze({\n signal: controller.signal,\n complete(result?: { error: unknown }) {\n if (disposed || submission !== controller || controller.signal.aborted)\n return false;\n const error = result?.error;\n batch(() => {\n submission = undefined;\n submitError = error;\n });\n return true;\n },\n });\n }\n\n function validateRecord(\n record: FieldRecord<ErrorValue>,\n immediate: boolean,\n parentSignal?: AbortSignal,\n ): Promise<ModernFieldValidationResult<ErrorValue>> {\n const result = (errors: readonly ErrorValue[], stale = false) => ({\n name: record.name,\n errors,\n isValid: !stale && !errors.length,\n stale,\n });\n if (parentSignal?.aborted)\n return Promise.resolve(result(EMPTY_ERRORS, true));\n const config = record.owner?.options;\n const rules = config?.rules ?? [];\n const token = startValidation(record.path);\n const revision = record.validationRevision;\n if (token.signal.aborted || parentSignal?.aborted) {\n token.cancel();\n return Promise.resolve(result(EMPTY_ERRORS, true));\n }\n if (!rules.length) {\n record.reads = undefined;\n record.readsAll = false;\n const committed = token.complete(EMPTY_ERRORS);\n return Promise.resolve(\n result(\n EMPTY_ERRORS,\n !committed || record.validationRevision !== revision,\n ),\n );\n }\n const validationValues = values;\n const reads = new Map<string, readonly string[]>();\n record.reads = reads;\n record.readsAll = false;\n const value = readPath(validationValues, record.path);\n return new Promise((resolve) => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n let settled = false;\n const finish = (errors: readonly ErrorValue[], stale: boolean) => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n token.signal.removeEventListener('abort', abort);\n parentSignal?.removeEventListener('abort', cancel);\n resolve(result(errors, stale));\n };\n const abort = () => finish(EMPTY_ERRORS, true);\n const cancel = () => token.cancel();\n token.signal.addEventListener('abort', abort, { once: true });\n parentSignal?.addEventListener('abort', cancel, { once: true });\n const run = async () => {\n timer = undefined;\n const errors = await runRules(\n value,\n rules,\n {\n name: record.name,\n signal: token.signal,\n getValue: (path) => {\n const normalized = normalizePath(path);\n if (!settled && !token.signal.aborted) {\n reads.set(getFieldKey(normalized), normalized);\n if (pathValueChanged(validationValues, values, normalized))\n token.cancel();\n }\n return readPath(validationValues, normalized);\n },\n getValues: () => {\n if (!settled && !token.signal.aborted) {\n record.readsAll = true;\n if (values !== validationValues) token.cancel();\n }\n return validationValues as FormValues<T>;\n },\n },\n config?.errorPolicy ?? options.errorPolicy ?? 'first',\n );\n if (!settled) {\n const committed = token.complete(errors);\n finish(\n Object.freeze(errors),\n !committed ||\n record.validationRevision !== revision ||\n !!parentSignal?.aborted,\n );\n }\n };\n const delay = immediate ? 0 : (config?.validationDelay ?? 0);\n if (delay > 0) timer = setTimeout(() => void run(), delay);\n else void run();\n });\n }\n\n function validate(\n paths?: readonly FormPath[],\n config: { immediate?: boolean; signal?: AbortSignal } = {},\n ): Promise<ModernValidationResult<ErrorValue>> {\n assertLive();\n const targets = paths\n ? Array.from(new Set(paths.map(getFieldKey))).map((key) =>\n records.get(key),\n )\n : Array.from(records.values());\n const active = targets.filter(\n (record): record is FieldRecord<ErrorValue> =>\n !!record?.registrations.size,\n );\n let runs: Promise<ModernFieldValidationResult<ErrorValue>>[] = [];\n let revisions: number[] = [];\n batch(() => {\n runs = active.map((record) =>\n validateRecord(record, config.immediate ?? true, config.signal),\n );\n // Capture before publishing: a synchronous subscriber can edit/reset.\n revisions = active.map((record) => record.validationRevision);\n });\n return Promise.all(runs).then((results) => {\n const fields = results.map((result, index) => {\n const record = active[index];\n return record.validationRevision === revisions[index] &&\n !!record.registrations.size &&\n !config.signal?.aborted\n ? result\n : { ...result, stale: true, isValid: false };\n });\n return {\n fields,\n stale: fields.some((field) => field.stale) || !!config.signal?.aborted,\n isValid: !!fields.length && fields.every((field) => field.isValid),\n };\n });\n }\n\n function resolveCallbacks(): FormCallbacks<T, ErrorValue> {\n return { ...options, ...binding?.callbacks };\n }\n\n function cancelSubmission() {\n batch(() => {\n if (submission) cancellations.add(submission);\n submission = undefined;\n });\n }\n\n function bindCallbacks(\n callbacks: FormCallbacks<T, ErrorValue>,\n onSubmitted?: () => void,\n ): CallbackBinding<T, ErrorValue> {\n assertLive();\n if (binding)\n developmentError(\n 'A second Form root owns this controller; the newest callback binding wins.',\n );\n const own = { callbacks: { ...callbacks }, onSubmitted };\n binding = own;\n let released = false;\n return Object.freeze({\n update(next: FormCallbacks<T, ErrorValue>) {\n if (!released && !disposed && binding === own)\n own.callbacks = { ...next };\n },\n release() {\n if (released || disposed) return;\n released = true;\n if (binding === own) {\n binding = undefined;\n cancelSubmission();\n }\n },\n });\n }\n\n async function submit(\n config: { include?: 'active' | 'all' } = {},\n ): Promise<ModernSubmitResult<ErrorValue>> {\n const token = startSubmission();\n if (!token) return { status: 'ignored', reason: 'submitting' };\n const include = config.include ?? 'active';\n // Cancellation settles promptly even if a validator or callback ignores its signal.\n return new Promise((resolve) => {\n let settled = false;\n const finish = (result: ModernSubmitResult<ErrorValue>) => {\n if (settled) return;\n settled = true;\n token.signal.removeEventListener('abort', abort);\n resolve(result);\n };\n const abort = () => finish({ status: 'stale' });\n token.signal.addEventListener('abort', abort, { once: true });\n if (token.signal.aborted) {\n abort();\n return;\n }\n const run = async () => {\n const pendingValidation = validate(undefined, { signal: token.signal });\n const validatedRecords = Array.from(records.values()).filter(\n (record) => record.registrations.size,\n );\n const revisions = validatedRecords.map(\n (record) => record.validationRevision,\n );\n const validation = await pendingValidation;\n if (settled) return;\n const changedSinceValidation =\n validatedRecords.length !== validation.fields.length ||\n validatedRecords.length !==\n Array.from(records.values()).filter(\n (record) => record.registrations.size,\n ).length ||\n validatedRecords.some(\n (record, index) =>\n !record.registrations.size ||\n record.validationRevision !== revisions[index],\n );\n if (validation.stale || changedSinceValidation) {\n token.complete();\n finish({ status: 'stale' });\n return;\n }\n const owner = binding;\n const callbacks = resolveCallbacks();\n let result: ModernSubmitResult<ErrorValue>;\n if (!validation.isValid) {\n const errors = Object.fromEntries(\n validation.fields\n .filter((field) => !field.isValid)\n .map((field) => [field.name, field.errors]),\n );\n result = { status: 'invalid', errors: Object.freeze(errors) };\n try {\n await callbacks.onSubmitFailed?.({\n status: 'invalid',\n errors: Object.freeze(errors),\n });\n } catch (error) {\n report(error);\n }\n if (!settled) {\n token.complete();\n finish(result);\n }\n return;\n }\n try {\n await callbacks.onSubmit?.(\n (include === 'all' ? values : activeValues()) as FormValues<T>,\n { include, signal: token.signal },\n );\n result = { status: 'submitted' };\n } catch (error) {\n if (settled) return;\n // Keep the guard active while failure callbacks run.\n batch(() => {\n submitError = error;\n });\n try {\n await callbacks.onSubmitFailed?.({ status: 'failed', error });\n } catch (failure) {\n report(failure);\n }\n result = { status: 'failed', error };\n }\n if (!settled) {\n token.complete(\n result.status === 'failed' ? { error: result.error } : undefined,\n );\n finish(result);\n // Finish before a wrapper closes/unmounts its root. Closing must not\n // turn a successful submission into a stale result.\n if (result.status === 'submitted' && binding === owner) {\n try {\n owner?.onSubmitted?.();\n } catch (error) {\n report(error);\n }\n }\n }\n };\n void run().catch((error) => {\n if (!settled) {\n token.complete({ error });\n finish({ status: 'failed', error });\n }\n });\n });\n }\n\n function subscribe(listener: () => void) {\n assertLive();\n const entry = { notify: listener };\n listeners.add(entry);\n return () => {\n listeners.delete(entry);\n };\n }\n\n function dispose() {\n if (disposed) return;\n disposed = true;\n listeners.clear();\n binding = undefined;\n changes = [];\n pending = false;\n for (const record of records.values()) {\n record.registrations.clear();\n record.owner = undefined;\n invalidate(record);\n }\n const previous = submission;\n submission = undefined;\n if (previous) cancellations.add(previous);\n state = buildSnapshot();\n records.clear();\n cancelPending();\n }\n\n for (const name of Object.keys(values)) ensure(name, false);\n state = buildSnapshot();\n\n return Object.freeze({\n [FORM_BACKEND]: 'modern' as const,\n getSnapshot: () => state,\n getFieldSnapshot: (path: FormPath) => state.fields[getFieldKey(path)],\n getValue: (path: FormPath) => readPath(values, normalizePath(path)),\n getValues: () => values as FormValues<T>,\n getActiveValues: () => activeValues() as FormValues<T>,\n subscribe,\n subscribeSelector<Selected>(\n selector: (snapshot: FormState<T, ErrorValue>) => Selected,\n listener: (value: Selected, previous: Selected) => void,\n isEqual: (a: Selected, b: Selected) => boolean = Object.is,\n ) {\n let selected = selector(state);\n return subscribe(() => {\n const next = selector(state);\n if (isEqual(selected, next)) return;\n const previous = selected;\n selected = next;\n listener(next, previous);\n });\n },\n register,\n validate,\n submit,\n bindCallbacks,\n cancelSubmission,\n updateCallbacks(callbacks: FormCallbacks<T, ErrorValue>) {\n options.onSubmit = callbacks.onSubmit;\n options.onSubmitFailed = callbacks.onSubmitFailed;\n options.onValuesChange = callbacks.onValuesChange;\n },\n blur(path: FormPath) {\n const record = records.get(getFieldKey(path));\n if (!record?.registrations.size) return;\n batch(() => {\n record.touched = true;\n if ((record.owner?.options.validateTrigger ?? 'onBlur') === 'onBlur')\n void validateRecord(record, false);\n });\n },\n setValue,\n setValues,\n batch,\n setDefaultValues,\n adoptDefaultValues,\n reset,\n touch(path: FormPath, touched = true) {\n batch(() => {\n ensure(path).touched = touched;\n });\n },\n setFieldErrors,\n clearFieldErrors: (path: FormPath) => setFieldErrors(path, EMPTY_ERRORS),\n startValidation,\n startSubmission,\n setSubmitError(error: unknown) {\n batch(() => {\n submitError = error;\n });\n },\n clearSubmitError() {\n batch(() => {\n submitError = undefined;\n });\n },\n dispose,\n debug: Object.freeze({\n listenerCount: () => listeners.size,\n registrationCount: () =>\n Array.from(records.values()).reduce(\n (count, record) => count + record.registrations.size,\n 0,\n ),\n }),\n }) as FormStore<T, ErrorValue>;\n}\n"],"mappings":"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"}
|