@cube-dev/ui-kit 0.120.1 → 0.121.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +20 -0
- 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.d.ts +1 -0
- package/dist/components/actions/Button/Button.js +34 -14
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +47 -0
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +105 -0
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -0
- package/dist/components/actions/ButtonSplit/context.d.ts +18 -0
- package/dist/components/actions/ButtonSplit/context.js +12 -0
- package/dist/components/actions/ButtonSplit/context.js.map +1 -0
- package/dist/components/actions/ButtonSplit/index.d.ts +3 -0
- 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.d.ts +2 -2
- 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.d.ts +8 -3
- package/dist/components/actions/index.js +10 -5
- package/dist/components/actions/index.js.map +1 -1
- package/dist/components/actions/use-action.d.ts +1 -0
- package/dist/components/actions/use-action.js +21 -18
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +2 -1
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +5 -2
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +3 -2
- package/dist/components/content/ItemBadge/ItemBadge.js.map +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 +2 -1
- package/dist/components/content/Tag/Tag.js.map +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/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/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 +2 -2
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/ListBox.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 +2 -2
- package/dist/components/fields/RadioGroup/Radio.js +3 -1
- package/dist/components/fields/RadioGroup/Radio.js.map +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.d.ts +8 -2
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/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/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/EditableTitle.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +2 -1
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +3 -1
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +2 -2
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/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 +2 -2
- 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/OpenTransition.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/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 +6 -6
- package/dist/data/item-themes.js.map +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/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 +6 -4
- package/dist/index.js +7 -5
- 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/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.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/useQaProps.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.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/BaseProperties.md +78 -0
- package/docs/ComplexLayout.md +459 -0
- package/docs/CreateComponent.md +410 -0
- package/docs/FieldProperties.md +117 -0
- package/docs/Introduction.md +122 -0
- package/docs/RenderCache.md +177 -0
- package/docs/Result.md +42 -0
- package/docs/SimpleLayout.md +26 -0
- package/docs/Typography.md +38 -0
- package/docs/components/Block.md +33 -0
- package/docs/components/CollectionItem.md +293 -0
- package/docs/components/GridProvider.md +38 -0
- package/docs/components/Root.md +50 -0
- package/docs/components/actions/Action.md +47 -0
- package/docs/components/actions/Banner.md +195 -0
- package/docs/components/actions/Button.md +209 -0
- package/docs/components/actions/ButtonGroup.md +46 -0
- package/docs/components/actions/ButtonSplit.md +199 -0
- package/docs/components/actions/CommandMenu.md +422 -0
- package/docs/components/actions/ItemAction.md +60 -0
- package/docs/components/actions/ItemButton.md +316 -0
- package/docs/components/actions/Link.md +325 -0
- package/docs/components/actions/Menu.md +485 -0
- package/docs/components/actions/MenuTrigger.md +47 -0
- package/docs/components/actions/SubMenuTrigger.md +38 -0
- package/docs/components/actions/use-anchored-menu.md +209 -0
- package/docs/components/actions/use-context-menu.md +218 -0
- package/docs/components/content/ActiveZone.md +37 -0
- package/docs/components/content/Alert.md +40 -0
- package/docs/components/content/Avatar.md +37 -0
- package/docs/components/content/Badge.md +194 -0
- package/docs/components/content/Card.md +40 -0
- package/docs/components/content/Content.md +44 -0
- package/docs/components/content/CopyPasteBlock.md +36 -0
- package/docs/components/content/CopySnippet.md +43 -0
- package/docs/components/content/Disclosure.md +181 -0
- package/docs/components/content/Divider.md +39 -0
- package/docs/components/content/Footer.md +35 -0
- package/docs/components/content/Header.md +35 -0
- package/docs/components/content/HotKeys.md +352 -0
- package/docs/components/content/Item.md +499 -0
- package/docs/components/content/ItemBadge.md +31 -0
- package/docs/components/content/ItemCard.md +131 -0
- package/docs/components/content/Layout.md +843 -0
- package/docs/components/content/Paragraph.md +32 -0
- package/docs/components/content/Placeholder.md +37 -0
- package/docs/components/content/PrismCode.md +36 -0
- package/docs/components/content/PrismDiffCode.md +29 -0
- package/docs/components/content/Result.md +46 -0
- package/docs/components/content/Skeleton.md +35 -0
- package/docs/components/content/Tag.md +165 -0
- package/docs/components/content/Text.md +54 -0
- package/docs/components/content/TextItem.md +217 -0
- package/docs/components/content/Title.md +45 -0
- package/docs/components/fields/Checkbox.md +176 -0
- package/docs/components/fields/ComboBox.md +651 -0
- package/docs/components/fields/DatePicker.md +227 -0
- package/docs/components/fields/FileInput.md +194 -0
- package/docs/components/fields/FilterListBox.md +726 -0
- package/docs/components/fields/FilterPicker.md +776 -0
- package/docs/components/fields/HueSlider.md +175 -0
- package/docs/components/fields/ListBox.md +714 -0
- package/docs/components/fields/NumberInput.md +180 -0
- package/docs/components/fields/PasswordInput.md +214 -0
- package/docs/components/fields/Picker.md +906 -0
- package/docs/components/fields/RadioGroup.md +310 -0
- package/docs/components/fields/SearchInput.md +224 -0
- package/docs/components/fields/Select.md +576 -0
- package/docs/components/fields/Slider.md +53 -0
- package/docs/components/fields/Switch.md +169 -0
- package/docs/components/fields/TextArea.md +61 -0
- package/docs/components/fields/TextInput.md +205 -0
- package/docs/components/fields/TextInputMapper.md +34 -0
- package/docs/components/form/Field.md +333 -0
- package/docs/components/form/Form.md +644 -0
- package/docs/components/form/FormInstance.md +307 -0
- package/docs/components/helpers/DisplayTransition.md +268 -0
- package/docs/components/helpers/IconSwitch.md +160 -0
- package/docs/components/layout/Flex.md +51 -0
- package/docs/components/layout/Flow.md +32 -0
- package/docs/components/layout/Grid.md +46 -0
- package/docs/components/layout/Panel.md +65 -0
- package/docs/components/layout/Prefix.md +37 -0
- package/docs/components/layout/ResizablePanel.md +69 -0
- package/docs/components/layout/Space.md +44 -0
- package/docs/components/layout/Suffix.md +39 -0
- package/docs/components/navigation/Tabs.md +726 -0
- package/docs/components/organisms/FileTabs.md +39 -0
- package/docs/components/organisms/StatsCard.md +40 -0
- package/docs/components/other/CloudLogo.md +33 -0
- package/docs/components/overlays/AlertDialog.md +51 -0
- package/docs/components/overlays/Dialog.md +200 -0
- package/docs/components/overlays/DialogContainer.md +201 -0
- package/docs/components/overlays/DialogForm.md +295 -0
- package/docs/components/overlays/DialogTrigger.md +191 -0
- package/docs/components/overlays/Notifications.md +402 -0
- package/docs/components/overlays/Toast.md +289 -0
- package/docs/components/overlays/Tooltip.md +400 -0
- package/docs/components/overlays/TooltipProvider.md +42 -0
- package/docs/components/overlays/TooltipTrigger.md +42 -0
- package/docs/components/overlays/UseDialogContainer.md +597 -0
- package/docs/components/portal/Portal.md +29 -0
- package/docs/components/status/LoadingAnimation.md +27 -0
- package/docs/components/status/Spin.md +35 -0
- package/docs/tasty/configuration.md +211 -0
- package/docs/tasty/debug.md +505 -0
- package/docs/tasty/injector.md +528 -0
- package/docs/tasty/styles.md +567 -0
- package/docs/tasty/tasty-static.md +376 -0
- package/docs/tasty/usage.md +643 -0
- package/package.json +5 -9
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.121.1 | Cube Dev Team */
|
|
2
2
|
//#region src/version.ts
|
|
3
|
-
const VERSION = "0.
|
|
3
|
+
const VERSION = "0.121.1";
|
|
4
4
|
if (typeof window !== "undefined") {
|
|
5
5
|
const version = VERSION;
|
|
6
6
|
window.CubeUIKit = window.CubeUIKit || { version };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Base Properties
|
|
2
|
+
|
|
3
|
+
All UI Kit components support a common set of base properties from the `tasty` style system. These properties are passed through `filterBaseProps` and can be used for styling, accessibility, and testing.
|
|
4
|
+
|
|
5
|
+
## Core Properties
|
|
6
|
+
|
|
7
|
+
- **`qa`** `string` — Data attribute for e2e testing (`data-qa`)
|
|
8
|
+
- **`qaVal`** `string` — Value for the qa attribute
|
|
9
|
+
- **`style`** `CSSProperties` — Inline styles
|
|
10
|
+
- **`styles`** `Styles` — Tasty styles object
|
|
11
|
+
- **`css`** `string` — Raw CSS string
|
|
12
|
+
- **`mods`** `Mods` — State modifiers for conditional styling
|
|
13
|
+
- **`breakpoints`** — Responsive breakpoint configuration
|
|
14
|
+
- **`hidden`** `boolean` — Hide the element
|
|
15
|
+
- **`isHidden`** `boolean` — Hide the element
|
|
16
|
+
- **`disabled`** `boolean` — Disabled state
|
|
17
|
+
- **`element`** `string` — Override the rendered element name for sub-element targeting
|
|
18
|
+
- **`block`** `boolean` — Display as block
|
|
19
|
+
- **`inline`** `boolean` — Display as inline
|
|
20
|
+
|
|
21
|
+
## Style Properties
|
|
22
|
+
|
|
23
|
+
Style properties allow direct styling without using the `styles` prop. They are defined in `@tenphi/tasty` and exposed via `styleProps` on components.
|
|
24
|
+
|
|
25
|
+
### BASE_STYLES
|
|
26
|
+
|
|
27
|
+
`display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
28
|
+
|
|
29
|
+
### POSITION_STYLES
|
|
30
|
+
|
|
31
|
+
`gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`
|
|
32
|
+
|
|
33
|
+
### DIMENSION_STYLES
|
|
34
|
+
|
|
35
|
+
`width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
36
|
+
|
|
37
|
+
### BLOCK_STYLES
|
|
38
|
+
|
|
39
|
+
**Inner:** `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
|
|
40
|
+
|
|
41
|
+
**Outer:** `border`, `radius`, `shadow`, `outline`
|
|
42
|
+
|
|
43
|
+
### COLOR_STYLES
|
|
44
|
+
|
|
45
|
+
`color`, `fill`, `fade`, `image`
|
|
46
|
+
|
|
47
|
+
### TEXT_STYLES
|
|
48
|
+
|
|
49
|
+
`textTransform`, `fontWeight`, `fontStyle`
|
|
50
|
+
|
|
51
|
+
### FLOW_STYLES
|
|
52
|
+
|
|
53
|
+
`flow`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
54
|
+
|
|
55
|
+
### CONTAINER_STYLES
|
|
56
|
+
|
|
57
|
+
Combination of BASE_STYLES, COLOR_STYLES, DIMENSION_STYLES, POSITION_STYLES, BLOCK_STYLES, and FLOW_STYLES.
|
|
58
|
+
|
|
59
|
+
### OUTER_STYLES
|
|
60
|
+
|
|
61
|
+
Position and dimension styles: POSITION_STYLES, DIMENSION_STYLES, BLOCK_OUTER_STYLES.
|
|
62
|
+
|
|
63
|
+
## Usage
|
|
64
|
+
|
|
65
|
+
```jsx
|
|
66
|
+
<Button qa="submit-button" width="100%" padding="1x 2x">
|
|
67
|
+
Submit
|
|
68
|
+
</Button>
|
|
69
|
+
|
|
70
|
+
<Card mods={{ hovered: isHovered }} fill="#surface" radius="1r">
|
|
71
|
+
Content
|
|
72
|
+
</Card>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Related
|
|
76
|
+
|
|
77
|
+
- [Tasty documentation](./tasty/usage.md) — Full styling system reference
|
|
78
|
+
- [CreateComponent](./CreateComponent.md) — Building components with base properties
|
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
# Layout Guide
|
|
2
|
+
|
|
3
|
+
This guide covers how to create layouts using the `Layout` component and its sub-components.
|
|
4
|
+
|
|
5
|
+
> **See also:** [Layout API Reference](./components/content/Layout.md) for detailed props documentation.
|
|
6
|
+
|
|
7
|
+
## Introduction
|
|
8
|
+
|
|
9
|
+
The `Layout` component provides a structured way to build application layouts with headers, footers, sidebars, and content areas. It handles:
|
|
10
|
+
|
|
11
|
+
- **Overflow management** - Content scrolls properly without breaking the layout
|
|
12
|
+
- **Panel coordination** - Side panels automatically adjust the main content area
|
|
13
|
+
- **Flexible composition** - Mix and match sub-components for any layout pattern
|
|
14
|
+
|
|
15
|
+
### Two-Element Architecture
|
|
16
|
+
|
|
17
|
+
Internally, Layout uses a wrapper + inner content model. The outer wrapper has `overflow: hidden` while an inner element uses absolute positioning with insets that adjust based on panel sizes. This ensures:
|
|
18
|
+
|
|
19
|
+
- Content never overflows the layout bounds
|
|
20
|
+
- Panels automatically push the content area without overlapping
|
|
21
|
+
- Scrolling is contained within each content area
|
|
22
|
+
|
|
23
|
+
## Basic Layouts
|
|
24
|
+
|
|
25
|
+
### Header + Content + Footer
|
|
26
|
+
|
|
27
|
+
A typical layout with header, scrollable content area, and footer.
|
|
28
|
+
|
|
29
|
+
```jsx live=false
|
|
30
|
+
<Layout height="300px"> {/* block, Inner: flex column ↓ */}
|
|
31
|
+
<Layout.Header title="Dashboard" />
|
|
32
|
+
<Layout.Content> {/* flex column ↓, scrollable, fills remaining space */}
|
|
33
|
+
<Text>Content between header and footer</Text>
|
|
34
|
+
</Layout.Content>
|
|
35
|
+
<Layout.Footer> {/* flex row →, space-between */}
|
|
36
|
+
<Text>Status: Ready</Text>
|
|
37
|
+
<Button type="primary">Save</Button>
|
|
38
|
+
</Layout.Footer>
|
|
39
|
+
</Layout>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Navigation Patterns
|
|
43
|
+
|
|
44
|
+
### Sidebar Layout
|
|
45
|
+
|
|
46
|
+
Use `Layout.Panel` for side navigation. Panels are absolutely positioned and automatically adjust the content area insets.
|
|
47
|
+
|
|
48
|
+
```jsx live=false
|
|
49
|
+
<Layout height="400px"> {/* block, Inner: flex column ↓ */}
|
|
50
|
+
<Layout.Panel side="left" size={200} isOpen={isOpen}> {/* absolute left, pushes content via insets */}
|
|
51
|
+
<Layout.PanelHeader isClosable title="Menu" onClose={() => setIsOpen(false)} />
|
|
52
|
+
<Layout.Content padding=".5x" gap="1bw"> {/* flex column ↓, scrollable */}
|
|
53
|
+
<ItemButton type="neutral">Dashboard</ItemButton>
|
|
54
|
+
<ItemButton type="neutral">Settings</ItemButton>
|
|
55
|
+
</Layout.Content>
|
|
56
|
+
</Layout.Panel>
|
|
57
|
+
<Layout.Toolbar> {/* flex row →, single item aligns left */}
|
|
58
|
+
<Button onPress={() => setIsOpen(!isOpen)}>Toggle Menu</Button>
|
|
59
|
+
</Layout.Toolbar>
|
|
60
|
+
<Layout.Content> {/* flex column ↓, scrollable, fills remaining space */}
|
|
61
|
+
<Text>Main content area</Text>
|
|
62
|
+
</Layout.Content>
|
|
63
|
+
</Layout>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Key props:**
|
|
67
|
+
- `side` - Panel position: `"left"`, `"right"`, `"top"`, `"bottom"`
|
|
68
|
+
- `size` - Panel width (for left/right) or height (for top/bottom)
|
|
69
|
+
- `isOpen` / `onOpenChange` - Control panel visibility
|
|
70
|
+
|
|
71
|
+
### Resizable Panel
|
|
72
|
+
|
|
73
|
+
Add `isResizable` to allow users to resize the panel.
|
|
74
|
+
|
|
75
|
+
```jsx live=false
|
|
76
|
+
<Layout.Panel
|
|
77
|
+
isResizable
|
|
78
|
+
side="left" {/* absolute left, pushes content via insets */}
|
|
79
|
+
size={size}
|
|
80
|
+
minSize={150}
|
|
81
|
+
maxSize={400}
|
|
82
|
+
onSizeChange={setSize}
|
|
83
|
+
>
|
|
84
|
+
{/* Panel content */}
|
|
85
|
+
</Layout.Panel>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Resize behavior:**
|
|
89
|
+
- Drag the edge handle to resize
|
|
90
|
+
- Double-click the handle to reset to default size
|
|
91
|
+
- Use `minSize` and `maxSize` to constrain resize range
|
|
92
|
+
|
|
93
|
+
### Persistent Panel Size
|
|
94
|
+
|
|
95
|
+
Use `sizeStorageKey` to persist the panel size in localStorage. The size will be restored automatically when the component mounts.
|
|
96
|
+
|
|
97
|
+
```jsx live=false
|
|
98
|
+
<Layout.Panel
|
|
99
|
+
isResizable
|
|
100
|
+
side="left" {/* absolute left, pushes content via insets */}
|
|
101
|
+
sizeStorageKey="my-app-sidebar-size"
|
|
102
|
+
defaultSize={250}
|
|
103
|
+
minSize={150}
|
|
104
|
+
maxSize={400}
|
|
105
|
+
>
|
|
106
|
+
{/* Panel content */}
|
|
107
|
+
</Layout.Panel>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Notes:**
|
|
111
|
+
- The `sizeStorageKey` must be unique across your application
|
|
112
|
+
- Size is persisted after drag operations complete
|
|
113
|
+
- Double-clicking to reset also updates the stored value
|
|
114
|
+
- If no stored value exists, `defaultSize` is used
|
|
115
|
+
|
|
116
|
+
## Toolbar Patterns
|
|
117
|
+
|
|
118
|
+
### Left/Right Toolbar
|
|
119
|
+
|
|
120
|
+
`Layout.Toolbar` uses `space-between` alignment, placing first and last children at opposite ends.
|
|
121
|
+
|
|
122
|
+
```jsx live=false
|
|
123
|
+
<Layout.Toolbar> {/* flex row →, space-between */}
|
|
124
|
+
<Title level={4}>App Name</Title> {/* left (first item) */}
|
|
125
|
+
<Button type="primary">Action</Button> {/* right (last item) */}
|
|
126
|
+
</Layout.Toolbar>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Left/Center/Right Toolbar
|
|
130
|
+
|
|
131
|
+
Use `Space` components to create three sections.
|
|
132
|
+
|
|
133
|
+
```jsx live=false
|
|
134
|
+
<Layout.Toolbar> {/* flex row →, space-between */}
|
|
135
|
+
<Space> {/* flex row → */}
|
|
136
|
+
<Button>Back</Button>
|
|
137
|
+
</Space>
|
|
138
|
+
<Title level={4}>Page Title</Title>{/* center (middle item) */}
|
|
139
|
+
<Space> {/* flex row → */}
|
|
140
|
+
<Button>Help</Button>
|
|
141
|
+
<Button type="primary">Save</Button>
|
|
142
|
+
</Space>
|
|
143
|
+
</Layout.Toolbar>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Header Patterns
|
|
147
|
+
|
|
148
|
+
### Header with Breadcrumbs
|
|
149
|
+
|
|
150
|
+
`Layout.Header` supports breadcrumbs, subtitle, and extra content.
|
|
151
|
+
|
|
152
|
+
```jsx live=false
|
|
153
|
+
<Layout.Header {/* grid with named areas: breadcrumbs/title/suffix/extra/subtitle */}
|
|
154
|
+
title="User Details"
|
|
155
|
+
breadcrumbs={[
|
|
156
|
+
['Home', '/'],
|
|
157
|
+
['Users', '/users'],
|
|
158
|
+
]}
|
|
159
|
+
extra={ {/* right side (extra area) */}
|
|
160
|
+
<Space> {/* flex row → */}
|
|
161
|
+
<Button>Edit</Button>
|
|
162
|
+
<Button type="primary">Save</Button>
|
|
163
|
+
</Space>
|
|
164
|
+
}
|
|
165
|
+
/>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Header props:**
|
|
169
|
+
- `title` - Page title
|
|
170
|
+
- `subtitle` - Text below the title
|
|
171
|
+
- `breadcrumbs` - Array of `[label, href]` tuples
|
|
172
|
+
- `extra` - Content on the right side
|
|
173
|
+
- `suffix` - Content next to the title
|
|
174
|
+
- `level` - Heading level (1-6)
|
|
175
|
+
|
|
176
|
+
## Footer Patterns
|
|
177
|
+
|
|
178
|
+
### Footer with Actions
|
|
179
|
+
|
|
180
|
+
Use `invertOrder` to place primary actions on the right.
|
|
181
|
+
|
|
182
|
+
```jsx live=false
|
|
183
|
+
<Layout.Footer invertOrder> {/* flex row-reverse ←, space-between */}
|
|
184
|
+
<Button.Group flow="row-reverse"> {/* flex row-reverse ← */}
|
|
185
|
+
<Button type="primary">Submit</Button>
|
|
186
|
+
<Button>Cancel</Button>
|
|
187
|
+
</Button.Group>
|
|
188
|
+
<Text preset="t4" color="#dark-03">Draft saved</Text> {/* left side due to row-reverse */}
|
|
189
|
+
</Layout.Footer>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Panel Patterns
|
|
193
|
+
|
|
194
|
+
### Panel Modes
|
|
195
|
+
|
|
196
|
+
Panels support four rendering modes via the `mode` prop:
|
|
197
|
+
|
|
198
|
+
- **`default`** — Standard panel, pushes content (Content Push: Yes, Overlay: No)
|
|
199
|
+
- **`sticky`** — Floats over content (Content Push: No, Overlay: No)
|
|
200
|
+
- **`overlay`** — With dismissable backdrop (Content Push: Yes, Overlay: Yes)
|
|
201
|
+
- **`dialog`** — Renders as modal dialog (Content Push: No, Overlay: Dialog)
|
|
202
|
+
|
|
203
|
+
### Sticky Panel
|
|
204
|
+
|
|
205
|
+
Panels with `mode="sticky"` float over content without pushing it aside.
|
|
206
|
+
|
|
207
|
+
```jsx live=false
|
|
208
|
+
<Layout.Panel
|
|
209
|
+
mode="sticky" {/* absolute, does NOT push content */}
|
|
210
|
+
side="right"
|
|
211
|
+
size={260}
|
|
212
|
+
isOpen={isOpen}
|
|
213
|
+
onOpenChange={setIsOpen}
|
|
214
|
+
>
|
|
215
|
+
<Layout.PanelHeader isClosable title="Quick Actions" onClose={() => setIsOpen(false)} />
|
|
216
|
+
<Layout.Content>
|
|
217
|
+
<Text>Floating panel content</Text>
|
|
218
|
+
</Layout.Content>
|
|
219
|
+
</Layout.Panel>
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Overlay Panel
|
|
223
|
+
|
|
224
|
+
Panels with `mode="overlay"` show a backdrop and dismiss on:
|
|
225
|
+
- Clicking the backdrop
|
|
226
|
+
- Pressing Escape anywhere in the Layout
|
|
227
|
+
- Moving focus to the main content area
|
|
228
|
+
|
|
229
|
+
```jsx live=false
|
|
230
|
+
<Layout.Panel
|
|
231
|
+
mode="overlay" {/* absolute, backdrop behind panel */}
|
|
232
|
+
side="right"
|
|
233
|
+
size={300}
|
|
234
|
+
isOpen={isOpen}
|
|
235
|
+
onOpenChange={setIsOpen}
|
|
236
|
+
overlayStyles={{ fill: '#dark.5' }} {/* optional custom backdrop */}
|
|
237
|
+
>
|
|
238
|
+
<Layout.PanelHeader isClosable title="Details" onClose={() => setIsOpen(false)} />
|
|
239
|
+
<Layout.Content>
|
|
240
|
+
<Text>Panel with backdrop overlay</Text>
|
|
241
|
+
</Layout.Content>
|
|
242
|
+
</Layout.Panel>
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Set `isDismissable={false}` to prevent automatic dismissal.
|
|
246
|
+
|
|
247
|
+
### Dialog Mode Panel
|
|
248
|
+
|
|
249
|
+
Panels with `mode="dialog"` render as a modal dialog instead of inline.
|
|
250
|
+
|
|
251
|
+
```jsx live=false
|
|
252
|
+
<Layout.Panel
|
|
253
|
+
mode="dialog" {/* renders as modal overlay instead of inline */}
|
|
254
|
+
side="left"
|
|
255
|
+
size={300}
|
|
256
|
+
isDialogOpen={isOpen}
|
|
257
|
+
onDialogOpenChange={setIsOpen}
|
|
258
|
+
>
|
|
259
|
+
<Layout.PanelHeader isClosable title="Settings" onClose={() => setIsOpen(false)} />
|
|
260
|
+
<Layout.Content> {/* flex column ↓, scrollable */}
|
|
261
|
+
<Text>Panel content as dialog overlay</Text>
|
|
262
|
+
</Layout.Content>
|
|
263
|
+
</Layout.Panel>
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Use cases:**
|
|
267
|
+
- Mobile-responsive layouts where sidebars become modal dialogs
|
|
268
|
+
- Settings panels that need full focus
|
|
269
|
+
- Any panel that should overlay rather than push content
|
|
270
|
+
|
|
271
|
+
## Pane Patterns
|
|
272
|
+
|
|
273
|
+
### Resizable Panes
|
|
274
|
+
|
|
275
|
+
`Layout.Pane` creates inline resizable sections that participate in the flex flow (unlike `Panel` which is absolutely positioned).
|
|
276
|
+
|
|
277
|
+
```jsx live=false
|
|
278
|
+
<Layout.Flex> {/* flex row →, scrollable */}
|
|
279
|
+
<Layout.Pane
|
|
280
|
+
isResizable
|
|
281
|
+
resizeEdge="right" {/* inline in flex flow, not absolute */}
|
|
282
|
+
size={leftSize}
|
|
283
|
+
minSize={120}
|
|
284
|
+
maxSize={350}
|
|
285
|
+
onSizeChange={setLeftSize}
|
|
286
|
+
>
|
|
287
|
+
<Title level={5}>Left Pane</Title>
|
|
288
|
+
</Layout.Pane>
|
|
289
|
+
<Layout.Content width="min 150px"> {/* flex column ↓, scrollable, fills remaining space */}
|
|
290
|
+
<Title level={5}>Content</Title>
|
|
291
|
+
</Layout.Content>
|
|
292
|
+
</Layout.Flex>
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Panel vs Pane:**
|
|
296
|
+
|
|
297
|
+
- **`Position`** — Panel: Absolute (overlays layout); Pane: Inline (participates in flex)
|
|
298
|
+
- **`Use case`** — Panel: Sidebars, drawers; Pane: Split views, code editors
|
|
299
|
+
- **`Content adjustment`** — Panel: Pushes content via insets; Pane: Takes space in flex container
|
|
300
|
+
- **`resizeEdge`** — Panel: Based on `side` prop; Pane: `"right"` or `"bottom"`
|
|
301
|
+
|
|
302
|
+
## Advanced Patterns
|
|
303
|
+
|
|
304
|
+
### Nested Layouts
|
|
305
|
+
|
|
306
|
+
Layouts can be nested for complex structures.
|
|
307
|
+
|
|
308
|
+
```jsx live=false
|
|
309
|
+
<Layout height="400px"> {/* block, Inner: flex column ↓ */}
|
|
310
|
+
<Layout.Header title="Outer Layout" />
|
|
311
|
+
<Layout flow="row"> {/* block, Inner: flex row → */}
|
|
312
|
+
<Layout width="180px" border="right"> {/* block, Inner: flex column ↓ */}
|
|
313
|
+
<Layout.Content>Sidebar</Layout.Content> {/* flex column ↓, scrollable */}
|
|
314
|
+
</Layout>
|
|
315
|
+
<Layout> {/* block, Inner: flex column ↓ */}
|
|
316
|
+
<Layout.Toolbar>Inner Toolbar</Layout.Toolbar> {/* flex row →, single item aligns left */}
|
|
317
|
+
<Layout.Content>Inner content</Layout.Content> {/* flex column ↓, scrollable */}
|
|
318
|
+
</Layout>
|
|
319
|
+
</Layout>
|
|
320
|
+
</Layout>
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Grid Dashboard
|
|
324
|
+
|
|
325
|
+
Use `Layout.Grid` for grid-based layouts.
|
|
326
|
+
|
|
327
|
+
```jsx live=false
|
|
328
|
+
<Layout.Grid {/* grid 2×2, scrollable */}
|
|
329
|
+
columns="repeat(2, 1fr)"
|
|
330
|
+
rows="repeat(2, 1fr)"
|
|
331
|
+
gap="1x"
|
|
332
|
+
padding="1x"
|
|
333
|
+
>
|
|
334
|
+
<Card>Metrics</Card> {/* grid cell 1,1 */}
|
|
335
|
+
<Card>Charts</Card> {/* grid cell 1,2 */}
|
|
336
|
+
<Card>Activity</Card> {/* grid cell 2,1 */}
|
|
337
|
+
<Card>Stats</Card> {/* grid cell 2,2 */}
|
|
338
|
+
</Layout.Grid>
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Container Layout
|
|
342
|
+
|
|
343
|
+
Use `Layout.Container` for content that should be horizontally centered with a constrained max-width. Ideal for articles, forms, and focused content.
|
|
344
|
+
|
|
345
|
+
```jsx live=false
|
|
346
|
+
<Layout.Container> {/* flex column ↓, scrollable, horizontally centered */}
|
|
347
|
+
<Title>Article Title</Title> {/* constrained width: min 40x, max 120x */}
|
|
348
|
+
<Text>Content is centered with a comfortable reading width.</Text>
|
|
349
|
+
<Space>
|
|
350
|
+
<Button>Previous</Button>
|
|
351
|
+
<Button type="primary">Next</Button>
|
|
352
|
+
</Space>
|
|
353
|
+
</Layout.Container>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Use cases:**
|
|
357
|
+
- Article or documentation pages
|
|
358
|
+
- Forms and settings pages
|
|
359
|
+
- Any content that benefits from constrained width
|
|
360
|
+
|
|
361
|
+
### Center Layout
|
|
362
|
+
|
|
363
|
+
Use `Layout.Center` for content that should be centered both horizontally and vertically. Ideal for empty states, loading screens, and hero sections.
|
|
364
|
+
|
|
365
|
+
```jsx live=false
|
|
366
|
+
<Layout.Center> {/* flex column ↓, scrollable, centered both axes */}
|
|
367
|
+
<Title>No Results Found</Title> {/* text-align: center by default */}
|
|
368
|
+
<Text>Try adjusting your search criteria.</Text>
|
|
369
|
+
<Button type="primary">Clear Filters</Button>
|
|
370
|
+
</Layout.Center>
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
**Use cases:**
|
|
374
|
+
- Empty states ("No items found")
|
|
375
|
+
- Loading screens
|
|
376
|
+
- Welcome/onboarding screens
|
|
377
|
+
- Error pages (404, 500)
|
|
378
|
+
|
|
379
|
+
### When to Use Container vs Center
|
|
380
|
+
|
|
381
|
+
- **Article/documentation content** — `Layout.Container`
|
|
382
|
+
- **Forms with top-aligned content** — `Layout.Container`
|
|
383
|
+
- **Empty states** — `Layout.Center`
|
|
384
|
+
- **Loading/splash screens** — `Layout.Center`
|
|
385
|
+
- **Error pages** — `Layout.Center`
|
|
386
|
+
|
|
387
|
+
## Using Space Component
|
|
388
|
+
|
|
389
|
+
`Space` is a simple flex wrapper for arranging elements inline.
|
|
390
|
+
|
|
391
|
+
```jsx live=false
|
|
392
|
+
// Horizontal (default)
|
|
393
|
+
<Space gap="1x"> {/* flex row → */}
|
|
394
|
+
<Button>One</Button>
|
|
395
|
+
<Button>Two</Button>
|
|
396
|
+
</Space>
|
|
397
|
+
|
|
398
|
+
// Vertical
|
|
399
|
+
<Space direction="vertical" gap="1x">{/* flex column ↓ */}
|
|
400
|
+
<Button>One</Button>
|
|
401
|
+
<Button>Two</Button>
|
|
402
|
+
</Space>
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### When to Use Space vs Layout.Flex
|
|
406
|
+
|
|
407
|
+
- **Inline button groups** — `Space`
|
|
408
|
+
- **Quick horizontal/vertical arrangement** — `Space`
|
|
409
|
+
- **Scrollable flex container** — `Layout.Flex`
|
|
410
|
+
- **Part of Layout structure** — `Layout.Flex`
|
|
411
|
+
- **Standalone flex wrapper** — `Space`
|
|
412
|
+
|
|
413
|
+
## Sub-Components Reference
|
|
414
|
+
|
|
415
|
+
- **`Layout`** — Root wrapper, provides context
|
|
416
|
+
- **`Layout.Content`** — Scrollable content area, fills available space
|
|
417
|
+
- **`Layout.Container`** — Horizontally centered content with constrained width
|
|
418
|
+
- **`Layout.Center`** — Centered content (both axes) with text-align center
|
|
419
|
+
- **`Layout.Header`** — Page header with title, breadcrumbs, actions
|
|
420
|
+
- **`Layout.Footer`** — Footer bar, typically for actions
|
|
421
|
+
- **`Layout.Toolbar`** — Horizontal bar with space-between layout
|
|
422
|
+
- **`Layout.Panel`** — Side panel with modes: default, sticky, overlay, dialog
|
|
423
|
+
- **`Layout.PanelHeader`** — Header for panels with close button
|
|
424
|
+
- **`Layout.Pane`** — Inline resizable section
|
|
425
|
+
- **`Layout.Flex`** — Scrollable flex container
|
|
426
|
+
- **`Layout.Grid`** — Scrollable grid container
|
|
427
|
+
- **`Layout.Block`** — Simple block container
|
|
428
|
+
|
|
429
|
+
## Common Props
|
|
430
|
+
|
|
431
|
+
### Layout
|
|
432
|
+
|
|
433
|
+
- `height` - Layout height (required for proper containment)
|
|
434
|
+
- `contentPadding` - Default padding for content areas
|
|
435
|
+
- `hasTransition` - Enable slide animations for panels
|
|
436
|
+
- `flow` - Flex direction for inner content
|
|
437
|
+
|
|
438
|
+
### Content Components
|
|
439
|
+
|
|
440
|
+
All content components (`Content`, `Header`, `Footer`, `Toolbar`, `Flex`, `Grid`) support:
|
|
441
|
+
|
|
442
|
+
- `padding` - Inner padding
|
|
443
|
+
- `scrollbar` - Scrollbar style: `"default"`, `"thin"`, `"tiny"`, `"none"`
|
|
444
|
+
- `gap` - Gap between children
|
|
445
|
+
|
|
446
|
+
## Recommended Topics
|
|
447
|
+
|
|
448
|
+
The following topics would be valuable additions to this documentation:
|
|
449
|
+
|
|
450
|
+
1. **Responsive Layouts** - Media query patterns for adapting layouts to different screen sizes
|
|
451
|
+
2. **Animation Patterns** - Using `hasTransition` effectively, custom transition timing
|
|
452
|
+
3. **Keyboard Navigation** - Focus management within layouts, panel accessibility
|
|
453
|
+
4. **State Persistence** - Panel sizes can be persisted using `sizeStorageKey` (see Persistent Panel Size). Open states could be added similarly.
|
|
454
|
+
5. **Performance Optimization** - Best practices for large content areas, virtualization
|
|
455
|
+
6. **Testing Layouts** - Strategies for testing layout components
|
|
456
|
+
7. **Integration with Router** - Layouts with route-based content switching
|
|
457
|
+
8. **Dark Mode Support** - Theme-aware layout styling
|
|
458
|
+
9. **Print Layouts** - Adapting layouts for print media
|
|
459
|
+
10. **Mobile Patterns** - Touch interactions, swipe gestures for panels
|