@cube-dev/ui-kit 0.0.0-canary-c210a8c → 0.0.0-canary-60981ef
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/hooks/use-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/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/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 +1 -1
- 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 +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/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 +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 +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/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 +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.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/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/ComplexLayout.md +469 -0
- package/docs/CreateComponent.md +410 -0
- package/docs/Introduction.md +122 -0
- package/docs/RenderCache.md +172 -0
- package/docs/Result.md +35 -0
- package/docs/SimpleLayout.md +26 -0
- package/docs/Typography.md +38 -0
- package/docs/components/CollectionItem.md +299 -0
- package/docs/components/actions/Banner.md +189 -0
- package/docs/components/actions/Button.md +183 -0
- package/docs/components/actions/ButtonSplit.md +189 -0
- package/docs/components/actions/CommandMenu.md +430 -0
- package/docs/components/actions/ItemButton.md +304 -0
- package/docs/components/actions/Link.md +325 -0
- package/docs/components/actions/Menu.md +509 -0
- package/docs/components/actions/use-anchored-menu.md +211 -0
- package/docs/components/actions/use-context-menu.md +220 -0
- package/docs/components/content/Badge.md +187 -0
- package/docs/components/content/Disclosure.md +177 -0
- package/docs/components/content/HotKeys.md +352 -0
- package/docs/components/content/Item.md +488 -0
- package/docs/components/content/ItemCard.md +125 -0
- package/docs/components/content/Layout.md +866 -0
- package/docs/components/content/Tag.md +156 -0
- package/docs/components/content/TextItem.md +211 -0
- package/docs/components/fields/Checkbox.md +180 -0
- package/docs/components/fields/ComboBox.md +617 -0
- package/docs/components/fields/DatePicker.md +231 -0
- package/docs/components/fields/FileInput.md +197 -0
- package/docs/components/fields/FilterListBox.md +703 -0
- package/docs/components/fields/FilterPicker.md +736 -0
- package/docs/components/fields/HueSlider.md +175 -0
- package/docs/components/fields/ListBox.md +691 -0
- package/docs/components/fields/NumberInput.md +184 -0
- package/docs/components/fields/PasswordInput.md +218 -0
- package/docs/components/fields/Picker.md +884 -0
- package/docs/components/fields/RadioGroup.md +314 -0
- package/docs/components/fields/SearchInput.md +227 -0
- package/docs/components/fields/Select.md +583 -0
- package/docs/components/fields/Slider.md +53 -0
- package/docs/components/fields/Switch.md +174 -0
- package/docs/components/fields/TextArea.md +61 -0
- package/docs/components/fields/TextInput.md +204 -0
- package/docs/components/fields/TextInputMapper.md +34 -0
- package/docs/components/form/Field.md +341 -0
- package/docs/components/form/Form.md +455 -0
- package/docs/components/form/FormInstance.md +319 -0
- package/docs/components/helpers/DisplayTransition.md +259 -0
- package/docs/components/helpers/IconSwitch.md +156 -0
- package/docs/components/navigation/Tabs.md +704 -0
- package/docs/components/overlays/Dialog.md +202 -0
- package/docs/components/overlays/DialogContainer.md +201 -0
- package/docs/components/overlays/DialogForm.md +290 -0
- package/docs/components/overlays/DialogTrigger.md +191 -0
- package/docs/components/overlays/Notifications.md +406 -0
- package/docs/components/overlays/Toast.md +285 -0
- package/docs/components/overlays/Tooltip.md +371 -0
- package/docs/components/overlays/UseDialogContainer.md +603 -0
- package/package.json +1 -1
- package/docs/.gitignore +0 -3
package/docs/Result.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Result
|
|
2
|
+
|
|
3
|
+
Used to feed back the results of a series of operational tasks.
|
|
4
|
+
|
|
5
|
+
## When To Use
|
|
6
|
+
|
|
7
|
+
Use when important operations need to inform the user to process the results and the feedback is more complicated.
|
|
8
|
+
|
|
9
|
+
## Examples
|
|
10
|
+
|
|
11
|
+
### Success
|
|
12
|
+
|
|
13
|
+
### Info
|
|
14
|
+
|
|
15
|
+
### Warning
|
|
16
|
+
|
|
17
|
+
### Error
|
|
18
|
+
|
|
19
|
+
### Custom Icon
|
|
20
|
+
|
|
21
|
+
### Custom Title
|
|
22
|
+
|
|
23
|
+
### Compact
|
|
24
|
+
|
|
25
|
+
## API
|
|
26
|
+
|
|
27
|
+
## Differences from Ant Design
|
|
28
|
+
|
|
29
|
+
| There are differences | Ant Design property | Cube UIKit property |
|
|
30
|
+
| :-------------------: | :-----------------: | :-----------------: |
|
|
31
|
+
| No | `status` | `status` |
|
|
32
|
+
| No | `title` | `title` |
|
|
33
|
+
| Yes | `subTitle` | `subtitle` |
|
|
34
|
+
| No | `icon` | `icon` |
|
|
35
|
+
| Yes | `extra` | `children` |
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Layout examples
|
|
2
|
+
|
|
3
|
+
## Flow layout
|
|
4
|
+
|
|
5
|
+
Flow Component is used to create gaps between blocks inside block layout.
|
|
6
|
+
|
|
7
|
+
## Flex layout
|
|
8
|
+
|
|
9
|
+
Use Space Component to create a row or a column of elements.
|
|
10
|
+
|
|
11
|
+
Use Flex Component for more flexible layouts.
|
|
12
|
+
|
|
13
|
+
## Grid layout
|
|
14
|
+
|
|
15
|
+
Use Grid Component for grid layouts.
|
|
16
|
+
|
|
17
|
+
### Simple layout with side bar.
|
|
18
|
+
|
|
19
|
+
```jsx
|
|
20
|
+
<Grid gridColumns="200px 1fr" gridRows="60px 1fr" height="500px">
|
|
21
|
+
<Card gridColumn="1 / -1">Header</Card>
|
|
22
|
+
<Card>Sidebar</Card>
|
|
23
|
+
<Card>Content</Card>
|
|
24
|
+
</Grid>
|
|
25
|
+
```
|
|
26
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Typography
|
|
2
|
+
|
|
3
|
+
There are many ways to create typography elements like text labels and headings. You can use complete components, presets or low-level styles to get exact text label you want.
|
|
4
|
+
|
|
5
|
+
## Typography Components
|
|
6
|
+
|
|
7
|
+
### Headings
|
|
8
|
+
|
|
9
|
+
### Paragraphs
|
|
10
|
+
|
|
11
|
+
Paragraphs with gaps between them.
|
|
12
|
+
|
|
13
|
+
### Text labels
|
|
14
|
+
|
|
15
|
+
### Links
|
|
16
|
+
|
|
17
|
+
Use `!` prefix to open link in new tab.
|
|
18
|
+
|
|
19
|
+
```jsx
|
|
20
|
+
(
|
|
21
|
+
<Link to="https://cube-uikit-storybook.netlify.app/">
|
|
22
|
+
Open Cube Cloud UI Kit
|
|
23
|
+
</Link>
|
|
24
|
+
) |
|
|
25
|
+
(
|
|
26
|
+
<Link to="!https://cube-uikit-storybook.netlify.app/">
|
|
27
|
+
Open Cube Cloud UI Kit in new tab
|
|
28
|
+
</Link>
|
|
29
|
+
);
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Use `@` prefix to navigate to the new page without using the Router.
|
|
33
|
+
|
|
34
|
+
```jsx
|
|
35
|
+
<Link to="@">Reload this page</Link> |
|
|
36
|
+
<Link to="@/">Move to the Main Page</Link>;
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
# CollectionItem
|
|
2
|
+
|
|
3
|
+
`CollectionItem` is the building block for all collection-based components in the UI Kit, providing a consistent API for list items, menu options, and selectors.
|
|
4
|
+
|
|
5
|
+
## Used By
|
|
6
|
+
|
|
7
|
+
ListBox, FilterListBox, Select, ComboBox, FilterPicker, Picker, Menu, CommandMenu
|
|
8
|
+
|
|
9
|
+
## Usage Patterns
|
|
10
|
+
|
|
11
|
+
There are two ways to provide items to collection components:
|
|
12
|
+
|
|
13
|
+
### Static JSX
|
|
14
|
+
|
|
15
|
+
Define items directly. You **must** provide `key` props:
|
|
16
|
+
|
|
17
|
+
```jsx live=false
|
|
18
|
+
<ListBox>
|
|
19
|
+
<ListBox.Item key="apple">Apple</ListBox.Item>
|
|
20
|
+
<ListBox.Item key="banana">Banana</ListBox.Item>
|
|
21
|
+
</ListBox>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Data-driven (Recommended)
|
|
25
|
+
|
|
26
|
+
**🚨 IMPORTANT:** The `items` prop **must be an array of objects**, where each object contains at least an `id` or `key` property.
|
|
27
|
+
|
|
28
|
+
```jsx live=false
|
|
29
|
+
// ✅ Correct: Array of objects with id/key
|
|
30
|
+
const items = [
|
|
31
|
+
{ id: 'apple', name: 'Apple' },
|
|
32
|
+
{ id: 'banana', name: 'Banana' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
<ListBox items={items}>
|
|
36
|
+
{(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
|
|
37
|
+
</ListBox>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```jsx live=false
|
|
41
|
+
// ❌ Wrong: Array of strings won't work
|
|
42
|
+
const items = ['apple', 'banana']; // Don't do this!
|
|
43
|
+
|
|
44
|
+
// ❌ Wrong: Array of primitives won't work
|
|
45
|
+
const items = [1, 2, 3]; // Don't do this!
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Item Requirements
|
|
49
|
+
|
|
50
|
+
| Property | Required | Type | Purpose |
|
|
51
|
+
|----------|----------|------|---------|
|
|
52
|
+
| `id` or `key` | ✅ **Required** | `string \| number` | Unique identifier - **critical for selection callbacks** |
|
|
53
|
+
| `textValue` | ⚠️ Recommended | `string` | For filtering & accessibility |
|
|
54
|
+
|
|
55
|
+
**Without `id`/`key`:** React Aria falls back to using order-based keys (e.g., `"0"`, `"1"`), which breaks selection functionality in select components as these values are meaningless for identifying specific items.
|
|
56
|
+
|
|
57
|
+
**Without `textValue`:** Falls back to rendered content, then to key/id.
|
|
58
|
+
|
|
59
|
+
### Rules
|
|
60
|
+
|
|
61
|
+
```jsx live=false
|
|
62
|
+
// ✅ Using 'id'
|
|
63
|
+
const items = [
|
|
64
|
+
{ id: 'apple', name: 'Apple' },
|
|
65
|
+
{ id: 'banana', name: 'Banana' },
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
// ✅ Using 'key'
|
|
69
|
+
const items = [
|
|
70
|
+
{ key: 'apple', name: 'Apple' },
|
|
71
|
+
{ key: 'banana', name: 'Banana' },
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
// ✅ Consistent types
|
|
75
|
+
const items = [
|
|
76
|
+
{ id: '1', name: 'First' },
|
|
77
|
+
{ id: '2', name: 'Second' },
|
|
78
|
+
];
|
|
79
|
+
|
|
80
|
+
// ✅ Explicit textValue for complex content
|
|
81
|
+
const items = [{
|
|
82
|
+
id: 'user-1',
|
|
83
|
+
firstName: 'John',
|
|
84
|
+
lastName: 'Smith',
|
|
85
|
+
textValue: 'John Smith',
|
|
86
|
+
}];
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Always provide explicit `textValue` for:**
|
|
90
|
+
- Icons/images without text
|
|
91
|
+
- Formatted/complex content
|
|
92
|
+
- Non-readable keys (UUIDs)
|
|
93
|
+
- Searchable components (ComboBox, FilterListBox, FilterPicker, CommandMenu)
|
|
94
|
+
|
|
95
|
+
## Properties
|
|
96
|
+
|
|
97
|
+
Extends all [Item component](./content/Item.md) props:
|
|
98
|
+
|
|
99
|
+
- `children` - Item content
|
|
100
|
+
- `icon` / `rightIcon` - Icons
|
|
101
|
+
- `prefix` / `suffix` - Additional content
|
|
102
|
+
- `description` - Secondary text
|
|
103
|
+
- `textValue` - Text for filtering/accessibility
|
|
104
|
+
- `onAction` - Action handler (Menu items)
|
|
105
|
+
|
|
106
|
+
## Examples
|
|
107
|
+
|
|
108
|
+
### Basic
|
|
109
|
+
|
|
110
|
+
```jsx live=false
|
|
111
|
+
const permissions = [
|
|
112
|
+
{ id: 'read', name: 'Read' },
|
|
113
|
+
{ id: 'write', name: 'Write' },
|
|
114
|
+
];
|
|
115
|
+
|
|
116
|
+
<ListBox items={permissions}>
|
|
117
|
+
{(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
|
|
118
|
+
</ListBox>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### With Icons
|
|
122
|
+
|
|
123
|
+
```jsx live=false
|
|
124
|
+
import { IconFile, IconFolder } from '@tabler/icons-react';
|
|
125
|
+
|
|
126
|
+
const items = [
|
|
127
|
+
{ id: 'file', name: 'File', icon: <IconFile /> },
|
|
128
|
+
{ id: 'folder', name: 'Folder', icon: <IconFolder /> },
|
|
129
|
+
];
|
|
130
|
+
|
|
131
|
+
<Menu items={items}>
|
|
132
|
+
{(item) => <Menu.Item key={item.id} icon={item.icon}>{item.name}</Menu.Item>}
|
|
133
|
+
</Menu>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### With Descriptions
|
|
137
|
+
|
|
138
|
+
```jsx live=false
|
|
139
|
+
const users = [
|
|
140
|
+
{
|
|
141
|
+
id: '1',
|
|
142
|
+
name: 'John Smith',
|
|
143
|
+
email: 'john@example.com',
|
|
144
|
+
textValue: 'John Smith john@example.com',
|
|
145
|
+
},
|
|
146
|
+
];
|
|
147
|
+
|
|
148
|
+
<ComboBox items={users}>
|
|
149
|
+
{(item) => (
|
|
150
|
+
<ComboBox.Item key={item.id} description={item.email}>
|
|
151
|
+
{item.name}
|
|
152
|
+
</ComboBox.Item>
|
|
153
|
+
)}
|
|
154
|
+
</ComboBox>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### With Sections
|
|
158
|
+
|
|
159
|
+
```jsx live=false
|
|
160
|
+
<ListBox>
|
|
161
|
+
<ListBox.Section title="Fruits">
|
|
162
|
+
<ListBox.Item key="apple">Apple</ListBox.Item>
|
|
163
|
+
<ListBox.Item key="banana">Banana</ListBox.Item>
|
|
164
|
+
</ListBox.Section>
|
|
165
|
+
<ListBox.Section title="Vegetables">
|
|
166
|
+
<ListBox.Item key="carrot">Carrot</ListBox.Item>
|
|
167
|
+
</ListBox.Section>
|
|
168
|
+
</ListBox>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Disabled Items
|
|
172
|
+
|
|
173
|
+
```jsx live=false
|
|
174
|
+
const items = [
|
|
175
|
+
{ id: 'read', name: 'Read' },
|
|
176
|
+
{ id: 'write', name: 'Write' },
|
|
177
|
+
{ id: 'delete', name: 'Delete', disabled: true },
|
|
178
|
+
];
|
|
179
|
+
|
|
180
|
+
<ListBox
|
|
181
|
+
items={items}
|
|
182
|
+
disabledKeys={items.filter(i => i.disabled).map(i => i.id)}
|
|
183
|
+
>
|
|
184
|
+
{(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
|
|
185
|
+
</ListBox>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Best Practices
|
|
189
|
+
|
|
190
|
+
```jsx live=false
|
|
191
|
+
// ✅ Items must be an array of objects
|
|
192
|
+
const items = [{ id: 'user-1', name: 'John' }];
|
|
193
|
+
|
|
194
|
+
// ✅ Always provide id/key in each object
|
|
195
|
+
const items = [
|
|
196
|
+
{ id: 'apple', name: 'Apple' },
|
|
197
|
+
{ id: 'banana', name: 'Banana' },
|
|
198
|
+
];
|
|
199
|
+
|
|
200
|
+
// ✅ Always pass key prop to Item
|
|
201
|
+
<ListBox items={items}>
|
|
202
|
+
{(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
|
|
203
|
+
</ListBox>
|
|
204
|
+
|
|
205
|
+
// ✅ Consistent types for id/key
|
|
206
|
+
const items = [
|
|
207
|
+
{ id: '1', name: 'First' },
|
|
208
|
+
{ id: '2', name: 'Second' },
|
|
209
|
+
];
|
|
210
|
+
|
|
211
|
+
// ✅ Explicit textValue for complex content
|
|
212
|
+
const items = [{
|
|
213
|
+
id: 'user-1',
|
|
214
|
+
name: 'John Smith',
|
|
215
|
+
textValue: 'John Smith',
|
|
216
|
+
}];
|
|
217
|
+
|
|
218
|
+
// ✅ Memoize large collections
|
|
219
|
+
const items = useMemo(
|
|
220
|
+
() => data.map(d => ({ id: d.id, name: d.name })),
|
|
221
|
+
[data]
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
// ❌ Don't pass array of strings
|
|
225
|
+
const items = ['apple', 'banana']; // Wrong!
|
|
226
|
+
|
|
227
|
+
// ❌ Don't pass array of numbers
|
|
228
|
+
const items = [1, 2, 3]; // Wrong!
|
|
229
|
+
|
|
230
|
+
// ❌ Don't omit key prop
|
|
231
|
+
<ListBox items={items}>
|
|
232
|
+
{(item) => <ListBox.Item>{item.name}</ListBox.Item>}
|
|
233
|
+
</ListBox>
|
|
234
|
+
|
|
235
|
+
// ❌ Don't omit id/key in objects
|
|
236
|
+
const items = [
|
|
237
|
+
{ name: 'First' }, // Missing id!
|
|
238
|
+
{ name: 'Second' }, // Missing id!
|
|
239
|
+
];
|
|
240
|
+
|
|
241
|
+
// ❌ Don't mix types
|
|
242
|
+
const items = [
|
|
243
|
+
{ id: 1, name: 'First' },
|
|
244
|
+
{ id: '2', name: 'Second' },
|
|
245
|
+
];
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## TypeScript
|
|
249
|
+
|
|
250
|
+
```tsx live=false
|
|
251
|
+
interface User {
|
|
252
|
+
id: string; // Required!
|
|
253
|
+
name: string;
|
|
254
|
+
textValue?: string;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const items: User[] = [
|
|
258
|
+
{ id: '1', name: 'John', textValue: 'John' },
|
|
259
|
+
];
|
|
260
|
+
|
|
261
|
+
<ListBox items={items}>
|
|
262
|
+
{(item: User) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
|
|
263
|
+
</ListBox>
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Quick Reference
|
|
267
|
+
|
|
268
|
+
| Approach | Key Prop | Source |
|
|
269
|
+
|----------|----------|--------|
|
|
270
|
+
| Static JSX | ✅ Required | Hardcoded value |
|
|
271
|
+
| Data-driven (`items`) | ✅ Required | Pass `item.key` or `item.id` |
|
|
272
|
+
| Using `.map()` | ✅ Required | Pass `item.key` or `item.id` |
|
|
273
|
+
|
|
274
|
+
| Component | Selection | Search |
|
|
275
|
+
|-----------|-----------|--------|
|
|
276
|
+
| ListBox | Single/Multiple | ❌ |
|
|
277
|
+
| FilterListBox | Single/Multiple | ✅ |
|
|
278
|
+
| Select | Single | ❌ |
|
|
279
|
+
| ComboBox | Single | ✅ |
|
|
280
|
+
| FilterPicker | Single/Multiple | ✅ |
|
|
281
|
+
| Picker | Single/Multiple | ❌ |
|
|
282
|
+
| Menu | Single action | ❌ |
|
|
283
|
+
| CommandMenu | Single action | ✅ |
|
|
284
|
+
|
|
285
|
+
## Essential Rules
|
|
286
|
+
|
|
287
|
+
1. **🚨 The `items` prop must be an array of objects** - Never pass arrays of strings, numbers, or other primitives. Each object must have an `id` or `key` property.
|
|
288
|
+
2. **🚨 Always provide `id` or `key` in each object** - Required for selection callbacks to work properly. Without it, React Aria uses order-based keys which are useless in select components.
|
|
289
|
+
3. **🚨 Always pass `key` prop to Item** - Must explicitly pass `key={item.id}` or `key={item.key}` in the render function
|
|
290
|
+
4. **Provide explicit `textValue`** - For icons, complex content, or searchable components
|
|
291
|
+
5. **Use consistent types** - All strings or all numbers, never mixed
|
|
292
|
+
|
|
293
|
+
## Related Components
|
|
294
|
+
|
|
295
|
+
- [Item](./content/Item.md) - Base item component
|
|
296
|
+
- [ListBox](./fields/ListBox.md) - List with selection
|
|
297
|
+
- [Select](./fields/Select.md) - Dropdown selector
|
|
298
|
+
- [ComboBox](./fields/ComboBox.md) - Searchable input
|
|
299
|
+
- [Menu](./actions/Menu.md) - Action menu
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Banner
|
|
2
|
+
|
|
3
|
+
Banner displays prominent messages and notifications to users. It supports different visual themes with appropriate icons and can include action buttons and inline links.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- Display system-wide notifications or alerts that require user attention
|
|
8
|
+
- Show billing, subscription, or account status warnings
|
|
9
|
+
- Communicate deployment errors or operational issues
|
|
10
|
+
- Provide contextual information with optional calls-to-action
|
|
11
|
+
|
|
12
|
+
## Component
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### Properties
|
|
17
|
+
|
|
18
|
+
### Base Properties
|
|
19
|
+
|
|
20
|
+
Supports [Base properties](../../tasty/tasty.md)
|
|
21
|
+
|
|
22
|
+
### Styling Properties
|
|
23
|
+
|
|
24
|
+
#### styles
|
|
25
|
+
|
|
26
|
+
Customizes the root element of the component.
|
|
27
|
+
|
|
28
|
+
**Sub-elements:**
|
|
29
|
+
- `Label` - The main text content area
|
|
30
|
+
- `Actions` - Container for action buttons
|
|
31
|
+
|
|
32
|
+
### Modifiers
|
|
33
|
+
|
|
34
|
+
The `mods` property accepts the following modifiers you can override:
|
|
35
|
+
|
|
36
|
+
| Modifier | Type | Description |
|
|
37
|
+
|----------|------|-------------|
|
|
38
|
+
| theme | `'danger' \| 'warning' \| 'note' \| 'success'` | Visual theme of the banner |
|
|
39
|
+
|
|
40
|
+
## Variants
|
|
41
|
+
|
|
42
|
+
### Themes
|
|
43
|
+
|
|
44
|
+
- `note` (default) - Informational messages, tips, or neutral notifications
|
|
45
|
+
- `warning` - Alerts that require attention but are not critical
|
|
46
|
+
- `danger` - Critical errors or issues that need immediate action
|
|
47
|
+
- `success` - Confirmation of successful operations
|
|
48
|
+
|
|
49
|
+
## Sub-components
|
|
50
|
+
|
|
51
|
+
### Banner.Action
|
|
52
|
+
|
|
53
|
+
Action button styled to match the banner's theme. Use for primary calls-to-action.
|
|
54
|
+
|
|
55
|
+
```jsx
|
|
56
|
+
<Banner theme="warning" actions={<Banner.Action to="/upgrade">Upgrade Plan</Banner.Action>}>
|
|
57
|
+
You are approaching your monthly API request limit.
|
|
58
|
+
</Banner>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Banner.Link
|
|
62
|
+
|
|
63
|
+
Inline link styled with white color and underline. Use for links within the banner's text content.
|
|
64
|
+
|
|
65
|
+
```jsx
|
|
66
|
+
<Banner theme="danger">
|
|
67
|
+
<Banner.Link to="https://docs.example.com">Daily limit</Banner.Link> exceeded.
|
|
68
|
+
Please contact support.
|
|
69
|
+
</Banner>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Examples
|
|
73
|
+
|
|
74
|
+
### Basic Banner
|
|
75
|
+
|
|
76
|
+
```jsx
|
|
77
|
+
<Banner theme="note">
|
|
78
|
+
Scheduled maintenance will occur on Sunday at 2:00 AM UTC.
|
|
79
|
+
</Banner>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Dismissible Banner
|
|
83
|
+
|
|
84
|
+
```jsx
|
|
85
|
+
<Banner theme="success" isDismissable onDismiss={() => console.log('Dismissed')}>
|
|
86
|
+
Your deployment has been successfully updated.
|
|
87
|
+
</Banner>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Banner with Actions
|
|
91
|
+
|
|
92
|
+
```jsx
|
|
93
|
+
<Banner
|
|
94
|
+
theme="danger"
|
|
95
|
+
actions={
|
|
96
|
+
<>
|
|
97
|
+
<Banner.Action to="/billing">Go to Billing</Banner.Action>
|
|
98
|
+
<Banner.Action onPress={() => openChat()}>Contact us</Banner.Action>
|
|
99
|
+
</>
|
|
100
|
+
}
|
|
101
|
+
>
|
|
102
|
+
Your account has been suspended due to payment failure.
|
|
103
|
+
</Banner>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Banner with Inline Links
|
|
107
|
+
|
|
108
|
+
```jsx
|
|
109
|
+
<Banner theme="warning" actions={<Banner.Action>Upgrade tier</Banner.Action>}>
|
|
110
|
+
The selected time range exceeds{' '}
|
|
111
|
+
<Banner.Link to="https://docs.example.com/retention">
|
|
112
|
+
the retention period
|
|
113
|
+
</Banner.Link>
|
|
114
|
+
. To extend this period, please upgrade or contact us.
|
|
115
|
+
</Banner>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Stacked Banners
|
|
119
|
+
|
|
120
|
+
Use `shape="sharp"` when stacking multiple banners to remove gaps between them.
|
|
121
|
+
|
|
122
|
+
```jsx
|
|
123
|
+
<Flex flow="column">
|
|
124
|
+
<Banner theme="danger" shape="sharp">Critical alert</Banner>
|
|
125
|
+
<Banner theme="warning" shape="sharp">Warning message</Banner>
|
|
126
|
+
<Banner theme="note" shape="sharp">Information</Banner>
|
|
127
|
+
</Flex>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Custom Icon
|
|
131
|
+
|
|
132
|
+
```jsx
|
|
133
|
+
import { IconBell } from '@tabler/icons-react';
|
|
134
|
+
|
|
135
|
+
<Banner theme="note" icon={<IconBell />} isDismissable>
|
|
136
|
+
You have new notifications.
|
|
137
|
+
</Banner>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Accessibility
|
|
141
|
+
|
|
142
|
+
### Keyboard Navigation
|
|
143
|
+
|
|
144
|
+
- `Tab` - Moves focus to action buttons within the banner
|
|
145
|
+
- `Space/Enter` - Activates focused action button or dismiss button
|
|
146
|
+
|
|
147
|
+
### Screen Reader Support
|
|
148
|
+
|
|
149
|
+
- Banner has `role="status"` to announce content changes
|
|
150
|
+
- Dismiss button includes tooltip "Hide banner" for accessibility
|
|
151
|
+
|
|
152
|
+
### ARIA Properties
|
|
153
|
+
|
|
154
|
+
- `role="status"` - Announces the banner as a status message
|
|
155
|
+
- Action buttons inherit proper focus management from Item.Action
|
|
156
|
+
|
|
157
|
+
## Best Practices
|
|
158
|
+
|
|
159
|
+
1. **Do**: Use appropriate theme for the message severity
|
|
160
|
+
|
|
161
|
+
```jsx
|
|
162
|
+
<Banner theme="danger">Critical error requiring immediate action</Banner>
|
|
163
|
+
<Banner theme="warning">Warning that needs attention</Banner>
|
|
164
|
+
<Banner theme="note">Informational message</Banner>
|
|
165
|
+
<Banner theme="success">Success confirmation</Banner>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
2. **Do**: Keep banner messages concise and actionable
|
|
169
|
+
|
|
170
|
+
```jsx
|
|
171
|
+
<Banner theme="warning" actions={<Banner.Action>Upgrade</Banner.Action>}>
|
|
172
|
+
API usage at 85% of monthly limit.
|
|
173
|
+
</Banner>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
3. **Don't**: Use banners for non-important information that doesn't need prominent display
|
|
177
|
+
|
|
178
|
+
4. **Do**: Use Banner.Link for inline links within content, Banner.Action for buttons
|
|
179
|
+
|
|
180
|
+
```jsx
|
|
181
|
+
<Banner theme="danger" actions={<Banner.Action>Contact us</Banner.Action>}>
|
|
182
|
+
<Banner.Link to="/docs/limits">Daily limit</Banner.Link> exceeded.
|
|
183
|
+
</Banner>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Related Components
|
|
187
|
+
|
|
188
|
+
- [Item](../content/Item.md) - Base component that Banner extends
|
|
189
|
+
- ItemAction - Action button component used by Banner.Action
|