@cube-dev/ui-kit 0.143.1 → 0.144.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 +6 -0
- package/dist/README.md +1 -1
- package/dist/_internal/hooks/use-chained-callback.js +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 +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/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/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.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/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.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/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 +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/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/ComboBox/ComboBox.js +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/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/intl.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.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 +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/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 +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/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/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/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/extract-field-wrapper-props.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/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/index.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/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.d.ts +110 -0
- package/dist/components/layout/Board/Board.js +455 -0
- package/dist/components/layout/Board/Board.js.map +1 -0
- package/dist/components/layout/Board/BoardProvider.d.ts +28 -0
- package/dist/components/layout/Board/BoardProvider.js +47 -0
- package/dist/components/layout/Board/BoardProvider.js.map +1 -0
- package/dist/components/layout/Board/BoardResponsive.d.ts +52 -0
- package/dist/components/layout/Board/BoardResponsive.js +101 -0
- package/dist/components/layout/Board/BoardResponsive.js.map +1 -0
- package/dist/components/layout/Board/Widget.d.ts +49 -0
- package/dist/components/layout/Board/Widget.js +42 -0
- package/dist/components/layout/Board/Widget.js.map +1 -0
- package/dist/components/layout/Board/WidgetHost.js +423 -0
- package/dist/components/layout/Board/WidgetHost.js.map +1 -0
- package/dist/components/layout/Board/board-context.d.ts +16 -0
- package/dist/components/layout/Board/board-context.js +32 -0
- package/dist/components/layout/Board/board-context.js.map +1 -0
- package/dist/components/layout/Board/board-store.d.ts +3 -0
- package/dist/components/layout/Board/board-store.js +49 -0
- package/dist/components/layout/Board/board-store.js.map +1 -0
- package/dist/components/layout/Board/grid-core/calculate.js +90 -0
- package/dist/components/layout/Board/grid-core/calculate.js.map +1 -0
- package/dist/components/layout/Board/grid-core/collision.js +35 -0
- package/dist/components/layout/Board/grid-core/collision.js.map +1 -0
- package/dist/components/layout/Board/grid-core/compactors.d.ts +23 -0
- package/dist/components/layout/Board/grid-core/compactors.js +166 -0
- package/dist/components/layout/Board/grid-core/compactors.js.map +1 -0
- package/dist/components/layout/Board/grid-core/constraints.d.ts +35 -0
- package/dist/components/layout/Board/grid-core/constraints.js +155 -0
- package/dist/components/layout/Board/grid-core/constraints.js.map +1 -0
- package/dist/components/layout/Board/grid-core/layout.js +176 -0
- package/dist/components/layout/Board/grid-core/layout.js.map +1 -0
- package/dist/components/layout/Board/grid-core/sort.js +37 -0
- package/dist/components/layout/Board/grid-core/sort.js.map +1 -0
- package/dist/components/layout/Board/grid-core/types.d.ts +168 -0
- package/dist/components/layout/Board/index.d.ts +21 -0
- package/dist/components/layout/Board/index.js +18 -0
- package/dist/components/layout/Board/index.js.map +1 -0
- package/dist/components/layout/Board/responsive-utils.d.ts +13 -0
- package/dist/components/layout/Board/responsive-utils.js +55 -0
- package/dist/components/layout/Board/responsive-utils.js.map +1 -0
- package/dist/components/layout/Board/use-board-layout.js +52 -0
- package/dist/components/layout/Board/use-board-layout.js.map +1 -0
- package/dist/components/layout/Board/use-board-registry.js +372 -0
- package/dist/components/layout/Board/use-board-registry.js.map +1 -0
- 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/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +36 -4
- 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 +6 -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 +3 -2
- 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/FileTabs/FileTabs.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/RangeCalendar.js +1 -1
- package/dist/components/other/CloudLogo/CloudLogo.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/context.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/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/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/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/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 +12 -2
- package/dist/index.js +8 -2
- package/dist/index.js.map +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/base.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/palette.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/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/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/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.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/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.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/layout/Board.md +224 -0
- package/docs/components/navigation/Tabs.md +18 -2
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.144.0 | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/nullableValue.ts
|
|
3
3
|
function castNullableStringValue(props) {
|
|
4
4
|
return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.144.0 | Cube Dev Team */
|
|
2
2
|
import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/utils/react/useEventBus.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.144.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { useSSRSafeId } from "@react-aria/ssr";
|
package/dist/utils/selection.js
CHANGED
package/dist/utils/styles.js
CHANGED
package/dist/utils/tree.js
CHANGED
package/dist/utils/warnings.js
CHANGED
package/dist/version.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.144.0 | Cube Dev Team */
|
|
2
2
|
//#region src/version.ts
|
|
3
|
-
const VERSION = "0.
|
|
3
|
+
const VERSION = "0.144.0";
|
|
4
4
|
const TASTY_VERSION = "2.8.0";
|
|
5
5
|
if (typeof window !== "undefined") {
|
|
6
6
|
const version = VERSION;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# Board
|
|
2
|
+
|
|
3
|
+
A draggable and resizable widget grid for building dashboards. Widgets are
|
|
4
|
+
declared with `Board.Widget` and positioned via a `layout` (grid units). Wrap
|
|
5
|
+
multiple boards in a `BoardProvider` (`Board.Provider`) to drag widgets between
|
|
6
|
+
them, including out of a nested board into its parent.
|
|
7
|
+
|
|
8
|
+
Dragging and resizing are powered by React Aria's `useMove`, so they work with
|
|
9
|
+
mouse, touch, and keyboard (focus a widget and use the arrow keys). While a
|
|
10
|
+
widget is dragged with a pointer it renders into a fixed overlay so it is never
|
|
11
|
+
clipped by an ancestor's `overflow: hidden`.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- Customizable dashboards where users arrange widgets
|
|
16
|
+
- Report/analytics layouts with resizable tiles
|
|
17
|
+
- Multi-panel workspaces where items move between areas
|
|
18
|
+
- Nested containers whose children can be dragged out
|
|
19
|
+
|
|
20
|
+
## Component
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Concepts
|
|
25
|
+
|
|
26
|
+
- **Layout** — an array of items `{ i, x, y, w, h }` in grid units. `i` matches a
|
|
27
|
+
`Board.Widget` `id`.
|
|
28
|
+
- **Content vs. position** — `Board.Widget` declares content; the owning `Board`
|
|
29
|
+
positions it. This decoupling is what lets a widget be transferred between
|
|
30
|
+
boards.
|
|
31
|
+
- **Compaction** — `vertical` (default), `horizontal`, or `free`. In `free` mode a
|
|
32
|
+
widget is placed exactly where you drop it and its neighbours are never pushed
|
|
33
|
+
or swapped; without `allowOverlap` a drop onto an occupied cell is blocked, and
|
|
34
|
+
with `allowOverlap` widgets may stack for a fully free canvas.
|
|
35
|
+
|
|
36
|
+
## Properties
|
|
37
|
+
|
|
38
|
+
### Board
|
|
39
|
+
|
|
40
|
+
- **`layout`** `LayoutItem[]` — Controlled layout.
|
|
41
|
+
- **`defaultLayout`** `LayoutItem[]` — Initial layout for uncontrolled usage.
|
|
42
|
+
- **`onLayoutChange`** `(layout: LayoutItem[]) => void` — Called when a drag or resize is committed.
|
|
43
|
+
- **`onDragStart` / `onDrag` / `onDragStop`** `(info: BoardInteractionInfo) => void` — Drag lifecycle callbacks. `onDrag` fires on every step; `onDragStop` fires after the layout is committed.
|
|
44
|
+
- **`onResizeStart` / `onResize` / `onResizeStop`** `(info: BoardInteractionInfo) => void` — Resize lifecycle callbacks, mirroring the drag ones.
|
|
45
|
+
- **`cols`** `number` (default: `12`) — Number of columns.
|
|
46
|
+
- **`rowHeight`** `number` (default: `100`) — Row height in pixels.
|
|
47
|
+
- **`margin`** `[number, number]` (default: `[8, 8]`) — Horizontal/vertical gap between widgets.
|
|
48
|
+
- **`containerPadding`** `[number, number]` — Inner padding. Defaults to `margin`.
|
|
49
|
+
- **`maxRows`** `number` (default: `Infinity`) — Maximum number of rows.
|
|
50
|
+
- **`compact`** `'vertical' | 'horizontal' | 'free' | null` (default: `'vertical'`) — Compaction behavior. `'vertical'`/`'horizontal'` reflow widgets to remove gaps; `'free'` places each widget exactly where dropped and never pushes its neighbours (blocked from occupied cells unless `allowOverlap`); `null` disables compaction but still resolves collisions the legacy react-grid-layout way.
|
|
51
|
+
- **`allowOverlap`** `boolean` (default: `false`) — Allow widgets to overlap (stack). In `'free'` mode this is what distinguishes stacking from blocking a drop onto an occupied cell.
|
|
52
|
+
- **`preventCollision`** `boolean` (default: `false`) — Block movement into occupied cells instead of pushing.
|
|
53
|
+
- **`isDraggable`** `boolean` (default: `true`) — Enable dragging for all widgets.
|
|
54
|
+
- **`isResizable`** `boolean` (default: `true`) — Enable resizing for all widgets.
|
|
55
|
+
- **`isDroppable`** `boolean` (default: `true`) — Whether the board accepts widgets dropped from other boards.
|
|
56
|
+
- **`resizeHandles`** `ResizeHandleAxis[]` (default: `['se']`) — Which resize handles to show. Corner handles (`ne`/`nw`/`se`/`sw`) show an angle grip; edge handles (`n`/`s`/`e`/`w`) show a dotted grip. Both are revealed on hover/focus/resize. A single edge (e.g. `['e']` or `['s']`) gives a horizontally- or vertically-only resizable widget.
|
|
57
|
+
- **`dragCancel`** `string` — CSS selector for elements that must not start a pointer drag (e.g. form controls inside a widget: `"input,textarea,button,a,.no-drag"`). Keyboard moves are unaffected. Can be overridden per widget.
|
|
58
|
+
- **`dragHandle`** `string` — CSS selector for the only elements from which a pointer drag may start. Can be overridden per widget.
|
|
59
|
+
- **`showGridLines`** `boolean | 'drag'` (default: `false`) — Show grid lines behind the widgets. `true` always, `'drag'` only while a widget is being dragged or resized.
|
|
60
|
+
- **`isAligned`** `boolean` (default: `false`) — Align a nested board with its ancestor `Board`'s layout. Only takes effect when the board is nested inside another `Board`'s widget. When set, the board inherits the parent's column pitch (deriving its own column count from its measured width so cells stay parent-sized as the container is resized) and inherits the parent's row height as a target, shrinking rows slightly when needed to fit the height the container widget grants it. `cols`/`rowHeight` then act as fallbacks used only until the parent metrics resolve.
|
|
61
|
+
- **`constraints`** `LayoutConstraint[]` — Grid/item layout constraints.
|
|
62
|
+
- **`width`** `number` — Explicit width (disables measurement; useful for SSR/tests).
|
|
63
|
+
- **`place`** `Styles['place']` — Style prop shorthand for `place-items`/`place-content`.
|
|
64
|
+
- **`scrollMargin`** `Styles['scrollMargin']` — Style prop for scroll margin.
|
|
65
|
+
|
|
66
|
+
### Board.Widget
|
|
67
|
+
|
|
68
|
+
- **`id`** `string` (required) — Must match the `i` of a layout item.
|
|
69
|
+
- **`isDraggable`** `boolean` — Disable dragging for this widget.
|
|
70
|
+
- **`isResizable`** `boolean` — Disable resizing for this widget.
|
|
71
|
+
- **`resizeHandles`** `ResizeHandleAxis[]` — Override the board's handles.
|
|
72
|
+
- **`constraints`** `LayoutConstraint[]` — Per-widget constraints.
|
|
73
|
+
- **`qa`** `string` — Test id for the rendered widget element.
|
|
74
|
+
- **`styles`** `Styles` — Style overrides for the rendered widget element.
|
|
75
|
+
- **`isAutoHeight`** `boolean` (default: `false`) — Grow this widget's height in its board to fit its content (only ever increases, never shrinks). Pair it with a nested `Board isAligned` so the container expands until the inner board's rows fit at the parent's row height. It also pins the widget's resize floor: you cannot drag the widget shorter than the height its content currently needs.
|
|
76
|
+
- **`dragCancel`** `string` — Override the board's `dragCancel` selector for this widget.
|
|
77
|
+
- **`dragHandle`** `string` — Override the board's `dragHandle` selector for this widget.
|
|
78
|
+
|
|
79
|
+
### Board.Provider
|
|
80
|
+
|
|
81
|
+
Shares one drag context across multiple boards. A standalone `Board` provides its
|
|
82
|
+
own automatically; only use `Board.Provider` when you need cross-board dragging.
|
|
83
|
+
|
|
84
|
+
- **`onWidgetTransfer`** `(info: { widgetId, fromBoardId, toBoardId, item }) => void` —
|
|
85
|
+
Fired when a widget is dropped from one board into another.
|
|
86
|
+
|
|
87
|
+
Dragging a widget across a container that can unmount (for example, out of an
|
|
88
|
+
inactive `Tab`) requires controlled ownership: a widget's content is declared by
|
|
89
|
+
its `Board.Widget`, so if that declaration unmounts the content is lost. Keep
|
|
90
|
+
each board's `layout` controlled and, in response to `onWidgetTransfer`, move the
|
|
91
|
+
`Board.Widget` declaration into the destination container so the content follows
|
|
92
|
+
the widget. The [Boards inside Tabs](#boards-inside-tabs) example shows the
|
|
93
|
+
pattern.
|
|
94
|
+
|
|
95
|
+
### Board.Responsive
|
|
96
|
+
|
|
97
|
+
A wrapper around `Board` that selects a layout and column count based on the
|
|
98
|
+
container's measured width, mirroring react-grid-layout's `Responsive` +
|
|
99
|
+
`WidthProvider`. It accepts all `Board` props except `layout`, `defaultLayout`,
|
|
100
|
+
`cols`, `onLayoutChange`, and `width` (which it manages), plus:
|
|
101
|
+
|
|
102
|
+
- **`breakpoints`** `Record<string, number>` — Breakpoint name to minimum container width (px).
|
|
103
|
+
- **`cols`** `Record<string, number>` — Breakpoint name to column count.
|
|
104
|
+
- **`layouts`** `Record<string, LayoutItem[]>` — Controlled per-breakpoint layouts.
|
|
105
|
+
- **`defaultLayouts`** `Record<string, LayoutItem[]>` — Initial per-breakpoint layouts for uncontrolled usage.
|
|
106
|
+
- **`onLayoutChange`** `(currentLayout: LayoutItem[], allLayouts: Record<string, LayoutItem[]>) => void` — Called on commit with the active breakpoint's layout and the full map.
|
|
107
|
+
- **`onBreakpointChange`** `(breakpoint: string, cols: number) => void` — Called when the active breakpoint changes.
|
|
108
|
+
- **`onWidthChange`** `(width: number, cols: number) => void` — Called when the measured container width changes, with the active breakpoint's column count. Mirrors react-grid-layout's `WidthProvider` `onWidthChange`. Not fired while width is unmeasured or when an explicit `width` is provided.
|
|
109
|
+
- **`breakpoint`** `string` — Force a specific breakpoint regardless of width (e.g. for a fixed-size screenshot or PDF export).
|
|
110
|
+
- **`width`** `number` — Explicit width; disables measurement (SSR/tests/forced-size exports).
|
|
111
|
+
|
|
112
|
+
A breakpoint with no layout is synthesized from the nearest available one,
|
|
113
|
+
corrected into bounds and compacted for the target column count.
|
|
114
|
+
|
|
115
|
+
### Base Properties
|
|
116
|
+
|
|
117
|
+
Supports [Base properties](../../BaseProperties.md).
|
|
118
|
+
|
|
119
|
+
### Style Properties
|
|
120
|
+
|
|
121
|
+
These properties allow direct style application without using the `styles` prop.
|
|
122
|
+
Note: `margin` is repurposed as the grid gap (see Properties above) rather than a
|
|
123
|
+
CSS margin.
|
|
124
|
+
|
|
125
|
+
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
126
|
+
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
|
|
127
|
+
- **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
128
|
+
- **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
|
|
129
|
+
- **Color:** `color`, `fill`, `fade`, `image`
|
|
130
|
+
- **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
131
|
+
|
|
132
|
+
## Examples
|
|
133
|
+
|
|
134
|
+
### Controlled layout
|
|
135
|
+
|
|
136
|
+
### Free positioning
|
|
137
|
+
|
|
138
|
+
A widget stays exactly where you drop it and never shuffles its neighbours.
|
|
139
|
+
Dropping onto an occupied cell is blocked, so the widget stays at its last free
|
|
140
|
+
spot.
|
|
141
|
+
|
|
142
|
+
### Free positioning (overlap)
|
|
143
|
+
|
|
144
|
+
Add `allowOverlap` to let widgets stack on top of each other instead of being
|
|
145
|
+
blocked from occupied cells.
|
|
146
|
+
|
|
147
|
+
### Horizontal compaction
|
|
148
|
+
|
|
149
|
+
### Non-resizable
|
|
150
|
+
|
|
151
|
+
### Grid lines
|
|
152
|
+
|
|
153
|
+
Show grid lines behind the widgets while dragging or resizing (or always).
|
|
154
|
+
|
|
155
|
+
### Drag cancel
|
|
156
|
+
|
|
157
|
+
Keep interactive controls inside a widget clickable by excluding them from the
|
|
158
|
+
drag gesture with `dragCancel`.
|
|
159
|
+
|
|
160
|
+
### Responsive
|
|
161
|
+
|
|
162
|
+
`Board.Responsive` swaps the layout and column count per breakpoint.
|
|
163
|
+
|
|
164
|
+
### Cross-board dragging
|
|
165
|
+
|
|
166
|
+
Wrap boards in `Board.Provider` to drag widgets between them.
|
|
167
|
+
|
|
168
|
+
### Nested boards
|
|
169
|
+
|
|
170
|
+
A `Board` can be placed inside a `Board.Widget`, making the whole container
|
|
171
|
+
draggable while its children can be dragged out into sibling boards.
|
|
172
|
+
|
|
173
|
+
Set `isAligned` on the nested board to align it with the surrounding layout: its
|
|
174
|
+
columns keep the parent's pixel pitch (so resizing the container adds or removes
|
|
175
|
+
columns instead of stretching them), and its rows inherit the parent's row
|
|
176
|
+
height, shrinking slightly when needed to fit the space the container widget
|
|
177
|
+
gives it.
|
|
178
|
+
|
|
179
|
+
Add `isAutoHeight` to the container `Board.Widget` to grow it (only ever taller)
|
|
180
|
+
until the inner board's rows fit at the parent's row height, so an aligned board
|
|
181
|
+
never has to squeeze its rows. It also stops the container's resize handle at
|
|
182
|
+
that height, so you can't drag it shorter than the inner board needs.
|
|
183
|
+
|
|
184
|
+
### Boards inside Tabs
|
|
185
|
+
|
|
186
|
+
A `Board.Widget` can host a `Tabs` where each tab renders its own `Board`, all
|
|
187
|
+
under a shared `Board.Provider` so widgets can be dragged between tabs and out
|
|
188
|
+
into the surrounding board. Because an inactive tab unmounts, this example is
|
|
189
|
+
fully controlled: each board's `layout` is controlled and `onWidgetTransfer`
|
|
190
|
+
moves a widget's declaration into the destination container so its content
|
|
191
|
+
survives dragging out of (and switching away from) a tab.
|
|
192
|
+
|
|
193
|
+
When a `Tabs` sits inside a `Board`, tab switching becomes "spring-loaded"
|
|
194
|
+
automatically: while you drag a widget, hovering a tab header for a moment opens
|
|
195
|
+
that tab so you can drop into it (or move a widget between tabs). This needs no
|
|
196
|
+
setup - `Tabs` detects the active Board drag and, for its duration, keeps panels
|
|
197
|
+
mounted so the tab a widget is dragged out of (and the board owning the in-flight
|
|
198
|
+
drag) is not unmounted mid-gesture. Spring-loading works with mouse and pen;
|
|
199
|
+
touch drags capture the pointer, so they do not trigger it.
|
|
200
|
+
|
|
201
|
+
## Accessibility
|
|
202
|
+
|
|
203
|
+
- Widgets are focusable when draggable. Press <kbd>Tab</kbd> to focus a widget,
|
|
204
|
+
then use the arrow keys to move it one cell at a time.
|
|
205
|
+
- Dragging, resizing, and keyboard movement are all handled by React Aria's
|
|
206
|
+
`useMove`, which normalizes mouse, touch, and keyboard interactions.
|
|
207
|
+
|
|
208
|
+
## Not yet supported
|
|
209
|
+
|
|
210
|
+
- **External drag-in from a palette** — dragging a brand-new widget from an
|
|
211
|
+
element outside any board into the grid (react-grid-layout's
|
|
212
|
+
`isDroppable`/`onDrop`/`droppingItem`) is not implemented. Board's drag engine
|
|
213
|
+
is built entirely on React Aria's `useMove` over registered widgets; drag-in
|
|
214
|
+
is a separate HTML5 drag-and-drop modality (pixel-to-grid mapping, a dropping
|
|
215
|
+
placeholder, and new `onDrop`/`droppingItem` props). Add widgets
|
|
216
|
+
programmatically (render a new `Board.Widget` and add its layout item), or drag
|
|
217
|
+
between boards with `Board.Provider`.
|
|
218
|
+
|
|
219
|
+
## Attribution
|
|
220
|
+
|
|
221
|
+
The layout engine in `grid-core/` is a vendored, trimmed copy of
|
|
222
|
+
[react-grid-layout](https://github.com/react-grid-layout/react-grid-layout)
|
|
223
|
+
(MIT). The React layer is a UI Kit-native reimplementation on top of tasty and
|
|
224
|
+
React Aria. See `grid-core/NOTICE.md`.
|
|
@@ -131,8 +131,12 @@ DOM order is always "bar then panels" — visual order is controlled internally
|
|
|
131
131
|
|
|
132
132
|
```jsx
|
|
133
133
|
<Tabs placement="left" defaultActiveKey="overview">
|
|
134
|
-
<Tab key="overview" title="Overview">
|
|
135
|
-
|
|
134
|
+
<Tab key="overview" title="Overview">
|
|
135
|
+
Overview content
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab key="settings" title="Settings">
|
|
138
|
+
Settings content
|
|
139
|
+
</Tab>
|
|
136
140
|
</Tabs>
|
|
137
141
|
```
|
|
138
142
|
|
|
@@ -827,6 +831,18 @@ Tabs work seamlessly inside Layout components. When placed in a `Layout` or `Lay
|
|
|
827
831
|
- Tab panels use `display: contents`, allowing children to participate in parent flex layout
|
|
828
832
|
- Nested Layout components with `flexGrow: 1` (default) stretch to fill remaining space
|
|
829
833
|
|
|
834
|
+
### Inside a Board (spring-loaded switching)
|
|
835
|
+
|
|
836
|
+
When `Tabs` is rendered inside a [`Board`](../layout/Board.md), tab
|
|
837
|
+
switching becomes spring-loaded automatically: while a Board widget is being
|
|
838
|
+
dragged, hovering a tab header for a moment opens that tab, so a widget can be
|
|
839
|
+
dropped into it or moved between tabs. This requires no configuration - `Tabs`
|
|
840
|
+
detects the active Board drag and, for its duration, keeps panels mounted so the
|
|
841
|
+
tab a widget is dragged out of (and the board owning the in-flight gesture) is
|
|
842
|
+
not unmounted mid-drag. Spring-loading works with mouse and pen; touch drags
|
|
843
|
+
capture the pointer and do not trigger it. Outside a `Board` this behavior is
|
|
844
|
+
inert.
|
|
845
|
+
|
|
830
846
|
## Accessibility
|
|
831
847
|
|
|
832
848
|
### Keyboard Navigation
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cube-dev/ui-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.144.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "UIKit for Cube Projects",
|
|
6
6
|
"repository": {
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"@testing-library/user-event": "14.6.1",
|
|
92
92
|
"@types/babel__core": "^7.20.5",
|
|
93
93
|
"@types/babel__helper-plugin-utils": "^7.10.3",
|
|
94
|
-
"@types/node": "^
|
|
94
|
+
"@types/node": "^24.0.0",
|
|
95
95
|
"@types/react": "^19.1.10",
|
|
96
96
|
"@types/react-dom": "^19.1.7",
|
|
97
97
|
"@types/react-is": "^18.2.4",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
],
|
|
134
134
|
"license": "MIT",
|
|
135
135
|
"engines": {
|
|
136
|
-
"node": ">=
|
|
136
|
+
"node": ">=24.0.0",
|
|
137
137
|
"pnpm": "^10.0.0"
|
|
138
138
|
},
|
|
139
139
|
"scripts": {
|