@cube-dev/ui-kit 0.201.0 → 0.203.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/CHANGELOG.md +56 -0
- package/dist/README.md +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +2 -1
- package/dist/components/HiddenInput.js.map +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +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 +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +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.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider/Divider.d.ts +22 -0
- package/dist/components/content/Divider/Divider.js +159 -0
- package/dist/components/content/Divider/Divider.js.map +1 -0
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/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 +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 +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +39 -14
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +8 -7
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/checked-keys.js +158 -0
- package/dist/components/content/Tree/checked-keys.js.map +1 -0
- package/dist/components/content/Tree/rowId.js +16 -0
- package/dist/components/content/Tree/rowId.js.map +1 -0
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +10 -2
- package/dist/components/content/Tree/tree-index.js.map +1 -1
- package/dist/components/content/Tree/types.d.ts +21 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +17 -123
- package/dist/components/content/Tree/use-checkbox-tree.js.map +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 +233 -178
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/index.d.ts +2 -2
- package/dist/components/data/ItemTable/item-table-sections.js +68 -0
- package/dist/components/data/ItemTable/item-table-sections.js.map +1 -0
- package/dist/components/data/ItemTable/types.d.ts +12 -0
- 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 +31 -27
- package/dist/components/data/ItemTable/use-item-table-selection.js.map +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/TableRowLink.js +1 -1
- package/dist/components/data/TableBase/TableView.d.ts +1 -0
- package/dist/components/data/TableBase/TableView.js +86 -21
- 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.js +25 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.d.ts +3 -0
- package/dist/components/data/TableBase/table-body-sections.js +30 -0
- package/dist/components/data/TableBase/table-body-sections.js.map +1 -0
- 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 +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/data/index.d.ts +2 -2
- package/dist/components/fields/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/fields/Checkbox/Checkbox.js +21 -10
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +3 -2
- package/dist/components/fields/Checkbox/CheckboxGroup.js +36 -42
- 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.d.ts +3 -2
- package/dist/components/fields/ColorInput/ColorInput.js +5 -3
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +9 -3
- package/dist/components/fields/ColorPicker/ColorPicker.js +182 -200
- 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.d.ts +3 -2
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +143 -171
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +7 -5
- package/dist/components/fields/ComboBox/ComboBox.js +704 -639
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +5 -4
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateInput.js +6 -5
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +79 -76
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DatePicker.js +84 -173
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateRangePicker.js +116 -204
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +288 -434
- 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.d.ts +3 -2
- package/dist/components/fields/DatePicker/PeriodPicker.js +87 -113
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.d.ts +3 -2
- package/dist/components/fields/DatePicker/TimeInput.js +7 -6
- package/dist/components/fields/DatePicker/TimeInput.js.map +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.d.ts +3 -2
- package/dist/components/fields/FileInput/FileInput.js +71 -100
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +10 -65
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterListBox/styled.js +66 -0
- package/dist/components/fields/FilterListBox/styled.js.map +1 -0
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +35 -3
- package/dist/components/fields/FilterPicker/FilterPicker.js +76 -15
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +413 -0
- package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -0
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +3 -2
- package/dist/components/fields/ListBox/ListBox.js +7 -10
- 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 +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 +40 -21
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +52 -37
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +5 -3
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +9 -3
- package/dist/components/fields/Picker/Picker.js +12 -11
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +152 -154
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.d.ts +3 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js +85 -111
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/RadioGroup/context.js.map +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +9 -4
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +16 -23
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +52 -48
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +3 -2
- package/dist/components/fields/Select/Select.js +8 -10
- 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 +19 -26
- package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
- package/dist/components/fields/Slider/Slider.js +51 -58
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +61 -60
- package/dist/components/fields/Slider/SliderBase.js.map +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/Slider/types.d.ts +3 -3
- package/dist/components/fields/Switch/Switch.d.ts +12 -2
- package/dist/components/fields/Switch/Switch.js +97 -165
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +5 -2
- package/dist/components/fields/TagInput/TagInput.js +18 -13
- package/dist/components/fields/TagInput/TagInput.js.map +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 +5 -3
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +5 -3
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +25 -4
- package/dist/components/fields/TextInput/TextInputBase.js +214 -106
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/index.d.ts +2 -2
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/index.d.ts +2 -2
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +120 -57
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-chrome.js.map +1 -1
- package/dist/components/form/field-layout.d.ts +20 -0
- package/dist/components/form/field-layout.js +114 -0
- package/dist/components/form/field-layout.js.map +1 -0
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/legacy-tooltip.js +15 -2
- package/dist/components/form/legacy-tooltip.js.map +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 +6 -2
- 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 +7 -3
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +18 -18
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- 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/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +2 -2
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +25 -1
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -4
- 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.d.ts +5 -0
- package/dist/provider.js +19 -7
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/shared/form.d.ts +3 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +29 -2
- package/dist/utils/react/disabledProps.js.map +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 +44 -7
- package/dist/utils/react/overlayKeyPropagation.js.map +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/CreateComponent.md +1 -1
- package/docs/FieldProperties.md +29 -7
- package/docs/Usage.md +3 -0
- package/docs/components/content/Divider.md +103 -21
- package/docs/components/content/Tree.md +5 -4
- package/docs/components/data/ItemTable.md +25 -0
- package/docs/components/fields/Checkbox.md +7 -8
- package/docs/components/fields/ColorInput.md +11 -13
- package/docs/components/fields/ColorPicker.md +2 -2
- package/docs/components/fields/ColorSwatchGroup.md +2 -3
- package/docs/components/fields/ComboBox.md +9 -7
- package/docs/components/fields/CommandTextArea.md +4 -5
- package/docs/components/fields/DatePicker.md +1 -4
- package/docs/components/fields/FileInput.md +1 -5
- package/docs/components/fields/FilterListBox.md +0 -3
- package/docs/components/fields/FilterPicker.md +68 -5
- package/docs/components/fields/HueSlider.md +1 -3
- package/docs/components/fields/ListBox.md +0 -3
- package/docs/components/fields/NumberInput.md +9 -6
- package/docs/components/fields/PasswordInput.md +9 -8
- package/docs/components/fields/PeriodPicker.md +0 -4
- package/docs/components/fields/Picker.md +2 -4
- package/docs/components/fields/RadioGroup.md +4 -5
- package/docs/components/fields/SearchComboBox.md +2 -4
- package/docs/components/fields/SearchInput.md +16 -4
- package/docs/components/fields/Select.md +0 -3
- package/docs/components/fields/Slider.md +0 -2
- package/docs/components/fields/Switch.md +16 -3
- package/docs/components/fields/TagInput.md +3 -6
- package/docs/components/fields/TextArea.md +10 -8
- package/docs/components/fields/TextInput.md +52 -10
- package/docs/components/navigation/Tabs.md +47 -0
- package/docs/components/overlays/Tooltip.md +1 -1
- package/package.json +4 -2
- package/dist/components/content/Divider.d.ts +0 -7
- package/dist/components/content/Divider.js +0 -105
- package/dist/components/content/Divider.js.map +0 -1
|
@@ -1,68 +1,9 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
|
+
import { deriveCheckedSets, toggleCheckedKey } from "./checked-keys.js";
|
|
3
4
|
import { c } from "react/compiler-runtime";
|
|
4
5
|
import { useState } from "react";
|
|
5
6
|
//#region src/components/content/Tree/use-checkbox-tree.ts
|
|
6
|
-
/**
|
|
7
|
-
* Returns whether a node should be checkable (i.e. clicking the
|
|
8
|
-
* checkbox should affect it).
|
|
9
|
-
*
|
|
10
|
-
* Skips:
|
|
11
|
-
* - explicitly disabled nodes (`isDisabled === true`)
|
|
12
|
-
* - explicitly disabled checkboxes (`isCheckboxDisabled === true`)
|
|
13
|
-
* - nodes that opted out via `isCheckable === false`
|
|
14
|
-
*/
|
|
15
|
-
function isNodeEligible(node) {
|
|
16
|
-
if (!node) return false;
|
|
17
|
-
if (node.isDisabled) return false;
|
|
18
|
-
if (node.isCheckboxDisabled) return false;
|
|
19
|
-
if (node.isCheckable === false) return false;
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Recursively walk a subtree bottom-up, deriving which nodes are fully
|
|
24
|
-
* checked vs half-checked. Mutates `checked` and `half` in place.
|
|
25
|
-
*/
|
|
26
|
-
function deriveCheckedState(node, index, checked, half) {
|
|
27
|
-
const childKeys = index.childrenOf.get(node.key) ?? [];
|
|
28
|
-
if (childKeys.length === 0) {
|
|
29
|
-
const eligible = isNodeEligible(node);
|
|
30
|
-
const isChecked = checked.has(node.key);
|
|
31
|
-
return {
|
|
32
|
-
allChecked: !eligible || isChecked,
|
|
33
|
-
anyChecked: isChecked,
|
|
34
|
-
anyEligible: eligible
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
let allChecked = true;
|
|
38
|
-
let anyChecked = false;
|
|
39
|
-
let anyEligible = false;
|
|
40
|
-
for (const childKey of childKeys) {
|
|
41
|
-
const child = index.byKey.get(childKey);
|
|
42
|
-
if (!child) continue;
|
|
43
|
-
const r = deriveCheckedState(child, index, checked, half);
|
|
44
|
-
if (r.anyEligible) anyEligible = true;
|
|
45
|
-
if (!r.allChecked) allChecked = false;
|
|
46
|
-
if (r.anyChecked) anyChecked = true;
|
|
47
|
-
}
|
|
48
|
-
const eligible = isNodeEligible(node);
|
|
49
|
-
if (!anyEligible) half.delete(node.key);
|
|
50
|
-
else if (allChecked) {
|
|
51
|
-
checked.add(node.key);
|
|
52
|
-
half.delete(node.key);
|
|
53
|
-
} else if (anyChecked) {
|
|
54
|
-
checked.delete(node.key);
|
|
55
|
-
half.add(node.key);
|
|
56
|
-
} else {
|
|
57
|
-
checked.delete(node.key);
|
|
58
|
-
half.delete(node.key);
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
allChecked: !eligible ? allChecked : checked.has(node.key) && allChecked,
|
|
62
|
-
anyChecked: anyChecked || checked.has(node.key),
|
|
63
|
-
anyEligible: anyEligible || eligible
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
7
|
function normalizeControlledChecked(controlled) {
|
|
67
8
|
if (controlled == null) return null;
|
|
68
9
|
if (Array.isArray(controlled)) return {
|
|
@@ -74,19 +15,7 @@ function normalizeControlledChecked(controlled) {
|
|
|
74
15
|
halfChecked: new Set(controlled.halfChecked ?? [])
|
|
75
16
|
};
|
|
76
17
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Derive `{ checked, halfChecked }` from the source-of-truth `checked` set
|
|
79
|
-
* by walking the tree bottom-up:
|
|
80
|
-
*
|
|
81
|
-
* - A parent is considered fully checked iff every eligible descendant
|
|
82
|
-
* leaf is checked.
|
|
83
|
-
* - A parent is half-checked iff at least one eligible descendant is
|
|
84
|
-
* checked or half-checked, but not all.
|
|
85
|
-
*
|
|
86
|
-
* Ineligible nodes (disabled / opt-out) are ignored when computing the
|
|
87
|
-
* parent's state — they neither force a parent into the unchecked nor
|
|
88
|
-
* half state.
|
|
89
|
-
*/
|
|
18
|
+
/** Resolve the rendered sets from the source-of-truth `checked` set. */
|
|
90
19
|
function resolveCheckedSets({ isCheckable, sourceChecked, ownHalfChecked, treeData, index }) {
|
|
91
20
|
if (!isCheckable) return {
|
|
92
21
|
checkedSet: /* @__PURE__ */ new Set(),
|
|
@@ -96,12 +25,10 @@ function resolveCheckedSets({ isCheckable, sourceChecked, ownHalfChecked, treeDa
|
|
|
96
25
|
checkedSet: new Set(sourceChecked),
|
|
97
26
|
halfCheckedSet: new Set(ownHalfChecked)
|
|
98
27
|
};
|
|
99
|
-
const checked =
|
|
100
|
-
const half = /* @__PURE__ */ new Set();
|
|
101
|
-
for (const root of treeData) deriveCheckedState(root, index, checked, half);
|
|
28
|
+
const { checked, halfChecked } = deriveCheckedSets(treeData, index, sourceChecked);
|
|
102
29
|
return {
|
|
103
30
|
checkedSet: checked,
|
|
104
|
-
halfCheckedSet:
|
|
31
|
+
halfCheckedSet: halfChecked
|
|
105
32
|
};
|
|
106
33
|
}
|
|
107
34
|
/**
|
|
@@ -112,8 +39,9 @@ function resolveCheckedSets({ isCheckable, sourceChecked, ownHalfChecked, treeDa
|
|
|
112
39
|
* indeterminate keys themselves.
|
|
113
40
|
* - When the consumer passes `checkedKeys` as `{ checked, halfChecked }`,
|
|
114
41
|
* we keep the wire shape on the way out — same as AntD.
|
|
115
|
-
* - Toggling a node propagates *down*
|
|
116
|
-
*
|
|
42
|
+
* - Toggling a node propagates *down* through its subtree, past locked
|
|
43
|
+
* nodes to the eligible ones below them, and ancestors are then
|
|
44
|
+
* recomputed *up* by the derive.
|
|
117
45
|
*/
|
|
118
46
|
function useCheckboxTree(opts) {
|
|
119
47
|
const $ = c(14);
|
|
@@ -139,52 +67,18 @@ function useCheckboxTree(opts) {
|
|
|
139
67
|
if ($[2] !== checkedSet || $[3] !== index || $[4] !== isControlled || $[5] !== onCheck || $[6] !== setUncontrolledChecked || $[7] !== treeData || $[8] !== wantsObjectShape) {
|
|
140
68
|
t1 = (key) => {
|
|
141
69
|
const node = index.byKey.get(key);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
if (!isNodeEligible(n)) return;
|
|
147
|
-
if (value) next.add(n.key);
|
|
148
|
-
else next.delete(n.key);
|
|
149
|
-
const childKeys = index.childrenOf.get(n.key) ?? [];
|
|
150
|
-
for (const ck of childKeys) {
|
|
151
|
-
const child = index.byKey.get(ck);
|
|
152
|
-
if (child) apply(child, value);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
apply(node, willCheck);
|
|
156
|
-
let parentKey = index.parentOf.get(key);
|
|
157
|
-
while (parentKey) {
|
|
158
|
-
const parent = index.byKey.get(parentKey);
|
|
159
|
-
if (!parent) break;
|
|
160
|
-
const childKeys_0 = index.childrenOf.get(parentKey) ?? [];
|
|
161
|
-
let allEligibleChecked = true;
|
|
162
|
-
let anyEligible = false;
|
|
163
|
-
for (const ck_0 of childKeys_0) {
|
|
164
|
-
const child_0 = index.byKey.get(ck_0);
|
|
165
|
-
if (!child_0) continue;
|
|
166
|
-
if (!isNodeEligible(child_0)) continue;
|
|
167
|
-
anyEligible = true;
|
|
168
|
-
if (!next.has(ck_0)) {
|
|
169
|
-
allEligibleChecked = false;
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (anyEligible && allEligibleChecked && isNodeEligible(parent)) next.add(parentKey);
|
|
174
|
-
else next.delete(parentKey);
|
|
175
|
-
parentKey = index.parentOf.get(parentKey);
|
|
176
|
-
}
|
|
177
|
-
if (!isControlled) setUncontrolledChecked(next);
|
|
70
|
+
const next = toggleCheckedKey(index, checkedSet, key);
|
|
71
|
+
if (!node || !next) return;
|
|
72
|
+
const { checked: finalChecked, halfChecked: finalHalf } = deriveCheckedSets(treeData, index, next);
|
|
73
|
+
if (!isControlled) setUncontrolledChecked(finalChecked);
|
|
178
74
|
if (onCheck) {
|
|
179
|
-
const finalChecked = new Set(next);
|
|
180
|
-
const finalHalf = /* @__PURE__ */ new Set();
|
|
181
|
-
for (const root of treeData) deriveCheckedState(root, index, finalChecked, finalHalf);
|
|
182
75
|
const checkedArr = Array.from(finalChecked);
|
|
183
76
|
const halfArr = Array.from(finalHalf);
|
|
77
|
+
const checkedNodes = checkedArr.map((k) => index.byKey.get(k)).filter(_temp);
|
|
184
78
|
const info = {
|
|
185
|
-
checked:
|
|
79
|
+
checked: next.has(key),
|
|
186
80
|
node,
|
|
187
|
-
checkedNodes
|
|
81
|
+
checkedNodes,
|
|
188
82
|
halfCheckedKeys: halfArr
|
|
189
83
|
};
|
|
190
84
|
if (wantsObjectShape) onCheck({
|
|
@@ -218,8 +112,8 @@ function useCheckboxTree(opts) {
|
|
|
218
112
|
} else t2 = $[13];
|
|
219
113
|
return t2;
|
|
220
114
|
}
|
|
221
|
-
function _temp(
|
|
222
|
-
return !!
|
|
115
|
+
function _temp(n) {
|
|
116
|
+
return !!n;
|
|
223
117
|
}
|
|
224
118
|
//#endregion
|
|
225
119
|
export { useCheckboxTree };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-checkbox-tree.js","names":["useState","useEvent","Key","TreeIndex","CubeTreeNodeData","TreeOnCheckInfo","UseCheckboxTreeOptions","treeData","index","isCheckable","defaultCheckedKeys","checkedKeys","checked","halfChecked","onCheck","info","CheckboxTree","checkedSet","Set","halfCheckedSet","toggle","key","isNodeEligible","node","isDisabled","isCheckboxDisabled","deriveCheckedState","half","allChecked","anyChecked","anyEligible","childKeys","childrenOf","get","length","eligible","isChecked","has","childKey","child","byKey","r","delete","add","normalizeControlledChecked","controlled","Array","isArray","resolveCheckedSets","sourceChecked","ownHalfChecked","Pick","root","useCheckboxTree","opts","$","_c","isControlled","wantsObjectShape","t0","uncontrolledChecked","setUncontrolledChecked","t1","isCurrentlyChecked","willCheck","next","apply","n","value","ck","parentKey","parentOf","parent","childKeys_0","allEligibleChecked","ck_0","child_0","finalChecked","finalHalf","checkedArr","from","halfArr","checkedNodes","map","k","filter","_temp","halfCheckedKeys","t2","n_0","_c"],"sources":["../../../../src/components/content/Tree/use-checkbox-tree.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeIndex } from './tree-index';\nimport type { CubeTreeNodeData, TreeOnCheckInfo } from './types';\n\nexport interface UseCheckboxTreeOptions {\n treeData: CubeTreeNodeData[];\n /**\n * Pre-built tree index, shared with `Tree.tsx` so that `treeData`\n * is walked exactly once per change rather than once per consumer.\n */\n index: TreeIndex;\n isCheckable: boolean;\n defaultCheckedKeys?: string[];\n /** Either an array (AntD's default) or `{ checked, halfChecked }`. */\n checkedKeys?: string[] | { checked: string[]; halfChecked?: string[] };\n onCheck?: (\n checked: Key[] | { checked: Key[]; halfChecked: Key[] },\n info: TreeOnCheckInfo,\n ) => void;\n}\n\nexport interface CheckboxTree {\n /** Set of keys that are fully checked. */\n checkedSet: Set<string>;\n /** Set of keys that are in the indeterminate (half-checked) state. */\n halfCheckedSet: Set<string>;\n /** Toggle a key, propagating to descendants and updating ancestors. */\n toggle: (key: string) => void;\n}\n\n/**\n * Returns whether a node should be checkable (i.e. clicking the\n * checkbox should affect it).\n *\n * Skips:\n * - explicitly disabled nodes (`isDisabled === true`)\n * - explicitly disabled checkboxes (`isCheckboxDisabled === true`)\n * - nodes that opted out via `isCheckable === false`\n */\nfunction isNodeEligible(node: CubeTreeNodeData | undefined): boolean {\n if (!node) return false;\n if (node.isDisabled) return false;\n if (node.isCheckboxDisabled) return false;\n if (node.isCheckable === false) return false;\n return true;\n}\n\n/**\n * Recursively walk a subtree bottom-up, deriving which nodes are fully\n * checked vs half-checked. Mutates `checked` and `half` in place.\n */\nfunction deriveCheckedState(\n node: CubeTreeNodeData,\n index: TreeIndex,\n checked: Set<string>,\n half: Set<string>,\n): { allChecked: boolean; anyChecked: boolean; anyEligible: boolean } {\n const childKeys = index.childrenOf.get(node.key) ?? [];\n\n if (childKeys.length === 0) {\n const eligible = isNodeEligible(node);\n const isChecked = checked.has(node.key);\n return {\n allChecked: !eligible || isChecked,\n anyChecked: isChecked,\n anyEligible: eligible,\n };\n }\n\n let allChecked = true;\n let anyChecked = false;\n let anyEligible = false;\n\n for (const childKey of childKeys) {\n const child = index.byKey.get(childKey);\n if (!child) continue;\n const r = deriveCheckedState(child, index, checked, half);\n if (r.anyEligible) anyEligible = true;\n if (!r.allChecked) allChecked = false;\n if (r.anyChecked) anyChecked = true;\n }\n\n const eligible = isNodeEligible(node);\n\n if (!anyEligible) {\n // No eligible descendants — this node behaves like a leaf for\n // checking purposes: its own checked state stands as-is.\n half.delete(node.key);\n } else if (allChecked) {\n checked.add(node.key);\n half.delete(node.key);\n } else if (anyChecked) {\n checked.delete(node.key);\n half.add(node.key);\n } else {\n checked.delete(node.key);\n half.delete(node.key);\n }\n\n return {\n allChecked: !eligible ? allChecked : checked.has(node.key) && allChecked,\n anyChecked: anyChecked || checked.has(node.key),\n anyEligible: anyEligible || eligible,\n };\n}\n\nfunction normalizeControlledChecked(\n controlled: UseCheckboxTreeOptions['checkedKeys'],\n): { checked: Set<string>; halfChecked: Set<string> } | null {\n if (controlled == null) return null;\n if (Array.isArray(controlled)) {\n return {\n checked: new Set(controlled),\n halfChecked: new Set(),\n };\n }\n return {\n checked: new Set(controlled.checked ?? []),\n halfChecked: new Set(controlled.halfChecked ?? []),\n };\n}\n\n/**\n * Derive `{ checked, halfChecked }` from the source-of-truth `checked` set\n * by walking the tree bottom-up:\n *\n * - A parent is considered fully checked iff every eligible descendant\n * leaf is checked.\n * - A parent is half-checked iff at least one eligible descendant is\n * checked or half-checked, but not all.\n *\n * Ineligible nodes (disabled / opt-out) are ignored when computing the\n * parent's state — they neither force a parent into the unchecked nor\n * half state.\n */\nfunction resolveCheckedSets({\n isCheckable,\n sourceChecked,\n ownHalfChecked,\n treeData,\n index,\n}: {\n isCheckable: boolean;\n sourceChecked: Set<string>;\n /**\n * If the consumer passed the object shape (`{ checked, halfChecked }`),\n * they own the half-checked set and we use it as-is. With the array\n * shape we still need to derive `halfChecked` ourselves — the consumer\n * only provides `checked`, so parents should still light up\n * indeterminate when only some descendants are checked.\n */\n ownHalfChecked: Set<string> | null;\n treeData: CubeTreeNodeData[];\n index: TreeIndex;\n}): Pick<CheckboxTree, 'checkedSet' | 'halfCheckedSet'> {\n if (!isCheckable) {\n return {\n checkedSet: new Set<string>(),\n halfCheckedSet: new Set<string>(),\n };\n }\n\n if (ownHalfChecked) {\n return {\n checkedSet: new Set(sourceChecked),\n halfCheckedSet: new Set(ownHalfChecked),\n };\n }\n\n const checked = new Set(sourceChecked);\n const half = new Set<string>();\n\n for (const root of treeData) {\n deriveCheckedState(root, index, checked, half);\n }\n\n return { checkedSet: checked, halfCheckedSet: half };\n}\n\n/**\n * Local hook implementing AntD-style cascading checkbox state.\n *\n * - `checked` and `halfChecked` are always derived together from a single\n * `checked` set (the source of truth) so callers don't need to track\n * indeterminate keys themselves.\n * - When the consumer passes `checkedKeys` as `{ checked, halfChecked }`,\n * we keep the wire shape on the way out — same as AntD.\n * - Toggling a node propagates *down* (skipping ineligible descendants)\n * and recomputes ancestors *up* in a single pass.\n */\nexport function useCheckboxTree(opts: UseCheckboxTreeOptions): CheckboxTree {\n const {\n treeData,\n index,\n isCheckable,\n defaultCheckedKeys,\n checkedKeys,\n onCheck,\n } = opts;\n\n /** Normalize the controlled `checkedKeys` prop into `Set` instances. */\n const controlled = normalizeControlledChecked(checkedKeys);\n const isControlled = controlled != null;\n const wantsObjectShape = checkedKeys != null && !Array.isArray(checkedKeys);\n\n const [uncontrolledChecked, setUncontrolledChecked] = useState<Set<string>>(\n () => new Set(defaultCheckedKeys ?? []),\n );\n\n const sourceChecked = isControlled\n ? controlled!.checked\n : uncontrolledChecked;\n\n const { checkedSet, halfCheckedSet } = resolveCheckedSets({\n isCheckable,\n sourceChecked,\n ownHalfChecked:\n isControlled && wantsObjectShape ? controlled!.halfChecked : null,\n treeData,\n index,\n });\n\n const toggle = useEvent((key: string) => {\n const node = index.byKey.get(key);\n if (!node || !isNodeEligible(node)) return;\n\n const isCurrentlyChecked = checkedSet.has(key);\n const willCheck = !isCurrentlyChecked;\n\n /**\n * Seed from the derived `checkedSet`, not `sourceChecked`. The\n * source-of-truth set may only contain leaf keys (e.g. when\n * `defaultCheckedKeys` is leaf-only, or a consumer in controlled-array\n * mode passes only leaves). The ancestor walk below decides whether\n * each ancestor is fully checked by inspecting its direct children\n * via `next.has(ck)` — those children may themselves be inner nodes\n * whose \"fully checked\" status only exists in the derived set. Seeding\n * from `sourceChecked` causes a sibling subtree's parent key to be\n * missing from `next`, which would incorrectly drop the grandparent\n * from the stored state (the next render's derivation self-corrects,\n * but the intermediate stored value violates the cascade invariant).\n */\n const next = new Set(checkedSet);\n\n const apply = (n: CubeTreeNodeData, value: boolean) => {\n if (!isNodeEligible(n)) return;\n if (value) next.add(n.key);\n else next.delete(n.key);\n const childKeys = index.childrenOf.get(n.key) ?? [];\n for (const ck of childKeys) {\n const child = index.byKey.get(ck);\n if (child) apply(child, value);\n }\n };\n\n apply(node, willCheck);\n\n /**\n * After the cascade, recompute ancestors so the public `checked` set\n * doesn't carry parent keys that should be half-checked instead.\n * Ancestors of `key` get visited bottom-up here.\n */\n let parentKey = index.parentOf.get(key);\n while (parentKey) {\n const parent = index.byKey.get(parentKey);\n if (!parent) break;\n const childKeys = index.childrenOf.get(parentKey) ?? [];\n let allEligibleChecked = true;\n let anyEligible = false;\n for (const ck of childKeys) {\n const child = index.byKey.get(ck);\n if (!child) continue;\n if (!isNodeEligible(child)) continue;\n anyEligible = true;\n if (!next.has(ck)) {\n allEligibleChecked = false;\n break;\n }\n }\n if (anyEligible && allEligibleChecked && isNodeEligible(parent)) {\n next.add(parentKey);\n } else {\n next.delete(parentKey);\n }\n parentKey = index.parentOf.get(parentKey);\n }\n\n if (!isControlled) {\n setUncontrolledChecked(next);\n }\n\n if (onCheck) {\n const finalChecked = new Set(next);\n const finalHalf = new Set<string>();\n\n for (const root of treeData) {\n deriveCheckedState(root, index, finalChecked, finalHalf);\n }\n\n const checkedArr = Array.from(finalChecked);\n const halfArr = Array.from(finalHalf);\n const checkedNodes: CubeTreeNodeData[] = checkedArr\n .map((k) => index.byKey.get(k))\n .filter((n): n is CubeTreeNodeData => !!n);\n\n const info: TreeOnCheckInfo = {\n checked: willCheck,\n node,\n checkedNodes,\n halfCheckedKeys: halfArr,\n };\n\n if (wantsObjectShape) {\n onCheck({ checked: checkedArr, halfChecked: halfArr }, info);\n } else {\n onCheck(checkedArr, info);\n }\n }\n });\n\n return { checkedSet, halfCheckedSet, toggle };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-checkbox-tree.js","names":["useState","useEvent","deriveCheckedSets","toggleCheckedKey","Key","TreeIndex","CubeTreeNodeData","TreeOnCheckInfo","UseCheckboxTreeOptions","treeData","index","isCheckable","defaultCheckedKeys","checkedKeys","checked","halfChecked","onCheck","info","CheckboxTree","checkedSet","Set","halfCheckedSet","toggle","key","normalizeControlledChecked","controlled","Array","isArray","resolveCheckedSets","sourceChecked","ownHalfChecked","Pick","useCheckboxTree","opts","$","_c","isControlled","wantsObjectShape","t0","uncontrolledChecked","setUncontrolledChecked","t1","node","byKey","get","next","finalChecked","finalHalf","checkedArr","from","halfArr","checkedNodes","map","k","filter","_temp","has","halfCheckedKeys","t2","n","_c"],"sources":["../../../../src/components/content/Tree/use-checkbox-tree.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport { deriveCheckedSets, toggleCheckedKey } from './checked-keys';\n\nimport type { Key } from '@react-types/shared';\nimport type { TreeIndex } from './tree-index';\nimport type { CubeTreeNodeData, TreeOnCheckInfo } from './types';\n\nexport interface UseCheckboxTreeOptions {\n treeData: CubeTreeNodeData[];\n /**\n * Pre-built tree index, shared with `Tree.tsx` so that `treeData`\n * is walked exactly once per change rather than once per consumer.\n */\n index: TreeIndex;\n isCheckable: boolean;\n defaultCheckedKeys?: string[];\n /** Either an array (AntD's default) or `{ checked, halfChecked }`. */\n checkedKeys?: string[] | { checked: string[]; halfChecked?: string[] };\n onCheck?: (\n checked: Key[] | { checked: Key[]; halfChecked: Key[] },\n info: TreeOnCheckInfo,\n ) => void;\n}\n\nexport interface CheckboxTree {\n /** Set of keys that are fully checked. */\n checkedSet: Set<string>;\n /** Set of keys that are in the indeterminate (half-checked) state. */\n halfCheckedSet: Set<string>;\n /** Toggle a key, propagating to descendants and updating ancestors. */\n toggle: (key: string) => void;\n}\n\nfunction normalizeControlledChecked(\n controlled: UseCheckboxTreeOptions['checkedKeys'],\n): { checked: Set<string>; halfChecked: Set<string> } | null {\n if (controlled == null) return null;\n if (Array.isArray(controlled)) {\n return {\n checked: new Set(controlled),\n halfChecked: new Set(),\n };\n }\n return {\n checked: new Set(controlled.checked ?? []),\n halfChecked: new Set(controlled.halfChecked ?? []),\n };\n}\n\n/** Resolve the rendered sets from the source-of-truth `checked` set. */\nfunction resolveCheckedSets({\n isCheckable,\n sourceChecked,\n ownHalfChecked,\n treeData,\n index,\n}: {\n isCheckable: boolean;\n sourceChecked: Set<string>;\n /**\n * If the consumer passed the object shape (`{ checked, halfChecked }`),\n * they own the half-checked set and we use it as-is. With the array\n * shape we still need to derive `halfChecked` ourselves — the consumer\n * only provides `checked`, so parents should still light up\n * indeterminate when only some descendants are checked.\n */\n ownHalfChecked: Set<string> | null;\n treeData: CubeTreeNodeData[];\n index: TreeIndex;\n}): Pick<CheckboxTree, 'checkedSet' | 'halfCheckedSet'> {\n if (!isCheckable) {\n return {\n checkedSet: new Set<string>(),\n halfCheckedSet: new Set<string>(),\n };\n }\n\n if (ownHalfChecked) {\n return {\n checkedSet: new Set(sourceChecked),\n halfCheckedSet: new Set(ownHalfChecked),\n };\n }\n\n const { checked, halfChecked } = deriveCheckedSets(\n treeData,\n index,\n sourceChecked,\n );\n\n return { checkedSet: checked, halfCheckedSet: halfChecked };\n}\n\n/**\n * Local hook implementing AntD-style cascading checkbox state.\n *\n * - `checked` and `halfChecked` are always derived together from a single\n * `checked` set (the source of truth) so callers don't need to track\n * indeterminate keys themselves.\n * - When the consumer passes `checkedKeys` as `{ checked, halfChecked }`,\n * we keep the wire shape on the way out — same as AntD.\n * - Toggling a node propagates *down* through its subtree, past locked\n * nodes to the eligible ones below them, and ancestors are then\n * recomputed *up* by the derive.\n */\nexport function useCheckboxTree(opts: UseCheckboxTreeOptions): CheckboxTree {\n const {\n treeData,\n index,\n isCheckable,\n defaultCheckedKeys,\n checkedKeys,\n onCheck,\n } = opts;\n\n /** Normalize the controlled `checkedKeys` prop into `Set` instances. */\n const controlled = normalizeControlledChecked(checkedKeys);\n const isControlled = controlled != null;\n const wantsObjectShape = checkedKeys != null && !Array.isArray(checkedKeys);\n\n const [uncontrolledChecked, setUncontrolledChecked] = useState<Set<string>>(\n () => new Set(defaultCheckedKeys ?? []),\n );\n\n const sourceChecked = isControlled\n ? controlled!.checked\n : uncontrolledChecked;\n\n const { checkedSet, halfCheckedSet } = resolveCheckedSets({\n isCheckable,\n sourceChecked,\n ownHalfChecked:\n isControlled && wantsObjectShape ? controlled!.halfChecked : null,\n treeData,\n index,\n });\n\n const toggle = useEvent((key: string) => {\n const node = index.byKey.get(key);\n const next = toggleCheckedKey(index, checkedSet, key);\n if (!node || !next) return;\n\n const { checked: finalChecked, halfChecked: finalHalf } = deriveCheckedSets(\n treeData,\n index,\n next,\n );\n\n // Store the derived set, as a controlled consumer stores `onCheck`'s\n // keys, so a parent a check completed still covers children that load\n // later.\n if (!isControlled) {\n setUncontrolledChecked(finalChecked);\n }\n\n if (onCheck) {\n const checkedArr = Array.from(finalChecked);\n const halfArr = Array.from(finalHalf);\n const checkedNodes: CubeTreeNodeData[] = checkedArr\n .map((k) => index.byKey.get(k))\n .filter((n): n is CubeTreeNodeData => !!n);\n\n const info: TreeOnCheckInfo = {\n checked: next.has(key),\n node,\n checkedNodes,\n halfCheckedKeys: halfArr,\n };\n\n if (wantsObjectShape) {\n onCheck({ checked: checkedArr, halfChecked: halfArr }, info);\n } else {\n onCheck(checkedArr, info);\n }\n }\n });\n\n return { checkedSet, halfCheckedSet, toggle };\n}\n"],"mappings":";;;;;;AAoCA,SAASwB,2BACPC,YAC2D;CAC3D,IAAIA,cAAc,MAAM,OAAO;CAC/B,IAAIC,MAAMC,QAAQF,UAAU,GAC1B,OAAO;EACLX,SAAS,IAAIM,IAAIK,UAAU;EAC3BV,6BAAa,IAAIK,IAAI;CACvB;CAEF,OAAO;EACLN,SAAS,IAAIM,IAAIK,WAAWX,WAAW,CAAA,CAAE;EACzCC,aAAa,IAAIK,IAAIK,WAAWV,eAAe,CAAA,CAAE;CACnD;AACF;;AAGA,SAASa,mBAAmB,EAC1BjB,aACAkB,eACAC,gBACArB,UACAC,SAcsD;CACtD,IAAI,CAACC,aACH,OAAO;EACLQ,4BAAY,IAAIC,IAAY;EAC5BC,gCAAgB,IAAID,IAAY;CAClC;CAGF,IAAIU,gBACF,OAAO;EACLX,YAAY,IAAIC,IAAIS,aAAa;EACjCR,gBAAgB,IAAID,IAAIU,cAAc;CACxC;CAGF,MAAM,EAAEhB,SAASC,gBAAgBb,kBAC/BO,UACAC,OACAmB,aACF;CAEA,OAAO;EAAEV,YAAYL;EAASO,gBAAgBN;CAAY;AAC5D;;;;;;;;;;;;;AAcA,SAAOiB,gBAAAC,MAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAA1B,UAAAC,OAAAC,aAAAC,oBAAAC,aAAAG,YAOIiB;CAGJ,MAAAR,aAAmBD,2BAA2BX,WAAW;CACzD,MAAAuB,eAAqBX,cAAc;CACnC,MAAAY,mBAAyBxB,eAAe,QAAf,CAAwBa,MAAKC,QAASd,WAAW;CAAE,IAAAyB;CAAA,IAAAJ,EAAA,OAAAtB,oBAAA;EAG1E0B,WAAM,IAAIlB,IAAIR,sBAAA,CAAA,CAAwB;EAACsB,EAAA,KAAAtB;EAAAsB,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CADzC,MAAA,CAAAK,qBAAAC,0BAAsDxC,SACpDsC,EACF;CAMA,MAAA,EAAAnB,YAAAE,mBAAuCO,mBAAmB;EAAAjB;EAAAkB,eAJpCO,eAClBX,WAAUX,UADQyB;EAIoCT,gBAItDM,gBAAAC,mBAAmCZ,WAAUV,cAA7C;EAAiEN;EAAAC;CAGrE,CAAC;CAAE,IAAA+B;CAAA,IAAAP,EAAA,OAAAf,cAAAe,EAAA,OAAAxB,SAAAwB,EAAA,OAAAE,gBAAAF,EAAA,OAAAlB,WAAAkB,EAAA,OAAAM,0BAAAN,EAAA,OAAAzB,YAAAyB,EAAA,OAAAG,kBAAA;EAEqBI,MAAAlB,QAAA;GACtB,MAAAmB,OAAahC,MAAKiC,MAAMC,IAAKrB,GAAG;GAChC,MAAAsB,OAAa1C,iBAAiBO,OAAOS,YAAYI,GAAG;GACpD,IAAI,CAACmB,QAAD,CAAUG,MAAI;GAElB,MAAA,EAAA/B,SAAAgC,cAAA/B,aAAAgC,cAA0D7C,kBACxDO,UACAC,OACAmC,IACF;GAKA,IAAI,CAACT,cACHI,uBAAuBM,YAAY;GAGrC,IAAI9B,SAAO;IACT,MAAAgC,aAAmBtB,MAAKuB,KAAMH,YAAY;IAC1C,MAAAI,UAAgBxB,MAAKuB,KAAMF,SAAS;IACpC,MAAAI,eAAyCH,WAAUI,KAC5CC,MAAO3C,MAAKiC,MAAMC,IAAKS,CAAC,CAAC,CAAC,CAAAC,OACvBC,KAAiC;IAE3C,MAAAtC,OAA8B;KAAAH,SACnB+B,KAAIW,IAAKjC,GAAG;KAACmB;KAAAS;KAAAM,iBAGLP;IACnB;IAEA,IAAIb,kBACFrB,QAAQ;KAAAF,SAAWkC;KAAUjC,aAAemC;IAAQ,GAAGjC,IAAI;SAE3DD,QAAQgC,YAAY/B,IAAI;GACzB;EACF;EACFiB,EAAA,KAAAf;EAAAe,EAAA,KAAAxB;EAAAwB,EAAA,KAAAE;EAAAF,EAAA,KAAAlB;EAAAkB,EAAA,KAAAM;EAAAN,EAAA,KAAAzB;EAAAyB,EAAA,KAAAG;EAAAH,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAtCD,MAAAZ,SAAerB,SAASwC,EAsCvB;CAAE,IAAAiB;CAAA,IAAAxB,EAAA,QAAAf,cAAAe,EAAA,QAAAb,kBAAAa,EAAA,QAAAZ,QAAA;EAEIoC,KAAA;GAAAvC;GAAAE;GAAAC;EAAqC;EAACY,EAAA,MAAAf;EAAAe,EAAA,MAAAb;EAAAa,EAAA,MAAAZ;EAAAY,EAAA,MAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,OAAtCwB;AAAsC;AAxExC,SAAAH,MAAAI,GAAA;CAAA,OAuDuC,CAAC,CAACA;AAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.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.203.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.203.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";
|