@cube-dev/ui-kit 0.204.0 → 0.206.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +36 -0
- 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/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 +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +221 -132
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js.map +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/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.d.ts +2 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.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/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +3 -2
- package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +8 -2
- package/dist/components/content/PrismCode/prismSetup.js.map +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.d.ts +5 -2
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/TextItem/TextItem.js.map +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/checked-keys.js +1 -1
- package/dist/components/content/Tree/rowId.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 +114 -72
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/item-table-sections.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRowLink.js +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +21 -20
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/CalendarPopover.js +281 -0
- package/dist/components/fields/DatePicker/CalendarPopover.js.map +1 -0
- 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 +26 -24
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +4 -2
- package/dist/components/fields/DatePicker/DatePickerElement.js.map +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.d.ts +10 -0
- package/dist/components/fields/DatePicker/DateRangePicker.js +143 -65
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +172 -165
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterListBox/styled.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.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/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +108 -118
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +10 -12
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +198 -174
- package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +18 -3
- package/dist/components/form/Form/modern/store.js.map +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-layout.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +190 -187
- 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 -1
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/segmented-styles.js +53 -0
- package/dist/components/navigation/Tabs/segmented-styles.js.map +1 -0
- package/dist/components/navigation/Tabs/styled.js +15 -28
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +4 -4
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.d.ts +3 -3
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +4 -4
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +101 -123
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/context.js.map +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +60 -51
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.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/Modal/modal-containment.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 +6 -3
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +2 -2
- package/dist/components/status/Spin/Cube.js.map +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 +70 -70
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +3 -2
- package/dist/i18n/locales/en-US/uikit.js +3 -2
- package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -0
- package/dist/i18n/locales/es-ES/uikit.js +3 -2
- package/dist/i18n/locales/es-MX/uikit.js +3 -2
- package/dist/i18n/locales/fr-FR/uikit.js +3 -2
- package/dist/i18n/locales/it-IT/uikit.js +3 -2
- package/dist/i18n/locales/ja-JP/uikit.js +3 -2
- package/dist/i18n/locales/nb-NO/uikit.js +3 -2
- package/dist/i18n/locales/pt-BR/uikit.js +3 -2
- package/dist/i18n/locales/pt-PT/uikit.js +3 -2
- package/dist/i18n/locales/sv-SE/uikit.js +3 -2
- package/dist/i18n/locales/vi-VN/uikit.js +3 -2
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.js +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/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/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +7 -5
- package/dist/utils/react/useScheme.js.map +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/Theming.md +1 -1
- package/docs/Usage.md +26 -0
- package/docs/components/content/Item.md +1 -1
- package/docs/components/content/TextItem.md +13 -1
- package/docs/components/data/ItemTable.md +1 -1
- package/docs/components/fields/RadioGroup.md +5 -4
- package/docs/components/form/Form.md +2 -0
- package/docs/components/form/ModernForm.md +5 -1
- package/docs/components/navigation/Tabs.md +5 -3
- package/docs/components/overlays/DialogContainer.md +1 -1
- package/docs/components/overlays/DialogTrigger.md +2 -2
- package/docs/components/overlays/Notifications.md +17 -0
- package/docs/components/overlays/Toast.md +1 -1
- package/docs/modern-form-guide.md +5 -1
- package/docs/tasty/ai-agents.md +3 -2
- package/docs/tasty/dsl.md +52 -0
- package/docs/tasty/styles.md +27 -15
- package/package.json +5 -3
- package/tasty.config.generated.ts +526 -0
- package/tasty.config.ts +29 -422
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
|
+
//#region src/components/navigation/Tabs/segmented-styles.ts
|
|
3
|
+
/**
|
|
4
|
+
* The track: the pill the segments sit on. Applied to `Tabs`' Bar and to the
|
|
5
|
+
* `RadioGroup` element. The segments read `$transition` from it, so hover and
|
|
6
|
+
* selection move at the tab speed in both.
|
|
7
|
+
*/
|
|
8
|
+
const SEGMENTED_TRACK_STYLES = {
|
|
9
|
+
padding: { segmented: ".5x" },
|
|
10
|
+
radius: { segmented: "1cr" },
|
|
11
|
+
fill: { segmented: "#surface-4" },
|
|
12
|
+
$transition: { segmented: "$tab-transition" }
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The space between segments, on the element that lays them out: `Tabs`'
|
|
16
|
+
* TabList, and the `RadioGroup` element itself.
|
|
17
|
+
*/
|
|
18
|
+
const SEGMENTED_LIST_STYLES = { gap: { segmented: ".5x" } };
|
|
19
|
+
/**
|
|
20
|
+
* One segment: a tab, or a radio button. Both are an `Item` of type `clear`,
|
|
21
|
+
* sized by `RADIO_SIZE_MAP`, so `size=xsmall` is the medium control.
|
|
22
|
+
*
|
|
23
|
+
* The keyboard focus ring sits inside the segment, so it reads on the white
|
|
24
|
+
* chip as well as on the track. A segment shows it only with both `focused`
|
|
25
|
+
* and `focus-visible`.
|
|
26
|
+
*/
|
|
27
|
+
const SEGMENTED_SEGMENT_STYLES = {
|
|
28
|
+
radius: { segmented: true },
|
|
29
|
+
preset: {
|
|
30
|
+
segmented: "t3m",
|
|
31
|
+
"segmented & size=xsmall": "t4"
|
|
32
|
+
},
|
|
33
|
+
color: {
|
|
34
|
+
segmented: "#surface-text-soft",
|
|
35
|
+
"segmented & disabled": "#disabled-surface-text"
|
|
36
|
+
},
|
|
37
|
+
fill: {
|
|
38
|
+
segmented: "#clear",
|
|
39
|
+
"segmented & hovered": "#surface.5",
|
|
40
|
+
"segmented & selected": "#surface"
|
|
41
|
+
},
|
|
42
|
+
shadow: {
|
|
43
|
+
"segmented & focused & focus-visible": "inset 0 0 0 $ring-width #primary-accent-text",
|
|
44
|
+
"segmented & selected": "$item-shadow",
|
|
45
|
+
"segmented & selected & focused & focus-visible": "$item-shadow, inset 0 0 0 $ring-width #primary-accent-text"
|
|
46
|
+
},
|
|
47
|
+
outline: { segmented: "none" },
|
|
48
|
+
placeContent: { segmented: "center" }
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { SEGMENTED_LIST_STYLES, SEGMENTED_SEGMENT_STYLES, SEGMENTED_TRACK_STYLES };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=segmented-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmented-styles.js","names":["Styles","SEGMENTED_TRACK_STYLES","padding","segmented","radius","fill","$transition","SEGMENTED_LIST_STYLES","gap","SEGMENTED_SEGMENT_STYLES","preset","color","shadow","outline","placeContent"],"sources":["../../../../src/components/navigation/Tabs/segmented-styles.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n// =============================================================================\n// Segmented control look, shared by `Tabs type=\"radio\"` and `Radio.Tabs`\n// (`RadioGroup type=\"tabs\"`). They keep their own semantics (tablist / tab vs\n// radiogroup / radio) and keyboard behaviour, but render one control: a track\n// with segments on it. Tabs is the reference.\n//\n// Every state here is keyed on the `segmented` mod. Tabs sets it on its root\n// and each tab for `type=\"radio\"`; RadioGroup and Radio set it for\n// `type=\"tabs\"`.\n//\n// The maps have no `''` key, so `mergeStyles(styles, FRAGMENT)` appends them\n// to the component's own maps and they win for a segmented control only. A\n// state the component must keep above them (Tabs' `drop-pending`) is moved\n// after them with `'@inherit'`.\n//\n// `segmented.browser.test.tsx` renders both controls and fails when their\n// computed styles part.\n// =============================================================================\n\n/**\n * The track: the pill the segments sit on. Applied to `Tabs`' Bar and to the\n * `RadioGroup` element. The segments read `$transition` from it, so hover and\n * selection move at the tab speed in both.\n */\nexport const SEGMENTED_TRACK_STYLES: Styles = {\n // oxlint-disable-next-line tasty/require-default-state -- extends the track's own map (see the header)\n padding: { segmented: '.5x' },\n // oxlint-disable-next-line tasty/require-default-state -- extends the track's own map (see the header)\n radius: { segmented: '1cr' },\n // oxlint-disable-next-line tasty/require-default-state -- extends the track's own map (see the header)\n fill: { segmented: '#surface-4' },\n $transition: { segmented: '$tab-transition' },\n};\n\n/**\n * The space between segments, on the element that lays them out: `Tabs`'\n * TabList, and the `RadioGroup` element itself.\n */\nexport const SEGMENTED_LIST_STYLES: Styles = {\n // oxlint-disable-next-line tasty/require-default-state -- extends the list's own map (see the header)\n gap: { segmented: '.5x' },\n};\n\n/**\n * One segment: a tab, or a radio button. Both are an `Item` of type `clear`,\n * sized by `RADIO_SIZE_MAP`, so `size=xsmall` is the medium control.\n *\n * The keyboard focus ring sits inside the segment, so it reads on the white\n * chip as well as on the track. A segment shows it only with both `focused`\n * and `focus-visible`.\n */\nexport const SEGMENTED_SEGMENT_STYLES: Styles = {\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n radius: { segmented: true },\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n preset: {\n segmented: 't3m',\n 'segmented & size=xsmall': 't4',\n },\n // The selected label stays soft: the chip marks the selection, not the text.\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n color: {\n segmented: '#surface-text-soft',\n 'segmented & disabled': '#disabled-surface-text',\n },\n // A disabled control keeps its selected chip, so it still says which option\n // is chosen; only the label fades (CUB-3912).\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n fill: {\n segmented: '#clear',\n 'segmented & hovered': '#surface.5',\n 'segmented & selected': '#surface',\n },\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n shadow: {\n 'segmented & focused & focus-visible':\n 'inset 0 0 0 $ring-width #primary-accent-text',\n 'segmented & selected': '$item-shadow',\n 'segmented & selected & focused & focus-visible':\n '$item-shadow, inset 0 0 0 $ring-width #primary-accent-text',\n },\n // The ring is the inset shadow above, not the `clear` item's outline.\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n outline: { segmented: 'none' },\n // oxlint-disable-next-line tasty/require-default-state -- extends the segment's own map (see the header)\n placeContent: { segmented: 'center' },\n};\n"],"mappings":";;;;;;;AA0BA,MAAaC,yBAAiC;CAE5CC,SAAS,EAAEC,WAAW,MAAM;CAE5BC,QAAQ,EAAED,WAAW,MAAM;CAE3BE,MAAM,EAAEF,WAAW,aAAa;CAChCG,aAAa,EAAEH,WAAW,kBAAkB;AAC9C;;;;;AAMA,MAAaI,wBAAgC,EAE3CC,KAAK,EAAEL,WAAW,MAAM,EAC1B;;;;;;;;;AAUA,MAAaM,2BAAmC;CAE9CL,QAAQ,EAAED,WAAW,KAAK;CAE1BO,QAAQ;EACNP,WAAW;EACX,2BAA2B;CAC7B;CAGAQ,OAAO;EACLR,WAAW;EACX,wBAAwB;CAC1B;CAIAE,MAAM;EACJF,WAAW;EACX,uBAAuB;EACvB,wBAAwB;CAC1B;CAEAS,QAAQ;EACN,uCACE;EACF,wBAAwB;EACxB,kDACE;CACJ;CAGAC,SAAS,EAAEV,WAAW,OAAO;CAE7BW,cAAc,EAAEX,WAAW,SAAS;AACtC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { Item as _Item } from "../../content/Item/Item.js";
|
|
3
|
-
import {
|
|
3
|
+
import { SEGMENTED_LIST_STYLES, SEGMENTED_SEGMENT_STYLES, SEGMENTED_TRACK_STYLES } from "./segmented-styles.js";
|
|
4
|
+
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
4
5
|
//#region src/components/navigation/Tabs/styled.ts
|
|
5
6
|
const TabsElement = tasty({ styles: {
|
|
6
7
|
display: "flex",
|
|
@@ -21,7 +22,7 @@ const TabsElement = tasty({ styles: {
|
|
|
21
22
|
width: "min 0",
|
|
22
23
|
height: "min 0",
|
|
23
24
|
overflow: "visible",
|
|
24
|
-
Bar: {
|
|
25
|
+
Bar: mergeStyles({
|
|
25
26
|
$: ">",
|
|
26
27
|
display: "flex",
|
|
27
28
|
flow: {
|
|
@@ -54,18 +55,9 @@ const TabsElement = tasty({ styles: {
|
|
|
54
55
|
"placement=left | placement=right": "100%",
|
|
55
56
|
"type=radio & (placement=left | placement=right)": "max-content"
|
|
56
57
|
},
|
|
57
|
-
padding:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
radius: {
|
|
62
|
-
"": 0,
|
|
63
|
-
"type=radio": "1cr"
|
|
64
|
-
},
|
|
65
|
-
fill: {
|
|
66
|
-
"": "#clear",
|
|
67
|
-
"type=radio": "#surface-4"
|
|
68
|
-
},
|
|
58
|
+
padding: 0,
|
|
59
|
+
radius: 0,
|
|
60
|
+
fill: "#clear",
|
|
69
61
|
flexShrink: 0,
|
|
70
62
|
flexGrow: 0,
|
|
71
63
|
$transition: "$tab-transition",
|
|
@@ -73,7 +65,7 @@ const TabsElement = tasty({ styles: {
|
|
|
73
65
|
"": "2px",
|
|
74
66
|
"size=large": "1ow"
|
|
75
67
|
}
|
|
76
|
-
},
|
|
68
|
+
}, SEGMENTED_TRACK_STYLES),
|
|
77
69
|
Prefix: {
|
|
78
70
|
$: "> Bar >",
|
|
79
71
|
display: "flex",
|
|
@@ -171,7 +163,7 @@ const TabsElement = tasty({ styles: {
|
|
|
171
163
|
"fade-end": "#black.0"
|
|
172
164
|
}
|
|
173
165
|
},
|
|
174
|
-
TabList: {
|
|
166
|
+
TabList: mergeStyles({
|
|
175
167
|
$: "> Bar > ScrollWrapper > Scroll >",
|
|
176
168
|
position: "relative",
|
|
177
169
|
display: "grid",
|
|
@@ -192,7 +184,6 @@ const TabsElement = tasty({ styles: {
|
|
|
192
184
|
"": 0,
|
|
193
185
|
"type=default": "1x",
|
|
194
186
|
"type=narrow": "2x",
|
|
195
|
-
"type=radio": ".5x",
|
|
196
187
|
"(type=default | type=narrow) & (placement=left | placement=right)": "$item-gap"
|
|
197
188
|
},
|
|
198
189
|
placeContent: "start",
|
|
@@ -216,7 +207,7 @@ const TabsElement = tasty({ styles: {
|
|
|
216
207
|
"type=default | type=narrow": "1x",
|
|
217
208
|
"(type=default | type=narrow) & (placement=left | placement=right)": ".5x"
|
|
218
209
|
}
|
|
219
|
-
},
|
|
210
|
+
}, SEGMENTED_LIST_STYLES),
|
|
220
211
|
$size: {
|
|
221
212
|
"": "$size-md",
|
|
222
213
|
"size=xsmall": "$size-xs",
|
|
@@ -265,10 +256,10 @@ const TabsElement = tasty({ styles: {
|
|
|
265
256
|
} });
|
|
266
257
|
const TabElement = tasty(_Item, {
|
|
267
258
|
as: "button",
|
|
268
|
-
styles: {
|
|
259
|
+
styles: mergeStyles({
|
|
269
260
|
radius: {
|
|
270
261
|
"": false,
|
|
271
|
-
"type=
|
|
262
|
+
"type=default": true,
|
|
272
263
|
"type=narrow": "top",
|
|
273
264
|
"type=narrow & placement=bottom": "bottom",
|
|
274
265
|
"type=narrow & placement=left": "left",
|
|
@@ -285,8 +276,7 @@ const TabElement = tasty(_Item, {
|
|
|
285
276
|
"hovered & !type=narrow": "#surface-text.03",
|
|
286
277
|
"type=file": "#surface-3",
|
|
287
278
|
"type=file & hovered": "#surface-3.5",
|
|
288
|
-
"type=
|
|
289
|
-
"(type=file | type=radio) & selected": "#surface",
|
|
279
|
+
"type=file & selected": "#surface",
|
|
290
280
|
"drop-pending": "#primary-accent-surface.10"
|
|
291
281
|
},
|
|
292
282
|
border: {
|
|
@@ -300,12 +290,9 @@ const TabElement = tasty(_Item, {
|
|
|
300
290
|
shadow: {
|
|
301
291
|
"": "$selection-shadow",
|
|
302
292
|
"focused & focus-visible": "inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow",
|
|
303
|
-
editing: "inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow"
|
|
304
|
-
"type=radio & selected": "$item-shadow",
|
|
305
|
-
"type=radio & selected & focused & focus-visible": "$item-shadow, inset 0 0 0 $ring-width #primary-accent-text"
|
|
293
|
+
editing: "inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow"
|
|
306
294
|
},
|
|
307
295
|
outline: "none",
|
|
308
|
-
placeContent: { "type=radio": "center" },
|
|
309
296
|
gridTemplate: { "type=radio": "\"icon prefix label suffix rightIcon actions\" auto / max-content max-content minmax(0, max-content) max-content max-content max-content" },
|
|
310
297
|
"$selection-shadow": {
|
|
311
298
|
"": "inset 0 0 0 0 #primary-accent-surface",
|
|
@@ -331,7 +318,7 @@ const TabElement = tasty(_Item, {
|
|
|
331
318
|
"type=radio & !has-prefix & !has-suffix & !has-icon & !has-right-icon": "center"
|
|
332
319
|
} },
|
|
333
320
|
Actions: { transition: false }
|
|
334
|
-
}
|
|
321
|
+
}, SEGMENTED_SEGMENT_STYLES, { fill: { "drop-pending": "@inherit" } })
|
|
335
322
|
});
|
|
336
323
|
const TabContainer = tasty({ styles: {
|
|
337
324
|
position: "relative",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","names":["tasty","Item","TabsElement","styles","display","flow","flexShrink","flexGrow","width","height","overflow","Bar","$","placeItems","border","boxSizing","padding","radius","fill","$transition","Prefix","placeContent","placeSelf","gap","Suffix","ScrollWrapper","position","Scroll","scrollbar","margin","fade","transition","TabList","gridAutoColumns","gridAutoRows","$size","Scrollbar","bottom","top","left","right","opacity","pointerEvents","TabElement","as","color","disabled","preset","shadow","editing","outline","gridTemplate","Label","Actions","TabContainer","cursor","draggable","dragging","DropIndicatorElement","zIndex","TabIndicatorElement","TabPanelElement","hide","active","Item"],"sources":["../../../../src/components/navigation/Tabs/styled.ts"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Item } from '../../content/Item';\n\n// =============================================================================\n// Main Tabs Container — flex wrapper holding the tab Bar and the panels.\n// `placement` mod drives `flex-direction` so DOM order stays \"bar then panels\"\n// and visual order is controlled with `column / column-reverse / row / row-reverse`.\n// =============================================================================\n\nexport const TabsElement = tasty({\n styles: {\n display: 'flex',\n flow: {\n '': 'column',\n 'placement=bottom': 'column-reverse',\n 'placement=left': 'row',\n 'placement=right': 'row-reverse',\n },\n // Participate in parent flex layouts; allow shrinking on both axes so we\n // never force the parent into overflow. The Bar keeps `flex-shrink: 0`,\n // which makes the practical minimum of the wrapper along the main axis\n // equal to the tablist's intrinsic size. When there are no panels the\n // wrapper has only the Bar inside it, so we lock its sizing to the Bar's\n // intrinsic size — matching the pre-wrapper behavior of a panel-less Tabs.\n flexShrink: { '': 0, 'has-panels': 1 },\n flexGrow: { '': 0, 'has-panels': 1 },\n width: 'min 0',\n height: 'min 0',\n overflow: 'visible',\n\n // ============================================\n // Bar — the tab strip (Prefix + ScrollWrapper + Suffix).\n // ============================================\n Bar: {\n $: '>',\n display: 'flex',\n flow: {\n '': 'row',\n 'placement=left | placement=right': 'column',\n },\n placeItems: {\n '': 'end stretch',\n 'placement=bottom': 'start stretch',\n 'placement=left': 'stretch end',\n 'placement=right': 'stretch start',\n 'type=radio | type=file': 'stretch',\n },\n overflow: 'visible',\n border: {\n '': 0,\n '(type=default | type=file | type=narrow) & has-panels': 'bottom',\n '(type=default | type=file | type=narrow) & has-panels & placement=bottom':\n 'top',\n '(type=default | type=file | type=narrow) & has-panels & placement=left':\n 'right',\n '(type=default | type=file | type=narrow) & has-panels & placement=right':\n 'left',\n },\n // Bar sizing — always follow the outer wrapper along the main axis so\n // `width` / `height` props on `<Tabs>` apply to the strip as they did\n // before the wrapper was introduced.\n // - horizontal placements: main-axis = wrapper width (100%), cross-axis intrinsic (auto)\n // - vertical placements: main-axis = wrapper height (100%), cross-axis intrinsic (auto / max-content for radio)\n // `border-box` keeps the radio padding inside that 100%. Without a global\n // border-box reset in the app, the pill would otherwise paint `1x` past\n // the wrapper and into the gap before its sibling.\n boxSizing: 'border-box',\n width: {\n '': '100%',\n 'placement=left | placement=right': 'auto',\n 'type=radio & (placement=left | placement=right)': 'max-content',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': '100%',\n 'type=radio & (placement=left | placement=right)': 'max-content',\n },\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n radius: {\n '': 0,\n 'type=radio': '1cr',\n },\n fill: {\n '': '#clear',\n 'type=radio': '#surface-4',\n },\n // Never let the Bar shrink/grow within the outer wrapper — this is what\n // gives the wrapper its effective \"tablist-size minimum\" on the main axis.\n flexShrink: 0,\n flexGrow: 0,\n\n $transition: '$tab-transition',\n // The indicator line's thickness, in device pixels.\n '$tab-indicator-size': {\n '': '2px',\n 'size=large': '1ow',\n },\n },\n\n // ============================================\n // Prefix — slot before the scroll area.\n // ============================================\n Prefix: {\n $: '> Bar >',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 0 .5x 1x',\n 'type=default & (placement=left | placement=right)': '1x .5x 0 .5x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n 'type=file & (placement=left | placement=right)': 'bottom',\n },\n },\n\n // ============================================\n // Suffix — slot after the scroll area.\n // ============================================\n Suffix: {\n $: '> Bar >',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 1x .5x 0',\n 'type=default & (placement=left | placement=right)': '0 .5x 1x .5x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'left',\n 'type=file & (placement=left | placement=right)': 'top',\n },\n },\n\n // Wrapper for scroll area and scrollbar (scrollbar is positioned relative to this)\n ScrollWrapper: {\n $: '> Bar >',\n position: 'relative',\n display: 'flex',\n flexGrow: 1,\n flexShrink: 1,\n width: {\n '': 'min 0',\n 'placement=left | placement=right': 'auto',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': 'min 0',\n },\n overflow: {\n '': 'hidden',\n 'type=radio': 'visible',\n },\n },\n\n Scroll: {\n $: '> Bar > ScrollWrapper >',\n position: 'relative',\n display: 'block',\n overflow: {\n '': 'auto hidden',\n 'placement=left | placement=right': 'hidden auto',\n 'type=radio': 'visible',\n },\n scrollbar: 'none',\n flexGrow: 1,\n width: '100%',\n // Add padding/margin for radio type to allow shadow to render outside\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n margin: {\n '': 0,\n 'type=radio': '-.5x',\n },\n // Multi-group fade with axis-neutral color tokens for smooth transitions.\n // Direction flips based on placement.\n fade: {\n '': '2x left #tabs-fade-start #black, 2x right #tabs-fade-end #black',\n 'placement=left | placement=right':\n '2x top #tabs-fade-start #black, 2x bottom #tabs-fade-end #black',\n },\n // ##name outputs --name-color (literal CSS property name)\n transition:\n '##tabs-fade-start $tab-transition ease-in, ##tabs-fade-end $tab-transition ease-in',\n\n // Transition transparent color: opaque (no fade) -> transparent (fade visible)\n '#tabs-fade-start': {\n '': '#black',\n 'fade-start': '#black.0',\n },\n '#tabs-fade-end': {\n '': '#black',\n 'fade-end': '#black.0',\n },\n },\n\n TabList: {\n $: '> Bar > ScrollWrapper > Scroll >',\n position: 'relative',\n display: 'grid',\n // `border-box` is required because we set `width: 100%` for vertical\n // placements AND apply padding. With the default `content-box`, the\n // TabList's outer box would be `100% + padding × 2` and overflow Scroll\n // horizontally — and the side selection indicator (positioned at\n // `right: 0` / `left: 0` of TabList) would land in that overflow region\n // and get clipped by Scroll's `overflow-x: hidden`.\n boxSizing: 'border-box',\n flow: {\n '': 'column',\n 'placement=left | placement=right': 'row',\n },\n gridAutoColumns: {\n '': 'auto',\n 'type=radio': '1fr',\n },\n gridAutoRows: {\n '': 'auto',\n 'type=radio & (placement=left | placement=right)': '1fr',\n },\n gap: {\n '': 0,\n 'type=default': '1x',\n 'type=narrow': '2x',\n 'type=radio': '.5x',\n // Tabs stack vertically — collapse the gap so the strip reads as a\n // single column. `narrow` is coerced to `default` in vertical, but we\n // keep the rule defensive in case the styled element is consumed\n // directly with a `type=narrow` mod set.\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '$item-gap',\n },\n placeContent: 'start',\n overflow: 'visible',\n width: {\n '': 'max-content',\n 'type=radio': '100%',\n 'placement=left | placement=right': '100%',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': 'max-content',\n },\n // For vertical default/narrow we apply `$tablist-padding` on ALL sides\n // (instead of only the parallel axis) so the breathing room around the\n // tabs and the selection indicator can be tuned via the `tabListPadding`\n // prop — the same prop that controls horizontal start/end padding.\n padding: {\n '': '0 $tablist-padding',\n 'placement=left | placement=right': '$tablist-padding 0',\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '$tablist-padding',\n },\n\n // Default `$tablist-padding` per type. Vertical default/narrow gets the\n // smaller `.5x` default since it applies to all four sides; the\n // `tabListPadding` prop overrides this via inline CSS variable.\n '$tablist-padding': {\n '': '0',\n 'type=default | type=narrow': '1x',\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '.5x',\n },\n },\n\n // Size variable for actions (if ItemAction is used instead of TabsAction)\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n },\n\n // Custom tiny scrollbar — positioned relative to ScrollWrapper. Switches\n // edges and dimensions based on placement; the driving CSS custom\n // properties come from `useTinyScrollbar.handleHTokens` / `handleVTokens`.\n Scrollbar: {\n $: '> Bar > ScrollWrapper >',\n // It sits a device pixel in from the edge.\n '$scrollbar-inset': '1px',\n position: 'absolute',\n bottom: {\n '': '$scrollbar-inset',\n 'placement=left | placement=right': 'auto',\n },\n top: {\n '': 'auto',\n 'placement=left | placement=right': '$scrollbar-v-top',\n },\n left: {\n '': '$scrollbar-h-left',\n 'placement=left | placement=right': 'auto',\n },\n right: {\n '': 'auto',\n 'placement=left | placement=right': '$scrollbar-inset',\n },\n height: {\n '': '1ow',\n 'placement=left | placement=right': '$scrollbar-v-height',\n },\n width: {\n '': '$scrollbar-h-width',\n 'placement=left | placement=right': '1ow',\n },\n radius: 'round',\n fill: '#surface-text.35',\n opacity: {\n '': 0,\n 'focused | scrolling': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n },\n});\n\n// =============================================================================\n// Tab Button (extends Item)\n// =============================================================================\n\nexport const TabElement = tasty(Item, {\n as: 'button',\n styles: {\n radius: {\n '': false,\n 'type=radio | type=default': true,\n 'type=narrow': 'top',\n 'type=narrow & placement=bottom': 'bottom',\n 'type=narrow & placement=left': 'left',\n 'type=narrow & placement=right': 'right',\n },\n // Tab colors read current tokens, not the legacy aliases that point at them\n // (`#dark-02`, `#primary-text`, `#primary`). Root resolves an alias once, on\n // the page root, so a caller re-declaring the current token on `Tabs` would\n // never reach it. The contract is under \"Theming\" in `Tabs.docs.mdx`.\n color: {\n '': '#surface-text-soft',\n 'type=narrow & (hovered & !selected)': '#primary-accent-text',\n '(type=default | type=narrow) & selected': '#primary-accent-text',\n disabled: '#disabled-surface-text',\n },\n fill: {\n '': '#clear',\n 'hovered & !type=narrow': '#surface-text.03',\n 'type=file': '#surface-3',\n 'type=file & hovered': '#surface-3.5',\n 'type=radio & hovered': '#surface.5',\n '(type=file | type=radio) & selected': '#surface',\n // Spring-load hint: a widget is hovering this tab and it is about to open.\n 'drop-pending': '#primary-accent-surface.10',\n },\n border: {\n '': '#clear',\n 'type=file': '0 #clear',\n },\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n },\n shadow: {\n '': '$selection-shadow',\n 'focused & focus-visible':\n 'inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow',\n editing:\n 'inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow',\n 'type=radio & selected': '$item-shadow',\n 'type=radio & selected & focused & focus-visible':\n '$item-shadow, inset 0 0 0 $ring-width #primary-accent-text',\n },\n outline: 'none',\n placeContent: {\n // extend\n 'type=radio': 'center',\n },\n gridTemplate: {\n // extend\n // Sized by content like a radio button, but the label column keeps a\n // zero minimum (as `Item`'s `1sf` does), so a tab given less room than\n // its title truncates it — and gets the auto tooltip — instead of\n // spilling the title out of the tab.\n 'type=radio':\n '\"icon prefix label suffix rightIcon actions\" auto / max-content max-content minmax(0, max-content) max-content max-content max-content',\n },\n // File-type selection indicator: an inset shadow on the edge that faces\n // the panel area. Flips with placement so the highlight always sits on\n // the edge adjacent to the content.\n '$selection-shadow': {\n '': 'inset 0 0 0 0 #primary-accent-surface',\n 'type=file & selected':\n 'inset 0 (-1 * $tab-indicator-size) 0 0 #primary-accent-surface',\n 'type=file & selected & placement=bottom':\n 'inset 0 $tab-indicator-size 0 0 #primary-accent-surface',\n 'type=file & selected & placement=left':\n 'inset (-1 * $tab-indicator-size) 0 0 0 #primary-accent-surface',\n 'type=file & selected & placement=right':\n 'inset $tab-indicator-size 0 0 0 #primary-accent-surface',\n '!type=file': 'inset 0 0 0 0 #primary-accent-surface.0',\n },\n // Collapse horizontal padding for narrow type\n '$label-padding-left': {\n '': '$inline-padding',\n 'has-start-content': 0,\n 'type=narrow': 0,\n },\n '$label-padding-right': {\n '': '$inline-padding',\n 'has-end-content': 0,\n 'type=narrow': 0,\n },\n Label: {\n placeSelf: {\n '': 'center start',\n 'type=radio': 'center start',\n 'type=radio & !has-prefix & !has-suffix & !has-icon & !has-right-icon':\n 'center',\n },\n },\n Actions: {\n transition: false,\n },\n },\n});\n\n// =============================================================================\n// Tab Container (wrapper for tab + actions)\n// =============================================================================\n\nexport const TabContainer = tasty({\n styles: {\n position: 'relative',\n display: 'grid',\n margin: {\n '': 0,\n // Horizontal strip: .5x top/bottom creates space between the tab and the\n // bottom-edge indicator (which sits at `bottom: 0` of TabList).\n 'type=default': '.5x 0',\n // Vertical strip: the breathing room around the tabs and the gap from\n // the side indicator is provided by the TabList's own `.5x` padding —\n // don't add per-tab horizontal margin on top of it.\n 'type=default & (placement=left | placement=right)': 0,\n },\n border: {\n '': 0,\n 'type=file': 'right',\n 'type=file & (placement=left | placement=right)': 'bottom',\n },\n cursor: {\n '': 'default',\n draggable: 'grab',\n dragging: 'grabbing',\n },\n },\n});\n\n// =============================================================================\n// Drop Indicator for Drag-and-Drop\n// Geometry flips based on placement: a vertical bar between horizontal tabs,\n// a horizontal bar between vertical tabs. `before`/`after` mods come from\n// `TabDropIndicator` and decide which edge inset is applied.\n// =============================================================================\n\nexport const DropIndicatorElement = tasty({\n styles: {\n zIndex: 10,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: {\n '': 0,\n 'drop-target': 1,\n },\n fill: '#primary-accent-surface',\n width: {\n '': '.5x',\n 'placement=left | placement=right': 'auto',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': '.5x',\n },\n top: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & before': '-.25x',\n },\n bottom: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & after': '-.25x',\n },\n left: {\n '': 'auto',\n 'before & !(placement=left | placement=right)': '-.25x',\n 'placement=left | placement=right': 0,\n },\n right: {\n '': 'auto',\n 'after & !(placement=left | placement=right)': '-.25x',\n 'placement=left | placement=right': 0,\n },\n },\n});\n\n// =============================================================================\n// Tab Selection Indicator (for default/narrow type)\n// Position flips with placement; the measured offset and length along the tab\n// axis arrive as `$indicator-start` / `$indicator-size` tokens from\n// `useTabIndicator` in `Tabs.tsx` (left/width for horizontal, top/height for\n// vertical).\n// =============================================================================\n\nexport const TabIndicatorElement = tasty({\n styles: {\n position: 'absolute',\n bottom: {\n '': '0',\n 'placement=bottom | placement=left | placement=right': 'auto',\n },\n top: {\n '': 'auto',\n 'placement=bottom': '0',\n 'placement=left | placement=right': '$indicator-start',\n },\n left: {\n '': '$indicator-start',\n 'placement=left': 'auto',\n 'placement=right': '0',\n },\n right: {\n '': 'auto',\n 'placement=left': '0',\n },\n height: {\n '': '$tab-indicator-size',\n 'placement=left | placement=right': '$indicator-size',\n },\n width: {\n '': '$indicator-size',\n 'placement=left | placement=right': '$tab-indicator-size',\n },\n fill: '#primary-accent-surface',\n // Transition all four properties unconditionally — only the two relevant\n // ones change per render, the others stay constant.\n transition:\n 'left $tab-transition ease-in-out, width $tab-transition ease-in-out, top $tab-transition ease-in-out, height $tab-transition ease-in-out',\n pointerEvents: 'none',\n },\n});\n\n// =============================================================================\n// Tab Panel\n// =============================================================================\n\nexport const TabPanelElement = tasty({\n as: 'section',\n styles: {\n display: 'contents',\n hide: {\n '': true,\n active: false,\n },\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"styled.js","names":["mergeStyles","tasty","Item","SEGMENTED_LIST_STYLES","SEGMENTED_SEGMENT_STYLES","SEGMENTED_TRACK_STYLES","TabsElement","styles","display","flow","flexShrink","flexGrow","width","height","overflow","Bar","$","placeItems","border","boxSizing","padding","radius","fill","$transition","Prefix","placeContent","placeSelf","gap","Suffix","ScrollWrapper","position","Scroll","scrollbar","margin","fade","transition","TabList","gridAutoColumns","gridAutoRows","$size","Scrollbar","bottom","top","left","right","opacity","pointerEvents","TabElement","as","color","disabled","preset","shadow","editing","outline","gridTemplate","Label","Actions","TabContainer","cursor","draggable","dragging","DropIndicatorElement","zIndex","TabIndicatorElement","TabPanelElement","hide","active","Item"],"sources":["../../../../src/components/navigation/Tabs/styled.ts"],"sourcesContent":["import { mergeStyles, tasty } from '@tenphi/tasty';\n\nimport { Item } from '../../content/Item';\n\nimport {\n SEGMENTED_LIST_STYLES,\n SEGMENTED_SEGMENT_STYLES,\n SEGMENTED_TRACK_STYLES,\n} from './segmented-styles';\n\n// =============================================================================\n// Main Tabs Container — flex wrapper holding the tab Bar and the panels.\n// `placement` mod drives `flex-direction` so DOM order stays \"bar then panels\"\n// and visual order is controlled with `column / column-reverse / row / row-reverse`.\n// =============================================================================\n\nexport const TabsElement = tasty({\n styles: {\n display: 'flex',\n flow: {\n '': 'column',\n 'placement=bottom': 'column-reverse',\n 'placement=left': 'row',\n 'placement=right': 'row-reverse',\n },\n // Participate in parent flex layouts; allow shrinking on both axes so we\n // never force the parent into overflow. The Bar keeps `flex-shrink: 0`,\n // which makes the practical minimum of the wrapper along the main axis\n // equal to the tablist's intrinsic size. When there are no panels the\n // wrapper has only the Bar inside it, so we lock its sizing to the Bar's\n // intrinsic size — matching the pre-wrapper behavior of a panel-less Tabs.\n flexShrink: { '': 0, 'has-panels': 1 },\n flexGrow: { '': 0, 'has-panels': 1 },\n width: 'min 0',\n height: 'min 0',\n overflow: 'visible',\n\n // ============================================\n // Bar — the tab strip (Prefix + ScrollWrapper + Suffix). For the radio\n // type it is the segmented control's track (`segmented-styles.ts`).\n // ============================================\n Bar: mergeStyles(\n {\n $: '>',\n display: 'flex',\n flow: {\n '': 'row',\n 'placement=left | placement=right': 'column',\n },\n placeItems: {\n '': 'end stretch',\n 'placement=bottom': 'start stretch',\n 'placement=left': 'stretch end',\n 'placement=right': 'stretch start',\n 'type=radio | type=file': 'stretch',\n },\n overflow: 'visible',\n border: {\n '': 0,\n '(type=default | type=file | type=narrow) & has-panels': 'bottom',\n '(type=default | type=file | type=narrow) & has-panels & placement=bottom':\n 'top',\n '(type=default | type=file | type=narrow) & has-panels & placement=left':\n 'right',\n '(type=default | type=file | type=narrow) & has-panels & placement=right':\n 'left',\n },\n // Bar sizing — always follow the outer wrapper along the main axis so\n // `width` / `height` props on `<Tabs>` apply to the strip as they did\n // before the wrapper was introduced.\n // - horizontal placements: main-axis = wrapper width (100%), cross-axis intrinsic (auto)\n // - vertical placements: main-axis = wrapper height (100%), cross-axis intrinsic (auto / max-content for radio)\n // `border-box` keeps the radio padding inside that 100%. Without a global\n // border-box reset in the app, the pill would otherwise paint `1x` past\n // the wrapper and into the gap before its sibling.\n boxSizing: 'border-box',\n width: {\n '': '100%',\n 'placement=left | placement=right': 'auto',\n 'type=radio & (placement=left | placement=right)': 'max-content',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': '100%',\n 'type=radio & (placement=left | placement=right)': 'max-content',\n },\n padding: 0,\n radius: 0,\n fill: '#clear',\n // Never let the Bar shrink/grow within the outer wrapper — this is what\n // gives the wrapper its effective \"tablist-size minimum\" on the main axis.\n flexShrink: 0,\n flexGrow: 0,\n\n $transition: '$tab-transition',\n // The indicator line's thickness, in device pixels.\n '$tab-indicator-size': {\n '': '2px',\n 'size=large': '1ow',\n },\n },\n SEGMENTED_TRACK_STYLES,\n ),\n\n // ============================================\n // Prefix — slot before the scroll area.\n // ============================================\n Prefix: {\n $: '> Bar >',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 0 .5x 1x',\n 'type=default & (placement=left | placement=right)': '1x .5x 0 .5x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'right',\n 'type=file & (placement=left | placement=right)': 'bottom',\n },\n },\n\n // ============================================\n // Suffix — slot after the scroll area.\n // ============================================\n Suffix: {\n $: '> Bar >',\n display: 'flex',\n placeItems: 'center',\n placeContent: 'center',\n flexShrink: 0,\n placeSelf: 'stretch',\n padding: {\n '': 0,\n 'type=default': '.5x 1x .5x 0',\n 'type=default & (placement=left | placement=right)': '0 .5x 1x .5x',\n },\n gap: {\n '': 0,\n 'type=default': '.5x',\n },\n border: {\n '': 0,\n 'type=file': 'left',\n 'type=file & (placement=left | placement=right)': 'top',\n },\n },\n\n // Wrapper for scroll area and scrollbar (scrollbar is positioned relative to this)\n ScrollWrapper: {\n $: '> Bar >',\n position: 'relative',\n display: 'flex',\n flexGrow: 1,\n flexShrink: 1,\n width: {\n '': 'min 0',\n 'placement=left | placement=right': 'auto',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': 'min 0',\n },\n overflow: {\n '': 'hidden',\n 'type=radio': 'visible',\n },\n },\n\n Scroll: {\n $: '> Bar > ScrollWrapper >',\n position: 'relative',\n display: 'block',\n overflow: {\n '': 'auto hidden',\n 'placement=left | placement=right': 'hidden auto',\n 'type=radio': 'visible',\n },\n scrollbar: 'none',\n flexGrow: 1,\n width: '100%',\n // Add padding/margin for radio type to allow shadow to render outside\n padding: {\n '': 0,\n 'type=radio': '.5x',\n },\n margin: {\n '': 0,\n 'type=radio': '-.5x',\n },\n // Multi-group fade with axis-neutral color tokens for smooth transitions.\n // Direction flips based on placement.\n fade: {\n '': '2x left #tabs-fade-start #black, 2x right #tabs-fade-end #black',\n 'placement=left | placement=right':\n '2x top #tabs-fade-start #black, 2x bottom #tabs-fade-end #black',\n },\n // ##name outputs --name-color (literal CSS property name)\n transition:\n '##tabs-fade-start $tab-transition ease-in, ##tabs-fade-end $tab-transition ease-in',\n\n // Transition transparent color: opaque (no fade) -> transparent (fade visible)\n '#tabs-fade-start': {\n '': '#black',\n 'fade-start': '#black.0',\n },\n '#tabs-fade-end': {\n '': '#black',\n 'fade-end': '#black.0',\n },\n },\n\n TabList: mergeStyles(\n {\n $: '> Bar > ScrollWrapper > Scroll >',\n position: 'relative',\n display: 'grid',\n // `border-box` is required because we set `width: 100%` for vertical\n // placements AND apply padding. With the default `content-box`, the\n // TabList's outer box would be `100% + padding × 2` and overflow Scroll\n // horizontally — and the side selection indicator (positioned at\n // `right: 0` / `left: 0` of TabList) would land in that overflow region\n // and get clipped by Scroll's `overflow-x: hidden`.\n boxSizing: 'border-box',\n flow: {\n '': 'column',\n 'placement=left | placement=right': 'row',\n },\n gridAutoColumns: {\n '': 'auto',\n 'type=radio': '1fr',\n },\n gridAutoRows: {\n '': 'auto',\n 'type=radio & (placement=left | placement=right)': '1fr',\n },\n gap: {\n '': 0,\n 'type=default': '1x',\n 'type=narrow': '2x',\n // Tabs stack vertically — collapse the gap so the strip reads as a\n // single column. `narrow` is coerced to `default` in vertical, but we\n // keep the rule defensive in case the styled element is consumed\n // directly with a `type=narrow` mod set.\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '$item-gap',\n },\n placeContent: 'start',\n overflow: 'visible',\n width: {\n '': 'max-content',\n 'type=radio': '100%',\n 'placement=left | placement=right': '100%',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': 'max-content',\n },\n // For vertical default/narrow we apply `$tablist-padding` on ALL sides\n // (instead of only the parallel axis) so the breathing room around the\n // tabs and the selection indicator can be tuned via the `tabListPadding`\n // prop — the same prop that controls horizontal start/end padding.\n padding: {\n '': '0 $tablist-padding',\n 'placement=left | placement=right': '$tablist-padding 0',\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '$tablist-padding',\n },\n\n // Default `$tablist-padding` per type. Vertical default/narrow gets the\n // smaller `.5x` default since it applies to all four sides; the\n // `tabListPadding` prop overrides this via inline CSS variable.\n '$tablist-padding': {\n '': '0',\n 'type=default | type=narrow': '1x',\n '(type=default | type=narrow) & (placement=left | placement=right)':\n '.5x',\n },\n },\n SEGMENTED_LIST_STYLES,\n ),\n\n // Size variable for actions (if ItemAction is used instead of TabsAction)\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n },\n\n // Custom tiny scrollbar — positioned relative to ScrollWrapper. Switches\n // edges and dimensions based on placement; the driving CSS custom\n // properties come from `useTinyScrollbar.handleHTokens` / `handleVTokens`.\n Scrollbar: {\n $: '> Bar > ScrollWrapper >',\n // It sits a device pixel in from the edge.\n '$scrollbar-inset': '1px',\n position: 'absolute',\n bottom: {\n '': '$scrollbar-inset',\n 'placement=left | placement=right': 'auto',\n },\n top: {\n '': 'auto',\n 'placement=left | placement=right': '$scrollbar-v-top',\n },\n left: {\n '': '$scrollbar-h-left',\n 'placement=left | placement=right': 'auto',\n },\n right: {\n '': 'auto',\n 'placement=left | placement=right': '$scrollbar-inset',\n },\n height: {\n '': '1ow',\n 'placement=left | placement=right': '$scrollbar-v-height',\n },\n width: {\n '': '$scrollbar-h-width',\n 'placement=left | placement=right': '1ow',\n },\n radius: 'round',\n fill: '#surface-text.35',\n opacity: {\n '': 0,\n 'focused | scrolling': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n },\n});\n\n// =============================================================================\n// Tab Button (extends Item)\n// =============================================================================\n\n// A radio tab is a segment of the control `Radio.Tabs` shares: its look comes\n// from `segmented-styles.ts`, merged in after the tab's own styles.\nexport const TabElement = tasty(Item, {\n as: 'button',\n styles: mergeStyles(\n {\n radius: {\n '': false,\n 'type=default': true,\n 'type=narrow': 'top',\n 'type=narrow & placement=bottom': 'bottom',\n 'type=narrow & placement=left': 'left',\n 'type=narrow & placement=right': 'right',\n },\n // Tab colors read current tokens, not the legacy aliases that point at them\n // (`#dark-02`, `#primary-text`, `#primary`). Root resolves an alias once, on\n // the page root, so a caller re-declaring the current token on `Tabs` would\n // never reach it. The contract is under \"Theming\" in `Tabs.docs.mdx`.\n color: {\n '': '#surface-text-soft',\n 'type=narrow & (hovered & !selected)': '#primary-accent-text',\n '(type=default | type=narrow) & selected': '#primary-accent-text',\n disabled: '#disabled-surface-text',\n },\n fill: {\n '': '#clear',\n 'hovered & !type=narrow': '#surface-text.03',\n 'type=file': '#surface-3',\n 'type=file & hovered': '#surface-3.5',\n 'type=file & selected': '#surface',\n // Spring-load hint: a widget is hovering this tab and it is about to open.\n 'drop-pending': '#primary-accent-surface.10',\n },\n border: {\n '': '#clear',\n 'type=file': '0 #clear',\n },\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n },\n shadow: {\n '': '$selection-shadow',\n 'focused & focus-visible':\n 'inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow',\n editing:\n 'inset 0 0 0 $ring-width #primary-accent-text, $selection-shadow',\n },\n outline: 'none',\n // oxlint-disable-next-line tasty/require-default-state -- extends Item's own gridTemplate map\n gridTemplate: {\n // Sized by content like a radio button, but the label column keeps a\n // zero minimum (as `Item`'s `1sf` does), so a tab given less room than\n // its title truncates it — and gets the auto tooltip — instead of\n // spilling the title out of the tab.\n 'type=radio':\n '\"icon prefix label suffix rightIcon actions\" auto / max-content max-content minmax(0, max-content) max-content max-content max-content',\n },\n // File-type selection indicator: an inset shadow on the edge that faces\n // the panel area. Flips with placement so the highlight always sits on\n // the edge adjacent to the content.\n '$selection-shadow': {\n '': 'inset 0 0 0 0 #primary-accent-surface',\n 'type=file & selected':\n 'inset 0 (-1 * $tab-indicator-size) 0 0 #primary-accent-surface',\n 'type=file & selected & placement=bottom':\n 'inset 0 $tab-indicator-size 0 0 #primary-accent-surface',\n 'type=file & selected & placement=left':\n 'inset (-1 * $tab-indicator-size) 0 0 0 #primary-accent-surface',\n 'type=file & selected & placement=right':\n 'inset $tab-indicator-size 0 0 0 #primary-accent-surface',\n '!type=file': 'inset 0 0 0 0 #primary-accent-surface.0',\n },\n // Collapse horizontal padding for narrow type\n '$label-padding-left': {\n '': '$inline-padding',\n 'has-start-content': 0,\n 'type=narrow': 0,\n },\n '$label-padding-right': {\n '': '$inline-padding',\n 'has-end-content': 0,\n 'type=narrow': 0,\n },\n Label: {\n placeSelf: {\n '': 'center start',\n 'type=radio': 'center start',\n 'type=radio & !has-prefix & !has-suffix & !has-icon & !has-right-icon':\n 'center',\n },\n },\n Actions: {\n transition: false,\n },\n },\n SEGMENTED_SEGMENT_STYLES,\n // The spring-load hint stays above the segment's own fill.\n { fill: { 'drop-pending': '@inherit' } },\n ),\n});\n\n// =============================================================================\n// Tab Container (wrapper for tab + actions)\n// =============================================================================\n\nexport const TabContainer = tasty({\n styles: {\n position: 'relative',\n display: 'grid',\n margin: {\n '': 0,\n // Horizontal strip: .5x top/bottom creates space between the tab and the\n // bottom-edge indicator (which sits at `bottom: 0` of TabList).\n 'type=default': '.5x 0',\n // Vertical strip: the breathing room around the tabs and the gap from\n // the side indicator is provided by the TabList's own `.5x` padding —\n // don't add per-tab horizontal margin on top of it.\n 'type=default & (placement=left | placement=right)': 0,\n },\n border: {\n '': 0,\n 'type=file': 'right',\n 'type=file & (placement=left | placement=right)': 'bottom',\n },\n cursor: {\n '': 'default',\n draggable: 'grab',\n dragging: 'grabbing',\n },\n },\n});\n\n// =============================================================================\n// Drop Indicator for Drag-and-Drop\n// Geometry flips based on placement: a vertical bar between horizontal tabs,\n// a horizontal bar between vertical tabs. `before`/`after` mods come from\n// `TabDropIndicator` and decide which edge inset is applied.\n// =============================================================================\n\nexport const DropIndicatorElement = tasty({\n styles: {\n zIndex: 10,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: {\n '': 0,\n 'drop-target': 1,\n },\n fill: '#primary-accent-surface',\n width: {\n '': '.5x',\n 'placement=left | placement=right': 'auto',\n },\n height: {\n '': 'auto',\n 'placement=left | placement=right': '.5x',\n },\n top: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & before': '-.25x',\n },\n bottom: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & after': '-.25x',\n },\n left: {\n '': 'auto',\n 'before & !(placement=left | placement=right)': '-.25x',\n 'placement=left | placement=right': 0,\n },\n right: {\n '': 'auto',\n 'after & !(placement=left | placement=right)': '-.25x',\n 'placement=left | placement=right': 0,\n },\n },\n});\n\n// =============================================================================\n// Tab Selection Indicator (for default/narrow type)\n// Position flips with placement; the measured offset and length along the tab\n// axis arrive as `$indicator-start` / `$indicator-size` tokens from\n// `useTabIndicator` in `Tabs.tsx` (left/width for horizontal, top/height for\n// vertical).\n// =============================================================================\n\nexport const TabIndicatorElement = tasty({\n styles: {\n position: 'absolute',\n bottom: {\n '': '0',\n 'placement=bottom | placement=left | placement=right': 'auto',\n },\n top: {\n '': 'auto',\n 'placement=bottom': '0',\n 'placement=left | placement=right': '$indicator-start',\n },\n left: {\n '': '$indicator-start',\n 'placement=left': 'auto',\n 'placement=right': '0',\n },\n right: {\n '': 'auto',\n 'placement=left': '0',\n },\n height: {\n '': '$tab-indicator-size',\n 'placement=left | placement=right': '$indicator-size',\n },\n width: {\n '': '$indicator-size',\n 'placement=left | placement=right': '$tab-indicator-size',\n },\n fill: '#primary-accent-surface',\n // Transition all four properties unconditionally — only the two relevant\n // ones change per render, the others stay constant.\n transition:\n 'left $tab-transition ease-in-out, width $tab-transition ease-in-out, top $tab-transition ease-in-out, height $tab-transition ease-in-out',\n pointerEvents: 'none',\n },\n});\n\n// =============================================================================\n// Tab Panel\n// =============================================================================\n\nexport const TabPanelElement = tasty({\n as: 'section',\n styles: {\n display: 'contents',\n hide: {\n '': true,\n active: false,\n },\n },\n});\n"],"mappings":"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"}
|
|
@@ -45,8 +45,8 @@ type OmittedItemProps = 'id' | 'type' | 'size' | 'theme' | 'shape' | 'descriptio
|
|
|
45
45
|
export interface TabStyleProps extends Omit<CubeItemProps, OmittedItemProps> {
|
|
46
46
|
/**
|
|
47
47
|
* Tab size. Supports 'xsmall', 'small', 'medium', 'large'.
|
|
48
|
-
* Radio type supports '
|
|
49
|
-
* mapped to Item button sizes
|
|
48
|
+
* Radio type supports 'medium' (default, 32px) and 'large' (40px),
|
|
49
|
+
* mapped to Item button sizes xsmall (24px) and medium (32px).
|
|
50
50
|
*/
|
|
51
51
|
size?: TabSize;
|
|
52
52
|
/** Whether to show actions only on hover. */
|
|
@@ -78,8 +78,8 @@ export interface CubeTabsProps extends BaseProps, OuterStyleProps, PanelBehavior
|
|
|
78
78
|
placement?: TabPlacement;
|
|
79
79
|
/**
|
|
80
80
|
* Tab size. Supports 'xsmall', 'small', 'medium', 'large'.
|
|
81
|
-
* Radio type supports '
|
|
82
|
-
* mapped to Item button sizes
|
|
81
|
+
* Radio type supports 'medium' (default, 32px) and 'large' (40px),
|
|
82
|
+
* mapped to Item button sizes xsmall (24px) and medium (32px).
|
|
83
83
|
* @default 'medium'
|
|
84
84
|
*/
|
|
85
85
|
size?: TabSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["BaseProps","OuterStyleProps","Styles","ReactNode","CubeItemActionProps","CubeMenuProps","CubeItemProps","TabType","TabPlacement","TabsActionPosition","TabSize","RADIO_SIZE_MAP","Record","medium","large","TabContextMenu","PanelBehaviorProps","prerender","keepMounted","QAProps","qa","qaVal","OmittedItemProps","TabStyleProps","Omit","size","autoHideActions","CacheKeyValue","CubeTabsProps","activeKey","defaultActiveKey","type","placement","label","prefix","suffix","onChange","key","onDelete","onTitleChange","newTitle","isEditable","menu","menuTriggerProps","Partial","menuProps","contextMenu","onAction","action","tabKey","styles","children","renderPanel","panelCacheKeys","isReorderable","keyOrder","onReorder","newOrder","showTabPicker","showScrollArrows","tabPickerPosition","scrollArrowsPosition","hideTabListScroll","tabListPadding","barStyles","tabListStyles","prefixStyles","suffixStyles","CubeTabProps","id","title","isDisabled","actions","CubeTabPanelProps","CubeTabListProps","ParsedTab","content","ParsedPanel"],"sources":["../../../../src/components/navigation/Tabs/types.ts"],"sourcesContent":["import type { BaseProps, OuterStyleProps, Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemActionProps } from '../../actions/ItemAction';\nimport type { CubeMenuProps } from '../../actions/Menu';\nimport type { CubeItemProps } from '../../content/Item';\n\n// =============================================================================\n// Core Types\n// =============================================================================\n\n/** Visual appearance type for tabs */\nexport type TabType = 'default' | 'narrow' | 'file' | 'radio';\n\n/**\n * Where the tab bar sits relative to its panels.\n * - `'top'` / `'bottom'` keep the bar horizontal.\n * - `'left'` / `'right'` switch it to a vertical strip.\n */\nexport type TabPlacement = 'top' | 'bottom' | 'left' | 'right';\n\n/** Position for TabPicker and scroll arrows */\nexport type TabsActionPosition = 'prefix' | 'suffix';\n\n/**\n * Tab size options.\n * Radio type only supports 'medium' | 'large' (mapped to smaller Item sizes).\n */\nexport type TabSize = 'xsmall' | 'small' | 'medium' | 'large';\n\n/**\n * Size mapping for radio type tabs.\n * API sizes mapped to Item button sizes:\n * medium (default) -> xsmall (32px total), large -> medium (40px total).\n */\nexport const RADIO_SIZE_MAP: Record<'medium' | 'large', TabSize> = {\n medium: 'xsmall',\n large: 'medium',\n};\n\n/** How the tab `menu` is exposed alongside or instead of the overflow trigger. */\nexport type TabContextMenu = boolean | 'context-only';\n\n// =============================================================================\n// Shared Props Interfaces\n// =============================================================================\n\n/** Common props for panel rendering behavior */\nexport interface PanelBehaviorProps {\n /** If true, panel is rendered but hidden when not active. */\n prerender?: boolean;\n /** If true, once visited the panel stays in DOM. */\n keepMounted?: boolean;\n}\n\n/** Common props for QA attributes */\nexport interface QAProps {\n /** QA selector attribute. */\n qa?: string;\n /** Additional QA value attribute. */\n qaVal?: string;\n}\n\n// =============================================================================\n// Tab Style Props\n// =============================================================================\n\n/** Props from CubeItemProps that don't apply to Tab */\ntype OmittedItemProps =\n | 'id' // Tab has its own id as Key type\n | 'type' // Type is decided at the Tabs level, never per-tab\n | 'size' // Tab has its own TabSize\n | 'theme' // Tabs have internal theming\n | 'shape' // Tabs have internal shape logic\n | 'description' // Tabs don't have descriptions\n | 'descriptionPlacement'\n | 'descriptionProps'\n | 'hotkeys' // Tabs have their own keyboard navigation\n | 'keyboardShortcutProps'\n | 'labelProps' // Tabs use title prop instead\n | 'labelRef'\n | 'level' // Tabs don't use heading levels\n | 'highlight' // Tabs don't use highlighting\n | 'highlightCaseSensitive'\n | 'highlightStyles'\n | 'variant' // Tabs have internal variant logic\n | 'htmlType' // Tab is always a button\n | 'isSelected' // Handled internally by state\n | 'preserveActionsSpace' // Set internally in TabButton\n | 'disableActionsFocus' // Not used in Tab\n | 'actions' // Tab has its own actions definition\n | 'autoHideActions' // Tab has its own autoHideActions\n | 'insideWrapper' // Internal Item wrapper prop\n | 'showActions' // Internal Item wrapper prop\n | 'skipActionsWidthTransition'; // Internal Item wrapper prop\n\n/** Common styling props for tabs - inherits style props from CubeItemProps */\nexport interface TabStyleProps extends Omit<CubeItemProps, OmittedItemProps> {\n /**\n * Tab size. Supports 'xsmall', 'small', 'medium', 'large'.\n * Radio type supports 'large' (default, 40px) and 'medium' (32px),\n * mapped to Item button sizes medium (32px) and xsmall (24px).\n */\n size?: TabSize;\n /** Whether to show actions only on hover. */\n autoHideActions?: boolean;\n}\n\n// =============================================================================\n// Component Props\n// =============================================================================\n\n/** Cache key type - primitives only for reliable comparison */\nexport type CacheKeyValue = string | number | boolean | null | undefined;\n\nexport interface CubeTabsProps\n extends BaseProps, OuterStyleProps, PanelBehaviorProps {\n /** Controlled active tab key. When provided, component is controlled. */\n activeKey?: string;\n /** Initial active tab key for uncontrolled mode. */\n defaultActiveKey?: string;\n /**\n * Visual appearance type for tabs.\n * - `default` - Standard tabs with selection indicator below (default)\n * - `narrow` - Same as default but with collapsed vertical padding on labels\n * - `file` - File-style tabs with border bottom highlight on selection, delimiter between tabs\n * - `radio` - Radio button style for tab selection\n * @default 'default'\n */\n type?: TabType;\n /**\n * Where the tab bar sits relative to its panels.\n * `'top'` / `'bottom'` keep the bar horizontal; `'left'` / `'right'`\n * switch it to a vertical strip. The selection indicator, scroll behavior,\n * fades, and per-type visuals all adapt automatically.\n * @default 'top'\n */\n placement?: TabPlacement;\n /**\n * Tab size. Supports 'xsmall', 'small', 'medium', 'large'.\n * Radio type supports 'large' (default, 40px) and 'medium' (32px),\n * mapped to Item button sizes medium (32px) and xsmall (24px).\n * @default 'medium'\n */\n size?: TabSize;\n /** Accessible label for the tab list. */\n label?: string;\n /** Content rendered before the tab list. */\n prefix?: ReactNode;\n /** Content rendered after the tab list. */\n suffix?: ReactNode;\n /** Callback when active tab changes. */\n onChange?: (key: string) => void;\n /** Callback when tab delete button is clicked. Presence enables delete buttons. */\n onDelete?: (key: string) => void;\n /** Callback when a tab title is changed. Enables title editing on tabs with isEditable. */\n onTitleChange?: (key: string, newTitle: string) => void;\n /** Whether to show tab actions only on hover. Can be overridden per-tab. */\n autoHideActions?: boolean;\n /**\n * Whether tabs are editable by default.\n * Can be overridden per-tab via Tab's isEditable prop.\n * @default false\n */\n isEditable?: boolean;\n /**\n * Default menu items for all tabs.\n * Can be overridden per-tab via Tab's menu prop.\n * Set to `null` on individual Tab to disable menu for that tab.\n */\n menu?: ReactNode;\n /**\n * Default props for the menu trigger button.\n * Can be overridden per-tab via Tab's menuTriggerProps prop.\n * @default { icon: <MoreIcon /> }\n */\n menuTriggerProps?: Partial<CubeItemActionProps>;\n /**\n * Default props passed to the Menu component.\n * Can be overridden per-tab via Tab's menuProps prop.\n */\n menuProps?: Partial<CubeMenuProps<object>>;\n /**\n * Context menu / overflow behavior for tab `menu` items.\n * - `false` (default) — overflow trigger only; no right-click menu\n * - `true` — overflow trigger and right-click menu\n * - `'context-only'` — right-click menu only; no overflow trigger. Inline close\n * (`onDelete`) shows even when `menu` is non-empty, like tabs without a menu.\n * Can be overridden per-tab via Tab's contextMenu prop.\n * @default false\n */\n contextMenu?: TabContextMenu;\n /**\n * Callback when a menu action is triggered on any tab.\n * Called with the action key and the tab key.\n * Tab-level onAction is called first, then this.\n */\n onAction?: (action: string, tabKey: string) => void;\n /** Custom tasty styles for the tab bar container. */\n styles?: Styles;\n /** QA selector attribute. */\n qa?: string;\n /** Tab components or Tabs.List with Tabs.Panel. */\n children?: ReactNode;\n /**\n * Functional content renderer for optimized lazy evaluation.\n * When provided, panel content is only evaluated for the active tab,\n * while inactive tabs use cached content.\n */\n renderPanel?: (key: string) => ReactNode;\n /**\n * Cache keys for individual panels. Enables caching for specified panels.\n */\n panelCacheKeys?: Record<string | number, CacheKeyValue>;\n /**\n * Enable drag-and-drop tab reordering.\n * When a tab picker is shown (`showTabPicker`), reordering is automatically\n * enabled in the picker dropdown as well.\n * @default false\n */\n isReorderable?: boolean;\n /**\n * Controlled order of tab keys.\n * When provided, tabs are displayed in this order.\n */\n keyOrder?: string[];\n /**\n * Callback when tabs are reordered via drag-and-drop.\n */\n onReorder?: (newOrder: string[]) => void;\n /**\n * Whether to show a tab picker dropdown in the suffix area.\n * - `true` - always show the tab picker\n * - `false` - never show the tab picker (default)\n * - `'auto'` - show only when tabs overflow (has horizontal scroll)\n * @default false\n */\n showTabPicker?: boolean | 'auto';\n /**\n * Whether to show scroll arrow buttons in the suffix area.\n * - `true` - always show scroll arrows\n * - `false` - never show scroll arrows (default)\n * - `'auto'` - show only when tabs overflow (has horizontal scroll)\n * @default false\n */\n showScrollArrows?: boolean | 'auto';\n /**\n * Position of the tab picker dropdown.\n * - `'prefix'` - render in the prefix slot (before tab list)\n * - `'suffix'` - render in the suffix slot (after tab list)\n * @default 'suffix'\n */\n tabPickerPosition?: TabsActionPosition;\n /**\n * Position of the scroll arrow buttons.\n * - `'prefix'` - render in the prefix slot (before tab list)\n * - `'suffix'` - render in the suffix slot (after tab list)\n * @default 'suffix'\n */\n scrollArrowsPosition?: TabsActionPosition;\n /**\n * Visually hide the custom horizontal scrollbar in the tab list\n * and skip its tracking logic. Does not affect tab picker, scroll arrows,\n * or fade indicators — only the tiny scrollbar visual.\n * @default false\n */\n hideTabListScroll?: boolean;\n /**\n * Inline padding for the tab list container.\n * Sets horizontal padding only (e.g., \"2x\" → padding: \"0 2x\").\n */\n tabListPadding?: string;\n /** Custom tasty styles for the tab bar (Bar sub-element). */\n barStyles?: Styles;\n /** Custom tasty styles for the TabList sub-element. */\n tabListStyles?: Styles;\n /** Custom tasty styles for the Prefix sub-element. */\n prefixStyles?: Styles;\n /** Custom tasty styles for the Suffix sub-element. */\n suffixStyles?: Styles;\n}\n\nexport interface CubeTabProps extends TabStyleProps, PanelBehaviorProps {\n /**\n * Unique identifier for the tab.\n * Auto-injected from the React `key` prop (converted to string).\n */\n id?: string;\n /**\n * Content displayed in the tab button. Optional for icon-only tabs\n * (`icon` / `rightIcon`). When omitted, provide an `aria-label` (and\n * typically a `tooltip`) so the tab has an accessible name.\n */\n title?: ReactNode;\n /** Panel content rendered when tab is active. */\n children?: ReactNode;\n /** Disables the tab (cannot be selected). */\n isDisabled?: boolean;\n /** Actions to render in the tab. Rendered before menu trigger if tab has menu. */\n actions?: ReactNode;\n /** Whether the tab title can be edited. Overrides the Tabs-level isEditable default. */\n isEditable?: boolean;\n /** Callback when this tab's title is changed. Overrides parent's onTitleChange. */\n onTitleChange?: (newTitle: string) => void;\n /**\n * Menu items to display in a dropdown menu on the tab.\n * Pass Menu.Item elements directly - they will be wrapped in a Menu internally.\n * Overrides the Tabs-level menu default. Set to `null` to disable menu.\n */\n menu?: ReactNode | null;\n /**\n * Props to customize the menu trigger button.\n * Overrides the Tabs-level menuTriggerProps default.\n */\n menuTriggerProps?: Partial<CubeItemActionProps>;\n /**\n * Props passed to the Menu component.\n * Overrides the Tabs-level menuProps default.\n */\n menuProps?: Partial<CubeMenuProps<object>>;\n /**\n * Context menu / overflow behavior. Same values as Tabs `contextMenu`.\n * Uses the same menu items as `menu` prop.\n * @default false\n */\n contextMenu?: TabContextMenu;\n /**\n * Callback when a menu action is triggered.\n * Called with the action key from Menu.Item.\n */\n onAction?: (action: string) => void;\n}\n\nexport interface CubeTabPanelProps extends PanelBehaviorProps, QAProps {\n /**\n * Panel identifier. Must match a Tab's id.\n * Auto-injected from the React `key` prop (converted to string).\n */\n id?: string;\n /** Panel content. */\n children?: ReactNode;\n /** Custom tasty styles for the panel container. */\n styles?: Styles;\n}\n\nexport interface CubeTabListProps extends QAProps {\n /** Tab components. */\n children?: ReactNode;\n}\n\n// =============================================================================\n// Internal Types\n// =============================================================================\n\n/**\n * Internal representation of a parsed Tab.\n * Uses `content` instead of `children` to distinguish panel content.\n */\nexport interface ParsedTab extends Omit<CubeTabProps, 'id' | 'children'> {\n /** Tab key (always a string internally for React Aria compatibility) */\n key: string;\n /** Panel content extracted from Tab's children prop */\n content: ReactNode;\n}\n\n/**\n * Internal representation of a parsed TabPanel.\n */\nexport interface ParsedPanel extends Omit<\n CubeTabPanelProps,\n 'id' | 'children'\n> {\n /** Panel key (always a string internally for React Aria compatibility) */\n key: string;\n /** Panel content extracted from TabPanel's children prop */\n content: ReactNode;\n}\n"],"mappings":";;;;;;;AAkCA,MAAaW,iBAAsD;CACjEE,QAAQ;CACRC,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["BaseProps","OuterStyleProps","Styles","ReactNode","CubeItemActionProps","CubeMenuProps","CubeItemProps","TabType","TabPlacement","TabsActionPosition","TabSize","RADIO_SIZE_MAP","Record","medium","large","TabContextMenu","PanelBehaviorProps","prerender","keepMounted","QAProps","qa","qaVal","OmittedItemProps","TabStyleProps","Omit","size","autoHideActions","CacheKeyValue","CubeTabsProps","activeKey","defaultActiveKey","type","placement","label","prefix","suffix","onChange","key","onDelete","onTitleChange","newTitle","isEditable","menu","menuTriggerProps","Partial","menuProps","contextMenu","onAction","action","tabKey","styles","children","renderPanel","panelCacheKeys","isReorderable","keyOrder","onReorder","newOrder","showTabPicker","showScrollArrows","tabPickerPosition","scrollArrowsPosition","hideTabListScroll","tabListPadding","barStyles","tabListStyles","prefixStyles","suffixStyles","CubeTabProps","id","title","isDisabled","actions","CubeTabPanelProps","CubeTabListProps","ParsedTab","content","ParsedPanel"],"sources":["../../../../src/components/navigation/Tabs/types.ts"],"sourcesContent":["import type { BaseProps, OuterStyleProps, Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemActionProps } from '../../actions/ItemAction';\nimport type { CubeMenuProps } from '../../actions/Menu';\nimport type { CubeItemProps } from '../../content/Item';\n\n// =============================================================================\n// Core Types\n// =============================================================================\n\n/** Visual appearance type for tabs */\nexport type TabType = 'default' | 'narrow' | 'file' | 'radio';\n\n/**\n * Where the tab bar sits relative to its panels.\n * - `'top'` / `'bottom'` keep the bar horizontal.\n * - `'left'` / `'right'` switch it to a vertical strip.\n */\nexport type TabPlacement = 'top' | 'bottom' | 'left' | 'right';\n\n/** Position for TabPicker and scroll arrows */\nexport type TabsActionPosition = 'prefix' | 'suffix';\n\n/**\n * Tab size options.\n * Radio type only supports 'medium' | 'large' (mapped to smaller Item sizes).\n */\nexport type TabSize = 'xsmall' | 'small' | 'medium' | 'large';\n\n/**\n * Size mapping for radio type tabs.\n * API sizes mapped to Item button sizes:\n * medium (default) -> xsmall (32px total), large -> medium (40px total).\n */\nexport const RADIO_SIZE_MAP: Record<'medium' | 'large', TabSize> = {\n medium: 'xsmall',\n large: 'medium',\n};\n\n/** How the tab `menu` is exposed alongside or instead of the overflow trigger. */\nexport type TabContextMenu = boolean | 'context-only';\n\n// =============================================================================\n// Shared Props Interfaces\n// =============================================================================\n\n/** Common props for panel rendering behavior */\nexport interface PanelBehaviorProps {\n /** If true, panel is rendered but hidden when not active. */\n prerender?: boolean;\n /** If true, once visited the panel stays in DOM. */\n keepMounted?: boolean;\n}\n\n/** Common props for QA attributes */\nexport interface QAProps {\n /** QA selector attribute. */\n qa?: string;\n /** Additional QA value attribute. */\n qaVal?: string;\n}\n\n// =============================================================================\n// Tab Style Props\n// =============================================================================\n\n/** Props from CubeItemProps that don't apply to Tab */\ntype OmittedItemProps =\n | 'id' // Tab has its own id as Key type\n | 'type' // Type is decided at the Tabs level, never per-tab\n | 'size' // Tab has its own TabSize\n | 'theme' // Tabs have internal theming\n | 'shape' // Tabs have internal shape logic\n | 'description' // Tabs don't have descriptions\n | 'descriptionPlacement'\n | 'descriptionProps'\n | 'hotkeys' // Tabs have their own keyboard navigation\n | 'keyboardShortcutProps'\n | 'labelProps' // Tabs use title prop instead\n | 'labelRef'\n | 'level' // Tabs don't use heading levels\n | 'highlight' // Tabs don't use highlighting\n | 'highlightCaseSensitive'\n | 'highlightStyles'\n | 'variant' // Tabs have internal variant logic\n | 'htmlType' // Tab is always a button\n | 'isSelected' // Handled internally by state\n | 'preserveActionsSpace' // Set internally in TabButton\n | 'disableActionsFocus' // Not used in Tab\n | 'actions' // Tab has its own actions definition\n | 'autoHideActions' // Tab has its own autoHideActions\n | 'insideWrapper' // Internal Item wrapper prop\n | 'showActions' // Internal Item wrapper prop\n | 'skipActionsWidthTransition'; // Internal Item wrapper prop\n\n/** Common styling props for tabs - inherits style props from CubeItemProps */\nexport interface TabStyleProps extends Omit<CubeItemProps, OmittedItemProps> {\n /**\n * Tab size. Supports 'xsmall', 'small', 'medium', 'large'.\n * Radio type supports 'medium' (default, 32px) and 'large' (40px),\n * mapped to Item button sizes xsmall (24px) and medium (32px).\n */\n size?: TabSize;\n /** Whether to show actions only on hover. */\n autoHideActions?: boolean;\n}\n\n// =============================================================================\n// Component Props\n// =============================================================================\n\n/** Cache key type - primitives only for reliable comparison */\nexport type CacheKeyValue = string | number | boolean | null | undefined;\n\nexport interface CubeTabsProps\n extends BaseProps, OuterStyleProps, PanelBehaviorProps {\n /** Controlled active tab key. When provided, component is controlled. */\n activeKey?: string;\n /** Initial active tab key for uncontrolled mode. */\n defaultActiveKey?: string;\n /**\n * Visual appearance type for tabs.\n * - `default` - Standard tabs with selection indicator below (default)\n * - `narrow` - Same as default but with collapsed vertical padding on labels\n * - `file` - File-style tabs with border bottom highlight on selection, delimiter between tabs\n * - `radio` - Radio button style for tab selection\n * @default 'default'\n */\n type?: TabType;\n /**\n * Where the tab bar sits relative to its panels.\n * `'top'` / `'bottom'` keep the bar horizontal; `'left'` / `'right'`\n * switch it to a vertical strip. The selection indicator, scroll behavior,\n * fades, and per-type visuals all adapt automatically.\n * @default 'top'\n */\n placement?: TabPlacement;\n /**\n * Tab size. Supports 'xsmall', 'small', 'medium', 'large'.\n * Radio type supports 'medium' (default, 32px) and 'large' (40px),\n * mapped to Item button sizes xsmall (24px) and medium (32px).\n * @default 'medium'\n */\n size?: TabSize;\n /** Accessible label for the tab list. */\n label?: string;\n /** Content rendered before the tab list. */\n prefix?: ReactNode;\n /** Content rendered after the tab list. */\n suffix?: ReactNode;\n /** Callback when active tab changes. */\n onChange?: (key: string) => void;\n /** Callback when tab delete button is clicked. Presence enables delete buttons. */\n onDelete?: (key: string) => void;\n /** Callback when a tab title is changed. Enables title editing on tabs with isEditable. */\n onTitleChange?: (key: string, newTitle: string) => void;\n /** Whether to show tab actions only on hover. Can be overridden per-tab. */\n autoHideActions?: boolean;\n /**\n * Whether tabs are editable by default.\n * Can be overridden per-tab via Tab's isEditable prop.\n * @default false\n */\n isEditable?: boolean;\n /**\n * Default menu items for all tabs.\n * Can be overridden per-tab via Tab's menu prop.\n * Set to `null` on individual Tab to disable menu for that tab.\n */\n menu?: ReactNode;\n /**\n * Default props for the menu trigger button.\n * Can be overridden per-tab via Tab's menuTriggerProps prop.\n * @default { icon: <MoreIcon /> }\n */\n menuTriggerProps?: Partial<CubeItemActionProps>;\n /**\n * Default props passed to the Menu component.\n * Can be overridden per-tab via Tab's menuProps prop.\n */\n menuProps?: Partial<CubeMenuProps<object>>;\n /**\n * Context menu / overflow behavior for tab `menu` items.\n * - `false` (default) — overflow trigger only; no right-click menu\n * - `true` — overflow trigger and right-click menu\n * - `'context-only'` — right-click menu only; no overflow trigger. Inline close\n * (`onDelete`) shows even when `menu` is non-empty, like tabs without a menu.\n * Can be overridden per-tab via Tab's contextMenu prop.\n * @default false\n */\n contextMenu?: TabContextMenu;\n /**\n * Callback when a menu action is triggered on any tab.\n * Called with the action key and the tab key.\n * Tab-level onAction is called first, then this.\n */\n onAction?: (action: string, tabKey: string) => void;\n /** Custom tasty styles for the tab bar container. */\n styles?: Styles;\n /** QA selector attribute. */\n qa?: string;\n /** Tab components or Tabs.List with Tabs.Panel. */\n children?: ReactNode;\n /**\n * Functional content renderer for optimized lazy evaluation.\n * When provided, panel content is only evaluated for the active tab,\n * while inactive tabs use cached content.\n */\n renderPanel?: (key: string) => ReactNode;\n /**\n * Cache keys for individual panels. Enables caching for specified panels.\n */\n panelCacheKeys?: Record<string | number, CacheKeyValue>;\n /**\n * Enable drag-and-drop tab reordering.\n * When a tab picker is shown (`showTabPicker`), reordering is automatically\n * enabled in the picker dropdown as well.\n * @default false\n */\n isReorderable?: boolean;\n /**\n * Controlled order of tab keys.\n * When provided, tabs are displayed in this order.\n */\n keyOrder?: string[];\n /**\n * Callback when tabs are reordered via drag-and-drop.\n */\n onReorder?: (newOrder: string[]) => void;\n /**\n * Whether to show a tab picker dropdown in the suffix area.\n * - `true` - always show the tab picker\n * - `false` - never show the tab picker (default)\n * - `'auto'` - show only when tabs overflow (has horizontal scroll)\n * @default false\n */\n showTabPicker?: boolean | 'auto';\n /**\n * Whether to show scroll arrow buttons in the suffix area.\n * - `true` - always show scroll arrows\n * - `false` - never show scroll arrows (default)\n * - `'auto'` - show only when tabs overflow (has horizontal scroll)\n * @default false\n */\n showScrollArrows?: boolean | 'auto';\n /**\n * Position of the tab picker dropdown.\n * - `'prefix'` - render in the prefix slot (before tab list)\n * - `'suffix'` - render in the suffix slot (after tab list)\n * @default 'suffix'\n */\n tabPickerPosition?: TabsActionPosition;\n /**\n * Position of the scroll arrow buttons.\n * - `'prefix'` - render in the prefix slot (before tab list)\n * - `'suffix'` - render in the suffix slot (after tab list)\n * @default 'suffix'\n */\n scrollArrowsPosition?: TabsActionPosition;\n /**\n * Visually hide the custom horizontal scrollbar in the tab list\n * and skip its tracking logic. Does not affect tab picker, scroll arrows,\n * or fade indicators — only the tiny scrollbar visual.\n * @default false\n */\n hideTabListScroll?: boolean;\n /**\n * Inline padding for the tab list container.\n * Sets horizontal padding only (e.g., \"2x\" → padding: \"0 2x\").\n */\n tabListPadding?: string;\n /** Custom tasty styles for the tab bar (Bar sub-element). */\n barStyles?: Styles;\n /** Custom tasty styles for the TabList sub-element. */\n tabListStyles?: Styles;\n /** Custom tasty styles for the Prefix sub-element. */\n prefixStyles?: Styles;\n /** Custom tasty styles for the Suffix sub-element. */\n suffixStyles?: Styles;\n}\n\nexport interface CubeTabProps extends TabStyleProps, PanelBehaviorProps {\n /**\n * Unique identifier for the tab.\n * Auto-injected from the React `key` prop (converted to string).\n */\n id?: string;\n /**\n * Content displayed in the tab button. Optional for icon-only tabs\n * (`icon` / `rightIcon`). When omitted, provide an `aria-label` (and\n * typically a `tooltip`) so the tab has an accessible name.\n */\n title?: ReactNode;\n /** Panel content rendered when tab is active. */\n children?: ReactNode;\n /** Disables the tab (cannot be selected). */\n isDisabled?: boolean;\n /** Actions to render in the tab. Rendered before menu trigger if tab has menu. */\n actions?: ReactNode;\n /** Whether the tab title can be edited. Overrides the Tabs-level isEditable default. */\n isEditable?: boolean;\n /** Callback when this tab's title is changed. Overrides parent's onTitleChange. */\n onTitleChange?: (newTitle: string) => void;\n /**\n * Menu items to display in a dropdown menu on the tab.\n * Pass Menu.Item elements directly - they will be wrapped in a Menu internally.\n * Overrides the Tabs-level menu default. Set to `null` to disable menu.\n */\n menu?: ReactNode | null;\n /**\n * Props to customize the menu trigger button.\n * Overrides the Tabs-level menuTriggerProps default.\n */\n menuTriggerProps?: Partial<CubeItemActionProps>;\n /**\n * Props passed to the Menu component.\n * Overrides the Tabs-level menuProps default.\n */\n menuProps?: Partial<CubeMenuProps<object>>;\n /**\n * Context menu / overflow behavior. Same values as Tabs `contextMenu`.\n * Uses the same menu items as `menu` prop.\n * @default false\n */\n contextMenu?: TabContextMenu;\n /**\n * Callback when a menu action is triggered.\n * Called with the action key from Menu.Item.\n */\n onAction?: (action: string) => void;\n}\n\nexport interface CubeTabPanelProps extends PanelBehaviorProps, QAProps {\n /**\n * Panel identifier. Must match a Tab's id.\n * Auto-injected from the React `key` prop (converted to string).\n */\n id?: string;\n /** Panel content. */\n children?: ReactNode;\n /** Custom tasty styles for the panel container. */\n styles?: Styles;\n}\n\nexport interface CubeTabListProps extends QAProps {\n /** Tab components. */\n children?: ReactNode;\n}\n\n// =============================================================================\n// Internal Types\n// =============================================================================\n\n/**\n * Internal representation of a parsed Tab.\n * Uses `content` instead of `children` to distinguish panel content.\n */\nexport interface ParsedTab extends Omit<CubeTabProps, 'id' | 'children'> {\n /** Tab key (always a string internally for React Aria compatibility) */\n key: string;\n /** Panel content extracted from Tab's children prop */\n content: ReactNode;\n}\n\n/**\n * Internal representation of a parsed TabPanel.\n */\nexport interface ParsedPanel extends Omit<\n CubeTabPanelProps,\n 'id' | 'children'\n> {\n /** Panel key (always a string internally for React Aria compatibility) */\n key: string;\n /** Panel content extracted from TabPanel's children prop */\n content: ReactNode;\n}\n"],"mappings":";;;;;;;AAkCA,MAAaW,iBAAsD;CACjEE,QAAQ;CACRC,OAAO;AACT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
//#region src/components/navigation/Tabs/use-tab-editing.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { chainRaf } from "../../../utils/raf.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { Text as _Text } from "../../content/Text.js";
|
|
3
3
|
import { Title as _Title } from "../../content/Title.js";
|
|
4
4
|
import { Card } from "../../content/Card/Card.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../provider.js";
|
|
3
3
|
import { CalendarPanel } from "./CalendarPanel.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { CALENDAR_CELL_STYLES } from "./styled.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { getWeekNumber } from "../../fields/DatePicker/period.js";
|
|
3
3
|
import { CalendarCell } from "./CalendarCell.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { Title as _Title } from "../../content/Title.js";
|
|
3
3
|
import { Space } from "../../layout/Space.js";
|
|
4
4
|
import { RightIcon } from "../../../icons/RightIcon.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { CalendarElement } from "./styled.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../provider.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { getQuarter } from "../../fields/DatePicker/period.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { CALENDAR_CELL_STYLES } from "./styled.js";
|
|
3
3
|
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
4
4
|
import { useLayoutEffect, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../provider.js";
|
|
3
3
|
import { CalendarPanel } from "./CalendarPanel.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { Icon } from "../../../icons/Icon.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { wrapIcon } from "../../../icons/wrap-icon.js";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/other/NoDataIcon/NoDataIcon.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { chain } from "../../../utils/react/chain.js";
|
|
3
3
|
import { Paragraph } from "../../content/Paragraph.js";
|
|
4
4
|
import { Title as _Title } from "../../content/Title.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { AlertDialogZone } from "./AlertDialogZone.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { Portal } from "../../portal/Portal.js";
|
|
3
3
|
import { AlertDialog as _AlertDialog } from "./AlertDialog.js";
|
|
4
4
|
import { DialogContainer } from "../Dialog/DialogContainer.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { SlotProvider } from "../../../utils/react/Slots.js";
|
|
@@ -25,9 +25,9 @@ export interface CubeDialogContainerProps extends WithCloseBehavior {
|
|
|
25
25
|
isKeyboardDismissDisabled?: boolean;
|
|
26
26
|
/**
|
|
27
27
|
* Whether Escape, an outside click and the close button ask "Discard
|
|
28
|
-
* changes?" before they close the dialog. Unset, they ask while a
|
|
29
|
-
* `DialogForm`
|
|
30
|
-
* closing it from code) never ask.
|
|
28
|
+
* changes?" before they close the dialog. Unset, they ask while a form
|
|
29
|
+
* inside (a `DialogForm`, or a modern `Form`) has unsaved edits. Explicit
|
|
30
|
+
* actions (submit, Cancel, closing it from code) never ask.
|
|
31
31
|
*/
|
|
32
32
|
confirmDismiss?: boolean;
|
|
33
33
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.206.0 | Cube Dev Team */
|
|
2
2
|
import { Modal as _Modal } from "../Modal/Modal.js";
|
|
3
3
|
import { Tray as _Tray } from "../Modal/Tray.js";
|
|
4
4
|
import { DialogContext } from "./context.js";
|