@cube-dev/ui-kit 0.206.3 → 0.208.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 +18 -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-sync-ref.js.map +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.d.ts +0 -2
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/CollectionItem.js.map +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/GridProvider.js.map +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +3 -3
- 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/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Button/Button.d.ts +10 -1
- package/dist/components/actions/Button/Button.js +13 -8
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/Button/index.d.ts +16 -1
- package/dist/components/actions/Button/index.js +13 -0
- package/dist/components/actions/Button/index.js.map +1 -0
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.d.ts +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +2 -2
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.d.ts +0 -2
- package/dist/components/actions/ItemButton/ItemButton.js +2 -2
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.d.ts +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +2 -2
- package/dist/components/actions/Menu/MenuItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +3 -3
- package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
- 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/index.d.ts +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.d.ts +6 -18
- package/dist/components/actions/use-action.js +2 -2
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.d.ts +0 -1
- package/dist/components/actions/use-anchored-menu.js +2 -2
- package/dist/components/actions/use-anchored-menu.js.map +1 -1
- package/dist/components/actions/use-context-menu.d.ts +0 -1
- package/dist/components/actions/use-context-menu.js +2 -2
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js.map +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.d.ts +0 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/Content.js.map +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.d.ts +2 -18
- package/dist/components/content/CopySnippet/CopySnippet.js +2 -2
- package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/Disclosure/Disclosure.d.ts +0 -1
- package/dist/components/content/Disclosure/Disclosure.js +2 -2
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider/Divider.js +1 -1
- package/dist/components/content/Divider/Divider.js.map +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Footer.js.map +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/Header.js.map +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.d.ts +1 -2
- package/dist/components/content/Item/Item.js +4 -4
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +2 -2
- package/dist/components/content/Item/index.d.ts +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemBadge/index.d.ts +1 -2
- 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 +1 -1
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js.map +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPane.js +2 -2
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +3 -3
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js.map +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/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +2 -2
- package/dist/components/content/Result/Result.js.map +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.d.ts +0 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +5 -5
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/checked-keys.js +1 -1
- package/dist/components/content/Tree/rowId.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/types.d.ts +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/Tree/use-load-data.js.map +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/DataTable/DataTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +2 -2
- package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js.map +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/item-table-sections.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js.map +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/TableHeaderCell.js.map +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/TableRowLink.js +1 -1
- package/dist/components/data/TableBase/TableView.js +6 -6
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-menu.js.map +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 +1 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-column-menu.js +2 -2
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js.map +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-selection.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js.map +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/data/TableBase/use-table-tree-state.js.map +1 -1
- package/dist/components/fields/Checkbox/Checkbox.d.ts +0 -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.d.ts +0 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +3 -3
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.d.ts +0 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +0 -3
- package/dist/components/fields/ColorPicker/ColorPicker.js +3 -3
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +0 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -2
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +0 -1
- package/dist/components/fields/ComboBox/ComboBox.js +6 -6
- 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 -2
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
- 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/CalendarPopover.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.d.ts +0 -1
- package/dist/components/fields/DatePicker/DateInput.js +2 -2
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/DatePicker.js +2 -2
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js.map +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/DatePickerInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.d.ts +0 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +2 -2
- 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.d.ts +0 -1
- package/dist/components/fields/DatePicker/TimeInput.js +2 -2
- package/dist/components/fields/DatePicker/TimeInput.js.map +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.d.ts +0 -1
- package/dist/components/fields/FileInput/FileInput.js +3 -3
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +3 -3
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterListBox/styled.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +0 -3
- package/dist/components/fields/FilterPicker/FilterPicker.js +8 -8
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +2 -2
- package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -1
- package/dist/components/fields/Input/Input.d.ts +0 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/Input/Input.js.map +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +4 -4
- 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 +2 -2
- 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/ListBoxPopover/useCompositeFocus.js.map +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +0 -2
- package/dist/components/fields/Picker/Picker.js +8 -8
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +0 -1
- package/dist/components/fields/RadioGroup/Radio.js +2 -2
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.d.ts +0 -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 +0 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +6 -6
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +2 -2
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +1 -2
- package/dist/components/fields/Select/Select.js +7 -7
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +2 -2
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +2 -2
- package/dist/components/fields/Slider/types.d.ts +0 -1
- package/dist/components/fields/Switch/Switch.d.ts +0 -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.js +5 -5
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- 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 +2 -2
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +2 -2
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +0 -1
- package/dist/components/fields/TextInput/TextInputBase.js +3 -3
- 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/TextInput/useAutoSizeTextArea.js.map +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +0 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +3 -3
- package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- 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/index.d.ts +2 -2
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +2 -2
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/FieldWrapper/types.d.ts +0 -1
- package/dist/components/form/Form/Field.d.ts +0 -1
- package/dist/components/form/Form/Field.js +3 -3
- package/dist/components/form/Form/Field.js.map +1 -1
- package/dist/components/form/Form/Form.d.ts +1 -26
- package/dist/components/form/Form/Form.js +7 -116
- package/dist/components/form/Form/Form.js.map +1 -1
- package/dist/components/form/Form/FormContext.d.ts +30 -0
- package/dist/components/form/Form/FormContext.js +79 -0
- package/dist/components/form/Form/FormContext.js.map +1 -0
- package/dist/components/form/Form/FormElement.js +49 -0
- package/dist/components/form/Form/FormElement.js.map +1 -0
- package/dist/components/form/Form/ModernFormRoot.js +3 -2
- package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +2 -2
- package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +2 -2
- package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
- package/dist/components/form/Form/SubmitError.d.ts +0 -1
- package/dist/components/form/Form/SubmitError.js +3 -3
- package/dist/components/form/Form/SubmitError.js.map +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.d.ts +2 -1
- package/dist/components/form/Form/index.js +6 -5
- package/dist/components/form/Form/index.js.map +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/types.d.ts +0 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +2 -2
- package/dist/components/form/Form/use-field/use-field-props.js +4 -4
- package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field.d.ts +0 -1
- package/dist/components/form/Form/use-field/use-field.js +2 -2
- package/dist/components/form/Form/use-field/use-field.js.map +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.d.ts +0 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/Label.js.map +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-layout.js +1 -1
- package/dist/components/form/field-layout.js.map +1 -1
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.d.ts +0 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
- package/dist/components/form/validation/resolve-validation-props.d.ts +0 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js.map +1 -1
- package/dist/components/form/wrapper.d.ts +0 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/form/wrapper.js.map +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/Prefix.js.map +1 -1
- package/dist/components/layout/ResizablePanel.js +2 -2
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/layout/Suffix.js.map +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +3 -3
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js.map +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 +4 -4
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +2 -2
- package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/segmented-styles.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +2 -2
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +2 -2
- package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +2 -2
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
- package/dist/components/overlays/AlertDialog/types.d.ts +0 -1
- package/dist/components/overlays/Dialog/Dialog.js +2 -2
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +2 -2
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +0 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +5 -5
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +2 -2
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +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-container.js.map +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +2 -2
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +2 -2
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +2 -2
- 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/NotificationAction.js.map +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js.map +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/NotificationItem.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +2 -2
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +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-notification-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js.map +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-persistent-state.js.map +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +2 -2
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
- package/dist/components/overlays/Toast/useToast.js +2 -2
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- 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 +3 -3
- package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/context.js.map +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/LoadingAnimation/LoadingAnimation.js.map +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +8 -32
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +5 -1
- 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 +4 -4
- package/dist/i18n/instance.js +3 -3
- 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 +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.d.ts +29 -27
- package/dist/index.js +69 -69
- 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 +2 -2
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +23 -11
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/resolve.js +2 -2
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/index.d.ts +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.d.ts +3 -3
- package/dist/utils/react/index.js +13 -13
- 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/useOverlayEscapeGuard.js.map +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 +2 -2
- package/docs/components/actions/Button.md +10 -0
- package/docs/components/actions/ButtonSplit.md +1 -1
- package/docs/glaze/contrast.mdx +751 -0
- package/docs/glaze/exporting.mdx +635 -0
- package/docs/glaze/getting-started.mdx +487 -0
- package/docs/glaze/hdr.mdx +523 -0
- package/docs/glaze/methodology.mdx +979 -0
- package/docs/glaze/migration.md +476 -285
- package/docs/glaze/mixes.mdx +348 -0
- package/docs/glaze/okhst.mdx +692 -0
- package/docs/glaze/reference/color-definitions.md +552 -0
- package/docs/glaze/reference/color-tokens.md +421 -0
- package/docs/glaze/reference/configuration.md +532 -0
- package/docs/glaze/reference/contrast.md +279 -0
- package/docs/glaze/reference/index.md +225 -0
- package/docs/glaze/reference/output.md +714 -0
- package/docs/glaze/reference/palette.md +435 -0
- package/docs/glaze/reference/theme.md +332 -0
- package/docs/glaze/reference/utilities.md +646 -0
- package/docs/glaze/schemes.mdx +644 -0
- package/docs/glaze/shadows-and-glows.mdx +550 -0
- package/package.json +4 -4
- package/dist/components/actions/index.js +0 -29
- package/dist/components/actions/index.js.map +0 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.d.ts +0 -4
- package/dist/components/fields/ListBoxPopover/index.d.ts +0 -5
- package/dist/components/overlays/Modal/Modal.d.ts +0 -3
- package/dist/components/overlays/Modal/Popover.d.ts +0 -7
- package/dist/components/overlays/Modal/Tray.d.ts +0 -5
- package/dist/components/overlays/Modal/Underlay.d.ts +0 -3
- package/dist/components/overlays/Modal/index.d.ts +0 -8
- package/docs/glaze/api.md +0 -2021
- package/docs/glaze/methodology.md +0 -686
- package/docs/glaze/okhst.md +0 -207
package/dist/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @cube-dev/ui-kit
|
|
2
2
|
|
|
3
|
+
## 0.208.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1616](https://github.com/cube-js/cube-ui-kit/pull/1616) [`17e92e5ea`](https://github.com/cube-js/cube-ui-kit/commit/17e92e5ea5d4de7a4c5ef1211b46547a6c2577fd) Thanks [@tenphi](https://github.com/tenphi)! - The palette runs on Glaze 3 (`@tenphi/glaze` 3.0.1). `shadow-sm` / `shadow-md` / `shadow-lg` are tuned for Glaze 3's shadow model so they keep the depth they had in light and dark mode on the default surface (with tinted surfaces the dark shadows come out up to about 1.4 tones lighter). In high-contrast dark mode, where the surface is black, they are now transparent instead of opaque black. In the light scheme at normal contrast no color moves by more than 1 tone. Elsewhere colors move by up to about 3 tones (code syntax colors in light high contrast), most by under 1.5, and every text color keeps its WCAG level.
|
|
8
|
+
|
|
9
|
+
UI Kit re-exports Glaze, so code that imports Glaze functions or types from `@cube-dev/ui-kit` now gets Glaze 3: it throws on invalid input that 2.x resolved to wrong colors, and some output options are gone. See "Upgrading Glaze" in Glaze's migration guide (`docs/glaze/migration.md` in this package).
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#1623](https://github.com/cube-js/cube-ui-kit/pull/1623) [`d29a8bf73`](https://github.com/cube-js/cube-ui-kit/commit/d29a8bf73bf3789a13542cf2a79764494d3204a0) Thanks [@tenphi](https://github.com/tenphi)! - `type="primary"` buttons (also `Item` and `ItemAction`) no longer draw a visible border. The old border was a lighter, more saturated shade of the fill that glowed in dark mode, so filled buttons looked larger than outline buttons of the same size. The fill now covers the whole button. Inside `Button.Split`, primary halves are divided by a 1px gap that shows the background behind the split, instead of a shared border. The `current` theme keeps its rim on disabled buttons. The `*-accent-surface-border` tokens are still published.
|
|
14
|
+
|
|
15
|
+
## 0.207.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#1625](https://github.com/cube-js/cube-ui-kit/pull/1625) [`e555c3add`](https://github.com/cube-js/cube-ui-kit/commit/e555c3addac1f3e9f05824ba716588bc53a4b70c) Thanks [@tenphi](https://github.com/tenphi)! - `Button` takes a `shape` prop (`button`, `card`, `sharp` or `pill`) with the same names as `Item`'s, so a round, square-cornered or card-radius button no longer needs a `radius` override. A `link` button and the joined edges inside a `Button.Split` keep their own radius.
|
|
20
|
+
|
|
3
21
|
## 0.206.3
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
//#region src/_internal/hooks/use-debounced-value.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { deprecationWarning } from "../../utils/warnings.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import React, { useEffect } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useRef } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sync-ref.js","names":["MutableRefObject","useRef","useLayoutEffect","useSyncRef","value","$","_c","ref","t0","current","_c"],"sources":["../../../src/_internal/hooks/use-sync-ref.ts"],"sourcesContent":["import { MutableRefObject, useRef } from 'react';\n\nimport { useLayoutEffect } from '../../utils/react';\n\nexport function useSyncRef<T>(value: T): MutableRefObject<T> {\n const ref = useRef<T>(value);\n\n useLayoutEffect(() => {\n ref.current = value;\n });\n\n return ref;\n}\n"],"mappings":";;;;;AAIA,SAAOG,WAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAAC,MAAYN,OAAUG,KAAK;CAAE,IAAAI;CAAA,IAAAH,EAAA,OAAAD,OAAA;EAEbI,WAAA;GACdD,IAAGE,UAAWL;EAAH;EACZC,EAAA,KAAAD;EAAAC,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAFDH,kBAAgBM,EAEf;CAAC,OAEKD;AAAG"}
|
|
1
|
+
{"version":3,"file":"use-sync-ref.js","names":["MutableRefObject","useRef","useLayoutEffect","useSyncRef","value","$","_c","ref","t0","current","_c"],"sources":["../../../src/_internal/hooks/use-sync-ref.ts"],"sourcesContent":["import { MutableRefObject, useRef } from 'react';\n\nimport { useLayoutEffect } from '../../utils/react/useLayoutEffect';\n\nexport function useSyncRef<T>(value: T): MutableRefObject<T> {\n const ref = useRef<T>(value);\n\n useLayoutEffect(() => {\n ref.current = value;\n });\n\n return ref;\n}\n"],"mappings":";;;;;AAIA,SAAOG,WAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAAC,MAAYN,OAAUG,KAAK;CAAE,IAAAI;CAAA,IAAAH,EAAA,OAAAD,OAAA;EAEbI,WAAA;GACdD,IAAGE,UAAWL;EAAH;EACZC,EAAA,KAAAD;EAAAC,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAFDH,kBAAgBM,EAEf;CAAC,OAEKD;AAAG"}
|
package/dist/components/Block.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../utils/styles.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { ItemAction } from "./actions/ItemAction/ItemAction.js";
|
|
3
|
-
import "./actions/ItemAction/index.js";
|
|
4
3
|
import { ItemBadge } from "./content/ItemBadge/ItemBadge.js";
|
|
5
|
-
import "./content/ItemBadge/index.js";
|
|
6
4
|
import { CubeItemBaseProps as CubeItemProps } from "./content/Item/Item.js";
|
|
7
5
|
import { ReactElement } from "react";
|
|
8
6
|
import { ItemProps, ListState } from "react-stately";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { ItemAction } from "./actions/ItemAction/ItemAction.js";
|
|
3
3
|
import { ItemBadge } from "./content/ItemBadge/ItemBadge.js";
|
|
4
4
|
import { Item } from "react-stately";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollectionItem.js","names":["ReactElement","Item","ItemProps","ListCollection","ItemAction","CubeItemProps","ItemBadge","LinkDOMProps","Node","ListState","COLLECTION_ITEM_CLICK","Symbol","CubeCollectionItemBaseProps","Omit","T","onAction","wrapper","item","CubeCollectionItemProps","href","to","navigationOptions","routerOptions","hrefLang","target","rel","download","ping","referrerPolicy","key","SERVICE_PROPS","Set","NAVIGATION_PROPS","filterSelectionItemProps","itemProps","Record","PropertyKey","filtered","undefined","onClick","hasNavigationItem","nodes","Iterable","node","props","type","childNodes","selectionNodes","Array","from","getValueSelectionState","state","S","collection","selectionManager","withCollection","filterCollectionItemProps","Object","prototype","hasOwnProperty","call","has","CollectionItem","_props","_CollectionItem","Action","Badge","assign","getCollectionNode","context"],"sources":["../../src/components/CollectionItem.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { Item, ItemProps } from 'react-stately';\nimport { ListCollection } from 'react-stately/private/list/ListCollection';\n\nimport { ItemAction } from './actions/ItemAction';\nimport { CubeItemProps } from './content/Item/Item';\nimport { ItemBadge } from './content/ItemBadge';\n\nimport type { LinkDOMProps, Node } from '@react-types/shared';\nimport type { ListState } from 'react-stately';\n\n// Menu defers link clicks; selection controls restore them when removing links.\nexport const COLLECTION_ITEM_CLICK = Symbol('CollectionItem deferred click');\n\nexport interface CubeCollectionItemBaseProps<T>\n extends\n Omit<ItemProps<T>, keyof LinkDOMProps>,\n Omit<CubeItemProps, 'children' | keyof LinkDOMProps> {\n onAction?: () => void;\n wrapper?: (item: ReactElement) => ReactElement;\n}\n\n/** Value-selection options cannot navigate. Menu owns navigation items. */\nexport interface CubeCollectionItemProps<\n T,\n> extends CubeCollectionItemBaseProps<T> {\n href?: never;\n to?: never;\n navigationOptions?: never;\n routerOptions?: never;\n hrefLang?: never;\n target?: never;\n rel?: never;\n download?: never;\n ping?: never;\n referrerPolicy?: never;\n [key: string]: any;\n}\n\n/**\n * Service props that are used by react-stately or parent components\n * and should not be passed to the Item component.\n */\nconst SERVICE_PROPS = new Set([\n // React Stately props\n 'textValue',\n 'hasChildItems',\n 'childItems',\n 'title',\n // Custom service props\n 'onAction',\n 'wrapper',\n 'keywords', // CommandMenu-specific\n 'forceMount', // CommandMenu-specific\n]);\n\nconst NAVIGATION_PROPS = [\n 'href',\n 'to',\n 'navigationOptions',\n 'routerOptions',\n 'hrefLang',\n 'target',\n 'rel',\n 'download',\n 'ping',\n 'referrerPolicy',\n 'data-href',\n 'data-target',\n 'data-rel',\n 'data-download',\n 'data-ping',\n 'data-referrer-policy',\n];\n\n/** Keeps options as value selections even when a different item factory is used. */\nexport function filterSelectionItemProps(\n itemProps: Record<PropertyKey, any> | undefined,\n): Record<PropertyKey, any> {\n const filtered = { ...itemProps };\n\n for (const key of NAVIGATION_PROPS) {\n delete filtered[key];\n }\n\n if (filtered[COLLECTION_ITEM_CLICK] !== undefined) {\n filtered.onClick = filtered[COLLECTION_ITEM_CLICK];\n }\n delete filtered[COLLECTION_ITEM_CLICK];\n\n return filtered;\n}\n\nfunction hasNavigationItem<T>(nodes: Iterable<Node<T>>): boolean {\n for (const node of nodes) {\n if (\n node.props?.href != null ||\n node.props?.to != null ||\n node.props?.['data-href'] != null ||\n (node.type === 'section' && hasNavigationItem(node.childNodes))\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction selectionNodes<T>(nodes: Iterable<Node<T>>): Node<T>[] {\n return Array.from(nodes, (node) => ({\n ...node,\n props: filterSelectionItemProps(node.props),\n childNodes: selectionNodes(node.childNodes),\n }));\n}\n\n/** Bound selection semantics at the control, including foreign item factories. */\nexport function getValueSelectionState<S extends ListState<any>>(state: S): S {\n if (!hasNavigationItem(state.collection)) {\n return state;\n }\n\n // ListCollection owns its nodes, so give it copies instead of changing the input.\n const collection = new ListCollection(selectionNodes(state.collection));\n\n return {\n ...state,\n collection,\n selectionManager: state.selectionManager.withCollection(collection),\n };\n}\n\n/**\n * Filters out service props from collection item props, returning only\n * props that should be passed to the Item component.\n *\n * This eliminates the need to manually extract and pass Item props\n * in components like MenuItem, ListBox Option, and Select Option.\n *\n * @param itemProps - The props from a collection item (node.props)\n * @returns Filtered props safe to spread onto Item component\n *\n * @example\n * ```tsx\n * const itemProps = filterCollectionItemProps(item.props);\n * return <Item {...itemProps} />;\n * ```\n */\nexport function filterCollectionItemProps(\n itemProps: Record<string, any> | undefined,\n): Record<string, any> {\n if (!itemProps) {\n return {};\n }\n\n const filtered: Record<string, any> = {};\n\n for (const key in itemProps) {\n if (\n Object.prototype.hasOwnProperty.call(itemProps, key) &&\n !SERVICE_PROPS.has(key)\n ) {\n filtered[key] = itemProps[key];\n }\n }\n\n return filtered;\n}\n\nfunction CollectionItem<T>(\n _props: CubeCollectionItemProps<T>,\n): ReactElement | null {\n return null;\n}\n\nconst _CollectionItem: typeof CollectionItem & {\n Action: typeof ItemAction;\n Badge: typeof ItemBadge;\n} = Object.assign(CollectionItem, {\n Action: ItemAction,\n Badge: ItemBadge,\n getCollectionNode<T>(props: CubeCollectionItemProps<T>, context: unknown) {\n // Strip destinations before Aria builds selection state, including JS callers.\n return (Item as any).getCollectionNode(\n filterSelectionItemProps(props),\n context,\n );\n },\n});\n\nexport { _CollectionItem as CollectionItem };\n"],"mappings":";;;;;;AAYA,MAAaU,wBAAwBC,OAAO,+BAA+B;;;;;AA+B3E,MAAMmB,gCAAgB,IAAIC,IAAI;CAE5B;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;AAAc,CACf;AAED,MAAMC,mBAAmB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAsB;;AAIxB,SAAgBC,yBACdC,WAC0B;CAC1B,MAAMG,WAAW,EAAE,GAAGH,UAAU;CAEhC,KAAK,MAAML,OAAOG,kBAChB,OAAOK,SAASR;CAGlB,IAAIQ,SAAS3B,2BAA2B4B,KAAAA,GACtCD,SAASE,UAAUF,SAAS3B;CAE9B,OAAO2B,SAAS3B;CAEhB,OAAO2B;AACT;AAEA,SAASG,kBAAqBC,OAAmC;CAC/D,KAAK,MAAME,QAAQF,OACjB,IACEE,KAAKC,OAAOzB,QAAQ,QACpBwB,KAAKC,OAAOxB,MAAM,QAClBuB,KAAKC,QAAQ,gBAAgB,QAC5BD,KAAKE,SAAS,aAAaL,kBAAkBG,KAAKG,UAAU,GAE7D,OAAO;CAIX,OAAO;AACT;AAEA,SAASC,eAAkBN,OAAqC;CAC9D,OAAOO,MAAMC,KAAKR,QAAQE,UAAU;EAClC,GAAGA;EACHC,OAAOX,yBAAyBU,KAAKC,KAAK;EAC1CE,YAAYC,eAAeJ,KAAKG,UAAU;CAC5C,EAAE;AACJ;;AAGA,SAAgBI,uBAAiDC,OAAa;CAC5E,IAAI,CAACX,kBAAkBW,MAAME,UAAU,GACrC,OAAOF;CAIT,MAAME,aAAa,IAAIlD,eAAe4C,eAAeI,MAAME,UAAU,CAAC;CAEtE,OAAO;EACL,GAAGF;EACHE;EACAC,kBAAkBH,MAAMG,iBAAiBC,eAAeF,UAAU;CACpE;AACF;;;;;;;;;;;;;;;;;AAkBA,SAAgBG,0BACdtB,WACqB;CACrB,IAAI,CAACA,WACH,OAAO,CAAC;CAGV,MAAMG,WAAgC,CAAC;CAEvC,KAAK,MAAMR,OAAOK,WAChB,IACEuB,OAAOC,UAAUC,eAAeC,KAAK1B,WAAWL,GAAG,KACnD,CAACC,cAAc+B,IAAIhC,GAAG,GAEtBQ,SAASR,OAAOK,UAAUL;CAI9B,OAAOQ;AACT;AAEA,SAASyB,eACPC,QACqB;CACrB,OAAO;AACT;AAEA,MAAMC,kBAGFP,OAAOU,OAAOL,gBAAgB;CAChCG,QAAQ7D;CACR8D,OAAO5D;CACP8D,kBAAqBxB,OAAmCyB,SAAkB;EAExE,OAAQpE,KAAamE,kBACnBnC,yBAAyBW,KAAK,GAC9ByB,OACF;CACF;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"CollectionItem.js","names":["ReactElement","Item","ItemProps","ListCollection","ItemAction","CubeItemProps","ItemBadge","LinkDOMProps","Node","ListState","COLLECTION_ITEM_CLICK","Symbol","CubeCollectionItemBaseProps","Omit","T","onAction","wrapper","item","CubeCollectionItemProps","href","to","navigationOptions","routerOptions","hrefLang","target","rel","download","ping","referrerPolicy","key","SERVICE_PROPS","Set","NAVIGATION_PROPS","filterSelectionItemProps","itemProps","Record","PropertyKey","filtered","undefined","onClick","hasNavigationItem","nodes","Iterable","node","props","type","childNodes","selectionNodes","Array","from","getValueSelectionState","state","S","collection","selectionManager","withCollection","filterCollectionItemProps","Object","prototype","hasOwnProperty","call","has","CollectionItem","_props","_CollectionItem","Action","Badge","assign","getCollectionNode","context"],"sources":["../../src/components/CollectionItem.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { Item, ItemProps } from 'react-stately';\nimport { ListCollection } from 'react-stately/private/list/ListCollection';\n\nimport { ItemAction } from './actions/ItemAction/ItemAction';\nimport { CubeItemProps } from './content/Item/Item';\nimport { ItemBadge } from './content/ItemBadge/ItemBadge';\n\nimport type { LinkDOMProps, Node } from '@react-types/shared';\nimport type { ListState } from 'react-stately';\n\n// Menu defers link clicks; selection controls restore them when removing links.\nexport const COLLECTION_ITEM_CLICK = Symbol('CollectionItem deferred click');\n\nexport interface CubeCollectionItemBaseProps<T>\n extends\n Omit<ItemProps<T>, keyof LinkDOMProps>,\n Omit<CubeItemProps, 'children' | keyof LinkDOMProps> {\n onAction?: () => void;\n wrapper?: (item: ReactElement) => ReactElement;\n}\n\n/** Value-selection options cannot navigate. Menu owns navigation items. */\nexport interface CubeCollectionItemProps<\n T,\n> extends CubeCollectionItemBaseProps<T> {\n href?: never;\n to?: never;\n navigationOptions?: never;\n routerOptions?: never;\n hrefLang?: never;\n target?: never;\n rel?: never;\n download?: never;\n ping?: never;\n referrerPolicy?: never;\n [key: string]: any;\n}\n\n/**\n * Service props that are used by react-stately or parent components\n * and should not be passed to the Item component.\n */\nconst SERVICE_PROPS = new Set([\n // React Stately props\n 'textValue',\n 'hasChildItems',\n 'childItems',\n 'title',\n // Custom service props\n 'onAction',\n 'wrapper',\n 'keywords', // CommandMenu-specific\n 'forceMount', // CommandMenu-specific\n]);\n\nconst NAVIGATION_PROPS = [\n 'href',\n 'to',\n 'navigationOptions',\n 'routerOptions',\n 'hrefLang',\n 'target',\n 'rel',\n 'download',\n 'ping',\n 'referrerPolicy',\n 'data-href',\n 'data-target',\n 'data-rel',\n 'data-download',\n 'data-ping',\n 'data-referrer-policy',\n];\n\n/** Keeps options as value selections even when a different item factory is used. */\nexport function filterSelectionItemProps(\n itemProps: Record<PropertyKey, any> | undefined,\n): Record<PropertyKey, any> {\n const filtered = { ...itemProps };\n\n for (const key of NAVIGATION_PROPS) {\n delete filtered[key];\n }\n\n if (filtered[COLLECTION_ITEM_CLICK] !== undefined) {\n filtered.onClick = filtered[COLLECTION_ITEM_CLICK];\n }\n delete filtered[COLLECTION_ITEM_CLICK];\n\n return filtered;\n}\n\nfunction hasNavigationItem<T>(nodes: Iterable<Node<T>>): boolean {\n for (const node of nodes) {\n if (\n node.props?.href != null ||\n node.props?.to != null ||\n node.props?.['data-href'] != null ||\n (node.type === 'section' && hasNavigationItem(node.childNodes))\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction selectionNodes<T>(nodes: Iterable<Node<T>>): Node<T>[] {\n return Array.from(nodes, (node) => ({\n ...node,\n props: filterSelectionItemProps(node.props),\n childNodes: selectionNodes(node.childNodes),\n }));\n}\n\n/** Bound selection semantics at the control, including foreign item factories. */\nexport function getValueSelectionState<S extends ListState<any>>(state: S): S {\n if (!hasNavigationItem(state.collection)) {\n return state;\n }\n\n // ListCollection owns its nodes, so give it copies instead of changing the input.\n const collection = new ListCollection(selectionNodes(state.collection));\n\n return {\n ...state,\n collection,\n selectionManager: state.selectionManager.withCollection(collection),\n };\n}\n\n/**\n * Filters out service props from collection item props, returning only\n * props that should be passed to the Item component.\n *\n * This eliminates the need to manually extract and pass Item props\n * in components like MenuItem, ListBox Option, and Select Option.\n *\n * @param itemProps - The props from a collection item (node.props)\n * @returns Filtered props safe to spread onto Item component\n *\n * @example\n * ```tsx\n * const itemProps = filterCollectionItemProps(item.props);\n * return <Item {...itemProps} />;\n * ```\n */\nexport function filterCollectionItemProps(\n itemProps: Record<string, any> | undefined,\n): Record<string, any> {\n if (!itemProps) {\n return {};\n }\n\n const filtered: Record<string, any> = {};\n\n for (const key in itemProps) {\n if (\n Object.prototype.hasOwnProperty.call(itemProps, key) &&\n !SERVICE_PROPS.has(key)\n ) {\n filtered[key] = itemProps[key];\n }\n }\n\n return filtered;\n}\n\nfunction CollectionItem<T>(\n _props: CubeCollectionItemProps<T>,\n): ReactElement | null {\n return null;\n}\n\nconst _CollectionItem: typeof CollectionItem & {\n Action: typeof ItemAction;\n Badge: typeof ItemBadge;\n} = Object.assign(CollectionItem, {\n Action: ItemAction,\n Badge: ItemBadge,\n getCollectionNode<T>(props: CubeCollectionItemProps<T>, context: unknown) {\n // Strip destinations before Aria builds selection state, including JS callers.\n return (Item as any).getCollectionNode(\n filterSelectionItemProps(props),\n context,\n );\n },\n});\n\nexport { _CollectionItem as CollectionItem };\n"],"mappings":";;;;;;AAYA,MAAaU,wBAAwBC,OAAO,+BAA+B;;;;;AA+B3E,MAAMmB,gCAAgB,IAAIC,IAAI;CAE5B;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;AAAc,CACf;AAED,MAAMC,mBAAmB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAsB;;AAIxB,SAAgBC,yBACdC,WAC0B;CAC1B,MAAMG,WAAW,EAAE,GAAGH,UAAU;CAEhC,KAAK,MAAML,OAAOG,kBAChB,OAAOK,SAASR;CAGlB,IAAIQ,SAAS3B,2BAA2B4B,KAAAA,GACtCD,SAASE,UAAUF,SAAS3B;CAE9B,OAAO2B,SAAS3B;CAEhB,OAAO2B;AACT;AAEA,SAASG,kBAAqBC,OAAmC;CAC/D,KAAK,MAAME,QAAQF,OACjB,IACEE,KAAKC,OAAOzB,QAAQ,QACpBwB,KAAKC,OAAOxB,MAAM,QAClBuB,KAAKC,QAAQ,gBAAgB,QAC5BD,KAAKE,SAAS,aAAaL,kBAAkBG,KAAKG,UAAU,GAE7D,OAAO;CAIX,OAAO;AACT;AAEA,SAASC,eAAkBN,OAAqC;CAC9D,OAAOO,MAAMC,KAAKR,QAAQE,UAAU;EAClC,GAAGA;EACHC,OAAOX,yBAAyBU,KAAKC,KAAK;EAC1CE,YAAYC,eAAeJ,KAAKG,UAAU;CAC5C,EAAE;AACJ;;AAGA,SAAgBI,uBAAiDC,OAAa;CAC5E,IAAI,CAACX,kBAAkBW,MAAME,UAAU,GACrC,OAAOF;CAIT,MAAME,aAAa,IAAIlD,eAAe4C,eAAeI,MAAME,UAAU,CAAC;CAEtE,OAAO;EACL,GAAGF;EACHE;EACAC,kBAAkBH,MAAMG,iBAAiBC,eAAeF,UAAU;CACpE;AACF;;;;;;;;;;;;;;;;;AAkBA,SAAgBG,0BACdtB,WACqB;CACrB,IAAI,CAACA,WACH,OAAO,CAAC;CAGV,MAAMG,WAAgC,CAAC;CAEvC,KAAK,MAAMR,OAAOK,WAChB,IACEuB,OAAOC,UAAUC,eAAeC,KAAK1B,WAAWL,GAAG,KACnD,CAACC,cAAc+B,IAAIhC,GAAG,GAEtBQ,SAASR,OAAOK,UAAUL;CAI9B,OAAOQ;AACT;AAEA,SAASyB,eACPC,QACqB;CACrB,OAAO;AACT;AAEA,MAAMC,kBAGFP,OAAOU,OAAOL,gBAAgB;CAChCG,QAAQ7D;CACR8D,OAAO5D;CACP8D,kBAAqBxB,OAAmCyB,SAAkB;EAExE,OAAQpE,KAAamE,kBACnBnC,yBAAyBW,KAAK,GAC9ByB,OACF;CACF;AACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { mergeStyleLayers } from "../utils/styles.js";
|
|
3
3
|
import { usePaletteValue } from "../tokens/palette-config.js";
|
|
4
4
|
import { getTokens } from "../tokens/all-tokens.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","getTokens","usePaletteValue","mergeStyleLayers","Styles","GlobalStylesProps","bodyStyles","key","fonts","fontDisplay","publicUrl","font","monospaceFont","applyLegacyTokens","BODY_STYLES","overscrollBehaviorY","fill","fontFamily","margin","padding","color","preset","letterSpacing","STATIC_CSS","GlobalStyles","props","$","_c","tokens","t0","bodyTokenStyles","t1","Symbol","for","id","t2","t3","fontValue","monospaceFontValue","_c"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\n\nimport { getTokens } from '../tokens';\nimport { usePaletteValue } from '../tokens/palette-config';\nimport { mergeStyleLayers } from '../utils/styles';\n\nimport type { Styles } from '@tenphi/tasty';\n\ninterface GlobalStylesProps {\n bodyStyles?: { [key: string]: string };\n fonts?: boolean;\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n publicUrl?: string;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via useGlobalStyles */\n applyLegacyTokens?: boolean;\n}\n\n/**\n * Body styles applied via useGlobalStyles.\n *\n * `fill` and `color` use scheme-aware Glaze tokens so the whole page flips\n * automatically when `<html data-scheme=\"dark\">` (or `prefers-color-scheme: dark`)\n * is active — see `src/tokens/palette.ts` and `src/components/Root.tsx`.\n */\nconst BODY_STYLES: Styles = {\n overscrollBehaviorY: 'none',\n fill: '#surface',\n fontFamily: '$font-sans',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n margin: 0,\n padding: 0,\n color: '#surface-text-soft',\n preset: 't3',\n letterSpacing: '0.02em',\n};\n\n// Static CSS that doesn't depend on props\nconst STATIC_CSS = `\n @font-face {\n font-family: text-security-disc;\n src: url(data:font/woff2;base64,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) format('woff2');\n }\n\n kbd {\n font-family: var(--c2-font-family);\n font-weight: var(--c2-font-weight);\n font-size: var(--c2-font-size);\n border: var(--border-width) solid var(--dark-04-color);\n background-color: var(--surface-color);\n color: var(--dark-color);\n border-radius: var(--radius);\n padding: 0 var(--outline-width);\n }\n\n :not([data-qa$=\"Icon\"]) > .tabler-icon {\n font-size: var(--icon-size);\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-height: 1em;\n stroke-width: var(--stroke-width);\n }\n\n .cube-animation-spin {\n animation: cube-animation-spin 1s linear infinite;\n }\n\n @keyframes cube-animation-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n b, strong {\n font-weight: var(--bold-font-weight, 700);\n }\n\n [type=reset], [type=submit], button, html [type=button] {\n -webkit-appearance: none;\n }\n\n code {\n font-family: var(--font-mono);\n }\n\n /*\n * Prism syntax highlighting.\n *\n * All token colors come from the scheme-aware Glaze \\`code-*\\` palette\n * (defined in src/tokens/palette.ts). Each \\`code-*\\` token has \\`mode: 'auto'\\`\n * with a numeric contrast floor of 4.5 against \\`#surface\\` so every token\n * reads at WCAG AA in light AND dark schemes (AAA in high-contrast).\n * Diff insertion / deletion re-use the adaptive \\`success-*\\` and \\`danger-*\\`\n * ramps for both the line bg and the token color.\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n color: var(--surface-text-color);\n background: none;\n font-family: var(--s3-font-family, var(--font-mono));\n text-align: left;\n font-weight: var(--s3-font-weight, 400);\n font-size: var(--s3-font-size, 14px);\n line-height: var(--s3-line-height, 20px);\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 6px;\n border: none;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n text-shadow: none;\n background: color-mix(in oklab, var(--primary-color) 20%, transparent);\n }\n\n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: color-mix(in oklab, var(--primary-color) 20%, transparent);\n }\n\n @media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n overflow: auto;\n }\n\n :not(pre) > code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background: transparent;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n border-radius: .3em;\n white-space: normal;\n }\n\n /* Diff (re-uses success/danger ramps; both bg and text adapt to scheme) */\n .token.inserted-sign {\n background-color: var(--success-bg-color);\n color: var(--success-text-color);\n }\n\n .token.inserted {\n color: var(--success-text-color);\n }\n\n .token.deleted-sign {\n background-color: var(--danger-bg-color);\n color: var(--danger-text-color);\n }\n\n .token.deleted {\n color: var(--danger-text-color);\n }\n\n /* Comments — subdued gray-ish, AA floor */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-comment-color);\n }\n\n /* Operators / punctuation — subdued purple, AA floor */\n .token.operator,\n .token.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .namespace {\n opacity: .7;\n }\n\n /* Keywords / language constructs — violet */\n .token.boolean,\n .token.constant,\n .token.keyword,\n .token.atrule {\n color: var(--code-keyword-color);\n font-weight: 500;\n }\n\n /* Numbers / numeric entities — orange */\n .token.entity,\n .token.number {\n color: var(--code-number-color);\n }\n\n /* Strings / character literals / URLs — green */\n .token.string,\n .token.char,\n .token.attr-value,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-string-color);\n }\n\n /* Names: functions, class names, regex, variables — pink/coral */\n .token.function,\n .token.class-name,\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-function-color);\n }\n\n /* HTML/XML tag names — same hue as keywords (see Colors / CodeSyntax) */\n .token.tag {\n color: var(--code-keyword-color);\n }\n\n /* Attributes / properties / selectors / built-ins — cyan */\n .token.attr-name,\n .token.property,\n .token.symbol,\n .token.key,\n .token.builtin,\n .token.selector {\n color: var(--code-attribute-color);\n }\n\n /*\n * prism-react-renderer flattens nested markup tokens and prefixes parent\n * types onto each leaf (e.g. \\`token tag attr-value\\`). Re-assert leaf\n * colors so the bare \\`.token.tag\\` rule does not wash the whole tag.\n */\n .token.tag.attr-name {\n color: var(--code-attribute-color);\n }\n\n .token.tag.attr-value {\n color: var(--code-string-color);\n }\n\n .token.tag.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`;\n\nexport function GlobalStyles(props: GlobalStylesProps) {\n const { bodyStyles, font, monospaceFont } = props;\n\n // Re-resolve the tokens whenever the palette is re-seeded at runtime (see\n // `src/tokens/palette-config.ts`). Nothing else has to re-render: every color\n // in the kit compiles to `var(--<name>-color)`, so replacing this one rule\n // recolors the whole UI. `getTokens()` returns a new map only when the palette\n // changes, and taking it as the store value makes it the memo's dependency —\n // a version listed in the deps but never read is dropped by React Compiler.\n const tokens = usePaletteValue(getTokens);\n\n // Merge token styles with the base body styles, then the custom ones. Keys\n // are passed through as-is (tasty handles both camelCase and kebab-case).\n const bodyTokenStyles = mergeStyleLayers(tokens, BODY_STYLES, bodyStyles);\n\n // Apply tokens and body styles via useGlobalStyles.\n //\n // Replacement does not depend on the `id`: tasty keys its injection slot on\n // `id ?? selector`, so `'body'` on its own already disposes the previous block\n // before writing the new one — which is what removes stale `@hc` rules when the\n // palette is re-seeded, rather than shadowing them. The `id` buys two other\n // things. It gives the token block its own slot, so a host app calling\n // `useGlobalStyles('body', …)` for its own body styles cannot evict ours (and\n // vice versa) — they would otherwise share the `'body'` slot and dispose each\n // other on every change. And under SSR it makes the collector key stable and\n // last-write-wins, instead of content-hashed and first-write-wins.\n useGlobalStyles('body', bodyTokenStyles, { id: 'cube-ui-kit-tokens' });\n\n // Apply static CSS and font definitions via useRawCSS\n useRawCSS(() => {\n const fontValue = font ? `${font}, ` : '';\n const monospaceFontValue = monospaceFont ? `${monospaceFont}, ` : '';\n\n return `\n html {\n overscroll-behavior-y: none;\n --font-sans: ${fontValue}system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n --font-mono: ${monospaceFontValue}ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n${STATIC_CSS}`;\n }, [font, monospaceFont]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;AA0BA,MAAMe,cAAsB;CAC1BC,qBAAqB;CACrBC,MAAM;CACNC,YAAY;CACZ,0BAA0B;CAC1B,2BAA2B;CAC3BC,QAAQ;CACRC,SAAS;CACTC,OAAO;CACPC,QAAQ;CACRC,eAAe;AACjB;AAGA,MAAMC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPnB,SAAOC,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAA,EAAArB,YAAAK,MAAAC,kBAA4Ca;CAQ5C,MAAAG,SAAe1B,gBAAgBD,SAAS;CAAE,IAAA4B;CAAA,IAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;EAIlBC,KAAA1B,iBAAiByB,QAAQd,aAAaR,UAAU;EAACoB,EAAA,KAAApB;EAAAoB,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAzE,MAAAI,kBAAwBD;CAAkD,IAAAE;CAAA,IAAAL,EAAA,OAAAM,OAAAC,IAAA,2BAAA,GAAA;EAajCF,KAAA,EAAAG,IAAM,qBAAqB;EAACR,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAArE3B,gBAAgB,QAAQ+B,iBAAiBC,EAA4B;CAAC,IAAAI;CAAA,IAAAC;CAAA,IAAAV,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;EAG5DuB,WAAA;GAE6D,OAE9D;;;mBAHWxB,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;EAAY;EACTa,KAAA,CAACzB,MAAMC,aAAa;EAACc,EAAA,KAAAf;EAAAe,EAAA,KAAAd;EAAAc,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAA;EAAAD,KAAAT,EAAA;EAAAU,KAAAV,EAAA;CAAA;CAXxB1B,UAAUmC,IAWPC,EAAqB;CAAC,OAElB;AAAI"}
|
|
1
|
+
{"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","getTokens","usePaletteValue","mergeStyleLayers","Styles","GlobalStylesProps","bodyStyles","key","fonts","fontDisplay","publicUrl","font","monospaceFont","applyLegacyTokens","BODY_STYLES","overscrollBehaviorY","fill","fontFamily","margin","padding","color","preset","letterSpacing","STATIC_CSS","GlobalStyles","props","$","_c","tokens","t0","bodyTokenStyles","t1","Symbol","for","id","t2","t3","fontValue","monospaceFontValue","_c"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\n\nimport { getTokens } from '../tokens/all-tokens';\nimport { usePaletteValue } from '../tokens/palette-config';\nimport { mergeStyleLayers } from '../utils/styles';\n\nimport type { Styles } from '@tenphi/tasty';\n\ninterface GlobalStylesProps {\n bodyStyles?: { [key: string]: string };\n fonts?: boolean;\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n publicUrl?: string;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via useGlobalStyles */\n applyLegacyTokens?: boolean;\n}\n\n/**\n * Body styles applied via useGlobalStyles.\n *\n * `fill` and `color` use scheme-aware Glaze tokens so the whole page flips\n * automatically when `<html data-scheme=\"dark\">` (or `prefers-color-scheme: dark`)\n * is active — see `src/tokens/palette.ts` and `src/components/Root.tsx`.\n */\nconst BODY_STYLES: Styles = {\n overscrollBehaviorY: 'none',\n fill: '#surface',\n fontFamily: '$font-sans',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n margin: 0,\n padding: 0,\n color: '#surface-text-soft',\n preset: 't3',\n letterSpacing: '0.02em',\n};\n\n// Static CSS that doesn't depend on props\nconst STATIC_CSS = `\n @font-face {\n font-family: text-security-disc;\n src: url(data:font/woff2;base64,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) format('woff2');\n }\n\n kbd {\n font-family: var(--c2-font-family);\n font-weight: var(--c2-font-weight);\n font-size: var(--c2-font-size);\n border: var(--border-width) solid var(--dark-04-color);\n background-color: var(--surface-color);\n color: var(--dark-color);\n border-radius: var(--radius);\n padding: 0 var(--outline-width);\n }\n\n :not([data-qa$=\"Icon\"]) > .tabler-icon {\n font-size: var(--icon-size);\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-height: 1em;\n stroke-width: var(--stroke-width);\n }\n\n .cube-animation-spin {\n animation: cube-animation-spin 1s linear infinite;\n }\n\n @keyframes cube-animation-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n b, strong {\n font-weight: var(--bold-font-weight, 700);\n }\n\n [type=reset], [type=submit], button, html [type=button] {\n -webkit-appearance: none;\n }\n\n code {\n font-family: var(--font-mono);\n }\n\n /*\n * Prism syntax highlighting.\n *\n * All token colors come from the scheme-aware Glaze \\`code-*\\` palette\n * (defined in src/tokens/palette.ts). Each \\`code-*\\` token has \\`mode: 'auto'\\`\n * with a numeric contrast floor of 4.5 against \\`#surface\\` so every token\n * reads at WCAG AA in light AND dark schemes (AAA in high-contrast).\n * Diff insertion / deletion re-use the adaptive \\`success-*\\` and \\`danger-*\\`\n * ramps for both the line bg and the token color.\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n color: var(--surface-text-color);\n background: none;\n font-family: var(--s3-font-family, var(--font-mono));\n text-align: left;\n font-weight: var(--s3-font-weight, 400);\n font-size: var(--s3-font-size, 14px);\n line-height: var(--s3-line-height, 20px);\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 6px;\n border: none;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n text-shadow: none;\n background: color-mix(in oklab, var(--primary-color) 20%, transparent);\n }\n\n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: color-mix(in oklab, var(--primary-color) 20%, transparent);\n }\n\n @media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n overflow: auto;\n }\n\n :not(pre) > code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background: transparent;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n border-radius: .3em;\n white-space: normal;\n }\n\n /* Diff (re-uses success/danger ramps; both bg and text adapt to scheme) */\n .token.inserted-sign {\n background-color: var(--success-bg-color);\n color: var(--success-text-color);\n }\n\n .token.inserted {\n color: var(--success-text-color);\n }\n\n .token.deleted-sign {\n background-color: var(--danger-bg-color);\n color: var(--danger-text-color);\n }\n\n .token.deleted {\n color: var(--danger-text-color);\n }\n\n /* Comments — subdued gray-ish, AA floor */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-comment-color);\n }\n\n /* Operators / punctuation — subdued purple, AA floor */\n .token.operator,\n .token.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .namespace {\n opacity: .7;\n }\n\n /* Keywords / language constructs — violet */\n .token.boolean,\n .token.constant,\n .token.keyword,\n .token.atrule {\n color: var(--code-keyword-color);\n font-weight: 500;\n }\n\n /* Numbers / numeric entities — orange */\n .token.entity,\n .token.number {\n color: var(--code-number-color);\n }\n\n /* Strings / character literals / URLs — green */\n .token.string,\n .token.char,\n .token.attr-value,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-string-color);\n }\n\n /* Names: functions, class names, regex, variables — pink/coral */\n .token.function,\n .token.class-name,\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-function-color);\n }\n\n /* HTML/XML tag names — same hue as keywords (see Colors / CodeSyntax) */\n .token.tag {\n color: var(--code-keyword-color);\n }\n\n /* Attributes / properties / selectors / built-ins — cyan */\n .token.attr-name,\n .token.property,\n .token.symbol,\n .token.key,\n .token.builtin,\n .token.selector {\n color: var(--code-attribute-color);\n }\n\n /*\n * prism-react-renderer flattens nested markup tokens and prefixes parent\n * types onto each leaf (e.g. \\`token tag attr-value\\`). Re-assert leaf\n * colors so the bare \\`.token.tag\\` rule does not wash the whole tag.\n */\n .token.tag.attr-name {\n color: var(--code-attribute-color);\n }\n\n .token.tag.attr-value {\n color: var(--code-string-color);\n }\n\n .token.tag.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`;\n\nexport function GlobalStyles(props: GlobalStylesProps) {\n const { bodyStyles, font, monospaceFont } = props;\n\n // Re-resolve the tokens whenever the palette is re-seeded at runtime (see\n // `src/tokens/palette-config.ts`). Nothing else has to re-render: every color\n // in the kit compiles to `var(--<name>-color)`, so replacing this one rule\n // recolors the whole UI. `getTokens()` returns a new map only when the palette\n // changes, and taking it as the store value makes it the memo's dependency —\n // a version listed in the deps but never read is dropped by React Compiler.\n const tokens = usePaletteValue(getTokens);\n\n // Merge token styles with the base body styles, then the custom ones. Keys\n // are passed through as-is (tasty handles both camelCase and kebab-case).\n const bodyTokenStyles = mergeStyleLayers(tokens, BODY_STYLES, bodyStyles);\n\n // Apply tokens and body styles via useGlobalStyles.\n //\n // Replacement does not depend on the `id`: tasty keys its injection slot on\n // `id ?? selector`, so `'body'` on its own already disposes the previous block\n // before writing the new one — which is what removes stale `@hc` rules when the\n // palette is re-seeded, rather than shadowing them. The `id` buys two other\n // things. It gives the token block its own slot, so a host app calling\n // `useGlobalStyles('body', …)` for its own body styles cannot evict ours (and\n // vice versa) — they would otherwise share the `'body'` slot and dispose each\n // other on every change. And under SSR it makes the collector key stable and\n // last-write-wins, instead of content-hashed and first-write-wins.\n useGlobalStyles('body', bodyTokenStyles, { id: 'cube-ui-kit-tokens' });\n\n // Apply static CSS and font definitions via useRawCSS\n useRawCSS(() => {\n const fontValue = font ? `${font}, ` : '';\n const monospaceFontValue = monospaceFont ? `${monospaceFont}, ` : '';\n\n return `\n html {\n overscroll-behavior-y: none;\n --font-sans: ${fontValue}system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n --font-mono: ${monospaceFontValue}ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n${STATIC_CSS}`;\n }, [font, monospaceFont]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;AA0BA,MAAMe,cAAsB;CAC1BC,qBAAqB;CACrBC,MAAM;CACNC,YAAY;CACZ,0BAA0B;CAC1B,2BAA2B;CAC3BC,QAAQ;CACRC,SAAS;CACTC,OAAO;CACPC,QAAQ;CACRC,eAAe;AACjB;AAGA,MAAMC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPnB,SAAOC,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAA,EAAArB,YAAAK,MAAAC,kBAA4Ca;CAQ5C,MAAAG,SAAe1B,gBAAgBD,SAAS;CAAE,IAAA4B;CAAA,IAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;EAIlBC,KAAA1B,iBAAiByB,QAAQd,aAAaR,UAAU;EAACoB,EAAA,KAAApB;EAAAoB,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAzE,MAAAI,kBAAwBD;CAAkD,IAAAE;CAAA,IAAAL,EAAA,OAAAM,OAAAC,IAAA,2BAAA,GAAA;EAajCF,KAAA,EAAAG,IAAM,qBAAqB;EAACR,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAArE3B,gBAAgB,QAAQ+B,iBAAiBC,EAA4B;CAAC,IAAAI;CAAA,IAAAC;CAAA,IAAAV,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;EAG5DuB,WAAA;GAE6D,OAE9D;;;mBAHWxB,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;EAAY;EACTa,KAAA,CAACzB,MAAMC,aAAa;EAACc,EAAA,KAAAf;EAAAe,EAAA,KAAAd;EAAAc,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAA;EAAAD,KAAAT,EAAA;EAAAU,KAAAV,EAAA;CAAA;CAXxB1B,UAAUmC,IAWPC,EAAqB;CAAC,OAElB;AAAI"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { useCombinedRefs } from "../utils/react/useCombinedRefs.js";
|
|
3
3
|
import { filterBaseProps, tasty } from "@tenphi/tasty";
|
|
4
4
|
import { forwardRef, useCallback, useEffect, useState } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridProvider.js","names":["filterBaseProps","tasty","forwardRef","ReactNode","useCallback","useEffect","useState","useCombinedRefs","GridElement","styles","display","toLength","value","CubeGridProviderProps","children","columns","gap","width","initialWidth","GridProvider","HTMLDivElement","props","outerRef","ref","forcedWidth","setWidth","resizeCallback","el","current","parentElement","computedStyle","getComputedStyle","containerWidth","clientWidth","parseFloat","paddingLeft","paddingRight","parentNode","sensor","then","module","ResizeSensor","detach","eventProps"],"sources":["../../src/components/GridProvider.tsx"],"sourcesContent":["import { filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { useCombinedRefs } from '../utils/react';\n\nconst GridElement = tasty({\n styles: {\n display: 'contents',\n '$column-width':\n '(($grid-width - ($column-gap * ($columns-amount - 1))) / $columns-amount)',\n },\n});\n\n/** Numbers are pixels: a custom property gets no default unit. */\nfunction toLength(value: string | number) {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport interface CubeGridProviderProps {\n children: ReactNode;\n columns?: number;\n /** Gap between columns, as a single Tasty value such as `'1x'`, or a number of pixels. */\n gap?: string | number;\n /** Forced container width, as a single Tasty value, or a number of pixels. */\n width?: string | number;\n /** Width before the resize observer measures the container, as a single Tasty value, or a number of pixels. */\n initialWidth?: string | number;\n}\n\nexport const GridProvider = forwardRef<HTMLDivElement, CubeGridProviderProps>(\n function GridProvider(props, outerRef) {\n let ref = useCombinedRefs(outerRef);\n\n let {\n children,\n columns = 2,\n gap = 0,\n width: forcedWidth,\n initialWidth,\n } = props;\n\n let [width, setWidth] = useState<string | number>(\n forcedWidth || initialWidth || '100vw',\n );\n\n const resizeCallback = useCallback(() => {\n const el = ref?.current?.parentElement;\n\n if (!el) return;\n\n const computedStyle = getComputedStyle(el);\n const containerWidth =\n el.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight);\n\n setWidth(`${containerWidth}px`);\n }, [ref, columns, gap]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n const el = ref && ref.current && ref.current.parentNode;\n\n if (!el) return;\n\n let sensor;\n\n import('../utils/ResizeSensor')\n .then((module) => module.ResizeSensor)\n .then((ResizeSensor) => {\n sensor = new ResizeSensor(el, resizeCallback);\n });\n\n return () => {\n if (sensor) {\n sensor.detach();\n }\n };\n }, [resizeCallback]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n resizeCallback();\n }, [resizeCallback]);\n\n return (\n <GridElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n tokens={{\n '$grid-width': toLength(width),\n '$columns-amount': columns,\n '$column-gap': toLength(gap),\n }}\n >\n {children}\n </GridElement>\n );\n },\n);\n"],"mappings":";;;;;;AAKA,MAAMQ,cAAcP,MAAM,EACxBQ,QAAQ;CACNC,SAAS;CACT,iBACE;AACJ,EACF,CAAC;;AAGD,SAASC,SAASC,OAAwB;CACxC,OAAO,OAAOA,UAAU,WAAW,GAAGA,MAAK,MAAOA;AACpD;AAaA,MAAaO,eAAejB,WAC1B,SAASiB,aAAaE,OAAOC,UAAU;CACrC,IAAIC,MAAMhB,gBAAgBe,QAAQ;CAElC,IAAI,EACFR,UACAC,UAAU,GACVC,MAAM,GACNC,OAAOO,aACPN,iBACEG;CAEJ,IAAI,CAACJ,OAAOQ,YAAYnB,SACtBkB,eAAeN,gBAAgB,OACjC;CAEA,MAAMQ,iBAAiBtB,kBAAkB;EACvC,MAAMuB,KAAKJ,KAAKK,SAASC;EAEzB,IAAI,CAACF,IAAI;EAET,MAAMG,gBAAgBC,iBAAiBJ,EAAE;EACzC,MAAMK,iBACJL,GAAGM,cACHC,WAAWJ,cAAcK,WAAW,IACpCD,WAAWJ,cAAcM,YAAY;EAEvCX,SAAS,GAAGO,eAAc,GAAI;CAChC,GAAG;EAACT;EAAKR;EAASC;CAAG,CAAC;CAEtBX,gBAAgB;EACd,IAAImB,aAAa;EAEjB,MAAMG,OAAKJ,OAAOA,IAAIK,WAAWL,IAAIK,QAAQS;EAE7C,IAAI,CAACV,MAAI;EAET,IAAIW;EAEJ,OAAO,2BAAwB,CAC5BC,MAAMC,WAAWA,OAAOC,YAAY,CAAC,CACrCF,MAAME,iBAAiB;GACtBH,SAAS,IAAIG,aAAad,MAAID,cAAc;EAC9C,CAAC;EAEH,aAAa;GACX,IAAIY,QACFA,OAAOI,OAAO;EAElB;CACF,GAAG,CAAChB,cAAc,CAAC;CAEnBrB,gBAAgB;EACd,IAAImB,aAAa;EAEjBE,eAAe;CACjB,GAAG,CAACA,cAAc,CAAC;CAEnB,OACE,oBAAC,aAAD;EACE,GAAI1B,gBAAgBqB,OAAO,EAAEsB,YAAY,KAAK,CAAC;EAC1CpB;EACL,QAAQ;GACN,eAAeZ,SAASM,KAAK;GAC7B,mBAAmBF;GACnB,eAAeJ,SAASK,GAAG;EAC7B;EAECF;CACU,CAAA;AAEjB,CACF"}
|
|
1
|
+
{"version":3,"file":"GridProvider.js","names":["filterBaseProps","tasty","forwardRef","ReactNode","useCallback","useEffect","useState","useCombinedRefs","GridElement","styles","display","toLength","value","CubeGridProviderProps","children","columns","gap","width","initialWidth","GridProvider","HTMLDivElement","props","outerRef","ref","forcedWidth","setWidth","resizeCallback","el","current","parentElement","computedStyle","getComputedStyle","containerWidth","clientWidth","parseFloat","paddingLeft","paddingRight","parentNode","sensor","then","module","ResizeSensor","detach","eventProps"],"sources":["../../src/components/GridProvider.tsx"],"sourcesContent":["import { filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, useEffect, useState } from 'react';\n\nimport { useCombinedRefs } from '../utils/react/useCombinedRefs';\n\nconst GridElement = tasty({\n styles: {\n display: 'contents',\n '$column-width':\n '(($grid-width - ($column-gap * ($columns-amount - 1))) / $columns-amount)',\n },\n});\n\n/** Numbers are pixels: a custom property gets no default unit. */\nfunction toLength(value: string | number) {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport interface CubeGridProviderProps {\n children: ReactNode;\n columns?: number;\n /** Gap between columns, as a single Tasty value such as `'1x'`, or a number of pixels. */\n gap?: string | number;\n /** Forced container width, as a single Tasty value, or a number of pixels. */\n width?: string | number;\n /** Width before the resize observer measures the container, as a single Tasty value, or a number of pixels. */\n initialWidth?: string | number;\n}\n\nexport const GridProvider = forwardRef<HTMLDivElement, CubeGridProviderProps>(\n function GridProvider(props, outerRef) {\n let ref = useCombinedRefs(outerRef);\n\n let {\n children,\n columns = 2,\n gap = 0,\n width: forcedWidth,\n initialWidth,\n } = props;\n\n let [width, setWidth] = useState<string | number>(\n forcedWidth || initialWidth || '100vw',\n );\n\n const resizeCallback = useCallback(() => {\n const el = ref?.current?.parentElement;\n\n if (!el) return;\n\n const computedStyle = getComputedStyle(el);\n const containerWidth =\n el.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight);\n\n setWidth(`${containerWidth}px`);\n }, [ref, columns, gap]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n const el = ref && ref.current && ref.current.parentNode;\n\n if (!el) return;\n\n let sensor;\n\n import('../utils/ResizeSensor')\n .then((module) => module.ResizeSensor)\n .then((ResizeSensor) => {\n sensor = new ResizeSensor(el, resizeCallback);\n });\n\n return () => {\n if (sensor) {\n sensor.detach();\n }\n };\n }, [resizeCallback]);\n\n useEffect(() => {\n if (forcedWidth) return;\n\n resizeCallback();\n }, [resizeCallback]);\n\n return (\n <GridElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n tokens={{\n '$grid-width': toLength(width),\n '$columns-amount': columns,\n '$column-gap': toLength(gap),\n }}\n >\n {children}\n </GridElement>\n );\n },\n);\n"],"mappings":";;;;;;AAKA,MAAMQ,cAAcP,MAAM,EACxBQ,QAAQ;CACNC,SAAS;CACT,iBACE;AACJ,EACF,CAAC;;AAGD,SAASC,SAASC,OAAwB;CACxC,OAAO,OAAOA,UAAU,WAAW,GAAGA,MAAK,MAAOA;AACpD;AAaA,MAAaO,eAAejB,WAC1B,SAASiB,aAAaE,OAAOC,UAAU;CACrC,IAAIC,MAAMhB,gBAAgBe,QAAQ;CAElC,IAAI,EACFR,UACAC,UAAU,GACVC,MAAM,GACNC,OAAOO,aACPN,iBACEG;CAEJ,IAAI,CAACJ,OAAOQ,YAAYnB,SACtBkB,eAAeN,gBAAgB,OACjC;CAEA,MAAMQ,iBAAiBtB,kBAAkB;EACvC,MAAMuB,KAAKJ,KAAKK,SAASC;EAEzB,IAAI,CAACF,IAAI;EAET,MAAMG,gBAAgBC,iBAAiBJ,EAAE;EACzC,MAAMK,iBACJL,GAAGM,cACHC,WAAWJ,cAAcK,WAAW,IACpCD,WAAWJ,cAAcM,YAAY;EAEvCX,SAAS,GAAGO,eAAc,GAAI;CAChC,GAAG;EAACT;EAAKR;EAASC;CAAG,CAAC;CAEtBX,gBAAgB;EACd,IAAImB,aAAa;EAEjB,MAAMG,OAAKJ,OAAOA,IAAIK,WAAWL,IAAIK,QAAQS;EAE7C,IAAI,CAACV,MAAI;EAET,IAAIW;EAEJ,OAAO,2BAAwB,CAC5BC,MAAMC,WAAWA,OAAOC,YAAY,CAAC,CACrCF,MAAME,iBAAiB;GACtBH,SAAS,IAAIG,aAAad,MAAID,cAAc;EAC9C,CAAC;EAEH,aAAa;GACX,IAAIY,QACFA,OAAOI,OAAO;EAElB;CACF,GAAG,CAAChB,cAAc,CAAC;CAEnBrB,gBAAgB;EACd,IAAImB,aAAa;EAEjBE,eAAe;CACjB,GAAG,CAACA,cAAc,CAAC;CAEnB,OACE,oBAAC,aAAD;EACE,GAAI1B,gBAAgBqB,OAAO,EAAEsB,YAAY,KAAK,CAAC;EAC1CpB;EACL,QAAQ;GACN,eAAeZ,SAASM,KAAK;GAC7B,mBAAmBF;GACnB,eAAeJ,SAASK,GAAG;EAC7B;EAECF;CACU,CAAA;AAEjB,CACF"}
|
package/dist/components/Root.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../utils/styles.js";
|
|
3
|
-
import { AMBIENT_PREDEFINED_STATES } from "../utils/react/useScheme.js";
|
|
4
|
-
import { EventBusProvider } from "../utils/react/useEventBus.js";
|
|
5
3
|
import { PortalProvider } from "./portal/PortalProvider.js";
|
|
6
4
|
import { TASTY_VERSION, VERSION } from "../version.js";
|
|
7
5
|
import { TrackingProvider } from "../providers/TrackingProvider.js";
|
|
6
|
+
import { EventBusProvider } from "../utils/react/useEventBus.js";
|
|
8
7
|
import { Provider } from "../provider.js";
|
|
9
8
|
import { I18nProvider as I18nProvider$1 } from "../i18n/I18nProvider.js";
|
|
10
9
|
import { setPaletteConfig } from "../tokens/palette-config.js";
|
|
10
|
+
import { AMBIENT_PREDEFINED_STATES } from "../utils/react/useScheme.js";
|
|
11
11
|
import { GlobalStyles } from "./GlobalStyles.js";
|
|
12
12
|
import { AlertDialogApiProvider } from "./overlays/AlertDialog/AlertDialogApiProvider.js";
|
|
13
13
|
import { OverlayProvider } from "./overlays/Notifications/OverlayProvider.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","names":["BASE_STYLES","BaseProps","BLOCK_STYLES","configure","filterBaseProps","setGlobalPredefinedStates","tasty","TastyBatchProvider","useEffect","useLayoutEffect","useRef","useState","ModalProvider","I18nProvider","Provider","NavigationAdapter","TrackingProps","TrackingProvider","PaletteConfig","setPaletteConfig","EventBusProvider","AMBIENT_PREDEFINED_STATES","extractStyles","TASTY_VERSION","VERSION","GlobalStyles","AlertDialogApiProvider","OverlayProvider","PortalProvider","i18n","I18nInstance","batchInjection","units","x","r","cr","bw","ow","recipes","reset","margin","padding","border","outline","boxSizing","button","appearance","touchAction","textDecoration","fill","color","cursor","disabled","input","wordSpacing","caretColor","shadow","preset","hide","RootElement","id","styles","display","STYLES","CubeRootProps","tokens","key","palette","bodyStyles","fontDisplay","fonts","publicUrl","navigation","font","monospaceFont","applyLegacyTokens","tracking","cursorStrategy","locale","Root","allProps","$","_c","children","t0","_applyLegacyTokens","t1","style","props","undefined","t2","t3","t4","ref","rootRef","setRootRef","t5","current","t6","Symbol","for","T0","T1","T2","T3","t7","event","T4","t10","eventProps","t11","t12","$pointer","t13","t14","t15","t8","t9","t16","t17","t18","t19","_c","I18nProvider"],"sources":["../../src/components/Root.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n BaseProps,\n BLOCK_STYLES,\n configure,\n filterBaseProps,\n setGlobalPredefinedStates,\n tasty,\n TastyBatchProvider,\n} from '@tenphi/tasty';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { ModalProvider } from 'react-aria';\n\nimport { I18nProvider } from '../i18n';\nimport { Provider } from '../provider';\nimport { NavigationAdapter } from '../providers/navigation.types';\nimport { TrackingProps, TrackingProvider } from '../providers/TrackingProvider';\nimport { PaletteConfig, setPaletteConfig } from '../tokens/palette-config';\nimport { EventBusProvider } from '../utils/react/useEventBus';\nimport { AMBIENT_PREDEFINED_STATES } from '../utils/react/useScheme';\nimport { extractStyles } from '../utils/styles';\nimport { TASTY_VERSION, VERSION } from '../version';\n\nimport { GlobalStyles } from './GlobalStyles';\nimport { AlertDialogApiProvider } from './overlays/AlertDialog/AlertDialogApiProvider';\nimport { OverlayProvider } from './overlays/Notifications/OverlayProvider';\nimport { PortalProvider } from './portal';\n\nimport type { i18n as I18nInstance } from 'i18next';\n\n// Color-scheme aliases for the Glaze-generated palette (see `src/tokens/palette.ts`).\n// Attribute opt-in wins over system preference:\n// <html data-scheme=\"dark\"> → forces the dark scheme\n// <html data-contrast=\"high\"> → forces the high-contrast scheme\n// Otherwise falls back to the user's `prefers-color-scheme` / `prefers-contrast`.\n// `@reduced-motion`, registered beside them, follows `prefers-reduced-motion:\n// reduce` alone.\n//\n// The strings live in `useScheme.ts`, which also reads the same two conditions\n// from JS (`useScheme()` / `useHighContrast()`) — one definition, so the CSS and\n// the JS answers cannot drift apart.\nsetGlobalPredefinedStates(AMBIENT_PREDEFINED_STATES);\n\nconfigure({\n // Collapse the kit's stylesheet writes into one style invalidation per commit\n // instead of one per component. Only takes effect inside a\n // `<TastyBatchProvider>` window, and windows have to be opened per portal\n // boundary because a commit that mounts a portal does not re-render `<Root>`.\n // The kit opens three: here, in `<Portal>` (tooltips, Select and\n // ListBoxPopover lists, notifications, AlertDialogZone) and in `<Overlay>`\n // (popovers, modals, trays — i.e. Dialog and Menu). Writes in any commit\n // without a window go straight through exactly as before, so a\n // `useLayoutEffect` can never measure an element whose rules have not landed.\n batchInjection: true,\n units: {\n x: 'var(--gap)',\n r: 'var(--radius)',\n cr: 'var(--card-radius)',\n bw: 'var(--border-width)',\n ow: 'var(--outline-width)',\n },\n recipes: {\n reset: {\n margin: 0,\n padding: 0,\n border: 0,\n outline: 0,\n boxSizing: 'border-box',\n },\n button: {\n appearance: 'none',\n touchAction: 'manipulation',\n textDecoration: 'none',\n '-webkit-tap-highlight-color': 'transparent',\n fill: '#clear',\n color: 'inherit',\n cursor: {\n '': 'default',\n ':is(a)': 'pointer',\n ':is(button)': '$pointer',\n disabled: 'not-allowed',\n },\n },\n input: {\n appearance: 'none',\n wordSpacing: 'initial',\n color: 'inherit',\n fill: '#clear',\n },\n 'input-autofill': {\n '@autofill': ':-webkit-autofill | :autofill',\n appearance: {\n '@autofill': 'none',\n },\n '-webkit-text-fill-color': {\n '': 'currentColor',\n '@autofill': '#primary-text',\n },\n caretColor: {\n '@autofill': '#primary-text',\n },\n shadow: {\n '@autofill': '0 0 0 9999rem #surface inset',\n },\n preset: {\n '@autofill': 'inherit',\n },\n '-webkit-opacity': {\n '': false,\n '[disabled]': '1',\n },\n },\n 'input-placeholder': {\n '-webkit-text-fill-color': '#placeholder',\n color: '#placeholder',\n },\n 'input-search-cancel-button': {\n hide: true,\n appearance: 'none',\n },\n },\n});\n\nconst RootElement = tasty({\n id: 'cube-ui-kit-root',\n styles: {\n display: 'contents',\n color: '#dark-02',\n preset: 't3',\n },\n});\n\nconst STYLES = [...BASE_STYLES, ...BLOCK_STYLES];\n\nexport interface CubeRootProps extends BaseProps {\n tokens?: { [key: string]: string };\n /**\n * Tune the generated color palette. Every zone — `accent`, `base` and each status\n * theme — takes the same seed: a color, or `{ hue, saturation }`. Plus the global\n * `surfaceMode`, `pastel` and `contrastLevel`. Omitted fields take their default, so\n * this prop describes the whole palette and dropping a field from it drops the\n * customization.\n *\n * Removing the prop entirely is the one thing that does *not* reset the\n * palette, so `<Root>` with no `palette` cannot clobber a host's imperative\n * `setPaletteConfig()` call. Pass `{}` to ask for the default.\n *\n * The first mount applies it during render, so the first paint is already\n * tuned; a later change applies in a layout effect, before paint.\n *\n * The palette is global process state, so this is a declarative wrapper over\n * `setPaletteConfig()`; both drive the same store, and the last write wins.\n * Root's layout effect runs after its descendants' in the same commit, so a\n * descendant's `setPaletteConfig()` from a layout effect in that commit loses\n * to the prop; write from a passive effect or an event handler instead.\n * See `Getting Started/Theming` in Storybook.\n */\n palette?: PaletteConfig;\n bodyStyles?: { [key: string]: string };\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n fonts?: boolean;\n publicUrl?: string;\n navigation?: NavigationAdapter;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via GlobalStyles */\n applyLegacyTokens?: boolean;\n tracking?: TrackingProps;\n cursorStrategy?: 'web' | 'native';\n /**\n * i18next instance for this tree. During SSR, pass a request-local instance\n * created with `createUIKitI18n(locale)`.\n */\n i18n?: I18nInstance;\n /** Override the React Aria formatting locale. */\n locale?: string;\n}\n\nexport function Root(allProps: CubeRootProps) {\n let {\n children,\n /** Raw css styles for body element */\n bodyStyles,\n fontDisplay = 'swap',\n fonts,\n publicUrl,\n navigation,\n font,\n monospaceFont,\n applyLegacyTokens: _applyLegacyTokens, // deprecated, ignored\n tracking,\n cursorStrategy = 'web',\n style,\n tokens,\n palette,\n i18n,\n locale,\n ...props\n } = allProps;\n\n // The first mount applies the palette during render, so the first paint and\n // SSR output already use it and `GlobalStyles` below reads it directly. A lazy\n // initializer runs once per mount, which React Compiler preserves; a `useMemo`\n // compiles to a call on every render. A later change waits for the layout\n // effect: a write notifies every palette subscriber, and React rejects\n // updating another component while this one renders. Updates from a layout\n // effect still land before paint. `setPaletteConfig` is a no-op when the\n // resolved config is unchanged, so the effect's mount pass, an inline object\n // literal and StrictMode's double calls cost nothing.\n //\n // A `<Root>` that mounts while another tree already subscribes, with a\n // different palette, still notifies that tree during its first render.\n useState(() => {\n if (palette) setPaletteConfig(palette);\n });\n\n useLayoutEffect(() => {\n if (palette) setPaletteConfig(palette);\n }, [palette]);\n\n const ref = useRef(null);\n\n const [rootRef, setRootRef] = useState();\n\n useEffect(() => {\n if (!rootRef) {\n // @ts-ignore\n setRootRef(ref?.current);\n }\n }, []);\n\n const styles = extractStyles(props, STYLES);\n\n return (\n <TastyBatchProvider>\n <I18nProvider i18n={i18n} locale={locale}>\n <Provider navigation={navigation} root={rootRef}>\n <TrackingProvider event={tracking?.event}>\n <RootElement\n ref={ref}\n data-uikit={VERSION}\n data-tasty={TASTY_VERSION}\n data-font-display={fontDisplay}\n {...filterBaseProps(props, { eventProps: true })}\n styles={styles}\n tokens={{\n $pointer: cursorStrategy === 'web' ? 'pointer' : 'default',\n ...tokens,\n }}\n // oxlint-disable-next-line tasty/no-style-prop -- forwards the consumer's public `style` prop\n style={style}\n >\n <GlobalStyles\n bodyStyles={bodyStyles}\n publicUrl={publicUrl}\n fonts={fonts}\n font={font}\n monospaceFont={monospaceFont}\n fontDisplay={fontDisplay}\n />\n <ModalProvider>\n <PortalProvider value={ref}>\n <EventBusProvider>\n <OverlayProvider>\n <AlertDialogApiProvider>\n {children}\n </AlertDialogApiProvider>\n </OverlayProvider>\n </EventBusProvider>\n </PortalProvider>\n </ModalProvider>\n </RootElement>\n </TrackingProvider>\n </Provider>\n </I18nProvider>\n </TastyBatchProvider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAyCAK,0BAA0BgB,yBAAyB;AAEnDlB,UAAU;CAUR4B,gBAAgB;CAChBC,OAAO;EACLC,GAAG;EACHC,GAAG;EACHC,IAAI;EACJC,IAAI;EACJC,IAAI;CACN;CACAC,SAAS;EACPC,OAAO;GACLC,QAAQ;GACRC,SAAS;GACTC,QAAQ;GACRC,SAAS;GACTC,WAAW;EACb;EACAC,QAAQ;GACNC,YAAY;GACZC,aAAa;GACbC,gBAAgB;GAChB,+BAA+B;GAC/BC,MAAM;GACNC,OAAO;GACPC,QAAQ;IACN,IAAI;IACJ,UAAU;IACV,eAAe;IACfC,UAAU;GACZ;EACF;EACAC,OAAO;GACLP,YAAY;GACZQ,aAAa;GACbJ,OAAO;GACPD,MAAM;EACR;EACA,kBAAkB;GAChB,aAAa;GACbH,YAAY,EACV,aAAa,OACf;GACA,2BAA2B;IACzB,IAAI;IACJ,aAAa;GACf;GACAS,YAAY,EACV,aAAa,gBACf;GACAC,QAAQ,EACN,aAAa,+BACf;GACAC,QAAQ,EACN,aAAa,UACf;GACA,mBAAmB;IACjB,IAAI;IACJ,cAAc;GAChB;EACF;EACA,qBAAqB;GACnB,2BAA2B;GAC3BP,OAAO;EACT;EACA,8BAA8B;GAC5BQ,MAAM;GACNZ,YAAY;EACd;CACF;AACF,CAAC;AAED,MAAMa,cAAcrD,MAAM;CACxBsD,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTZ,OAAO;EACPO,QAAQ;CACV;AACF,CAAC;AAED,MAAMM,SAAS,CAAC,GAAG/D,aAAa,GAAGE,YAAY;AA8C/C,SAAO6E,KAAAC,UAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAC,UAAAf,YAAAC,aAAAe,IAAAd,OAAAC,WAAAC,YAAAC,MAAAC,eAAAC,mBAAAU,oBAAAT,UAAAC,gBAAAS,IAAAC,OAAAtB,QAAAE,SAAAtC,MAAAiD,QAAA,GAAAU,UAmBIR;CAfF,MAAAX,cAAAe,OAAAK,KAAAA,IAAA,SAAAL;CAQA,MAAAP,iBAAAS,OAAAG,KAAAA,IAAA,QAAAH;CAAsB,IAAAI;CAAA,IAAAT,EAAA,OAAAd,SAAA;EAqBfuB,WAAA;GACP,IAAIvB,SAAShD,iBAAiBgD,OAAO;EAAE;EACxCc,EAAA,KAAAd;EAAAc,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAFDtE,SAAS+E,EAER;CAAC,IAAAC;CAAA,IAAAC;CAAA,IAAAX,EAAA,OAAAd,SAAA;EAEcwB,WAAA;GACd,IAAIxB,SAAShD,iBAAiBgD,OAAO;EAAE;EACtCyB,KAAA,CAACzB,OAAO;EAACc,EAAA,KAAAd;EAAAc,EAAA,KAAAU;EAAAV,EAAA,KAAAW;CAAA,OAAA;EAAAD,KAAAV,EAAA;EAAAW,KAAAX,EAAA;CAAA;CAFZxE,gBAAgBkF,IAEbC,EAAS;CAEZ,MAAAC,MAAYnF,OAAO,IAAI;CAEvB,MAAA,CAAAoF,SAAAC,cAA8BpF,SAAS;CAAE,IAAAqF;CAAA,IAAAf,EAAA,OAAAa,SAAA;EAE/BE,WAAA;GACR,IAAI,CAACF,SAEHC,WAAWF,KAAGI,OAAS;EACxB;EACFhB,EAAA,KAAAa;EAAAb,EAAA,KAAAe;CAAA,OAAAA,KAAAf,EAAA;CAAA,IAAAiB;CAAA,IAAAjB,EAAA,OAAAkB,OAAAC,IAAA,2BAAA,GAAA;EAAEF,KAAA,CAAA;EAAEjB,EAAA,KAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CALLzE,UAAUwF,IAKPE,EAAE;CAEL,MAAArC,SAAevC,cAAckE,OAAOzB,MAAM;CAGvC,MAAAsC,KAAA9F;CACE,MAAA+F,KAAAzF;CACE,MAAA0F,KAAAzF;CACE,MAAA0F,KAAAvF;CAAwB,MAAAwF,KAAA7B,UAAQ8B;CAC9B,MAAAC,KAAAhD;CAEanC,MAAAA,KAAAA;CACAD,MAAAA,KAAAA;CAER,MAAAqF,MAAAxG,gBAAgBoF,OAAO,EAAAqB,YAAc,KAAK,CAAC;CAGnC,MAAAC,MAAAjC,mBAAmB,QAAnB,YAAA;CAAgD,IAAAkC;CAAA,IAAA9B,EAAA,OAAA6B,OAAA7B,EAAA,OAAAhB,QAAA;EADpD8C,MAAA;GAAAC,UACIF;GAAgD,GACvD7C;EACL;EAACgB,EAAA,KAAA6B;EAAA7B,EAAA,KAAAhB;EAAAgB,EAAA,MAAA8B;CAAA,OAAAA,MAAA9B,EAAA;CAAA,IAAAgC;CAAA,IAAAhC,EAAA,QAAAb,cAAAa,EAAA,QAAAR,QAAAQ,EAAA,QAAAZ,eAAAY,EAAA,QAAAX,SAAAW,EAAA,QAAAP,iBAAAO,EAAA,QAAAV,WAAA;EAID0C,MAAA,oBAAC,cAAD;GACc7C;GACDG;GACJD;GACDG;GACSC;GACFL;EAAW,CAAA;EACxBY,EAAA,MAAAb;EAAAa,EAAA,MAAAR;EAAAQ,EAAA,MAAAZ;EAAAY,EAAA,MAAAX;EAAAW,EAAA,MAAAP;EAAAO,EAAA,MAAAV;EAAAU,EAAA,MAAAgC;CAAA,OAAAA,MAAAhC,EAAA;CAAA,IAAAiC;CAAA,IAAAjC,EAAA,QAAAE,UAAA;EACF+B,MAAA,oBAAC,eAAD,EAAA,UACE,oBAAC,gBAAD;GAAuBrB,OAAAA;GACrB,UAAA,oBAAC,kBAAD,EAAA,UACE,oBAAC,iBAAD,EAAA,UACE,oBAAC,wBAAD,EACGV,SADoB,CAAA,EADT,CAAA,EADD,CAAA;EADJ,CAAA,EADH,CAAA;EAUEF,EAAA,MAAAE;EAAAF,EAAA,MAAAiC;CAAA,OAAAA,MAAAjC,EAAA;CAAA,IAAAkC;CAAA,IAAAlC,EAAA,QAAA0B,MAAA1B,EAAA,QAAAZ,eAAAY,EAAA,QAAAM,SAAAN,EAAA,QAAApB,UAAAoB,EAAA,QAAA2B,OAAA3B,EAAA,QAAA8B,OAAA9B,EAAA,QAAAgC,OAAAhC,EAAA,QAAAiC,OAAAjC,EAAA,QAAAmC,MAAAnC,EAAA,QAAAoC,IAAA;EAhClBF,MAAA,qBAAC,IAAD;GACOtB;GACOrE,cAAAA;GACAD,cAAAA;GACO8C,qBAAAA;GAAW,GAC1BuC;GACI/C;GACA,QAAAkD;GAKDxB;GAZT,UAAA,CAcE0B,KAQAC,GAtBU;;EAiCEjC,EAAA,MAAA0B;EAAA1B,EAAA,MAAAZ;EAAAY,EAAA,MAAAM;EAAAN,EAAA,MAAApB;EAAAoB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA8B;EAAA9B,EAAA,MAAAgC;EAAAhC,EAAA,MAAAiC;EAAAjC,EAAA,MAAAmC;EAAAnC,EAAA,MAAAoC;EAAApC,EAAA,MAAAkC;CAAA,OAAAA,MAAAlC,EAAA;CAAA,IAAAqC;CAAA,IAAArC,EAAA,QAAAuB,MAAAvB,EAAA,QAAAkC,OAAAlC,EAAA,QAAAwB,IAAA;EAlChBa,MAAA,oBAAC,IAAD;GAAyB,OAAAb;GACvBU,UAAAA;EADe,CAAA;EAmCElC,EAAA,MAAAuB;EAAAvB,EAAA,MAAAkC;EAAAlC,EAAA,MAAAwB;EAAAxB,EAAA,MAAAqC;CAAA,OAAAA,MAAArC,EAAA;CAAA,IAAAsC;CAAA,IAAAtC,EAAA,QAAAsB,MAAAtB,EAAA,QAAAT,cAAAS,EAAA,QAAAa,WAAAb,EAAA,QAAAqC,KAAA;EApCrBC,MAAA,oBAAC,IAAD;GAAsB/C;GAAkBsB,MAAAA;GACtCwB,UAAAA;EADO,CAAA;EAqCErC,EAAA,MAAAsB;EAAAtB,EAAA,MAAAT;EAAAS,EAAA,MAAAa;EAAAb,EAAA,MAAAqC;EAAArC,EAAA,MAAAsC;CAAA,OAAAA,MAAAtC,EAAA;CAAA,IAAAuC;CAAA,IAAAvC,EAAA,QAAAqB,MAAArB,EAAA,QAAApD,QAAAoD,EAAA,QAAAH,UAAAG,EAAA,QAAAsC,KAAA;EAtCbC,MAAA,oBAAC,IAAD;GAAoB3F;GAAciD;GAChCyC,UAAAA;EADW,CAAA;EAuCEtC,EAAA,MAAAqB;EAAArB,EAAA,MAAApD;EAAAoD,EAAA,MAAAH;EAAAG,EAAA,MAAAsC;EAAAtC,EAAA,MAAAuC;CAAA,OAAAA,MAAAvC,EAAA;CAAA,IAAAwC;CAAA,IAAAxC,EAAA,QAAAoB,MAAApB,EAAA,QAAAuC,KAAA;EAxCjBC,MAAA,oBAAC,IAAD,EAAA,UACED,IADiB,CAAA;EAyCEvC,EAAA,MAAAoB;EAAApB,EAAA,MAAAuC;EAAAvC,EAAA,MAAAwC;CAAA,OAAAA,MAAAxC,EAAA;CAAA,OAzCrBwC;AAyCqB"}
|
|
1
|
+
{"version":3,"file":"Root.js","names":["BASE_STYLES","BaseProps","BLOCK_STYLES","configure","filterBaseProps","setGlobalPredefinedStates","tasty","TastyBatchProvider","useEffect","useLayoutEffect","useRef","useState","ModalProvider","I18nProvider","Provider","NavigationAdapter","TrackingProps","TrackingProvider","PaletteConfig","setPaletteConfig","EventBusProvider","AMBIENT_PREDEFINED_STATES","extractStyles","TASTY_VERSION","VERSION","GlobalStyles","AlertDialogApiProvider","OverlayProvider","PortalProvider","i18n","I18nInstance","batchInjection","units","x","r","cr","bw","ow","recipes","reset","margin","padding","border","outline","boxSizing","button","appearance","touchAction","textDecoration","fill","color","cursor","disabled","input","wordSpacing","caretColor","shadow","preset","hide","RootElement","id","styles","display","STYLES","CubeRootProps","tokens","key","palette","bodyStyles","fontDisplay","fonts","publicUrl","navigation","font","monospaceFont","applyLegacyTokens","tracking","cursorStrategy","locale","Root","allProps","$","_c","children","t0","_applyLegacyTokens","t1","style","props","undefined","t2","t3","t4","ref","rootRef","setRootRef","t5","current","t6","Symbol","for","T0","T1","T2","T3","t7","event","T4","t10","eventProps","t11","t12","$pointer","t13","t14","t15","t8","t9","t16","t17","t18","t19","_c","I18nProvider"],"sources":["../../src/components/Root.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n BaseProps,\n BLOCK_STYLES,\n configure,\n filterBaseProps,\n setGlobalPredefinedStates,\n tasty,\n TastyBatchProvider,\n} from '@tenphi/tasty';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { ModalProvider } from 'react-aria';\n\nimport { I18nProvider } from '../i18n/I18nProvider';\nimport { Provider } from '../provider';\nimport { NavigationAdapter } from '../providers/navigation.types';\nimport { TrackingProps, TrackingProvider } from '../providers/TrackingProvider';\nimport { PaletteConfig, setPaletteConfig } from '../tokens/palette-config';\nimport { EventBusProvider } from '../utils/react/useEventBus';\nimport { AMBIENT_PREDEFINED_STATES } from '../utils/react/useScheme';\nimport { extractStyles } from '../utils/styles';\nimport { TASTY_VERSION, VERSION } from '../version';\n\nimport { GlobalStyles } from './GlobalStyles';\nimport { AlertDialogApiProvider } from './overlays/AlertDialog/AlertDialogApiProvider';\nimport { OverlayProvider } from './overlays/Notifications/OverlayProvider';\nimport { PortalProvider } from './portal/PortalProvider';\n\nimport type { i18n as I18nInstance } from 'i18next';\n\n// Color-scheme aliases for the Glaze-generated palette (see `src/tokens/palette.ts`).\n// Attribute opt-in wins over system preference:\n// <html data-scheme=\"dark\"> → forces the dark scheme\n// <html data-contrast=\"high\"> → forces the high-contrast scheme\n// Otherwise falls back to the user's `prefers-color-scheme` / `prefers-contrast`.\n// `@reduced-motion`, registered beside them, follows `prefers-reduced-motion:\n// reduce` alone.\n//\n// The strings live in `useScheme.ts`, which also reads the same two conditions\n// from JS (`useScheme()` / `useHighContrast()`) — one definition, so the CSS and\n// the JS answers cannot drift apart.\nsetGlobalPredefinedStates(AMBIENT_PREDEFINED_STATES);\n\nconfigure({\n // Collapse the kit's stylesheet writes into one style invalidation per commit\n // instead of one per component. Only takes effect inside a\n // `<TastyBatchProvider>` window, and windows have to be opened per portal\n // boundary because a commit that mounts a portal does not re-render `<Root>`.\n // The kit opens three: here, in `<Portal>` (tooltips, Select and\n // ListBoxPopover lists, notifications, AlertDialogZone) and in `<Overlay>`\n // (popovers, modals, trays — i.e. Dialog and Menu). Writes in any commit\n // without a window go straight through exactly as before, so a\n // `useLayoutEffect` can never measure an element whose rules have not landed.\n batchInjection: true,\n units: {\n x: 'var(--gap)',\n r: 'var(--radius)',\n cr: 'var(--card-radius)',\n bw: 'var(--border-width)',\n ow: 'var(--outline-width)',\n },\n recipes: {\n reset: {\n margin: 0,\n padding: 0,\n border: 0,\n outline: 0,\n boxSizing: 'border-box',\n },\n button: {\n appearance: 'none',\n touchAction: 'manipulation',\n textDecoration: 'none',\n '-webkit-tap-highlight-color': 'transparent',\n fill: '#clear',\n color: 'inherit',\n cursor: {\n '': 'default',\n ':is(a)': 'pointer',\n ':is(button)': '$pointer',\n disabled: 'not-allowed',\n },\n },\n input: {\n appearance: 'none',\n wordSpacing: 'initial',\n color: 'inherit',\n fill: '#clear',\n },\n 'input-autofill': {\n '@autofill': ':-webkit-autofill | :autofill',\n appearance: {\n '@autofill': 'none',\n },\n '-webkit-text-fill-color': {\n '': 'currentColor',\n '@autofill': '#primary-text',\n },\n caretColor: {\n '@autofill': '#primary-text',\n },\n shadow: {\n '@autofill': '0 0 0 9999rem #surface inset',\n },\n preset: {\n '@autofill': 'inherit',\n },\n '-webkit-opacity': {\n '': false,\n '[disabled]': '1',\n },\n },\n 'input-placeholder': {\n '-webkit-text-fill-color': '#placeholder',\n color: '#placeholder',\n },\n 'input-search-cancel-button': {\n hide: true,\n appearance: 'none',\n },\n },\n});\n\nconst RootElement = tasty({\n id: 'cube-ui-kit-root',\n styles: {\n display: 'contents',\n color: '#dark-02',\n preset: 't3',\n },\n});\n\nconst STYLES = [...BASE_STYLES, ...BLOCK_STYLES];\n\nexport interface CubeRootProps extends BaseProps {\n tokens?: { [key: string]: string };\n /**\n * Tune the generated color palette. Every zone — `accent`, `base` and each status\n * theme — takes the same seed: a color, or `{ hue, saturation }`. Plus the global\n * `surfaceMode`, `pastel` and `contrastLevel`. Omitted fields take their default, so\n * this prop describes the whole palette and dropping a field from it drops the\n * customization.\n *\n * Removing the prop entirely is the one thing that does *not* reset the\n * palette, so `<Root>` with no `palette` cannot clobber a host's imperative\n * `setPaletteConfig()` call. Pass `{}` to ask for the default.\n *\n * The first mount applies it during render, so the first paint is already\n * tuned; a later change applies in a layout effect, before paint.\n *\n * The palette is global process state, so this is a declarative wrapper over\n * `setPaletteConfig()`; both drive the same store, and the last write wins.\n * Root's layout effect runs after its descendants' in the same commit, so a\n * descendant's `setPaletteConfig()` from a layout effect in that commit loses\n * to the prop; write from a passive effect or an event handler instead.\n * See `Getting Started/Theming` in Storybook.\n */\n palette?: PaletteConfig;\n bodyStyles?: { [key: string]: string };\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n fonts?: boolean;\n publicUrl?: string;\n navigation?: NavigationAdapter;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via GlobalStyles */\n applyLegacyTokens?: boolean;\n tracking?: TrackingProps;\n cursorStrategy?: 'web' | 'native';\n /**\n * i18next instance for this tree. During SSR, pass a request-local instance\n * created with `createUIKitI18n(locale)`.\n */\n i18n?: I18nInstance;\n /** Override the React Aria formatting locale. */\n locale?: string;\n}\n\nexport function Root(allProps: CubeRootProps) {\n let {\n children,\n /** Raw css styles for body element */\n bodyStyles,\n fontDisplay = 'swap',\n fonts,\n publicUrl,\n navigation,\n font,\n monospaceFont,\n applyLegacyTokens: _applyLegacyTokens, // deprecated, ignored\n tracking,\n cursorStrategy = 'web',\n style,\n tokens,\n palette,\n i18n,\n locale,\n ...props\n } = allProps;\n\n // The first mount applies the palette during render, so the first paint and\n // SSR output already use it and `GlobalStyles` below reads it directly. A lazy\n // initializer runs once per mount, which React Compiler preserves; a `useMemo`\n // compiles to a call on every render. A later change waits for the layout\n // effect: a write notifies every palette subscriber, and React rejects\n // updating another component while this one renders. Updates from a layout\n // effect still land before paint. `setPaletteConfig` is a no-op when the\n // resolved config is unchanged, so the effect's mount pass, an inline object\n // literal and StrictMode's double calls cost nothing.\n //\n // A `<Root>` that mounts while another tree already subscribes, with a\n // different palette, still notifies that tree during its first render.\n useState(() => {\n if (palette) setPaletteConfig(palette);\n });\n\n useLayoutEffect(() => {\n if (palette) setPaletteConfig(palette);\n }, [palette]);\n\n const ref = useRef(null);\n\n const [rootRef, setRootRef] = useState();\n\n useEffect(() => {\n if (!rootRef) {\n // @ts-ignore\n setRootRef(ref?.current);\n }\n }, []);\n\n const styles = extractStyles(props, STYLES);\n\n return (\n <TastyBatchProvider>\n <I18nProvider i18n={i18n} locale={locale}>\n <Provider navigation={navigation} root={rootRef}>\n <TrackingProvider event={tracking?.event}>\n <RootElement\n ref={ref}\n data-uikit={VERSION}\n data-tasty={TASTY_VERSION}\n data-font-display={fontDisplay}\n {...filterBaseProps(props, { eventProps: true })}\n styles={styles}\n tokens={{\n $pointer: cursorStrategy === 'web' ? 'pointer' : 'default',\n ...tokens,\n }}\n // oxlint-disable-next-line tasty/no-style-prop -- forwards the consumer's public `style` prop\n style={style}\n >\n <GlobalStyles\n bodyStyles={bodyStyles}\n publicUrl={publicUrl}\n fonts={fonts}\n font={font}\n monospaceFont={monospaceFont}\n fontDisplay={fontDisplay}\n />\n <ModalProvider>\n <PortalProvider value={ref}>\n <EventBusProvider>\n <OverlayProvider>\n <AlertDialogApiProvider>\n {children}\n </AlertDialogApiProvider>\n </OverlayProvider>\n </EventBusProvider>\n </PortalProvider>\n </ModalProvider>\n </RootElement>\n </TrackingProvider>\n </Provider>\n </I18nProvider>\n </TastyBatchProvider>\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.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useAction } from "../use-action.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.208.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { Item as _Item } from "../../content/Item/Item.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Banner.js","names":["IconAlertTriangle","IconCircleCheck","IconExclamationCircle","IconInfoCircle","IconX","tasty","ReactNode","useEvent","useI18n","CubeItemProps","Item","Button","CubeButtonProps","CubeItemActionProps","BannerTheme","BannerProps","Omit","theme","isDismissable","onDismiss","BannerActionProps","BannerLinkProps","DEFAULT_ICONS","Record","danger","warning","note","success","BannerElement","styles","width","Description","textOverflow","whiteSpace","Actions","gap","BannerActionElement","Action","type","preset","BannerLinkElement","size","color","textDecoration","BannerAction","props","$","_c","t0","BannerLink","Banner","t","actions","children","icon","rest","t1","undefined","t2","onDismissEvent","defaultIcon","hasActions","t3","t4","t5","Link","Item","_c"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n // Decorative: the banner's text carries the message.\n danger: <IconExclamationCircle aria-hidden=\"true\" />,\n warning: <IconAlertTriangle aria-hidden=\"true\" />,\n note: <IconInfoCircle aria-hidden=\"true\" />,\n success: <IconCircleCheck aria-hidden=\"true\" />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\n// `current.outline` — the `current` theme on `Item.Action`, given the outlined\n// shape rather than the borderless default.\n//\n// `current` is the right color source: a banner labels itself `#white` in both\n// schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so the action mixes\n// its chip, border and label from that white — label cr 4.3-5.0 against every\n// banner theme, with the chip a subtle 1.06 off the banner. That is what an\n// action on a saturated surface should be: the banner carries the emphasis, the\n// button just has to be findable.\n//\n// `outline` rather than `Item.Action`'s `clear` default because a banner action\n// is a call to action, and `clear` paints nothing at rest — on a busy banner it\n// reads as body text until hovered. The `#current.08` border is what makes it a\n// button, which is why the old `border: '#clear'` override had to go: it was\n// written when `outline` meant `note.outline` and friends, whose border is the\n// opaque `#note-border` — a pale line built for a `#surface-2` chip on a light\n// page and plainly wrong on a saturated banner. On the `current` theme the\n// border IS the chip, and the 3% fill cannot carry one alone.\n//\n// `type=\"primary\"` is deliberately not used. It would fill with the inherited\n// white and punch `#current-fill` out of it, which defaults to `#surface` —\n// white in light mode, so the label would collapse into its own chip. A banner\n// that wants a filled action has to set `#current-fill` to its own surface\n// color; see `CURRENT_PRIMARY_STYLES` in `item-themes`.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = DEFAULT_ICONS[theme];\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Banner.js","names":["IconAlertTriangle","IconCircleCheck","IconExclamationCircle","IconInfoCircle","IconX","tasty","ReactNode","useEvent","useI18n","CubeItemProps","Item","Button","CubeButtonProps","CubeItemActionProps","BannerTheme","BannerProps","Omit","theme","isDismissable","onDismiss","BannerActionProps","BannerLinkProps","DEFAULT_ICONS","Record","danger","warning","note","success","BannerElement","styles","width","Description","textOverflow","whiteSpace","Actions","gap","BannerActionElement","Action","type","preset","BannerLinkElement","size","color","textDecoration","BannerAction","props","$","_c","t0","BannerLink","Banner","t","actions","children","icon","rest","t1","undefined","t2","onDismissEvent","defaultIcon","hasActions","t3","t4","t5","Link","Item","_c"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n/useI18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n // Decorative: the banner's text carries the message.\n danger: <IconExclamationCircle aria-hidden=\"true\" />,\n warning: <IconAlertTriangle aria-hidden=\"true\" />,\n note: <IconInfoCircle aria-hidden=\"true\" />,\n success: <IconCircleCheck aria-hidden=\"true\" />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\n// `current.outline` — the `current` theme on `Item.Action`, given the outlined\n// shape rather than the borderless default.\n//\n// `current` is the right color source: a banner labels itself `#white` in both\n// schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so the action mixes\n// its chip, border and label from that white — label cr 4.3-5.0 against every\n// banner theme, with the chip a subtle 1.06 off the banner. That is what an\n// action on a saturated surface should be: the banner carries the emphasis, the\n// button just has to be findable.\n//\n// `outline` rather than `Item.Action`'s `clear` default because a banner action\n// is a call to action, and `clear` paints nothing at rest — on a busy banner it\n// reads as body text until hovered. The `#current.08` border is what makes it a\n// button, which is why the old `border: '#clear'` override had to go: it was\n// written when `outline` meant `note.outline` and friends, whose border is the\n// opaque `#note-border` — a pale line built for a `#surface-2` chip on a light\n// page and plainly wrong on a saturated banner. On the `current` theme the\n// border IS the chip, and the 3% fill cannot carry one alone.\n//\n// `type=\"primary\"` is deliberately not used. It would fill with the inherited\n// white and punch `#current-fill` out of it, which defaults to `#surface` —\n// white in light mode, so the label would collapse into its own chip. A banner\n// that wants a filled action has to set `#current-fill` to its own surface\n// color; see `CURRENT_PRIMARY_STYLES` in `item-themes`.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = DEFAULT_ICONS[theme];\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { CubeTooltipProviderProps } from "../../overlays/Tooltip/TooltipProvider.js";
|
|
3
3
|
import { DynamicIcon } from "../../../utils/react/resolveIcon.js";
|
|
4
|
-
import "../../../utils/react/index.js";
|
|
5
4
|
import { CubeActionProps } from "../Action/Action.js";
|
|
6
5
|
import { Mods, Styles } from "@tenphi/tasty";
|
|
7
6
|
import { Placement } from "react-aria";
|
|
@@ -26,6 +25,16 @@ export interface CubeButtonProps extends CubeActionProps {
|
|
|
26
25
|
type?: 'primary' | 'danger' | 'link' | 'clear' | 'outline' | 'outline-2' | (string & {});
|
|
27
26
|
theme?: 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | 'current' | (string & {});
|
|
28
27
|
size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number | (string & {});
|
|
28
|
+
/**
|
|
29
|
+
* Corner shape, named as on `Item`:
|
|
30
|
+
* - `button` - The button radius (`1r`, default)
|
|
31
|
+
* - `card` - The card radius (`1cr`), for a button laid out as a card
|
|
32
|
+
* - `sharp` - Square corners, for a button that fills a row or cell edge to edge
|
|
33
|
+
* - `pill` - Fully rounded ends (`round`); a single-icon button becomes a circle
|
|
34
|
+
*
|
|
35
|
+
* A `link` button and the joined edges inside a `Button.Split` keep their own radius.
|
|
36
|
+
*/
|
|
37
|
+
shape?: 'button' | 'card' | 'sharp' | 'pill';
|
|
29
38
|
/**
|
|
30
39
|
* Tooltip content and configuration:
|
|
31
40
|
* - string: simple tooltip text
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
4
|
-
import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
|
|
5
|
-
import { useDismissParentPopover } from "../../../utils/react/usePopoverSync.js";
|
|
6
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
7
|
-
import { resolveIcon } from "../../../utils/react/resolveIcon.js";
|
|
8
|
-
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
9
|
-
import { useIsFirstRender } from "../../../_internal/hooks/use-is-first-render.js";
|
|
10
5
|
import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
|
|
11
6
|
import { useAutoTooltip } from "../../content/use-auto-tooltip.js";
|
|
12
7
|
import { CURRENT_CLEAR_STYLES, CURRENT_LINK_STYLES, CURRENT_OUTLINE_2_STYLES, CURRENT_OUTLINE_STYLES, CURRENT_PRIMARY_STYLES, DANGER_CLEAR_STYLES, DANGER_LINK_STYLES, DANGER_OUTLINE_2_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_LINK_STYLES, DEFAULT_OUTLINE_2_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, NOTE_CLEAR_STYLES, NOTE_LINK_STYLES, NOTE_OUTLINE_2_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_LINK_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_LINK_STYLES, SUCCESS_OUTLINE_2_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CLEAR_STYLES, WARNING_LINK_STYLES, WARNING_OUTLINE_2_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
|
|
13
8
|
import { LoadingIcon } from "../../../icons/LoadingIcon.js";
|
|
9
|
+
import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
|
|
14
10
|
import { mergeTooltipFocusProps } from "../../overlays/Tooltip/split-trigger-props.js";
|
|
11
|
+
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
15
12
|
import { useAction } from "../use-action.js";
|
|
13
|
+
import { resolveIcon } from "../../../utils/react/resolveIcon.js";
|
|
16
14
|
import { IconSwitch } from "../../helpers/IconSwitch/IconSwitch.js";
|
|
15
|
+
import { useIsFirstRender } from "../../../_internal/hooks/use-is-first-render.js";
|
|
16
|
+
import { useDismissParentPopover } from "../../../utils/react/usePopoverSync.js";
|
|
17
17
|
import { useButtonSplitContext } from "../ButtonSplit/context.js";
|
|
18
18
|
import { CONTAINER_STYLES, TEXT_STYLES, mergeStyles, tasty } from "@tenphi/tasty";
|
|
19
19
|
import { Children, forwardRef, isValidElement, useMemo, useRef, useState } from "react";
|
|
@@ -76,6 +76,9 @@ const DEFAULT_BUTTON_STYLES = {
|
|
|
76
76
|
whiteSpace: "nowrap",
|
|
77
77
|
radius: {
|
|
78
78
|
"": true,
|
|
79
|
+
"shape=card": "1cr",
|
|
80
|
+
"shape=sharp": 0,
|
|
81
|
+
"shape=pill": "round",
|
|
79
82
|
"type=link & !focused": 0,
|
|
80
83
|
"@parent(button-split, >) & !:last-child": "1r left",
|
|
81
84
|
"@parent(button-split, >) & !:first-child": "1r right",
|
|
@@ -83,7 +86,8 @@ const DEFAULT_BUTTON_STYLES = {
|
|
|
83
86
|
},
|
|
84
87
|
margin: {
|
|
85
88
|
"": 0,
|
|
86
|
-
"@parent(button-split, >) & !:first-child & (type=outline | type=outline-2
|
|
89
|
+
"@parent(button-split, >) & !:first-child & (type=outline | type=outline-2)": "-1bw left",
|
|
90
|
+
"@parent(button-split, >) & !:first-child & type=primary": "1bw left"
|
|
87
91
|
},
|
|
88
92
|
zIndex: {
|
|
89
93
|
"@parent(button-split, >) & :hover": 1,
|
|
@@ -202,7 +206,7 @@ const ButtonElement = tasty({
|
|
|
202
206
|
});
|
|
203
207
|
const Button = forwardRef(function Button(allProps, ref) {
|
|
204
208
|
const splitContext = useButtonSplitContext();
|
|
205
|
-
let { type, size: sizeProp, label, children, theme = splitContext?.theme ?? "default", icon: iconProp, rightIcon: rightIconProp, mods, download, tooltip = true, defaultTooltipPlacement = "top", onPress: userOnPress, tokens, ...props } = allProps;
|
|
209
|
+
let { type, size: sizeProp, shape, label, children, theme = splitContext?.theme ?? "default", icon: iconProp, rightIcon: rightIconProp, mods, download, tooltip = true, defaultTooltipPlacement = "top", onPress: userOnPress, tokens, ...props } = allProps;
|
|
206
210
|
type = type ?? splitContext?.type;
|
|
207
211
|
const size = sizeProp ?? splitContext?.size ?? (type === "link" ? "inline" : "medium");
|
|
208
212
|
const isExplicitlyDisabled = splitContext?.isDisabled || props.isDisabled;
|
|
@@ -331,6 +335,7 @@ const Button = forwardRef(function Button(allProps, ref) {
|
|
|
331
335
|
"data-theme": theme,
|
|
332
336
|
"data-type": effectiveType ?? "outline",
|
|
333
337
|
"data-size": size,
|
|
338
|
+
"data-shape": shape === "button" ? void 0 : shape,
|
|
334
339
|
"data-popover-dismiss": "",
|
|
335
340
|
styles,
|
|
336
341
|
tokens: {
|