@cube-dev/ui-kit 0.0.0-canary-bca8d09 → 0.0.0-canary-ec0a7f1
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 +43 -54
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +9 -14
- package/dist/components/Root.js.map +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 +3 -3
- package/dist/components/actions/CommandMenu/styled.js.map +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 +5 -5
- package/dist/components/actions/Menu/styled.js.map +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 +2 -2
- package/dist/components/content/Card/Card.js.map +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 +2 -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/InlineInput/InlineInput.d.ts +84 -0
- package/dist/components/content/InlineInput/InlineInput.js +249 -0
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -0
- package/dist/components/content/InlineInput/index.d.ts +2 -0
- package/dist/components/content/Item/Item.js +2 -2
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +2 -2
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +3 -3
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +5 -5
- package/dist/components/fields/Checkbox/Checkbox.js.map +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 +2 -2
- package/dist/components/fields/ComboBox/ComboBox.js.map +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 +3 -3
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/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 +4 -4
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +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 +5 -5
- 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 +3 -3
- package/dist/components/fields/Slider/elements.js.map +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +2 -2
- package/dist/components/fields/Switch/Switch.js.map +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 +3 -3
- package/dist/components/fields/TextInput/TextInputBase.js.map +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 +2 -2
- package/dist/components/layout/ResizablePanel.js.map +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +24 -21
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +2 -6
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
- package/dist/components/navigation/Tabs/styled.js +4 -26
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +7 -13
- package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
- package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +2 -2
- package/dist/components/organisms/StatsCard/StatsCard.js.map +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/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +7 -7
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +7 -23
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +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 +115 -114
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.d.ts +17 -17
- package/dist/data/themes.js +18 -18
- package/dist/data/themes.js.map +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/colors.d.ts +3 -4
- package/dist/tokens/colors.js +83 -93
- package/dist/tokens/colors.js.map +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/shadows.d.ts +1 -4
- package/dist/tokens/shadows.js +6 -9
- package/dist/tokens/shadows.js.map +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.d.ts +0 -3
- package/dist/version.js +5 -13
- package/dist/version.js.map +1 -1
- package/docs/Usage.md +29 -97
- package/docs/components/content/Card.md +1 -1
- package/docs/components/content/InlineInput.md +277 -0
- package/docs/components/content/PrismCode.md +0 -21
- package/docs/components/form/Field.md +1 -1
- package/docs/components/layout/ResizablePanel.md +1 -1
- package/docs/components/navigation/Tabs.md +1 -1
- package/docs/components/organisms/FileTabs.md +1 -1
- package/docs/components/organisms/StatsCard.md +1 -1
- package/docs/tasty/configuration.md +0 -44
- package/docs/tasty/dsl.md +13 -14
- package/docs/tasty/methodology.md +0 -26
- package/docs/tasty/react-api.md +0 -24
- package/docs/tasty/ssr.md +3 -5
- package/docs/tasty/styles.md +7 -9
- package/docs/tasty/tasty-static.md +0 -15
- package/package.json +8 -10
- package/dist/components/navigation/Tabs/EditableTitle.js +0 -100
- package/dist/components/navigation/Tabs/EditableTitle.js.map +0 -1
- package/dist/tokens/palette.js +0 -351
- package/dist/tokens/palette.js.map +0 -1
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
# InlineInput
|
|
2
|
+
|
|
3
|
+
Inline editable text. Displays a value as inline content and swaps to an auto-sizing text input when entering edit mode. Designed to drop into any text context (tab title, heading, paragraph, table cell) without style customization — typography, color, and font family all inherit from the parent.
|
|
4
|
+
|
|
5
|
+
Unlike `TextInput`, `InlineInput` is intentionally **not** a form field. It manages its own commit lifecycle (`onSubmit` / `onCancel`) rather than participating in form validation.
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
- **Renameable items**: Tab titles, file names, board columns, list items
|
|
10
|
+
- **Edit-in-place fields**: Inline document titles, profile names, project labels
|
|
11
|
+
- **Lightweight string edits**: Cases where launching a modal or full form would be heavy
|
|
12
|
+
|
|
13
|
+
## When Not to Use
|
|
14
|
+
|
|
15
|
+
- **Form fields**: Use `TextInput` (with `<Form>` + `Field`) for inputs that need validation rules
|
|
16
|
+
- **Multi-line text**: Single-line only in this version (multiline planned)
|
|
17
|
+
- **Complex inputs**: Use a proper input component when you need masks, prefixes/suffixes, or rich validation
|
|
18
|
+
|
|
19
|
+
## Component
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
### Properties
|
|
24
|
+
|
|
25
|
+
- **`value`** `string` — Controlled value. When provided, the component is controlled.
|
|
26
|
+
- **`defaultValue`** `string` — Initial value for uncontrolled usage.
|
|
27
|
+
- **`onChange`** `(value: string) => void` — Fires on commit **only when the value actually changed**. Use this to update external state (controlled pattern).
|
|
28
|
+
- **`isEditing`** `boolean` — Controlled editing state. When provided, the editing state is controlled.
|
|
29
|
+
- **`defaultIsEditing`** `boolean` (default: `false`) — Default editing state for uncontrolled usage.
|
|
30
|
+
- **`onEditingChange`** `(isEditing: boolean) => void` — Called when editing mode starts or ends.
|
|
31
|
+
- **`onSubmit`** `(value: string) => void` — Fires every commit (Enter / submit-on-blur / `ref.stopEditing(true)`), even when the value did not change. Use for side effects (analytics, save toasts).
|
|
32
|
+
- **`onCancel`** `() => void` — Called when editing is cancelled (Escape or empty submit when `allowEmpty` is `false`).
|
|
33
|
+
- **`editTrigger`** `'dblclick' | 'click' | 'none'` (default: `dblclick`) — How edit mode is activated from the display element. Programmatic entry via `ref.startEditing()` works regardless.
|
|
34
|
+
- **`submitOnBlur`** `boolean` (default: `true`) — Whether to submit when focus leaves the input.
|
|
35
|
+
- **`trimOnSubmit`** `boolean` (default: `true`) — Whether to trim the value on submit.
|
|
36
|
+
- **`allowEmpty`** `boolean` (default: `false`) — When `false`, submitting an empty/whitespace value cancels instead.
|
|
37
|
+
- **`isDisabled`** `boolean` (default: `false`) — When `true`, edit mode cannot be entered (programmatically or otherwise).
|
|
38
|
+
- **`isReadOnly`** `boolean` (default: `false`) — When `true`, edit mode cannot be entered, but the display reads as enabled.
|
|
39
|
+
- **`placeholder`** `string` — Placeholder text shown in the input when the draft is empty.
|
|
40
|
+
- **`renderDisplay`** `(value: string) => ReactNode` — Custom render for display (non-editing) mode.
|
|
41
|
+
- **`inputStyles`** `Styles` — Convenience prop for styling the `Input` sub-element.
|
|
42
|
+
|
|
43
|
+
### Base Properties
|
|
44
|
+
|
|
45
|
+
Supports [Base properties](../../BaseProperties.md).
|
|
46
|
+
|
|
47
|
+
### Imperative Ref
|
|
48
|
+
|
|
49
|
+
The component exposes a ref with these methods:
|
|
50
|
+
|
|
51
|
+
- **`startEditing()`** — Programmatically enter edit mode. Always works regardless of `editTrigger`; blocked only by `isDisabled` / `isReadOnly`.
|
|
52
|
+
- **`stopEditing(submit?: boolean)`** — Programmatically exit edit mode. `submit=true` (default) commits, `submit=false` cancels.
|
|
53
|
+
- **`focus()`** — Focus the underlying element (input when editing, root span otherwise).
|
|
54
|
+
- **`getValue()`** — Get the current committed value.
|
|
55
|
+
|
|
56
|
+
### Styling Properties
|
|
57
|
+
|
|
58
|
+
#### styles
|
|
59
|
+
|
|
60
|
+
Customizes the root element of the component.
|
|
61
|
+
|
|
62
|
+
**Sub-elements:**
|
|
63
|
+
|
|
64
|
+
- `Input` — The text input rendered in edit mode
|
|
65
|
+
- `Measure` — The hidden text used to auto-size the input (rarely targeted)
|
|
66
|
+
|
|
67
|
+
#### inputStyles
|
|
68
|
+
|
|
69
|
+
Convenience prop equivalent to `styles={{ Input: { ... } }}`.
|
|
70
|
+
|
|
71
|
+
### Style Properties
|
|
72
|
+
|
|
73
|
+
These properties allow direct style application without using the `styles` prop:
|
|
74
|
+
|
|
75
|
+
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
|
|
76
|
+
- **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
77
|
+
- **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
|
|
78
|
+
- **Color:** `color`, `fill`, `fade`, `image`
|
|
79
|
+
|
|
80
|
+
### Modifiers
|
|
81
|
+
|
|
82
|
+
The `mods` property is automatically populated. Consumers can target these in their own `styles`:
|
|
83
|
+
|
|
84
|
+
| Modifier | Type | Description |
|
|
85
|
+
| ---------- | --------- | -------------------------------------------------------------------- |
|
|
86
|
+
| editing | `boolean` | Currently in edit mode |
|
|
87
|
+
| editable | `boolean` | `editTrigger` is `dblclick` or `click` and not disabled/read-only |
|
|
88
|
+
| disabled | `boolean` | `isDisabled` is `true` |
|
|
89
|
+
| read-only | `boolean` | `isReadOnly` is `true` |
|
|
90
|
+
| empty | `boolean` | The committed value is empty |
|
|
91
|
+
|
|
92
|
+
## Examples
|
|
93
|
+
|
|
94
|
+
### Basic Usage
|
|
95
|
+
|
|
96
|
+
```jsx
|
|
97
|
+
<InlineInput defaultValue="Edit me" />
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Single-click Trigger
|
|
101
|
+
|
|
102
|
+
Enter edit mode on a single click instead of double-click:
|
|
103
|
+
|
|
104
|
+
```jsx
|
|
105
|
+
<InlineInput defaultValue="Click me to edit" editTrigger="click" />
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Manual / Programmatic Trigger
|
|
109
|
+
|
|
110
|
+
When `editTrigger` is `none`, the display element is inert. Use the imperative ref to enter edit mode:
|
|
111
|
+
|
|
112
|
+
```jsx
|
|
113
|
+
const ref = useRef<CubeInlineInputRef>(null);
|
|
114
|
+
|
|
115
|
+
<>
|
|
116
|
+
<InlineInput ref={ref} editTrigger="none" defaultValue="Use the button" />
|
|
117
|
+
<Button onPress={() => ref.current?.startEditing()}>Rename</Button>
|
|
118
|
+
</>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Controlled Value
|
|
122
|
+
|
|
123
|
+
Track the value externally:
|
|
124
|
+
|
|
125
|
+
```jsx
|
|
126
|
+
const [value, setValue] = useState('Controlled value');
|
|
127
|
+
|
|
128
|
+
<InlineInput value={value} onChange={setValue} />
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Controlled Editing State
|
|
132
|
+
|
|
133
|
+
Drive the editing state from outside (e.g. from a "Rename" button in a parent menu):
|
|
134
|
+
|
|
135
|
+
```jsx
|
|
136
|
+
const [editing, setEditing] = useState(false);
|
|
137
|
+
|
|
138
|
+
<InlineInput
|
|
139
|
+
isEditing={editing}
|
|
140
|
+
onEditingChange={setEditing}
|
|
141
|
+
defaultValue="Controlled isEditing"
|
|
142
|
+
editTrigger="none"
|
|
143
|
+
/>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Inside a Heading
|
|
147
|
+
|
|
148
|
+
The component inherits all typography from its parent:
|
|
149
|
+
|
|
150
|
+
```jsx
|
|
151
|
+
<Title level={2}>
|
|
152
|
+
<InlineInput defaultValue="Editable heading" />
|
|
153
|
+
</Title>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Inline in Paragraph
|
|
157
|
+
|
|
158
|
+
Sits naturally inside text flow:
|
|
159
|
+
|
|
160
|
+
```jsx
|
|
161
|
+
<p>
|
|
162
|
+
Hello, my name is <InlineInput defaultValue="John Doe" /> and I love editing
|
|
163
|
+
text in place.
|
|
164
|
+
</p>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Placeholder for Empty Values
|
|
168
|
+
|
|
169
|
+
```jsx
|
|
170
|
+
<InlineInput defaultValue="" placeholder="Untitled" />
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Allow Empty Values
|
|
174
|
+
|
|
175
|
+
By default, submitting an empty value cancels. Set `allowEmpty` to keep the empty value:
|
|
176
|
+
|
|
177
|
+
```jsx
|
|
178
|
+
<InlineInput defaultValue="Clearable" allowEmpty placeholder="Empty allowed" />
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Disabled / Read-only
|
|
182
|
+
|
|
183
|
+
```jsx
|
|
184
|
+
<InlineInput defaultValue="You can't edit me" isDisabled />
|
|
185
|
+
<InlineInput defaultValue="Read-only value" isReadOnly />
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Accessibility
|
|
189
|
+
|
|
190
|
+
### Keyboard Navigation
|
|
191
|
+
|
|
192
|
+
- `Enter` — Commit the current draft
|
|
193
|
+
- `Escape` — Cancel and revert to the previous value
|
|
194
|
+
- `Tab` / focus loss — Commits when `submitOnBlur` is `true` (default), otherwise no-op
|
|
195
|
+
- Arrow keys, Space, Delete, Backspace — Work normally inside the input and do not bubble to the host
|
|
196
|
+
|
|
197
|
+
### ARIA Properties
|
|
198
|
+
|
|
199
|
+
- **`aria-label`** — Provide a label when the input has no visible label associated. Recommended in all cases.
|
|
200
|
+
- **`aria-labelledby`** — Reference the id of a visible label element.
|
|
201
|
+
|
|
202
|
+
### Focus Management
|
|
203
|
+
|
|
204
|
+
When entering edit mode, focus is taken explicitly by a `FocusScope` with `autoFocus`. This makes the transition deterministic even when triggered from a closing menu (which would otherwise restore focus to the menu trigger). The text content is selected automatically.
|
|
205
|
+
|
|
206
|
+
When leaving edit mode, focus is not restored automatically — the host is responsible for moving focus back to a meaningful element (e.g. the parent button or row).
|
|
207
|
+
|
|
208
|
+
## Best Practices
|
|
209
|
+
|
|
210
|
+
1. **Do**: Always provide an `aria-label` or `aria-labelledby` for screen reader users.
|
|
211
|
+
|
|
212
|
+
```jsx
|
|
213
|
+
<InlineInput defaultValue="My document" aria-label="Document name" />
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
2. **Do**: Use `editTrigger="dblclick"` for items that are also clickable for selection (the default).
|
|
217
|
+
|
|
218
|
+
3. **Don't**: Use `InlineInput` as a form field. Use `TextInput` inside a `<Form>` for that.
|
|
219
|
+
|
|
220
|
+
4. **Don't**: Rely on `onChange` for keystroke-by-keystroke updates — it fires only on commit. Use `isEditing` + `onEditingChange` if you need to observe the editing lifecycle.
|
|
221
|
+
|
|
222
|
+
### onChange vs onSubmit
|
|
223
|
+
|
|
224
|
+
These look similar but fire under different conditions. Pick the one that matches your intent:
|
|
225
|
+
|
|
226
|
+
| Event | Fires when | Typical use |
|
|
227
|
+
| ----------- | ------------------------------------------------------------------------- | ---------------------------------------- |
|
|
228
|
+
| `onChange` | The committed value is **different** from the previous value | Updating state (controlled pattern) |
|
|
229
|
+
| `onSubmit` | The user commits (Enter / blur / `ref.stopEditing(true)`) — always fires | Side effects (server save, toasts) |
|
|
230
|
+
| `onCancel` | Escape, empty submit (when `allowEmpty=false`), or `ref.stopEditing(false)` | Reverting UI, cleanup |
|
|
231
|
+
|
|
232
|
+
### Optimistic Display
|
|
233
|
+
|
|
234
|
+
When the component is **controlled** and the parent updates `value` asynchronously, the component shows the just-committed value optimistically until the parent's `value` catches up. This prevents a flicker back to the old value between commit and re-render.
|
|
235
|
+
|
|
236
|
+
### Async Save & Rollback
|
|
237
|
+
|
|
238
|
+
`onSubmit` may return a `Promise`. The component does not block the UI on the promise, but it watches the outcome:
|
|
239
|
+
|
|
240
|
+
- **Promise resolves** — the parent is expected to have updated `value` (or chose not to). Optimistic display clears when `value` next changes.
|
|
241
|
+
- **Promise rejects** — the component treats this as a save failure and **automatically reverts** the optimistic display back to the actual `value` prop. Stale optimistic state never lingers.
|
|
242
|
+
|
|
243
|
+
A typical async-save pattern:
|
|
244
|
+
|
|
245
|
+
```jsx
|
|
246
|
+
<InlineInput
|
|
247
|
+
value={title}
|
|
248
|
+
onSubmit={async (next) => {
|
|
249
|
+
await saveToServer(next); // throws on failure
|
|
250
|
+
setTitle(next); // only on success
|
|
251
|
+
}}
|
|
252
|
+
/>
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
If `saveToServer` throws, `InlineInput` reverts to `title` automatically. If you want to show a toast on failure, wrap inside `onSubmit` and re-throw to keep the rollback:
|
|
256
|
+
|
|
257
|
+
```jsx
|
|
258
|
+
<InlineInput
|
|
259
|
+
value={title}
|
|
260
|
+
onSubmit={async (next) => {
|
|
261
|
+
try {
|
|
262
|
+
await saveToServer(next);
|
|
263
|
+
setTitle(next);
|
|
264
|
+
} catch (err) {
|
|
265
|
+
showToast('Save failed');
|
|
266
|
+
throw err;
|
|
267
|
+
}
|
|
268
|
+
}}
|
|
269
|
+
/>
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
If the user starts a new edit before a pending promise settles, the older promise's outcome is ignored (no late rollback can clobber the newer commit).
|
|
273
|
+
|
|
274
|
+
## Related Components
|
|
275
|
+
|
|
276
|
+
- [TextInput](../fields/TextInput.md) — Full form-aware text input
|
|
277
|
+
- [Tabs](../navigation/Tabs.md) — Uses `InlineInput` internally for editable tab titles
|
|
@@ -24,27 +24,6 @@ Syntax-highlighted code block using Prism. Supports multiple languages.
|
|
|
24
24
|
|
|
25
25
|
Supports [Base properties](../../BaseProperties.md).
|
|
26
26
|
|
|
27
|
-
## Theme
|
|
28
|
-
|
|
29
|
-
Syntax colors are driven by a dedicated, scheme-aware palette of `code-*`
|
|
30
|
-
tokens. Each token uses a different hue so token classes stay visually
|
|
31
|
-
separable, and every token meets at least **WCAG AA (4.5:1)** contrast
|
|
32
|
-
against `#surface` in light, dark, and high-contrast schemes (AAA in HC).
|
|
33
|
-
|
|
34
|
-
| Token | Hue | Used for |
|
|
35
|
-
| -------------------- | -------------- | -------------------------------------------------------------- |
|
|
36
|
-
| `#code-comment` | gray | comments, prolog, doctype, cdata |
|
|
37
|
-
| `#code-punctuation` | muted pink | operators, punctuation |
|
|
38
|
-
| `#code-keyword` | pink | keywords, booleans, constants, atrules (`font-weight: 500`) |
|
|
39
|
-
| `#code-string` | primary purple | strings, characters, attribute values, URLs |
|
|
40
|
-
| `#code-number` | green | numbers, numeric entities |
|
|
41
|
-
| `#code-function` | pink | functions, class names, regex, variables |
|
|
42
|
-
| `#code-attribute` | cyan | tags, attribute names, properties, selectors, built-ins, keys |
|
|
43
|
-
|
|
44
|
-
Diff insertion (`+`) and deletion (`-`) intentionally re-use the existing
|
|
45
|
-
`#success-*` / `#danger-*` ramps — both the line background tint and the
|
|
46
|
-
foreground color adapt to the active scheme.
|
|
47
|
-
|
|
48
27
|
## Examples
|
|
49
28
|
|
|
50
29
|
```jsx
|
|
@@ -50,7 +50,7 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
50
50
|
### Resizable sidebar
|
|
51
51
|
|
|
52
52
|
```jsx
|
|
53
|
-
<Panel isFlex isStretched height="min 30x" fill="#
|
|
53
|
+
<Panel isFlex isStretched height="min 30x" fill="#white">
|
|
54
54
|
<ResizablePanel direction="right">
|
|
55
55
|
<Block padding="1x">Sidebar content</Block>
|
|
56
56
|
</ResizablePanel>
|
|
@@ -343,7 +343,7 @@ Add dropdown menus to tabs using the `menu` prop. This replaces the need for man
|
|
|
343
343
|
|
|
344
344
|
### Editable Tabs with Menu
|
|
345
345
|
|
|
346
|
-
Combine editable tabs with a menu for rename, duplicate, and delete actions.
|
|
346
|
+
Combine editable tabs with a menu for rename, duplicate, and delete actions. The inline editing UI is provided by [InlineInput](../content/InlineInput.md), which can also be used standalone elsewhere.
|
|
347
347
|
|
|
348
348
|
```jsx
|
|
349
349
|
<Tabs
|
|
@@ -21,7 +21,7 @@ A tab bar for file-like items with close buttons and dirty state indicators. Des
|
|
|
21
21
|
|
|
22
22
|
- Tab `radius` — `1r 1r 0 0`
|
|
23
23
|
- Tab `padding` — `1x 1.5x`
|
|
24
|
-
- Tab `fill` — `#dark.04` (active tabs use `#
|
|
24
|
+
- Tab `fill` — `#dark.04` (active tabs use `#white`)
|
|
25
25
|
- Tab gap — `.5x`
|
|
26
26
|
|
|
27
27
|
### Base Properties
|
|
@@ -22,7 +22,7 @@ Extends Card with:
|
|
|
22
22
|
- `placeContent` — `space-between`
|
|
23
23
|
- `gap` — `1x`
|
|
24
24
|
- `border` — none
|
|
25
|
-
- `shadow` —
|
|
25
|
+
- `shadow` — `0 2px 6px #dark.10`
|
|
26
26
|
- `padding` — `2.5x`
|
|
27
27
|
|
|
28
28
|
### Base Properties
|
|
@@ -61,7 +61,6 @@ These docs use `data-schema="dark"` in examples. If your app already standardize
|
|
|
61
61
|
| `presets` | `Record<string, TypographyPreset>` | - | Typography presets — shorthand for `generateTypographyTokens()` |
|
|
62
62
|
| `globalStyles` | `Record<string, Styles>` | - | Global Tasty styles keyed by CSS selector |
|
|
63
63
|
| `colorSpace` | `'rgb' \| 'hsl' \| 'oklch'` | `'oklch'` | Color space for decomposed color token companion variables |
|
|
64
|
-
| `namePrefix` | `string` | `'t'` (runtime) / `'ts'` (zero-runtime) | Prefix prepended to every generated identifier (class, keyframe, counter-style names). See [Name prefix](#name-prefix). |
|
|
65
64
|
|
|
66
65
|
---
|
|
67
66
|
|
|
@@ -85,49 +84,6 @@ The `oklch` color space is the default because it provides perceptually uniform
|
|
|
85
84
|
|
|
86
85
|
---
|
|
87
86
|
|
|
88
|
-
## Name Prefix
|
|
89
|
-
|
|
90
|
-
Every identifier Tasty generates — class names, keyframe names, counter-style names — starts with a configurable prefix. The runtime, SSR, and RSC paths default to `'t'`; the zero-runtime build path (`tastyStatic` via the Babel plugin) defaults to `'ts'` so static-extracted classes can never collide with runtime classes when both are loaded on the same page.
|
|
91
|
-
|
|
92
|
-
```jsx
|
|
93
|
-
configure({
|
|
94
|
-
namePrefix: 'mb',
|
|
95
|
-
});
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
The prefix is prepended verbatim to the hash, so include any separator inside the prefix string itself:
|
|
99
|
-
|
|
100
|
-
| Setting | Class | Keyframe | Counter-style |
|
|
101
|
-
|---|---|---|---|
|
|
102
|
-
| `'t'` (runtime default) | `t1a2b3` | `tk1a2b3` | `tc1a2b3` |
|
|
103
|
-
| `'ts'` (zero-runtime default) | `ts1a2b3` | `tsk1a2b3` | `tsc1a2b3` |
|
|
104
|
-
| `'mb'` | `mb1a2b3` | `mbk1a2b3` | `mbc1a2b3` |
|
|
105
|
-
| `'myapp-'` | `myapp-1a2b3` | `myapp-k1a2b3` | `myapp-c1a2b3` |
|
|
106
|
-
|
|
107
|
-
The single-letter discriminators (`k` for keyframes, `c` for counter-styles) keep the three kinds visually distinct in devtools — they are not required for correctness because CSS keeps these in separate namespaces.
|
|
108
|
-
|
|
109
|
-
### Rules
|
|
110
|
-
|
|
111
|
-
- Must match `^[a-zA-Z_][a-zA-Z0-9_-]{0,31}$`. Examples that pass: `'t'`, `'ts'`, `'app'`, `'myapp-'`, `'_foo'`. Examples that fail: `''`, `'1foo'`, `'my app'`.
|
|
112
|
-
- Validated at `configure()` time; an invalid prefix throws synchronously rather than silently producing broken hydration.
|
|
113
|
-
- Locked once styles have been generated, like all other config.
|
|
114
|
-
|
|
115
|
-
### Coexistence with the zero-runtime build
|
|
116
|
-
|
|
117
|
-
The runtime and zero-runtime builds **must use different prefixes** when both are loaded on the same page. Defaults already guarantee this; if you customize one, customize the other accordingly:
|
|
118
|
-
|
|
119
|
-
```jsx
|
|
120
|
-
// app config (runtime / SSR / RSC)
|
|
121
|
-
configure({ namePrefix: 'mb' });
|
|
122
|
-
|
|
123
|
-
// tasty-zero.config.ts (Babel plugin)
|
|
124
|
-
export default { namePrefix: 'mbs' };
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
If you only use one of the two builds, you only need to set `namePrefix` on that path.
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
87
|
## Design Tokens
|
|
132
88
|
|
|
133
89
|
Design tokens define CSS custom properties on `:root`. They are injected automatically when the first style is rendered. Values are parsed through the Tasty DSL, so you can use units, color syntax, and other DSL features.
|
package/docs/tasty/dsl.md
CHANGED
|
@@ -52,23 +52,22 @@ styles: { Title: { preset: 'h3' } }
|
|
|
52
52
|
|
|
53
53
|
#### Selector Affix (`$`)
|
|
54
54
|
|
|
55
|
-
Control how a sub-element selector attaches to the root selector using the `$` property inside the sub-element's styles
|
|
56
|
-
|
|
57
|
-
Examples below assume the sub-element key is **Cell** (i.e. `[data-element="Cell"]` in CSS):
|
|
55
|
+
Control how a sub-element selector attaches to the root selector using the `$` property inside the sub-element's styles:
|
|
58
56
|
|
|
59
57
|
| Pattern | Result | Description |
|
|
60
58
|
|---------|--------|-------------|
|
|
61
|
-
| *(none)* | `[
|
|
62
|
-
| `>` | `> [
|
|
63
|
-
| `>Body>` | `> [
|
|
64
|
-
| `>
|
|
65
|
-
| `h1` | `h1` | Tag selector (no key injection) |
|
|
66
|
-
| `h1 >` | `h1 > [
|
|
67
|
-
| `h1 *` | `h1 *` | Any descendant of tag |
|
|
68
|
-
| `*` |
|
|
69
|
-
|
|
|
70
|
-
| `@::before` | `[
|
|
71
|
-
|
|
|
59
|
+
| *(none)* | ` [el]` | Descendant (default) |
|
|
60
|
+
| `>` | `> [el]` | Direct child |
|
|
61
|
+
| `>Body>Row>` | `> [Body] > [Row] > [el]` | Chained elements |
|
|
62
|
+
| `> SubElementName` | `> [SubElementName]` | Self-name shorthand — when the trailing element name matches the sub-element's own key, it acts as the placeholder (same as `@`); no duplication |
|
|
63
|
+
| `h1` | ` h1` | Tag selector (no key injection) |
|
|
64
|
+
| `h1 >` | ` h1 > [el]` | Key is direct child of tag |
|
|
65
|
+
| `h1 *` | ` h1 *` | Any descendant of tag |
|
|
66
|
+
| `*` | ` *` | All descendants |
|
|
67
|
+
| `::before` | `::before` | Root pseudo (no key) |
|
|
68
|
+
| `@::before` | `[el]::before` | Pseudo on the sub-element |
|
|
69
|
+
| `>@:hover` | `> [el]:hover` | Pseudo-class on the sub-element |
|
|
70
|
+
| `>@.active` | `> [el].active` | Class on the sub-element |
|
|
72
71
|
|
|
73
72
|
Rules for key injection (`[data-element="..."]`):
|
|
74
73
|
|
|
@@ -399,32 +399,6 @@ tasty(Button, {
|
|
|
399
399
|
|
|
400
400
|
For full details on merge semantics, `@inherit`, `null`, and `false` tombstones, see [Style DSL — Extending vs. Replacing State Maps](dsl.md#extending-vs-replacing-state-maps).
|
|
401
401
|
|
|
402
|
-
### Styling non-Tasty components or string tags
|
|
403
|
-
|
|
404
|
-
`tasty(Component, { ... })` always forwards every prop to `Component`, which means `Component` must be Tasty-aware (i.e. it knows how to consume `styles`, `mods`, `qa`, etc.). To apply styles to a third-party component (Next.js `Link`, `react-router`'s `Link`, Radix primitives, MUI, etc.) or to a plain DOM tag, use the options-only form with `as`:
|
|
405
|
-
|
|
406
|
-
```tsx
|
|
407
|
-
import NextLink from 'next/link';
|
|
408
|
-
|
|
409
|
-
const Link = tasty({
|
|
410
|
-
as: NextLink,
|
|
411
|
-
styles: {
|
|
412
|
-
color: { '': '#accent-text', ':hover': '#text' },
|
|
413
|
-
textDecoration: 'underline',
|
|
414
|
-
},
|
|
415
|
-
styleProps: ['padding'],
|
|
416
|
-
});
|
|
417
|
-
|
|
418
|
-
const Span = tasty({
|
|
419
|
-
as: 'span',
|
|
420
|
-
styles: { fontWeight: 'bold' },
|
|
421
|
-
});
|
|
422
|
-
|
|
423
|
-
<Link href="/blog" padding="1x">Blog</Link>;
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
The wrapped component only needs to forward `className` (and ideally `style` and `ref`) to its underlying DOM node. Tasty-specific props (`qa`, `qaVal`, `mods`, `tokens`, `isDisabled`, `isHidden`, `isChecked`, and any `styleProps`/`modProps`/`tokenProps` you declared) are consumed by the wrapper and converted to `data-*` attributes or CSS custom properties — they never leak to the DOM.
|
|
427
|
-
|
|
428
402
|
### When to use styleProps vs wrapping
|
|
429
403
|
|
|
430
404
|
If the component exposes the properties you need as `styleProps`, use them directly — that is what they are for:
|
package/docs/tasty/react-api.md
CHANGED
|
@@ -42,30 +42,6 @@ const PrimaryButton = tasty(Button, {
|
|
|
42
42
|
|
|
43
43
|
Style maps merge intelligently — see [Style DSL — Extending vs. Replacing State Maps](dsl.md#extending-vs-replacing-state-maps) for extend mode, replace mode, `@inherit`, `null`, and `false` tombstones.
|
|
44
44
|
|
|
45
|
-
`tasty(Component, ...)` always wraps `Component` and forwards every prop to it, so `Component` must be Tasty-aware (i.e. it accepts `styles`, `mods`, `qa`, etc. and renders them through its own Tasty pipeline). To apply styles to a third-party component or a string DOM tag via `className`, use the options-only form with `as`:
|
|
46
|
-
|
|
47
|
-
```jsx
|
|
48
|
-
import NextLink from 'next/link';
|
|
49
|
-
|
|
50
|
-
const Link = tasty({
|
|
51
|
-
as: NextLink,
|
|
52
|
-
styles: {
|
|
53
|
-
color: { '': '#accent-text', ':hover': '#text' },
|
|
54
|
-
textDecoration: 'underline',
|
|
55
|
-
},
|
|
56
|
-
styleProps: ['padding'],
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
const Span = tasty({
|
|
60
|
-
as: 'span',
|
|
61
|
-
styles: { fontWeight: 'bold' },
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
<Link href="/blog" padding="1x">Blog</Link>;
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
The wrapped component only needs to forward `className` (and ideally `style`/`ref`). Tasty-specific props (`qa`, `qaVal`, `mods`, `tokens`, `styleProps`, `modProps`, `tokenProps`) are consumed by Tasty and never leak to the DOM.
|
|
68
|
-
|
|
69
45
|
---
|
|
70
46
|
|
|
71
47
|
## Style Props
|
package/docs/tasty/ssr.md
CHANGED
|
@@ -358,18 +358,16 @@ const stream = await runWithCollector(collector, () =>
|
|
|
358
358
|
|
|
359
359
|
Server-safe style collector. One instance per request.
|
|
360
360
|
|
|
361
|
-
Constructor: `new ServerStyleCollector(namePrefix?)`. The optional `namePrefix` overrides the value from `configure({ namePrefix })`; in normal usage you pass nothing and let the global config drive it. See [Configuration: Name prefix](configuration.md#name-prefix).
|
|
362
|
-
|
|
363
361
|
| Method | Description |
|
|
364
362
|
|---|---|
|
|
365
|
-
| `allocateClassName(cacheKey)` | Allocate a
|
|
363
|
+
| `allocateClassName(cacheKey)` | Allocate a sequential class name (`t0`, `t1`, ...) for a cache key. Returns `{ className, isNewAllocation }`. |
|
|
366
364
|
| `collectChunk(cacheKey, className, rules)` | Record CSS rules for a chunk. Deduplicated by `cacheKey`. |
|
|
367
365
|
| `collectKeyframes(name, css)` | Record a `@keyframes` rule. Deduplicated by name. |
|
|
368
|
-
| `allocateKeyframeName(providedName?)` | Allocate a keyframe name. Returns `providedName` if given, otherwise generates one
|
|
366
|
+
| `allocateKeyframeName(providedName?)` | Allocate a keyframe name. Returns `providedName` if given, otherwise generates one (`k0`, `k1`, ...). |
|
|
369
367
|
| `collectProperty(name, css)` | Record a `@property` rule. Deduplicated by name. |
|
|
370
368
|
| `collectFontFace(key, css)` | Record a `@font-face` rule. Deduplicated by content hash. |
|
|
371
369
|
| `collectCounterStyle(name, css)` | Record a `@counter-style` rule. Deduplicated by name. |
|
|
372
|
-
| `allocateCounterStyleName(providedName?)` | Allocate a counter-style name. Returns `providedName` if given, otherwise generates one
|
|
370
|
+
| `allocateCounterStyleName(providedName?)` | Allocate a counter-style name. Returns `providedName` if given, otherwise generates one (`cs0`, `cs1`, ...). |
|
|
373
371
|
| `collectGlobalStyles(key, css)` | Record global styles (from `useGlobalStyles`). Deduplicated by key. |
|
|
374
372
|
| `collectRawCSS(key, css)` | Record raw CSS text (from `useRawCSS`). Deduplicated by key. |
|
|
375
373
|
| `collectInternals()` | Collect internal `@property` rules, `:root` token defaults, `@font-face`, and `@counter-style` rules from the global config. Called automatically on first chunk collection; idempotent. |
|
package/docs/tasty/styles.md
CHANGED
|
@@ -378,11 +378,11 @@ Multiple shadows: `shadow="1x 1x 2x #dark.20, inset 0 0 4x #dark.10"`
|
|
|
378
378
|
|
|
379
379
|
Typography preset that sets font-size, line-height, letter-spacing, font-weight, font-style, and text-transform from named design tokens.
|
|
380
380
|
|
|
381
|
-
**Syntax:** `name`, `name / modifier
|
|
381
|
+
**Syntax:** `name`, `name / modifier`, or `modifier` (shorthand)
|
|
382
382
|
|
|
383
383
|
Preset names are project-specific (e.g. `h1`–`h6`, `t1`–`t4`, `p1`–`p4`). Register them for autocomplete by augmenting `TastyPresetNames`.
|
|
384
384
|
|
|
385
|
-
Use `/` to separate the preset name from
|
|
385
|
+
Use `/` to separate the preset name from a modifier. When a modifier is used alone (without a name), the preset name defaults to `inherit`.
|
|
386
386
|
|
|
387
387
|
**Modifiers:**
|
|
388
388
|
|
|
@@ -394,13 +394,11 @@ Use `/` to separate the preset name from one or more space-separated modifiers.
|
|
|
394
394
|
| `tight` | Sets line-height equal to font-size |
|
|
395
395
|
|
|
396
396
|
```jsx
|
|
397
|
-
preset="h1"
|
|
398
|
-
preset="h2 / strong"
|
|
399
|
-
preset="
|
|
400
|
-
preset="
|
|
401
|
-
preset="
|
|
402
|
-
preset="bold" // inherit preset with bold (shorthand)
|
|
403
|
-
preset="bold italic" // inherit preset with bold + italic (shorthand)
|
|
397
|
+
preset="h1" // heading 1
|
|
398
|
+
preset="h2 / strong" // bold heading 2
|
|
399
|
+
preset="t3 / italic" // italic text 3
|
|
400
|
+
preset="t2 / tight" // text 2 with tight line-height
|
|
401
|
+
preset="bold" // inherit preset with bold (shorthand for "inherit / bold")
|
|
404
402
|
```
|
|
405
403
|
|
|
406
404
|
Individual typography props (`fontSize`, `lineHeight`, `letterSpacing`, `fontWeight`, `fontStyle`, `textTransform`) can be used alongside `preset` to override specific values, but using `preset` alone is recommended.
|
|
@@ -178,21 +178,6 @@ module.exports = {
|
|
|
178
178
|
| `config.globalStyles` | `Record<string, Styles>` | — | Global Tasty styles keyed by CSS selector. Supports the full style syntax. |
|
|
179
179
|
| `config.autoPropertyTypes` | `boolean` | `true` | Automatically infer and register CSS `@property` declarations from values |
|
|
180
180
|
| `config.parserCacheSize` | `number` | `1000` | Parser LRU cache size. Larger values improve performance for builds with many unique style values |
|
|
181
|
-
| `config.namePrefix` | `string` | `'ts'` | Prefix prepended to every generated identifier. Defaults to `'ts'` so static classes never collide with runtime (`'t'`) classes. See [Configuration: Name prefix](configuration.md#name-prefix). |
|
|
182
|
-
|
|
183
|
-
### Coexisting with runtime tasty
|
|
184
|
-
|
|
185
|
-
When a page mixes `tastyStatic` with runtime `tasty`, both must use **different** `namePrefix` values. The defaults handle this automatically (`'t'` for runtime, `'ts'` for zero-runtime). If you customize one, customize the other:
|
|
186
|
-
|
|
187
|
-
```ts
|
|
188
|
-
// tasty-zero.config.ts (Babel plugin)
|
|
189
|
-
export default { namePrefix: 'mbs' };
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
```ts
|
|
193
|
-
// app entry (runtime configure)
|
|
194
|
-
configure({ namePrefix: 'mb' });
|
|
195
|
-
```
|
|
196
181
|
|
|
197
182
|
---
|
|
198
183
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cube-dev/ui-kit",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-ec0a7f1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "UIKit for Cube Projects",
|
|
6
6
|
"repository": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"module": "./dist/index.js",
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
12
|
"sideEffects": false,
|
|
13
|
-
"packageManager": "pnpm@
|
|
13
|
+
"packageManager": "pnpm@10.32.0",
|
|
14
14
|
"exports": {
|
|
15
15
|
".": {
|
|
16
16
|
"import": "./dist/index.js",
|
|
@@ -74,8 +74,7 @@
|
|
|
74
74
|
"@react-types/shared": "^3.32.1",
|
|
75
75
|
"@tabler/icons-react": "^3.31.0",
|
|
76
76
|
"@tanstack/react-virtual": "^3.13.12",
|
|
77
|
-
"@tenphi/
|
|
78
|
-
"@tenphi/tasty": "2.6.0",
|
|
77
|
+
"@tenphi/tasty": "2.1.1",
|
|
79
78
|
"clipboard-copy": "^4.0.1",
|
|
80
79
|
"clsx": "^1.1.1",
|
|
81
80
|
"diff": "^8.0.3",
|
|
@@ -109,8 +108,8 @@
|
|
|
109
108
|
"@size-limit/webpack": "^8.2.4",
|
|
110
109
|
"@size-limit/webpack-why": "^8.2.4",
|
|
111
110
|
"@statoscope/cli": "^5.20.1",
|
|
112
|
-
"@storybook/addon-docs": "^10.3
|
|
113
|
-
"@storybook/react-vite": "^10.3
|
|
111
|
+
"@storybook/addon-docs": "^10.2.3",
|
|
112
|
+
"@storybook/react-vite": "^10.2.3",
|
|
114
113
|
"@tenphi/eslint-plugin-tasty": "^0.6.2",
|
|
115
114
|
"@testing-library/dom": "^10.4.1",
|
|
116
115
|
"@testing-library/jest-dom": "^6.7.0",
|
|
@@ -140,7 +139,7 @@
|
|
|
140
139
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
141
140
|
"eslint-plugin-react": "^7.37.5",
|
|
142
141
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
143
|
-
"eslint-plugin-storybook": "^10.3
|
|
142
|
+
"eslint-plugin-storybook": "^10.2.3",
|
|
144
143
|
"globals": "^16.0.0",
|
|
145
144
|
"husky": "^6.0.0",
|
|
146
145
|
"jsdom": "^29.1.1",
|
|
@@ -156,8 +155,7 @@
|
|
|
156
155
|
"rimraf": "^6.0.1",
|
|
157
156
|
"serve-handler": "^6.1.6",
|
|
158
157
|
"size-limit": "^8.2.6",
|
|
159
|
-
"storybook": "^10.3
|
|
160
|
-
"storybook-dark-mode": "^5.0.0",
|
|
158
|
+
"storybook": "^10.2.3",
|
|
161
159
|
"tsdown": "^0.20.3",
|
|
162
160
|
"typescript": "^5.6.3",
|
|
163
161
|
"typescript-eslint": "^8.31.0",
|
|
@@ -172,6 +170,6 @@
|
|
|
172
170
|
"license": "MIT",
|
|
173
171
|
"engines": {
|
|
174
172
|
"node": ">=22.14.0",
|
|
175
|
-
"pnpm": "^
|
|
173
|
+
"pnpm": "^10.0.0"
|
|
176
174
|
}
|
|
177
175
|
}
|