@cube-dev/ui-kit 0.0.0-canary-619b8e3 → 0.0.0-canary-7bfcbc3
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/_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 +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 +201 -201
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/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/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.d.ts +10 -10
- 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 +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 +2 -4
- package/dist/components/content/Item/Item.js +2 -2
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +15 -11
- package/dist/components/content/Layout/LayoutPanel.js.map +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 +1 -1
- package/dist/components/content/Tree/TreeNode.js +3 -3
- package/dist/components/content/Tree/TreeNode.js.map +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/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 +3 -3
- package/dist/components/data/TableBase/ColumnResizer.js.map +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 +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 +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-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 +154 -166
- package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-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/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +194 -160
- 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 +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +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 +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +3 -3
- 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 +17 -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 +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.js +3 -3
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +16 -16
- package/dist/components/fields/RadioGroup/Radio.js +92 -160
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +107 -145
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +71 -67
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +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 +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/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.d.ts +36 -0
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +57 -0
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js.map +1 -0
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +2 -2
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +2 -2
- 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/index.d.ts +2 -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.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/navigation/index.d.ts +1 -0
- 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 +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/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -83
- 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 -9
- package/dist/i18n/locales/en-US/uikit.js +1 -9
- package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -9
- package/dist/i18n/locales/es-ES/uikit.js +1 -9
- package/dist/i18n/locales/es-MX/uikit.js +1 -9
- package/dist/i18n/locales/fr-FR/uikit.js +1 -9
- package/dist/i18n/locales/it-IT/uikit.js +1 -9
- package/dist/i18n/locales/ja-JP/uikit.js +1 -9
- package/dist/i18n/locales/nb-NO/uikit.js +1 -9
- package/dist/i18n/locales/pt-BR/uikit.js +1 -9
- package/dist/i18n/locales/pt-PT/uikit.js +1 -9
- package/dist/i18n/locales/sv-SE/uikit.js +1 -9
- package/dist/i18n/locales/vi-VN/uikit.js +1 -9
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +3 -15
- package/dist/index.js +3 -11
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/escapePropagation.js +39 -0
- package/dist/utils/react/escapePropagation.js.map +1 -0
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/components/data/ItemTable.md +1 -1
- package/docs/components/fields/RadioGroup.md +4 -21
- package/docs/components/navigation/Tabs.md +8 -2
- package/package.json +1 -1
- package/dist/components/layout/Board/Board.d.ts +0 -253
- package/dist/components/layout/Board/Board.js +0 -771
- package/dist/components/layout/Board/Board.js.map +0 -1
- package/dist/components/layout/Board/BoardProvider.d.ts +0 -28
- package/dist/components/layout/Board/BoardProvider.js +0 -47
- package/dist/components/layout/Board/BoardProvider.js.map +0 -1
- package/dist/components/layout/Board/BoardResponsive.d.ts +0 -55
- package/dist/components/layout/Board/BoardResponsive.js +0 -101
- package/dist/components/layout/Board/BoardResponsive.js.map +0 -1
- package/dist/components/layout/Board/Widget.d.ts +0 -152
- package/dist/components/layout/Board/Widget.js +0 -76
- package/dist/components/layout/Board/Widget.js.map +0 -1
- package/dist/components/layout/Board/WidgetHost.js +0 -1065
- package/dist/components/layout/Board/WidgetHost.js.map +0 -1
- package/dist/components/layout/Board/board-context.d.ts +0 -43
- package/dist/components/layout/Board/board-context.js +0 -79
- package/dist/components/layout/Board/board-context.js.map +0 -1
- package/dist/components/layout/Board/board-store.d.ts +0 -4
- package/dist/components/layout/Board/board-store.js +0 -49
- package/dist/components/layout/Board/board-store.js.map +0 -1
- package/dist/components/layout/Board/grid-core/calculate.js +0 -90
- package/dist/components/layout/Board/grid-core/calculate.js.map +0 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +0 -254
- package/dist/components/layout/Board/grid-core/collision-modes.js.map +0 -1
- package/dist/components/layout/Board/grid-core/collision.js +0 -35
- package/dist/components/layout/Board/grid-core/collision.js.map +0 -1
- package/dist/components/layout/Board/grid-core/compactors.d.ts +0 -23
- package/dist/components/layout/Board/grid-core/compactors.js +0 -166
- package/dist/components/layout/Board/grid-core/compactors.js.map +0 -1
- package/dist/components/layout/Board/grid-core/constraints.d.ts +0 -35
- package/dist/components/layout/Board/grid-core/constraints.js +0 -155
- package/dist/components/layout/Board/grid-core/constraints.js.map +0 -1
- package/dist/components/layout/Board/grid-core/group-move.js +0 -317
- package/dist/components/layout/Board/grid-core/group-move.js.map +0 -1
- package/dist/components/layout/Board/grid-core/layout.js +0 -186
- package/dist/components/layout/Board/grid-core/layout.js.map +0 -1
- package/dist/components/layout/Board/grid-core/placement.d.ts +0 -58
- package/dist/components/layout/Board/grid-core/placement.js +0 -153
- package/dist/components/layout/Board/grid-core/placement.js.map +0 -1
- package/dist/components/layout/Board/grid-core/sort.js +0 -37
- package/dist/components/layout/Board/grid-core/sort.js.map +0 -1
- package/dist/components/layout/Board/grid-core/types.d.ts +0 -186
- package/dist/components/layout/Board/index.d.ts +0 -24
- package/dist/components/layout/Board/index.js +0 -20
- package/dist/components/layout/Board/index.js.map +0 -1
- package/dist/components/layout/Board/responsive-utils.d.ts +0 -13
- package/dist/components/layout/Board/responsive-utils.js +0 -55
- package/dist/components/layout/Board/responsive-utils.js.map +0 -1
- package/dist/components/layout/Board/use-board-layout.d.ts +0 -26
- package/dist/components/layout/Board/use-board-layout.js +0 -57
- package/dist/components/layout/Board/use-board-layout.js.map +0 -1
- package/dist/components/layout/Board/use-board-registry.js +0 -700
- package/dist/components/layout/Board/use-board-registry.js.map +0 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +0 -24
- package/dist/components/layout/Board/use-board-select-modifier-key.js.map +0 -1
- package/dist/components/layout/Board/use-board-selection.d.ts +0 -8
- package/dist/components/layout/Board/use-board-selection.js +0 -113
- package/dist/components/layout/Board/use-board-selection.js.map +0 -1
- package/dist/utils/react/overlayKeyPropagation.js +0 -46
- package/dist/utils/react/overlayKeyPropagation.js.map +0 -1
- package/docs/components/layout/Board.md +0 -473
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-table-columns.js","names":["useMemo","CubeResolvedColumn","CubeTableColumn","CubeTableColumnLayout","DEFAULT_MIN_WIDTH","freezeColumnWidths","layout","T","base","Record","columns","reduce","widths","column","isStructural","width","key","Math","round","readPath","row","path","undefined","includes","current","part","split","ValueColumn","Pick","getColumnValue","rowIndex","getValue","getColumnText","value","format","type","String","Date","toISOString","clamp","min","max","Number","POSITIVE_INFINITY","UseTableColumnsOptions","containerWidth","columnWidths","leadingColumns","trailingColumns","useTableColumns","t0","$","_c","isOverflowing","out","pinnedEndWidth","pinnedStartWidth","t1","visible","filter","_temp","ordered","_temp2","_temp3","_temp4","structuralKeys","Set","map","_temp5","specs","column_0","has","explicit","minWidth","fixed","maxWidth","flex","resolved","Map","fixedTotal","_temp6","flexSpecs","_temp7","minTotal","_temp8","spec","set","remaining","pool","length","totalFlex","_temp9","nextPool","consumed","spec_0","ideal","clamped","push","totalLeft","_temp0","spec_1","spec_2","spec_3","index","ariaColIndex","get","align","pinOffset","isPinEdge","column_1","pin","i","column_2","lastPinnedStart","_temp1","at","firstPinnedEnd","find","_temp10","every","_temp11","_temp12","totalWidth","t2","sum_3","c_5","sum","c","c_6","c_4","c_3","sum_2","s_3","s","sum_1","s_2","sum_0","s_1","s_0","c_2","c_1","c_0","isHidden"],"sources":["../../../../src/components/data/TableBase/use-table-columns.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n CubeResolvedColumn,\n CubeTableColumn,\n CubeTableColumnLayout,\n} from './types';\n\n/** @default when a column declares neither `width` nor `minWidth`. */\nexport const DEFAULT_MIN_WIDTH = 150;\n\n/**\n * Every column's current width, so a resize can change exactly one of them.\n *\n * A column with no explicit width is `flex: 1` and shares the leftover (see the\n * spec builder below). Making only the DRAGGED column fixed leaves every other\n * one in the flex pool, re-splitting a leftover that just changed — so one\n * divider moved all of them, including columns to the LEFT of the handle, which\n * cannot be what dragging a right edge means. Measured before this existed:\n * dragging column B by +8px took 3px off A, C and D each.\n *\n * Freezing first means a drag changes one width. Columns after it are pushed\n * along, which is what being after it means, and the table grows or shrinks\n * rather than the neighbours absorbing the difference.\n *\n * Structural columns are skipped — they are sized by the table, not the user.\n */\nexport function freezeColumnWidths<T>(\n layout: CubeTableColumnLayout<T> | null,\n base: Record<string, number>,\n): Record<string, number> {\n return (layout?.columns ?? []).reduce<Record<string, number>>(\n (widths, column) => {\n if (!column.isStructural && column.width != null) {\n widths[column.key] = Math.round(column.width);\n }\n\n return widths;\n },\n { ...base },\n );\n}\n\n/**\n * Reads `key` as a data path. A plain key is a single property lookup; dots\n * walk nested objects (`'owner.name'`). Anything richer belongs in `getValue`.\n */\nexport function readPath(row: any, path: string): unknown {\n if (row == null) return undefined;\n if (!path.includes('.')) return row[path];\n\n let current: any = row;\n\n for (const part of path.split('.')) {\n if (current == null) return undefined;\n current = current[part];\n }\n\n return current;\n}\n\n/** Only the value-pipeline members, so both raw and resolved columns fit. */\ntype ValueColumn<T> = Pick<CubeTableColumn<T>, 'key' | 'getValue' | 'format'>;\n\nexport function getColumnValue<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): unknown {\n return column.getValue\n ? column.getValue(row, rowIndex)\n : readPath(row, column.key);\n}\n\n/**\n * Display text for a cell — what client sort, client search and TSV copy all\n * operate on. Deliberately NOT the rendered output: `render` may return\n * arbitrary React, and stringifying that is how cloud's filter ended up\n * matching `\"[object Object]\"` against the query `\"object\"`.\n *\n * Returns `null` when the column cannot produce text, so callers can skip it\n * rather than coerce a non-primitive.\n */\nexport function getColumnText<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): string | null {\n const value = getColumnValue(column, row, rowIndex);\n\n if (column.format) return column.format(value, row, rowIndex);\n if (value == null) return '';\n\n const type = typeof value;\n\n if (type === 'string') return value as string;\n if (type === 'number' || type === 'boolean' || type === 'bigint') {\n return String(value);\n }\n if (value instanceof Date) return value.toISOString();\n\n return null;\n}\n\nfunction clamp(value: number, min: number, max: number | null): number {\n return Math.min(Math.max(value, min), max ?? Number.POSITIVE_INFINITY);\n}\n\nexport interface UseTableColumnsOptions<T> {\n columns: CubeTableColumn<T>[];\n /** Content-box width of the scroller, or `null` before the first measure. */\n containerWidth: number | null;\n /** User-resized widths, keyed by column key. Wins over `column.width`. */\n columnWidths?: Record<string, number>;\n /** Extra leading columns owned by the table (selection, drag handle). */\n leadingColumns?: CubeTableColumn<T>[];\n /** Extra trailing columns owned by the table (row menu). */\n trailingColumns?: CubeTableColumn<T>[];\n}\n\n/**\n * Normalizes the public column list into resolved leaves: visual order, ARIA\n * indices, pixel widths, and sticky offsets for pinned columns.\n *\n * Width resolution mirrors ag-grid's `fitGridWidth`: fixed columns take their\n * width, the remainder is split across flex columns by weight, and each result\n * is clamped to `[minWidth, maxWidth]`. Clamping perturbs the sum, so the\n * residual is redistributed across the still-unclamped columns until it\n * settles. When even the minimums do not fit, every column takes its minimum\n * and the table scrolls horizontally.\n */\nexport function useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n return useMemo(() => {\n const visible = [\n ...(leadingColumns ?? []),\n ...columns,\n ...(trailingColumns ?? []),\n ].filter((column) => !column.isHidden);\n\n // Pinned columns lead and trail regardless of their position in the source\n // array, so `aria-colindex` and DOM order agree and nothing needs CSS\n // `order:` to be reshuffled.\n const ordered = [\n ...visible.filter((c) => c.pin === 'start'),\n ...visible.filter((c) => !c.pin),\n ...visible.filter((c) => c.pin === 'end'),\n ];\n\n const structuralKeys = new Set(\n [...(leadingColumns ?? []), ...(trailingColumns ?? [])].map((c) => c.key),\n );\n\n const specs = ordered.map((column) => {\n const isStructural = structuralKeys.has(column.key);\n const explicit = columnWidths?.[column.key] ?? column.width;\n const minWidth =\n column.minWidth ??\n (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);\n\n return {\n column,\n isStructural,\n fixed: explicit ?? null,\n minWidth,\n maxWidth: column.maxWidth ?? null,\n flex: explicit != null ? null : column.flex ?? 1,\n };\n });\n\n const resolved = new Map<string, number>();\n let isOverflowing = false;\n\n if (containerWidth != null && containerWidth > 0) {\n const fixedTotal = specs.reduce((sum, s) => sum + (s.fixed ?? 0), 0);\n const flexSpecs = specs.filter((s) => s.fixed == null);\n const minTotal = specs.reduce(\n (sum, s) => sum + (s.fixed ?? s.minWidth),\n 0,\n );\n\n if (minTotal > containerWidth) {\n isOverflowing = true;\n for (const spec of specs) {\n resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);\n }\n } else {\n let remaining = containerWidth - fixedTotal;\n let pool = flexSpecs;\n\n // Each pass assigns proportional widths, freezes whatever hit a bound,\n // and re-splits the leftover among the rest.\n while (pool.length > 0) {\n const totalFlex = pool.reduce((sum, s) => sum + (s.flex ?? 1), 0);\n const nextPool: typeof pool = [];\n let consumed = 0;\n\n for (const spec of pool) {\n const ideal = (remaining * (spec.flex ?? 1)) / (totalFlex || 1);\n const clamped = clamp(ideal, spec.minWidth, spec.maxWidth);\n\n if (clamped !== ideal) {\n resolved.set(spec.column.key, clamped);\n consumed += clamped;\n } else {\n nextPool.push(spec);\n }\n }\n\n if (nextPool.length === pool.length) {\n // Nothing was clamped this pass — the proportional split stands.\n const totalLeft = nextPool.reduce(\n (sum, s) => sum + (s.flex ?? 1),\n 0,\n );\n for (const spec of nextPool) {\n resolved.set(\n spec.column.key,\n (remaining * (spec.flex ?? 1)) / (totalLeft || 1),\n );\n }\n break;\n }\n\n remaining -= consumed;\n pool = nextPool;\n }\n\n for (const spec of specs) {\n if (spec.fixed != null) resolved.set(spec.column.key, spec.fixed);\n }\n }\n }\n\n let pinnedStartWidth = 0;\n let pinnedEndWidth = 0;\n\n const out: CubeResolvedColumn<T>[] = specs.map((spec, index) => ({\n ...spec.column,\n index,\n ariaColIndex: index + 1,\n width: resolved.get(spec.column.key) ?? null,\n minWidth: spec.minWidth,\n maxWidth: spec.maxWidth,\n flex: spec.flex,\n align: spec.column.align ?? 'start',\n pinOffset: null,\n isPinEdge: false,\n isStructural: spec.isStructural,\n }));\n\n // Sticky offsets accumulate inwards from each edge.\n for (const column of out) {\n if (column.pin !== 'start') continue;\n column.pinOffset = pinnedStartWidth;\n pinnedStartWidth += column.width ?? column.minWidth;\n }\n\n for (let i = out.length - 1; i >= 0; i--) {\n const column = out[i];\n if (column.pin !== 'end') continue;\n column.pinOffset = pinnedEndWidth;\n pinnedEndWidth += column.width ?? column.minWidth;\n }\n\n const lastPinnedStart = out.filter((c) => c.pin === 'start').at(-1);\n const firstPinnedEnd = out.find((c) => c.pin === 'end');\n\n if (lastPinnedStart) lastPinnedStart.isPinEdge = true;\n if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;\n\n const totalWidth = out.every((c) => c.width != null)\n ? out.reduce((sum, c) => sum + (c.width ?? 0), 0)\n : null;\n\n return {\n columns: out,\n pinnedStartWidth,\n pinnedEndWidth,\n totalWidth,\n isOverflowing,\n };\n }, [columns, containerWidth, columnWidths, leadingColumns, trailingColumns]);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-table-columns.js","names":["useMemo","CubeResolvedColumn","CubeTableColumn","CubeTableColumnLayout","DEFAULT_MIN_WIDTH","freezeColumnWidths","layout","T","base","Record","columns","reduce","widths","column","isStructural","width","key","Math","round","readPath","row","path","undefined","includes","current","part","split","ValueColumn","Pick","getColumnValue","rowIndex","getValue","getColumnText","value","format","type","String","Date","toISOString","clamp","min","max","Number","POSITIVE_INFINITY","UseTableColumnsOptions","containerWidth","columnWidths","leadingColumns","trailingColumns","ColumnSpec","fixed","minWidth","maxWidth","flex","orderColumns","visible","filter","isHidden","c","pin","toColumnSpec","explicit","sumFlex","specs","sum","s","distributeFlexWidths","flexSpecs","available","resolved","Map","remaining","pool","length","totalFlex","nextPool","consumed","spec","ideal","clamped","set","push","totalLeft","resolveWidths","isOverflowing","isMeasured","minTotal","fixedTotal","applyPinOffsets","pinnedStartWidth","pinnedEndWidth","pinOffset","i","lastPinnedStart","at","firstPinnedEnd","find","isPinEdge","resolveColumnLayout","leading","trailing","structuralKeys","Set","map","has","out","index","ariaColIndex","get","align","totalWidth","every","useTableColumns","t0","$","_c","t1"],"sources":["../../../../src/components/data/TableBase/use-table-columns.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n CubeResolvedColumn,\n CubeTableColumn,\n CubeTableColumnLayout,\n} from './types';\n\n/** @default when a column declares neither `width` nor `minWidth`. */\nexport const DEFAULT_MIN_WIDTH = 150;\n\n/**\n * Every column's current width, so a resize can change exactly one of them.\n *\n * A column with no explicit width is `flex: 1` and shares the leftover (see the\n * spec builder below). Making only the DRAGGED column fixed leaves every other\n * one in the flex pool, re-splitting a leftover that just changed — so one\n * divider moved all of them, including columns to the LEFT of the handle, which\n * cannot be what dragging a right edge means. Measured before this existed:\n * dragging column B by +8px took 3px off A, C and D each.\n *\n * Freezing first means a drag changes one width. Columns after it are pushed\n * along, which is what being after it means, and the table grows or shrinks\n * rather than the neighbours absorbing the difference.\n *\n * Structural columns are skipped — they are sized by the table, not the user.\n */\nexport function freezeColumnWidths<T>(\n layout: CubeTableColumnLayout<T> | null,\n base: Record<string, number>,\n): Record<string, number> {\n return (layout?.columns ?? []).reduce<Record<string, number>>(\n (widths, column) => {\n if (!column.isStructural && column.width != null) {\n widths[column.key] = Math.round(column.width);\n }\n\n return widths;\n },\n { ...base },\n );\n}\n\n/**\n * Reads `key` as a data path. A plain key is a single property lookup; dots\n * walk nested objects (`'owner.name'`). Anything richer belongs in `getValue`.\n */\nexport function readPath(row: any, path: string): unknown {\n if (row == null) return undefined;\n if (!path.includes('.')) return row[path];\n\n let current: any = row;\n\n for (const part of path.split('.')) {\n if (current == null) return undefined;\n current = current[part];\n }\n\n return current;\n}\n\n/** Only the value-pipeline members, so both raw and resolved columns fit. */\ntype ValueColumn<T> = Pick<CubeTableColumn<T>, 'key' | 'getValue' | 'format'>;\n\nexport function getColumnValue<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): unknown {\n return column.getValue\n ? column.getValue(row, rowIndex)\n : readPath(row, column.key);\n}\n\n/**\n * Display text for a cell — what client sort, client search and TSV copy all\n * operate on. Deliberately NOT the rendered output: `render` may return\n * arbitrary React, and stringifying that is how cloud's filter ended up\n * matching `\"[object Object]\"` against the query `\"object\"`.\n *\n * Returns `null` when the column cannot produce text, so callers can skip it\n * rather than coerce a non-primitive.\n */\nexport function getColumnText<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): string | null {\n const value = getColumnValue(column, row, rowIndex);\n\n if (column.format) return column.format(value, row, rowIndex);\n if (value == null) return '';\n\n const type = typeof value;\n\n if (type === 'string') return value as string;\n if (type === 'number' || type === 'boolean' || type === 'bigint') {\n return String(value);\n }\n if (value instanceof Date) return value.toISOString();\n\n return null;\n}\n\nfunction clamp(value: number, min: number, max: number | null): number {\n return Math.min(Math.max(value, min), max ?? Number.POSITIVE_INFINITY);\n}\n\nexport interface UseTableColumnsOptions<T> {\n columns: CubeTableColumn<T>[];\n /** Content-box width of the scroller, or `null` before the first measure. */\n containerWidth: number | null;\n /** User-resized widths, keyed by column key. Wins over `column.width`. */\n columnWidths?: Record<string, number>;\n /** Extra leading columns owned by the table (selection, drag handle). */\n leadingColumns?: CubeTableColumn<T>[];\n /** Extra trailing columns owned by the table (row menu). */\n trailingColumns?: CubeTableColumn<T>[];\n}\n\n/** A column's sizing inputs, before the container is split between columns. */\ninterface ColumnSpec<T> {\n column: CubeTableColumn<T>;\n isStructural: boolean;\n fixed: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n}\n\n/**\n * The visible columns in visual order. Pinned columns lead and trail\n * regardless of their position in the source array, so `aria-colindex` and DOM\n * order agree and nothing needs CSS `order:` to be reshuffled.\n */\nfunction orderColumns<T>(columns: CubeTableColumn<T>[]): CubeTableColumn<T>[] {\n const visible = columns.filter((column) => !column.isHidden);\n\n return [\n ...visible.filter((c) => c.pin === 'start'),\n ...visible.filter((c) => !c.pin),\n ...visible.filter((c) => c.pin === 'end'),\n ];\n}\n\nfunction toColumnSpec<T>(\n column: CubeTableColumn<T>,\n isStructural: boolean,\n columnWidths: Record<string, number> | undefined,\n): ColumnSpec<T> {\n const explicit = columnWidths?.[column.key] ?? column.width;\n const minWidth =\n column.minWidth ??\n (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);\n\n return {\n column,\n isStructural,\n fixed: explicit ?? null,\n minWidth,\n maxWidth: column.maxWidth ?? null,\n flex: explicit != null ? null : column.flex ?? 1,\n };\n}\n\nfunction sumFlex<T>(specs: ColumnSpec<T>[]): number {\n return specs.reduce((sum, s) => sum + (s.flex ?? 1), 0);\n}\n\n/**\n * Splits `available` pixels across the flex columns by weight. Each pass\n * assigns proportional widths, freezes whatever hit a bound, and re-splits the\n * leftover among the rest.\n */\nfunction distributeFlexWidths<T>(\n flexSpecs: ColumnSpec<T>[],\n available: number,\n resolved: Map<string, number>,\n): void {\n let remaining = available;\n let pool = flexSpecs;\n\n while (pool.length > 0) {\n const totalFlex = sumFlex(pool);\n const nextPool: typeof pool = [];\n let consumed = 0;\n\n for (const spec of pool) {\n const ideal = (remaining * (spec.flex ?? 1)) / (totalFlex || 1);\n const clamped = clamp(ideal, spec.minWidth, spec.maxWidth);\n\n if (clamped !== ideal) {\n resolved.set(spec.column.key, clamped);\n consumed += clamped;\n } else {\n nextPool.push(spec);\n }\n }\n\n if (nextPool.length === pool.length) {\n // Nothing was clamped this pass — the proportional split stands.\n const totalLeft = sumFlex(nextPool);\n for (const spec of nextPool) {\n resolved.set(\n spec.column.key,\n (remaining * (spec.flex ?? 1)) / (totalLeft || 1),\n );\n }\n break;\n }\n\n remaining -= consumed;\n pool = nextPool;\n }\n}\n\n/**\n * Each column's pixel width, keyed by column key; none before the container is\n * measured. When even the minimums do not fit, every column takes its minimum\n * and the table overflows.\n */\nfunction resolveWidths<T>(\n specs: ColumnSpec<T>[],\n containerWidth: number | null,\n): { resolved: Map<string, number>; isOverflowing: boolean } {\n const resolved = new Map<string, number>();\n const isMeasured = containerWidth != null && containerWidth > 0;\n\n if (!isMeasured) return { resolved, isOverflowing: false };\n\n const minTotal = specs.reduce((sum, s) => sum + (s.fixed ?? s.minWidth), 0);\n\n if (minTotal > containerWidth) {\n for (const spec of specs) {\n resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);\n }\n\n return { resolved, isOverflowing: true };\n }\n\n const fixedTotal = specs.reduce((sum, s) => sum + (s.fixed ?? 0), 0);\n\n distributeFlexWidths(\n specs.filter((s) => s.fixed == null),\n containerWidth - fixedTotal,\n resolved,\n );\n\n for (const spec of specs) {\n if (spec.fixed != null) resolved.set(spec.column.key, spec.fixed);\n }\n\n return { resolved, isOverflowing: false };\n}\n\n/**\n * Sets each pinned column's sticky offset, which accumulates inwards from its\n * edge, and marks the innermost pinned column on each side. Returns the width\n * pinned to each side.\n */\nfunction applyPinOffsets<T>(columns: CubeResolvedColumn<T>[]): {\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n} {\n let pinnedStartWidth = 0;\n let pinnedEndWidth = 0;\n\n for (const column of columns) {\n if (column.pin !== 'start') continue;\n column.pinOffset = pinnedStartWidth;\n pinnedStartWidth += column.width ?? column.minWidth;\n }\n\n for (let i = columns.length - 1; i >= 0; i--) {\n const column = columns[i];\n if (column.pin !== 'end') continue;\n column.pinOffset = pinnedEndWidth;\n pinnedEndWidth += column.width ?? column.minWidth;\n }\n\n const lastPinnedStart = columns.filter((c) => c.pin === 'start').at(-1);\n const firstPinnedEnd = columns.find((c) => c.pin === 'end');\n\n if (lastPinnedStart) lastPinnedStart.isPinEdge = true;\n if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;\n\n return { pinnedStartWidth, pinnedEndWidth };\n}\n\nfunction resolveColumnLayout<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n const leading = leadingColumns ?? [];\n const trailing = trailingColumns ?? [];\n const structuralKeys = new Set([...leading, ...trailing].map((c) => c.key));\n const specs = orderColumns([...leading, ...columns, ...trailing]).map(\n (column) =>\n toColumnSpec(column, structuralKeys.has(column.key), columnWidths),\n );\n const { resolved, isOverflowing } = resolveWidths(specs, containerWidth);\n\n const out: CubeResolvedColumn<T>[] = specs.map((spec, index) => ({\n ...spec.column,\n index,\n ariaColIndex: index + 1,\n width: resolved.get(spec.column.key) ?? null,\n minWidth: spec.minWidth,\n maxWidth: spec.maxWidth,\n flex: spec.flex,\n align: spec.column.align ?? 'start',\n pinOffset: null,\n isPinEdge: false,\n isStructural: spec.isStructural,\n }));\n\n const { pinnedStartWidth, pinnedEndWidth } = applyPinOffsets(out);\n\n const totalWidth = out.every((c) => c.width != null)\n ? out.reduce((sum, c) => sum + (c.width ?? 0), 0)\n : null;\n\n return {\n columns: out,\n pinnedStartWidth,\n pinnedEndWidth,\n totalWidth,\n isOverflowing,\n };\n}\n\n/**\n * Normalizes the public column list into resolved leaves: visual order, ARIA\n * indices, pixel widths, and sticky offsets for pinned columns.\n *\n * Width resolution mirrors ag-grid's `fitGridWidth`: fixed columns take their\n * width, the remainder is split across flex columns by weight, and each result\n * is clamped to `[minWidth, maxWidth]`. Clamping perturbs the sum, so the\n * residual is redistributed across the still-unclamped columns until it\n * settles. When even the minimums do not fit, every column takes its minimum\n * and the table scrolls horizontally.\n */\nexport function useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n return useMemo(\n () =>\n resolveColumnLayout({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n }),\n [columns, containerWidth, columnWidths, leadingColumns, trailingColumns],\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { useDebouncedValue } from "../../../_internal/hooks/use-debounced-value.js";
|
|
3
3
|
import { getColumnText } from "./use-table-columns.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { RowCollection } from "./RowCollection.js";
|
|
4
4
|
import { useCallback, useMemo, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { getColumnText, getColumnValue } from "./use-table-columns.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { sortRows } from "./use-table-sort.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { useCallback, useRef, useState } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/data/TableBase/use-table-storage.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { refreshAutoTooltipsWithin } from "../../content/use-auto-tooltip.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.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.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { castNullableArrayValue } from "../../../utils/react/nullableValue.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | 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 { ItemActionProvider } from "../../actions/ItemActionContext.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { _Text } from "../../content/Text.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { parseColor, toHex } from "../color/color.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7bfcbc3 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
4
4
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -141,105 +141,157 @@ function _temp() {
|
|
|
141
141
|
return true;
|
|
142
142
|
}
|
|
143
143
|
function useComboBoxKeyboard(t0) {
|
|
144
|
-
const $ = c(
|
|
144
|
+
const $ = c(42);
|
|
145
145
|
const { isPopoverOpen, listStateRef, hasResults, allowsCustomValue, effectiveInputValue, isClearable, onSelectionChange, onClearValue, onOpenPopover, onClosePopover, inputRef, setIsFilterActive, onVirtualFocus, onKeyDown } = t0;
|
|
146
146
|
let t1;
|
|
147
|
-
if ($[0] !==
|
|
148
|
-
t1 =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
147
|
+
if ($[0] !== onVirtualFocus) {
|
|
148
|
+
t1 = (listState, key) => {
|
|
149
|
+
if (key == null) return;
|
|
150
|
+
markKeyboardFocus(listState);
|
|
151
|
+
listState.selectionManager.setFocusedKey(key);
|
|
152
|
+
onVirtualFocus(key);
|
|
153
|
+
};
|
|
154
|
+
$[0] = onVirtualFocus;
|
|
155
|
+
$[1] = t1;
|
|
156
|
+
} else t1 = $[1];
|
|
157
|
+
const focusOption = t1;
|
|
158
|
+
let t2;
|
|
159
|
+
if ($[2] !== focusOption || $[3] !== hasResults || $[4] !== isPopoverOpen || $[5] !== listStateRef || $[6] !== onOpenPopover || $[7] !== setIsFilterActive) {
|
|
160
|
+
t2 = (e) => {
|
|
161
|
+
e.preventDefault();
|
|
162
|
+
if (!isPopoverOpen) {
|
|
163
|
+
if (!hasResults) setIsFilterActive(false);
|
|
164
|
+
onOpenPopover();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const listState_0 = listStateRef.current;
|
|
168
|
+
if (listState_0) focusOption(listState_0, getNextVisibleKey(listState_0, e.key === "ArrowDown" ? 1 : -1));
|
|
169
|
+
};
|
|
170
|
+
$[2] = focusOption;
|
|
171
|
+
$[3] = hasResults;
|
|
172
|
+
$[4] = isPopoverOpen;
|
|
173
|
+
$[5] = listStateRef;
|
|
174
|
+
$[6] = onOpenPopover;
|
|
175
|
+
$[7] = setIsFilterActive;
|
|
176
|
+
$[8] = t2;
|
|
177
|
+
} else t2 = $[8];
|
|
178
|
+
const handleArrowKey = t2;
|
|
179
|
+
let t3;
|
|
180
|
+
if ($[9] !== allowsCustomValue || $[10] !== effectiveInputValue || $[11] !== isPopoverOpen || $[12] !== onSelectionChange) {
|
|
181
|
+
t3 = (e_0) => {
|
|
182
|
+
if (!allowsCustomValue) {
|
|
183
|
+
e_0.preventDefault();
|
|
184
|
+
onSelectionChange(null);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const value = effectiveInputValue.trim();
|
|
188
|
+
onSelectionChange(value ?? null);
|
|
189
|
+
if (isPopoverOpen || !value) e_0.preventDefault();
|
|
190
|
+
};
|
|
191
|
+
$[9] = allowsCustomValue;
|
|
192
|
+
$[10] = effectiveInputValue;
|
|
193
|
+
$[11] = isPopoverOpen;
|
|
194
|
+
$[12] = onSelectionChange;
|
|
195
|
+
$[13] = t3;
|
|
196
|
+
} else t3 = $[13];
|
|
197
|
+
const commitWithoutResults = t3;
|
|
198
|
+
let t4;
|
|
199
|
+
if ($[14] !== commitWithoutResults || $[15] !== effectiveInputValue || $[16] !== hasResults || $[17] !== inputRef || $[18] !== isPopoverOpen || $[19] !== listStateRef || $[20] !== onClosePopover || $[21] !== onSelectionChange) {
|
|
200
|
+
t4 = (e_1) => {
|
|
201
|
+
const listState_1 = isPopoverOpen ? listStateRef.current : null;
|
|
202
|
+
const focusedKey = listState_1?.selectionManager.focusedKey;
|
|
203
|
+
if (focusedKey != null) {
|
|
204
|
+
e_1.preventDefault();
|
|
205
|
+
listState_1.selectionManager.select(focusedKey, e_1);
|
|
206
|
+
onClosePopover();
|
|
207
|
+
inputRef.current?.focus();
|
|
208
|
+
} else if (!hasResults) commitWithoutResults(e_1);
|
|
209
|
+
else if ((effectiveInputValue || "").trim() === "") {
|
|
210
|
+
e_1.preventDefault();
|
|
211
|
+
onSelectionChange(null);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
$[14] = commitWithoutResults;
|
|
215
|
+
$[15] = effectiveInputValue;
|
|
216
|
+
$[16] = hasResults;
|
|
217
|
+
$[17] = inputRef;
|
|
218
|
+
$[18] = isPopoverOpen;
|
|
219
|
+
$[19] = listStateRef;
|
|
220
|
+
$[20] = onClosePopover;
|
|
221
|
+
$[21] = onSelectionChange;
|
|
222
|
+
$[22] = t4;
|
|
223
|
+
} else t4 = $[22];
|
|
224
|
+
const handleEnterKey = t4;
|
|
225
|
+
let t5;
|
|
226
|
+
if ($[23] !== effectiveInputValue || $[24] !== inputRef || $[25] !== isClearable || $[26] !== isPopoverOpen || $[27] !== onClearValue || $[28] !== onClosePopover) {
|
|
227
|
+
t5 = (e_2) => {
|
|
228
|
+
if (isPopoverOpen) {
|
|
229
|
+
e_2.preventDefault();
|
|
230
|
+
onClosePopover();
|
|
231
|
+
inputRef.current?.focus();
|
|
232
|
+
} else if (effectiveInputValue && isClearable) {
|
|
233
|
+
e_2.preventDefault();
|
|
234
|
+
onClearValue();
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
$[23] = effectiveInputValue;
|
|
238
|
+
$[24] = inputRef;
|
|
239
|
+
$[25] = isClearable;
|
|
240
|
+
$[26] = isPopoverOpen;
|
|
241
|
+
$[27] = onClearValue;
|
|
242
|
+
$[28] = onClosePopover;
|
|
243
|
+
$[29] = t5;
|
|
244
|
+
} else t5 = $[29];
|
|
245
|
+
const handleEscapeKey = t5;
|
|
246
|
+
let t6;
|
|
247
|
+
if ($[30] !== focusOption || $[31] !== isPopoverOpen || $[32] !== listStateRef) {
|
|
248
|
+
t6 = (e_3) => {
|
|
249
|
+
if (!isPopoverOpen) return;
|
|
250
|
+
e_3.preventDefault();
|
|
251
|
+
const listState_2 = listStateRef.current;
|
|
252
|
+
if (listState_2) focusOption(listState_2, getEdgeVisibleKey(listState_2, e_3.key === "Home" ? "first" : "last"));
|
|
253
|
+
};
|
|
254
|
+
$[30] = focusOption;
|
|
255
|
+
$[31] = isPopoverOpen;
|
|
256
|
+
$[32] = listStateRef;
|
|
257
|
+
$[33] = t6;
|
|
258
|
+
} else t6 = $[33];
|
|
259
|
+
const handleEdgeKey = t6;
|
|
260
|
+
let t7;
|
|
261
|
+
if ($[34] !== handleArrowKey || $[35] !== handleEdgeKey || $[36] !== handleEnterKey || $[37] !== handleEscapeKey || $[38] !== onKeyDown) {
|
|
262
|
+
t7 = { onKeyDown: (e_4) => {
|
|
263
|
+
onKeyDown?.(e_4);
|
|
264
|
+
if (e_4.isDefaultPrevented()) return;
|
|
265
|
+
bb97: switch (e_4.key) {
|
|
266
|
+
case "ArrowDown":
|
|
267
|
+
case "ArrowUp":
|
|
268
|
+
handleArrowKey(e_4);
|
|
269
|
+
break bb97;
|
|
270
|
+
case "Enter":
|
|
271
|
+
handleEnterKey(e_4);
|
|
272
|
+
break bb97;
|
|
273
|
+
case "Escape":
|
|
274
|
+
handleEscapeKey(e_4);
|
|
275
|
+
break bb97;
|
|
276
|
+
case "Home":
|
|
277
|
+
case "End": handleEdgeKey(e_4);
|
|
217
278
|
}
|
|
218
279
|
} };
|
|
219
|
-
$[
|
|
220
|
-
$[
|
|
221
|
-
$[
|
|
222
|
-
$[
|
|
223
|
-
$[
|
|
224
|
-
$[
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
$[
|
|
231
|
-
$[
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
} else t1 = $[14];
|
|
235
|
-
const { keyboardProps } = useKeyboard(t1);
|
|
236
|
-
let t2;
|
|
237
|
-
if ($[15] !== keyboardProps) {
|
|
238
|
-
t2 = { keyboardProps };
|
|
239
|
-
$[15] = keyboardProps;
|
|
240
|
-
$[16] = t2;
|
|
241
|
-
} else t2 = $[16];
|
|
242
|
-
return t2;
|
|
280
|
+
$[34] = handleArrowKey;
|
|
281
|
+
$[35] = handleEdgeKey;
|
|
282
|
+
$[36] = handleEnterKey;
|
|
283
|
+
$[37] = handleEscapeKey;
|
|
284
|
+
$[38] = onKeyDown;
|
|
285
|
+
$[39] = t7;
|
|
286
|
+
} else t7 = $[39];
|
|
287
|
+
const { keyboardProps } = useKeyboard(t7);
|
|
288
|
+
let t8;
|
|
289
|
+
if ($[40] !== keyboardProps) {
|
|
290
|
+
t8 = { keyboardProps };
|
|
291
|
+
$[40] = keyboardProps;
|
|
292
|
+
$[41] = t8;
|
|
293
|
+
} else t8 = $[41];
|
|
294
|
+
return t8;
|
|
243
295
|
}
|
|
244
296
|
const ComboBoxInput = forwardRef(function ComboBoxInput(t0, ref) {
|
|
245
297
|
const $ = c(22);
|
|
@@ -434,60 +486,42 @@ const ComboBox = forwardRef(function ComboBox(props, ref) {
|
|
|
434
486
|
filterFn,
|
|
435
487
|
localCollectionState.collection
|
|
436
488
|
]);
|
|
489
|
+
const setSelectedKey = (key_1) => {
|
|
490
|
+
if (!isControlledKey) setInternalSelectedKey(key_1);
|
|
491
|
+
};
|
|
492
|
+
const setInputText = (value_0) => {
|
|
493
|
+
if (!isControlledInput) setInternalInputValue(value_0);
|
|
494
|
+
onInputChange?.(value_0);
|
|
495
|
+
};
|
|
496
|
+
const clearSelectionAndInput = () => {
|
|
497
|
+
externalOnSelectionChange?.(null);
|
|
498
|
+
setSelectedKey(null);
|
|
499
|
+
setInputText("");
|
|
500
|
+
};
|
|
501
|
+
const restoreSelectedLabel = () => {
|
|
502
|
+
setInputText(effectiveSelectedKey != null ? getItemLabel(effectiveSelectedKey) : "");
|
|
503
|
+
};
|
|
504
|
+
const settleCustomValueOnBlur = () => {
|
|
505
|
+
if (shouldCommitOnBlur && effectiveInputValue && effectiveSelectedKey == null) {
|
|
506
|
+
externalOnSelectionChange?.(effectiveInputValue);
|
|
507
|
+
setSelectedKey(effectiveInputValue);
|
|
508
|
+
} else if (!String(effectiveInputValue).trim()) clearSelectionAndInput();
|
|
509
|
+
else restoreSelectedLabel();
|
|
510
|
+
};
|
|
511
|
+
const settleOptionOnBlur = () => {
|
|
512
|
+
const { isInputValid, singleMatchKey } = checkInputValidity();
|
|
513
|
+
if (isInputValid && singleMatchKey != null && singleMatchKey !== effectiveSelectedKey) {
|
|
514
|
+
const label_0 = getItemLabel(singleMatchKey);
|
|
515
|
+
setSelectedKey(singleMatchKey);
|
|
516
|
+
setInputText(label_0);
|
|
517
|
+
externalOnSelectionChange?.(singleMatchKey);
|
|
518
|
+
} else if (!isInputValid && (clearOnBlur || !effectiveInputValue.trim())) clearSelectionAndInput();
|
|
519
|
+
else restoreSelectedLabel();
|
|
520
|
+
};
|
|
437
521
|
const handleCompositeBlur = useEvent(() => {
|
|
438
522
|
setIsPopoverOpen(false);
|
|
439
|
-
if (allowsCustomValue)
|
|
440
|
-
|
|
441
|
-
externalOnSelectionChange?.(effectiveInputValue);
|
|
442
|
-
if (!isControlledKey) setInternalSelectedKey(effectiveInputValue);
|
|
443
|
-
onBlur?.();
|
|
444
|
-
setIsFilterActive(false);
|
|
445
|
-
return;
|
|
446
|
-
}
|
|
447
|
-
if (!String(effectiveInputValue).trim()) {
|
|
448
|
-
externalOnSelectionChange?.(null);
|
|
449
|
-
if (!isControlledKey) setInternalSelectedKey(null);
|
|
450
|
-
if (!isControlledInput) setInternalInputValue("");
|
|
451
|
-
onInputChange?.("");
|
|
452
|
-
onBlur?.();
|
|
453
|
-
setIsFilterActive(false);
|
|
454
|
-
return;
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
if (!allowsCustomValue) {
|
|
458
|
-
const { isInputValid, singleMatchKey } = checkInputValidity();
|
|
459
|
-
if (isInputValid && singleMatchKey != null && singleMatchKey !== effectiveSelectedKey) {
|
|
460
|
-
const label_0 = getItemLabel(singleMatchKey);
|
|
461
|
-
if (!isControlledKey) setInternalSelectedKey(singleMatchKey);
|
|
462
|
-
if (!isControlledInput) setInternalInputValue(label_0);
|
|
463
|
-
onInputChange?.(label_0);
|
|
464
|
-
externalOnSelectionChange?.(singleMatchKey);
|
|
465
|
-
onBlur?.();
|
|
466
|
-
setIsFilterActive(false);
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
if (!isInputValid) {
|
|
470
|
-
const trimmedInput = effectiveInputValue.trim();
|
|
471
|
-
if (clearOnBlur || !trimmedInput) {
|
|
472
|
-
externalOnSelectionChange?.(null);
|
|
473
|
-
if (!isControlledKey) setInternalSelectedKey(null);
|
|
474
|
-
if (!isControlledInput) setInternalInputValue("");
|
|
475
|
-
onInputChange?.("");
|
|
476
|
-
onBlur?.();
|
|
477
|
-
setIsFilterActive(false);
|
|
478
|
-
return;
|
|
479
|
-
}
|
|
480
|
-
const nextValue = effectiveSelectedKey != null ? getItemLabel(effectiveSelectedKey) : "";
|
|
481
|
-
if (!isControlledInput) setInternalInputValue(nextValue);
|
|
482
|
-
onInputChange?.(nextValue);
|
|
483
|
-
onBlur?.();
|
|
484
|
-
setIsFilterActive(false);
|
|
485
|
-
return;
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
const nextValue_0 = effectiveSelectedKey != null ? getItemLabel(effectiveSelectedKey) : "";
|
|
489
|
-
if (!isControlledInput) setInternalInputValue(nextValue_0);
|
|
490
|
-
onInputChange?.(nextValue_0);
|
|
523
|
+
if (allowsCustomValue) settleCustomValueOnBlur();
|
|
524
|
+
else settleOptionOnBlur();
|
|
491
525
|
onBlur?.();
|
|
492
526
|
setIsFilterActive(false);
|
|
493
527
|
});
|
|
@@ -505,15 +539,15 @@ const ComboBox = forwardRef(function ComboBox(props, ref) {
|
|
|
505
539
|
const listStateRef = useRef(null);
|
|
506
540
|
const focusInitAttemptsRef = useRef(0);
|
|
507
541
|
const [activeOptionKey, setActiveOptionKey] = useState(null);
|
|
508
|
-
const getItemLabel = useCallback((
|
|
509
|
-
return (localCollectionState?.collection?.getItem(
|
|
542
|
+
const getItemLabel = useCallback((key_2) => {
|
|
543
|
+
return (localCollectionState?.collection?.getItem(key_2))?.textValue || String(key_2);
|
|
510
544
|
}, [localCollectionState?.collection]);
|
|
511
545
|
const handleSelectionChange = useEvent((selection) => {
|
|
512
|
-
const
|
|
513
|
-
if (!isControlledKey) setInternalSelectedKey(
|
|
514
|
-
if (
|
|
546
|
+
const key_3 = Array.isArray(selection) ? selection[0] : selection;
|
|
547
|
+
if (!isControlledKey) setInternalSelectedKey(key_3 ?? null);
|
|
548
|
+
if (key_3 != null) {
|
|
515
549
|
setIsFilterActive(false);
|
|
516
|
-
const label_1 = getItemLabel(
|
|
550
|
+
const label_1 = getItemLabel(key_3);
|
|
517
551
|
if (!isControlledInput) setInternalInputValue(label_1);
|
|
518
552
|
onInputChange?.(label_1);
|
|
519
553
|
} else {
|
|
@@ -521,7 +555,7 @@ const ComboBox = forwardRef(function ComboBox(props, ref) {
|
|
|
521
555
|
onInputChange?.("");
|
|
522
556
|
setIsFilterActive(false);
|
|
523
557
|
}
|
|
524
|
-
externalOnSelectionChange?.(
|
|
558
|
+
externalOnSelectionChange?.(key_3);
|
|
525
559
|
setIsPopoverOpen(false);
|
|
526
560
|
setTimeout(() => {
|
|
527
561
|
inputRef.current?.focus();
|
|
@@ -530,16 +564,16 @@ const ComboBox = forwardRef(function ComboBox(props, ref) {
|
|
|
530
564
|
const lastSyncedSelectedKey = useRef(void 0);
|
|
531
565
|
const selectionClearedByTyping = useRef(false);
|
|
532
566
|
const handleInputChange = useEvent((e) => {
|
|
533
|
-
const
|
|
534
|
-
if (!isControlledInput) setInternalInputValue(
|
|
535
|
-
onInputChange?.(
|
|
536
|
-
setIsFilterActive(
|
|
567
|
+
const value_1 = e.target.value;
|
|
568
|
+
if (!isControlledInput) setInternalInputValue(value_1);
|
|
569
|
+
onInputChange?.(value_1);
|
|
570
|
+
setIsFilterActive(value_1.trim().length > 0);
|
|
537
571
|
if (allowsCustomValue && effectiveSelectedKey != null) {
|
|
538
572
|
selectionClearedByTyping.current = true;
|
|
539
573
|
if (!isControlledKey) setInternalSelectedKey(null);
|
|
540
574
|
externalOnSelectionChange?.(null);
|
|
541
575
|
}
|
|
542
|
-
if (popoverTrigger !== "manual" &&
|
|
576
|
+
if (popoverTrigger !== "manual" && value_1 && !isPopoverOpen) setIsPopoverOpen(true);
|
|
543
577
|
});
|
|
544
578
|
const [hasInitialized, setHasInitialized] = useState(false);
|
|
545
579
|
useEffect(() => {
|