@cube-dev/ui-kit 0.193.1 → 0.194.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +28 -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.d.ts +25 -12
- package/dist/components/CollectionItem.js +59 -4
- package/dist/components/CollectionItem.js.map +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +2 -2
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.d.ts +1 -1
- package/dist/components/actions/Banner/Banner.js +6 -6
- package/dist/components/actions/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +28 -25
- 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.d.ts +7 -7
- package/dist/components/actions/CommandMenu/CommandMenu.js +232 -239
- 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 +26 -22
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.d.ts +3 -0
- package/dist/components/actions/ItemActionContext.js +15 -13
- package/dist/components/actions/ItemActionContext.js.map +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.d.ts +2 -2
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.d.ts +9 -9
- package/dist/components/actions/Menu/Menu.js +88 -64
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.d.ts +18 -0
- package/dist/components/actions/Menu/MenuCollectionItem.js +36 -0
- package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -0
- package/dist/components/actions/Menu/MenuItem.d.ts +5 -0
- package/dist/components/actions/Menu/MenuItem.js +402 -116
- package/dist/components/actions/Menu/MenuItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuSection.d.ts +3 -1
- package/dist/components/actions/Menu/MenuSection.js +31 -33
- 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.d.ts +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +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/index.d.ts +1 -0
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.d.ts +3 -2
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +60 -36
- 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/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/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.d.ts +19 -19
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +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 +44 -33
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.d.ts +7 -7
- package/dist/components/content/Item/Item.js +205 -67
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +314 -0
- package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -0
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.d.ts +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 +18 -15
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +41 -46
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +2 -2
- package/dist/components/content/Layout/LayoutPanelTransition.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 +77 -70
- 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.js +5 -5
- package/dist/components/content/Result/Result.js.map +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +18 -19
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.js +2 -2
- 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.js +66 -48
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +6 -3
- package/dist/components/content/Tree/Tree.js.map +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/tree-index.js +1 -1
- package/dist/components/content/Tree/types.d.ts +2 -2
- 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 +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +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/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.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 +39 -19
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- 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.d.ts +1 -1
- package/dist/components/data/TableBase/styled.js +14 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +219 -0
- package/dist/components/data/TableBase/use-column-window.js.map +1 -0
- 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-tooltip-refresh.js +32 -19
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js.map +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +3 -1
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +13 -13
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +32 -29
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +2 -0
- package/dist/components/fields/ColorPicker/ColorPicker.js +8 -5
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +6 -3
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +41 -30
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +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/DatePicker.js +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 +2 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +246 -238
- 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 +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 +22 -2
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +5 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +4 -2
- package/dist/components/fields/FilterPicker/FilterPicker.js +3 -2
- 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 +8 -7
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +36 -32
- 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.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +4 -2
- package/dist/components/fields/Picker/Picker.js +3 -2
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +24 -24
- 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.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.d.ts +4 -4
- package/dist/components/fields/Select/Select.js +35 -32
- 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 +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 +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +13 -5
- package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +62 -53
- package/dist/components/fields/color/ColorPanel.js.map +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.d.ts +1 -0
- package/dist/components/form/FieldWrapper/FieldWrapper.js +133 -109
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +102 -0
- package/dist/components/form/FieldWrapper/field-description.js.map +1 -0
- package/dist/components/form/FieldWrapper/types.d.ts +6 -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 +17 -4
- package/dist/components/form/Form/use-field/use-field-props.js.map +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 +27 -24
- package/dist/components/form/Label.js.map +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 +2 -1
- package/dist/components/form/wrapper.js.map +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.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/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +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 +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 +3 -3
- package/dist/components/navigation/Tabs/types.js +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/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/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/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- 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 +44 -24
- package/dist/components/overlays/Modal/Modal.js.map +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 +34 -24
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +45 -25
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +145 -0
- package/dist/components/overlays/Modal/modal-containment.js.map +1 -0
- 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 +2 -2
- 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 +50 -47
- package/dist/components/overlays/Tooltip/Tooltip.js.map +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 +2 -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 +3 -2
- package/dist/i18n/I18nProvider.js.map +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.d.ts +2 -1
- package/dist/i18n/index.js +3 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/instance.d.ts +2 -3
- package/dist/i18n/instance.js +3 -4
- package/dist/i18n/instance.js.map +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +36 -5
- package/dist/i18n/locales/en-US/uikit.js +36 -5
- package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -4
- package/dist/i18n/locales/es-ES/uikit.js +36 -5
- package/dist/i18n/locales/es-MX/uikit.js +36 -5
- package/dist/i18n/locales/fr-FR/uikit.js +36 -5
- package/dist/i18n/locales/it-IT/uikit.js +36 -5
- package/dist/i18n/locales/ja-JP/uikit.js +36 -5
- package/dist/i18n/locales/nb-NO/uikit.js +36 -5
- package/dist/i18n/locales/pt-BR/uikit.js +36 -5
- package/dist/i18n/locales/pt-PT/uikit.js +36 -5
- package/dist/i18n/locales/sv-SE/uikit.js +36 -5
- package/dist/i18n/locales/vi-VN/uikit.js +36 -5
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.d.ts +11 -0
- package/dist/i18n/namespace.js +12 -0
- package/dist/i18n/namespace.js.map +1 -0
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +5 -3
- package/dist/i18n/useI18n.js.map +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 +9 -7
- package/dist/index.js +7 -6
- 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 +2 -2
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +11 -0
- package/dist/providers/navigation-url.js.map +1 -0
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +19 -0
- package/dist/providers/use-navigation.js.map +1 -0
- 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/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/overlayKeyPropagation.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 +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/Usage.md +4 -0
- package/docs/components/CollectionItem.md +5 -1
- package/docs/components/actions/CommandMenu.md +46 -18
- package/docs/components/actions/Menu.md +124 -19
- package/docs/components/content/Placeholder.md +2 -0
- package/docs/components/content/Skeleton.md +2 -0
- package/docs/components/data/DataTable.md +3 -0
- package/docs/components/data/ItemTable.md +11 -1
- package/docs/components/overlays/Dialog.md +1 -1
- package/docs/components/overlays/DialogContainer.md +1 -2
- package/docs/components/overlays/DialogTrigger.md +1 -0
- package/package.json +3 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../utils/styles.js";
|
|
3
3
|
import { useSlotProps } from "../../utils/react/Slots.js";
|
|
4
4
|
import { TEXT_PROP_MAP } from "./Text.js";
|
|
@@ -45,61 +45,78 @@ const TitleElement = tasty({
|
|
|
45
45
|
}
|
|
46
46
|
});
|
|
47
47
|
const Title = forwardRef(function CubeTitle(t0, ref) {
|
|
48
|
-
const $ = c(
|
|
48
|
+
const $ = c(30);
|
|
49
49
|
let as;
|
|
50
50
|
let ellipsis;
|
|
51
|
-
let level;
|
|
52
51
|
let nowrap;
|
|
53
52
|
let props;
|
|
54
53
|
let qa;
|
|
55
54
|
if ($[0] !== t0) {
|
|
56
|
-
({qa, as, nowrap, ellipsis,
|
|
55
|
+
({qa, as, nowrap, ellipsis, ...props} = t0);
|
|
57
56
|
$[0] = t0;
|
|
58
57
|
$[1] = as;
|
|
59
58
|
$[2] = ellipsis;
|
|
60
|
-
$[3] =
|
|
61
|
-
$[4] =
|
|
62
|
-
$[5] =
|
|
63
|
-
$[6] = qa;
|
|
59
|
+
$[3] = nowrap;
|
|
60
|
+
$[4] = props;
|
|
61
|
+
$[5] = qa;
|
|
64
62
|
} else {
|
|
65
63
|
as = $[1];
|
|
66
64
|
ellipsis = $[2];
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
qa = $[6];
|
|
65
|
+
nowrap = $[3];
|
|
66
|
+
props = $[4];
|
|
67
|
+
qa = $[5];
|
|
71
68
|
}
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
let
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
$[8] = t1;
|
|
79
|
-
} else t1 = $[8];
|
|
80
|
-
const styles = t1;
|
|
81
|
-
const t2 = qa || "Title";
|
|
82
|
-
const t3 = as || tag;
|
|
83
|
-
const t4 = level || 1;
|
|
69
|
+
const t1 = useSlotProps(props, "title");
|
|
70
|
+
let T0;
|
|
71
|
+
let styles;
|
|
72
|
+
let t2;
|
|
73
|
+
let t3;
|
|
74
|
+
let t4;
|
|
84
75
|
let t5;
|
|
85
|
-
if ($[9] !== ellipsis || $[10] !== nowrap) {
|
|
86
|
-
t5 = {
|
|
87
|
-
nowrap,
|
|
88
|
-
ellipsis
|
|
89
|
-
};
|
|
90
|
-
$[9] = ellipsis;
|
|
91
|
-
$[10] = nowrap;
|
|
92
|
-
$[11] = t5;
|
|
93
|
-
} else t5 = $[11];
|
|
94
76
|
let t6;
|
|
95
|
-
if ($[
|
|
77
|
+
if ($[6] !== as || $[7] !== ellipsis || $[8] !== nowrap || $[9] !== qa || $[10] !== t1) {
|
|
78
|
+
const { level, ...propsWithSlots } = t1;
|
|
79
|
+
const headingLevel = level || 1;
|
|
80
|
+
const tag = `h${headingLevel}`;
|
|
81
|
+
styles = extractStyles(propsWithSlots, STYLE_LIST, {}, TEXT_PROP_MAP);
|
|
82
|
+
T0 = TitleElement;
|
|
83
|
+
t2 = qa || "Title";
|
|
84
|
+
t3 = as || tag;
|
|
85
|
+
t4 = headingLevel;
|
|
86
|
+
if ($[18] !== ellipsis || $[19] !== nowrap) {
|
|
87
|
+
t5 = {
|
|
88
|
+
nowrap,
|
|
89
|
+
ellipsis
|
|
90
|
+
};
|
|
91
|
+
$[18] = ellipsis;
|
|
92
|
+
$[19] = nowrap;
|
|
93
|
+
$[20] = t5;
|
|
94
|
+
} else t5 = $[20];
|
|
96
95
|
t6 = filterBaseProps(propsWithSlots, { eventProps: true });
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
|
|
96
|
+
$[6] = as;
|
|
97
|
+
$[7] = ellipsis;
|
|
98
|
+
$[8] = nowrap;
|
|
99
|
+
$[9] = qa;
|
|
100
|
+
$[10] = t1;
|
|
101
|
+
$[11] = T0;
|
|
102
|
+
$[12] = styles;
|
|
103
|
+
$[13] = t2;
|
|
104
|
+
$[14] = t3;
|
|
105
|
+
$[15] = t4;
|
|
106
|
+
$[16] = t5;
|
|
107
|
+
$[17] = t6;
|
|
108
|
+
} else {
|
|
109
|
+
T0 = $[11];
|
|
110
|
+
styles = $[12];
|
|
111
|
+
t2 = $[13];
|
|
112
|
+
t3 = $[14];
|
|
113
|
+
t4 = $[15];
|
|
114
|
+
t5 = $[16];
|
|
115
|
+
t6 = $[17];
|
|
116
|
+
}
|
|
100
117
|
let t7;
|
|
101
|
-
if ($[
|
|
102
|
-
t7 = /* @__PURE__ */ jsx(
|
|
118
|
+
if ($[21] !== T0 || $[22] !== ref || $[23] !== styles || $[24] !== t2 || $[25] !== t3 || $[26] !== t4 || $[27] !== t5 || $[28] !== t6) {
|
|
119
|
+
t7 = /* @__PURE__ */ jsx(T0, {
|
|
103
120
|
qa: t2,
|
|
104
121
|
as: t3,
|
|
105
122
|
"data-level": t4,
|
|
@@ -108,15 +125,16 @@ const Title = forwardRef(function CubeTitle(t0, ref) {
|
|
|
108
125
|
ref,
|
|
109
126
|
styles
|
|
110
127
|
});
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
118
|
-
$[
|
|
119
|
-
|
|
128
|
+
$[21] = T0;
|
|
129
|
+
$[22] = ref;
|
|
130
|
+
$[23] = styles;
|
|
131
|
+
$[24] = t2;
|
|
132
|
+
$[25] = t3;
|
|
133
|
+
$[26] = t4;
|
|
134
|
+
$[27] = t5;
|
|
135
|
+
$[28] = t6;
|
|
136
|
+
$[29] = t7;
|
|
137
|
+
} else t7 = $[29];
|
|
120
138
|
return t7;
|
|
121
139
|
});
|
|
122
140
|
const _Title = Object.assign(Title, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Title.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","PositionStyleProps","tasty","TEXT_STYLES","forwardRef","useSlotProps","extractStyles","CubeTextProps","TEXT_PROP_MAP","STYLE_LIST","CubeTitleProps","level","slot","TitleElement","qa","as","styles","gridArea","display","color","preset","margin","whiteSpace","textOverflow","ellipsis","overflow","width","Title","CubeTitle","t0","ref","$","_c","nowrap","props","
|
|
1
|
+
{"version":3,"file":"Title.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","PositionStyleProps","tasty","TEXT_STYLES","forwardRef","useSlotProps","extractStyles","CubeTextProps","TEXT_PROP_MAP","STYLE_LIST","CubeTitleProps","level","slot","TitleElement","qa","as","styles","gridArea","display","color","preset","margin","whiteSpace","textOverflow","ellipsis","overflow","width","Title","CubeTitle","t0","ref","$","_c","nowrap","props","t1","T0","t2","t3","t4","t5","t6","propsWithSlots","headingLevel","tag","const","eventProps","t7","_Title","Object","assign","Danger","DangerTitle","Success","SuccessTitle","displayName"],"sources":["../../../src/components/content/Title.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n PositionStyleProps,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../utils/react';\nimport { extractStyles } from '../../utils/styles';\n\nimport { CubeTextProps, TEXT_PROP_MAP } from './Text';\n\nconst STYLE_LIST = [...TEXT_STYLES, ...CONTAINER_STYLES];\n\nexport interface CubeTitleProps\n extends BaseProps,\n CubeTextProps,\n ContainerStyleProps,\n PositionStyleProps {\n /** The level of the heading **/\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to read provided props from. Defaults to `title` */\n slot?: string;\n}\n\nconst TitleElement = tasty({\n qa: 'Title',\n as: 'h1', // it should be dynamic\n styles: {\n gridArea: 'title',\n display: 'block',\n color: '#dark',\n preset: {\n '': 'h6',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n margin: '0',\n whiteSpace: {\n '': 'inherit',\n 'nowrap | ellipsis': 'nowrap',\n },\n textOverflow: {\n '': false,\n ellipsis: 'ellipsis',\n },\n overflow: {\n '': false,\n ellipsis: 'hidden',\n },\n width: {\n '': false,\n ellipsis: 'max 100%',\n },\n },\n});\n\nconst Title = forwardRef(function CubeTitle(\n { qa, as, nowrap, ellipsis, ...props }: CubeTitleProps,\n ref,\n) {\n // `level` is read after the slot merge: `Dialog` makes its title an `h2`\n // through the slot, and a level taken from the bare props never sees that.\n const { level, ...propsWithSlots } = useSlotProps(props, 'title');\n\n const headingLevel: NonNullable<CubeTitleProps['level']> = level || 1;\n const tag = `h${headingLevel}` as const;\n const styles = extractStyles(propsWithSlots, STYLE_LIST, {}, TEXT_PROP_MAP);\n\n return (\n <TitleElement\n qa={qa || 'Title'}\n as={as || tag}\n data-level={headingLevel}\n mods={{\n nowrap,\n ellipsis,\n }}\n {...filterBaseProps(propsWithSlots, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n\nconst _Title = Object.assign(Title, {\n Danger: forwardRef(function DangerTitle(props: CubeTitleProps, ref) {\n return <Title ref={ref} color=\"#danger-text\" {...props} />;\n }),\n Success: forwardRef(function SuccessTitle(props: CubeTitleProps, ref) {\n return <Title ref={ref} color=\"#success-text\" {...props} />;\n }),\n});\n\n_Title.displayName = 'Title';\n\nexport { _Title as Title };\n"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
5
|
+
import { useI18n } from "../../../i18n/useI18n.js";
|
|
5
6
|
import { SIZES, SIZE_NAME_TO_KEY } from "../../../tokens/sizes.js";
|
|
6
7
|
import { TreeElement, TreeScrollContainer } from "./styled.js";
|
|
7
8
|
import { buildTreeIndex } from "./tree-index.js";
|
|
@@ -164,6 +165,8 @@ function TreeBase(props, ref) {
|
|
|
164
165
|
onSelect(arr, info_0);
|
|
165
166
|
});
|
|
166
167
|
const hasOnSelect = onSelect != null;
|
|
168
|
+
const { t } = useI18n();
|
|
169
|
+
const treeLabel = ariaLabel ?? t("tree.ariaLabel", "Tree");
|
|
167
170
|
const ariaProps = useMemo(() => ({
|
|
168
171
|
selectionMode,
|
|
169
172
|
selectedKeys,
|
|
@@ -176,7 +179,7 @@ function TreeBase(props, ref) {
|
|
|
176
179
|
disabledBehavior: "all",
|
|
177
180
|
items: treeData,
|
|
178
181
|
children: renderItem,
|
|
179
|
-
"aria-label":
|
|
182
|
+
"aria-label": treeLabel
|
|
180
183
|
}), [
|
|
181
184
|
selectionMode,
|
|
182
185
|
selectedKeys,
|
|
@@ -188,7 +191,7 @@ function TreeBase(props, ref) {
|
|
|
188
191
|
handleExpandedChange,
|
|
189
192
|
disabledKeys,
|
|
190
193
|
treeData,
|
|
191
|
-
|
|
194
|
+
treeLabel
|
|
192
195
|
]);
|
|
193
196
|
const baseState = useTreeState(ariaProps);
|
|
194
197
|
const state = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","names":["useVirtualizer","OUTER_STYLES","forwardRef","useLayoutEffect","useMemo","useRef","useTree","Item","useTreeState","useEvent","SIZE_NAME_TO_KEY","SIZES","mergeRefs","extractStyles","TreeElement","TreeScrollContainer","buildTreeIndex","TreeNode","useCheckboxTree","useLoadData","Key","Node","Selection","CSSProperties","ForwardedRef","ReactElement","ReactNode","CubeTreeNodeData","CubeTreeProps","TreeOnExpandInfo","TreeOnSelectInfo","TreeSelectionMode","renderItem","node","textValue","title","String","key","children","collectDisabledKeys","treeData","treeIsDisabled","keys","visit","nodes","isDisabled","push","expandWithParents","parentOf","Map","length","set","Set","parent","get","add","Array","from","findToggledKey","previous","next","added","k","has","resolveSelectionMode","selectionMode","isSelectable","TreeBase","props","ref","HTMLDivElement","isCheckable","selectionModeProp","size","shape","containerPadding","defaultExpandedKeys","expandedKeys","autoExpandParent","defaultCheckedKeys","checkedKeys","defaultSelectedKeys","selectedKeys","height","loadData","onExpand","onCheck","onSelect","itemProps","rowStyles","ariaLabel","qa","menu","treeMenu","contextMenu","treeContextMenu","onAction","treeOnAction","menuTriggerProps","menuProps","otherProps","baseStyles","treeRef","scrollRef","treeIndex","nodesByKey","byKey","disabledKeys","effectiveExpandedKeys","effectiveDefaultExpandedKeys","checkbox","index","loadDataController","initialExpandedKeys","previousExpandedRef","handleExpandedChange","nextSet","onExpandedChanged","undefined","current","toggled","info","expanded","previousSelectionRef","handleSelectionChange","selection","arr","state","collection","getKeys","getItem","type","selectedNodes","map","filter","n","selected","hasOnSelect","ariaProps","onSelectionChange","onExpandedChange","disabledBehavior","const","items","baseState","getChildren","patched","Object","create","Iterable","childNodes","gridProps","visibleNodes","out","visibleNodesRef","rowVirtualizer","count","getScrollElement","getItemKey","estimateSize","gap","overscan","paddingStart","paddingEnd","treeStyle","sizerStyle","position","width","getTotalSize","lastFocusedScrollRef","lastSelectedScrollRef","focusedKey","selectionManager","findIndex","scrollToIndex","align","target","mods","mergedScrollRef","getVirtualItems","virtualItem","keyStr","data","checkedSet","halfCheckedSet","loadingKeys","top","left","right","transform","start","measureElement","toggle","_Tree","displayName","Tree"],"sources":["../../../../src/components/content/Tree/Tree.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { OUTER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useLayoutEffect, useMemo, useRef } from 'react';\nimport { useTree } from 'react-aria';\nimport { Item, useTreeState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { SIZE_NAME_TO_KEY, SIZES } from '../../../tokens/sizes';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { TreeElement, TreeScrollContainer } from './styled';\nimport { buildTreeIndex } from './tree-index';\nimport { TreeNode } from './TreeNode';\nimport { useCheckboxTree } from './use-checkbox-tree';\nimport { useLoadData } from './use-load-data';\n\nimport type { Key, Node, Selection } from '@react-types/shared';\nimport type {\n CSSProperties,\n ForwardedRef,\n ReactElement,\n ReactNode,\n} from 'react';\nimport type {\n CubeTreeNodeData,\n CubeTreeProps,\n TreeOnExpandInfo,\n TreeOnSelectInfo,\n TreeSelectionMode,\n} from './types';\n\n/**\n * Render an `<Item>` for React Stately's collection builder.\n *\n * The visible content is rendered by `TreeNode` via `nodesByKey`,\n * so `<Item>`'s body is only used by Stately for the collection\n * (`textValue` for keyboard nav, `childItems` for nested traversal).\n */\nfunction renderItem(node: CubeTreeNodeData): ReactElement {\n const textValue =\n typeof node.title === 'string' ? node.title : String(node.key);\n return (\n <Item\n key={node.key}\n textValue={textValue}\n childItems={node.children as CubeTreeNodeData[] | undefined}\n >\n {node.title as ReactNode}\n </Item>\n );\n}\n\nfunction collectDisabledKeys(\n treeData: CubeTreeNodeData[],\n treeIsDisabled: boolean,\n): string[] {\n const keys: string[] = [];\n const visit = (nodes: CubeTreeNodeData[]) => {\n for (const node of nodes) {\n if (treeIsDisabled || node.isDisabled) keys.push(node.key);\n if (node.children) visit(node.children);\n }\n };\n visit(treeData);\n return keys;\n}\n\n/** Expand the supplied keys with all of their ancestor keys. */\nfunction expandWithParents(\n keys: string[] | undefined,\n parentOf: Map<string, string | null>,\n): string[] | undefined {\n if (!keys || keys.length === 0) return keys;\n const set = new Set<string>(keys);\n for (const key of keys) {\n let parent = parentOf.get(key);\n while (parent) {\n set.add(parent);\n parent = parentOf.get(parent);\n }\n }\n return Array.from(set);\n}\n\n/**\n * Diff two key sets to find the single key that was added or removed.\n * Returns `null` when both sets are equal.\n */\nfunction findToggledKey(\n previous: Set<Key>,\n next: Set<Key>,\n): { key: Key; added: boolean } | null {\n for (const k of next) {\n if (!previous.has(k)) return { key: k, added: true };\n }\n for (const k of previous) {\n if (!next.has(k)) return { key: k, added: false };\n }\n return null;\n}\n\nfunction resolveSelectionMode(\n selectionMode: TreeSelectionMode | undefined,\n isSelectable: boolean | undefined,\n): TreeSelectionMode {\n if (selectionMode != null) return selectionMode;\n if (isSelectable === false) return 'none';\n return 'single';\n}\n\nfunction TreeBase(props: CubeTreeProps, ref: ForwardedRef<HTMLDivElement>) {\n const {\n treeData,\n isCheckable = false,\n isSelectable,\n selectionMode: selectionModeProp,\n size = 'medium',\n shape = 'default',\n containerPadding = 4,\n isDisabled = false,\n defaultExpandedKeys,\n expandedKeys,\n autoExpandParent = false,\n defaultCheckedKeys,\n checkedKeys,\n defaultSelectedKeys,\n selectedKeys,\n height,\n loadData,\n onExpand,\n onCheck,\n onSelect,\n itemProps,\n rowStyles,\n ariaLabel,\n qa,\n menu: treeMenu,\n contextMenu: treeContextMenu,\n onAction: treeOnAction,\n menuTriggerProps,\n menuProps,\n ...otherProps\n } = props;\n\n const baseStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const treeRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const treeIndex = useMemo(() => buildTreeIndex(treeData), [treeData]);\n const nodesByKey = treeIndex.byKey;\n const parentOf = treeIndex.parentOf;\n\n const disabledKeys = useMemo(\n () => collectDisabledKeys(treeData, isDisabled),\n [treeData, isDisabled],\n );\n\n const selectionMode = resolveSelectionMode(selectionModeProp, isSelectable);\n\n const effectiveExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(expandedKeys, parentOf)\n : expandedKeys,\n [autoExpandParent, expandedKeys, parentOf],\n );\n\n const effectiveDefaultExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(defaultExpandedKeys, parentOf)\n : defaultExpandedKeys,\n [autoExpandParent, defaultExpandedKeys, parentOf],\n );\n\n const checkbox = useCheckboxTree({\n treeData,\n index: treeIndex,\n isCheckable,\n defaultCheckedKeys,\n checkedKeys,\n onCheck,\n });\n\n const loadDataController = useLoadData({\n nodesByKey,\n loadData,\n initialExpandedKeys: effectiveExpandedKeys ?? effectiveDefaultExpandedKeys,\n });\n\n /**\n * In controlled mode, `previous` is read from `effectiveExpandedKeys`;\n * in uncontrolled mode this ref is the only source. Initialized from\n * the *effective* (ancestor-expanded) keys so the first toggle diffs\n * correctly.\n */\n const previousExpandedRef = useRef<Set<Key>>(\n new Set<Key>(effectiveExpandedKeys ?? effectiveDefaultExpandedKeys ?? []),\n );\n\n const handleExpandedChange = useEvent((nextSet: Set<Key>) => {\n loadDataController.onExpandedChanged(nextSet);\n\n const previous =\n expandedKeys !== undefined\n ? new Set<Key>(effectiveExpandedKeys ?? [])\n : previousExpandedRef.current;\n previousExpandedRef.current = new Set<Key>(nextSet);\n\n if (!onExpand) return;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const info: TreeOnExpandInfo = {\n expanded: toggled.added,\n node,\n };\n onExpand(Array.from(nextSet), info);\n });\n\n /**\n * Same pattern as `previousExpandedRef`: in controlled mode we read\n * from `selectedKeys`; in uncontrolled mode this ref tracks state.\n */\n const previousSelectionRef = useRef<Set<Key>>(\n new Set<Key>(selectedKeys ?? defaultSelectedKeys ?? []),\n );\n\n /**\n * `useEvent` captures the closure lazily, so `state` (declared below\n * `ariaProps` / `useTreeState`) is safely accessible at call time.\n */\n const handleSelectionChange = useEvent((selection: Selection) => {\n if (!onSelect) return;\n let arr: Key[];\n if (selection === 'all') {\n // `nodesByKey` contains the full tree; use the collection's visible\n // keys so we don't leak keys under collapsed parents.\n arr = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') arr.push(key);\n }\n } else {\n arr = Array.from(selection);\n }\n\n const nextSet = new Set<Key>(arr);\n const previous =\n selectedKeys !== undefined\n ? new Set<Key>(selectedKeys ?? [])\n : previousSelectionRef.current;\n previousSelectionRef.current = nextSet;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const selectedNodes = arr\n .map((k) => nodesByKey.get(String(k)))\n .filter((n): n is CubeTreeNodeData => !!n);\n\n const info: TreeOnSelectInfo = {\n selected: toggled.added,\n node,\n selectedNodes,\n };\n\n onSelect(arr, info);\n });\n\n const hasOnSelect = onSelect != null;\n\n const ariaProps = useMemo(\n () => ({\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange:\n hasOnSelect && selectionMode !== 'none'\n ? handleSelectionChange\n : undefined,\n expandedKeys: effectiveExpandedKeys,\n defaultExpandedKeys: effectiveDefaultExpandedKeys,\n onExpandedChange: handleExpandedChange,\n disabledKeys,\n disabledBehavior: 'all' as const,\n items: treeData,\n children: renderItem as any,\n 'aria-label': ariaLabel ?? 'Tree',\n }),\n [\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n hasOnSelect,\n handleSelectionChange,\n effectiveExpandedKeys,\n effectiveDefaultExpandedKeys,\n handleExpandedChange,\n disabledKeys,\n treeData,\n ariaLabel,\n ],\n );\n\n const baseState = useTreeState<CubeTreeNodeData>(ariaProps);\n\n // The legacy `TreeCollection` from `useTreeState` lacks `getChildren`,\n // but `useTree` calls it for nested rows. Derive a patched state.\n // TODO: Remove this patch when upgrading to a react-stately version\n // that ships `getChildren` on TreeCollection natively.\n const state = useMemo(() => {\n const collection = baseState.collection;\n if (typeof (collection as any).getChildren === 'function') {\n return baseState;\n }\n const patched = Object.create(collection);\n patched.getChildren = (key: Key): Iterable<Node<CubeTreeNodeData>> => {\n const node = collection.getItem(key);\n return node ? Array.from(node.childNodes) : [];\n };\n return { ...baseState, collection: patched };\n }, [baseState]);\n\n const { gridProps } = useTree(ariaProps, state, treeRef);\n\n const visibleNodes: Node<CubeTreeNodeData>[] = useMemo(() => {\n const out: Node<CubeTreeNodeData>[] = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') out.push(node);\n }\n return out;\n }, [state.collection]);\n\n const visibleNodesRef = useRef(visibleNodes);\n visibleNodesRef.current = visibleNodes;\n\n // ----- Virtualization -----\n const rowVirtualizer = useVirtualizer({\n count: visibleNodes.length,\n getScrollElement: () => scrollRef.current,\n getItemKey: (index: number) => {\n const node = visibleNodesRef.current[index];\n return node?.key ?? index;\n },\n estimateSize: () => SIZES[SIZE_NAME_TO_KEY[size]],\n gap: 1,\n overscan: 10,\n paddingStart: containerPadding,\n paddingEnd: containerPadding,\n });\n\n const treeStyle = useMemo<CSSProperties | undefined>(() => {\n if (height == null) return undefined;\n return { ['--tree-height' as keyof CSSProperties]: `${height}px` };\n }, [height]);\n\n const sizerStyle = useMemo<CSSProperties>(\n () => ({\n position: 'relative',\n width: '100%',\n height: `${rowVirtualizer.getTotalSize()}px`,\n }),\n [rowVirtualizer.getTotalSize()],\n );\n\n /**\n * Each scroll effect tracks its own \"last scrolled\" target instead\n * of sharing one ref. A shared ref creates a feedback loop: keyboard\n * nav updates the focused-key ref to the new row, and any subsequent\n * `visibleNodes` change OR `selectedKeys` array-identity change\n * (very common — `selectedKeys={[value]}` allocates a fresh array\n * every parent render) re-runs the selectedKeys effect, which sees\n * the ref no longer matches `selectedKeys[0]` and yanks the viewport\n * back to the selected row. Two refs let each effect dedupe against\n * its own intent only; the cost is at most one duplicate\n * `scrollToIndex` call when click updates focus and selection in the\n * same render (idempotent — both target the same index).\n */\n const lastFocusedScrollRef = useRef<Key | null>(null);\n const lastSelectedScrollRef = useRef<string | null>(null);\n\n /**\n * Keep the focused row visible during keyboard navigation.\n *\n * Uses `rowVirtualizer.scrollToIndex` (instead of\n * `querySelector + scrollIntoView`) so the scroll lands even when the\n * target row is outside the virtualizer's currently rendered window.\n * `align: 'auto'` only scrolls when needed, matching the prior\n * `scrollIntoView({ block: 'nearest' })` behavior.\n */\n useLayoutEffect(() => {\n const focusedKey = state.selectionManager.focusedKey;\n if (focusedKey == null) return;\n if (lastFocusedScrollRef.current === focusedKey) return;\n\n const index = visibleNodesRef.current.findIndex(\n (n) => n.key === focusedKey,\n );\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastFocusedScrollRef.current = focusedKey;\n }, [state.selectionManager.focusedKey, rowVirtualizer]);\n\n /**\n * Scroll into view when controlled `selectedKeys` changes externally.\n *\n * Selection-manager `focusedKey` only updates on explicit user\n * interaction (click / keyboard) — it does NOT track controlled\n * `selectedKeys` prop changes. So when a parent updates the prop\n * (e.g. opening a file from elsewhere), we need a separate effect\n * to bring the row into view.\n *\n * Re-runs on `visibleNodes` so we retry once parents are expanded\n * (the row is invisible to the virtualizer until then).\n */\n useLayoutEffect(() => {\n if (selectedKeys == null) return;\n const target = selectedKeys[0];\n if (target == null) return;\n if (lastSelectedScrollRef.current === target) return;\n\n const index = visibleNodes.findIndex((n) => String(n.key) === target);\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastSelectedScrollRef.current = target;\n }, [selectedKeys, visibleNodes, rowVirtualizer]);\n\n const mods = useMemo(\n () => ({\n 'has-height': height != null,\n shape,\n }),\n [height, shape],\n );\n\n // The forwarded ref points at the inner scroll container so\n // consumers can drive `scrollTop` directly. `treeRef` (used by\n // `useTree` for keyboard handling and as the role=\"treegrid\"\n // anchor) stays internal on `TreeElement`.\n const mergedScrollRef = useMemo(\n () => mergeRefs(ref, scrollRef),\n [ref, scrollRef],\n );\n\n return (\n <TreeElement\n {...gridProps}\n ref={treeRef}\n qa={qa ?? 'Tree'}\n mods={mods}\n styles={baseStyles}\n style={treeStyle}\n >\n <TreeScrollContainer ref={mergedScrollRef}>\n <div role=\"presentation\" style={sizerStyle}>\n {rowVirtualizer.getVirtualItems().map((virtualItem) => {\n const node = visibleNodes[virtualItem.index];\n if (!node) return null;\n const keyStr = String(node.key);\n const data = nodesByKey.get(keyStr);\n if (!data) return null;\n return (\n <TreeNode\n key={node.key}\n node={node}\n data={data}\n state={state}\n isCheckable={isCheckable}\n isExpanded={state.expandedKeys.has(node.key)}\n isChecked={checkbox.checkedSet.has(keyStr)}\n isIndeterminate={checkbox.halfCheckedSet.has(keyStr)}\n isLoading={loadDataController.loadingKeys.has(keyStr)}\n size={size}\n itemProps={itemProps}\n rowStyles={rowStyles}\n virtualStyle={{\n position: 'absolute',\n top: 0,\n left: containerPadding,\n right: containerPadding,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n virtualRef={rowVirtualizer.measureElement}\n virtualIndex={virtualItem.index}\n menu={treeMenu}\n contextMenu={treeContextMenu}\n menuTriggerProps={menuTriggerProps}\n menuProps={menuProps}\n onToggleChecked={checkbox.toggle}\n onAction={treeOnAction}\n />\n );\n })}\n </div>\n </TreeScrollContainer>\n </TreeElement>\n );\n}\n\nconst _Tree = forwardRef(TreeBase);\n_Tree.displayName = 'Tree';\n\n/**\n * Hierarchical data display with optional checkboxes, single/multi\n * selection, async lazy loading, and keyboard navigation.\n *\n * Built on `useTree` / `useTreeState` (React Aria + React Stately) and\n * styled with Tasty.\n *\n * @example\n * ```tsx\n * <Tree\n * treeData={data}\n * isCheckable\n * selectionMode=\"none\"\n * defaultExpandedKeys={['root']}\n * onCheck={(keys) => console.log(keys)}\n * />\n * ```\n */\nexport const Tree = _Tree;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAASgC,WAAWC,MAAsC;AAGxD,QACE,oBAAC;EAEC,WAJF,OAAOA,KAAKE,UAAU,WAAWF,KAAKE,QAAQC,OAAOH,KAAKI,IAAI;EAK5D,YAAYJ,KAAKK;YAEhBL,KAAKE;IAJDF,KAAKI,IAKL;;AAIX,SAASE,oBACPC,UACAC,gBACU;CACV,MAAMC,OAAiB,EAAE;CACzB,MAAMC,SAASC,UAA8B;AAC3C,OAAK,MAAMX,QAAQW,OAAO;AACxB,OAAIH,kBAAkBR,KAAKY,WAAYH,MAAKI,KAAKb,KAAKI,IAAI;AAC1D,OAAIJ,KAAKK,SAAUK,OAAMV,KAAKK,SAAS;;;AAG3CK,OAAMH,SAAS;AACf,QAAOE;;;AAIT,SAASK,kBACPL,MACAM,UACsB;AACtB,KAAI,CAACN,QAAQA,KAAKQ,WAAW,EAAG,QAAOR;CACvC,MAAMS,MAAM,IAAIC,IAAYV,KAAK;AACjC,MAAK,MAAML,OAAOK,MAAM;EACtB,IAAIW,SAASL,SAASM,IAAIjB,IAAI;AAC9B,SAAOgB,QAAQ;AACbF,OAAII,IAAIF,OAAO;AACfA,YAASL,SAASM,IAAID,OAAO;;;AAGjC,QAAOG,MAAMC,KAAKN,IAAI;;;;;;AAOxB,SAASO,eACPC,UACAC,MACqC;AACrC,MAAK,MAAME,KAAKF,KACd,KAAI,CAACD,SAASI,IAAID,EAAE,CAAE,QAAO;EAAEzB,KAAKyB;EAAGD,OAAO;EAAM;AAEtD,MAAK,MAAMC,KAAKH,SACd,KAAI,CAACC,KAAKG,IAAID,EAAE,CAAE,QAAO;EAAEzB,KAAKyB;EAAGD,OAAO;EAAO;AAEnD,QAAO;;AAGT,SAASG,qBACPC,eACAC,cACmB;AACnB,KAAID,iBAAiB,KAAM,QAAOA;AAClC,KAAIC,iBAAiB,MAAO,QAAO;AACnC,QAAO;;AAGT,SAASC,SAASC,OAAsBC,KAAmC;CACzE,MAAM,EACJ7B,UACA+B,cAAc,OACdL,cACAD,eAAeO,mBACfC,OAAO,UACPC,QAAQ,WACRC,mBAAmB,GACnB9B,aAAa,OACb+B,qBACAC,cACAC,mBAAmB,OACnBC,oBACAC,aACAC,qBACAC,cACAC,QACAC,UACAC,UACAC,SACAC,UACAC,WACAC,WACAC,WACAC,IACAC,MAAMC,UACNC,aAAaC,iBACbC,UAAUC,cACVC,kBACAC,WACA,GAAGC,eACDhC;CAEJ,MAAMiC,aAAaxF,cAAcuF,YAAYnG,aAAa;CAE1D,MAAMqG,UAAUjG,OAAuB,KAAK;CAC5C,MAAMkG,YAAYlG,OAAuB,KAAK;CAE9C,MAAMmG,YAAYpG,cAAcY,eAAewB,SAAS,EAAE,CAACA,SAAS,CAAC;CACrE,MAAMiE,aAAaD,UAAUE;CAC7B,MAAM1D,WAAWwD,UAAUxD;CAE3B,MAAM2D,eAAevG,cACbmC,oBAAoBC,UAAUK,WAAW,EAC/C,CAACL,UAAUK,WACb,CAAC;CAED,MAAMoB,gBAAgBD,qBAAqBQ,mBAAmBN,aAAa;CAE3E,MAAM0C,wBAAwBxG,cAE1B0E,mBACI/B,kBAAkB8B,cAAc7B,SAAS,GACzC6B,cACN;EAACC;EAAkBD;EAAc7B;EACnC,CAAC;CAED,MAAM6D,+BAA+BzG,cAEjC0E,mBACI/B,kBAAkB6B,qBAAqB5B,SAAS,GAChD4B,qBACN;EAACE;EAAkBF;EAAqB5B;EAC1C,CAAC;CAED,MAAM8D,WAAW5F,gBAAgB;EAC/BsB;EACAuE,OAAOP;EACPjC;EACAQ;EACAC;EACAM;EACD,CAAC;CAEF,MAAM0B,qBAAqB7F,YAAY;EACrCsF;EACArB;EACA6B,qBAAqBL,yBAAyBC;EAC/C,CAAC;;;;;;;CAQF,MAAMK,sBAAsB7G,OAC1B,IAAI+C,IAASwD,yBAAyBC,gCAAgC,EAAE,CAC1E,CAAC;CAED,MAAMM,uBAAuB1G,UAAU2G,YAAsB;AAC3DJ,qBAAmBK,kBAAkBD,QAAQ;EAE7C,MAAMzD,WACJkB,iBAAiByC,SACb,IAAIlE,IAASwD,yBAAyB,EAAE,CAAC,GACzCM,oBAAoBK;AAC1BL,sBAAoBK,UAAU,IAAInE,IAASgE,QAAQ;AAEnD,MAAI,CAAC/B,SAAU;EAEf,MAAMmC,UAAU9D,eAAeC,UAAUyD,QAAQ;AACjD,MAAI,CAACI,QAAS;EAEd,MAAMvF,OAAOwE,WAAWnD,IAAIlB,OAAOoF,QAAQnF,IAAI,CAAC;AAChD,MAAI,CAACJ,KAAM;EAEX,MAAMwF,OAAyB;GAC7BC,UAAUF,QAAQ3D;GAClB5B;GACD;AACDoD,WAAS7B,MAAMC,KAAK2D,QAAQ,EAAEK,KAAK;GACnC;;;;;CAMF,MAAME,uBAAuBtH,OAC3B,IAAI+C,IAAS8B,gBAAgBD,uBAAuB,EAAE,CACxD,CAAC;;;;;CAMD,MAAM2C,wBAAwBnH,UAAUoH,cAAyB;AAC/D,MAAI,CAACtC,SAAU;EACf,IAAIuC;AACJ,MAAID,cAAc,OAAO;AAGvBC,SAAM,EAAE;AACR,QAAK,MAAMzF,OAAO0F,MAAMC,WAAWC,SAAS,EAAE;IAC5C,MAAMhG,SAAO8F,MAAMC,WAAWE,QAAQ7F,IAAI;AAC1C,QAAIJ,UAAQA,OAAKkG,SAAS,OAAQL,KAAIhF,KAAKT,IAAI;;QAGjDyF,OAAMtE,MAAMC,KAAKoE,UAAU;EAG7B,MAAMT,YAAU,IAAIhE,IAAS0E,IAAI;EACjC,MAAMnE,aACJuB,iBAAiBoC,SACb,IAAIlE,IAAS8B,gBAAgB,EAAE,CAAC,GAChCyC,qBAAqBJ;AAC3BI,uBAAqBJ,UAAUH;EAE/B,MAAMI,YAAU9D,eAAeC,YAAUyD,UAAQ;AACjD,MAAI,CAACI,UAAS;EAEd,MAAMvF,SAAOwE,WAAWnD,IAAIlB,OAAOoF,UAAQnF,IAAI,CAAC;AAChD,MAAI,CAACJ,OAAM;EAEX,MAAMmG,gBAAgBN,IACnBO,KAAKvE,MAAM2C,WAAWnD,IAAIlB,OAAO0B,EAAE,CAAC,CAAC,CACrCwE,QAAQC,MAA6B,CAAC,CAACA,EAAE;EAE5C,MAAMd,SAAyB;GAC7Be,UAAUhB,UAAQ3D;GAClB5B,MAAAA;GACAmG;GACD;AAED7C,WAASuC,KAAKL,OAAK;GACnB;CAEF,MAAMgB,cAAclD,YAAY;CAEhC,MAAMmD,YAAYtI,eACT;EACL6D;EACAiB;EACAD;EACA0D,mBACEF,eAAexE,kBAAkB,SAC7B2D,wBACAN;EACNzC,cAAc+B;EACdhC,qBAAqBiC;EACrB+B,kBAAkBzB;EAClBR;EACAkC,kBAAkB;EAClBE,OAAOvG;EACPF,UAAUN;EACV,cAAc0D,aAAa;EAC5B,GACD;EACEzB;EACAiB;EACAD;EACAwD;EACAb;EACAhB;EACAC;EACAM;EACAR;EACAnE;EACAkD;EAEJ,CAAC;CAED,MAAMsD,YAAYxI,aAA+BkI,UAAU;CAM3D,MAAMX,QAAQ3H,cAAc;EAC1B,MAAM4H,aAAagB,UAAUhB;AAC7B,MAAI,OAAQA,WAAmBiB,gBAAgB,WAC7C,QAAOD;EAET,MAAME,UAAUC,OAAOC,OAAOpB,WAAW;AACzCkB,UAAQD,eAAe5G,UAA+C;GACpE,MAAMJ,SAAO+F,WAAWE,QAAQ7F,MAAI;AACpC,UAAOJ,SAAOuB,MAAMC,KAAKxB,OAAKqH,WAAW,GAAG,EAAE;;AAEhD,SAAO;GAAE,GAAGN;GAAWhB,YAAYkB;GAAS;IAC3C,CAACF,UAAU,CAAC;CAEf,MAAM,EAAEO,cAAcjJ,QAAQoI,WAAWX,OAAOzB,QAAQ;CAExD,MAAMkD,eAAyCpJ,cAAc;EAC3D,MAAMqJ,MAAgC,EAAE;AACxC,OAAK,MAAMpH,SAAO0F,MAAMC,WAAWC,SAAS,EAAE;GAC5C,MAAMhG,SAAO8F,MAAMC,WAAWE,QAAQ7F,MAAI;AAC1C,OAAIJ,UAAQA,OAAKkG,SAAS,OAAQsB,KAAI3G,KAAKb,OAAK;;AAElD,SAAOwH;IACN,CAAC1B,MAAMC,WAAW,CAAC;CAEtB,MAAM0B,kBAAkBrJ,OAAOmJ,aAAa;AAC5CE,iBAAgBnC,UAAUiC;CAG1B,MAAMG,iBAAiB3J,eAAe;EACpC4J,OAAOJ,aAAatG;EACpB2G,wBAAwBtD,UAAUgB;EAClCuC,aAAa/C,UAAkB;AAE7B,UADa2C,gBAAgBnC,QAAQR,QACxB1E,OAAO0E;;EAEtBgD,oBAAoBpJ,MAAMD,iBAAiB+D;EAC3CuF,KAAK;EACLC,UAAU;EACVC,cAAcvF;EACdwF,YAAYxF;EACb,CAAC;CAEF,MAAMyF,YAAYhK,cAAyC;AACzD,MAAI+E,UAAU,KAAM,QAAOmC;AAC3B,SAAO,GAAG,kBAAyC,GAAGnC,OAAM,KAAM;IACjE,CAACA,OAAO,CAAC;CAEZ,MAAMkF,aAAajK,eACV;EACLkK,UAAU;EACVC,OAAO;EACPpF,QAAQ,GAAGwE,eAAea,cAAc,CAAA;EACzC,GACD,CAACb,eAAea,cAAc,CAChC,CAAC;;;;;;;;;;;;;;CAeD,MAAMC,uBAAuBpK,OAAmB,KAAK;CACrD,MAAMqK,wBAAwBrK,OAAsB,KAAK;;;;;;;;;;AAWzDF,uBAAsB;EACpB,MAAMwK,aAAa5C,MAAM6C,iBAAiBD;AAC1C,MAAIA,cAAc,KAAM;AACxB,MAAIF,qBAAqBlD,YAAYoD,WAAY;EAEjD,MAAM5D,UAAQ2C,gBAAgBnC,QAAQsD,WACnCtC,QAAMA,IAAElG,QAAQsI,WAClB;AACD,MAAI5D,UAAQ,EAAG;AAEf4C,iBAAemB,cAAc/D,SAAO,EAAEgE,OAAO,QAAQ,CAAC;AACtDN,uBAAqBlD,UAAUoD;IAC9B,CAAC5C,MAAM6C,iBAAiBD,YAAYhB,eAAe,CAAC;;;;;;;;;;;;;AAcvDxJ,uBAAsB;AACpB,MAAI+E,gBAAgB,KAAM;EAC1B,MAAM8F,SAAS9F,aAAa;AAC5B,MAAI8F,UAAU,KAAM;AACpB,MAAIN,sBAAsBnD,YAAYyD,OAAQ;EAE9C,MAAMjE,UAAQyC,aAAaqB,WAAWtC,QAAMnG,OAAOmG,IAAElG,IAAI,KAAK2I,OAAO;AACrE,MAAIjE,UAAQ,EAAG;AAEf4C,iBAAemB,cAAc/D,SAAO,EAAEgE,OAAO,QAAQ,CAAC;AACtDL,wBAAsBnD,UAAUyD;IAC/B;EAAC9F;EAAcsE;EAAcG;EAAe,CAAC;CAEhD,MAAMsB,OAAO7K,eACJ;EACL,cAAc+E,UAAU;EACxBT;EACD,GACD,CAACS,QAAQT,MACX,CAAC;CAMD,MAAMwG,kBAAkB9K,cAChBQ,UAAUyD,KAAKkC,UAAU,EAC/B,CAAClC,KAAKkC,UACR,CAAC;AAED,QACE,oBAAC;EACC,GAAIgD;EACJ,KAAKjD;EACL,IAAIX,MAAM;EACJsF;EACN,QAAQ5E;EACR,OAAO+D;YAEP,oBAAC;GAAoB,KAAKc;aACxB,oBAAC;IAAI,MAAK;IAAe,OAAOb;cAC7BV,eAAewB,iBAAiB,CAAC9C,KAAK+C,gBAAgB;KACrD,MAAMnJ,SAAOuH,aAAa4B,YAAYrE;AACtC,SAAI,CAAC9E,OAAM,QAAO;KAClB,MAAMoJ,SAASjJ,OAAOH,OAAKI,IAAI;KAC/B,MAAMiJ,OAAO7E,WAAWnD,IAAI+H,OAAO;AACnC,SAAI,CAACC,KAAM,QAAO;AAClB,YACE,oBAAC;MAEC,MAAMrJ;MACAqJ;MACCvD;MACMxD;MACb,YAAYwD,MAAMlD,aAAad,IAAI9B,OAAKI,IAAI;MAC5C,WAAWyE,SAASyE,WAAWxH,IAAIsH,OAAO;MAC1C,iBAAiBvE,SAAS0E,eAAezH,IAAIsH,OAAO;MACpD,WAAWrE,mBAAmByE,YAAY1H,IAAIsH,OAAO;MAC/C5G;MACKe;MACAC;MACX,cAAc;OACZ6E,UAAU;OACVoB,KAAK;OACLC,MAAMhH;OACNiH,OAAOjH;OACPkH,WAAW,cAAcT,YAAYU,MAAK;OAC3C;MACD,YAAYnC,eAAeoC;MAC3B,cAAcX,YAAYrE;MAC1B,MAAMlB;MACN,aAAaE;MACKG;MACPC;MACX,iBAAiBW,SAASkF;MAC1B,UAAU/F;QA1BLhE,OAAKI,IA2BV;MAEJ;KACC;IACc;GACT;;AAIlB,MAAM4J,QAAQ/L,WAAWiE,SAAS;AAClC8H,MAAMC,cAAc;;;;;;;;;;;;;;;;;;;AAoBpB,MAAaC,OAAOF"}
|
|
1
|
+
{"version":3,"file":"Tree.js","names":["useVirtualizer","OUTER_STYLES","forwardRef","useLayoutEffect","useMemo","useRef","useTree","Item","useTreeState","useEvent","useI18n","SIZE_NAME_TO_KEY","SIZES","mergeRefs","extractStyles","TreeElement","TreeScrollContainer","buildTreeIndex","TreeNode","useCheckboxTree","useLoadData","Key","Node","Selection","CSSProperties","ForwardedRef","ReactElement","ReactNode","CubeTreeNodeData","CubeTreeProps","TreeOnExpandInfo","TreeOnSelectInfo","TreeSelectionMode","renderItem","node","textValue","title","String","key","children","collectDisabledKeys","treeData","treeIsDisabled","keys","visit","nodes","isDisabled","push","expandWithParents","parentOf","Map","length","set","Set","parent","get","add","Array","from","findToggledKey","previous","next","added","k","has","resolveSelectionMode","selectionMode","isSelectable","TreeBase","props","ref","HTMLDivElement","isCheckable","selectionModeProp","size","shape","containerPadding","defaultExpandedKeys","expandedKeys","autoExpandParent","defaultCheckedKeys","checkedKeys","defaultSelectedKeys","selectedKeys","height","loadData","onExpand","onCheck","onSelect","itemProps","rowStyles","ariaLabel","qa","menu","treeMenu","contextMenu","treeContextMenu","onAction","treeOnAction","menuTriggerProps","menuProps","otherProps","baseStyles","treeRef","scrollRef","treeIndex","nodesByKey","byKey","disabledKeys","effectiveExpandedKeys","effectiveDefaultExpandedKeys","checkbox","index","loadDataController","initialExpandedKeys","previousExpandedRef","handleExpandedChange","nextSet","onExpandedChanged","undefined","current","toggled","info","expanded","previousSelectionRef","handleSelectionChange","selection","arr","state","collection","getKeys","getItem","type","selectedNodes","map","filter","n","selected","hasOnSelect","t","treeLabel","ariaProps","onSelectionChange","onExpandedChange","disabledBehavior","const","items","baseState","getChildren","patched","Object","create","Iterable","childNodes","gridProps","visibleNodes","out","visibleNodesRef","rowVirtualizer","count","getScrollElement","getItemKey","estimateSize","gap","overscan","paddingStart","paddingEnd","treeStyle","sizerStyle","position","width","getTotalSize","lastFocusedScrollRef","lastSelectedScrollRef","focusedKey","selectionManager","findIndex","scrollToIndex","align","target","mods","mergedScrollRef","getVirtualItems","virtualItem","keyStr","data","checkedSet","halfCheckedSet","loadingKeys","top","left","right","transform","start","measureElement","toggle","_Tree","displayName","Tree"],"sources":["../../../../src/components/content/Tree/Tree.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { OUTER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useLayoutEffect, useMemo, useRef } from 'react';\nimport { useTree } from 'react-aria';\nimport { Item, useTreeState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { SIZE_NAME_TO_KEY, SIZES } from '../../../tokens/sizes';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { TreeElement, TreeScrollContainer } from './styled';\nimport { buildTreeIndex } from './tree-index';\nimport { TreeNode } from './TreeNode';\nimport { useCheckboxTree } from './use-checkbox-tree';\nimport { useLoadData } from './use-load-data';\n\nimport type { Key, Node, Selection } from '@react-types/shared';\nimport type {\n CSSProperties,\n ForwardedRef,\n ReactElement,\n ReactNode,\n} from 'react';\nimport type {\n CubeTreeNodeData,\n CubeTreeProps,\n TreeOnExpandInfo,\n TreeOnSelectInfo,\n TreeSelectionMode,\n} from './types';\n\n/**\n * Render an `<Item>` for React Stately's collection builder.\n *\n * The visible content is rendered by `TreeNode` via `nodesByKey`,\n * so `<Item>`'s body is only used by Stately for the collection\n * (`textValue` for keyboard nav, `childItems` for nested traversal).\n */\nfunction renderItem(node: CubeTreeNodeData): ReactElement {\n const textValue =\n typeof node.title === 'string' ? node.title : String(node.key);\n return (\n <Item\n key={node.key}\n textValue={textValue}\n childItems={node.children as CubeTreeNodeData[] | undefined}\n >\n {node.title as ReactNode}\n </Item>\n );\n}\n\nfunction collectDisabledKeys(\n treeData: CubeTreeNodeData[],\n treeIsDisabled: boolean,\n): string[] {\n const keys: string[] = [];\n const visit = (nodes: CubeTreeNodeData[]) => {\n for (const node of nodes) {\n if (treeIsDisabled || node.isDisabled) keys.push(node.key);\n if (node.children) visit(node.children);\n }\n };\n visit(treeData);\n return keys;\n}\n\n/** Expand the supplied keys with all of their ancestor keys. */\nfunction expandWithParents(\n keys: string[] | undefined,\n parentOf: Map<string, string | null>,\n): string[] | undefined {\n if (!keys || keys.length === 0) return keys;\n const set = new Set<string>(keys);\n for (const key of keys) {\n let parent = parentOf.get(key);\n while (parent) {\n set.add(parent);\n parent = parentOf.get(parent);\n }\n }\n return Array.from(set);\n}\n\n/**\n * Diff two key sets to find the single key that was added or removed.\n * Returns `null` when both sets are equal.\n */\nfunction findToggledKey(\n previous: Set<Key>,\n next: Set<Key>,\n): { key: Key; added: boolean } | null {\n for (const k of next) {\n if (!previous.has(k)) return { key: k, added: true };\n }\n for (const k of previous) {\n if (!next.has(k)) return { key: k, added: false };\n }\n return null;\n}\n\nfunction resolveSelectionMode(\n selectionMode: TreeSelectionMode | undefined,\n isSelectable: boolean | undefined,\n): TreeSelectionMode {\n if (selectionMode != null) return selectionMode;\n if (isSelectable === false) return 'none';\n return 'single';\n}\n\nfunction TreeBase(props: CubeTreeProps, ref: ForwardedRef<HTMLDivElement>) {\n const {\n treeData,\n isCheckable = false,\n isSelectable,\n selectionMode: selectionModeProp,\n size = 'medium',\n shape = 'default',\n containerPadding = 4,\n isDisabled = false,\n defaultExpandedKeys,\n expandedKeys,\n autoExpandParent = false,\n defaultCheckedKeys,\n checkedKeys,\n defaultSelectedKeys,\n selectedKeys,\n height,\n loadData,\n onExpand,\n onCheck,\n onSelect,\n itemProps,\n rowStyles,\n ariaLabel,\n qa,\n menu: treeMenu,\n contextMenu: treeContextMenu,\n onAction: treeOnAction,\n menuTriggerProps,\n menuProps,\n ...otherProps\n } = props;\n\n const baseStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const treeRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const treeIndex = useMemo(() => buildTreeIndex(treeData), [treeData]);\n const nodesByKey = treeIndex.byKey;\n const parentOf = treeIndex.parentOf;\n\n const disabledKeys = useMemo(\n () => collectDisabledKeys(treeData, isDisabled),\n [treeData, isDisabled],\n );\n\n const selectionMode = resolveSelectionMode(selectionModeProp, isSelectable);\n\n const effectiveExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(expandedKeys, parentOf)\n : expandedKeys,\n [autoExpandParent, expandedKeys, parentOf],\n );\n\n const effectiveDefaultExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(defaultExpandedKeys, parentOf)\n : defaultExpandedKeys,\n [autoExpandParent, defaultExpandedKeys, parentOf],\n );\n\n const checkbox = useCheckboxTree({\n treeData,\n index: treeIndex,\n isCheckable,\n defaultCheckedKeys,\n checkedKeys,\n onCheck,\n });\n\n const loadDataController = useLoadData({\n nodesByKey,\n loadData,\n initialExpandedKeys: effectiveExpandedKeys ?? effectiveDefaultExpandedKeys,\n });\n\n /**\n * In controlled mode, `previous` is read from `effectiveExpandedKeys`;\n * in uncontrolled mode this ref is the only source. Initialized from\n * the *effective* (ancestor-expanded) keys so the first toggle diffs\n * correctly.\n */\n const previousExpandedRef = useRef<Set<Key>>(\n new Set<Key>(effectiveExpandedKeys ?? effectiveDefaultExpandedKeys ?? []),\n );\n\n const handleExpandedChange = useEvent((nextSet: Set<Key>) => {\n loadDataController.onExpandedChanged(nextSet);\n\n const previous =\n expandedKeys !== undefined\n ? new Set<Key>(effectiveExpandedKeys ?? [])\n : previousExpandedRef.current;\n previousExpandedRef.current = new Set<Key>(nextSet);\n\n if (!onExpand) return;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const info: TreeOnExpandInfo = {\n expanded: toggled.added,\n node,\n };\n onExpand(Array.from(nextSet), info);\n });\n\n /**\n * Same pattern as `previousExpandedRef`: in controlled mode we read\n * from `selectedKeys`; in uncontrolled mode this ref tracks state.\n */\n const previousSelectionRef = useRef<Set<Key>>(\n new Set<Key>(selectedKeys ?? defaultSelectedKeys ?? []),\n );\n\n /**\n * `useEvent` captures the closure lazily, so `state` (declared below\n * `ariaProps` / `useTreeState`) is safely accessible at call time.\n */\n const handleSelectionChange = useEvent((selection: Selection) => {\n if (!onSelect) return;\n let arr: Key[];\n if (selection === 'all') {\n // `nodesByKey` contains the full tree; use the collection's visible\n // keys so we don't leak keys under collapsed parents.\n arr = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') arr.push(key);\n }\n } else {\n arr = Array.from(selection);\n }\n\n const nextSet = new Set<Key>(arr);\n const previous =\n selectedKeys !== undefined\n ? new Set<Key>(selectedKeys ?? [])\n : previousSelectionRef.current;\n previousSelectionRef.current = nextSet;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const selectedNodes = arr\n .map((k) => nodesByKey.get(String(k)))\n .filter((n): n is CubeTreeNodeData => !!n);\n\n const info: TreeOnSelectInfo = {\n selected: toggled.added,\n node,\n selectedNodes,\n };\n\n onSelect(arr, info);\n });\n\n const hasOnSelect = onSelect != null;\n const { t } = useI18n();\n const treeLabel = ariaLabel ?? t('tree.ariaLabel', 'Tree');\n\n const ariaProps = useMemo(\n () => ({\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange:\n hasOnSelect && selectionMode !== 'none'\n ? handleSelectionChange\n : undefined,\n expandedKeys: effectiveExpandedKeys,\n defaultExpandedKeys: effectiveDefaultExpandedKeys,\n onExpandedChange: handleExpandedChange,\n disabledKeys,\n disabledBehavior: 'all' as const,\n items: treeData,\n children: renderItem as any,\n 'aria-label': treeLabel,\n }),\n [\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n hasOnSelect,\n handleSelectionChange,\n effectiveExpandedKeys,\n effectiveDefaultExpandedKeys,\n handleExpandedChange,\n disabledKeys,\n treeData,\n treeLabel,\n ],\n );\n\n const baseState = useTreeState<CubeTreeNodeData>(ariaProps);\n\n // The legacy `TreeCollection` from `useTreeState` lacks `getChildren`,\n // but `useTree` calls it for nested rows. Derive a patched state.\n // TODO: Remove this patch when upgrading to a react-stately version\n // that ships `getChildren` on TreeCollection natively.\n const state = useMemo(() => {\n const collection = baseState.collection;\n if (typeof (collection as any).getChildren === 'function') {\n return baseState;\n }\n const patched = Object.create(collection);\n patched.getChildren = (key: Key): Iterable<Node<CubeTreeNodeData>> => {\n const node = collection.getItem(key);\n return node ? Array.from(node.childNodes) : [];\n };\n return { ...baseState, collection: patched };\n }, [baseState]);\n\n const { gridProps } = useTree(ariaProps, state, treeRef);\n\n const visibleNodes: Node<CubeTreeNodeData>[] = useMemo(() => {\n const out: Node<CubeTreeNodeData>[] = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') out.push(node);\n }\n return out;\n }, [state.collection]);\n\n const visibleNodesRef = useRef(visibleNodes);\n visibleNodesRef.current = visibleNodes;\n\n // ----- Virtualization -----\n const rowVirtualizer = useVirtualizer({\n count: visibleNodes.length,\n getScrollElement: () => scrollRef.current,\n getItemKey: (index: number) => {\n const node = visibleNodesRef.current[index];\n return node?.key ?? index;\n },\n estimateSize: () => SIZES[SIZE_NAME_TO_KEY[size]],\n gap: 1,\n overscan: 10,\n paddingStart: containerPadding,\n paddingEnd: containerPadding,\n });\n\n const treeStyle = useMemo<CSSProperties | undefined>(() => {\n if (height == null) return undefined;\n return { ['--tree-height' as keyof CSSProperties]: `${height}px` };\n }, [height]);\n\n const sizerStyle = useMemo<CSSProperties>(\n () => ({\n position: 'relative',\n width: '100%',\n height: `${rowVirtualizer.getTotalSize()}px`,\n }),\n [rowVirtualizer.getTotalSize()],\n );\n\n /**\n * Each scroll effect tracks its own \"last scrolled\" target instead\n * of sharing one ref. A shared ref creates a feedback loop: keyboard\n * nav updates the focused-key ref to the new row, and any subsequent\n * `visibleNodes` change OR `selectedKeys` array-identity change\n * (very common — `selectedKeys={[value]}` allocates a fresh array\n * every parent render) re-runs the selectedKeys effect, which sees\n * the ref no longer matches `selectedKeys[0]` and yanks the viewport\n * back to the selected row. Two refs let each effect dedupe against\n * its own intent only; the cost is at most one duplicate\n * `scrollToIndex` call when click updates focus and selection in the\n * same render (idempotent — both target the same index).\n */\n const lastFocusedScrollRef = useRef<Key | null>(null);\n const lastSelectedScrollRef = useRef<string | null>(null);\n\n /**\n * Keep the focused row visible during keyboard navigation.\n *\n * Uses `rowVirtualizer.scrollToIndex` (instead of\n * `querySelector + scrollIntoView`) so the scroll lands even when the\n * target row is outside the virtualizer's currently rendered window.\n * `align: 'auto'` only scrolls when needed, matching the prior\n * `scrollIntoView({ block: 'nearest' })` behavior.\n */\n useLayoutEffect(() => {\n const focusedKey = state.selectionManager.focusedKey;\n if (focusedKey == null) return;\n if (lastFocusedScrollRef.current === focusedKey) return;\n\n const index = visibleNodesRef.current.findIndex(\n (n) => n.key === focusedKey,\n );\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastFocusedScrollRef.current = focusedKey;\n }, [state.selectionManager.focusedKey, rowVirtualizer]);\n\n /**\n * Scroll into view when controlled `selectedKeys` changes externally.\n *\n * Selection-manager `focusedKey` only updates on explicit user\n * interaction (click / keyboard) — it does NOT track controlled\n * `selectedKeys` prop changes. So when a parent updates the prop\n * (e.g. opening a file from elsewhere), we need a separate effect\n * to bring the row into view.\n *\n * Re-runs on `visibleNodes` so we retry once parents are expanded\n * (the row is invisible to the virtualizer until then).\n */\n useLayoutEffect(() => {\n if (selectedKeys == null) return;\n const target = selectedKeys[0];\n if (target == null) return;\n if (lastSelectedScrollRef.current === target) return;\n\n const index = visibleNodes.findIndex((n) => String(n.key) === target);\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastSelectedScrollRef.current = target;\n }, [selectedKeys, visibleNodes, rowVirtualizer]);\n\n const mods = useMemo(\n () => ({\n 'has-height': height != null,\n shape,\n }),\n [height, shape],\n );\n\n // The forwarded ref points at the inner scroll container so\n // consumers can drive `scrollTop` directly. `treeRef` (used by\n // `useTree` for keyboard handling and as the role=\"treegrid\"\n // anchor) stays internal on `TreeElement`.\n const mergedScrollRef = useMemo(\n () => mergeRefs(ref, scrollRef),\n [ref, scrollRef],\n );\n\n return (\n <TreeElement\n {...gridProps}\n ref={treeRef}\n qa={qa ?? 'Tree'}\n mods={mods}\n styles={baseStyles}\n style={treeStyle}\n >\n <TreeScrollContainer ref={mergedScrollRef}>\n <div role=\"presentation\" style={sizerStyle}>\n {rowVirtualizer.getVirtualItems().map((virtualItem) => {\n const node = visibleNodes[virtualItem.index];\n if (!node) return null;\n const keyStr = String(node.key);\n const data = nodesByKey.get(keyStr);\n if (!data) return null;\n return (\n <TreeNode\n key={node.key}\n node={node}\n data={data}\n state={state}\n isCheckable={isCheckable}\n isExpanded={state.expandedKeys.has(node.key)}\n isChecked={checkbox.checkedSet.has(keyStr)}\n isIndeterminate={checkbox.halfCheckedSet.has(keyStr)}\n isLoading={loadDataController.loadingKeys.has(keyStr)}\n size={size}\n itemProps={itemProps}\n rowStyles={rowStyles}\n virtualStyle={{\n position: 'absolute',\n top: 0,\n left: containerPadding,\n right: containerPadding,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n virtualRef={rowVirtualizer.measureElement}\n virtualIndex={virtualItem.index}\n menu={treeMenu}\n contextMenu={treeContextMenu}\n menuTriggerProps={menuTriggerProps}\n menuProps={menuProps}\n onToggleChecked={checkbox.toggle}\n onAction={treeOnAction}\n />\n );\n })}\n </div>\n </TreeScrollContainer>\n </TreeElement>\n );\n}\n\nconst _Tree = forwardRef(TreeBase);\n_Tree.displayName = 'Tree';\n\n/**\n * Hierarchical data display with optional checkboxes, single/multi\n * selection, async lazy loading, and keyboard navigation.\n *\n * Built on `useTree` / `useTreeState` (React Aria + React Stately) and\n * styled with Tasty.\n *\n * @example\n * ```tsx\n * <Tree\n * treeData={data}\n * isCheckable\n * selectionMode=\"none\"\n * defaultExpandedKeys={['root']}\n * onCheck={(keys) => console.log(keys)}\n * />\n * ```\n */\nexport const Tree = _Tree;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.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 { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { _Item } from "../Item/Item.js";
|
|
3
3
|
import { Action } from "../../actions/Action/Action.js";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
import { CubeMenuProps } from "../../actions/Menu/Menu.js";
|
|
3
|
-
import { CubeItemProps } from "../Item/Item.js";
|
|
4
2
|
import { CubeItemActionProps } from "../../actions/ItemAction/ItemAction.js";
|
|
5
3
|
import "../../actions/ItemAction/index.js";
|
|
4
|
+
import { CubeMenuProps } from "../../actions/Menu/Menu.js";
|
|
6
5
|
import "../../actions/Menu/index.js";
|
|
6
|
+
import { CubeItemProps } from "../Item/Item.js";
|
|
7
7
|
import { SizeName } from "../../../tokens/sizes.js";
|
|
8
8
|
import { BaseProps, OuterStyleProps, Styles } from "@tenphi/tasty";
|
|
9
9
|
import { ReactNode } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { isDevEnvOrTest } from "../../../utils/is-dev-env.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.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.194.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.194.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.194.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.194.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { freezeColumnWidths, useTableColumns } from "../TableBase/use-table-columns.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { isTableTreeDescendant } from "../TableBase/table-tree.js";
|
|
4
4
|
import { ItemTableDragPreview } from "./ItemTableDragPreview.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { clampPage, getPageInfo } from "../../navigation/Pagination/use-pagination.js";
|
|
4
4
|
import { reindexTableTree } from "../TableBase/table-tree.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { flattenTableTree } from "../TableBase/table-tree.js";
|
|
3
3
|
import { useTableSelection } from "../TableBase/use-table-selection.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { sortTableTree } from "../TableBase/table-tree.js";
|
|
4
4
|
import { compareByColumn, useTableSort } from "../TableBase/use-table-sort.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
3
3
|
import { buildTableTree } from "../TableBase/table-tree.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.194.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.194.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.194.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";
|