@cube-dev/ui-kit 0.187.2 → 0.189.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/README.md +4 -0
- package/dist/CHANGELOG.md +47 -0
- package/dist/README.md +4 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +3 -6
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.d.ts +4 -0
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Action/Action.js.map +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +2 -2
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +40 -19
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +4 -7
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +3 -3
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +7 -5
- package/dist/components/actions/Menu/MenuSection.js.map +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +4 -6
- package/dist/components/actions/Menu/styled.js.map +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.d.ts +4 -0
- package/dist/components/actions/use-action.js +6 -1
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/Alert.js.map +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +53 -78
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.d.ts +7 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +6 -1
- package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +11 -10
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +13 -22
- package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.d.ts +34 -4
- package/dist/components/content/Result/Result.js +199 -95
- package/dist/components/content/Result/Result.js.map +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +3 -5
- 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 +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.d.ts +2 -0
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +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/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +33 -10
- package/dist/components/data/DataTable/DataTable.js.map +1 -1
- package/dist/components/data/DataTable/types.d.ts +3 -1
- package/dist/components/data/ItemTable/ItemTable.js +3 -6
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +9 -7
- 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-styles.js +82 -0
- package/dist/components/data/TableBase/column-styles.js.map +1 -0
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +8 -10
- 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/types.d.ts +11 -0
- 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-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +9 -4
- package/dist/components/fields/ComboBox/ComboBox.js +2 -1
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +3 -5
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +119 -129
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +128 -138
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +321 -331
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +163 -179
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +5 -6
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +46 -44
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.d.ts +2 -2
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +3 -3
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.d.ts +2 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.js +5 -6
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +9 -4
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +2 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +68 -66
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +33 -43
- package/dist/components/fields/Slider/HueSlider.js.map +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +170 -158
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.d.ts +2 -2
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +2 -2
- 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/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.js +2 -2
- package/dist/components/layout/Board/Board.js.map +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +4 -4
- package/dist/components/layout/Board/WidgetHost.js.map +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +470 -407
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +22 -4
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +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 +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +78 -116
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +57 -50
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +52 -48
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +99 -104
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
- package/dist/components/overlays/AlertDialog/index.d.ts +2 -1
- package/dist/components/overlays/Dialog/Dialog.js +2 -2
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.d.ts +2 -2
- package/dist/components/overlays/Dialog/DialogForm.js +4 -5
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +5 -6
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +30 -0
- package/dist/components/overlays/Dialog/default-button-text.js.map +1 -0
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +2 -2
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +18 -2
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +4 -1
- package/dist/i18n/locales/en-US/uikit.js +4 -1
- package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -0
- package/dist/i18n/locales/es-ES/uikit.js +4 -1
- package/dist/i18n/locales/es-MX/uikit.js +4 -1
- package/dist/i18n/locales/fr-FR/uikit.js +4 -1
- package/dist/i18n/locales/it-IT/uikit.js +4 -1
- package/dist/i18n/locales/ja-JP/uikit.js +4 -1
- package/dist/i18n/locales/nb-NO/uikit.js +4 -1
- package/dist/i18n/locales/pt-BR/uikit.js +4 -1
- package/dist/i18n/locales/pt-PT/uikit.js +4 -1
- package/dist/i18n/locales/sv-SE/uikit.js +4 -1
- package/dist/i18n/locales/vi-VN/uikit.js +4 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/shared/form.d.ts +29 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/escapePropagation.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +51 -6
- package/dist/utils/styles.js.map +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/components/actions/Action.md +1 -1
- package/docs/components/actions/Button.md +4 -2
- package/docs/components/actions/ItemButton.md +1 -0
- package/docs/components/actions/Link.md +1 -1
- package/docs/components/content/InfoBadge.md +1 -1
- package/docs/components/content/Item.md +1 -1
- package/docs/components/content/Result.md +202 -12
- package/docs/components/content/Title.md +1 -0
- package/docs/components/data/DataTable.md +18 -0
- package/docs/components/data/ItemTable.md +3 -1
- package/docs/components/fields/ComboBox.md +49 -1
- package/docs/components/fields/FilterPicker.md +3 -3
- package/docs/components/fields/NumberInput.md +27 -0
- package/docs/components/fields/PasswordInput.md +24 -0
- package/docs/components/fields/Picker.md +3 -3
- package/docs/components/fields/SearchComboBox.md +3 -1
- package/docs/components/fields/TagInput.md +4 -2
- package/docs/components/fields/TextArea.md +24 -0
- package/docs/components/fields/TextInput.md +24 -0
- package/docs/components/navigation/Tabs.md +8 -3
- package/docs/components/overlays/AlertDialog.md +100 -3
- package/docs/components/overlays/DialogForm.md +3 -3
- package/docs/components/overlays/UseDialogContainer.md +4 -7
- package/docs/tasty/dsl.md +28 -6
- package/docs/tasty/styles.md +20 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemTable.js","names":["useCollator","useControlledState","CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useEvent","useWarn","useI18n","useCombinedRefs","extractStyles","clampPage","getPageInfo","DraggableCollection","ROW_MENU_COLUMN_KEY","ROW_MENU_COLUMN_WIDTH","buildTableTree","filterTableTree","flattenTableTree","isTableTreeDescendant","reindexTableTree","sortTableTree","TableView","useContainerWidth","freezeColumnWidths","getColumnText","useTableColumns","matchesTableSearch","useTableSearch","SELECTION_COLUMN_KEY","SELECTION_COLUMN_WIDTH","useTableSelection","compareByColumn","useTableSort","useTableStorage","useTableTreeState","ItemTableBulkBar","ItemTableDragPreview","ItemTableFooter","ItemTableChromeProvider","ItemTableSearch","ItemTableToolbar","Key","ForwardedRef","ReactElement","ReactNode","CubeTableColumnLayout","CubeTableRowContext","CubeTableSort","CubeItemTableProps","EMPTY_WIDTHS","Record","defaultGetRowKey","rowKey","row","T","index","value","ItemTable","props","ref","HTMLDivElement","data","columns","getRowKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","isLoading","loadingIndicator","selectionMode","bulkActions","rowLink","onRowAction","rowMenu","rowContextMenu","onRowMenuAction","rowMenuTriggerProps","bulkBarPlacement","bulkBarStyles","selectedKeys","selectedKeysProp","defaultSelectedKeys","onSelectionChange","selectAllMode","isRowSelectable","selectionTooltip","disabledKeys","treeSelectionBehavior","skeletonRowCount","emptyLabel","noResultsLabel","error","isFiltered","toolbar","isSearchable","searchMode","searchPlaceholder","searchValue","searchValueProp","defaultSearchValue","onSearchChange","searchDelay","searchFilter","filters","actions","onRefresh","paginationMode","pageSize","pageSizeProp","defaultPageSize","autoHidePagination","onLoadMore","hasMore","isLoadingMore","loadMoreMargin","storageKey","persist","isReorderable","onReorder","dropOnRow","getItemDragInfo","isResizable","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","onPageSizeChange","pageSizeOptions","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","footer","footerStart","footerCenter","footerEnd","sortMode","sort","sortProp","defaultSort","onSortChange","shape","size","rowHeight","headerHeight","isStriped","isHeaderHidden","isHeaderSticky","isAutoHeight","isVirtualized","virtualizeThreshold","overscan","getRowProps","ariaLabel","qa","mods","styles","headerStyles","headerCellStyles","headerPreset","toolbarStyles","searchStyles","footerStyles","bodyStyles","rowStyles","cellStyles","isRowMoveAnimated","t","localRef","rootRef","scrollerEl","setScrollerEl","containerWidth","rootStyles","resolvedGetRowKey","treeModel","duplicateKeys","length","key","args","cyclicKeys","resolvedTreeColumnKey","undefined","visibleColumns","filter","column","isHidden","some","setSearchValue","searchedRows","query","isSearching","rows","mode","defaultValue","onChange","delay","searchedTree","roots","forcedExpandedKeys","Set","node","sourceIndex","storage","sortedRows","toggleSort","setColumnSort","resolvedSortMode","map","has","initial","next","write","collator","numeric","sensitivity","treeSortMode","isSortable","processedTreeRoots","find","entry","columnKey","a","b","result","direction","setPageSizeState","setPageState","isInfinite","isPaginated","isServerPaginated","pageInfo","setPage","setPageSize","flatVisibleRows","slice","pageTreeRoots","treeState","allNodesByKey","byKey","Map","getTextValue","String","visibleTreeEntries","visibleEntries","visibleRows","visibleRowKeys","pageTreeEntries","filteredTreeEntries","selectionTree","childrenOf","parentOf","forEach","set","children","child","parentKey","rootKeys","behavior","resolvedSelectionMode","selection","rowKeys","pageRows","pageRowKeys","filteredRows","filteredRowKeys","tree","resolveRowMenu","ctx","trailingColumns","width","medium","align","const","leadingColumns","isEnabled","ownColumnWidths","setOwnColumnWidths","draftColumnWidths","setDraftColumnWidths","draftColumnWidthsRef","baseColumnWidths","layoutRef","handleColumnResize","base","current","Math","round","handleColumnResizeEnd","layout","hasBulkSelection","selectedCount","bulkBar","isBulkBarInToolbar","hasToolbar","toolbarNode","smallestPageSize","min","isPaginationUseless","showPagination","hasFooter","footerNode","bodyRef","HTMLTableSectionElement","handleReorder","nextKeys","get","renderTable","dragState","dropState","collectionProps","isDragEnabled","state","ariaProps","nodes","visibleNodes","entries","rowByKeyForDrop","handleItemDrop","targetKey","draggedKeys","target","draggedKeySet","topmostDraggedKeys","parent","dragged","isAllowed","onDrop","renderDragPreview","keys","shouldAcceptItemDrop","isTarget","table","collection","selectionManager","selectedRows","clearSelection","_ItemTable","Object","assign","displayName","Search","Toolbar","BulkBar"],"sources":["../../../../src/components/data/ItemTable/ItemTable.tsx"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useEvent, useWarn } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport {\n ROW_MENU_COLUMN_KEY,\n ROW_MENU_COLUMN_WIDTH,\n} from '../TableBase/row-menu';\nimport {\n buildTableTree,\n filterTableTree,\n flattenTableTree,\n isTableTreeDescendant,\n reindexTableTree,\n sortTableTree,\n} from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport {\n freezeColumnWidths,\n getColumnText,\n useTableColumns,\n} from '../TableBase/use-table-columns';\nimport {\n matchesTableSearch,\n useTableSearch,\n} from '../TableBase/use-table-search';\nimport {\n SELECTION_COLUMN_KEY,\n SELECTION_COLUMN_WIDTH,\n useTableSelection,\n} from '../TableBase/use-table-selection';\nimport { compareByColumn, useTableSort } from '../TableBase/use-table-sort';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport { ItemTableBulkBar } from './ItemTableBulkBar';\nimport { ItemTableDragPreview } from './ItemTableDragPreview';\nimport { ItemTableFooter } from './ItemTableFooter';\nimport {\n ItemTableChromeProvider,\n ItemTableSearch,\n ItemTableToolbar,\n} from './ItemTableToolbar';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement, ReactNode } from 'react';\nimport type {\n CubeTableColumnLayout,\n CubeTableRowContext,\n CubeTableSort,\n} from '../TableBase/types';\nimport type { CubeItemTableProps } from './types';\n\n/** Stable identity, so the uncontrolled default does not change every render. */\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\nfunction ItemTable<T = any>(\n props: CubeItemTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n isLoading = false,\n loadingIndicator = 'overlay',\n selectionMode,\n bulkActions,\n rowLink,\n onRowAction,\n rowMenu,\n rowContextMenu = false,\n onRowMenuAction,\n rowMenuTriggerProps,\n bulkBarPlacement = 'floating',\n bulkBarStyles,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode = 'page',\n isRowSelectable,\n selectionTooltip,\n disabledKeys,\n treeSelectionBehavior = 'cascade',\n skeletonRowCount = 6,\n emptyLabel,\n noResultsLabel,\n error,\n isFiltered,\n toolbar,\n isSearchable = false,\n searchMode = 'client',\n searchPlaceholder,\n searchValue: searchValueProp,\n defaultSearchValue,\n onSearchChange,\n searchDelay = 500,\n searchFilter,\n filters,\n actions,\n onRefresh,\n paginationMode = 'client',\n pageSize: pageSizeProp,\n defaultPageSize = 50,\n autoHidePagination = true,\n onLoadMore,\n hasMore,\n isLoadingMore,\n loadMoreMargin,\n storageKey,\n persist,\n isReorderable = false,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n isResizable = false,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n onPageSizeChange,\n pageSizeOptions = [10, 20, 50, 100, 500],\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n footer,\n footerStart,\n footerCenter,\n footerEnd,\n sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n shape = 'plain',\n size = 'medium',\n rowHeight,\n headerHeight,\n isStriped = false,\n isHeaderHidden = false,\n isHeaderSticky = true,\n isAutoHeight = false,\n isVirtualized = 'auto',\n virtualizeThreshold = 50,\n overscan = 20,\n getRowProps,\n ariaLabel,\n qa,\n mods,\n styles,\n headerStyles,\n headerCellStyles,\n headerPreset = 'c3',\n toolbarStyles,\n searchStyles,\n footerStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n isRowMoveAnimated,\n } = props;\n\n const { t } = useI18n();\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n\n // Held in state, not a ref: the virtualized path's scroller is created by\n // Virtuoso and arrives through a callback, and the column layout has to\n // re-derive once it does.\n const [scrollerEl, setScrollerEl] = useState<HTMLDivElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n // Style props (`height`, `maxHeight`, `margin`, …) land on the root frame.\n // `height` matters most: there is no page-scroll mode, so bounding the table\n // is what turns the body into a scroller and pins the header.\n const rootStyles = { ...extractStyles(props, CONTAINER_STYLES), ...styles };\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const treeModel = useMemo(\n () =>\n getRowChildren\n ? buildTableTree(data, getRowChildren, resolvedGetRowKey)\n : null,\n [data, getRowChildren, resolvedGetRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['item-table-tree-duplicate-keys'],\n args: [\n 'ItemTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['item-table-tree-cyclic-keys'],\n args: [\n 'ItemTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n useWarn(treeModel != null && isReorderable, {\n key: ['item-table-tree-reorder-unsupported'],\n args: [\n 'ItemTable:',\n '`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves.',\n ],\n });\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = columns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, columns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['item-table-tree-column-invalid', treeColumnKey],\n args: [\n 'ItemTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n const {\n searchValue,\n setSearchValue,\n searchedRows,\n query,\n isFiltered: isSearching,\n } = useTableSearch<T>({\n columns,\n rows: data,\n // Tree filtering needs to preserve ancestors and descendants, so the flat\n // hook owns only the controlled/debounced value in this mode.\n mode: treeModel ? 'server' : searchMode,\n value: searchValueProp,\n defaultValue: defaultSearchValue,\n onChange: onSearchChange,\n delay: searchDelay,\n filter: searchFilter,\n });\n\n const searchedTree = useMemo(() => {\n if (!treeModel) return null;\n if (searchMode !== 'client' || !query) {\n return { roots: treeModel.roots, forcedExpandedKeys: new Set<Key>() };\n }\n\n return filterTableTree(treeModel.roots, (node) =>\n searchFilter\n ? searchFilter(node.row, query)\n : matchesTableSearch(columns, node.row, node.sourceIndex, query),\n );\n }, [treeModel, searchMode, query, searchFilter, columns]);\n\n const storage = useTableStorage(storageKey, persist);\n\n const {\n sort,\n sortedRows,\n toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSort<T>({\n columns,\n rows: treeModel\n ? searchedTree?.roots.map((node) => node.row) ?? []\n : searchedRows,\n mode: treeModel ? 'server' : sortMode,\n sort: sortProp,\n // Only restore what the table owns: a controlled `sort` belongs to the page,\n // and overriding it here would fight the page's own source of truth.\n defaultSort:\n sortProp === undefined && storage.has('sort')\n ? storage.initial.sort ?? defaultSort\n : defaultSort,\n onSortChange: useEvent((next: CubeTableSort | null) => {\n if (sortProp === undefined) storage.write({ sort: next });\n onSortChange?.(next);\n }),\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = treeModel\n ? sortMode ??\n (columns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const processedTreeRoots = useMemo(() => {\n const roots = searchedTree?.roots ?? [];\n if (treeSortMode !== 'client' || !sort) return roots;\n const column = columns.find((entry) => entry.key === sort.columnKey);\n if (!column) return roots;\n\n return sortTableTree(roots, (a, b) => {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n return result * (sort.direction === 'asc' ? 1 : -1);\n });\n }, [searchedTree, treeSortMode, sort, columns, collator]);\n\n // Search → sort → paginate. Paging last, so a page always reflects the rows\n // the user is actually looking at.\n //\n // Deliberately not `usePagination`: that hook owns an in-memory array, and in\n // server mode `data` is a single page. Deriving the bounds from it would clamp\n // the page to 1 and swallow every page change.\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isInfinite = paginationMode === 'infinite';\n // Infinite scroll replaces the page control rather than adding to it.\n const isPaginated = paginationMode !== 'off' && !isInfinite;\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : treeModel\n ? processedTreeRoots.length\n : sortedRows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n\n // The old page index points at different rows under a new page size, so\n // staying on it would silently move the user.\n setPageState(1);\n });\n\n const flatVisibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n paginationMode === 'client'\n ? processedTreeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : processedTreeRoots,\n ),\n [processedTreeRoots, paginationMode, pageInfo.page, pageSize],\n );\n\n const treeState = useTableTreeState<T>({\n roots: pageTreeRoots,\n allNodesByKey: treeModel?.byKey ?? new Map(),\n expandedKeys,\n defaultExpandedKeys,\n forcedExpandedKeys: searchedTree?.forcedExpandedKeys,\n disabledKeys,\n getTextValue: (node) => {\n const column = columns.find(\n (entry) => entry.key === resolvedTreeColumnKey,\n );\n return column\n ? getColumnText(column, node.row, node.sourceIndex) ?? String(node.key)\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : flatVisibleRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n const pageTreeEntries = treeModel ? flattenTableTree(pageTreeRoots) : [];\n const filteredTreeEntries = treeModel\n ? flattenTableTree(processedTreeRoots)\n : [];\n const selectionTree = useMemo(() => {\n if (!treeModel) return undefined;\n\n // Selection follows the tree the user can currently act on. In\n // particular, a search that retains only an ancestor path must not let a\n // checked ancestor reach siblings that the search removed.\n const childrenOf = new Map<Key, Key[]>();\n const parentOf = new Map<Key, Key | null>();\n\n flattenTableTree(processedTreeRoots).forEach((node) => {\n childrenOf.set(\n node.key,\n node.children.map((child) => child.key),\n );\n parentOf.set(node.key, node.parentKey);\n });\n\n return {\n rootKeys: processedTreeRoots.map((node) => node.key),\n childrenOf,\n parentOf,\n behavior: treeSelectionBehavior,\n };\n }, [treeModel, processedTreeRoots, treeSelectionBehavior]);\n\n // A bulk action with no way to select rows is a contradiction, so supplying\n // any implies multiple selection unless the consumer says otherwise.\n const resolvedSelectionMode =\n selectionMode ?? (bulkActions?.length ? 'multiple' : 'none');\n\n const selection = useTableSelection<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n pageRows: treeModel\n ? pageTreeEntries.map((entry) => entry.row)\n : visibleRows,\n pageRowKeys: treeModel\n ? pageTreeEntries.map((entry) => entry.key)\n : undefined,\n // The wider set the header checkbox can reach under\n // `selectAllMode=\"filtered\"`. In server mode the client only ever holds one\n // page, so the two coincide.\n filteredRows: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.row)\n : paginationMode === 'client'\n ? sortedRows\n : visibleRows,\n filteredRowKeys: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.key)\n : undefined,\n getRowKey: resolvedGetRowKey,\n selectionMode: resolvedSelectionMode,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n tree: selectionTree,\n });\n\n // A `ReactNode` menu applies to every row; a function decides per row. The\n // renderer only ever sees the function form.\n const resolveRowMenu = useMemo(\n () =>\n rowMenu == null\n ? undefined\n : typeof rowMenu === 'function'\n ? (rowMenu as (\n row: T,\n ctx: CubeTableRowContext<T>,\n ) => ReactNode | null)\n : () => rowMenu as ReactNode,\n [rowMenu],\n );\n\n const trailingColumns = useMemo(\n () =>\n resolveRowMenu && rowContextMenu === true\n ? [\n {\n key: ROW_MENU_COLUMN_KEY,\n width:\n ROW_MENU_COLUMN_WIDTH[size] ?? ROW_MENU_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [resolveRowMenu, rowContextMenu, size],\n );\n\n const leadingColumns = useMemo(\n () =>\n selection.isEnabled\n ? [\n {\n key: SELECTION_COLUMN_KEY,\n width:\n SELECTION_COLUMN_WIDTH[size] ?? SELECTION_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [selection.isEnabled, size],\n );\n\n /**\n * Column widths, in three layers.\n *\n * The draft exists because a resize has to be visible *while* it happens, and\n * a controlled `columnWidths` cannot be: the consumer only learns the new\n * width from `onColumnResize`, which fires when the gesture ends. Without a\n * draft a controlled table simply would not move under the pointer.\n */\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? storage.initial.columnWidths ?? defaultColumnWidths\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n\n /**\n * The same draft, in a ref.\n *\n * A keyboard resize runs `useMove`'s whole start → move → end cycle inside\n * one key press, so the end handler would read the state from before the\n * move. The ref is what it actually settles on; the state exists only to\n * trigger the render.\n */\n const draftColumnWidthsRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n /** `layout` is computed below; `useEvent` only reads this when a drag runs. */\n const layoutRef = useRef<CubeTableColumnLayout<T> | null>(null);\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n // First move of a drag freezes every column, so this changes exactly one\n // width instead of re-splitting the flex pool. See `freezeColumnWidths`.\n const base =\n draftColumnWidthsRef.current ??\n freezeColumnWidths(layoutRef.current, baseColumnWidths);\n\n draftColumnWidthsRef.current = { ...base, [key]: Math.round(width) };\n setDraftColumnWidths(draftColumnWidthsRef.current);\n });\n\n // Once at the end: a callback per pixel would be unusable, and persisting\n // every frame would hammer `localStorage`.\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftColumnWidthsRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n\n // The prop (or `ownColumnWidths`) is the source of truth again. A\n // controlled consumer that ignores the callback reverts, which is what\n // being controlled means.\n draftColumnWidthsRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const layout = useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n });\n\n layoutRef.current = layout;\n\n const hasBulkSelection =\n bulkActions != null &&\n bulkActions.length > 0 &&\n selection.selectedCount > 0;\n\n const bulkBar = hasBulkSelection ? (\n <ItemTableBulkBar<T>\n actions={bulkActions!}\n placement={bulkBarPlacement}\n styles={bulkBarStyles}\n />\n ) : null;\n\n const isBulkBarInToolbar = bulkBar != null && bulkBarPlacement === 'toolbar';\n\n const hasToolbar =\n toolbar !== undefined ||\n isSearchable ||\n filters != null ||\n actions != null ||\n onRefresh != null ||\n isBulkBarInToolbar;\n\n const toolbarNode = hasToolbar\n ? toolbar ?? (\n <ItemTableToolbar\n isSearchable={isSearchable}\n filters={filters}\n // The bar takes the actions group rather than sitting beside it: the\n // two compete for the same space, and while rows are selected the\n // bulk actions are what the user is reaching for.\n actions={isBulkBarInToolbar ? bulkBar : actions}\n isLoading={isLoading}\n styles={toolbarStyles}\n searchStyles={searchStyles}\n onRefresh={onRefresh}\n />\n )\n : null;\n\n /**\n * Pagination that cannot do anything is noise: one page of five rows still\n * renders \"1–5 of 5\", a page-size selector whose every option shows the same\n * five rows, and a solitary \"1\" button.\n *\n * \"Cannot do anything\" is both conditions together — a single page *and* a\n * total that even the smallest page size would not split. A 15-row single\n * page stays, because choosing \"10 / page\" would genuinely paginate it.\n */\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const isPaginationUseless =\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize;\n\n const showPagination = isPaginated && !isPaginationUseless;\n\n const hasFooter =\n footer !== undefined ||\n showPagination ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n const footerNode = hasFooter\n ? footer ?? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={\n showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined\n }\n />\n )\n : null;\n\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n\n const rowKeys = useMemo(\n () =>\n visibleRows.map((row, index) =>\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n ),\n [visibleRows, visibleRowKeys, resolvedGetRowKey],\n );\n\n const handleReorder = useEvent((nextKeys: string[]) => {\n const byKey = new Map(\n visibleRows.map((row, index) => [\n String(resolvedGetRowKey(row, index)),\n row,\n ]),\n );\n\n onReorder?.(\n nextKeys,\n nextKeys\n .map((key) => byKey.get(key))\n .filter((row): row is T => row !== undefined),\n );\n });\n\n /**\n * `DraggableCollection` owns the React Aria drag/drop hooks and hands the two\n * states down. It is only mounted when reordering is on, so a plain table\n * pays nothing for it.\n *\n * `RowCollection` and the `SelectionManager` from `useTableSelection` satisfy\n * its structural `state` contract unchanged — both exist even when selection\n * itself is off.\n */\n const renderTable = (\n dragState?: any,\n dropState?: any,\n collectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n rootRef={rootRef}\n dragState={dragState}\n dropState={dropState}\n collectionProps={collectionProps}\n bodyRef={bodyRef}\n qa={qa || 'ItemTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n // `aria-rowindex` is document-absolute by contract: on page 3 a screen\n // reader should hear \"row 51 of 240\", not \"row 1 of 25\". Infinite scroll\n // never offsets — every loaded row is already in `visibleRows`.\n // `isPaginated` already excludes infinite scroll, where every loaded row\n // is in `visibleRows` and there is no page to offset by.\n rowIndexOffset={\n treeModel ? 0 : isPaginated ? (pageInfo.page - 1) * pageSize : 0\n }\n totalRowCount={treeModel ? visibleRows.length : total}\n getRowKey={resolvedGetRowKey}\n layout={layout}\n onScrollerRef={setScrollerEl}\n size={size}\n shape={shape}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n isAutoHeight={isAutoHeight}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n selection={selection}\n selectionTooltip={selectionTooltip}\n rowLink={rowLink}\n onRowAction={onRowAction}\n onLoadMore={isInfinite ? onLoadMore : undefined}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n loadMoreMargin={loadMoreMargin}\n isReorderable={isDragEnabled}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n rowMenu={resolveRowMenu}\n rowContextMenu={rowContextMenu}\n onRowMenuAction={onRowMenuAction}\n rowMenuTriggerProps={rowMenuTriggerProps}\n skeletonRowCount={skeletonRowCount}\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n error={error}\n toolbar={toolbarNode}\n footer={footerNode}\n isFiltered={isFiltered ?? isSearching}\n sortMode={treeSortMode}\n sort={sort}\n onColumnSort={toggleSort}\n onColumnSortChange={setColumnSort}\n columnContextMenu={columnContextMenu}\n onColumnMenuAction={onColumnMenuAction}\n columnMenuTriggerProps={columnMenuTriggerProps}\n columnMenuProps={columnMenuProps}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n headerPreset={headerPreset}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n overlay={bulkBarPlacement === 'floating' ? bulkBar : null}\n tree={\n treeModel\n ? {\n state: treeState.state,\n ariaProps: treeState.ariaProps,\n nodes: treeState.visibleNodes,\n entries: visibleTreeEntries,\n columnKey: resolvedTreeColumnKey!,\n }\n : undefined\n }\n />\n );\n\n const rowByKeyForDrop = useMemo(() => {\n const map = new Map<string, T>();\n\n visibleRows.forEach((row, index) =>\n map.set(\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n row,\n ),\n );\n\n return map;\n }, [visibleRows, visibleRowKeys, resolvedGetRowKey]);\n\n const handleItemDrop = useEvent((targetKey: Key, draggedKeys: Key[]) => {\n if (!dropOnRow) return;\n\n const target = rowByKeyForDrop.get(String(targetKey));\n\n if (!target) return;\n\n const draggedKeySet = new Set(draggedKeys);\n const topmostDraggedKeys = treeModel\n ? draggedKeys.filter((key) => {\n let parent = treeModel.parentOf.get(key);\n while (parent != null) {\n if (draggedKeySet.has(parent)) return false;\n parent = treeModel.parentOf.get(parent);\n }\n return true;\n })\n : draggedKeys;\n\n if (\n treeModel &&\n topmostDraggedKeys.some((key) =>\n isTableTreeDescendant(treeModel, targetKey, key),\n )\n ) {\n return;\n }\n\n const dragged = topmostDraggedKeys\n .map((key) => rowByKeyForDrop.get(String(key)))\n // A row cannot be dropped on itself.\n .filter((row): row is T => row !== undefined && row !== target);\n\n if (!dragged.length) return;\n if (dropOnRow.isAllowed && !dropOnRow.isAllowed(dragged, target)) return;\n\n void dropOnRow.onDrop(dragged, target);\n });\n\n const renderDragPreview = useEvent((keys: Key[]) => (\n <ItemTableDragPreview<T>\n rows={keys\n .map((key) => rowByKeyForDrop.get(String(key)))\n .filter((row): row is T => row !== undefined)}\n getItemDragInfo={getItemDragInfo!}\n />\n ));\n\n const shouldAcceptItemDrop = useEvent((targetKey: Key) => {\n const target = rowByKeyForDrop.get(String(targetKey));\n\n return target != null && (dropOnRow?.isTarget(target) ?? false);\n });\n\n // Dropping onto a row and reordering both need the drag machinery.\n const isDragEnabled = (!treeModel && isReorderable) || dropOnRow != null;\n\n const table = isDragEnabled ? (\n <DraggableCollection\n state={{\n collection: selection.collection,\n selectionManager: selection.selectionManager as any,\n disabledKeys: new Set(disabledKeys ?? []),\n }}\n // The element that directly contains the rows. React Aria's\n // `ListDropTargetDelegate` measures the drop position from this element's\n // children, so pointing it at the table root would leave every drop\n // unresolvable — the row lifts but never lands.\n listRef={bodyRef}\n orderedKeys={rowKeys}\n orientation=\"vertical\"\n onReorder={!treeModel && isReorderable ? handleReorder : undefined}\n onItemDrop={dropOnRow ? handleItemDrop : undefined}\n shouldAcceptItemDrop={dropOnRow ? shouldAcceptItemDrop : undefined}\n renderPreview={getItemDragInfo ? renderDragPreview : undefined}\n >\n {(dragState, dropState, collectionProps) =>\n renderTable(dragState, dropState, collectionProps)\n }\n </DraggableCollection>\n ) : (\n renderTable()\n );\n\n // The provider always wraps, so `ItemTable.Search` works from a custom\n // `toolbar` as well as from the built-in one.\n return (\n <ItemTableChromeProvider\n value={{\n searchValue,\n setSearchValue,\n searchPlaceholder,\n isLoading,\n onRefresh,\n selectedKeys: selection.selectedKeys,\n selectedRows: selection.selectedRows,\n selectedCount: selection.selectedCount,\n clearSelection: selection.clearSelection,\n }}\n >\n {table}\n </ItemTableChromeProvider>\n );\n}\n\nconst _ItemTable = Object.assign(\n forwardRef(ItemTable) as unknown as (<T = any>(\n props: CubeItemTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n ) => ReactElement) & { displayName?: string },\n {\n /** The table's search input, bound to the table's own state. */\n Search: ItemTableSearch,\n /** The default toolbar row, for rebuilding it around extra content. */\n Toolbar: ItemTableToolbar,\n /** The selection action bar, for placing it outside the default chrome. */\n BulkBar: ItemTableBulkBar,\n },\n);\n\n_ItemTable.displayName = 'ItemTable';\n\nexport { _ItemTable as ItemTable };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAMmD,eAAuC,EAAE;AAE/C,SAASE,iBAAoBC,QAAgB;AAC3C,SAAQC,KAAQE,UAAuB;EACrC,MAAMC,QAASH,MAAcD;AAE7B,SAAOI,SAAS,OAAOD,QAASC;;;AAIpC,SAASC,UACPC,OACAC,KACc;CACd,MAAM,EACJE,MACAC,SACAV,SAAS,MACTW,WACAC,gBACAC,eACAC,cACAC,qBACAC,UACAC,YAAY,OACZC,mBAAmB,WACnBC,eACAC,aACAC,SACAC,aACAC,SACAC,iBAAiB,OACjBC,iBACAC,qBACAC,mBAAmB,YACnBC,eACAC,cAAcC,kBACdC,qBACAC,mBACAC,gBAAgB,QAChBC,iBACAC,kBACAC,cACAC,wBAAwB,WACxBC,mBAAmB,GACnBC,YACAC,gBACAC,OACAC,YACAC,SACAC,eAAe,OACfC,aAAa,UACbC,mBACAC,aAAaC,iBACbC,oBACAC,gBACAC,cAAc,KACdC,cACAC,SACAC,SACAC,WACAC,iBAAiB,UACjBC,UAAUC,cACVC,kBAAkB,IAClBC,qBAAqB,MACrBC,YACAC,SACAC,eACAC,gBACAC,YACAC,SACAC,gBAAgB,OAChBC,WACAC,WACAC,iBACAC,cAAc,OACdC,cAAcC,kBACdC,qBACAC,gBACAC,mBACAC,oBACAC,wBACAC,iBACAC,kBACAC,kBAAkB;EAAC;EAAI;EAAI;EAAI;EAAK;EAAI,EACxCC,MAAMC,UACNC,aACAC,cACAC,OAAOC,WACPC,YACAC,aACAC,UAAU,MACVC,QACAC,aACAC,cACAC,WACAC,UACAC,MAAMC,UACNC,aACAC,cACAC,QAAQ,SACRC,OAAO,UACPC,WACAC,cACAC,YAAY,OACZC,iBAAiB,OACjBC,iBAAiB,MACjBC,eAAe,OACfC,gBAAgB,QAChBC,sBAAsB,IACtBC,WAAW,IACXC,aACAC,WACAC,IACAC,MACAC,QACAC,cACAC,kBACAC,eAAe,MACfC,eACAC,cACAC,cACAC,YACAC,WACAC,YACAC,sBACEvH;CAEJ,MAAM,EAAEwH,MAAM3K,SAAS;CAGvB,MAAM6K,UAAU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"}
|
|
1
|
+
{"version":3,"file":"ItemTable.js","names":["useCollator","useControlledState","CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useEvent","useWarn","useI18n","useCombinedRefs","extractStyles","mergeStyleLayers","clampPage","getPageInfo","DraggableCollection","ROW_MENU_COLUMN_KEY","ROW_MENU_COLUMN_WIDTH","buildTableTree","filterTableTree","flattenTableTree","isTableTreeDescendant","reindexTableTree","sortTableTree","TableView","useContainerWidth","freezeColumnWidths","getColumnText","useTableColumns","matchesTableSearch","useTableSearch","SELECTION_COLUMN_KEY","SELECTION_COLUMN_WIDTH","useTableSelection","compareByColumn","useTableSort","useTableStorage","useTableTreeState","ItemTableBulkBar","ItemTableDragPreview","ItemTableFooter","ItemTableChromeProvider","ItemTableSearch","ItemTableToolbar","Key","ForwardedRef","ReactElement","ReactNode","CubeTableColumnLayout","CubeTableRowContext","CubeTableSort","CubeItemTableProps","EMPTY_WIDTHS","Record","defaultGetRowKey","rowKey","row","T","index","value","ItemTable","props","ref","HTMLDivElement","data","columns","getRowKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","isLoading","loadingIndicator","selectionMode","bulkActions","rowLink","onRowAction","rowMenu","rowContextMenu","onRowMenuAction","rowMenuTriggerProps","bulkBarPlacement","bulkBarStyles","selectedKeys","selectedKeysProp","defaultSelectedKeys","onSelectionChange","selectAllMode","isRowSelectable","selectionTooltip","disabledKeys","treeSelectionBehavior","skeletonRowCount","emptyLabel","noResultsLabel","error","isFiltered","toolbar","isSearchable","searchMode","searchPlaceholder","searchValue","searchValueProp","defaultSearchValue","onSearchChange","searchDelay","searchFilter","filters","actions","onRefresh","paginationMode","pageSize","pageSizeProp","defaultPageSize","autoHidePagination","onLoadMore","hasMore","isLoadingMore","loadMoreMargin","storageKey","persist","isReorderable","onReorder","dropOnRow","getItemDragInfo","isResizable","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","onPageSizeChange","pageSizeOptions","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","footer","footerStart","footerCenter","footerEnd","sortMode","sort","sortProp","defaultSort","onSortChange","shape","size","rowHeight","headerHeight","isStriped","isHeaderHidden","isHeaderSticky","isAutoHeight","isVirtualized","virtualizeThreshold","overscan","getRowProps","ariaLabel","qa","mods","styles","headerStyles","headerCellStyles","headerPreset","toolbarStyles","searchStyles","footerStyles","bodyStyles","rowStyles","cellStyles","isRowMoveAnimated","t","localRef","rootRef","scrollerEl","setScrollerEl","containerWidth","rootStyles","resolvedGetRowKey","treeModel","duplicateKeys","length","key","args","cyclicKeys","resolvedTreeColumnKey","undefined","visibleColumns","filter","column","isHidden","some","setSearchValue","searchedRows","query","isSearching","rows","mode","defaultValue","onChange","delay","searchedTree","roots","forcedExpandedKeys","Set","node","sourceIndex","storage","sortedRows","toggleSort","setColumnSort","resolvedSortMode","map","has","initial","next","write","collator","numeric","sensitivity","treeSortMode","isSortable","processedTreeRoots","find","entry","columnKey","a","b","result","direction","setPageSizeState","setPageState","isInfinite","isPaginated","isServerPaginated","pageInfo","setPage","setPageSize","flatVisibleRows","slice","pageTreeRoots","treeState","allNodesByKey","byKey","Map","getTextValue","String","visibleTreeEntries","visibleEntries","visibleRows","visibleRowKeys","pageTreeEntries","filteredTreeEntries","selectionTree","childrenOf","parentOf","forEach","set","children","child","parentKey","rootKeys","behavior","resolvedSelectionMode","selection","rowKeys","pageRows","pageRowKeys","filteredRows","filteredRowKeys","tree","resolveRowMenu","ctx","trailingColumns","width","medium","align","const","leadingColumns","isEnabled","ownColumnWidths","setOwnColumnWidths","draftColumnWidths","setDraftColumnWidths","draftColumnWidthsRef","baseColumnWidths","layoutRef","handleColumnResize","base","current","Math","round","handleColumnResizeEnd","layout","hasBulkSelection","selectedCount","bulkBar","isBulkBarInToolbar","hasToolbar","toolbarNode","smallestPageSize","min","isPaginationUseless","showPagination","hasFooter","footerNode","bodyRef","HTMLTableSectionElement","handleReorder","nextKeys","get","renderTable","dragState","dropState","collectionProps","isDragEnabled","state","ariaProps","nodes","visibleNodes","entries","rowByKeyForDrop","handleItemDrop","targetKey","draggedKeys","target","draggedKeySet","topmostDraggedKeys","parent","dragged","isAllowed","onDrop","renderDragPreview","keys","shouldAcceptItemDrop","isTarget","table","collection","selectionManager","selectedRows","clearSelection","_ItemTable","Object","assign","displayName","Search","Toolbar","BulkBar"],"sources":["../../../../src/components/data/ItemTable/ItemTable.tsx"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useEvent, useWarn } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport {\n ROW_MENU_COLUMN_KEY,\n ROW_MENU_COLUMN_WIDTH,\n} from '../TableBase/row-menu';\nimport {\n buildTableTree,\n filterTableTree,\n flattenTableTree,\n isTableTreeDescendant,\n reindexTableTree,\n sortTableTree,\n} from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport {\n freezeColumnWidths,\n getColumnText,\n useTableColumns,\n} from '../TableBase/use-table-columns';\nimport {\n matchesTableSearch,\n useTableSearch,\n} from '../TableBase/use-table-search';\nimport {\n SELECTION_COLUMN_KEY,\n SELECTION_COLUMN_WIDTH,\n useTableSelection,\n} from '../TableBase/use-table-selection';\nimport { compareByColumn, useTableSort } from '../TableBase/use-table-sort';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport { ItemTableBulkBar } from './ItemTableBulkBar';\nimport { ItemTableDragPreview } from './ItemTableDragPreview';\nimport { ItemTableFooter } from './ItemTableFooter';\nimport {\n ItemTableChromeProvider,\n ItemTableSearch,\n ItemTableToolbar,\n} from './ItemTableToolbar';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement, ReactNode } from 'react';\nimport type {\n CubeTableColumnLayout,\n CubeTableRowContext,\n CubeTableSort,\n} from '../TableBase/types';\nimport type { CubeItemTableProps } from './types';\n\n/** Stable identity, so the uncontrolled default does not change every render. */\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\nfunction ItemTable<T = any>(\n props: CubeItemTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n isLoading = false,\n loadingIndicator = 'overlay',\n selectionMode,\n bulkActions,\n rowLink,\n onRowAction,\n rowMenu,\n rowContextMenu = false,\n onRowMenuAction,\n rowMenuTriggerProps,\n bulkBarPlacement = 'floating',\n bulkBarStyles,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode = 'page',\n isRowSelectable,\n selectionTooltip,\n disabledKeys,\n treeSelectionBehavior = 'cascade',\n skeletonRowCount = 6,\n emptyLabel,\n noResultsLabel,\n error,\n isFiltered,\n toolbar,\n isSearchable = false,\n searchMode = 'client',\n searchPlaceholder,\n searchValue: searchValueProp,\n defaultSearchValue,\n onSearchChange,\n searchDelay = 500,\n searchFilter,\n filters,\n actions,\n onRefresh,\n paginationMode = 'client',\n pageSize: pageSizeProp,\n defaultPageSize = 50,\n autoHidePagination = true,\n onLoadMore,\n hasMore,\n isLoadingMore,\n loadMoreMargin,\n storageKey,\n persist,\n isReorderable = false,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n isResizable = false,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n onPageSizeChange,\n pageSizeOptions = [10, 20, 50, 100, 500],\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n footer,\n footerStart,\n footerCenter,\n footerEnd,\n sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n shape = 'plain',\n size = 'medium',\n rowHeight,\n headerHeight,\n isStriped = false,\n isHeaderHidden = false,\n isHeaderSticky = true,\n isAutoHeight = false,\n isVirtualized = 'auto',\n virtualizeThreshold = 50,\n overscan = 20,\n getRowProps,\n ariaLabel,\n qa,\n mods,\n styles,\n headerStyles,\n headerCellStyles,\n headerPreset = 'c3',\n toolbarStyles,\n searchStyles,\n footerStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n isRowMoveAnimated,\n } = props;\n\n const { t } = useI18n();\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n\n // Held in state, not a ref: the virtualized path's scroller is created by\n // Virtuoso and arrives through a callback, and the column layout has to\n // re-derive once it does.\n const [scrollerEl, setScrollerEl] = useState<HTMLDivElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n // Style props (`height`, `maxHeight`, `margin`, …) land on the root frame.\n // `height` matters most: there is no page-scroll mode, so bounding the table\n // is what turns the body into a scroller and pins the header.\n const rootStyles = mergeStyleLayers(\n extractStyles(props, CONTAINER_STYLES),\n styles,\n );\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const treeModel = useMemo(\n () =>\n getRowChildren\n ? buildTableTree(data, getRowChildren, resolvedGetRowKey)\n : null,\n [data, getRowChildren, resolvedGetRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['item-table-tree-duplicate-keys'],\n args: [\n 'ItemTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['item-table-tree-cyclic-keys'],\n args: [\n 'ItemTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n useWarn(treeModel != null && isReorderable, {\n key: ['item-table-tree-reorder-unsupported'],\n args: [\n 'ItemTable:',\n '`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves.',\n ],\n });\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = columns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, columns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['item-table-tree-column-invalid', treeColumnKey],\n args: [\n 'ItemTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n const {\n searchValue,\n setSearchValue,\n searchedRows,\n query,\n isFiltered: isSearching,\n } = useTableSearch<T>({\n columns,\n rows: data,\n // Tree filtering needs to preserve ancestors and descendants, so the flat\n // hook owns only the controlled/debounced value in this mode.\n mode: treeModel ? 'server' : searchMode,\n value: searchValueProp,\n defaultValue: defaultSearchValue,\n onChange: onSearchChange,\n delay: searchDelay,\n filter: searchFilter,\n });\n\n const searchedTree = useMemo(() => {\n if (!treeModel) return null;\n if (searchMode !== 'client' || !query) {\n return { roots: treeModel.roots, forcedExpandedKeys: new Set<Key>() };\n }\n\n return filterTableTree(treeModel.roots, (node) =>\n searchFilter\n ? searchFilter(node.row, query)\n : matchesTableSearch(columns, node.row, node.sourceIndex, query),\n );\n }, [treeModel, searchMode, query, searchFilter, columns]);\n\n const storage = useTableStorage(storageKey, persist);\n\n const {\n sort,\n sortedRows,\n toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSort<T>({\n columns,\n rows: treeModel\n ? searchedTree?.roots.map((node) => node.row) ?? []\n : searchedRows,\n mode: treeModel ? 'server' : sortMode,\n sort: sortProp,\n // Only restore what the table owns: a controlled `sort` belongs to the page,\n // and overriding it here would fight the page's own source of truth.\n defaultSort:\n sortProp === undefined && storage.has('sort')\n ? storage.initial.sort ?? defaultSort\n : defaultSort,\n onSortChange: useEvent((next: CubeTableSort | null) => {\n if (sortProp === undefined) storage.write({ sort: next });\n onSortChange?.(next);\n }),\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = treeModel\n ? sortMode ??\n (columns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const processedTreeRoots = useMemo(() => {\n const roots = searchedTree?.roots ?? [];\n if (treeSortMode !== 'client' || !sort) return roots;\n const column = columns.find((entry) => entry.key === sort.columnKey);\n if (!column) return roots;\n\n return sortTableTree(roots, (a, b) => {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n return result * (sort.direction === 'asc' ? 1 : -1);\n });\n }, [searchedTree, treeSortMode, sort, columns, collator]);\n\n // Search → sort → paginate. Paging last, so a page always reflects the rows\n // the user is actually looking at.\n //\n // Deliberately not `usePagination`: that hook owns an in-memory array, and in\n // server mode `data` is a single page. Deriving the bounds from it would clamp\n // the page to 1 and swallow every page change.\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isInfinite = paginationMode === 'infinite';\n // Infinite scroll replaces the page control rather than adding to it.\n const isPaginated = paginationMode !== 'off' && !isInfinite;\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : treeModel\n ? processedTreeRoots.length\n : sortedRows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n\n // The old page index points at different rows under a new page size, so\n // staying on it would silently move the user.\n setPageState(1);\n });\n\n const flatVisibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n paginationMode === 'client'\n ? processedTreeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : processedTreeRoots,\n ),\n [processedTreeRoots, paginationMode, pageInfo.page, pageSize],\n );\n\n const treeState = useTableTreeState<T>({\n roots: pageTreeRoots,\n allNodesByKey: treeModel?.byKey ?? new Map(),\n expandedKeys,\n defaultExpandedKeys,\n forcedExpandedKeys: searchedTree?.forcedExpandedKeys,\n disabledKeys,\n getTextValue: (node) => {\n const column = columns.find(\n (entry) => entry.key === resolvedTreeColumnKey,\n );\n return column\n ? getColumnText(column, node.row, node.sourceIndex) ?? String(node.key)\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : flatVisibleRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n const pageTreeEntries = treeModel ? flattenTableTree(pageTreeRoots) : [];\n const filteredTreeEntries = treeModel\n ? flattenTableTree(processedTreeRoots)\n : [];\n const selectionTree = useMemo(() => {\n if (!treeModel) return undefined;\n\n // Selection follows the tree the user can currently act on. In\n // particular, a search that retains only an ancestor path must not let a\n // checked ancestor reach siblings that the search removed.\n const childrenOf = new Map<Key, Key[]>();\n const parentOf = new Map<Key, Key | null>();\n\n flattenTableTree(processedTreeRoots).forEach((node) => {\n childrenOf.set(\n node.key,\n node.children.map((child) => child.key),\n );\n parentOf.set(node.key, node.parentKey);\n });\n\n return {\n rootKeys: processedTreeRoots.map((node) => node.key),\n childrenOf,\n parentOf,\n behavior: treeSelectionBehavior,\n };\n }, [treeModel, processedTreeRoots, treeSelectionBehavior]);\n\n // A bulk action with no way to select rows is a contradiction, so supplying\n // any implies multiple selection unless the consumer says otherwise.\n const resolvedSelectionMode =\n selectionMode ?? (bulkActions?.length ? 'multiple' : 'none');\n\n const selection = useTableSelection<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n pageRows: treeModel\n ? pageTreeEntries.map((entry) => entry.row)\n : visibleRows,\n pageRowKeys: treeModel\n ? pageTreeEntries.map((entry) => entry.key)\n : undefined,\n // The wider set the header checkbox can reach under\n // `selectAllMode=\"filtered\"`. In server mode the client only ever holds one\n // page, so the two coincide.\n filteredRows: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.row)\n : paginationMode === 'client'\n ? sortedRows\n : visibleRows,\n filteredRowKeys: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.key)\n : undefined,\n getRowKey: resolvedGetRowKey,\n selectionMode: resolvedSelectionMode,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n tree: selectionTree,\n });\n\n // A `ReactNode` menu applies to every row; a function decides per row. The\n // renderer only ever sees the function form.\n const resolveRowMenu = useMemo(\n () =>\n rowMenu == null\n ? undefined\n : typeof rowMenu === 'function'\n ? (rowMenu as (\n row: T,\n ctx: CubeTableRowContext<T>,\n ) => ReactNode | null)\n : () => rowMenu as ReactNode,\n [rowMenu],\n );\n\n const trailingColumns = useMemo(\n () =>\n resolveRowMenu && rowContextMenu === true\n ? [\n {\n key: ROW_MENU_COLUMN_KEY,\n width:\n ROW_MENU_COLUMN_WIDTH[size] ?? ROW_MENU_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [resolveRowMenu, rowContextMenu, size],\n );\n\n const leadingColumns = useMemo(\n () =>\n selection.isEnabled\n ? [\n {\n key: SELECTION_COLUMN_KEY,\n width:\n SELECTION_COLUMN_WIDTH[size] ?? SELECTION_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [selection.isEnabled, size],\n );\n\n /**\n * Column widths, in three layers.\n *\n * The draft exists because a resize has to be visible *while* it happens, and\n * a controlled `columnWidths` cannot be: the consumer only learns the new\n * width from `onColumnResize`, which fires when the gesture ends. Without a\n * draft a controlled table simply would not move under the pointer.\n */\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? storage.initial.columnWidths ?? defaultColumnWidths\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n\n /**\n * The same draft, in a ref.\n *\n * A keyboard resize runs `useMove`'s whole start → move → end cycle inside\n * one key press, so the end handler would read the state from before the\n * move. The ref is what it actually settles on; the state exists only to\n * trigger the render.\n */\n const draftColumnWidthsRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n /** `layout` is computed below; `useEvent` only reads this when a drag runs. */\n const layoutRef = useRef<CubeTableColumnLayout<T> | null>(null);\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n // First move of a drag freezes every column, so this changes exactly one\n // width instead of re-splitting the flex pool. See `freezeColumnWidths`.\n const base =\n draftColumnWidthsRef.current ??\n freezeColumnWidths(layoutRef.current, baseColumnWidths);\n\n draftColumnWidthsRef.current = { ...base, [key]: Math.round(width) };\n setDraftColumnWidths(draftColumnWidthsRef.current);\n });\n\n // Once at the end: a callback per pixel would be unusable, and persisting\n // every frame would hammer `localStorage`.\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftColumnWidthsRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n\n // The prop (or `ownColumnWidths`) is the source of truth again. A\n // controlled consumer that ignores the callback reverts, which is what\n // being controlled means.\n draftColumnWidthsRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const layout = useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n });\n\n layoutRef.current = layout;\n\n const hasBulkSelection =\n bulkActions != null &&\n bulkActions.length > 0 &&\n selection.selectedCount > 0;\n\n const bulkBar = hasBulkSelection ? (\n <ItemTableBulkBar<T>\n actions={bulkActions!}\n placement={bulkBarPlacement}\n styles={bulkBarStyles}\n />\n ) : null;\n\n const isBulkBarInToolbar = bulkBar != null && bulkBarPlacement === 'toolbar';\n\n const hasToolbar =\n toolbar !== undefined ||\n isSearchable ||\n filters != null ||\n actions != null ||\n onRefresh != null ||\n isBulkBarInToolbar;\n\n const toolbarNode = hasToolbar\n ? toolbar ?? (\n <ItemTableToolbar\n isSearchable={isSearchable}\n filters={filters}\n // The bar takes the actions group rather than sitting beside it: the\n // two compete for the same space, and while rows are selected the\n // bulk actions are what the user is reaching for.\n actions={isBulkBarInToolbar ? bulkBar : actions}\n isLoading={isLoading}\n styles={toolbarStyles}\n searchStyles={searchStyles}\n onRefresh={onRefresh}\n />\n )\n : null;\n\n /**\n * Pagination that cannot do anything is noise: one page of five rows still\n * renders \"1–5 of 5\", a page-size selector whose every option shows the same\n * five rows, and a solitary \"1\" button.\n *\n * \"Cannot do anything\" is both conditions together — a single page *and* a\n * total that even the smallest page size would not split. A 15-row single\n * page stays, because choosing \"10 / page\" would genuinely paginate it.\n */\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const isPaginationUseless =\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize;\n\n const showPagination = isPaginated && !isPaginationUseless;\n\n const hasFooter =\n footer !== undefined ||\n showPagination ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n const footerNode = hasFooter\n ? footer ?? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={\n showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined\n }\n />\n )\n : null;\n\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n\n const rowKeys = useMemo(\n () =>\n visibleRows.map((row, index) =>\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n ),\n [visibleRows, visibleRowKeys, resolvedGetRowKey],\n );\n\n const handleReorder = useEvent((nextKeys: string[]) => {\n const byKey = new Map(\n visibleRows.map((row, index) => [\n String(resolvedGetRowKey(row, index)),\n row,\n ]),\n );\n\n onReorder?.(\n nextKeys,\n nextKeys\n .map((key) => byKey.get(key))\n .filter((row): row is T => row !== undefined),\n );\n });\n\n /**\n * `DraggableCollection` owns the React Aria drag/drop hooks and hands the two\n * states down. It is only mounted when reordering is on, so a plain table\n * pays nothing for it.\n *\n * `RowCollection` and the `SelectionManager` from `useTableSelection` satisfy\n * its structural `state` contract unchanged — both exist even when selection\n * itself is off.\n */\n const renderTable = (\n dragState?: any,\n dropState?: any,\n collectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n rootRef={rootRef}\n dragState={dragState}\n dropState={dropState}\n collectionProps={collectionProps}\n bodyRef={bodyRef}\n qa={qa || 'ItemTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n // `aria-rowindex` is document-absolute by contract: on page 3 a screen\n // reader should hear \"row 51 of 240\", not \"row 1 of 25\". Infinite scroll\n // never offsets — every loaded row is already in `visibleRows`.\n // `isPaginated` already excludes infinite scroll, where every loaded row\n // is in `visibleRows` and there is no page to offset by.\n rowIndexOffset={\n treeModel ? 0 : isPaginated ? (pageInfo.page - 1) * pageSize : 0\n }\n totalRowCount={treeModel ? visibleRows.length : total}\n getRowKey={resolvedGetRowKey}\n layout={layout}\n onScrollerRef={setScrollerEl}\n size={size}\n shape={shape}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n isAutoHeight={isAutoHeight}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n selection={selection}\n selectionTooltip={selectionTooltip}\n rowLink={rowLink}\n onRowAction={onRowAction}\n onLoadMore={isInfinite ? onLoadMore : undefined}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n loadMoreMargin={loadMoreMargin}\n isReorderable={isDragEnabled}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n rowMenu={resolveRowMenu}\n rowContextMenu={rowContextMenu}\n onRowMenuAction={onRowMenuAction}\n rowMenuTriggerProps={rowMenuTriggerProps}\n skeletonRowCount={skeletonRowCount}\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n error={error}\n toolbar={toolbarNode}\n footer={footerNode}\n isFiltered={isFiltered ?? isSearching}\n sortMode={treeSortMode}\n sort={sort}\n onColumnSort={toggleSort}\n onColumnSortChange={setColumnSort}\n columnContextMenu={columnContextMenu}\n onColumnMenuAction={onColumnMenuAction}\n columnMenuTriggerProps={columnMenuTriggerProps}\n columnMenuProps={columnMenuProps}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n headerPreset={headerPreset}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n overlay={bulkBarPlacement === 'floating' ? bulkBar : null}\n tree={\n treeModel\n ? {\n state: treeState.state,\n ariaProps: treeState.ariaProps,\n nodes: treeState.visibleNodes,\n entries: visibleTreeEntries,\n columnKey: resolvedTreeColumnKey!,\n }\n : undefined\n }\n />\n );\n\n const rowByKeyForDrop = useMemo(() => {\n const map = new Map<string, T>();\n\n visibleRows.forEach((row, index) =>\n map.set(\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n row,\n ),\n );\n\n return map;\n }, [visibleRows, visibleRowKeys, resolvedGetRowKey]);\n\n const handleItemDrop = useEvent((targetKey: Key, draggedKeys: Key[]) => {\n if (!dropOnRow) return;\n\n const target = rowByKeyForDrop.get(String(targetKey));\n\n if (!target) return;\n\n const draggedKeySet = new Set(draggedKeys);\n const topmostDraggedKeys = treeModel\n ? draggedKeys.filter((key) => {\n let parent = treeModel.parentOf.get(key);\n while (parent != null) {\n if (draggedKeySet.has(parent)) return false;\n parent = treeModel.parentOf.get(parent);\n }\n return true;\n })\n : draggedKeys;\n\n if (\n treeModel &&\n topmostDraggedKeys.some((key) =>\n isTableTreeDescendant(treeModel, targetKey, key),\n )\n ) {\n return;\n }\n\n const dragged = topmostDraggedKeys\n .map((key) => rowByKeyForDrop.get(String(key)))\n // A row cannot be dropped on itself.\n .filter((row): row is T => row !== undefined && row !== target);\n\n if (!dragged.length) return;\n if (dropOnRow.isAllowed && !dropOnRow.isAllowed(dragged, target)) return;\n\n void dropOnRow.onDrop(dragged, target);\n });\n\n const renderDragPreview = useEvent((keys: Key[]) => (\n <ItemTableDragPreview<T>\n rows={keys\n .map((key) => rowByKeyForDrop.get(String(key)))\n .filter((row): row is T => row !== undefined)}\n getItemDragInfo={getItemDragInfo!}\n />\n ));\n\n const shouldAcceptItemDrop = useEvent((targetKey: Key) => {\n const target = rowByKeyForDrop.get(String(targetKey));\n\n return target != null && (dropOnRow?.isTarget(target) ?? false);\n });\n\n // Dropping onto a row and reordering both need the drag machinery.\n const isDragEnabled = (!treeModel && isReorderable) || dropOnRow != null;\n\n const table = isDragEnabled ? (\n <DraggableCollection\n state={{\n collection: selection.collection,\n selectionManager: selection.selectionManager as any,\n disabledKeys: new Set(disabledKeys ?? []),\n }}\n // The element that directly contains the rows. React Aria's\n // `ListDropTargetDelegate` measures the drop position from this element's\n // children, so pointing it at the table root would leave every drop\n // unresolvable — the row lifts but never lands.\n listRef={bodyRef}\n orderedKeys={rowKeys}\n orientation=\"vertical\"\n onReorder={!treeModel && isReorderable ? handleReorder : undefined}\n onItemDrop={dropOnRow ? handleItemDrop : undefined}\n shouldAcceptItemDrop={dropOnRow ? shouldAcceptItemDrop : undefined}\n renderPreview={getItemDragInfo ? renderDragPreview : undefined}\n >\n {(dragState, dropState, collectionProps) =>\n renderTable(dragState, dropState, collectionProps)\n }\n </DraggableCollection>\n ) : (\n renderTable()\n );\n\n // The provider always wraps, so `ItemTable.Search` works from a custom\n // `toolbar` as well as from the built-in one.\n return (\n <ItemTableChromeProvider\n value={{\n searchValue,\n setSearchValue,\n searchPlaceholder,\n isLoading,\n onRefresh,\n selectedKeys: selection.selectedKeys,\n selectedRows: selection.selectedRows,\n selectedCount: selection.selectedCount,\n clearSelection: selection.clearSelection,\n }}\n >\n {table}\n </ItemTableChromeProvider>\n );\n}\n\nconst _ItemTable = Object.assign(\n forwardRef(ItemTable) as unknown as (<T = any>(\n props: CubeItemTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n ) => ReactElement) & { displayName?: string },\n {\n /** The table's search input, bound to the table's own state. */\n Search: ItemTableSearch,\n /** The default toolbar row, for rebuilding it around extra content. */\n Toolbar: ItemTableToolbar,\n /** The selection action bar, for placing it outside the default chrome. */\n BulkBar: ItemTableBulkBar,\n },\n);\n\n_ItemTable.displayName = 'ItemTable';\n\nexport { _ItemTable as ItemTable };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAMoD,eAAuC,EAAE;AAE/C,SAASE,iBAAoBC,QAAgB;AAC3C,SAAQC,KAAQE,UAAuB;EACrC,MAAMC,QAASH,MAAcD;AAE7B,SAAOI,SAAS,OAAOD,QAASC;;;AAIpC,SAASC,UACPC,OACAC,KACc;CACd,MAAM,EACJE,MACAC,SACAV,SAAS,MACTW,WACAC,gBACAC,eACAC,cACAC,qBACAC,UACAC,YAAY,OACZC,mBAAmB,WACnBC,eACAC,aACAC,SACAC,aACAC,SACAC,iBAAiB,OACjBC,iBACAC,qBACAC,mBAAmB,YACnBC,eACAC,cAAcC,kBACdC,qBACAC,mBACAC,gBAAgB,QAChBC,iBACAC,kBACAC,cACAC,wBAAwB,WACxBC,mBAAmB,GACnBC,YACAC,gBACAC,OACAC,YACAC,SACAC,eAAe,OACfC,aAAa,UACbC,mBACAC,aAAaC,iBACbC,oBACAC,gBACAC,cAAc,KACdC,cACAC,SACAC,SACAC,WACAC,iBAAiB,UACjBC,UAAUC,cACVC,kBAAkB,IAClBC,qBAAqB,MACrBC,YACAC,SACAC,eACAC,gBACAC,YACAC,SACAC,gBAAgB,OAChBC,WACAC,WACAC,iBACAC,cAAc,OACdC,cAAcC,kBACdC,qBACAC,gBACAC,mBACAC,oBACAC,wBACAC,iBACAC,kBACAC,kBAAkB;EAAC;EAAI;EAAI;EAAI;EAAK;EAAI,EACxCC,MAAMC,UACNC,aACAC,cACAC,OAAOC,WACPC,YACAC,aACAC,UAAU,MACVC,QACAC,aACAC,cACAC,WACAC,UACAC,MAAMC,UACNC,aACAC,cACAC,QAAQ,SACRC,OAAO,UACPC,WACAC,cACAC,YAAY,OACZC,iBAAiB,OACjBC,iBAAiB,MACjBC,eAAe,OACfC,gBAAgB,QAChBC,sBAAsB,IACtBC,WAAW,IACXC,aACAC,WACAC,IACAC,MACAC,QACAC,cACAC,kBACAC,eAAe,MACfC,eACAC,cACAC,cACAC,YACAC,WACAC,YACAC,sBACEvH;CAEJ,MAAM,EAAEwH,MAAM5K,SAAS;CAGvB,MAAM8K,UAAU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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { _Text } from "../../content/Text.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { _Text } from "../../content/Text.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { _Pagination } from "../../navigation/Pagination/Pagination.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
3
3
|
import { Button } from "../../actions/index.js";
|
|
4
4
|
import { ReloadIcon } from "../../../icons/ReloadIcon.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
|
|
@@ -22,6 +22,7 @@ import { ArrowNarrowDownIcon } from "../../../icons/ArrowNarrowDownIcon.js";
|
|
|
22
22
|
import { ArrowNarrowUpIcon } from "../../../icons/ArrowNarrowUpIcon.js";
|
|
23
23
|
import { ROW_MENU_COLUMN_KEY, isMenuEmpty, normalizeMenuAction } from "./row-menu.js";
|
|
24
24
|
import { COLUMN_MENU_SORT_DIRECTION, isColumnMenuSortKey, processColumnMenuItems } from "./column-menu.js";
|
|
25
|
+
import { columnCellClassName } from "./column-styles.js";
|
|
25
26
|
import { buildColumnTints, tintSlot } from "./column-tint.js";
|
|
26
27
|
import { ColumnResizer } from "./ColumnResizer.js";
|
|
27
28
|
import { TableElement, TableHeaderItem, TableTreeToggle, TableTreeTogglePlaceholder } from "./styled.js";
|
|
@@ -36,6 +37,7 @@ import { getColumnText, getColumnValue } from "./use-table-columns.js";
|
|
|
36
37
|
import { ROW_NUMBER_COLUMN_KEY, SELECTION_COLUMN_KEY } from "./use-table-selection.js";
|
|
37
38
|
import { c } from "react-compiler-runtime";
|
|
38
39
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
40
|
+
import clsx from "clsx";
|
|
39
41
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
40
42
|
import { VisuallyHidden, useTree } from "react-aria";
|
|
41
43
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
@@ -758,7 +760,8 @@ function TableView(props) {
|
|
|
758
760
|
children: content
|
|
759
761
|
})]
|
|
760
762
|
}) : content;
|
|
761
|
-
const
|
|
763
|
+
const columnClassName = columnCellClassName(typeof column.cellStyles === "function" ? column.cellStyles(ctx) : column.cellStyles);
|
|
764
|
+
const extraCellProps = column.cellProps?.(ctx);
|
|
762
765
|
const CellTag = column.isRowHeader ? "th" : "td";
|
|
763
766
|
const link = column.isRowHeader ? rowLink?.(row, rowIndex) : void 0;
|
|
764
767
|
return /* @__PURE__ */ jsxs(CellTag, {
|
|
@@ -779,11 +782,10 @@ function TableView(props) {
|
|
|
779
782
|
...column.isRowHeader ? { scope: "row" } : { role: "gridcell" },
|
|
780
783
|
...cellSelectionProps(rangeKey, column.key, pinnedEdge),
|
|
781
784
|
"aria-colindex": column.ariaColIndex,
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
...column.cellProps?.(ctx),
|
|
785
|
+
"data-column-styles": columnClassName ? "" : void 0,
|
|
786
|
+
style: pinStyle(column),
|
|
787
|
+
...extraCellProps,
|
|
788
|
+
className: clsx(columnClassName, extraCellProps?.className) || void 0,
|
|
787
789
|
children: [displayContent, link !== void 0 ? /* @__PURE__ */ jsx(Action, {
|
|
788
790
|
"data-element": "RowLink",
|
|
789
791
|
to: link,
|