@cube-dev/ui-kit 0.182.0 → 0.183.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 +10 -0
- package/dist/_internal/hooks/use-debounced-value.js +48 -31
- package/dist/_internal/hooks/use-debounced-value.js.map +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +22 -7
- package/dist/_internal/hooks/use-deprecation-warning.js.map +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-event.js.map +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js.map +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +12 -4
- package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js.map +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +90 -20
- package/dist/_internal/hooks/use-timer/use-timer.js.map +1 -1
- package/dist/_internal/hooks/use-warn.js +4 -4
- package/dist/_internal/hooks/use-warn.js.map +1 -1
- package/dist/components/Block.js +29 -7
- package/dist/components/Block.js.map +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/CollectionItem.js.map +1 -1
- package/dist/components/GlobalStyles.js +33 -9
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +4 -4
- package/dist/components/GridProvider.js.map +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/HiddenInput.js.map +1 -1
- package/dist/components/Root.js +137 -42
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.js +20 -8
- package/dist/components/actions/Action/Action.js.map +1 -1
- package/dist/components/actions/Banner/Banner.js +91 -22
- package/dist/components/actions/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Button/Button.js +5 -5
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +15 -5
- package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js.map +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +76 -76
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js.map +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +205 -68
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +26 -7
- package/dist/components/actions/ItemActionContext.js.map +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +215 -84
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +2 -2
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +16 -7
- package/dist/components/actions/Link/Link.js.map +1 -1
- package/dist/components/actions/Menu/Menu.js +127 -72
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuItem.js +116 -43
- package/dist/components/actions/Menu/MenuItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuSection.js +85 -30
- package/dist/components/actions/Menu/MenuSection.js.map +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +316 -112
- package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +6 -6
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js.map +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/context.js.map +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/Menu/styled.js.map +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/actions-run.js.map +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/index.js.map +1 -1
- package/dist/components/actions/use-action.js +3 -3
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.js +6 -6
- package/dist/components/actions/use-anchored-menu.js.map +1 -1
- package/dist/components/actions/use-context-menu.js +12 -12
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +84 -18
- package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
- package/dist/components/content/Alert/Alert.js +18 -7
- package/dist/components/content/Alert/Alert.js.map +1 -1
- package/dist/components/content/Alert/use-alert.js +53 -15
- package/dist/components/content/Alert/use-alert.js.map +1 -1
- package/dist/components/content/Avatar/Avatar.js +51 -13
- package/dist/components/content/Avatar/Avatar.js.map +1 -1
- package/dist/components/content/Badge/Badge.js +43 -10
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +29 -7
- package/dist/components/content/Card/Card.js.map +1 -1
- package/dist/components/content/Content.js +29 -7
- package/dist/components/content/Content.js.map +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +220 -60
- package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +453 -194
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider.js +52 -14
- package/dist/components/content/Divider.js.map +1 -1
- package/dist/components/content/Footer.js +29 -7
- package/dist/components/content/Footer.js.map +1 -1
- package/dist/components/content/Header.js +29 -7
- package/dist/components/content/Header.js.map +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +55 -27
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +8 -8
- package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +429 -188
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.js +408 -151
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +173 -59
- package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +34 -9
- package/dist/components/content/ItemCard/ItemCard.js.map +1 -1
- package/dist/components/content/Layout/GridLayout.js +38 -10
- package/dist/components/content/Layout/GridLayout.js.map +1 -1
- package/dist/components/content/Layout/Layout.js +30 -13
- package/dist/components/content/Layout/Layout.js.map +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +33 -8
- package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +48 -11
- package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +30 -21
- package/dist/components/content/Layout/LayoutContext.js.map +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +33 -8
- package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +53 -14
- package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +48 -11
- package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +211 -57
- package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPane.js +60 -14
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +59 -17
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +89 -27
- package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +33 -8
- package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +206 -119
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/index.js.map +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Layout/utils.js.map +1 -1
- package/dist/components/content/Paragraph.js +25 -9
- package/dist/components/content/Paragraph.js.map +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +52 -14
- package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +52 -17
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
- package/dist/components/content/Result/Result.js +117 -38
- package/dist/components/content/Result/Result.js.map +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +26 -17
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.js +68 -13
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- package/dist/components/content/Text.js +61 -14
- package/dist/components/content/Text.js.map +1 -1
- package/dist/components/content/TextItem/TextItem.js +37 -16
- package/dist/components/content/TextItem/TextItem.js.map +1 -1
- package/dist/components/content/Title.js +98 -23
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +32 -32
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +10 -10
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/tree-index.js.map +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +123 -89
- package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
- package/dist/components/content/Tree/use-load-data.js +52 -21
- package/dist/components/content/Tree/use-load-data.js.map +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/highlightText.js.map +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/data/DataTable/DataTable.js +31 -31
- package/dist/components/data/DataTable/DataTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +41 -41
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +11 -11
- package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +41 -4
- package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +67 -30
- package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +95 -28
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +90 -41
- package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js.map +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +154 -64
- package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
- package/dist/components/data/TableBase/TableRow.js +211 -69
- package/dist/components/data/TableBase/TableRow.js.map +1 -1
- package/dist/components/data/TableBase/TableView.js +119 -80
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-menu.js.map +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/column-tint.js.map +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/row-menu.js.map +1 -1
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/table-tree.js.map +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/types.js.map +1 -1
- 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-order.js +56 -12
- package/dist/components/data/TableBase/use-column-order.js.map +1 -1
- package/dist/components/data/TableBase/use-container-width.js +24 -10
- package/dist/components/data/TableBase/use-container-width.js.map +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +68 -49
- package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +32 -18
- package/dist/components/data/TableBase/use-scrollability.js.map +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +130 -60
- package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js.map +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +39 -39
- package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +132 -68
- package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +168 -101
- package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +2 -2
- package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +181 -86
- package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +101 -33
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/Checkbox/context.js.map +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +329 -150
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +16 -16
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +52 -13
- package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +90 -28
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +216 -134
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +88 -49
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +129 -34
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +194 -69
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +39 -8
- package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +109 -29
- package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +224 -88
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +473 -180
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +15 -6
- package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +288 -91
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +15 -6
- package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +15 -7
- package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +15 -6
- package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +15 -6
- package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/period.js.map +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/props.js.map +1 -1
- package/dist/components/fields/DatePicker/utils.js +15 -8
- package/dist/components/fields/DatePicker/utils.js.map +1 -1
- package/dist/components/fields/FileInput/FileInput.js +3 -3
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +87 -87
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +22 -22
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/Input/Input.js.map +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +23 -10
- package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
- package/dist/components/fields/ListBox/ListBox.js +138 -53
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +156 -37
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +61 -33
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +123 -33
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +53 -15
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +149 -45
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.js +8 -8
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +273 -104
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +149 -48
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/RadioGroup/context.js.map +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +80 -65
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +91 -28
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.js +369 -117
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +45 -10
- package/dist/components/fields/Slider/Gradation.js.map +1 -1
- package/dist/components/fields/Slider/HueSlider.js +121 -32
- package/dist/components/fields/Slider/HueSlider.js.map +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +46 -10
- package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
- package/dist/components/fields/Slider/Slider.js +108 -23
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +2 -2
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +96 -37
- package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +64 -23
- package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/elements.js.map +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +190 -66
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TextArea/TextArea.js +137 -47
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +80 -27
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +156 -83
- package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
- package/dist/components/fields/TriggerActions.js +11 -2
- package/dist/components/fields/TriggerActions.js.map +1 -1
- package/dist/components/fields/color/ColorPanel.js +237 -59
- package/dist/components/fields/color/ColorPanel.js.map +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/channels.js.map +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/color.js.map +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/color/context.js.map +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +195 -72
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/Form/Field.js +23 -9
- package/dist/components/form/Form/Field.js.map +1 -1
- package/dist/components/form/Form/Form.js +76 -30
- package/dist/components/form/Form/Form.js.map +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +294 -81
- package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +32 -10
- package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +32 -10
- package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/dist/components/form/Form/SubmitError.js +130 -32
- package/dist/components/form/Form/SubmitError.js.map +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/backend.js.map +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/index.js.map +1 -1
- package/dist/components/form/Form/modern/actions.js +140 -45
- package/dist/components/form/Form/modern/actions.js.map +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/context.js.map +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/controller.js.map +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js.map +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/field.js.map +1 -1
- package/dist/components/form/Form/modern/react.js +102 -19
- package/dist/components/form/Form/modern/react.js.map +1 -1
- package/dist/components/form/Form/modern/store.js +13 -3
- package/dist/components/form/Form/modern/store.js.map +1 -1
- package/dist/components/form/Form/modern/types.d.ts +3 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/validation.js.map +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/modern/values.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +236 -63
- package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +106 -61
- package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field.js +5 -4
- package/dist/components/form/Form/use-field/use-field.js.map +1 -1
- package/dist/components/form/Form/use-form.js +2 -1
- package/dist/components/form/Form/use-form.js.map +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Form/validation.js.map +1 -1
- package/dist/components/form/Label.js +127 -37
- package/dist/components/form/Label.js.map +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +20 -5
- package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
- package/dist/components/form/validation/use-validation-props.js +36 -10
- package/dist/components/form/validation/use-validation-props.js.map +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/form/wrapper.js.map +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +49 -29
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +8 -8
- package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
- package/dist/components/layout/Board/Board.js +27 -9
- package/dist/components/layout/Board/Board.js.map +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js.map +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/Widget.js.map +1 -1
- package/dist/components/layout/Board/WidgetHost.js +159 -121
- package/dist/components/layout/Board/WidgetHost.js.map +1 -1
- package/dist/components/layout/Board/board-context.js +14 -5
- package/dist/components/layout/Board/board-context.js.map +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/board-store.js.map +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js.map +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js.map +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js.map +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js.map +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js.map +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js.map +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/index.js.map +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js.map +1 -1
- package/dist/components/layout/Board/use-board-layout.js +8 -8
- package/dist/components/layout/Board/use-board-layout.js.map +1 -1
- package/dist/components/layout/Board/use-board-registry.js +257 -257
- package/dist/components/layout/Board/use-board-registry.js.map +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -1
- package/dist/components/layout/Board/use-board-selection.js +16 -16
- package/dist/components/layout/Board/use-board-selection.js.map +1 -1
- package/dist/components/layout/Flex.js +29 -7
- package/dist/components/layout/Flex.js.map +1 -1
- package/dist/components/layout/Flow.js +29 -7
- package/dist/components/layout/Flow.js.map +1 -1
- package/dist/components/layout/Grid.js +30 -7
- package/dist/components/layout/Grid.js.map +1 -1
- package/dist/components/layout/Panel.js +9 -9
- package/dist/components/layout/Panel.js.map +1 -1
- package/dist/components/layout/Prefix.js +59 -16
- package/dist/components/layout/Prefix.js.map +1 -1
- package/dist/components/layout/ResizablePanel.js +62 -32
- package/dist/components/layout/ResizablePanel.js.map +1 -1
- package/dist/components/layout/Space.js +55 -11
- package/dist/components/layout/Space.js.map +1 -1
- package/dist/components/layout/Suffix.js +59 -16
- package/dist/components/layout/Suffix.js.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +394 -164
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +69 -26
- package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +25 -10
- package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +604 -235
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +65 -23
- package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +47 -19
- package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +105 -33
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +45 -45
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +53 -19
- package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +16 -6
- package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +50 -13
- package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +111 -63
- package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +54 -14
- package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
- package/dist/components/other/Calendar/Calendar.js +79 -31
- package/dist/components/other/Calendar/Calendar.js.map +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +66 -20
- package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +90 -40
- package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +80 -17
- package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +568 -144
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +425 -134
- package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +6 -6
- package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +50 -24
- package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/Calendar/styled.js.map +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +95 -34
- package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +153 -42
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +76 -54
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +146 -39
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +26 -10
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +13 -13
- package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogForm.d.ts +12 -7
- package/dist/components/overlays/Dialog/DialogForm.js +18 -7
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +214 -59
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +350 -0
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -0
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/context.js.map +1 -1
- package/dist/components/overlays/Dialog/index.d.ts +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +6 -6
- package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
- package/dist/components/overlays/Modal/Modal.js +140 -27
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
- package/dist/components/overlays/Modal/Overlay.js +4 -4
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +131 -29
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +142 -30
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +36 -7
- package/dist/components/overlays/Modal/Underlay.js.map +1 -1
- package/dist/components/overlays/Notifications/Notification.js +69 -32
- package/dist/components/overlays/Notifications/Notification.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +79 -26
- package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +138 -33
- package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +63 -16
- package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +312 -151
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +210 -58
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +3 -3
- package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/index.js.map +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +51 -51
- package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +12 -12
- package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +10 -10
- package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +24 -5
- package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +145 -43
- package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +25 -25
- package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +68 -15
- package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
- package/dist/components/overlays/Toast/index.js +100 -34
- package/dist/components/overlays/Toast/index.js.map +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
- package/dist/components/overlays/Toast/useToast.js +9 -9
- package/dist/components/overlays/Toast/useToast.js.map +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +88 -31
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +75 -10
- package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +186 -77
- package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/context.js.map +1 -1
- package/dist/components/portal/Portal.js +18 -3
- package/dist/components/portal/Portal.js.map +1 -1
- package/dist/components/portal/PortalProvider.js +11 -2
- package/dist/components/portal/PortalProvider.js.map +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/portal/usePortal.js.map +1 -1
- package/dist/components/shared/DraggableCollection.js +23 -23
- package/dist/components/shared/DraggableCollection.js.map +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/InvalidIcon.js.map +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js.map +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +156 -48
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
- package/dist/components/status/Spin/Cube.js +12 -3
- package/dist/components/status/Spin/Cube.js.map +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +21 -6
- package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
- package/dist/components/status/Spin/Spin.js +31 -7
- package/dist/components/status/Spin/Spin.js.map +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +23 -6
- package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/data/themes.js.map +1 -1
- package/dist/eslint-plugin/defaults.generated.js +15 -5
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/index.js.map +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
- package/dist/i18n/I18nProvider.js +54 -13
- package/dist/i18n/I18nProvider.js.map +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/createFormatter.js.map +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/instance.js.map +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/locales.js.map +1 -1
- package/dist/i18n/useFormatter.js +10 -3
- package/dist/i18n/useFormatter.js.map +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/i18n/useI18n.js.map +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js.map +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AiIcon.js.map +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js.map +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BackwardIcon.js.map +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BarChartIcon.js.map +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js.map +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BellIcon.js.map +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/BooleanIcon.js.map +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js.map +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CalendarIcon.js.map +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js.map +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js.map +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js.map +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js.map +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js.map +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js.map +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js.map +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartPie2Icon.js.map +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/ChartScatterIcon.js.map +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js.map +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CheckIcon.js.map +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js.map +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/ClearIcon.js.map +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js.map +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CloseIcon.js.map +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/CodeIcon.js.map +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js.map +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CopyIcon.js.map +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CountIcon.js.map +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubeIcon.js.map +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js.map +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js.map +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js.map +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DangerIcon.js.map +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DashboardIcon.js.map +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js.map +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
- package/dist/icons/DirectionIcon.js +67 -22
- package/dist/icons/DirectionIcon.js.map +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DonutIcon.js.map +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/DownIcon.js.map +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/EditIcon.js.map +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js.map +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js.map +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeIcon.js.map +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js.map +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FilterIcon.js.map +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js.map +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderIcon.js.map +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js.map +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/ForwardIcon.js.map +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js.map +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js.map +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js.map +1 -1
- package/dist/icons/Icon.js +60 -16
- package/dist/icons/Icon.js.map +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoCircleIcon.js.map +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/InfoIcon.js.map +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/KeyIcon.js.map +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LeftIcon.js.map +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LineChartIcon.js.map +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LoadingIcon.js.map +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js.map +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/LockIcon.js.map +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/MoreIcon.js.map +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js.map +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/Number123Icon.js.map +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/NumberIcon.js.map +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js.map +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PauseIcon.js.map +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PercentageIcon.js.map +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PieChartIcon.js.map +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PipetteIcon.js.map +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js.map +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlayIcon.js.map +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/PlusIcon.js.map +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js.map +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReloadIcon.js.map +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReportIcon.js.map +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/ReturnIcon.js.map +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RightIcon.js.map +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js.map +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SchemeIcon.js.map +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SearchIcon.js.map +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js.map +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/SettingsIcon.js.map +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js.map +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/ShieldIcon.js.map +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SlashIcon.js.map +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SparklesIcon.js.map +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/SqlIcon.js.map +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StatsIcon.js.map +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StopIcon.js.map +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/StringIcon.js.map +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js.map +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/SwitchIcon.js.map +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/TableIcon.js.map +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js.map +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js.map +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js.map +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TimeIcon.js.map +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/TrashIcon.js.map +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UnlockIcon.js.map +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UpIcon.js.map +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js.map +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserIcon.js.map +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/UserLockIcon.js.map +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/ViewIcon.js.map +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js.map +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/WarningIcon.js.map +1 -1
- package/dist/icons/wrap-icon.js +15 -7
- package/dist/icons/wrap-icon.js.map +1 -1
- package/dist/index.d.ts +22 -22
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +2 -2
- package/dist/probe/canonicalize.js.map +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/css.js.map +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +17 -7
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +33 -9
- package/dist/providers/TrackingProvider.js.map +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/navigationAdapter.default.js.map +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/all-tokens.js.map +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/base.js.map +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-seed.js.map +1 -1
- package/dist/tokens/color-theme.js +18 -3
- package/dist/tokens/color-theme.js.map +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/colors.js.map +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/layout.js.map +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/lazy-styles.js.map +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/legacy-color.js.map +1 -1
- package/dist/tokens/palette-config.js +9 -2
- package/dist/tokens/palette-config.js.map +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/resolve.js +85 -21
- package/dist/tokens/resolve.js.map +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/shadows.js.map +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/sizes.js.map +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/spacing.js.map +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/tokens/typography.js.map +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/ResizeSensor.js.map +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/dotize.js.map +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/is-dev-env.js.map +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/modules.js.map +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/promise.js.map +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/raf.js.map +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/random.js.map +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/range.js.map +1 -1
- package/dist/utils/react/RenderCache.js +2 -2
- package/dist/utils/react/RenderCache.js.map +1 -1
- package/dist/utils/react/Slots.js +67 -24
- package/dist/utils/react/Slots.js.map +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/chain.js.map +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/disabledProps.js.map +1 -1
- package/dist/utils/react/escapePropagation.js +1 -1
- package/dist/utils/react/escapePropagation.js.map +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +35 -12
- package/dist/utils/react/interactions.js.map +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/isTextOnly.js.map +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mapProps.js.map +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/mergeProps.js.map +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/nullableValue.js.map +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/programmaticFocus.js.map +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/resolveIcon.js.map +1 -1
- package/dist/utils/react/sharedStore.js +13 -2
- package/dist/utils/react/sharedStore.js.map +1 -1
- package/dist/utils/react/useBufferedValue.js +5 -5
- package/dist/utils/react/useBufferedValue.js.map +1 -1
- package/dist/utils/react/useCombinedRefs.js +20 -5
- package/dist/utils/react/useCombinedRefs.js.map +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +53 -17
- package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
- package/dist/utils/react/useEventBus.js +43 -18
- package/dist/utils/react/useEventBus.js.map +1 -1
- package/dist/utils/react/useId.js +2 -1
- package/dist/utils/react/useId.js.map +1 -1
- package/dist/utils/react/useIsDarwin.js +29 -16
- package/dist/utils/react/useIsDarwin.js.map +1 -1
- package/dist/utils/react/useKeySymbols.js +23 -9
- package/dist/utils/react/useKeySymbols.js.map +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLayoutEffect.js.map +1 -1
- package/dist/utils/react/useLocalStorage.js +75 -30
- package/dist/utils/react/useLocalStorage.js.map +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useMergeStyles.js.map +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +25 -9
- package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
- package/dist/utils/react/usePopoverSync.js +175 -73
- package/dist/utils/react/usePopoverSync.js.map +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useQaProps.js.map +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useScheme.js.map +1 -1
- package/dist/utils/react/useViewportSize.js +43 -19
- package/dist/utils/react/useViewportSize.js.map +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/selection.js.map +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/styles.js.map +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/tree.js.map +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/utils/warnings.js.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/docs/Usage.md +9 -1
- package/docs/components/content/InlineInput.md +1 -1
- package/docs/components/fields/ColorInput.md +13 -8
- package/docs/components/fields/ColorPicker.md +13 -8
- package/docs/components/fields/ComboBox.md +16 -12
- package/docs/components/fields/FilterListBox.md +24 -19
- package/docs/components/fields/FilterPicker.md +24 -19
- package/docs/components/fields/ListBox.md +36 -26
- package/docs/components/fields/Picker.md +27 -21
- package/docs/components/fields/Select.md +16 -12
- package/docs/components/form/Field.md +2 -2
- package/docs/components/form/Form.md +60 -579
- package/docs/components/form/ModernForm.md +22 -1
- package/docs/components/overlays/DialogForm.md +121 -263
- package/docs/components/overlays/DialogTrigger.md +1 -1
- package/docs/components/overlays/UseDialogContainer.md +11 -13
- package/docs/modern-form-guide.md +22 -1
- package/docs/modern-form-migration.md +1 -1
- package/package.json +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-scrollability.js","names":[],"sources":["../../../../src/components/data/TableBase/use-scrollability.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react';\n\nexport interface CubeScrollability {\n x: boolean;\n y: boolean;\n}\n\nconst NONE: CubeScrollability = { x: false, y: false };\n\n/**\n * Whether the scroller can actually scroll, per axis.\n *\n * This exists for `overscroll-behavior`. `contain` is what stops a horizontal\n * swipe at the scroll edge from triggering browser back-navigation, but Chrome\n * applies it to any element with `overflow: auto` — including one whose content\n * fits. The wheel event is then swallowed by a scroller with nothing to scroll,\n * and the page behind it will not move. So the containment has to be scoped to\n * the axis that is genuinely scrollable, which means measuring.\n *\n * Both the scroller and its content are observed: the scroller's own box does\n * not change when rows are added, so observing it alone would miss a table that\n * grew past its container.\n */\nexport function useScrollability(\n element: HTMLElement | null,\n): CubeScrollability {\n const [state, setState] = useState<CubeScrollability>(NONE);\n\n useLayoutEffect(() => {\n // Matches `useContainerWidth`: a scroller handed over by a callback ref can\n // be null, and `observe` throws on anything that is not an Element.\n if (!element || !(element instanceof Element)) {\n setState(NONE);\n\n return;\n }\n\n const measure = () => {\n // A 1px tolerance: sub-pixel layout regularly leaves `scrollHeight` a\n // fraction above `clientHeight` on a table that visibly does not scroll,\n // and trapping the wheel over that fraction is the exact bug this avoids.\n const next = {\n x: element.scrollWidth - element.clientWidth > 1,\n y: element.scrollHeight - element.clientHeight > 1,\n };\n\n setState((current) =>\n current.x === next.x && current.y === next.y ? current : next,\n );\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n\n const content = element.firstElementChild;\n\n if (content) observer.observe(content);\n\n return () => observer.disconnect();\n }, [element]);\n\n return state;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-scrollability.js","names":["useLayoutEffect","useState","CubeScrollability","x","y","NONE","useScrollability","element","$","_c","state","setState","t0","t1","Element","measure","next","scrollWidth","clientWidth","scrollHeight","clientHeight","current","observer","ResizeObserver","observe","content","firstElementChild","disconnect"],"sources":["../../../../src/components/data/TableBase/use-scrollability.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react';\n\nexport interface CubeScrollability {\n x: boolean;\n y: boolean;\n}\n\nconst NONE: CubeScrollability = { x: false, y: false };\n\n/**\n * Whether the scroller can actually scroll, per axis.\n *\n * This exists for `overscroll-behavior`. `contain` is what stops a horizontal\n * swipe at the scroll edge from triggering browser back-navigation, but Chrome\n * applies it to any element with `overflow: auto` — including one whose content\n * fits. The wheel event is then swallowed by a scroller with nothing to scroll,\n * and the page behind it will not move. So the containment has to be scoped to\n * the axis that is genuinely scrollable, which means measuring.\n *\n * Both the scroller and its content are observed: the scroller's own box does\n * not change when rows are added, so observing it alone would miss a table that\n * grew past its container.\n */\nexport function useScrollability(\n element: HTMLElement | null,\n): CubeScrollability {\n const [state, setState] = useState<CubeScrollability>(NONE);\n\n useLayoutEffect(() => {\n // Matches `useContainerWidth`: a scroller handed over by a callback ref can\n // be null, and `observe` throws on anything that is not an Element.\n if (!element || !(element instanceof Element)) {\n setState(NONE);\n\n return;\n }\n\n const measure = () => {\n // A 1px tolerance: sub-pixel layout regularly leaves `scrollHeight` a\n // fraction above `clientHeight` on a table that visibly does not scroll,\n // and trapping the wheel over that fraction is the exact bug this avoids.\n const next = {\n x: element.scrollWidth - element.clientWidth > 1,\n y: element.scrollHeight - element.clientHeight > 1,\n };\n\n setState((current) =>\n current.x === next.x && current.y === next.y ? current : next,\n );\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n\n const content = element.firstElementChild;\n\n if (content) observer.observe(content);\n\n return () => observer.disconnect();\n }, [element]);\n\n return state;\n}\n"],"mappings":";;;;;AAOA,MAAMK,OAA0B;CAAEF,GAAG;CAAOC,GAAG;CAAO;;;;;;;;;;;;;;;AAgBtD,SAAOE,iBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGL,MAAA,CAAAC,OAAAC,YAA0BV,SAA4BI,KAAK;CAAC,IAAAO;CAAA,IAAAC;AAAA,KAAAL,EAAA,OAAAD,SAAA;AAE5CK,aAAA;AAGd,OAAI,CAACL,WAAD,EAAcA,mBAAmBO,UAAQ;AAC3CH,aAASN,KAAK;AAAA;;GAKhB,MAAAU,gBAAgB;IAId,MAAAC,OAAa;KAAAb,GACRI,QAAOU,cAAeV,QAAOW,cAAe;KAACd,GAC7CG,QAAOY,eAAgBZ,QAAOa,eAAgB;KAClD;AAEDT,cAASU,YACPA,QAAOlB,MAAOa,KAAIb,KAAMkB,QAAOjB,MAAOY,KAAIZ,IAA1CiB,UAAAL,KACD;;AAGHD,YAAS;GAET,MAAAO,WAAiB,IAAIC,eAAeR,QAAQ;AAE5CO,YAAQE,QAASjB,QAAQ;GAEzB,MAAAkB,UAAgBlB,QAAOmB;AAEvB,OAAID,QAASH,UAAQE,QAASC,QAAQ;AAAC,gBAE1BH,SAAQK,YAAa;;AACjCd,OAAA,CAACN,QAAQ;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;QAAA;AAAAD,OAAAJ,EAAA;AAAAK,OAAAL,EAAA;;AAlCZR,iBAAgBY,IAkCbC,GAAU;AAAA,QAENH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
2
|
-
import {
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
|
|
2
|
+
import { c } from "react-compiler-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/data/TableBase/use-table-columns.ts
|
|
5
5
|
/** @default when a column declares neither `width` nor `minWidth`. */
|
|
@@ -76,111 +76,181 @@ function clamp(value, min, max) {
|
|
|
76
76
|
* settles. When even the minimums do not fit, every column takes its minimum
|
|
77
77
|
* and the table scrolls horizontally.
|
|
78
78
|
*/
|
|
79
|
-
function useTableColumns(
|
|
80
|
-
|
|
79
|
+
function useTableColumns(t0) {
|
|
80
|
+
const $ = c(16);
|
|
81
|
+
const { columns, containerWidth, columnWidths, leadingColumns, trailingColumns } = t0;
|
|
82
|
+
let isOverflowing;
|
|
83
|
+
let out;
|
|
84
|
+
let pinnedEndWidth;
|
|
85
|
+
let pinnedStartWidth;
|
|
86
|
+
let t1;
|
|
87
|
+
if ($[0] !== columnWidths || $[1] !== columns || $[2] !== containerWidth || $[3] !== leadingColumns || $[4] !== trailingColumns) {
|
|
81
88
|
const visible = [
|
|
82
89
|
...leadingColumns ?? [],
|
|
83
90
|
...columns,
|
|
84
91
|
...trailingColumns ?? []
|
|
85
|
-
].filter(
|
|
92
|
+
].filter(_temp);
|
|
86
93
|
const ordered = [
|
|
87
|
-
...visible.filter(
|
|
88
|
-
...visible.filter(
|
|
89
|
-
...visible.filter(
|
|
94
|
+
...visible.filter(_temp2),
|
|
95
|
+
...visible.filter(_temp3),
|
|
96
|
+
...visible.filter(_temp4)
|
|
90
97
|
];
|
|
91
|
-
const structuralKeys = new Set([...leadingColumns ?? [], ...trailingColumns ?? []].map(
|
|
92
|
-
const specs = ordered.map((
|
|
93
|
-
const isStructural = structuralKeys.has(
|
|
94
|
-
const explicit = columnWidths?.[
|
|
95
|
-
const minWidth =
|
|
98
|
+
const structuralKeys = new Set([...leadingColumns ?? [], ...trailingColumns ?? []].map(_temp5));
|
|
99
|
+
const specs = ordered.map((column_0) => {
|
|
100
|
+
const isStructural = structuralKeys.has(column_0.key);
|
|
101
|
+
const explicit = columnWidths?.[column_0.key] ?? column_0.width;
|
|
102
|
+
const minWidth = column_0.minWidth ?? (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);
|
|
96
103
|
return {
|
|
97
|
-
column,
|
|
104
|
+
column: column_0,
|
|
98
105
|
isStructural,
|
|
99
106
|
fixed: explicit ?? null,
|
|
100
107
|
minWidth,
|
|
101
|
-
maxWidth:
|
|
102
|
-
flex: explicit != null ? null :
|
|
108
|
+
maxWidth: column_0.maxWidth ?? null,
|
|
109
|
+
flex: explicit != null ? null : column_0.flex ?? 1
|
|
103
110
|
};
|
|
104
111
|
});
|
|
105
112
|
const resolved = /* @__PURE__ */ new Map();
|
|
106
|
-
|
|
113
|
+
isOverflowing = false;
|
|
107
114
|
if (containerWidth != null && containerWidth > 0) {
|
|
108
|
-
const fixedTotal = specs.reduce(
|
|
109
|
-
const flexSpecs = specs.filter(
|
|
110
|
-
if (specs.reduce(
|
|
115
|
+
const fixedTotal = specs.reduce(_temp6, 0);
|
|
116
|
+
const flexSpecs = specs.filter(_temp7);
|
|
117
|
+
if (specs.reduce(_temp8, 0) > containerWidth) {
|
|
111
118
|
isOverflowing = true;
|
|
112
119
|
for (const spec of specs) resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);
|
|
113
120
|
} else {
|
|
114
121
|
let remaining = containerWidth - fixedTotal;
|
|
115
122
|
let pool = flexSpecs;
|
|
116
123
|
while (pool.length > 0) {
|
|
117
|
-
const totalFlex = pool.reduce(
|
|
124
|
+
const totalFlex = pool.reduce(_temp9, 0);
|
|
118
125
|
const nextPool = [];
|
|
119
126
|
let consumed = 0;
|
|
120
|
-
for (const
|
|
121
|
-
const ideal = remaining * (
|
|
122
|
-
const clamped = clamp(ideal,
|
|
127
|
+
for (const spec_0 of pool) {
|
|
128
|
+
const ideal = remaining * (spec_0.flex ?? 1) / (totalFlex || 1);
|
|
129
|
+
const clamped = clamp(ideal, spec_0.minWidth, spec_0.maxWidth);
|
|
123
130
|
if (clamped !== ideal) {
|
|
124
|
-
resolved.set(
|
|
125
|
-
consumed
|
|
126
|
-
} else nextPool.push(
|
|
131
|
+
resolved.set(spec_0.column.key, clamped);
|
|
132
|
+
consumed = consumed + clamped;
|
|
133
|
+
} else nextPool.push(spec_0);
|
|
127
134
|
}
|
|
128
135
|
if (nextPool.length === pool.length) {
|
|
129
|
-
const totalLeft = nextPool.reduce(
|
|
130
|
-
for (const
|
|
136
|
+
const totalLeft = nextPool.reduce(_temp0, 0);
|
|
137
|
+
for (const spec_1 of nextPool) resolved.set(spec_1.column.key, remaining * (spec_1.flex ?? 1) / (totalLeft || 1));
|
|
131
138
|
break;
|
|
132
139
|
}
|
|
133
|
-
remaining
|
|
140
|
+
remaining = remaining - consumed;
|
|
134
141
|
pool = nextPool;
|
|
135
142
|
}
|
|
136
|
-
for (const
|
|
143
|
+
for (const spec_2 of specs) if (spec_2.fixed != null) resolved.set(spec_2.column.key, spec_2.fixed);
|
|
137
144
|
}
|
|
138
145
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
...
|
|
146
|
+
pinnedStartWidth = 0;
|
|
147
|
+
pinnedEndWidth = 0;
|
|
148
|
+
out = specs.map((spec_3, index) => ({
|
|
149
|
+
...spec_3.column,
|
|
143
150
|
index,
|
|
144
151
|
ariaColIndex: index + 1,
|
|
145
|
-
width: resolved.get(
|
|
146
|
-
minWidth:
|
|
147
|
-
maxWidth:
|
|
148
|
-
flex:
|
|
149
|
-
align:
|
|
152
|
+
width: resolved.get(spec_3.column.key) ?? null,
|
|
153
|
+
minWidth: spec_3.minWidth,
|
|
154
|
+
maxWidth: spec_3.maxWidth,
|
|
155
|
+
flex: spec_3.flex,
|
|
156
|
+
align: spec_3.column.align ?? "start",
|
|
150
157
|
pinOffset: null,
|
|
151
158
|
isPinEdge: false,
|
|
152
|
-
isStructural:
|
|
159
|
+
isStructural: spec_3.isStructural
|
|
153
160
|
}));
|
|
154
|
-
for (const
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
pinnedStartWidth
|
|
161
|
+
for (const column_1 of out) {
|
|
162
|
+
if (column_1.pin !== "start") continue;
|
|
163
|
+
column_1.pinOffset = pinnedStartWidth;
|
|
164
|
+
pinnedStartWidth = pinnedStartWidth + (column_1.width ?? column_1.minWidth);
|
|
158
165
|
}
|
|
159
166
|
for (let i = out.length - 1; i >= 0; i--) {
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
162
|
-
|
|
163
|
-
pinnedEndWidth
|
|
167
|
+
const column_2 = out[i];
|
|
168
|
+
if (column_2.pin !== "end") continue;
|
|
169
|
+
column_2.pinOffset = pinnedEndWidth;
|
|
170
|
+
pinnedEndWidth = pinnedEndWidth + (column_2.width ?? column_2.minWidth);
|
|
164
171
|
}
|
|
165
|
-
const lastPinnedStart = out.filter(
|
|
166
|
-
const firstPinnedEnd = out.find(
|
|
172
|
+
const lastPinnedStart = out.filter(_temp1).at(-1);
|
|
173
|
+
const firstPinnedEnd = out.find(_temp10);
|
|
167
174
|
if (lastPinnedStart) lastPinnedStart.isPinEdge = true;
|
|
168
175
|
if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;
|
|
169
|
-
|
|
170
|
-
|
|
176
|
+
t1 = out.every(_temp11) ? out.reduce(_temp12, 0) : null;
|
|
177
|
+
$[0] = columnWidths;
|
|
178
|
+
$[1] = columns;
|
|
179
|
+
$[2] = containerWidth;
|
|
180
|
+
$[3] = leadingColumns;
|
|
181
|
+
$[4] = trailingColumns;
|
|
182
|
+
$[5] = isOverflowing;
|
|
183
|
+
$[6] = out;
|
|
184
|
+
$[7] = pinnedEndWidth;
|
|
185
|
+
$[8] = pinnedStartWidth;
|
|
186
|
+
$[9] = t1;
|
|
187
|
+
} else {
|
|
188
|
+
isOverflowing = $[5];
|
|
189
|
+
out = $[6];
|
|
190
|
+
pinnedEndWidth = $[7];
|
|
191
|
+
pinnedStartWidth = $[8];
|
|
192
|
+
t1 = $[9];
|
|
193
|
+
}
|
|
194
|
+
const totalWidth = t1;
|
|
195
|
+
let t2;
|
|
196
|
+
if ($[10] !== isOverflowing || $[11] !== out || $[12] !== pinnedEndWidth || $[13] !== pinnedStartWidth || $[14] !== totalWidth) {
|
|
197
|
+
t2 = {
|
|
171
198
|
columns: out,
|
|
172
199
|
pinnedStartWidth,
|
|
173
200
|
pinnedEndWidth,
|
|
174
201
|
totalWidth,
|
|
175
202
|
isOverflowing
|
|
176
203
|
};
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
]
|
|
204
|
+
$[10] = isOverflowing;
|
|
205
|
+
$[11] = out;
|
|
206
|
+
$[12] = pinnedEndWidth;
|
|
207
|
+
$[13] = pinnedStartWidth;
|
|
208
|
+
$[14] = totalWidth;
|
|
209
|
+
$[15] = t2;
|
|
210
|
+
} else t2 = $[15];
|
|
211
|
+
return t2;
|
|
212
|
+
}
|
|
213
|
+
function _temp12(sum_3, c_5) {
|
|
214
|
+
return sum_3 + (c_5.width ?? 0);
|
|
215
|
+
}
|
|
216
|
+
function _temp11(c_6) {
|
|
217
|
+
return c_6.width != null;
|
|
218
|
+
}
|
|
219
|
+
function _temp10(c_4) {
|
|
220
|
+
return c_4.pin === "end";
|
|
221
|
+
}
|
|
222
|
+
function _temp1(c_3) {
|
|
223
|
+
return c_3.pin === "start";
|
|
224
|
+
}
|
|
225
|
+
function _temp0(sum_2, s_3) {
|
|
226
|
+
return sum_2 + (s_3.flex ?? 1);
|
|
227
|
+
}
|
|
228
|
+
function _temp9(sum_1, s_2) {
|
|
229
|
+
return sum_1 + (s_2.flex ?? 1);
|
|
230
|
+
}
|
|
231
|
+
function _temp8(sum_0, s_1) {
|
|
232
|
+
return sum_0 + (s_1.fixed ?? s_1.minWidth);
|
|
233
|
+
}
|
|
234
|
+
function _temp7(s_0) {
|
|
235
|
+
return s_0.fixed == null;
|
|
236
|
+
}
|
|
237
|
+
function _temp6(sum, s) {
|
|
238
|
+
return sum + (s.fixed ?? 0);
|
|
239
|
+
}
|
|
240
|
+
function _temp5(c_2) {
|
|
241
|
+
return c_2.key;
|
|
242
|
+
}
|
|
243
|
+
function _temp4(c_1) {
|
|
244
|
+
return c_1.pin === "end";
|
|
245
|
+
}
|
|
246
|
+
function _temp3(c_0) {
|
|
247
|
+
return !c_0.pin;
|
|
248
|
+
}
|
|
249
|
+
function _temp2(c) {
|
|
250
|
+
return c.pin === "start";
|
|
251
|
+
}
|
|
252
|
+
function _temp(column) {
|
|
253
|
+
return !column.isHidden;
|
|
184
254
|
}
|
|
185
255
|
|
|
186
256
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-columns.js","names":[],"sources":["../../../../src/components/data/TableBase/use-table-columns.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n CubeResolvedColumn,\n CubeTableColumn,\n CubeTableColumnLayout,\n} from './types';\n\n/** @default when a column declares neither `width` nor `minWidth`. */\nexport const DEFAULT_MIN_WIDTH = 150;\n\n/**\n * Every column's current width, so a resize can change exactly one of them.\n *\n * A column with no explicit width is `flex: 1` and shares the leftover (see the\n * spec builder below). Making only the DRAGGED column fixed leaves every other\n * one in the flex pool, re-splitting a leftover that just changed — so one\n * divider moved all of them, including columns to the LEFT of the handle, which\n * cannot be what dragging a right edge means. Measured before this existed:\n * dragging column B by +8px took 3px off A, C and D each.\n *\n * Freezing first means a drag changes one width. Columns after it are pushed\n * along, which is what being after it means, and the table grows or shrinks\n * rather than the neighbours absorbing the difference.\n *\n * Structural columns are skipped — they are sized by the table, not the user.\n */\nexport function freezeColumnWidths<T>(\n layout: CubeTableColumnLayout<T> | null,\n base: Record<string, number>,\n): Record<string, number> {\n return (layout?.columns ?? []).reduce<Record<string, number>>(\n (widths, column) => {\n if (!column.isStructural && column.width != null) {\n widths[column.key] = Math.round(column.width);\n }\n\n return widths;\n },\n { ...base },\n );\n}\n\n/**\n * Reads `key` as a data path. A plain key is a single property lookup; dots\n * walk nested objects (`'owner.name'`). Anything richer belongs in `getValue`.\n */\nexport function readPath(row: any, path: string): unknown {\n if (row == null) return undefined;\n if (!path.includes('.')) return row[path];\n\n let current: any = row;\n\n for (const part of path.split('.')) {\n if (current == null) return undefined;\n current = current[part];\n }\n\n return current;\n}\n\n/** Only the value-pipeline members, so both raw and resolved columns fit. */\ntype ValueColumn<T> = Pick<CubeTableColumn<T>, 'key' | 'getValue' | 'format'>;\n\nexport function getColumnValue<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): unknown {\n return column.getValue\n ? column.getValue(row, rowIndex)\n : readPath(row, column.key);\n}\n\n/**\n * Display text for a cell — what client sort, client search and TSV copy all\n * operate on. Deliberately NOT the rendered output: `render` may return\n * arbitrary React, and stringifying that is how cloud's filter ended up\n * matching `\"[object Object]\"` against the query `\"object\"`.\n *\n * Returns `null` when the column cannot produce text, so callers can skip it\n * rather than coerce a non-primitive.\n */\nexport function getColumnText<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): string | null {\n const value = getColumnValue(column, row, rowIndex);\n\n if (column.format) return column.format(value, row, rowIndex);\n if (value == null) return '';\n\n const type = typeof value;\n\n if (type === 'string') return value as string;\n if (type === 'number' || type === 'boolean' || type === 'bigint') {\n return String(value);\n }\n if (value instanceof Date) return value.toISOString();\n\n return null;\n}\n\nfunction clamp(value: number, min: number, max: number | null): number {\n return Math.min(Math.max(value, min), max ?? Number.POSITIVE_INFINITY);\n}\n\nexport interface UseTableColumnsOptions<T> {\n columns: CubeTableColumn<T>[];\n /** Content-box width of the scroller, or `null` before the first measure. */\n containerWidth: number | null;\n /** User-resized widths, keyed by column key. Wins over `column.width`. */\n columnWidths?: Record<string, number>;\n /** Extra leading columns owned by the table (selection, drag handle). */\n leadingColumns?: CubeTableColumn<T>[];\n /** Extra trailing columns owned by the table (row menu). */\n trailingColumns?: CubeTableColumn<T>[];\n}\n\n/**\n * Normalizes the public column list into resolved leaves: visual order, ARIA\n * indices, pixel widths, and sticky offsets for pinned columns.\n *\n * Width resolution mirrors ag-grid's `fitGridWidth`: fixed columns take their\n * width, the remainder is split across flex columns by weight, and each result\n * is clamped to `[minWidth, maxWidth]`. Clamping perturbs the sum, so the\n * residual is redistributed across the still-unclamped columns until it\n * settles. When even the minimums do not fit, every column takes its minimum\n * and the table scrolls horizontally.\n */\nexport function useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n return useMemo(() => {\n const visible = [\n ...(leadingColumns ?? []),\n ...columns,\n ...(trailingColumns ?? []),\n ].filter((column) => !column.isHidden);\n\n // Pinned columns lead and trail regardless of their position in the source\n // array, so `aria-colindex` and DOM order agree and nothing needs CSS\n // `order:` to be reshuffled.\n const ordered = [\n ...visible.filter((c) => c.pin === 'start'),\n ...visible.filter((c) => !c.pin),\n ...visible.filter((c) => c.pin === 'end'),\n ];\n\n const structuralKeys = new Set(\n [...(leadingColumns ?? []), ...(trailingColumns ?? [])].map((c) => c.key),\n );\n\n const specs = ordered.map((column) => {\n const isStructural = structuralKeys.has(column.key);\n const explicit = columnWidths?.[column.key] ?? column.width;\n const minWidth =\n column.minWidth ??\n (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);\n\n return {\n column,\n isStructural,\n fixed: explicit ?? null,\n minWidth,\n maxWidth: column.maxWidth ?? null,\n flex: explicit != null ? null : column.flex ?? 1,\n };\n });\n\n const resolved = new Map<string, number>();\n let isOverflowing = false;\n\n if (containerWidth != null && containerWidth > 0) {\n const fixedTotal = specs.reduce((sum, s) => sum + (s.fixed ?? 0), 0);\n const flexSpecs = specs.filter((s) => s.fixed == null);\n const minTotal = specs.reduce(\n (sum, s) => sum + (s.fixed ?? s.minWidth),\n 0,\n );\n\n if (minTotal > containerWidth) {\n isOverflowing = true;\n for (const spec of specs) {\n resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);\n }\n } else {\n let remaining = containerWidth - fixedTotal;\n let pool = flexSpecs;\n\n // Each pass assigns proportional widths, freezes whatever hit a bound,\n // and re-splits the leftover among the rest.\n while (pool.length > 0) {\n const totalFlex = pool.reduce((sum, s) => sum + (s.flex ?? 1), 0);\n const nextPool: typeof pool = [];\n let consumed = 0;\n\n for (const spec of pool) {\n const ideal = (remaining * (spec.flex ?? 1)) / (totalFlex || 1);\n const clamped = clamp(ideal, spec.minWidth, spec.maxWidth);\n\n if (clamped !== ideal) {\n resolved.set(spec.column.key, clamped);\n consumed += clamped;\n } else {\n nextPool.push(spec);\n }\n }\n\n if (nextPool.length === pool.length) {\n // Nothing was clamped this pass — the proportional split stands.\n const totalLeft = nextPool.reduce(\n (sum, s) => sum + (s.flex ?? 1),\n 0,\n );\n for (const spec of nextPool) {\n resolved.set(\n spec.column.key,\n (remaining * (spec.flex ?? 1)) / (totalLeft || 1),\n );\n }\n break;\n }\n\n remaining -= consumed;\n pool = nextPool;\n }\n\n for (const spec of specs) {\n if (spec.fixed != null) resolved.set(spec.column.key, spec.fixed);\n }\n }\n }\n\n let pinnedStartWidth = 0;\n let pinnedEndWidth = 0;\n\n const out: CubeResolvedColumn<T>[] = specs.map((spec, index) => ({\n ...spec.column,\n index,\n ariaColIndex: index + 1,\n width: resolved.get(spec.column.key) ?? null,\n minWidth: spec.minWidth,\n maxWidth: spec.maxWidth,\n flex: spec.flex,\n align: spec.column.align ?? 'start',\n pinOffset: null,\n isPinEdge: false,\n isStructural: spec.isStructural,\n }));\n\n // Sticky offsets accumulate inwards from each edge.\n for (const column of out) {\n if (column.pin !== 'start') continue;\n column.pinOffset = pinnedStartWidth;\n pinnedStartWidth += column.width ?? column.minWidth;\n }\n\n for (let i = out.length - 1; i >= 0; i--) {\n const column = out[i];\n if (column.pin !== 'end') continue;\n column.pinOffset = pinnedEndWidth;\n pinnedEndWidth += column.width ?? column.minWidth;\n }\n\n const lastPinnedStart = out.filter((c) => c.pin === 'start').at(-1);\n const firstPinnedEnd = out.find((c) => c.pin === 'end');\n\n if (lastPinnedStart) lastPinnedStart.isPinEdge = true;\n if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;\n\n const totalWidth = out.every((c) => c.width != null)\n ? out.reduce((sum, c) => sum + (c.width ?? 0), 0)\n : null;\n\n return {\n columns: out,\n pinnedStartWidth,\n pinnedEndWidth,\n totalWidth,\n isOverflowing,\n };\n }, [columns, containerWidth, columnWidths, leadingColumns, trailingColumns]);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-table-columns.js","names":["useMemo","CubeResolvedColumn","CubeTableColumn","CubeTableColumnLayout","DEFAULT_MIN_WIDTH","freezeColumnWidths","layout","T","base","Record","columns","reduce","widths","column","isStructural","width","key","Math","round","readPath","row","path","undefined","includes","current","part","split","ValueColumn","Pick","getColumnValue","rowIndex","getValue","getColumnText","value","format","type","String","Date","toISOString","clamp","min","max","Number","POSITIVE_INFINITY","UseTableColumnsOptions","containerWidth","columnWidths","leadingColumns","trailingColumns","useTableColumns","t0","$","_c","isOverflowing","out","pinnedEndWidth","pinnedStartWidth","t1","visible","filter","_temp","ordered","_temp2","_temp3","_temp4","structuralKeys","Set","map","_temp5","specs","column_0","has","explicit","minWidth","fixed","maxWidth","flex","resolved","Map","fixedTotal","_temp6","flexSpecs","_temp7","minTotal","_temp8","spec","set","remaining","pool","length","totalFlex","_temp9","nextPool","consumed","spec_0","ideal","clamped","push","totalLeft","_temp0","spec_1","spec_2","spec_3","index","ariaColIndex","get","align","pinOffset","isPinEdge","column_1","pin","i","column_2","lastPinnedStart","_temp1","at","firstPinnedEnd","find","_temp10","every","_temp11","_temp12","totalWidth","t2","sum_3","c_5","sum","c","c_6","c_4","c_3","sum_2","s_3","s","sum_1","s_2","sum_0","s_1","s_0","c_2","c_1","c_0","isHidden"],"sources":["../../../../src/components/data/TableBase/use-table-columns.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n CubeResolvedColumn,\n CubeTableColumn,\n CubeTableColumnLayout,\n} from './types';\n\n/** @default when a column declares neither `width` nor `minWidth`. */\nexport const DEFAULT_MIN_WIDTH = 150;\n\n/**\n * Every column's current width, so a resize can change exactly one of them.\n *\n * A column with no explicit width is `flex: 1` and shares the leftover (see the\n * spec builder below). Making only the DRAGGED column fixed leaves every other\n * one in the flex pool, re-splitting a leftover that just changed — so one\n * divider moved all of them, including columns to the LEFT of the handle, which\n * cannot be what dragging a right edge means. Measured before this existed:\n * dragging column B by +8px took 3px off A, C and D each.\n *\n * Freezing first means a drag changes one width. Columns after it are pushed\n * along, which is what being after it means, and the table grows or shrinks\n * rather than the neighbours absorbing the difference.\n *\n * Structural columns are skipped — they are sized by the table, not the user.\n */\nexport function freezeColumnWidths<T>(\n layout: CubeTableColumnLayout<T> | null,\n base: Record<string, number>,\n): Record<string, number> {\n return (layout?.columns ?? []).reduce<Record<string, number>>(\n (widths, column) => {\n if (!column.isStructural && column.width != null) {\n widths[column.key] = Math.round(column.width);\n }\n\n return widths;\n },\n { ...base },\n );\n}\n\n/**\n * Reads `key` as a data path. A plain key is a single property lookup; dots\n * walk nested objects (`'owner.name'`). Anything richer belongs in `getValue`.\n */\nexport function readPath(row: any, path: string): unknown {\n if (row == null) return undefined;\n if (!path.includes('.')) return row[path];\n\n let current: any = row;\n\n for (const part of path.split('.')) {\n if (current == null) return undefined;\n current = current[part];\n }\n\n return current;\n}\n\n/** Only the value-pipeline members, so both raw and resolved columns fit. */\ntype ValueColumn<T> = Pick<CubeTableColumn<T>, 'key' | 'getValue' | 'format'>;\n\nexport function getColumnValue<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): unknown {\n return column.getValue\n ? column.getValue(row, rowIndex)\n : readPath(row, column.key);\n}\n\n/**\n * Display text for a cell — what client sort, client search and TSV copy all\n * operate on. Deliberately NOT the rendered output: `render` may return\n * arbitrary React, and stringifying that is how cloud's filter ended up\n * matching `\"[object Object]\"` against the query `\"object\"`.\n *\n * Returns `null` when the column cannot produce text, so callers can skip it\n * rather than coerce a non-primitive.\n */\nexport function getColumnText<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): string | null {\n const value = getColumnValue(column, row, rowIndex);\n\n if (column.format) return column.format(value, row, rowIndex);\n if (value == null) return '';\n\n const type = typeof value;\n\n if (type === 'string') return value as string;\n if (type === 'number' || type === 'boolean' || type === 'bigint') {\n return String(value);\n }\n if (value instanceof Date) return value.toISOString();\n\n return null;\n}\n\nfunction clamp(value: number, min: number, max: number | null): number {\n return Math.min(Math.max(value, min), max ?? Number.POSITIVE_INFINITY);\n}\n\nexport interface UseTableColumnsOptions<T> {\n columns: CubeTableColumn<T>[];\n /** Content-box width of the scroller, or `null` before the first measure. */\n containerWidth: number | null;\n /** User-resized widths, keyed by column key. Wins over `column.width`. */\n columnWidths?: Record<string, number>;\n /** Extra leading columns owned by the table (selection, drag handle). */\n leadingColumns?: CubeTableColumn<T>[];\n /** Extra trailing columns owned by the table (row menu). */\n trailingColumns?: CubeTableColumn<T>[];\n}\n\n/**\n * Normalizes the public column list into resolved leaves: visual order, ARIA\n * indices, pixel widths, and sticky offsets for pinned columns.\n *\n * Width resolution mirrors ag-grid's `fitGridWidth`: fixed columns take their\n * width, the remainder is split across flex columns by weight, and each result\n * is clamped to `[minWidth, maxWidth]`. Clamping perturbs the sum, so the\n * residual is redistributed across the still-unclamped columns until it\n * settles. When even the minimums do not fit, every column takes its minimum\n * and the table scrolls horizontally.\n */\nexport function useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n return useMemo(() => {\n const visible = [\n ...(leadingColumns ?? []),\n ...columns,\n ...(trailingColumns ?? []),\n ].filter((column) => !column.isHidden);\n\n // Pinned columns lead and trail regardless of their position in the source\n // array, so `aria-colindex` and DOM order agree and nothing needs CSS\n // `order:` to be reshuffled.\n const ordered = [\n ...visible.filter((c) => c.pin === 'start'),\n ...visible.filter((c) => !c.pin),\n ...visible.filter((c) => c.pin === 'end'),\n ];\n\n const structuralKeys = new Set(\n [...(leadingColumns ?? []), ...(trailingColumns ?? [])].map((c) => c.key),\n );\n\n const specs = ordered.map((column) => {\n const isStructural = structuralKeys.has(column.key);\n const explicit = columnWidths?.[column.key] ?? column.width;\n const minWidth =\n column.minWidth ??\n (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);\n\n return {\n column,\n isStructural,\n fixed: explicit ?? null,\n minWidth,\n maxWidth: column.maxWidth ?? null,\n flex: explicit != null ? null : column.flex ?? 1,\n };\n });\n\n const resolved = new Map<string, number>();\n let isOverflowing = false;\n\n if (containerWidth != null && containerWidth > 0) {\n const fixedTotal = specs.reduce((sum, s) => sum + (s.fixed ?? 0), 0);\n const flexSpecs = specs.filter((s) => s.fixed == null);\n const minTotal = specs.reduce(\n (sum, s) => sum + (s.fixed ?? s.minWidth),\n 0,\n );\n\n if (minTotal > containerWidth) {\n isOverflowing = true;\n for (const spec of specs) {\n resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);\n }\n } else {\n let remaining = containerWidth - fixedTotal;\n let pool = flexSpecs;\n\n // Each pass assigns proportional widths, freezes whatever hit a bound,\n // and re-splits the leftover among the rest.\n while (pool.length > 0) {\n const totalFlex = pool.reduce((sum, s) => sum + (s.flex ?? 1), 0);\n const nextPool: typeof pool = [];\n let consumed = 0;\n\n for (const spec of pool) {\n const ideal = (remaining * (spec.flex ?? 1)) / (totalFlex || 1);\n const clamped = clamp(ideal, spec.minWidth, spec.maxWidth);\n\n if (clamped !== ideal) {\n resolved.set(spec.column.key, clamped);\n consumed += clamped;\n } else {\n nextPool.push(spec);\n }\n }\n\n if (nextPool.length === pool.length) {\n // Nothing was clamped this pass — the proportional split stands.\n const totalLeft = nextPool.reduce(\n (sum, s) => sum + (s.flex ?? 1),\n 0,\n );\n for (const spec of nextPool) {\n resolved.set(\n spec.column.key,\n (remaining * (spec.flex ?? 1)) / (totalLeft || 1),\n );\n }\n break;\n }\n\n remaining -= consumed;\n pool = nextPool;\n }\n\n for (const spec of specs) {\n if (spec.fixed != null) resolved.set(spec.column.key, spec.fixed);\n }\n }\n }\n\n let pinnedStartWidth = 0;\n let pinnedEndWidth = 0;\n\n const out: CubeResolvedColumn<T>[] = specs.map((spec, index) => ({\n ...spec.column,\n index,\n ariaColIndex: index + 1,\n width: resolved.get(spec.column.key) ?? null,\n minWidth: spec.minWidth,\n maxWidth: spec.maxWidth,\n flex: spec.flex,\n align: spec.column.align ?? 'start',\n pinOffset: null,\n isPinEdge: false,\n isStructural: spec.isStructural,\n }));\n\n // Sticky offsets accumulate inwards from each edge.\n for (const column of out) {\n if (column.pin !== 'start') continue;\n column.pinOffset = pinnedStartWidth;\n pinnedStartWidth += column.width ?? column.minWidth;\n }\n\n for (let i = out.length - 1; i >= 0; i--) {\n const column = out[i];\n if (column.pin !== 'end') continue;\n column.pinOffset = pinnedEndWidth;\n pinnedEndWidth += column.width ?? column.minWidth;\n }\n\n const lastPinnedStart = out.filter((c) => c.pin === 'start').at(-1);\n const firstPinnedEnd = out.find((c) => c.pin === 'end');\n\n if (lastPinnedStart) lastPinnedStart.isPinEdge = true;\n if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;\n\n const totalWidth = out.every((c) => c.width != null)\n ? out.reduce((sum, c) => sum + (c.width ?? 0), 0)\n : null;\n\n return {\n columns: out,\n pinnedStartWidth,\n pinnedEndWidth,\n totalWidth,\n isOverflowing,\n };\n }, [columns, containerWidth, columnWidths, leadingColumns, trailingColumns]);\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { useDebouncedValue } from "../../../_internal/hooks/use-debounced-value.js";
|
|
4
4
|
import { getColumnText } from "./use-table-columns.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-search.js","names":[],"sources":["../../../../src/components/data/TableBase/use-table-search.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useDebouncedValue, useEvent } from '../../../_internal/hooks';\n\nimport { getColumnText } from './use-table-columns';\n\nimport type { CubeTableColumn } from './types';\n\nexport type CubeTableSearchMode = 'client' | 'server';\n\nexport interface UseTableSearchOptions<T> {\n columns: CubeTableColumn<T>[];\n rows: readonly T[];\n /** @default 'client' */\n mode?: CubeTableSearchMode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Debounces the filter AND the callback, in both modes. @default 500 */\n delay?: number;\n /** Replaces the default matcher in client mode. */\n filter?: (row: T, query: string) => boolean;\n}\n\nexport interface UseTableSearchResult<T> {\n /** The immediate term — what the input shows. */\n searchValue: string;\n setSearchValue: (value: string) => void;\n /** The debounced term — what the filter and the callback act on. */\n query: string;\n /** Filtered in client mode; the original array otherwise. */\n searchedRows: readonly T[];\n /** `true` when a non-empty term is narrowing the data. */\n isFiltered: boolean;\n}\n\n/**\n * Default matcher: a case-insensitive substring test against each searchable\n * column's **display text**.\n *\n * Deliberately not the raw value. Cloud's filter tested\n * `String(row[column.key])`, which meant a column rendering `owner.profile.name`\n * was unsearchable, and an object-valued column stringified to\n * `\"[object Object]\"` — so the query \"object\" matched every row with a nested\n * value. `getColumnText` returns `null` for anything it cannot honestly turn\n * into text, and those columns are skipped rather than coerced.\n */\nexport function matchesTableSearch<T>(\n columns: CubeTableColumn<T>[],\n row: T,\n rowIndex: number,\n query: string,\n): boolean {\n return columns.some((column) => {\n if (column.isSearchable === false) return false;\n\n const text = getColumnText(column, row, rowIndex);\n\n return text != null && text.toLowerCase().includes(query);\n });\n}\n\nexport function useTableSearch<T>({\n columns,\n rows,\n mode = 'client',\n value,\n defaultValue,\n onChange,\n delay = 500,\n filter,\n}: UseTableSearchOptions<T>): UseTableSearchResult<T> {\n const [committed, setCommitted] = useControlledState<string>(\n value as string,\n defaultValue ?? '',\n onChange as (v: string) => void,\n );\n\n // What the input shows, updated on every keystroke. The committed value —\n // the one `onChange` reports and the filter runs on — trails it by `delay`.\n //\n // Two separate values rather than one, because `useControlledState` calls\n // `onChange` the moment it is set: routing keystrokes straight into it fired\n // a request per character in `searchMode=\"server\"`, which is the thing the\n // debounce exists to prevent. Debouncing the input itself instead would make\n // typing lag, so the split is the point.\n const [draft, setDraft] = useState(committed);\n const debounced = useDebouncedValue(draft, delay);\n\n // What we last pushed outward, so the sync below can tell a genuine external\n // change from the echo of our own debounce.\n const pushedRef = useRef(committed);\n\n // A controlled `searchValue` changing from OUTSIDE — a cleared filter, a\n // restored URL — wins over whatever is half-typed.\n //\n // The echo has to be filtered out or this reverts the input mid-word: with a\n // short delay the debounce commits letter 1 while letter 2 is already typed,\n // and syncing unconditionally puts letter 1 back. At `searchDelay={0}` that\n // happens on every keystroke and nothing longer than one character can ever\n // be typed.\n useEffect(() => {\n if (committed === pushedRef.current) return;\n\n pushedRef.current = committed;\n setDraft(committed);\n }, [committed]);\n\n useEffect(() => {\n if (debounced === pushedRef.current) return;\n\n pushedRef.current = debounced;\n setCommitted(debounced);\n // `committed` is deliberately not a dependency: reacting to it here would\n // fight the effect above and push a stale draft back out.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounced]);\n\n const searchValue = draft;\n const query = debounced.trim().toLowerCase();\n\n const setSearchValue = useEvent((next: string) => setDraft(next));\n\n const searchedRows = useMemo(() => {\n if (mode !== 'client' || !query) return rows;\n\n return rows.filter((row, index) =>\n filter\n ? filter(row, query)\n : matchesTableSearch(columns, row, index, query),\n );\n }, [mode, query, rows, columns, filter]);\n\n return {\n searchValue,\n setSearchValue,\n query,\n searchedRows,\n isFiltered: query.length > 0,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgDA,
|
|
1
|
+
{"version":3,"file":"use-table-search.js","names":["useControlledState","useEffect","useMemo","useRef","useState","useDebouncedValue","useEvent","getColumnText","CubeTableColumn","CubeTableSearchMode","UseTableSearchOptions","columns","T","rows","mode","value","defaultValue","onChange","delay","filter","row","query","UseTableSearchResult","searchValue","setSearchValue","searchedRows","isFiltered","matchesTableSearch","rowIndex","some","column","isSearchable","text","toLowerCase","includes","useTableSearch","committed","setCommitted","v","draft","setDraft","debounced","pushedRef","current","trim","next","index","length"],"sources":["../../../../src/components/data/TableBase/use-table-search.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useDebouncedValue, useEvent } from '../../../_internal/hooks';\n\nimport { getColumnText } from './use-table-columns';\n\nimport type { CubeTableColumn } from './types';\n\nexport type CubeTableSearchMode = 'client' | 'server';\n\nexport interface UseTableSearchOptions<T> {\n columns: CubeTableColumn<T>[];\n rows: readonly T[];\n /** @default 'client' */\n mode?: CubeTableSearchMode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Debounces the filter AND the callback, in both modes. @default 500 */\n delay?: number;\n /** Replaces the default matcher in client mode. */\n filter?: (row: T, query: string) => boolean;\n}\n\nexport interface UseTableSearchResult<T> {\n /** The immediate term — what the input shows. */\n searchValue: string;\n setSearchValue: (value: string) => void;\n /** The debounced term — what the filter and the callback act on. */\n query: string;\n /** Filtered in client mode; the original array otherwise. */\n searchedRows: readonly T[];\n /** `true` when a non-empty term is narrowing the data. */\n isFiltered: boolean;\n}\n\n/**\n * Default matcher: a case-insensitive substring test against each searchable\n * column's **display text**.\n *\n * Deliberately not the raw value. Cloud's filter tested\n * `String(row[column.key])`, which meant a column rendering `owner.profile.name`\n * was unsearchable, and an object-valued column stringified to\n * `\"[object Object]\"` — so the query \"object\" matched every row with a nested\n * value. `getColumnText` returns `null` for anything it cannot honestly turn\n * into text, and those columns are skipped rather than coerced.\n */\nexport function matchesTableSearch<T>(\n columns: CubeTableColumn<T>[],\n row: T,\n rowIndex: number,\n query: string,\n): boolean {\n return columns.some((column) => {\n if (column.isSearchable === false) return false;\n\n const text = getColumnText(column, row, rowIndex);\n\n return text != null && text.toLowerCase().includes(query);\n });\n}\n\nexport function useTableSearch<T>({\n columns,\n rows,\n mode = 'client',\n value,\n defaultValue,\n onChange,\n delay = 500,\n filter,\n}: UseTableSearchOptions<T>): UseTableSearchResult<T> {\n const [committed, setCommitted] = useControlledState<string>(\n value as string,\n defaultValue ?? '',\n onChange as (v: string) => void,\n );\n\n // What the input shows, updated on every keystroke. The committed value —\n // the one `onChange` reports and the filter runs on — trails it by `delay`.\n //\n // Two separate values rather than one, because `useControlledState` calls\n // `onChange` the moment it is set: routing keystrokes straight into it fired\n // a request per character in `searchMode=\"server\"`, which is the thing the\n // debounce exists to prevent. Debouncing the input itself instead would make\n // typing lag, so the split is the point.\n const [draft, setDraft] = useState(committed);\n const debounced = useDebouncedValue(draft, delay);\n\n // What we last pushed outward, so the sync below can tell a genuine external\n // change from the echo of our own debounce.\n const pushedRef = useRef(committed);\n\n // A controlled `searchValue` changing from OUTSIDE — a cleared filter, a\n // restored URL — wins over whatever is half-typed.\n //\n // The echo has to be filtered out or this reverts the input mid-word: with a\n // short delay the debounce commits letter 1 while letter 2 is already typed,\n // and syncing unconditionally puts letter 1 back. At `searchDelay={0}` that\n // happens on every keystroke and nothing longer than one character can ever\n // be typed.\n useEffect(() => {\n if (committed === pushedRef.current) return;\n\n pushedRef.current = committed;\n setDraft(committed);\n }, [committed]);\n\n useEffect(() => {\n if (debounced === pushedRef.current) return;\n\n pushedRef.current = debounced;\n setCommitted(debounced);\n // `committed` is deliberately not a dependency: reacting to it here would\n // fight the effect above and push a stale draft back out.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debounced]);\n\n const searchValue = draft;\n const query = debounced.trim().toLowerCase();\n\n const setSearchValue = useEvent((next: string) => setDraft(next));\n\n const searchedRows = useMemo(() => {\n if (mode !== 'client' || !query) return rows;\n\n return rows.filter((row, index) =>\n filter\n ? filter(row, query)\n : matchesTableSearch(columns, row, index, query),\n );\n }, [mode, query, rows, columns, filter]);\n\n return {\n searchValue,\n setSearchValue,\n query,\n searchedRows,\n isFiltered: query.length > 0,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgDA,SAAgB2B,mBACdhB,SACAS,KACAQ,UACAP,OACS;AACT,QAAOV,QAAQkB,MAAMC,WAAW;AAC9B,MAAIA,OAAOC,iBAAiB,MAAO,QAAO;EAE1C,MAAMC,OAAOzB,cAAcuB,QAAQV,KAAKQ,SAAS;AAEjD,SAAOI,QAAQ,QAAQA,KAAKC,aAAa,CAACC,SAASb,MAAM;GACzD;;AAGJ,SAAgBc,eAAkB,EAChCxB,SACAE,MACAC,OAAO,UACPC,OACAC,cACAC,UACAC,QAAQ,KACRC,UACoD;CACpD,MAAM,CAACiB,WAAWC,gBAAgBrC,mBAChCe,OACAC,gBAAgB,IAChBC,SACD;CAUD,MAAM,CAACsB,OAAOC,YAAYpC,SAASgC,UAAU;CAC7C,MAAMK,YAAYpC,kBAAkBkC,OAAOrB,MAAM;CAIjD,MAAMwB,YAAYvC,OAAOiC,UAAU;AAUnCnC,iBAAgB;AACd,MAAImC,cAAcM,UAAUC,QAAS;AAErCD,YAAUC,UAAUP;AACpBI,WAASJ,UAAU;IAClB,CAACA,UAAU,CAAC;AAEfnC,iBAAgB;AACd,MAAIwC,cAAcC,UAAUC,QAAS;AAErCD,YAAUC,UAAUF;AACpBJ,eAAaI,UAAU;IAItB,CAACA,UAAU,CAAC;CAEf,MAAMlB,cAAcgB;CACpB,MAAMlB,QAAQoB,UAAUG,MAAM,CAACX,aAAa;AAc5C,QAAO;EACLV;EACAC,gBAdqBlB,UAAUuC,SAAiBL,SAASK,KAAK,CAAC;EAe/DxB;EACAI,cAdmBvB,cAAc;AACjC,OAAIY,SAAS,YAAY,CAACO,MAAO,QAAOR;AAExC,UAAOA,KAAKM,QAAQC,KAAK0B,UACvB3B,SACIA,OAAOC,KAAKC,MAAM,GAClBM,mBAAmBhB,SAASS,KAAK0B,OAAOzB,MAC9C,CAAC;KACA;GAACP;GAAMO;GAAOR;GAAMF;GAASQ;GAAO,CAAC;EAOtCO,YAAYL,MAAM0B,SAAS;EAC5B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { RowCollection } from "./RowCollection.js";
|
|
4
4
|
import { useCallback, useMemo, useRef } from "react";
|
|
@@ -105,7 +105,7 @@ function useTableSelection(options) {
|
|
|
105
105
|
filteredRowKeys,
|
|
106
106
|
getRowKey
|
|
107
107
|
]);
|
|
108
|
-
const visibleGetRowKey = useCallback((
|
|
108
|
+
const visibleGetRowKey = useCallback((row_0, index_0) => rowKeys?.[index_0] ?? getRowKey(row_0, index_0), [rowKeys, getRowKey]);
|
|
109
109
|
const collection = useMemo(() => new RowCollection(rows, visibleGetRowKey, unselectableKeys), [
|
|
110
110
|
rows,
|
|
111
111
|
visibleGetRowKey,
|
|
@@ -113,8 +113,8 @@ function useTableSelection(options) {
|
|
|
113
113
|
]);
|
|
114
114
|
const rowByKey = useMemo(() => {
|
|
115
115
|
const map = /* @__PURE__ */ new Map();
|
|
116
|
-
filteredRows.forEach((
|
|
117
|
-
rows.forEach((
|
|
116
|
+
filteredRows.forEach((row_1, index_1) => map.set(filteredRowKeys?.[index_1] ?? getRowKey(row_1, index_1), row_1));
|
|
117
|
+
rows.forEach((row_2, index_2) => map.set(rowKeys?.[index_2] ?? getRowKey(row_2, index_2), row_2));
|
|
118
118
|
return map;
|
|
119
119
|
}, [
|
|
120
120
|
rows,
|
|
@@ -143,14 +143,14 @@ function useTableSelection(options) {
|
|
|
143
143
|
*/
|
|
144
144
|
const anchorRef = useRef(null);
|
|
145
145
|
const extentRef = useRef(null);
|
|
146
|
-
const handleSelectionChange = useEvent((
|
|
146
|
+
const handleSelectionChange = useEvent((keys_0) => {
|
|
147
147
|
if (!onSelectionChange) return;
|
|
148
|
-
if (
|
|
148
|
+
if (keys_0 === "all") {
|
|
149
149
|
onSelectionChange("all", [...rowByKeyRef.current.values()]);
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
|
-
const list = [...
|
|
153
|
-
onSelectionChange(list, list.map((key) => rowByKeyRef.current.get(key)).filter((
|
|
152
|
+
const list = [...keys_0];
|
|
153
|
+
onSelectionChange(list, list.map((key) => rowByKeyRef.current.get(key)).filter((row_3) => row_3 !== void 0));
|
|
154
154
|
});
|
|
155
155
|
const state = useMultipleSelectionState({
|
|
156
156
|
selectionMode,
|
|
@@ -166,14 +166,14 @@ function useTableSelection(options) {
|
|
|
166
166
|
const isCascade = tree?.behavior === "cascade" && selectionMode === "multiple";
|
|
167
167
|
const derivedSelection = useMemo(() => {
|
|
168
168
|
if (isAll) return {
|
|
169
|
-
checked: new Set([...rowByKey.keys()].filter((
|
|
169
|
+
checked: new Set([...rowByKey.keys()].filter((key_0) => !unselectableKeys.has(key_0))),
|
|
170
170
|
indeterminate: /* @__PURE__ */ new Set()
|
|
171
171
|
};
|
|
172
172
|
if (!isCascade || !tree) return {
|
|
173
173
|
checked: new Set(selectedKeys),
|
|
174
174
|
indeterminate: /* @__PURE__ */ new Set()
|
|
175
175
|
};
|
|
176
|
-
return deriveTreeSelection(selectedKeys, tree.rootKeys, tree.childrenOf, (
|
|
176
|
+
return deriveTreeSelection(selectedKeys, tree.rootKeys, tree.childrenOf, (key_1) => !unselectableKeys.has(key_1));
|
|
177
177
|
}, [
|
|
178
178
|
isAll,
|
|
179
179
|
isCascade,
|
|
@@ -182,19 +182,19 @@ function useTableSelection(options) {
|
|
|
182
182
|
rowByKey,
|
|
183
183
|
unselectableKeys
|
|
184
184
|
]);
|
|
185
|
-
const canSelect = useCallback((
|
|
186
|
-
const isSelected = useCallback((
|
|
185
|
+
const canSelect = useCallback((key_2) => isEnabled && !unselectableKeys.has(key_2), [isEnabled, unselectableKeys]);
|
|
186
|
+
const isSelected = useCallback((key_3) => isAll ? canSelect(key_3) : derivedSelection.checked.has(key_3), [
|
|
187
187
|
isAll,
|
|
188
188
|
derivedSelection,
|
|
189
189
|
canSelect
|
|
190
190
|
]);
|
|
191
|
-
const isIndeterminate = useCallback((
|
|
191
|
+
const isIndeterminate = useCallback((key_4) => derivedSelection.indeterminate.has(key_4), [derivedSelection]);
|
|
192
192
|
/** Keys the header checkbox acts on, which is what `selectAllMode` decides. */
|
|
193
193
|
const scopeKeys = useMemo(() => {
|
|
194
194
|
if (!isEnabled || selectionMode === "single") return [];
|
|
195
195
|
const source = selectAllMode === "page" ? pageRows : filteredRows;
|
|
196
196
|
const sourceKeys = selectAllMode === "page" ? pageRowKeys : filteredRowKeys;
|
|
197
|
-
return source.map((
|
|
197
|
+
return source.map((row_4, index_3) => sourceKeys?.[index_3] ?? getRowKey(row_4, index_3)).filter((key_5) => !unselectableKeys.has(key_5));
|
|
198
198
|
}, [
|
|
199
199
|
isEnabled,
|
|
200
200
|
selectionMode,
|
|
@@ -211,7 +211,7 @@ function useTableSelection(options) {
|
|
|
211
211
|
if (!scopeKeys.length) return "none";
|
|
212
212
|
const set = derivedSelection.checked;
|
|
213
213
|
let count = 0;
|
|
214
|
-
for (const
|
|
214
|
+
for (const key_6 of scopeKeys) if (set.has(key_6)) count++;
|
|
215
215
|
return count === 0 ? "none" : count === scopeKeys.length ? "all" : "some";
|
|
216
216
|
}, [
|
|
217
217
|
isAll,
|
|
@@ -230,8 +230,8 @@ function useTableSelection(options) {
|
|
|
230
230
|
return;
|
|
231
231
|
}
|
|
232
232
|
const next = new Set(isAll ? [] : derivedSelection.checked);
|
|
233
|
-
scopeKeys.forEach((
|
|
234
|
-
state.setSelectedKeys(isCascade && tree ? deriveTreeSelection(next, tree.rootKeys, tree.childrenOf, (
|
|
233
|
+
scopeKeys.forEach((key_7) => next.add(key_7));
|
|
234
|
+
state.setSelectedKeys(isCascade && tree ? deriveTreeSelection(next, tree.rootKeys, tree.childrenOf, (key_8) => !unselectableKeys.has(key_8)).checked : next);
|
|
235
235
|
});
|
|
236
236
|
const clearSelection = useEvent(() => {
|
|
237
237
|
anchorRef.current = null;
|
|
@@ -258,51 +258,51 @@ function useTableSelection(options) {
|
|
|
258
258
|
for (let i = lo; i <= hi; i++) range.push(all[i]);
|
|
259
259
|
return range;
|
|
260
260
|
}, [collection]);
|
|
261
|
-
const toggleRow = useEvent((
|
|
262
|
-
if (!canSelect(
|
|
261
|
+
const toggleRow = useEvent((key_9) => {
|
|
262
|
+
if (!canSelect(key_9)) return;
|
|
263
263
|
if (selectionMode === "single") {
|
|
264
|
-
state.setSelectedKeys(isSelected(
|
|
264
|
+
state.setSelectedKeys(isSelected(key_9) ? /* @__PURE__ */ new Set() : new Set([key_9]));
|
|
265
265
|
return;
|
|
266
266
|
}
|
|
267
|
-
const applyCascade = (
|
|
267
|
+
const applyCascade = (set_0, target, value) => {
|
|
268
268
|
if (!canSelect(target)) return;
|
|
269
|
-
if (value)
|
|
269
|
+
if (value) set_0.add(target);
|
|
270
270
|
else {
|
|
271
|
-
|
|
271
|
+
set_0.delete(target);
|
|
272
272
|
if (isCascade && tree) {
|
|
273
273
|
let parent = tree.parentOf.get(target);
|
|
274
274
|
while (parent != null) {
|
|
275
|
-
|
|
275
|
+
set_0.delete(parent);
|
|
276
276
|
parent = tree.parentOf.get(parent);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
if (!isCascade || !tree) return;
|
|
281
|
-
(tree.childrenOf.get(target) ?? []).forEach((child) => applyCascade(
|
|
281
|
+
(tree.childrenOf.get(target) ?? []).forEach((child) => applyCascade(set_0, child, value));
|
|
282
282
|
};
|
|
283
|
-
const normalizeCascade = (
|
|
283
|
+
const normalizeCascade = (set_1) => isCascade && tree ? deriveTreeSelection(set_1, tree.rootKeys, tree.childrenOf, (candidate) => !unselectableKeys.has(candidate)).checked : set_1;
|
|
284
284
|
const anchor = anchorRef.current;
|
|
285
285
|
if (shiftRef.current && anchor != null && collection.indexOf(anchor) >= 0) {
|
|
286
|
-
const
|
|
287
|
-
if (extentRef.current != null) keysBetween(anchor, extentRef.current).forEach((k) => applyCascade(
|
|
288
|
-
keysBetween(anchor,
|
|
289
|
-
applyCascade(
|
|
286
|
+
const next_0 = new Set(isAll ? scopeKeys : derivedSelection.checked);
|
|
287
|
+
if (extentRef.current != null) keysBetween(anchor, extentRef.current).forEach((k) => applyCascade(next_0, k, false));
|
|
288
|
+
keysBetween(anchor, key_9).forEach((k_0) => {
|
|
289
|
+
applyCascade(next_0, k_0, true);
|
|
290
290
|
});
|
|
291
|
-
extentRef.current =
|
|
292
|
-
state.setSelectedKeys(normalizeCascade(
|
|
291
|
+
extentRef.current = key_9;
|
|
292
|
+
state.setSelectedKeys(normalizeCascade(next_0));
|
|
293
293
|
return;
|
|
294
294
|
}
|
|
295
|
-
anchorRef.current =
|
|
295
|
+
anchorRef.current = key_9;
|
|
296
296
|
extentRef.current = null;
|
|
297
297
|
if (isCascade) {
|
|
298
|
-
const
|
|
299
|
-
applyCascade(
|
|
300
|
-
state.setSelectedKeys(normalizeCascade(
|
|
301
|
-
} else selectionManager.toggleSelection(
|
|
298
|
+
const next_1 = new Set(derivedSelection.checked);
|
|
299
|
+
applyCascade(next_1, key_9, !derivedSelection.checked.has(key_9));
|
|
300
|
+
state.setSelectedKeys(normalizeCascade(next_1));
|
|
301
|
+
} else selectionManager.toggleSelection(key_9);
|
|
302
302
|
});
|
|
303
303
|
const selectedRows = useMemo(() => {
|
|
304
304
|
if (isAll) return [...rowByKey.values()];
|
|
305
|
-
return [...derivedSelection.checked].map((
|
|
305
|
+
return [...derivedSelection.checked].map((key_10) => rowByKey.get(key_10)).filter((row_5) => row_5 !== void 0);
|
|
306
306
|
}, [
|
|
307
307
|
isAll,
|
|
308
308
|
derivedSelection,
|
|
@@ -316,7 +316,7 @@ function useTableSelection(options) {
|
|
|
316
316
|
isSelected,
|
|
317
317
|
isIndeterminate,
|
|
318
318
|
canSelect,
|
|
319
|
-
isRowDisabled: useCallback((
|
|
319
|
+
isRowDisabled: useCallback((key_11) => hardDisabledKeys.has(key_11), [hardDisabledKeys]),
|
|
320
320
|
toggleRow,
|
|
321
321
|
captureShift,
|
|
322
322
|
selectAllState,
|