@cube-dev/ui-kit 0.199.2 → 0.200.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 +35 -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.d.ts +6 -4
- package/dist/components/GridProvider.js +14 -9
- package/dist/components/GridProvider.js.map +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 +2 -2
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.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 +7 -12
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +5 -6
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/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/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +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 +2 -2
- package/dist/components/actions/Menu/styled.js.map +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/Alert.js.map +1 -1
- package/dist/components/content/Alert/use-alert.js +24 -27
- package/dist/components/content/Alert/use-alert.js.map +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +6 -2
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +6 -13
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.js +18 -18
- 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/Layout.js.map +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/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.js +5 -3
- package/dist/components/content/Layout/LayoutContent.js.map +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 +2 -2
- package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPane.js +16 -12
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +23 -19
- package/dist/components/content/Layout/LayoutPanel.js.map +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/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.js +6 -2
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +9 -17
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +6 -4
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/styled.js +30 -11
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/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 +2 -2
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +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/TableRow.js.map +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js.map +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 +26 -29
- package/dist/components/data/TableBase/styled.js.map +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 +3 -3
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/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 +6 -6
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +5 -9
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +49 -39
- package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +5 -3
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +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 +2 -2
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +6 -8
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +1 -1
- package/dist/components/fields/ListBox/ListBox.js +49 -24
- package/dist/components/fields/ListBox/ListBox.js.map +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/ListBoxPopover.js.map +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 +91 -96
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
- 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.d.ts +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.d.ts +1 -1
- package/dist/components/fields/Select/Select.js +3 -3
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +3 -3
- package/dist/components/fields/Slider/HueSlider.js.map +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 +4 -6
- package/dist/components/fields/Slider/SliderBase.js.map +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 +7 -6
- package/dist/components/fields/Slider/elements.js.map +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +3 -3
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +3 -3
- package/dist/components/fields/TagInput/TagList.js.map +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 +3 -6
- package/dist/components/fields/TextInput/TextInputBase.js.map +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 +2 -2
- package/dist/components/fields/color/ColorPanel.js.map +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 +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 +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/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 +13 -38
- package/dist/components/layout/Panel.js.map +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +24 -20
- package/dist/components/layout/ResizablePanel.js.map +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +2 -2
- package/dist/components/navigation/Pagination/Pagination.js.map +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 +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 +62 -68
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +13 -12
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +6 -6
- package/dist/components/other/Calendar/CalendarCell.js.map +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 +3 -3
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +6 -6
- package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +4 -4
- package/dist/components/other/Calendar/styled.js.map +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +3 -4
- package/dist/components/other/CubeLogo/CubeLogo.js.map +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/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +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-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/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +4 -5
- package/dist/components/overlays/Modal/Tray.js.map +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 +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 +8 -6
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/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 +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 +27 -27
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +2 -2
- package/dist/eslint-plugin/defaults.generated.js.map +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 +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- 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 +21 -38
- package/dist/icons/Icon.js.map +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 +8 -2
- package/dist/tokens/base.js.map +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.d.ts +0 -1
- package/dist/tokens/shadows.js +2 -3
- package/dist/tokens/shadows.js.map +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/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 +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/BaseProperties.md +2 -0
- package/docs/ComplexLayout.md +1 -1
- package/docs/Usage.md +45 -2
- package/docs/Utilities.md +5 -2
- package/docs/components/GridProvider.md +3 -3
- package/docs/components/content/Layout.md +1 -1
- package/docs/components/fields/ComboBox.md +1 -1
- package/docs/components/fields/CommandTextArea.md +1 -1
- package/docs/components/fields/FilterListBox.md +1 -1
- package/docs/components/fields/FilterPicker.md +1 -1
- package/docs/components/fields/ListBox.md +2 -2
- package/docs/components/fields/Picker.md +1 -1
- package/docs/components/fields/SearchComboBox.md +1 -1
- package/docs/components/fields/Select.md +1 -1
- package/docs/components/fields/TagInput.md +1 -1
- package/docs/tasty/react-api.md +1 -1
- package/package.json +3 -3
- package/tasty.config.ts +153 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","names":["tasty","Item","TabsElement","styles","display","flow","flexShrink","flexGrow","width","height","overflow","Bar","$","placeItems","border","padding","radius","fill","$transition","Prefix","placeContent","placeSelf","gap","Suffix","ScrollWrapper","position","Scroll","scrollbar","margin","fade","transition","TabList","boxSizing","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 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 '$tab-indicator-size': {\n '': '2bw',\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 '1bw',\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 position: 'absolute',\n bottom: {\n '': '1px',\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': '1px',\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: '#dark.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 color: {\n '': '#dark-02',\n 'type=narrow & (hovered & !selected)': '#primary-text',\n '(type=default | type=narrow) & selected': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n fill: {\n '': '#clear',\n 'hovered & !type=narrow': '#dark.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.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 1bw #primary-text, $selection-shadow',\n editing: 'inset 0 0 0 1bw #primary-text, $selection-shadow',\n 'type=radio & selected': '$item-shadow',\n 'type=radio & selected & focused & focus-visible':\n '$item-shadow, inset 0 0 0 1bw #primary-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',\n 'type=file & selected': 'inset 0 (-1 * $tab-indicator-size) 0 0 #primary',\n 'type=file & selected & placement=bottom':\n 'inset 0 $tab-indicator-size 0 0 #primary',\n 'type=file & selected & placement=left':\n 'inset (-1 * $tab-indicator-size) 0 0 0 #primary',\n 'type=file & selected & placement=right':\n 'inset $tab-indicator-size 0 0 0 #primary',\n '!type=file': 'inset 0 0 0 0 #primary.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',\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': '-2px',\n },\n bottom: {\n '': 0,\n 'placement=left | placement=right': 'auto',\n '(placement=left | placement=right) & after': '-2px',\n },\n left: {\n '': 'auto',\n 'before & !(placement=left | placement=right)': '-2px',\n 'placement=left | placement=right': 0,\n },\n right: {\n '': 'auto',\n 'after & !(placement=left | placement=right)': '-2px',\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',\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":["tasty","Item","TabsElement","styles","display","flow","flexShrink","flexGrow","width","height","overflow","Bar","$","placeItems","border","padding","radius","fill","$transition","Prefix","placeContent","placeSelf","gap","Suffix","ScrollWrapper","position","Scroll","scrollbar","margin","fade","transition","TabList","boxSizing","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 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: '#dark.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 color: {\n '': '#dark-02',\n 'type=narrow & (hovered & !selected)': '#primary-text',\n '(type=default | type=narrow) & selected': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n fill: {\n '': '#clear',\n 'hovered & !type=narrow': '#dark.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.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-text, $selection-shadow',\n editing: 'inset 0 0 0 $ring-width #primary-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-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',\n 'type=file & selected': 'inset 0 (-1 * $tab-indicator-size) 0 0 #primary',\n 'type=file & selected & placement=bottom':\n 'inset 0 $tab-indicator-size 0 0 #primary',\n 'type=file & selected & placement=left':\n 'inset (-1 * $tab-indicator-size) 0 0 0 #primary',\n 'type=file & selected & placement=right':\n 'inset $tab-indicator-size 0 0 0 #primary',\n '!type=file': 'inset 0 0 0 0 #primary.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',\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',\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,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.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.200.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.200.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.200.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,7 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
|
|
2
2
|
import { CALENDAR_CELL_STYLES } from "./styled.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
|
-
import { tasty } from "@tenphi/tasty";
|
|
4
|
+
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
5
5
|
import { useRef } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
import { useCalendarCell } from "react-aria";
|
|
@@ -11,16 +11,16 @@ const CalendarCellElement = tasty({
|
|
|
11
11
|
as: "td",
|
|
12
12
|
styles: {
|
|
13
13
|
margin: 0,
|
|
14
|
-
|
|
14
|
+
"$cell-gap": "2px",
|
|
15
|
+
padding: "$cell-gap right bottom"
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
18
|
const CalendarButtonElement = tasty({
|
|
18
19
|
"data-popover-keep": true,
|
|
19
|
-
styles: {
|
|
20
|
-
...CALENDAR_CELL_STYLES,
|
|
20
|
+
styles: mergeStyles(CALENDAR_CELL_STYLES, {
|
|
21
21
|
width: "3x",
|
|
22
22
|
height: "3x"
|
|
23
|
-
}
|
|
23
|
+
})
|
|
24
24
|
});
|
|
25
25
|
function CalendarCell(props) {
|
|
26
26
|
const $ = c(23);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarCell.js","names":["CalendarDate","isSameDay","tasty","useRef","DateValue","useCalendarCell","CalendarState","RangeCalendarState","CALENDAR_CELL_STYLES","CalendarCellElement","as","styles","margin","padding","CalendarButtonElement","width","height","CubeCalendarCellProps","state","date","today","selectedRange","start","end","rangeHover","CalendarCell","props","$","_c","ref","t0","cellProps","buttonProps","isSelected","isPressed","isFocused","isInvalid","isOutsideVisibleRange","isDisabled","isUnavailable","formattedDate","isFinalSelected","compare","t1","t2","t3","selected","current","outside","pressed","focused","invalid","disabled","unavailable","t4","t5","_c"],"sources":["../../../../src/components/other/Calendar/CalendarCell.tsx"],"sourcesContent":["import { CalendarDate, isSameDay } from '@internationalized/date';\nimport { tasty } from '@tenphi/tasty';\nimport { useRef } from 'react';\nimport { DateValue, useCalendarCell } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { CALENDAR_CELL_STYLES } from './styled';\n\nconst CalendarCellElement = tasty({\n as: 'td',\n styles: {\n margin: 0,\n padding: '
|
|
1
|
+
{"version":3,"file":"CalendarCell.js","names":["CalendarDate","isSameDay","mergeStyles","tasty","useRef","DateValue","useCalendarCell","CalendarState","RangeCalendarState","CALENDAR_CELL_STYLES","CalendarCellElement","as","styles","margin","padding","CalendarButtonElement","width","height","CubeCalendarCellProps","state","date","today","selectedRange","start","end","rangeHover","CalendarCell","props","$","_c","ref","t0","cellProps","buttonProps","isSelected","isPressed","isFocused","isInvalid","isOutsideVisibleRange","isDisabled","isUnavailable","formattedDate","isFinalSelected","compare","t1","t2","t3","selected","current","outside","pressed","focused","invalid","disabled","unavailable","t4","t5","_c"],"sources":["../../../../src/components/other/Calendar/CalendarCell.tsx"],"sourcesContent":["import { CalendarDate, isSameDay } from '@internationalized/date';\nimport { mergeStyles, tasty } from '@tenphi/tasty';\nimport { useRef } from 'react';\nimport { DateValue, useCalendarCell } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { CALENDAR_CELL_STYLES } from './styled';\n\nconst CalendarCellElement = tasty({\n as: 'td',\n styles: {\n margin: 0,\n // Days sit two device pixels apart.\n '$cell-gap': '2px',\n padding: '$cell-gap right bottom',\n },\n});\n\nconst CalendarButtonElement = tasty({\n 'data-popover-keep': true,\n styles: mergeStyles(CALENDAR_CELL_STYLES, {\n width: '3x',\n height: '3x',\n }),\n});\n\nexport interface CubeCalendarCellProps {\n state: CalendarState | RangeCalendarState;\n date: CalendarDate;\n /** Today, expressed in the calendar system of the grid. */\n today?: CalendarDate;\n /** Explicit range highlight, used when the range lives outside the state. */\n selectedRange?: { start: DateValue; end: DateValue };\n /** Whether the whole row is highlighted (week picker mode). */\n rangeHover?: boolean;\n}\n\nexport function CalendarCell(props: CubeCalendarCellProps) {\n let { state, selectedRange, date, today, rangeHover } = props;\n let ref = useRef(null);\n let {\n cellProps,\n buttonProps,\n isSelected,\n isPressed,\n isFocused,\n isInvalid,\n isOutsideVisibleRange,\n isDisabled,\n isUnavailable,\n formattedDate,\n } = useCalendarCell({ date }, state, ref);\n\n const isFinalSelected =\n !isOutsideVisibleRange &&\n (selectedRange\n ? date.compare(selectedRange.start) >= 0 &&\n date.compare(selectedRange.end) <= 0\n : isSelected);\n\n return (\n <CalendarCellElement {...cellProps}>\n <CalendarButtonElement\n {...buttonProps}\n ref={ref}\n mods={{\n selected: isFinalSelected,\n current: !!today && !isOutsideVisibleRange && isSameDay(date, today),\n outside: isOutsideVisibleRange,\n rangeHover: rangeHover && !isFinalSelected,\n pressed: isPressed,\n focused: isFocused,\n invalid: isInvalid,\n disabled: isDisabled,\n unavailable: isUnavailable,\n }}\n >\n {formattedDate}\n </CalendarButtonElement>\n </CalendarCellElement>\n );\n}\n"],"mappings":";;;;;;;;;AAQA,MAAMU,sBAAsBP,MAAM;CAChCQ,IAAI;CACJC,QAAQ;EACNC,QAAQ;EAER,aAAa;EACbC,SAAS;CACX;AACF,CAAC;AAED,MAAMC,wBAAwBZ,MAAM;CAClC,qBAAqB;CACrBS,QAAQV,YAAYO,sBAAsB;EACxCO,OAAO;EACPC,QAAQ;CACV,CAAC;AACH,CAAC;AAaD,SAAOS,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAV,OAAAG,eAAAF,MAAAC,OAAAI,eAAwDE;CACxD,MAAAG,MAAU1B,OAAO,IAAI;CAAE,IAAA2B;CAAA,IAAAH,EAAA,OAAAR,MAAA;EAYHW,KAAA,EAAAX,KAAO;EAACQ,EAAA,KAAAR;EAAAQ,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAX5B,MAAA,EAAAI,WAAAC,aAAAC,YAAAC,WAAAC,WAAAC,WAAAC,uBAAAC,YAAAC,eAAAC,kBAWInC,gBAAgByB,IAAUZ,OAAOW,GAAG;CAExC,MAAAY,kBACE,CAACJ,0BACAhB,gBACGF,KAAIuB,QAASrB,cAAaC,KAAM,KAAK,KACrCH,KAAIuB,QAASrB,cAAaE,GAAI,KAAK,IAFtCU;CAGe,IAAAU;CAAA,IAAAhB,EAAA,OAAAR,QAAAQ,EAAA,OAAAU,yBAAAV,EAAA,OAAAP,OAAA;EASDuB,KAAA,CAAC,CAACvB,SAAF,CAAYiB,yBAAyBrC,UAAUmB,MAAMC,KAAK;EAACO,EAAA,KAAAR;EAAAQ,EAAA,KAAAU;EAAAV,EAAA,KAAAP;EAAAO,EAAA,KAAAgB;CAAA,OAAAA,KAAAhB,EAAA;CAExD,MAAAiB,KAAApB,cAAA,CAAeiB;CAAe,IAAAI;CAAA,IAAAlB,EAAA,OAAAW,cAAAX,EAAA,OAAAc,mBAAAd,EAAA,OAAAQ,aAAAR,EAAA,OAAAS,aAAAT,EAAA,QAAAU,yBAAAV,EAAA,QAAAO,aAAAP,EAAA,QAAAY,iBAAAZ,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,IAAA;EAJtCC,KAAA;GAAAC,UACML;GAAeM,SAChBJ;GAA2DK,SAC3DX;GAAqBb,YAClBoB;GAA8BK,SACjCf;GAASgB,SACTf;GAASgB,SACTf;GAASgB,UACRd;GAAUe,aACPd;EACf;EAACZ,EAAA,KAAAW;EAAAX,EAAA,KAAAc;EAAAd,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAO;EAAAP,EAAA,MAAAY;EAAAZ,EAAA,MAAAgB;EAAAhB,EAAA,MAAAiB;EAAAjB,EAAA,MAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,QAAAK,eAAAL,EAAA,QAAAa,iBAAAb,EAAA,QAAAkB,IAAA;EAbHS,KAAA,oBAAC,uBAAD;GAAsB,GAChBtB;GACCH;GACC,MAAAgB;GAYLL,UAAAA;EAfmB,CAAA;EAgBEb,EAAA,MAAAK;EAAAL,EAAA,MAAAa;EAAAb,EAAA,MAAAkB;EAAAlB,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,QAAAI,aAAAJ,EAAA,QAAA2B,IAAA;EAjB1BC,KAAA,oBAAC,qBAAD;GAAoB,GAAKxB;GACvBuB,UAAAA;EADkB,CAAA;EAkBE3B,EAAA,MAAAI;EAAAJ,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,OAlBtB4B;AAkBsB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.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.200.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.200.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";
|
|
@@ -16,10 +16,10 @@ const YEAR_CELLS = 12;
|
|
|
16
16
|
const MONTH_COLUMNS = 3;
|
|
17
17
|
const YEAR_COLUMNS = 3;
|
|
18
18
|
/**
|
|
19
|
-
* Exactly as wide as seven day cells (`3x` cell + a `
|
|
19
|
+
* Exactly as wide as seven day cells (`3x` cell + a `$cell-gap` gutter), so switching
|
|
20
20
|
* between the day, month and year panels keeps the popover roughly in place.
|
|
21
21
|
*/
|
|
22
|
-
const PERIOD_GRID_STYLES = { width: "(7 * (3x +
|
|
22
|
+
const PERIOD_GRID_STYLES = { width: "(7 * (3x + $cell-gap))" };
|
|
23
23
|
/**
|
|
24
24
|
* The body shared by `Calendar` and `RangeCalendar`: a header plus one of three
|
|
25
25
|
* panels. The month and year panels only *navigate* — they move the focused
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarPanel.js","names":["CalendarDate","endOfMonth","endOfYear","isSameMonth","startOfMonth","startOfYear","toCalendar","today","KeyboardEvent","ReactElement","Ref","useState","DateValue","useDateFormatter","CalendarState","RangeCalendarState","useI18n","mergeProps","CalendarGrid","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","Props","CubeCalendarView","YEAR_CELLS","MONTH_COLUMNS","YEAR_COLUMNS","PERIOD_GRID_STYLES","width","const","Formatter","format","date","Date","CubeCalendarPanelProps","state","title","calendarProps","prevButtonProps","nextButtonProps","hasMonthYearNavigation","selectedRange","start","end","pickerMode","elementRef","HTMLElement","CalendarPanel","props","$","_c","t","t0","undefined","view","setView","anchor","setAnchor","focusedDate","visibleStart","visibleRange","calendar","timeZone","calendarId","identifier","t1","month","monthFormatter","t2","shortMonthFormatter","t3","year","yearFormatter","body","header","onKeyDown","todayDate","t4","formatter","toDate","t5","isDisabled","maxValue","minValue","compare","isPeriodDisabled","t6","hasNavigation","t7","next","openView","t8","e","key","preventDefault","stopPropagation","setFocused","t9","set","monthDate","monthCount","getMonthsInYear","cells","Array","from","length","_","index","date_0","label","isSelected","isCurrent","T0","nextYear","t10","t11","t12","t13","prevYear","subtract","years","add","t14","t15","Symbol","for","onPress","t16","t17","t18","t19","index_0","setFocusedDate","t20","t21","t22","index_1","delta","months","delta_0","t23","yearDate","decadeStart","Math","floor","firstYear","cells_0","__0","index_2","year_0","date_1","isOutside","t24","t25","index_3","index_4","t26","t27","delta_1","delta_2","t28","_c","mergeProps"],"sources":["../../../../src/components/other/Calendar/CalendarPanel.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n isSameMonth,\n startOfMonth,\n startOfYear,\n toCalendar,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, Ref, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\n\nimport { CalendarGrid } from './CalendarGrid';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\nimport type { Props } from '../../../props';\n\n/** Which panel the calendar currently shows. */\nexport type CubeCalendarView = 'day' | 'month' | 'year';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\nconst MONTH_COLUMNS = 3;\nconst YEAR_COLUMNS = 3;\n\n/**\n * Exactly as wide as seven day cells (`3x` cell + a `2bw` gutter), so switching\n * between the day, month and year panels keeps the popover roughly in place.\n */\nconst PERIOD_GRID_STYLES = { width: '(7 * (3x + 2bw))' } as const;\n\ninterface Formatter {\n format(date: Date): string;\n}\n\nexport interface CubeCalendarPanelProps {\n state: CalendarState | RangeCalendarState;\n /** The visible range title provided by React Aria. */\n title: string;\n calendarProps: Props;\n prevButtonProps: Props;\n nextButtonProps: Props;\n /**\n * Whether the header lets the user jump straight to a month or a year.\n * @default true\n */\n hasMonthYearNavigation?: boolean;\n selectedRange?: { start: DateValue; end: DateValue };\n pickerMode?: 'day' | 'week';\n elementRef?: Ref<HTMLElement>;\n}\n\n/**\n * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three\n * panels. The month and year panels only *navigate* — they move the focused\n * date and never select a value, so a range selection in progress survives a\n * jump to another month.\n */\nexport function CalendarPanel(props: CubeCalendarPanelProps) {\n const { t } = useI18n();\n\n let {\n state,\n title,\n calendarProps,\n prevButtonProps,\n nextButtonProps,\n hasMonthYearNavigation = true,\n selectedRange,\n pickerMode,\n elementRef,\n } = props;\n\n let [view, setView] = useState<CubeCalendarView>('day');\n // The period the month / year panels navigate around. Seeded from the\n // focused date every time the user leaves the day panel.\n let [anchor, setAnchor] = useState<CalendarDate>(state.focusedDate);\n\n let visibleStart = state.visibleRange.start;\n let calendar = visibleStart.calendar;\n let timeZone = state.timeZone;\n let calendarId = calendar.identifier;\n\n let monthFormatter = useDateFormatter({\n month: 'long',\n timeZone,\n calendar: calendarId,\n });\n let shortMonthFormatter = useDateFormatter({\n month: 'short',\n timeZone,\n calendar: calendarId,\n });\n let yearFormatter = useDateFormatter({\n year: 'numeric',\n timeZone,\n calendar: calendarId,\n });\n\n let todayDate = toCalendar(today(timeZone), calendar);\n\n let format = (formatter: Formatter, date: CalendarDate) =>\n formatter.format(date.toDate(timeZone));\n\n /** Whether a whole period lies outside the calendar's allowed range. */\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) =>\n state.isDisabled ||\n (state.minValue != null && end.compare(state.minValue) < 0) ||\n (state.maxValue != null && start.compare(state.maxValue) > 0);\n\n // A multi-month view has no single month or year to drill into.\n let hasNavigation =\n hasMonthYearNavigation && isSameMonth(visibleStart, state.visibleRange.end);\n\n let openView = (next: CubeCalendarView) => {\n setAnchor(state.focusedDate);\n setView(next);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Step back to the day panel rather than closing the surrounding popover.\n if (view !== 'day' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setView('day');\n // The grid the user was in is about to unmount. Claim focus for the day\n // cell, or it falls out of the popover and the next `Escape` is lost.\n state.setFocused(true);\n }\n };\n\n let header: ReactElement;\n let body: ReactElement;\n\n if (view === 'month') {\n let monthDate = (month: number) => startOfMonth(anchor.set({ month }));\n let monthCount = calendar.getMonthsInYear(anchor);\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: monthCount },\n (_, index) => {\n let date = monthDate(index + 1);\n\n return {\n key: `month-${index + 1}`,\n label: format(shortMonthFormatter, date),\n isSelected: isSameMonth(date, visibleStart),\n isCurrent: isSameMonth(date, todayDate),\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n },\n );\n\n let prevYear = anchor.subtract({ years: 1 });\n let nextYear = anchor.add({ years: 1 });\n\n header = (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: format(yearFormatter, anchor),\n isDisabled: state.isDisabled,\n onPress: () => setView('year'),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n startOfYear(prevYear),\n endOfYear(prevYear),\n ),\n onPress: () => setAnchor(prevYear),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n startOfYear(nextYear),\n endOfYear(nextYear),\n ),\n onPress: () => setAnchor(nextYear),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key=\"month\"\n autoFocus\n aria-label={t('calendar.months', 'Months')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={MONTH_COLUMNS}\n focusedIndex={anchor.month - 1}\n onCellPress={(index) => {\n state.setFocusedDate(anchor.set({ month: index + 1 }));\n setView('day');\n }}\n onCellFocus={(index) => setAnchor(anchor.set({ month: index + 1 }))}\n onMoveFocus={(delta) => setAnchor(anchor.add({ months: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta }))}\n />\n );\n } else if (view === 'year') {\n let yearDate = (year: number) => startOfYear(anchor.set({ year }));\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: YEAR_CELLS },\n (_, index) => {\n let year = firstYear + index;\n let date = yearDate(year);\n\n return {\n key: `year-${year}`,\n label: format(yearFormatter, date),\n isSelected: year === visibleStart.year,\n isCurrent: year === todayDate.year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n },\n );\n\n header = (\n <CalendarHeader\n title={`${format(yearFormatter, yearDate(decadeStart))} – ${format(\n yearFormatter,\n yearDate(decadeStart + 9),\n )}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart - 10),\n endOfYear(yearDate(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart + 10),\n endOfYear(yearDate(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n key=\"year\"\n autoFocus\n aria-label={t('calendar.years', 'Years')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={YEAR_COLUMNS}\n focusedIndex={anchor.year - firstYear}\n onCellPress={(index) => {\n setAnchor(anchor.set({ year: firstYear + index }));\n setView('month');\n }}\n onCellFocus={(index) =>\n setAnchor(anchor.set({ year: firstYear + index }))\n }\n onMoveFocus={(delta) => setAnchor(anchor.add({ years: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta * 10 }))}\n />\n );\n } else {\n header = (\n <CalendarHeader\n title={title}\n segments={\n hasNavigation\n ? [\n {\n key: 'month',\n label: format(monthFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('month'),\n },\n {\n key: 'year',\n label: format(yearFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('year'),\n },\n ]\n : undefined\n }\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n />\n );\n\n body = (\n <CalendarGrid\n state={state}\n selectedRange={selectedRange}\n pickerMode={pickerMode}\n />\n );\n }\n\n return (\n <CalendarElement\n ref={elementRef}\n {...mergeProps(calendarProps, { onKeyDown })}\n >\n {header}\n {body}\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarPanel.js","names":["CalendarDate","endOfMonth","endOfYear","isSameMonth","startOfMonth","startOfYear","toCalendar","today","KeyboardEvent","ReactElement","Ref","useState","DateValue","useDateFormatter","CalendarState","RangeCalendarState","useI18n","mergeProps","CalendarGrid","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","Props","CubeCalendarView","YEAR_CELLS","MONTH_COLUMNS","YEAR_COLUMNS","PERIOD_GRID_STYLES","width","const","Formatter","format","date","Date","CubeCalendarPanelProps","state","title","calendarProps","prevButtonProps","nextButtonProps","hasMonthYearNavigation","selectedRange","start","end","pickerMode","elementRef","HTMLElement","CalendarPanel","props","$","_c","t","t0","undefined","view","setView","anchor","setAnchor","focusedDate","visibleStart","visibleRange","calendar","timeZone","calendarId","identifier","t1","month","monthFormatter","t2","shortMonthFormatter","t3","year","yearFormatter","body","header","onKeyDown","todayDate","t4","formatter","toDate","t5","isDisabled","maxValue","minValue","compare","isPeriodDisabled","t6","hasNavigation","t7","next","openView","t8","e","key","preventDefault","stopPropagation","setFocused","t9","set","monthDate","monthCount","getMonthsInYear","cells","Array","from","length","_","index","date_0","label","isSelected","isCurrent","T0","nextYear","t10","t11","t12","t13","prevYear","subtract","years","add","t14","t15","Symbol","for","onPress","t16","t17","t18","t19","index_0","setFocusedDate","t20","t21","t22","index_1","delta","months","delta_0","t23","yearDate","decadeStart","Math","floor","firstYear","cells_0","__0","index_2","year_0","date_1","isOutside","t24","t25","index_3","index_4","t26","t27","delta_1","delta_2","t28","_c","mergeProps"],"sources":["../../../../src/components/other/Calendar/CalendarPanel.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n isSameMonth,\n startOfMonth,\n startOfYear,\n toCalendar,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, Ref, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\n\nimport { CalendarGrid } from './CalendarGrid';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\nimport type { Props } from '../../../props';\n\n/** Which panel the calendar currently shows. */\nexport type CubeCalendarView = 'day' | 'month' | 'year';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\nconst MONTH_COLUMNS = 3;\nconst YEAR_COLUMNS = 3;\n\n/**\n * Exactly as wide as seven day cells (`3x` cell + a `$cell-gap` gutter), so switching\n * between the day, month and year panels keeps the popover roughly in place.\n */\nconst PERIOD_GRID_STYLES = { width: '(7 * (3x + $cell-gap))' } as const;\n\ninterface Formatter {\n format(date: Date): string;\n}\n\nexport interface CubeCalendarPanelProps {\n state: CalendarState | RangeCalendarState;\n /** The visible range title provided by React Aria. */\n title: string;\n calendarProps: Props;\n prevButtonProps: Props;\n nextButtonProps: Props;\n /**\n * Whether the header lets the user jump straight to a month or a year.\n * @default true\n */\n hasMonthYearNavigation?: boolean;\n selectedRange?: { start: DateValue; end: DateValue };\n pickerMode?: 'day' | 'week';\n elementRef?: Ref<HTMLElement>;\n}\n\n/**\n * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three\n * panels. The month and year panels only *navigate* — they move the focused\n * date and never select a value, so a range selection in progress survives a\n * jump to another month.\n */\nexport function CalendarPanel(props: CubeCalendarPanelProps) {\n const { t } = useI18n();\n\n let {\n state,\n title,\n calendarProps,\n prevButtonProps,\n nextButtonProps,\n hasMonthYearNavigation = true,\n selectedRange,\n pickerMode,\n elementRef,\n } = props;\n\n let [view, setView] = useState<CubeCalendarView>('day');\n // The period the month / year panels navigate around. Seeded from the\n // focused date every time the user leaves the day panel.\n let [anchor, setAnchor] = useState<CalendarDate>(state.focusedDate);\n\n let visibleStart = state.visibleRange.start;\n let calendar = visibleStart.calendar;\n let timeZone = state.timeZone;\n let calendarId = calendar.identifier;\n\n let monthFormatter = useDateFormatter({\n month: 'long',\n timeZone,\n calendar: calendarId,\n });\n let shortMonthFormatter = useDateFormatter({\n month: 'short',\n timeZone,\n calendar: calendarId,\n });\n let yearFormatter = useDateFormatter({\n year: 'numeric',\n timeZone,\n calendar: calendarId,\n });\n\n let todayDate = toCalendar(today(timeZone), calendar);\n\n let format = (formatter: Formatter, date: CalendarDate) =>\n formatter.format(date.toDate(timeZone));\n\n /** Whether a whole period lies outside the calendar's allowed range. */\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) =>\n state.isDisabled ||\n (state.minValue != null && end.compare(state.minValue) < 0) ||\n (state.maxValue != null && start.compare(state.maxValue) > 0);\n\n // A multi-month view has no single month or year to drill into.\n let hasNavigation =\n hasMonthYearNavigation && isSameMonth(visibleStart, state.visibleRange.end);\n\n let openView = (next: CubeCalendarView) => {\n setAnchor(state.focusedDate);\n setView(next);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Step back to the day panel rather than closing the surrounding popover.\n if (view !== 'day' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setView('day');\n // The grid the user was in is about to unmount. Claim focus for the day\n // cell, or it falls out of the popover and the next `Escape` is lost.\n state.setFocused(true);\n }\n };\n\n let header: ReactElement;\n let body: ReactElement;\n\n if (view === 'month') {\n let monthDate = (month: number) => startOfMonth(anchor.set({ month }));\n let monthCount = calendar.getMonthsInYear(anchor);\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: monthCount },\n (_, index) => {\n let date = monthDate(index + 1);\n\n return {\n key: `month-${index + 1}`,\n label: format(shortMonthFormatter, date),\n isSelected: isSameMonth(date, visibleStart),\n isCurrent: isSameMonth(date, todayDate),\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n },\n );\n\n let prevYear = anchor.subtract({ years: 1 });\n let nextYear = anchor.add({ years: 1 });\n\n header = (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: format(yearFormatter, anchor),\n isDisabled: state.isDisabled,\n onPress: () => setView('year'),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n startOfYear(prevYear),\n endOfYear(prevYear),\n ),\n onPress: () => setAnchor(prevYear),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n startOfYear(nextYear),\n endOfYear(nextYear),\n ),\n onPress: () => setAnchor(nextYear),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key=\"month\"\n autoFocus\n aria-label={t('calendar.months', 'Months')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={MONTH_COLUMNS}\n focusedIndex={anchor.month - 1}\n onCellPress={(index) => {\n state.setFocusedDate(anchor.set({ month: index + 1 }));\n setView('day');\n }}\n onCellFocus={(index) => setAnchor(anchor.set({ month: index + 1 }))}\n onMoveFocus={(delta) => setAnchor(anchor.add({ months: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta }))}\n />\n );\n } else if (view === 'year') {\n let yearDate = (year: number) => startOfYear(anchor.set({ year }));\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: YEAR_CELLS },\n (_, index) => {\n let year = firstYear + index;\n let date = yearDate(year);\n\n return {\n key: `year-${year}`,\n label: format(yearFormatter, date),\n isSelected: year === visibleStart.year,\n isCurrent: year === todayDate.year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n },\n );\n\n header = (\n <CalendarHeader\n title={`${format(yearFormatter, yearDate(decadeStart))} – ${format(\n yearFormatter,\n yearDate(decadeStart + 9),\n )}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart - 10),\n endOfYear(yearDate(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart + 10),\n endOfYear(yearDate(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n key=\"year\"\n autoFocus\n aria-label={t('calendar.years', 'Years')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={YEAR_COLUMNS}\n focusedIndex={anchor.year - firstYear}\n onCellPress={(index) => {\n setAnchor(anchor.set({ year: firstYear + index }));\n setView('month');\n }}\n onCellFocus={(index) =>\n setAnchor(anchor.set({ year: firstYear + index }))\n }\n onMoveFocus={(delta) => setAnchor(anchor.add({ years: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta * 10 }))}\n />\n );\n } else {\n header = (\n <CalendarHeader\n title={title}\n segments={\n hasNavigation\n ? [\n {\n key: 'month',\n label: format(monthFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('month'),\n },\n {\n key: 'year',\n label: format(yearFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('year'),\n },\n ]\n : undefined\n }\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n />\n );\n\n body = (\n <CalendarGrid\n state={state}\n selectedRange={selectedRange}\n pickerMode={pickerMode}\n />\n );\n }\n\n return (\n <CalendarElement\n ref={elementRef}\n {...mergeProps(calendarProps, { onKeyDown })}\n >\n {header}\n {body}\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.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,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
|
|
2
2
|
import { CALENDAR_CELL_STYLES } from "./styled.js";
|
|
3
|
-
import { tasty } from "@tenphi/tasty";
|
|
3
|
+
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
4
4
|
import { useLayoutEffect, useRef } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/other/Calendar/PeriodGrid.tsx
|
|
@@ -10,6 +10,7 @@ const PeriodGridElement = tasty({
|
|
|
10
10
|
styles: {
|
|
11
11
|
borderCollapse: "collapse",
|
|
12
12
|
borderSpacing: 0,
|
|
13
|
+
"$cell-gap": "2px",
|
|
13
14
|
tableLayout: "fixed"
|
|
14
15
|
}
|
|
15
16
|
});
|
|
@@ -18,18 +19,17 @@ const PeriodGridCellElement = tasty({
|
|
|
18
19
|
role: "gridcell",
|
|
19
20
|
styles: {
|
|
20
21
|
margin: 0,
|
|
21
|
-
padding: "
|
|
22
|
+
padding: "$cell-gap right bottom"
|
|
22
23
|
}
|
|
23
24
|
});
|
|
24
25
|
const PeriodGridButtonElement = tasty({
|
|
25
26
|
as: "button",
|
|
26
27
|
"data-popover-keep": true,
|
|
27
|
-
styles: {
|
|
28
|
-
...CALENDAR_CELL_STYLES,
|
|
28
|
+
styles: mergeStyles(CALENDAR_CELL_STYLES, {
|
|
29
29
|
width: "100%",
|
|
30
30
|
height: "4x",
|
|
31
31
|
padding: "0 .5x"
|
|
32
|
-
}
|
|
32
|
+
})
|
|
33
33
|
});
|
|
34
34
|
/**
|
|
35
35
|
* A keyboard-navigable grid of calendar periods (months, quarters or years).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodGrid.js","names":["Styles","tasty","KeyboardEvent","useLayoutEffect","useRef","CALENDAR_CELL_STYLES","PeriodGridElement","as","role","styles","borderCollapse","borderSpacing","tableLayout","PeriodGridCellElement","margin","padding","PeriodGridButtonElement","width","height","CubePeriodGridCell","key","label","ariaLabel","isSelected","isCurrent","isDisabled","isOutside","CubePeriodGridProps","cells","columns","focusedIndex","autoFocus","onCellPress","index","onCellFocus","onMoveFocus","delta","onMovePage","PeriodGrid","props","cellRefs","Array","HTMLButtonElement","shouldFocusRef","safeIndex","Math","max","min","length","current","focus","moveFocus","next","focusEdge","edge","step","onKeyDown","e","preventDefault","stopPropagation","rows","i","push","slice","map","row","rowIndex","cell","columnIndex","element","selected","outside","disabled"],"sources":["../../../../src/components/other/Calendar/PeriodGrid.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { KeyboardEvent, useLayoutEffect, useRef } from 'react';\n\nimport { CALENDAR_CELL_STYLES } from './styled';\n\nconst PeriodGridElement = tasty({\n as: 'table',\n role: 'grid',\n styles: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n // Columns share the width evenly. The owner passes that width explicitly —\n // a percentage here would resolve against the popover's `max-content` box.\n tableLayout: 'fixed',\n },\n});\n\nconst PeriodGridCellElement = tasty({\n as: 'td',\n role: 'gridcell',\n styles: {\n margin: 0,\n padding: '2bw right bottom',\n },\n});\n\nconst PeriodGridButtonElement = tasty({\n as: 'button',\n 'data-popover-keep': true,\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- cell base shared with CalendarCell\n ...CALENDAR_CELL_STYLES,\n width: '100%',\n height: '4x',\n padding: '0 .5x',\n },\n});\n\nexport interface CubePeriodGridCell {\n /** Stable identity of the cell, also used as the React key. */\n key: string;\n label: string;\n /** Overrides the accessible name when the visible label is ambiguous. */\n ariaLabel?: string;\n isSelected?: boolean;\n /** Whether the cell contains today. */\n isCurrent?: boolean;\n isDisabled?: boolean;\n /** Whether the cell belongs to a neighbouring page (e.g. an adjacent decade). */\n isOutside?: boolean;\n}\n\nexport interface CubePeriodGridProps {\n cells: CubePeriodGridCell[];\n columns: number;\n /** Index of the cell that holds the roving tab stop. */\n focusedIndex: number;\n autoFocus?: boolean;\n 'aria-label'?: string;\n styles?: Styles;\n onCellPress: (index: number) => void;\n /** Focus moved to another cell of the current page. */\n onCellFocus: (index: number) => void;\n /**\n * Focus moved past the edge of the current page by `delta` periods. The owner\n * moves its anchor, which in turn flips the page and the focused index.\n */\n onMoveFocus: (delta: number) => void;\n /** `PageUp` / `PageDown` — one page back or forward. */\n onMovePage: (delta: -1 | 1) => void;\n}\n\n/**\n * A keyboard-navigable grid of calendar periods (months, quarters or years).\n *\n * The grid owns rendering, the roving tab stop and DOM focus; the owner owns\n * the periods themselves. Arrow keys that leave the page are reported through\n * `onMoveFocus` so the owner can page and keep focus on the adjacent period.\n */\nexport function PeriodGrid(props: CubePeriodGridProps) {\n let {\n cells,\n columns,\n focusedIndex,\n autoFocus,\n styles,\n onCellPress,\n onCellFocus,\n onMoveFocus,\n onMovePage,\n } = props;\n\n let cellRefs = useRef<Array<HTMLButtonElement | null>>([]);\n // Set by the grid's own keyboard handling and by `autoFocus`, so paging with\n // the header buttons never steals focus into the grid.\n let shouldFocusRef = useRef(!!autoFocus);\n\n let safeIndex = Math.max(0, Math.min(cells.length - 1, focusedIndex));\n\n cellRefs.current.length = cells.length;\n\n useLayoutEffect(() => {\n if (shouldFocusRef.current) {\n shouldFocusRef.current = false;\n cellRefs.current[safeIndex]?.focus();\n }\n });\n\n let moveFocus = (delta: number) => {\n shouldFocusRef.current = true;\n\n let next = safeIndex + delta;\n\n // Disabled cells can't hold DOM focus, so step over them instead of\n // stranding the caret on an unreachable period.\n while (next >= 0 && next < cells.length && cells[next].isDisabled) {\n next += delta;\n }\n\n if (next < 0 || next >= cells.length) {\n onMoveFocus(delta);\n } else {\n onCellFocus(next);\n }\n };\n\n let focusEdge = (edge: 'start' | 'end') => {\n let step = edge === 'start' ? 1 : -1;\n let index = edge === 'start' ? 0 : cells.length - 1;\n\n while (index >= 0 && index < cells.length && cells[index].isDisabled) {\n index += step;\n }\n\n if (index < 0 || index >= cells.length) return;\n\n shouldFocusRef.current = true;\n onCellFocus(index);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowRight':\n moveFocus(1);\n break;\n case 'ArrowLeft':\n moveFocus(-1);\n break;\n case 'ArrowDown':\n moveFocus(columns);\n break;\n case 'ArrowUp':\n moveFocus(-columns);\n break;\n case 'Home':\n focusEdge('start');\n break;\n case 'End':\n focusEdge('end');\n break;\n case 'PageUp':\n shouldFocusRef.current = true;\n onMovePage(-1);\n break;\n case 'PageDown':\n shouldFocusRef.current = true;\n onMovePage(1);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n let rows: CubePeriodGridCell[][] = [];\n\n for (let i = 0; i < cells.length; i += columns) {\n rows.push(cells.slice(i, i + columns));\n }\n\n return (\n <PeriodGridElement\n aria-label={props['aria-label']}\n styles={styles}\n onKeyDown={onKeyDown}\n >\n <tbody data-element=\"Body\">\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex} role=\"row\" data-element=\"Row\">\n {row.map((cell, columnIndex) => {\n let index = rowIndex * columns + columnIndex;\n\n return (\n <PeriodGridCellElement\n key={cell.key}\n aria-selected={!!cell.isSelected}\n >\n <PeriodGridButtonElement\n ref={(element: HTMLButtonElement | null) => {\n cellRefs.current[index] = element;\n }}\n type=\"button\"\n tabIndex={index === safeIndex ? 0 : -1}\n disabled={cell.isDisabled}\n aria-label={cell.ariaLabel}\n mods={{\n selected: cell.isSelected,\n current: cell.isCurrent,\n outside: cell.isOutside,\n disabled: cell.isDisabled,\n }}\n onFocus={() => onCellFocus(index)}\n onClick={() => onCellPress(index)}\n >\n {cell.label}\n </PeriodGridButtonElement>\n </PeriodGridCellElement>\n );\n })}\n </tr>\n ))}\n </tbody>\n </PeriodGridElement>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PeriodGrid.js","names":["mergeStyles","Styles","tasty","KeyboardEvent","useLayoutEffect","useRef","CALENDAR_CELL_STYLES","PeriodGridElement","as","role","styles","borderCollapse","borderSpacing","tableLayout","PeriodGridCellElement","margin","padding","PeriodGridButtonElement","width","height","CubePeriodGridCell","key","label","ariaLabel","isSelected","isCurrent","isDisabled","isOutside","CubePeriodGridProps","cells","columns","focusedIndex","autoFocus","onCellPress","index","onCellFocus","onMoveFocus","delta","onMovePage","PeriodGrid","props","cellRefs","Array","HTMLButtonElement","shouldFocusRef","safeIndex","Math","max","min","length","current","focus","moveFocus","next","focusEdge","edge","step","onKeyDown","e","preventDefault","stopPropagation","rows","i","push","slice","map","row","rowIndex","cell","columnIndex","element","selected","outside","disabled"],"sources":["../../../../src/components/other/Calendar/PeriodGrid.tsx"],"sourcesContent":["import { mergeStyles, Styles, tasty } from '@tenphi/tasty';\nimport { KeyboardEvent, useLayoutEffect, useRef } from 'react';\n\nimport { CALENDAR_CELL_STYLES } from './styled';\n\nconst PeriodGridElement = tasty({\n as: 'table',\n role: 'grid',\n styles: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n // Cells sit two device pixels apart. The owner's width counts it too.\n '$cell-gap': '2px',\n // Columns share the width evenly. The owner passes that width explicitly —\n // a percentage here would resolve against the popover's `max-content` box.\n tableLayout: 'fixed',\n },\n});\n\nconst PeriodGridCellElement = tasty({\n as: 'td',\n role: 'gridcell',\n styles: {\n margin: 0,\n padding: '$cell-gap right bottom',\n },\n});\n\nconst PeriodGridButtonElement = tasty({\n as: 'button',\n 'data-popover-keep': true,\n styles: mergeStyles(CALENDAR_CELL_STYLES, {\n width: '100%',\n height: '4x',\n padding: '0 .5x',\n }),\n});\n\nexport interface CubePeriodGridCell {\n /** Stable identity of the cell, also used as the React key. */\n key: string;\n label: string;\n /** Overrides the accessible name when the visible label is ambiguous. */\n ariaLabel?: string;\n isSelected?: boolean;\n /** Whether the cell contains today. */\n isCurrent?: boolean;\n isDisabled?: boolean;\n /** Whether the cell belongs to a neighbouring page (e.g. an adjacent decade). */\n isOutside?: boolean;\n}\n\nexport interface CubePeriodGridProps {\n cells: CubePeriodGridCell[];\n columns: number;\n /** Index of the cell that holds the roving tab stop. */\n focusedIndex: number;\n autoFocus?: boolean;\n 'aria-label'?: string;\n styles?: Styles;\n onCellPress: (index: number) => void;\n /** Focus moved to another cell of the current page. */\n onCellFocus: (index: number) => void;\n /**\n * Focus moved past the edge of the current page by `delta` periods. The owner\n * moves its anchor, which in turn flips the page and the focused index.\n */\n onMoveFocus: (delta: number) => void;\n /** `PageUp` / `PageDown` — one page back or forward. */\n onMovePage: (delta: -1 | 1) => void;\n}\n\n/**\n * A keyboard-navigable grid of calendar periods (months, quarters or years).\n *\n * The grid owns rendering, the roving tab stop and DOM focus; the owner owns\n * the periods themselves. Arrow keys that leave the page are reported through\n * `onMoveFocus` so the owner can page and keep focus on the adjacent period.\n */\nexport function PeriodGrid(props: CubePeriodGridProps) {\n let {\n cells,\n columns,\n focusedIndex,\n autoFocus,\n styles,\n onCellPress,\n onCellFocus,\n onMoveFocus,\n onMovePage,\n } = props;\n\n let cellRefs = useRef<Array<HTMLButtonElement | null>>([]);\n // Set by the grid's own keyboard handling and by `autoFocus`, so paging with\n // the header buttons never steals focus into the grid.\n let shouldFocusRef = useRef(!!autoFocus);\n\n let safeIndex = Math.max(0, Math.min(cells.length - 1, focusedIndex));\n\n cellRefs.current.length = cells.length;\n\n useLayoutEffect(() => {\n if (shouldFocusRef.current) {\n shouldFocusRef.current = false;\n cellRefs.current[safeIndex]?.focus();\n }\n });\n\n let moveFocus = (delta: number) => {\n shouldFocusRef.current = true;\n\n let next = safeIndex + delta;\n\n // Disabled cells can't hold DOM focus, so step over them instead of\n // stranding the caret on an unreachable period.\n while (next >= 0 && next < cells.length && cells[next].isDisabled) {\n next += delta;\n }\n\n if (next < 0 || next >= cells.length) {\n onMoveFocus(delta);\n } else {\n onCellFocus(next);\n }\n };\n\n let focusEdge = (edge: 'start' | 'end') => {\n let step = edge === 'start' ? 1 : -1;\n let index = edge === 'start' ? 0 : cells.length - 1;\n\n while (index >= 0 && index < cells.length && cells[index].isDisabled) {\n index += step;\n }\n\n if (index < 0 || index >= cells.length) return;\n\n shouldFocusRef.current = true;\n onCellFocus(index);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowRight':\n moveFocus(1);\n break;\n case 'ArrowLeft':\n moveFocus(-1);\n break;\n case 'ArrowDown':\n moveFocus(columns);\n break;\n case 'ArrowUp':\n moveFocus(-columns);\n break;\n case 'Home':\n focusEdge('start');\n break;\n case 'End':\n focusEdge('end');\n break;\n case 'PageUp':\n shouldFocusRef.current = true;\n onMovePage(-1);\n break;\n case 'PageDown':\n shouldFocusRef.current = true;\n onMovePage(1);\n break;\n default:\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n };\n\n let rows: CubePeriodGridCell[][] = [];\n\n for (let i = 0; i < cells.length; i += columns) {\n rows.push(cells.slice(i, i + columns));\n }\n\n return (\n <PeriodGridElement\n aria-label={props['aria-label']}\n styles={styles}\n onKeyDown={onKeyDown}\n >\n <tbody data-element=\"Body\">\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex} role=\"row\" data-element=\"Row\">\n {row.map((cell, columnIndex) => {\n let index = rowIndex * columns + columnIndex;\n\n return (\n <PeriodGridCellElement\n key={cell.key}\n aria-selected={!!cell.isSelected}\n >\n <PeriodGridButtonElement\n ref={(element: HTMLButtonElement | null) => {\n cellRefs.current[index] = element;\n }}\n type=\"button\"\n tabIndex={index === safeIndex ? 0 : -1}\n disabled={cell.isDisabled}\n aria-label={cell.ariaLabel}\n mods={{\n selected: cell.isSelected,\n current: cell.isCurrent,\n outside: cell.isOutside,\n disabled: cell.isDisabled,\n }}\n onFocus={() => onCellFocus(index)}\n onClick={() => onCellPress(index)}\n >\n {cell.label}\n </PeriodGridButtonElement>\n </PeriodGridCellElement>\n );\n })}\n </tr>\n ))}\n </tbody>\n </PeriodGridElement>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.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.200.0 | Cube Dev Team */
|
|
2
2
|
import { tasty } from "@tenphi/tasty";
|
|
3
3
|
//#region src/components/other/Calendar/styled.tsx
|
|
4
4
|
/**
|
|
@@ -47,10 +47,10 @@ const CALENDAR_CELL_STYLES = {
|
|
|
47
47
|
"selected & (disabled | unavailable)": "#white"
|
|
48
48
|
},
|
|
49
49
|
outline: {
|
|
50
|
-
"": "
|
|
51
|
-
focused: "
|
|
50
|
+
"": "$ring-width #primary-text.0",
|
|
51
|
+
focused: "$ring-width #primary-text"
|
|
52
52
|
},
|
|
53
|
-
outlineOffset:
|
|
53
|
+
outlineOffset: "($outline-offset / 2)",
|
|
54
54
|
radius: true,
|
|
55
55
|
cursor: {
|
|
56
56
|
"": "$pointer",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.js","names":["Styles","tasty","CalendarElement","styles","display","width","padding","gap","CalendarHeaderElement","placeContent","placeItems","CALENDAR_CELL_STYLES","preset","border","fill","rangeHover","pressed","selected","color","outside","outline","focused","outlineOffset","radius","cursor"],"sources":["../../../../src/components/other/Calendar/styled.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\n\n/**\n * Every calendar flavour (day, range, period) shares the same shell so the\n * popover keeps a stable size and rhythm when the user switches between the\n * day grid and the month / year panels.\n */\nexport const CalendarElement = tasty({\n styles: {\n display: 'grid',\n // Shrink-wrap the grid so a standalone calendar doesn't stretch its cells\n // across whatever container it lands in.\n width: 'max-content',\n padding: '1x',\n gap: '1x',\n },\n});\n\nexport const CalendarHeaderElement = tasty({\n styles: {\n display: 'flex',\n placeContent: 'center space-between',\n placeItems: 'center',\n gap: '1.5x',\n },\n});\n\n/**\n * The interactive states shared by day cells and period (month / quarter /\n * year) cells. Kept in one place so a day and a month never drift apart.\n */\nexport const CALENDAR_CELL_STYLES: Styles = {\n preset: 't3m',\n display: 'grid',\n placeItems: 'center',\n border: 0,\n fill: {\n '': '#primary.0',\n ':hover': '#primary.16',\n rangeHover: '#primary.16',\n pressed: '#primary.10',\n\n selected: '#primary',\n 'selected & :hover': '#primary-text',\n 'selected & pressed': '#primary',\n\n 'disabled | unavailable': '#primary.0',\n // A disabled calendar still has to show what is selected.\n 'selected & (disabled | unavailable)': '#primary.30',\n },\n color: {\n '': '#dark',\n outside: '#dark.30',\n // The cell that contains today — a hint, not a selection.\n 'current & !selected': '#primary-text',\n selected: '#white',\n 'disabled | unavailable': '#dark.30',\n 'selected & (disabled | unavailable)': '#white',\n },\n outline: {\n '': '
|
|
1
|
+
{"version":3,"file":"styled.js","names":["Styles","tasty","CalendarElement","styles","display","width","padding","gap","CalendarHeaderElement","placeContent","placeItems","CALENDAR_CELL_STYLES","preset","border","fill","rangeHover","pressed","selected","color","outside","outline","focused","outlineOffset","radius","cursor"],"sources":["../../../../src/components/other/Calendar/styled.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\n\n/**\n * Every calendar flavour (day, range, period) shares the same shell so the\n * popover keeps a stable size and rhythm when the user switches between the\n * day grid and the month / year panels.\n */\nexport const CalendarElement = tasty({\n styles: {\n display: 'grid',\n // Shrink-wrap the grid so a standalone calendar doesn't stretch its cells\n // across whatever container it lands in.\n width: 'max-content',\n padding: '1x',\n gap: '1x',\n },\n});\n\nexport const CalendarHeaderElement = tasty({\n styles: {\n display: 'flex',\n placeContent: 'center space-between',\n placeItems: 'center',\n gap: '1.5x',\n },\n});\n\n/**\n * The interactive states shared by day cells and period (month / quarter /\n * year) cells. Kept in one place so a day and a month never drift apart.\n */\nexport const CALENDAR_CELL_STYLES: Styles = {\n preset: 't3m',\n display: 'grid',\n placeItems: 'center',\n border: 0,\n fill: {\n '': '#primary.0',\n ':hover': '#primary.16',\n rangeHover: '#primary.16',\n pressed: '#primary.10',\n\n selected: '#primary',\n 'selected & :hover': '#primary-text',\n 'selected & pressed': '#primary',\n\n 'disabled | unavailable': '#primary.0',\n // A disabled calendar still has to show what is selected.\n 'selected & (disabled | unavailable)': '#primary.30',\n },\n color: {\n '': '#dark',\n outside: '#dark.30',\n // The cell that contains today — a hint, not a selection.\n 'current & !selected': '#primary-text',\n selected: '#white',\n 'disabled | unavailable': '#dark.30',\n 'selected & (disabled | unavailable)': '#white',\n },\n outline: {\n '': '$ring-width #primary-text.0',\n focused: '$ring-width #primary-text',\n },\n outlineOffset: '($outline-offset / 2)',\n radius: true,\n cursor: {\n '': '$pointer',\n 'disabled | unavailable': 'default',\n },\n};\n"],"mappings":";;;;;;;;AAOA,MAAaE,kBAAkBD,MAAM,EACnCE,QAAQ;CACNC,SAAS;CAGTC,OAAO;CACPC,SAAS;CACTC,KAAK;AACP,EACF,CAAC;AAED,MAAaC,wBAAwBP,MAAM,EACzCE,QAAQ;CACNC,SAAS;CACTK,cAAc;CACdC,YAAY;CACZH,KAAK;AACP,EACF,CAAC;;;;;AAMD,MAAaI,uBAA+B;CAC1CC,QAAQ;CACRR,SAAS;CACTM,YAAY;CACZG,QAAQ;CACRC,MAAM;EACJ,IAAI;EACJ,UAAU;EACVC,YAAY;EACZC,SAAS;EAETC,UAAU;EACV,qBAAqB;EACrB,sBAAsB;EAEtB,0BAA0B;EAE1B,uCAAuC;CACzC;CACAC,OAAO;EACL,IAAI;EACJC,SAAS;EAET,uBAAuB;EACvBF,UAAU;EACV,0BAA0B;EAC1B,uCAAuC;CACzC;CACAG,SAAS;EACP,IAAI;EACJC,SAAS;CACX;CACAC,eAAe;CACfC,QAAQ;CACRC,QAAQ;EACN,IAAI;EACJ,0BAA0B;CAC5B;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.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";
|
|
@@ -145,8 +145,7 @@ const CubeLogo = forwardRef(function CubeLogo(props, ref) {
|
|
|
145
145
|
*/
|
|
146
146
|
const CubeFullLogoElement = tasty(Icon, {
|
|
147
147
|
qa: "CubeFullLogo",
|
|
148
|
-
styles: {
|
|
149
|
-
...SCHEME_SWAP,
|
|
148
|
+
styles: mergeStyles(SCHEME_SWAP, {
|
|
150
149
|
width: "auto",
|
|
151
150
|
aspectRatio: FULL_ASPECT_RATIO,
|
|
152
151
|
Svg: {
|
|
@@ -154,7 +153,7 @@ const CubeFullLogoElement = tasty(Icon, {
|
|
|
154
153
|
height: "1em 1em",
|
|
155
154
|
aspectRatio: FULL_ASPECT_RATIO
|
|
156
155
|
}
|
|
157
|
-
}
|
|
156
|
+
})
|
|
158
157
|
});
|
|
159
158
|
const CubeFullLogo = forwardRef(function CubeFullLogo(props, ref) {
|
|
160
159
|
const $ = c(9);
|