@cube-dev/ui-kit 0.207.0 → 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 +12 -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 +0 -1
- package/dist/components/actions/Button/Button.js +8 -7
- 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 +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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-context-menu.js","names":["Pressable","tasty","ComponentProps","ComponentType","createRef","MouseEvent","PointerEvent","ReactElement","RefObject","useEffect","useMemo","useRef","useState","VisuallyHidden","createPortal","useEvent","useI18n","generateRandomId","mergeProps","usePopoverSync","MenuTrigger","ContextMenuHostElement","qa","styles","position","inset","width","height","ContextMenuAnchorElement","as","left","top","lineHeight","pointerEvents","visibility","NativeMouseEvent","globalThis","NativePointerEvent","UseContextMenuReturn","HTMLElement","targetRef","E","open","props","P","triggerProps","T","event","update","close","isOpen","rendered","useContextMenu","Component","defaultTriggerProps","Omit","defaultMenuProps","t","setIsOpen","runtimeProps","setRuntimeProps","setTriggerProps","anchorPosition","setAnchorPosition","x","y","invisibleAnchorRef","HTMLSpanElement","popoverRef","HTMLDivElement","setupRef","el","current","dataset","popoverTrigger","menuId","onClose","triggerRef","containerRef","setupCheck","Error","calculatePosition","clientX","clientY","container","rect","getBoundingClientRect","computedStyle","window","getComputedStyle","style","preventDefault","onContextMenu","pos","undefined","element","addEventListener","removeEventListener","renderedMenu","componentProps","document","body","placement","MenuTrigger","mergeProps"],"sources":["../../../src/components/actions/use-context-menu.tsx"],"sourcesContent":["import { Pressable } from '@react-aria/interactions';\nimport { tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n ComponentType,\n createRef,\n MouseEvent,\n PointerEvent,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { VisuallyHidden } from 'react-aria';\nimport { createPortal } from 'react-dom';\n\nimport { useEvent } from '../../_internal';\nimport { useI18n } from '../../i18n';\nimport { generateRandomId } from '../../utils/random';\nimport { mergeProps } from '../../utils/react';\nimport { usePopoverSync } from '../../utils/react/usePopoverSync';\n\nimport { MenuTrigger } from './Menu';\n\n// A zero-size `fixed` host, so the anchor's coordinates are viewport ones.\nconst ContextMenuHostElement = tasty({\n qa: 'ContextMenuHost',\n styles: {\n position: 'fixed',\n inset: '0 auto auto 0',\n width: 0,\n height: 0,\n },\n});\n\n// Invisible anchor at the pointer's coordinates.\nconst ContextMenuAnchorElement = tasty({\n as: 'span',\n qa: 'ContextMenuAnchor',\n styles: {\n position: 'absolute',\n left: '$anchor-x',\n top: '$anchor-y',\n width: 0,\n height: 0,\n lineHeight: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n});\n\ntype NativeMouseEvent = globalThis.MouseEvent;\ntype NativePointerEvent = globalThis.PointerEvent;\n\nexport interface UseContextMenuReturn<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n> {\n /** Container element that receives context menu events. Attach this ref to your target element. */\n targetRef: RefObject<E | null>;\n\n /**\n * Programmatically opens the menu at the specified coordinates or element center.\n * Runtime props are merged with the CURRENT `defaultMenuProps` on every render\n * (runtime props take precedence), so defaults that change while the menu is\n * open reach it without an `update()` call.\n *\n * @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)\n * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)\n * @param event - The pointer/mouse event containing coordinates for positioning (optional, centers on element if not provided)\n */\n open(\n props?: P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ): void;\n\n /**\n * Updates the RUNTIME props of the currently open menu without repositioning.\n * Props are merged over the current `defaultMenuProps`. Only needed for props\n * the caller owns — `defaultMenuProps` is re-read on every render.\n */\n update(props: P, triggerProps?: T): void;\n\n /** Closes the menu programmatically. */\n close(): void;\n\n /** Current open/closed state of the menu. */\n isOpen: boolean;\n\n /**\n * JSX element that must be rendered in your component tree.\n * Contains the MenuTrigger and positioning logic.\n * IMPORTANT: Must be placed directly inside the target container (the element with targetRef).\n */\n get rendered(): ReactElement | null;\n}\n\n/**\n * Generic hook to manage a context menu component that opens at pointer coordinates.\n *\n * @param Component - A React component that represents the menu content (Menu or CommandMenu).\n * @param defaultTriggerProps - Default props to pass to the MenuTrigger.\n * @param defaultMenuProps - Default props to pass to the Menu component.\n * @returns An object with `targetRef` to attach to the container element, `open` function to open the menu at event coordinates, `close` function to close the menu, and `rendered` JSX element to include in your component tree.\n */\nexport function useContextMenu<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n>(\n Component: ComponentType<P>,\n defaultTriggerProps?: Omit<\n ComponentProps<typeof MenuTrigger>,\n 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'\n >,\n defaultMenuProps?: P,\n): UseContextMenuReturn<E, P, T> {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n /**\n * The props the CALLER passed to `open()`/`update()`, on their own — never\n * pre-merged with `defaultMenuProps`.\n *\n * Merging at open time snapshotted the defaults, so a consumer that keeps its\n * menu content IN the defaults (`Tree`'s row menu does: `children` is part of\n * the third argument) had a menu that was frozen the moment it opened. Items\n * appearing, disappearing or flipping `isDisabled` while it was open stayed\n * invisible until it was closed and reopened, and the only workaround was to\n * mirror every render into an `update()` call. Keeping the overrides alone\n * lets the merge happen at RENDER time, against the current defaults, while\n * runtime props still win.\n */\n const [runtimeProps, setRuntimeProps] = useState<P | null>(null);\n const [triggerProps, setTriggerProps] = useState<T | null>(null);\n const [anchorPosition, setAnchorPosition] = useState<{\n x: number;\n y: number;\n } | null>(null);\n const targetRef = useRef<E>(null);\n // Moving a zero-size anchor does not fire ResizeObserver. A fresh ref for\n // each point makes MenuTrigger refresh its positioning and observation while\n // keeping the menu itself mounted, including its current focus and selection.\n const invisibleAnchorRef = useMemo(\n () => createRef<HTMLSpanElement>(),\n [anchorPosition],\n );\n const popoverRef = useRef<HTMLDivElement>(null);\n const setupRef = useRef(false);\n\n // Mark the container as a popover trigger so that other open menus' close-on-\n // outside predicates treat clicks inside it (including programmatic\n // open buttons rendered alongside a context-menu target) as a legitimate\n // trigger interaction instead of a generic outside click. This mirrors the\n // pattern in `useAnchoredMenu`.\n useEffect(() => {\n const el = targetRef.current;\n if (el) {\n el.dataset.popoverTrigger = '';\n return () => {\n delete el.dataset.popoverTrigger;\n };\n }\n }, []);\n\n // Generate a unique ID for this menu instance\n const menuId = useMemo(() => generateRandomId(), []);\n\n // Feed both the context-menu target (`triggerRef`) and the popover\n // container (`containerRef`) into the sync. The container ref is shared with\n // the rendered `MenuTrigger` via its `popoverRef` prop — the dummy\n // `MenuTrigger` opts out of `usePopoverSync` (`enabled: !isDummy`), so\n // without this the nested-popover guard would have no container to match\n // against and a `SubMenuTrigger` opened inside this menu would close the\n // whole menu.\n usePopoverSync({\n menuId,\n isOpen,\n onClose: () => {\n setIsOpen(false);\n setAnchorPosition(null);\n },\n triggerRef: targetRef as RefObject<HTMLElement | null>,\n containerRef: popoverRef,\n });\n\n function setupCheck() {\n if (!setupRef.current) {\n throw new Error(\n 'useContextMenu: MenuTrigger must be rendered. Use `rendered` property to include it in your component tree.',\n );\n }\n }\n\n /**\n * Where to put the invisible anchor, in **viewport** coordinates.\n *\n * Viewport rather than container-relative on purpose. The anchor is rendered\n * into a fixed-position host pinned to the viewport origin (see\n * `renderedMenu`), so the two agree by construction. Computing coordinates\n * against the target element while the anchor's containing block was\n * whichever positioned ancestor happened to enclose `rendered` is what used\n * to open the menu one ancestor-origin away from the pointer.\n */\n const calculatePosition = (\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n if (event) {\n const { clientX = 0, clientY = 0 } = event;\n\n return { x: clientX, y: clientY };\n }\n\n // No event — a keyboard opening, which has no coordinates. Anchor on the\n // target element's centre instead.\n const container = targetRef.current;\n\n if (!container) return { x: 0, y: 0 };\n\n const rect = container.getBoundingClientRect();\n\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n };\n\n // 'open' accepts props, trigger props, and optional event for positioning, then opens the menu\n const open = useEvent(\n (\n props: P = {} as P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n setupCheck();\n\n // Ensure the target element can serve as a positioning context for the\n // invisible target element. If the consumer hasn't explicitly set\n // `position: relative | absolute | fixed | sticky` we switch it to\n // `relative` so that absolutely-positioned children are laid out correctly.\n if (targetRef.current) {\n const computedStyle = window.getComputedStyle(targetRef.current);\n\n if (computedStyle.position === 'static') {\n targetRef.current.style.position = 'relative';\n }\n }\n\n // Prevent default context menu if it's a context menu event\n if (\n event &&\n 'preventDefault' in event &&\n typeof event.preventDefault === 'function'\n ) {\n event.preventDefault();\n }\n\n const { x, y } = calculatePosition(event);\n setAnchorPosition({ x, y });\n\n // Overrides only — `defaultMenuProps` is merged in on render.\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n setIsOpen(true);\n },\n );\n\n const update = useEvent((props: P, triggerProps?: T) => {\n setupCheck();\n\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n });\n\n const close = useEvent(() => {\n setIsOpen(false);\n setAnchorPosition(null);\n });\n\n // Context menu event handler\n const onContextMenu = useEvent(\n (event: MouseEvent | PointerEvent | MouseEvent | PointerEvent) => {\n event.preventDefault();\n if (isOpen) {\n const pos = calculatePosition(event);\n setAnchorPosition(pos);\n } else {\n // No overrides: the defaults are merged in on every render, so\n // passing them here would freeze the version this right-click saw.\n open(undefined, undefined, event);\n }\n },\n );\n\n // Bind the onContextMenu event to targetRef\n useEffect(() => {\n const element = targetRef.current;\n if (!element) return;\n\n element.addEventListener('contextmenu', onContextMenu as any);\n\n return () => {\n element.removeEventListener('contextmenu', onContextMenu as any);\n };\n }, [onContextMenu]);\n\n // Render the menu only when it has been opened at least once\n const renderedMenu = useMemo(() => {\n if (!runtimeProps || !anchorPosition) return null;\n\n // Merged here rather than at open time, so the defaults an open menu\n // renders are the CURRENT ones. Runtime props still take precedence.\n const componentProps = defaultMenuProps\n ? { ...defaultMenuProps, ...runtimeProps }\n : runtimeProps;\n\n return (\n <>\n {/*\n Invisible anchor at the click coordinates.\n\n Two things make those coordinates mean what they say:\n\n 1. A `fixed` host, so the containing block's origin is the viewport\n rather than whichever positioned ancestor encloses `rendered` — the\n table root, the tree row — which is what used to open the menu one\n ancestor-origin away from the pointer.\n 2. A portal to `body`, because `position: fixed` is captured by any\n ancestor carrying a transform, filter or `will-change`. A\n virtualized row is usually translated, so the `fixed` host alone\n would still be anchored to the row.\n */}\n {createPortal(\n <ContextMenuHostElement>\n <ContextMenuAnchorElement\n ref={invisibleAnchorRef}\n tokens={{\n '$anchor-x': `${anchorPosition.x}px`,\n '$anchor-y': `${anchorPosition.y}px`,\n }}\n />\n </ContextMenuHostElement>,\n document.body,\n )}\n <MenuTrigger\n offset={0}\n placement={\n (triggerProps as ComponentProps<typeof MenuTrigger>)?.placement ||\n defaultTriggerProps?.placement ||\n 'bottom start'\n }\n {...mergeProps(defaultTriggerProps, triggerProps || undefined)}\n isDummy\n isOpen={isOpen}\n targetRef={invisibleAnchorRef}\n popoverRef={popoverRef}\n onOpenChange={setIsOpen}\n >\n <VisuallyHidden>\n <Pressable>\n <button\n aria-label={t(\n 'contextMenu.openContextMenu',\n 'Open context menu',\n )}\n />\n </Pressable>\n </VisuallyHidden>\n <Component {...componentProps} />\n </MenuTrigger>\n </>\n );\n }, [\n runtimeProps,\n defaultMenuProps,\n triggerProps,\n isOpen,\n defaultTriggerProps,\n anchorPosition,\n invisibleAnchorRef,\n t,\n ]);\n\n return {\n targetRef,\n open,\n update,\n close,\n isOpen,\n get rendered() {\n setupRef.current = true;\n\n return renderedMenu;\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-context-menu.js","names":["Pressable","tasty","ComponentProps","ComponentType","createRef","MouseEvent","PointerEvent","ReactElement","RefObject","useEffect","useMemo","useRef","useState","VisuallyHidden","createPortal","useEvent","useI18n","generateRandomId","mergeProps","usePopoverSync","MenuTrigger","ContextMenuHostElement","qa","styles","position","inset","width","height","ContextMenuAnchorElement","as","left","top","lineHeight","pointerEvents","visibility","NativeMouseEvent","globalThis","NativePointerEvent","UseContextMenuReturn","HTMLElement","targetRef","E","open","props","P","triggerProps","T","event","update","close","isOpen","rendered","useContextMenu","Component","defaultTriggerProps","Omit","defaultMenuProps","t","setIsOpen","runtimeProps","setRuntimeProps","setTriggerProps","anchorPosition","setAnchorPosition","x","y","invisibleAnchorRef","HTMLSpanElement","popoverRef","HTMLDivElement","setupRef","el","current","dataset","popoverTrigger","menuId","onClose","triggerRef","containerRef","setupCheck","Error","calculatePosition","clientX","clientY","container","rect","getBoundingClientRect","computedStyle","window","getComputedStyle","style","preventDefault","onContextMenu","pos","undefined","element","addEventListener","removeEventListener","renderedMenu","componentProps","document","body","placement","MenuTrigger","mergeProps"],"sources":["../../../src/components/actions/use-context-menu.tsx"],"sourcesContent":["import { Pressable } from '@react-aria/interactions';\nimport { tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n ComponentType,\n createRef,\n MouseEvent,\n PointerEvent,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { VisuallyHidden } from 'react-aria';\nimport { createPortal } from 'react-dom';\n\nimport { useEvent } from '../../_internal/hooks/use-event';\nimport { useI18n } from '../../i18n/useI18n';\nimport { generateRandomId } from '../../utils/random';\nimport { mergeProps } from '../../utils/react/mergeProps';\nimport { usePopoverSync } from '../../utils/react/usePopoverSync';\n\nimport { MenuTrigger } from './Menu/MenuTrigger';\n\n// A zero-size `fixed` host, so the anchor's coordinates are viewport ones.\nconst ContextMenuHostElement = tasty({\n qa: 'ContextMenuHost',\n styles: {\n position: 'fixed',\n inset: '0 auto auto 0',\n width: 0,\n height: 0,\n },\n});\n\n// Invisible anchor at the pointer's coordinates.\nconst ContextMenuAnchorElement = tasty({\n as: 'span',\n qa: 'ContextMenuAnchor',\n styles: {\n position: 'absolute',\n left: '$anchor-x',\n top: '$anchor-y',\n width: 0,\n height: 0,\n lineHeight: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n});\n\ntype NativeMouseEvent = globalThis.MouseEvent;\ntype NativePointerEvent = globalThis.PointerEvent;\n\nexport interface UseContextMenuReturn<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n> {\n /** Container element that receives context menu events. Attach this ref to your target element. */\n targetRef: RefObject<E | null>;\n\n /**\n * Programmatically opens the menu at the specified coordinates or element center.\n * Runtime props are merged with the CURRENT `defaultMenuProps` on every render\n * (runtime props take precedence), so defaults that change while the menu is\n * open reach it without an `update()` call.\n *\n * @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)\n * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)\n * @param event - The pointer/mouse event containing coordinates for positioning (optional, centers on element if not provided)\n */\n open(\n props?: P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ): void;\n\n /**\n * Updates the RUNTIME props of the currently open menu without repositioning.\n * Props are merged over the current `defaultMenuProps`. Only needed for props\n * the caller owns — `defaultMenuProps` is re-read on every render.\n */\n update(props: P, triggerProps?: T): void;\n\n /** Closes the menu programmatically. */\n close(): void;\n\n /** Current open/closed state of the menu. */\n isOpen: boolean;\n\n /**\n * JSX element that must be rendered in your component tree.\n * Contains the MenuTrigger and positioning logic.\n * IMPORTANT: Must be placed directly inside the target container (the element with targetRef).\n */\n get rendered(): ReactElement | null;\n}\n\n/**\n * Generic hook to manage a context menu component that opens at pointer coordinates.\n *\n * @param Component - A React component that represents the menu content (Menu or CommandMenu).\n * @param defaultTriggerProps - Default props to pass to the MenuTrigger.\n * @param defaultMenuProps - Default props to pass to the Menu component.\n * @returns An object with `targetRef` to attach to the container element, `open` function to open the menu at event coordinates, `close` function to close the menu, and `rendered` JSX element to include in your component tree.\n */\nexport function useContextMenu<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n>(\n Component: ComponentType<P>,\n defaultTriggerProps?: Omit<\n ComponentProps<typeof MenuTrigger>,\n 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'\n >,\n defaultMenuProps?: P,\n): UseContextMenuReturn<E, P, T> {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n /**\n * The props the CALLER passed to `open()`/`update()`, on their own — never\n * pre-merged with `defaultMenuProps`.\n *\n * Merging at open time snapshotted the defaults, so a consumer that keeps its\n * menu content IN the defaults (`Tree`'s row menu does: `children` is part of\n * the third argument) had a menu that was frozen the moment it opened. Items\n * appearing, disappearing or flipping `isDisabled` while it was open stayed\n * invisible until it was closed and reopened, and the only workaround was to\n * mirror every render into an `update()` call. Keeping the overrides alone\n * lets the merge happen at RENDER time, against the current defaults, while\n * runtime props still win.\n */\n const [runtimeProps, setRuntimeProps] = useState<P | null>(null);\n const [triggerProps, setTriggerProps] = useState<T | null>(null);\n const [anchorPosition, setAnchorPosition] = useState<{\n x: number;\n y: number;\n } | null>(null);\n const targetRef = useRef<E>(null);\n // Moving a zero-size anchor does not fire ResizeObserver. A fresh ref for\n // each point makes MenuTrigger refresh its positioning and observation while\n // keeping the menu itself mounted, including its current focus and selection.\n const invisibleAnchorRef = useMemo(\n () => createRef<HTMLSpanElement>(),\n [anchorPosition],\n );\n const popoverRef = useRef<HTMLDivElement>(null);\n const setupRef = useRef(false);\n\n // Mark the container as a popover trigger so that other open menus' close-on-\n // outside predicates treat clicks inside it (including programmatic\n // open buttons rendered alongside a context-menu target) as a legitimate\n // trigger interaction instead of a generic outside click. This mirrors the\n // pattern in `useAnchoredMenu`.\n useEffect(() => {\n const el = targetRef.current;\n if (el) {\n el.dataset.popoverTrigger = '';\n return () => {\n delete el.dataset.popoverTrigger;\n };\n }\n }, []);\n\n // Generate a unique ID for this menu instance\n const menuId = useMemo(() => generateRandomId(), []);\n\n // Feed both the context-menu target (`triggerRef`) and the popover\n // container (`containerRef`) into the sync. The container ref is shared with\n // the rendered `MenuTrigger` via its `popoverRef` prop — the dummy\n // `MenuTrigger` opts out of `usePopoverSync` (`enabled: !isDummy`), so\n // without this the nested-popover guard would have no container to match\n // against and a `SubMenuTrigger` opened inside this menu would close the\n // whole menu.\n usePopoverSync({\n menuId,\n isOpen,\n onClose: () => {\n setIsOpen(false);\n setAnchorPosition(null);\n },\n triggerRef: targetRef as RefObject<HTMLElement | null>,\n containerRef: popoverRef,\n });\n\n function setupCheck() {\n if (!setupRef.current) {\n throw new Error(\n 'useContextMenu: MenuTrigger must be rendered. Use `rendered` property to include it in your component tree.',\n );\n }\n }\n\n /**\n * Where to put the invisible anchor, in **viewport** coordinates.\n *\n * Viewport rather than container-relative on purpose. The anchor is rendered\n * into a fixed-position host pinned to the viewport origin (see\n * `renderedMenu`), so the two agree by construction. Computing coordinates\n * against the target element while the anchor's containing block was\n * whichever positioned ancestor happened to enclose `rendered` is what used\n * to open the menu one ancestor-origin away from the pointer.\n */\n const calculatePosition = (\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n if (event) {\n const { clientX = 0, clientY = 0 } = event;\n\n return { x: clientX, y: clientY };\n }\n\n // No event — a keyboard opening, which has no coordinates. Anchor on the\n // target element's centre instead.\n const container = targetRef.current;\n\n if (!container) return { x: 0, y: 0 };\n\n const rect = container.getBoundingClientRect();\n\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n };\n\n // 'open' accepts props, trigger props, and optional event for positioning, then opens the menu\n const open = useEvent(\n (\n props: P = {} as P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n setupCheck();\n\n // Ensure the target element can serve as a positioning context for the\n // invisible target element. If the consumer hasn't explicitly set\n // `position: relative | absolute | fixed | sticky` we switch it to\n // `relative` so that absolutely-positioned children are laid out correctly.\n if (targetRef.current) {\n const computedStyle = window.getComputedStyle(targetRef.current);\n\n if (computedStyle.position === 'static') {\n targetRef.current.style.position = 'relative';\n }\n }\n\n // Prevent default context menu if it's a context menu event\n if (\n event &&\n 'preventDefault' in event &&\n typeof event.preventDefault === 'function'\n ) {\n event.preventDefault();\n }\n\n const { x, y } = calculatePosition(event);\n setAnchorPosition({ x, y });\n\n // Overrides only — `defaultMenuProps` is merged in on render.\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n setIsOpen(true);\n },\n );\n\n const update = useEvent((props: P, triggerProps?: T) => {\n setupCheck();\n\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n });\n\n const close = useEvent(() => {\n setIsOpen(false);\n setAnchorPosition(null);\n });\n\n // Context menu event handler\n const onContextMenu = useEvent(\n (event: MouseEvent | PointerEvent | MouseEvent | PointerEvent) => {\n event.preventDefault();\n if (isOpen) {\n const pos = calculatePosition(event);\n setAnchorPosition(pos);\n } else {\n // No overrides: the defaults are merged in on every render, so\n // passing them here would freeze the version this right-click saw.\n open(undefined, undefined, event);\n }\n },\n );\n\n // Bind the onContextMenu event to targetRef\n useEffect(() => {\n const element = targetRef.current;\n if (!element) return;\n\n element.addEventListener('contextmenu', onContextMenu as any);\n\n return () => {\n element.removeEventListener('contextmenu', onContextMenu as any);\n };\n }, [onContextMenu]);\n\n // Render the menu only when it has been opened at least once\n const renderedMenu = useMemo(() => {\n if (!runtimeProps || !anchorPosition) return null;\n\n // Merged here rather than at open time, so the defaults an open menu\n // renders are the CURRENT ones. Runtime props still take precedence.\n const componentProps = defaultMenuProps\n ? { ...defaultMenuProps, ...runtimeProps }\n : runtimeProps;\n\n return (\n <>\n {/*\n Invisible anchor at the click coordinates.\n\n Two things make those coordinates mean what they say:\n\n 1. A `fixed` host, so the containing block's origin is the viewport\n rather than whichever positioned ancestor encloses `rendered` — the\n table root, the tree row — which is what used to open the menu one\n ancestor-origin away from the pointer.\n 2. A portal to `body`, because `position: fixed` is captured by any\n ancestor carrying a transform, filter or `will-change`. A\n virtualized row is usually translated, so the `fixed` host alone\n would still be anchored to the row.\n */}\n {createPortal(\n <ContextMenuHostElement>\n <ContextMenuAnchorElement\n ref={invisibleAnchorRef}\n tokens={{\n '$anchor-x': `${anchorPosition.x}px`,\n '$anchor-y': `${anchorPosition.y}px`,\n }}\n />\n </ContextMenuHostElement>,\n document.body,\n )}\n <MenuTrigger\n offset={0}\n placement={\n (triggerProps as ComponentProps<typeof MenuTrigger>)?.placement ||\n defaultTriggerProps?.placement ||\n 'bottom start'\n }\n {...mergeProps(defaultTriggerProps, triggerProps || undefined)}\n isDummy\n isOpen={isOpen}\n targetRef={invisibleAnchorRef}\n popoverRef={popoverRef}\n onOpenChange={setIsOpen}\n >\n <VisuallyHidden>\n <Pressable>\n <button\n aria-label={t(\n 'contextMenu.openContextMenu',\n 'Open context menu',\n )}\n />\n </Pressable>\n </VisuallyHidden>\n <Component {...componentProps} />\n </MenuTrigger>\n </>\n );\n }, [\n runtimeProps,\n defaultMenuProps,\n triggerProps,\n isOpen,\n defaultTriggerProps,\n anchorPosition,\n invisibleAnchorRef,\n t,\n ]);\n\n return {\n targetRef,\n open,\n update,\n close,\n isOpen,\n get rendered() {\n setupRef.current = true;\n\n return renderedMenu;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.208.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveZone.js","names":["useFocusableRef","BaseProps","BaseStyleProps","CONTAINER_STYLES","ContainerStyleProps","Element","filterBaseProps","Styles","TEXT_STYLES","TextStyleProps","forwardRef","MouseEventHandler","FocusableOptions","useFocusable","useHover","
|
|
1
|
+
{"version":3,"file":"ActiveZone.js","names":["useFocusableRef","BaseProps","BaseStyleProps","CONTAINER_STYLES","ContainerStyleProps","Element","filterBaseProps","Styles","TEXT_STYLES","TextStyleProps","forwardRef","MouseEventHandler","FocusableOptions","useFocusable","useHover","useFocus","mergeProps","extractStyles","CubeActiveZoneProps","label","onClick","DEFAULT_STYLES","display","position","opacity","disabled","transition","const","STYLE_PROPS","ActiveZone","t0","ref","$","_c","as","isDisabled","props","t1","styles","domRef","t2","hoverProps","isHovered","focusProps","isFocused","focusableProps","t3","t4","t5","t6","eventProps","t7","excludeFromTabOrder","t8","_ActiveZone","displayName","_c","useFocus","mergeProps"],"sources":["../../../../src/components/content/ActiveZone/ActiveZone.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\n BaseStyleProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Element,\n filterBaseProps,\n Styles,\n TEXT_STYLES,\n TextStyleProps,\n} from '@tenphi/tasty';\nimport { forwardRef, MouseEventHandler } from 'react';\nimport { FocusableOptions, useFocusable, useHover } from 'react-aria';\n\nimport { useFocus } from '../../../utils/react/interactions';\nimport { mergeProps } from '../../../utils/react/mergeProps';\nimport { extractStyles } from '../../../utils/styles';\n\nexport interface CubeActiveZoneProps\n extends\n BaseProps,\n BaseStyleProps,\n ContainerStyleProps,\n TextStyleProps,\n FocusableOptions {\n label?: string;\n onClick?: MouseEventHandler;\n}\n\nconst DEFAULT_STYLES: Styles = {\n display: 'inline-grid',\n position: 'relative',\n opacity: {\n '': 1,\n disabled: 0.4,\n },\n transition: 'theme',\n} as const;\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nfunction ActiveZone(\n { as, label, onClick, ...props }: CubeActiveZoneProps,\n ref,\n) {\n const isDisabled = props.isDisabled;\n const styles = extractStyles(props, STYLE_PROPS, DEFAULT_STYLES);\n const domRef = useFocusableRef(ref);\n\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let { focusProps, isFocused } = useFocus();\n let { focusableProps } = useFocusable(props, domRef);\n\n return (\n <Element\n data-hovered={isHovered && !isDisabled ? '' : null}\n data-focused={isFocused && !isDisabled ? '' : null}\n data-disabled={isDisabled || null}\n aria-label={label}\n {...mergeProps(\n hoverProps,\n focusProps,\n focusableProps,\n { onClick },\n filterBaseProps(props, { eventProps: true }),\n )}\n ref={domRef}\n tabIndex={props.excludeFromTabOrder || isDisabled ? -1 : 0}\n as={as}\n styles={styles}\n />\n );\n}\n\nconst _ActiveZone = forwardRef(ActiveZone);\n\n_ActiveZone.displayName = 'ActiveZone';\n\nexport { _ActiveZone as ActiveZone };\n"],"mappings":";;;;;;;;;;;AA8BA,MAAMqB,iBAAyB;CAC7BC,SAAS;CACTC,UAAU;CACVC,SAAS;EACP,IAAI;EACJC,UAAU;CACZ;CACAC,YAAY;AACd;AAEA,MAAME,cAAc,CAAC,GAAGzB,kBAAkB,GAAGK,WAAW;AAExD,SAAAqB,WAAAC,IAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAhB;CAAA,IAAAC;CAAA,IAAAgB;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAF,IAAA;EACE,CAAA,CAAAI,IAAAf,OAAAC,SAAA,GAAAgB,SAAAN;EAGAK,aAAmBC,MAAKD;EACTE,KAAApB,cAAcmB,OAAOR,aAAaP,cAAc;EAACW,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAb;EAAAa,EAAA,KAAAZ;EAAAY,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAH,KAAAF,EAAA;EAAAG,aAAAH,EAAA;EAAAb,QAAAa,EAAA;EAAAZ,UAAAY,EAAA;EAAAI,QAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAAhE,MAAAM,SAAeD;CACf,MAAAE,SAAevC,gBAAgB+B,GAAG;CAAE,IAAAS;CAAA,IAAAR,EAAA,OAAAG,YAAA;EAEKK,KAAA,EAAAL,WAAa;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAvD,MAAA,EAAAS,YAAAC,cAAgC5B,SAAS0B,EAAc;CACvD,MAAA,EAAAG,YAAAC,cAAgC7B,WAAS;CACzC,MAAA,EAAA8B,mBAAyBhC,aAAauB,OAAOG,MAAM;CAIjC,MAAAO,KAAAJ,aAAA,CAAcP,aAAd,KAAA;CACA,MAAAY,KAAAH,aAAA,CAAcT,aAAd,KAAA;CACC,MAAAa,KAAAb,cAAA;CAAkB,IAAAc;CAAA,IAAAjB,EAAA,OAAAW,cAAAX,EAAA,QAAAa,kBAAAb,EAAA,QAAAS,cAAAT,EAAA,QAAAZ,WAAAY,EAAA,QAAAI,OAAA;EAE7Ba,KAAAjC,aACFyB,YACAE,YACAE,gBACA,EAAAzB,QAAU,GACVd,gBAAgB8B,OAAO,EAAAc,YAAc,KAAK,CAAC,CAC7C;EAAClB,EAAA,KAAAW;EAAAX,EAAA,MAAAa;EAAAb,EAAA,MAAAS;EAAAT,EAAA,MAAAZ;EAAAY,EAAA,MAAAI;EAAAJ,EAAA,MAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAES,MAAAmB,KAAAf,MAAKgB,uBAALjB,aAAA,KAAA;CAAgD,IAAAkB;CAAA,IAAArB,EAAA,QAAAE,MAAAF,EAAA,QAAAO,UAAAP,EAAA,QAAAb,SAAAa,EAAA,QAAAM,UAAAN,EAAA,QAAAc,MAAAd,EAAA,QAAAe,MAAAf,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,MAAAjB,EAAA,QAAAmB,IAAA;EAb5DE,KAAA,oBAAC,SAAD;GACgB,gBAAAP;GACA,gBAAAC;GACC,iBAAAC;GACH7B,cAAAA;GAAK,GACb8B;GAOCV,KAAAA;GACK,UAAAY;GACNjB;GACII;EAAM,CAAA;EACdN,EAAA,MAAAE;EAAAF,EAAA,MAAAO;EAAAP,EAAA,MAAAb;EAAAa,EAAA,MAAAM;EAAAN,EAAA,MAAAc;EAAAd,EAAA,MAAAe;EAAAf,EAAA,MAAAgB;EAAAhB,EAAA,MAAAiB;EAAAjB,EAAA,MAAAmB;EAAAnB,EAAA,MAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAAA,OAhBFqB;AAgBE;AAIN,MAAMC,cAAc5C,WAAWmB,UAAU;AAEzCyB,YAAYC,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 themes_default from "../../../data/themes.js";
|
|
3
3
|
import { useAlert } from "./use-alert.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 { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useDeprecationWarning } from "../../../_internal/hooks/use-deprecation-warning.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-alert.js","names":["CONTAINER_STYLES","filterBaseProps","TEXT_STYLES","useDeprecationWarning","extractStyles","CubeAlertProps","STYLE_LIST","const","useAlert","props","$","_c","type","isDisabled","t0","theme","shape","t1","mods","undefined","t2","styles","t3","Symbol","for","property","name","betterAlternative","_theme","t4","_statusTheme","domProps","t5","filteredProps","eventProps","_c"],"sources":["../../../../src/components/content/Alert/use-alert.ts"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, TEXT_STYLES } from '@tenphi/tasty';\n\nimport { useDeprecationWarning } from '../../../_internal';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { CubeAlertProps } from './types';\n\nconst STYLE_LIST = [...CONTAINER_STYLES, ...TEXT_STYLES] as const;\n\nexport function useAlert(props: CubeAlertProps) {\n const { type, isDisabled = false, theme, shape = 'card', mods } = props;\n\n const styles = extractStyles(props, STYLE_LIST);\n\n useDeprecationWarning(typeof type === 'undefined', {\n property: 'type',\n name: 'Alert',\n betterAlternative: 'theme',\n });\n\n const _theme = isDisabled ? 'disabled' : (theme ?? type ?? 'note');\n\n // `theme` is the kit's status theme, rendered through the `type` mod. Tasty's\n // `filterBaseProps` keeps its own `theme` prop and renders it as\n // `data-theme`, so it comes out before filtering.\n const { theme: _statusTheme, ...domProps } = props;\n\n return {\n styles,\n mods: {\n shape,\n type: _theme,\n ...mods,\n },\n filteredProps: filterBaseProps(domProps, { eventProps: true }),\n };\n}\n"],"mappings":";;;;;;AAOA,MAAMM,aAAa,CAAC,GAAGN,kBAAkB,GAAGE,WAAW;AAEvD,SAAOM,SAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAC,MAAAC,YAAAC,IAAAC,OAAAC,OAAAC,IAAAC,SAAkET;CAApD,MAAAI,aAAAC,OAAAK,KAAAA,IAAA,QAAAL;CAA2B,MAAAE,QAAAC,OAAAE,KAAAA,IAAA,SAAAF;CAAc,IAAAG;CAAA,IAAAV,EAAA,OAAAD,OAAA;EAExCW,KAAAhB,cAAcK,OAAOH,UAAU;EAACI,EAAA,KAAAD;EAAAC,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAA/C,MAAAW,SAAeD;CAAiC,IAAAE;CAAA,IAAAZ,EAAA,OAAAa,OAAAC,IAAA,2BAAA,GAAA;EAEGF,KAAA;GAAAG,UACvC;GAAMC,MACV;GAAOC,mBACM;EACrB;EAACjB,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAJDP,sBAAsB,OAAOS,SAAS,aAAaU,EAIlD;CAED,MAAAM,SAAef,aAAA,aAA2BE,SAAAH,QAAA;CAAyB,IAAAiB;CAAA,IAAAnB,EAAA,OAAAkB,UAAAlB,EAAA,OAAAQ,QAAAR,EAAA,OAAAD,SAAAC,EAAA,OAAAM,SAAAN,EAAA,OAAAW,QAAA;EAKnE,MAAA,EAAAN,OAAAe,cAAA,GAAAC,aAA6CtB;EAAM,IAAAuB;EAAA,IAAAtB,EAAA,OAAAkB,UAAAlB,EAAA,QAAAQ,QAAAR,EAAA,QAAAM,OAAA;GAI3CgB,KAAA;IAAAhB;IAAAJ,MAEEgB;IAAM,GACTV;GACL;GAACR,EAAA,KAAAkB;GAAAlB,EAAA,MAAAQ;GAAAR,EAAA,MAAAM;GAAAN,EAAA,MAAAsB;EAAA,OAAAA,KAAAtB,EAAA;EANImB,KAAA;GAAAR;GAAAH,MAECc;GAILC,eACchC,gBAAgB8B,UAAU,EAAAG,YAAc,KAAK,CAAC;EAC/D;EAACxB,EAAA,KAAAkB;EAAAlB,EAAA,KAAAQ;EAAAR,EAAA,KAAAD;EAAAC,EAAA,KAAAM;EAAAN,EAAA,KAAAW;EAAAX,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OARMmB;AAQN"}
|
|
1
|
+
{"version":3,"file":"use-alert.js","names":["CONTAINER_STYLES","filterBaseProps","TEXT_STYLES","useDeprecationWarning","extractStyles","CubeAlertProps","STYLE_LIST","const","useAlert","props","$","_c","type","isDisabled","t0","theme","shape","t1","mods","undefined","t2","styles","t3","Symbol","for","property","name","betterAlternative","_theme","t4","_statusTheme","domProps","t5","filteredProps","eventProps","_c"],"sources":["../../../../src/components/content/Alert/use-alert.ts"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, TEXT_STYLES } from '@tenphi/tasty';\n\nimport { useDeprecationWarning } from '../../../_internal/hooks/use-deprecation-warning';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { CubeAlertProps } from './types';\n\nconst STYLE_LIST = [...CONTAINER_STYLES, ...TEXT_STYLES] as const;\n\nexport function useAlert(props: CubeAlertProps) {\n const { type, isDisabled = false, theme, shape = 'card', mods } = props;\n\n const styles = extractStyles(props, STYLE_LIST);\n\n useDeprecationWarning(typeof type === 'undefined', {\n property: 'type',\n name: 'Alert',\n betterAlternative: 'theme',\n });\n\n const _theme = isDisabled ? 'disabled' : (theme ?? type ?? 'note');\n\n // `theme` is the kit's status theme, rendered through the `type` mod. Tasty's\n // `filterBaseProps` keeps its own `theme` prop and renders it as\n // `data-theme`, so it comes out before filtering.\n const { theme: _statusTheme, ...domProps } = props;\n\n return {\n styles,\n mods: {\n shape,\n type: _theme,\n ...mods,\n },\n filteredProps: filterBaseProps(domProps, { eventProps: true }),\n };\n}\n"],"mappings":";;;;;;AAOA,MAAMM,aAAa,CAAC,GAAGN,kBAAkB,GAAGE,WAAW;AAEvD,SAAOM,SAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAC,MAAAC,YAAAC,IAAAC,OAAAC,OAAAC,IAAAC,SAAkET;CAApD,MAAAI,aAAAC,OAAAK,KAAAA,IAAA,QAAAL;CAA2B,MAAAE,QAAAC,OAAAE,KAAAA,IAAA,SAAAF;CAAc,IAAAG;CAAA,IAAAV,EAAA,OAAAD,OAAA;EAExCW,KAAAhB,cAAcK,OAAOH,UAAU;EAACI,EAAA,KAAAD;EAAAC,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAA/C,MAAAW,SAAeD;CAAiC,IAAAE;CAAA,IAAAZ,EAAA,OAAAa,OAAAC,IAAA,2BAAA,GAAA;EAEGF,KAAA;GAAAG,UACvC;GAAMC,MACV;GAAOC,mBACM;EACrB;EAACjB,EAAA,KAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAJDP,sBAAsB,OAAOS,SAAS,aAAaU,EAIlD;CAED,MAAAM,SAAef,aAAA,aAA2BE,SAAAH,QAAA;CAAyB,IAAAiB;CAAA,IAAAnB,EAAA,OAAAkB,UAAAlB,EAAA,OAAAQ,QAAAR,EAAA,OAAAD,SAAAC,EAAA,OAAAM,SAAAN,EAAA,OAAAW,QAAA;EAKnE,MAAA,EAAAN,OAAAe,cAAA,GAAAC,aAA6CtB;EAAM,IAAAuB;EAAA,IAAAtB,EAAA,OAAAkB,UAAAlB,EAAA,QAAAQ,QAAAR,EAAA,QAAAM,OAAA;GAI3CgB,KAAA;IAAAhB;IAAAJ,MAEEgB;IAAM,GACTV;GACL;GAACR,EAAA,KAAAkB;GAAAlB,EAAA,MAAAQ;GAAAR,EAAA,MAAAM;GAAAN,EAAA,MAAAsB;EAAA,OAAAA,KAAAtB,EAAA;EANImB,KAAA;GAAAR;GAAAH,MAECc;GAILC,eACchC,gBAAgB8B,UAAU,EAAAG,YAAc,KAAK,CAAC;EAC/D;EAACxB,EAAA,KAAAkB;EAAAlB,EAAA,KAAAQ;EAAAR,EAAA,KAAAD;EAAAC,EAAA,KAAAM;EAAAN,EAAA,KAAAW;EAAAX,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OARMmB;AAQN"}
|
|
@@ -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, Element, filterBaseProps } from "@tenphi/tasty";
|
|
@@ -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 { Item as _Item } from "../Item/Item.js";
|
|
3
3
|
import themes_default from "../../../data/themes.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","names":["tasty","forwardRef","THEMES","CubeItemProps","Item","FILL_STYLES","Object","keys","reduce","map","type","fill","color","BadgeElement","qa","role","size","styles","radius","preset","border","overflow","Label","textAlign","placeSelf","CubeBadgeProps","theme","Badge","allProps","ref","$","_c","children","props","t0","t1","undefined","badgeTheme","t2","_Badge","displayName","THEMES","Item","_c"],"sources":["../../../../src/components/content/Badge/Badge.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport THEMES from '../../../data/themes';\nimport { CubeItemProps, Item } from '../Item';\n\nconst FILL_STYLES = Object.keys(THEMES).reduce((map, type) => {\n map[`theme=${type}`] =\n type === 'special' ? THEMES[type].fill : THEMES[type].color;\n\n return map;\n}, {});\n\nconst BadgeElement = tasty(Item, {\n qa: 'Badge',\n role: 'status',\n size: 'inline',\n styles: {\n radius: 'round',\n color: {\n '': '#white',\n // Every other theme fills with a fixed accent; `disabled` fills with the\n // adaptive `#surface-text-soft-2`, which turns light in dark, so its label\n // flips with it (a fixed `#white` fell to 3.59:1 there).\n 'theme=disabled': '#surface',\n },\n fill: {\n '': '#primary',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme fill states generated from THEMES, not a shared base; the plugin can't lint the generated map either way, so it stays in one place\n ...FILL_STYLES,\n },\n preset: {\n '': 'tag',\n 'size=xsmall': 't4',\n 'size=small | size=medium': 't3',\n 'size=large | size=xlarge': 't2',\n },\n border: {\n // extend\n 'type=primary': '#clear',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.5x',\n },\n\n // Same squeeze as Tag's: keep the label's end-padding box after the icon\n // and clip what passes the edge, unless end content zeroes that padding.\n overflow: { '': 'clip', 'has-end-content': 'visible' },\n\n Label: {\n textAlign: 'center',\n placeSelf: 'center stretch',\n },\n },\n});\n\nexport interface CubeBadgeProps extends CubeItemProps {\n /* @deprecated Use theme instead */\n type?: keyof typeof THEMES | string;\n theme?: keyof typeof THEMES | string;\n}\n\nfunction Badge(allProps: CubeBadgeProps, ref) {\n let {\n type,\n theme = 'special',\n children,\n size = 'inline',\n ...props\n } = allProps;\n\n const badgeTheme = theme ?? type;\n\n return (\n <BadgeElement\n ref={ref}\n size={size}\n data-type=\"primary\"\n data-theme={badgeTheme}\n {...props}\n >\n {children}\n </BadgeElement>\n );\n}\n\nconst _Badge = forwardRef(Badge);\n\n_Badge.displayName = 'Badge';\n\nexport { _Badge as Badge };\n"],"mappings":";;;;;;;;AAMA,MAAMK,cAAcC,OAAOC,KAAKL,cAAM,CAAC,CAACM,QAAQC,KAAKC,SAAS;CAC5DD,IAAI,SAASC,UACXA,SAAS,YAAYR,eAAOQ,KAAK,CAACC,OAAOT,eAAOQ,KAAK,CAACE;CAExD,OAAOH;AACT,GAAG,CAAC,CAAC;AAEL,MAAMI,eAAeb,MAAMI,OAAM;CAC/BU,IAAI;CACJC,MAAM;CACNC,MAAM;CACNC,QAAQ;EACNC,QAAQ;EACRN,OAAO;GACL,IAAI;GAIJ,kBAAkB;EACpB;EACAD,MAAM;GACJ,IAAI;GAEJ,GAAGN;EACL;EACAc,QAAQ;GACN,IAAI;GACJ,eAAe;GACf,4BAA4B;GAC5B,4BAA4B;EAC9B;EACAC,QAAQ,EAEN,gBAAgB,SAClB;EAEA,mBAAmB;GACjB,IAAI;GACJ,eAAe;EACjB;EAIAC,UAAU;GAAE,IAAI;GAAQ,mBAAmB;EAAU;EAErDC,OAAO;GACLC,WAAW;GACXC,WAAW;EACb;CACF;AACF,CAAC;AAQD,SAAAG,MAAAC,UAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAzB;CAAA,IAAAoB,EAAA,OAAAF,UAAA;EACE,CAAA,CAAAlB,MAAAgB,OAAAQ,IAAAF,UAAAhB,MAAAmB,IAAA,GAAAF,SAMIL;EAASE,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAApB;CAAA,OAAA;EAAAsB,WAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAApB,OAAAoB,EAAA;CAAA;CAJX,MAAAJ,QAAAQ,OAAAE,KAAAA,IAAA,YAAAF;CAEA,MAAAlB,OAAAmB,OAAAC,KAAAA,IAAA,WAAAD;CAIF,MAAAE,aAAmBX,SAAAhB;CAAc,IAAA4B;CAAA,IAAAR,EAAA,OAAAO,cAAAP,EAAA,OAAAE,YAAAF,EAAA,OAAAG,SAAAH,EAAA,OAAAD,OAAAC,EAAA,QAAAd,MAAA;EAG/BsB,KAAA,oBAAC,cAAD;GACOT;GACCb;GACI,aAAA;GACEqB,cAAAA;GAAU,GAClBJ;GAEHD;EAPU,CAAA;EAQEF,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAD;EAAAC,EAAA,MAAAd;EAAAc,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OARfQ;AAQe;AAInB,MAAMC,SAAStC,WAAW0B,KAAK;AAE/BY,OAAOC,cAAc"}
|
|
1
|
+
{"version":3,"file":"Badge.js","names":["tasty","forwardRef","THEMES","CubeItemProps","Item","FILL_STYLES","Object","keys","reduce","map","type","fill","color","BadgeElement","qa","role","size","styles","radius","preset","border","overflow","Label","textAlign","placeSelf","CubeBadgeProps","theme","Badge","allProps","ref","$","_c","children","props","t0","t1","undefined","badgeTheme","t2","_Badge","displayName","THEMES","Item","_c"],"sources":["../../../../src/components/content/Badge/Badge.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport THEMES from '../../../data/themes';\nimport { CubeItemProps, Item } from '../Item/Item';\n\nconst FILL_STYLES = Object.keys(THEMES).reduce((map, type) => {\n map[`theme=${type}`] =\n type === 'special' ? THEMES[type].fill : THEMES[type].color;\n\n return map;\n}, {});\n\nconst BadgeElement = tasty(Item, {\n qa: 'Badge',\n role: 'status',\n size: 'inline',\n styles: {\n radius: 'round',\n color: {\n '': '#white',\n // Every other theme fills with a fixed accent; `disabled` fills with the\n // adaptive `#surface-text-soft-2`, which turns light in dark, so its label\n // flips with it (a fixed `#white` fell to 3.59:1 there).\n 'theme=disabled': '#surface',\n },\n fill: {\n '': '#primary',\n // eslint-disable-next-line tasty/no-style-spread -- per-theme fill states generated from THEMES, not a shared base; the plugin can't lint the generated map either way, so it stays in one place\n ...FILL_STYLES,\n },\n preset: {\n '': 'tag',\n 'size=xsmall': 't4',\n 'size=small | size=medium': 't3',\n 'size=large | size=xlarge': 't2',\n },\n border: {\n // extend\n 'type=primary': '#clear',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.5x',\n },\n\n // Same squeeze as Tag's: keep the label's end-padding box after the icon\n // and clip what passes the edge, unless end content zeroes that padding.\n overflow: { '': 'clip', 'has-end-content': 'visible' },\n\n Label: {\n textAlign: 'center',\n placeSelf: 'center stretch',\n },\n },\n});\n\nexport interface CubeBadgeProps extends CubeItemProps {\n /* @deprecated Use theme instead */\n type?: keyof typeof THEMES | string;\n theme?: keyof typeof THEMES | string;\n}\n\nfunction Badge(allProps: CubeBadgeProps, ref) {\n let {\n type,\n theme = 'special',\n children,\n size = 'inline',\n ...props\n } = allProps;\n\n const badgeTheme = theme ?? type;\n\n return (\n <BadgeElement\n ref={ref}\n size={size}\n data-type=\"primary\"\n data-theme={badgeTheme}\n {...props}\n >\n {children}\n </BadgeElement>\n );\n}\n\nconst _Badge = forwardRef(Badge);\n\n_Badge.displayName = 'Badge';\n\nexport { _Badge as Badge };\n"],"mappings":";;;;;;;;AAMA,MAAMK,cAAcC,OAAOC,KAAKL,cAAM,CAAC,CAACM,QAAQC,KAAKC,SAAS;CAC5DD,IAAI,SAASC,UACXA,SAAS,YAAYR,eAAOQ,KAAK,CAACC,OAAOT,eAAOQ,KAAK,CAACE;CAExD,OAAOH;AACT,GAAG,CAAC,CAAC;AAEL,MAAMI,eAAeb,MAAMI,OAAM;CAC/BU,IAAI;CACJC,MAAM;CACNC,MAAM;CACNC,QAAQ;EACNC,QAAQ;EACRN,OAAO;GACL,IAAI;GAIJ,kBAAkB;EACpB;EACAD,MAAM;GACJ,IAAI;GAEJ,GAAGN;EACL;EACAc,QAAQ;GACN,IAAI;GACJ,eAAe;GACf,4BAA4B;GAC5B,4BAA4B;EAC9B;EACAC,QAAQ,EAEN,gBAAgB,SAClB;EAEA,mBAAmB;GACjB,IAAI;GACJ,eAAe;EACjB;EAIAC,UAAU;GAAE,IAAI;GAAQ,mBAAmB;EAAU;EAErDC,OAAO;GACLC,WAAW;GACXC,WAAW;EACb;CACF;AACF,CAAC;AAQD,SAAAG,MAAAC,UAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAzB;CAAA,IAAAoB,EAAA,OAAAF,UAAA;EACE,CAAA,CAAAlB,MAAAgB,OAAAQ,IAAAF,UAAAhB,MAAAmB,IAAA,GAAAF,SAMIL;EAASE,EAAA,KAAAF;EAAAE,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAApB;CAAA,OAAA;EAAAsB,WAAAF,EAAA;EAAAG,QAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;EAAApB,OAAAoB,EAAA;CAAA;CAJX,MAAAJ,QAAAQ,OAAAE,KAAAA,IAAA,YAAAF;CAEA,MAAAlB,OAAAmB,OAAAC,KAAAA,IAAA,WAAAD;CAIF,MAAAE,aAAmBX,SAAAhB;CAAc,IAAA4B;CAAA,IAAAR,EAAA,OAAAO,cAAAP,EAAA,OAAAE,YAAAF,EAAA,OAAAG,SAAAH,EAAA,OAAAD,OAAAC,EAAA,QAAAd,MAAA;EAG/BsB,KAAA,oBAAC,cAAD;GACOT;GACCb;GACI,aAAA;GACEqB,cAAAA;GAAU,GAClBJ;GAEHD;EAPU,CAAA;EAQEF,EAAA,KAAAO;EAAAP,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAD;EAAAC,EAAA,MAAAd;EAAAc,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OARfQ;AAQe;AAInB,MAAMC,SAAStC,WAAW0B,KAAK;AAE/BY,OAAOC,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 { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
|
|
@@ -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 { useSlotProps } from "../../utils/react/Slots.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","tasty","TEXT_STYLES","TextStyleProps","forwardRef","useSlotProps","extractStyles","STYLE_LIST","ContentElement","qa","as","styles","gridArea","preset","color","display","flow","gap","overflow","scrollbar","CubeContentProps","Content","props","ref","$","_c","t0","t1","eventProps","t2","_c"],"sources":["../../../src/components/content/Content.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n tasty,\n TEXT_STYLES,\n TextStyleProps,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../utils/react';\nimport { extractStyles } from '../../utils/styles';\n\nconst STYLE_LIST = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst ContentElement = tasty({\n qa: 'Content',\n // Stable where `qa` is not: `Dialog` finds its body by this to watch it for\n // overflow, and a consumer's own `qa` must not hide it.\n 'data-id': 'Content',\n as: 'section',\n styles: {\n gridArea: 'content',\n preset: 'p3',\n color: '#dark-02',\n display: 'block',\n flow: 'column',\n gap: '2x',\n overflow: 'auto',\n scrollbar: 'styled',\n },\n});\n\nexport interface CubeContentProps\n extends BaseProps, ContainerStyleProps, TextStyleProps {}\n\nexport const Content = forwardRef(function Content(\n props: CubeContentProps,\n ref,\n) {\n props = useSlotProps(props, 'content');\n\n const styles = extractStyles(props, STYLE_LIST);\n\n return (\n <ContentElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n"],"mappings":";;;;;;;;AAcA,MAAMU,aAAa,CAAC,GAAGT,kBAAkB,GAAGI,WAAW;AAEvD,MAAMM,iBAAiBP,MAAM;CAC3BQ,IAAI;CAGJ,WAAW;CACXC,IAAI;CACJC,QAAQ;EACNC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,UAAU;EACVC,WAAW;CACb;AACF,CAAC;AAKD,MAAaE,UAAUjB,WAAW,SAAAiB,QAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAIhCH,QAAQjB,aAAaiB,OAAO,SAAS;CAAhC,IAAAI;CAAA,IAAAF,EAAA,OAAAF,OAAA;EAEUI,KAAApB,cAAcgB,OAAOf,UAAU;EAACiB,EAAA,KAAAF;EAAAE,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAA/C,MAAAb,SAAee;CAAiC,IAAAC;CAAA,IAAAH,EAAA,OAAAF,OAAA;EAIxCK,KAAA3B,gBAAgBsB,OAAO,EAAAM,YAAc,KAAK,CAAC;EAACJ,EAAA,KAAAF;EAAAE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAD,OAAAC,EAAA,OAAAb,UAAAa,EAAA,OAAAG,IAAA;EADlDE,KAAA,oBAAC,gBAAD;GAAe,GACTF;GACCJ;GACGZ;EAAM,CAAA;EACda,EAAA,KAAAD;EAAAC,EAAA,KAAAb;EAAAa,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAJFK;AAIE,CAEL"}
|
|
1
|
+
{"version":3,"file":"Content.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","tasty","TEXT_STYLES","TextStyleProps","forwardRef","useSlotProps","extractStyles","STYLE_LIST","ContentElement","qa","as","styles","gridArea","preset","color","display","flow","gap","overflow","scrollbar","CubeContentProps","Content","props","ref","$","_c","t0","t1","eventProps","t2","_c"],"sources":["../../../src/components/content/Content.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n tasty,\n TEXT_STYLES,\n TextStyleProps,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../utils/react/Slots';\nimport { extractStyles } from '../../utils/styles';\n\nconst STYLE_LIST = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst ContentElement = tasty({\n qa: 'Content',\n // Stable where `qa` is not: `Dialog` finds its body by this to watch it for\n // overflow, and a consumer's own `qa` must not hide it.\n 'data-id': 'Content',\n as: 'section',\n styles: {\n gridArea: 'content',\n preset: 'p3',\n color: '#dark-02',\n display: 'block',\n flow: 'column',\n gap: '2x',\n overflow: 'auto',\n scrollbar: 'styled',\n },\n});\n\nexport interface CubeContentProps\n extends BaseProps, ContainerStyleProps, TextStyleProps {}\n\nexport const Content = forwardRef(function Content(\n props: CubeContentProps,\n ref,\n) {\n props = useSlotProps(props, 'content');\n\n const styles = extractStyles(props, STYLE_LIST);\n\n return (\n <ContentElement\n {...filterBaseProps(props, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n"],"mappings":";;;;;;;;AAcA,MAAMU,aAAa,CAAC,GAAGT,kBAAkB,GAAGI,WAAW;AAEvD,MAAMM,iBAAiBP,MAAM;CAC3BQ,IAAI;CAGJ,WAAW;CACXC,IAAI;CACJC,QAAQ;EACNC,UAAU;EACVC,QAAQ;EACRC,OAAO;EACPC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,UAAU;EACVC,WAAW;CACb;AACF,CAAC;AAKD,MAAaE,UAAUjB,WAAW,SAAAiB,QAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAIhCH,QAAQjB,aAAaiB,OAAO,SAAS;CAAhC,IAAAI;CAAA,IAAAF,EAAA,OAAAF,OAAA;EAEUI,KAAApB,cAAcgB,OAAOf,UAAU;EAACiB,EAAA,KAAAF;EAAAE,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAA/C,MAAAb,SAAee;CAAiC,IAAAC;CAAA,IAAAH,EAAA,OAAAF,OAAA;EAIxCK,KAAA3B,gBAAgBsB,OAAO,EAAAM,YAAc,KAAK,CAAC;EAACJ,EAAA,KAAAF;EAAAE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAA,IAAAK;CAAA,IAAAL,EAAA,OAAAD,OAAAC,EAAA,OAAAb,UAAAa,EAAA,OAAAG,IAAA;EADlDE,KAAA,oBAAC,gBAAD;GAAe,GACTF;GACCJ;GACGZ;EAAM,CAAA;EACda,EAAA,KAAAD;EAAAC,EAAA,KAAAb;EAAAa,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAJFK;AAIE,CAEL"}
|
|
@@ -1,11 +1,11 @@
|
|
|
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 { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
|
|
4
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
5
4
|
import { CopyIcon } from "../../../icons/CopyIcon.js";
|
|
6
|
-
import { Button } from "../../actions/
|
|
5
|
+
import { Button } from "../../actions/Button/Button.js";
|
|
7
6
|
import { useToast } from "../../overlays/Toast/useToast.js";
|
|
8
7
|
import { Card } from "../Card/Card.js";
|
|
8
|
+
import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
|
|
9
9
|
import { POSITION_STYLES, tasty } from "@tenphi/tasty";
|
|
10
10
|
import { forwardRef, useState } from "react";
|
|
11
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyPasteBlock.js","names":["POSITION_STYLES","PositionStyleProps","Styles","tasty","copy","ForwardedRef","forwardRef","ReactNode","useState","TextDropItem","useClipboard","useTimer","useI18n","CopyIcon","extractStyles","Button","useToast","Card","CubeCardProps","StyledBlock","styles","display","flow","placeContent","placeItems","gap","position","width","color","padding","userSelect","Label","whiteSpace","overflow","textOverflow","CopyPasteBlockElement","qa","fill","radius","error","border","cursor","preset","height","boxSizing","Grid","gridColumns","Shortcut","hide","CopyButton","type","icon","placeSelf","shadow","focused","outline","CubeCopyPasteBlockProps","Omit","value","placeholder","title","onPaste","text","Promise","onCopy","size","CopyPasteBlock","allProps","ref","HTMLDivElement","props","t","setError","toast","clipboardProps","items","pasted","all","filter","item","kind","types","has","map","getText","join","e","String","getItems","success","delay","callback","isDisabled","pristineValue","replace","_CopyPasteBlock","displayName"],"sources":["../../../../src/components/content/CopyPasteBlock/CopyPasteBlock.tsx"],"sourcesContent":["import {\n POSITION_STYLES,\n PositionStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ForwardedRef, forwardRef, ReactNode, useState } from 'react';\nimport { TextDropItem, useClipboard } from 'react-aria';\n\nimport { useTimer } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { CopyIcon } from '../../../icons/CopyIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions';\nimport { useToast } from '../../overlays/Toast';\nimport { Card, CubeCardProps } from '../Card/Card';\n\nconst StyledBlock = tasty({\n styles: {\n display: 'grid',\n flow: 'column',\n placeContent: 'center space-between',\n placeItems: 'center stretch',\n gap: '1x',\n position: 'relative',\n width: 'max 100%',\n color: 'inherit',\n padding: '0 1.5x',\n // height: {\n // '': '4.5x',\n // '[data-size=\"small\"]': '3.5x',\n // '[data-size=\"large\"]': '5.5x',\n // },\n userSelect: 'none',\n\n Label: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n },\n});\n\nconst CopyPasteBlockElement = tasty(Card, {\n qa: 'CopyPasteBlock',\n styles: {\n display: 'grid',\n fill: '#surface-2',\n radius: '1r',\n padding: {\n '': '0 1bw',\n ':focus': '0',\n },\n color: {\n '': '#dark',\n error: '#danger-text',\n },\n border: {\n '': 'dashed #dark-03',\n ':focus': '2bw dashed #primary-text',\n error: 'dashed #danger',\n },\n cursor: '$pointer',\n preset: {\n '': 't3',\n 'size=large': 't2',\n },\n height: {\n '': '5x',\n 'size=small': '4x',\n 'size=large': '6x',\n },\n boxSizing: 'border-box',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) min-content',\n placeContent: 'stretch',\n width: 'min 20x',\n radius: '1r',\n position: 'relative',\n },\n\n Shortcut: {\n display: 'inline',\n hide: {\n '': true,\n ':focus & !error': false,\n },\n },\n },\n});\n\nconst CopyButton = tasty(Button, {\n type: 'clear',\n icon: <CopyIcon />,\n styles: {\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': '0 0 0 1ow #purple-03.0 inset',\n focused: '0 0 0 1ow #purple-03 inset',\n },\n radius: {\n '': '0 1r 1r 0',\n 'multiline | has-scroll': '1r top-right',\n },\n height: 'auto',\n outline: false,\n },\n});\n\nexport interface CubeCopyPasteBlockProps\n extends Omit<CubeCardProps, 'onPaste' | 'onCopy'>, PositionStyleProps {\n padding?: Styles['padding'];\n /** The code snippet */\n value?: string;\n placeholder?: ReactNode;\n /** The title of the snippet */\n title?: string;\n onPaste?: (text: string) => void | Promise<void | string>;\n onCopy?: () => void;\n size?: 'small' | 'medium' | 'large';\n}\n\nfunction CopyPasteBlock(\n allProps: CubeCopyPasteBlockProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n value = '',\n onPaste,\n placeholder,\n title,\n size = 'medium',\n ...props\n } = allProps;\n const styles = extractStyles(props, POSITION_STYLES);\n\n const { t } = useI18n();\n const [error, setError] = useState<string | null>(null);\n const toast = useToast();\n\n const { clipboardProps } = useClipboard({\n async onPaste(items) {\n let pasted = await Promise.all(\n items\n .filter(\n (item) => item.kind === 'text' && item.types.has('text/plain'),\n )\n .map((item) => (item as TextDropItem).getText('text/plain')),\n );\n try {\n await onPaste?.(pasted.join('\\n'));\n } catch (e) {\n setError(String(e));\n }\n },\n getItems() {\n return value\n ? [\n {\n 'text/plain': value,\n },\n ]\n : [];\n },\n onCopy() {\n if (value) {\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n },\n });\n\n useTimer({\n delay: 1000,\n callback() {\n setError(null);\n },\n isDisabled: !error,\n });\n\n async function onCopy() {\n await copy(value);\n\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n\n const pristineValue = value.replace(/\\n/, ' ');\n\n return (\n <CopyPasteBlockElement\n ref={ref}\n mods={{ error: !!error }}\n data-size={size}\n styles={styles}\n tabIndex={0}\n {...props}\n {...clipboardProps}\n >\n <div data-element=\"Grid\">\n <StyledBlock\n data-size={size}\n mods={{\n placeholder: !!placeholder || !value,\n }}\n >\n <div data-element=\"Label\">\n {error != null ? (\n error || t('copyPasteBlock.invalidData', 'Invalid data')\n ) : value ? (\n pristineValue\n ) : (\n <>\n {placeholder\n ? placeholder\n : t('copyPasteBlock.selectAndPaste', 'Select and paste')}\n </>\n )}\n </div>\n <span data-element=\"Shortcut\">\n <kbd>Cmd</kbd> + <kbd>V</kbd>\n </span>\n </StyledBlock>\n {value && !error && (\n <CopyButton\n size={size}\n aria-label={t(\n 'copyPasteBlock.copyToClipboard',\n 'Copy {{title}} to clipboard',\n {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n },\n )}\n onPress={onCopy}\n />\n )}\n </div>\n </CopyPasteBlockElement>\n );\n}\n\nconst _CopyPasteBlock = forwardRef(CopyPasteBlock);\n\n_CopyPasteBlock.displayName = 'CopyPasteBlock';\n\nexport { _CopyPasteBlock as CopyPasteBlock };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CopyPasteBlock.js","names":["POSITION_STYLES","PositionStyleProps","Styles","tasty","copy","ForwardedRef","forwardRef","ReactNode","useState","TextDropItem","useClipboard","useTimer","useI18n","CopyIcon","extractStyles","Button","useToast","Card","CubeCardProps","StyledBlock","styles","display","flow","placeContent","placeItems","gap","position","width","color","padding","userSelect","Label","whiteSpace","overflow","textOverflow","CopyPasteBlockElement","qa","fill","radius","error","border","cursor","preset","height","boxSizing","Grid","gridColumns","Shortcut","hide","CopyButton","type","icon","placeSelf","shadow","focused","outline","CubeCopyPasteBlockProps","Omit","value","placeholder","title","onPaste","text","Promise","onCopy","size","CopyPasteBlock","allProps","ref","HTMLDivElement","props","t","setError","toast","clipboardProps","items","pasted","all","filter","item","kind","types","has","map","getText","join","e","String","getItems","success","delay","callback","isDisabled","pristineValue","replace","_CopyPasteBlock","displayName"],"sources":["../../../../src/components/content/CopyPasteBlock/CopyPasteBlock.tsx"],"sourcesContent":["import {\n POSITION_STYLES,\n PositionStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ForwardedRef, forwardRef, ReactNode, useState } from 'react';\nimport { TextDropItem, useClipboard } from 'react-aria';\n\nimport { useTimer } from '../../../_internal/hooks/use-timer/use-timer';\nimport { useI18n } from '../../../i18n/useI18n';\nimport { CopyIcon } from '../../../icons/CopyIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions/Button/Button';\nimport { useToast } from '../../overlays/Toast/useToast';\nimport { Card, CubeCardProps } from '../Card/Card';\n\nconst StyledBlock = tasty({\n styles: {\n display: 'grid',\n flow: 'column',\n placeContent: 'center space-between',\n placeItems: 'center stretch',\n gap: '1x',\n position: 'relative',\n width: 'max 100%',\n color: 'inherit',\n padding: '0 1.5x',\n // height: {\n // '': '4.5x',\n // '[data-size=\"small\"]': '3.5x',\n // '[data-size=\"large\"]': '5.5x',\n // },\n userSelect: 'none',\n\n Label: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n },\n});\n\nconst CopyPasteBlockElement = tasty(Card, {\n qa: 'CopyPasteBlock',\n styles: {\n display: 'grid',\n fill: '#surface-2',\n radius: '1r',\n padding: {\n '': '0 1bw',\n ':focus': '0',\n },\n color: {\n '': '#dark',\n error: '#danger-text',\n },\n border: {\n '': 'dashed #dark-03',\n ':focus': '2bw dashed #primary-text',\n error: 'dashed #danger',\n },\n cursor: '$pointer',\n preset: {\n '': 't3',\n 'size=large': 't2',\n },\n height: {\n '': '5x',\n 'size=small': '4x',\n 'size=large': '6x',\n },\n boxSizing: 'border-box',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) min-content',\n placeContent: 'stretch',\n width: 'min 20x',\n radius: '1r',\n position: 'relative',\n },\n\n Shortcut: {\n display: 'inline',\n hide: {\n '': true,\n ':focus & !error': false,\n },\n },\n },\n});\n\nconst CopyButton = tasty(Button, {\n type: 'clear',\n icon: <CopyIcon />,\n styles: {\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': '0 0 0 1ow #purple-03.0 inset',\n focused: '0 0 0 1ow #purple-03 inset',\n },\n radius: {\n '': '0 1r 1r 0',\n 'multiline | has-scroll': '1r top-right',\n },\n height: 'auto',\n outline: false,\n },\n});\n\nexport interface CubeCopyPasteBlockProps\n extends Omit<CubeCardProps, 'onPaste' | 'onCopy'>, PositionStyleProps {\n padding?: Styles['padding'];\n /** The code snippet */\n value?: string;\n placeholder?: ReactNode;\n /** The title of the snippet */\n title?: string;\n onPaste?: (text: string) => void | Promise<void | string>;\n onCopy?: () => void;\n size?: 'small' | 'medium' | 'large';\n}\n\nfunction CopyPasteBlock(\n allProps: CubeCopyPasteBlockProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n value = '',\n onPaste,\n placeholder,\n title,\n size = 'medium',\n ...props\n } = allProps;\n const styles = extractStyles(props, POSITION_STYLES);\n\n const { t } = useI18n();\n const [error, setError] = useState<string | null>(null);\n const toast = useToast();\n\n const { clipboardProps } = useClipboard({\n async onPaste(items) {\n let pasted = await Promise.all(\n items\n .filter(\n (item) => item.kind === 'text' && item.types.has('text/plain'),\n )\n .map((item) => (item as TextDropItem).getText('text/plain')),\n );\n try {\n await onPaste?.(pasted.join('\\n'));\n } catch (e) {\n setError(String(e));\n }\n },\n getItems() {\n return value\n ? [\n {\n 'text/plain': value,\n },\n ]\n : [];\n },\n onCopy() {\n if (value) {\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n },\n });\n\n useTimer({\n delay: 1000,\n callback() {\n setError(null);\n },\n isDisabled: !error,\n });\n\n async function onCopy() {\n await copy(value);\n\n toast.success(\n t('copyPasteBlock.copied', '{{title}} copied', {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n }),\n );\n }\n\n const pristineValue = value.replace(/\\n/, ' ');\n\n return (\n <CopyPasteBlockElement\n ref={ref}\n mods={{ error: !!error }}\n data-size={size}\n styles={styles}\n tabIndex={0}\n {...props}\n {...clipboardProps}\n >\n <div data-element=\"Grid\">\n <StyledBlock\n data-size={size}\n mods={{\n placeholder: !!placeholder || !value,\n }}\n >\n <div data-element=\"Label\">\n {error != null ? (\n error || t('copyPasteBlock.invalidData', 'Invalid data')\n ) : value ? (\n pristineValue\n ) : (\n <>\n {placeholder\n ? placeholder\n : t('copyPasteBlock.selectAndPaste', 'Select and paste')}\n </>\n )}\n </div>\n <span data-element=\"Shortcut\">\n <kbd>Cmd</kbd> + <kbd>V</kbd>\n </span>\n </StyledBlock>\n {value && !error && (\n <CopyButton\n size={size}\n aria-label={t(\n 'copyPasteBlock.copyToClipboard',\n 'Copy {{title}} to clipboard',\n {\n title: title || t('copyPasteBlock.defaultTitle', 'Text'),\n },\n )}\n onPress={onCopy}\n />\n )}\n </div>\n </CopyPasteBlockElement>\n );\n}\n\nconst _CopyPasteBlock = forwardRef(CopyPasteBlock);\n\n_CopyPasteBlock.displayName = 'CopyPasteBlock';\n\nexport { _CopyPasteBlock as CopyPasteBlock };\n"],"mappings":"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"}
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
import { CubeButtonProps } from "../../actions/Button/Button.js";
|
|
3
|
-
import { ButtonSplit, CubeButtonSplitProps } from "../../actions/ButtonSplit/ButtonSplit.js";
|
|
4
|
-
import { CubeSpaceProps } from "../../layout/Space.js";
|
|
5
|
-
import { ButtonGroup } from "../../actions/ButtonGroup/ButtonGroup.js";
|
|
6
3
|
import "../../actions/index.js";
|
|
7
4
|
import { CubePrismCodeProps } from "../PrismCode/PrismCode.js";
|
|
8
5
|
import { CubeCardProps } from "../Card/Card.js";
|
|
9
|
-
import "../../../index.js";
|
|
10
6
|
import { ReactNode } from "react";
|
|
11
7
|
//#region src/components/content/CopySnippet/CopySnippet.d.ts
|
|
12
|
-
declare const ActionButton: import("react").ComponentType<Partial<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>> & import("@tenphi/tasty").ComponentStatics<import("react").ForwardRefExoticComponent<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement
|
|
13
|
-
Group: typeof ButtonGroup;
|
|
14
|
-
Split: typeof ButtonSplit;
|
|
15
|
-
} & {
|
|
16
|
-
Group: import("react").ForwardRefExoticComponent<CubeSpaceProps & import("react").RefAttributes<unknown>>;
|
|
17
|
-
Split: import("react").ForwardRefExoticComponent<CubeButtonSplitProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
18
|
-
}>;
|
|
8
|
+
declare const ActionButton: import("react").ComponentType<Partial<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>> & import("@tenphi/tasty").ComponentStatics<import("react").ForwardRefExoticComponent<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>>;
|
|
19
9
|
export interface CubeCopySnippetProps extends CubeCardProps {
|
|
20
10
|
/** The code snippet */
|
|
21
11
|
code: string;
|
|
@@ -48,13 +38,7 @@ declare function CopySnippet(allProps: CubeCopySnippetProps): import("react").JS
|
|
|
48
38
|
declare const _CopySnippet: typeof CopySnippet & {
|
|
49
39
|
Button: typeof ActionButton;
|
|
50
40
|
} & {
|
|
51
|
-
Button: import("react").ComponentType<Partial<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>> & import("@tenphi/tasty").ComponentStatics<import("react").ForwardRefExoticComponent<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement
|
|
52
|
-
Group: typeof ButtonGroup;
|
|
53
|
-
Split: typeof ButtonSplit;
|
|
54
|
-
} & {
|
|
55
|
-
Group: import("react").ForwardRefExoticComponent<CubeSpaceProps & import("react").RefAttributes<unknown>>;
|
|
56
|
-
Split: import("react").ForwardRefExoticComponent<CubeButtonSplitProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
57
|
-
}>;
|
|
41
|
+
Button: import("react").ComponentType<Partial<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>> & import("@tenphi/tasty").ComponentStatics<import("react").ForwardRefExoticComponent<CubeButtonProps & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>>;
|
|
58
42
|
};
|
|
59
43
|
//#endregion
|
|
60
44
|
export { _CopySnippet as CopySnippet };
|
|
@@ -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 { Tooltip as _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
|
|
3
3
|
import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -6,7 +6,7 @@ import { CopyIcon } from "../../../icons/CopyIcon.js";
|
|
|
6
6
|
import { EyeIcon } from "../../../icons/EyeIcon.js";
|
|
7
7
|
import { EyeInvisibleIcon } from "../../../icons/EyeInvisibleIcon.js";
|
|
8
8
|
import { Action } from "../../actions/Action/Action.js";
|
|
9
|
-
import { Button } from "../../actions/
|
|
9
|
+
import { Button } from "../../actions/Button/Button.js";
|
|
10
10
|
import { PrismCode as _PrismCode } from "../PrismCode/PrismCode.js";
|
|
11
11
|
import { useToast } from "../../overlays/Toast/useToast.js";
|
|
12
12
|
import { Card } from "../Card/Card.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopySnippet.js","names":["Styles","tasty","copy","ReactNode","useState","useI18n","CopyIcon","EyeIcon","EyeInvisibleIcon","Action","Button","CubePrismCodeProps","PrismCode","useToast","Tooltip","TooltipTrigger","Card","CubeCardProps","COPY_SNIPPET_CODE_STYLES","margin","overflow","ActionElement","styles","display","cursor","width","StyledBlock","position","multiline","height","boxSizing","whiteSpace","nowrap","scrollbar","padding","fade","Code","$","preset","serif","font","ButtonContainer","flow","placeContent","border","CopySnippetElement","qa","gridRows","fill","radius","Grid","gridColumns","ActionButton","type","placeSelf","shadow","focused","outline","CopyButton","icon","ShowButton","CubeCopySnippetProps","code","title","isWrapped","prefix","language","showTooltip","hideText","actions","HIDDEN_SYMBOL","replaceSymbolsToHidden","str","repeat","length","CopySnippet","allProps","_c","t","props","t0","t1","t2","t3","undefined","toast","showHidden","setShowHidden","onCopy","success","formattedCode","shouldWrap","pristineCode","replace","includes","t4","line","split","map","join","trim","replaceAll","Array","isArray","forEach","text","t5","t6","hidden","mods","T0","t7","t8","t9","t10","T1","T2","t11","t12","t13","t14","t15","t16","Snippet","t17","t18","t19","_CopySnippet","Object","assign","displayName","_c","PrismCode","Tooltip"],"sources":["../../../../src/components/content/CopySnippet/CopySnippet.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ReactNode, useState } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { CopyIcon } from '../../../icons/CopyIcon';\nimport { EyeIcon } from '../../../icons/EyeIcon';\nimport { EyeInvisibleIcon } from '../../../icons/EyeInvisibleIcon';\nimport { Action, Button } from '../../actions';\nimport {\n CubePrismCodeProps,\n PrismCode,\n} from '../../content/PrismCode/PrismCode';\nimport { useToast } from '../../overlays/Toast';\nimport { Tooltip } from '../../overlays/Tooltip/Tooltip';\nimport { TooltipTrigger } from '../../overlays/Tooltip/TooltipTrigger';\nimport { Card, CubeCardProps } from '../Card/Card';\n\n// The snippet's grid scrolls the code, so the code block itself must not clip.\nconst COPY_SNIPPET_CODE_STYLES: Styles = { margin: 0, overflow: 'visible' };\n\nconst ActionElement = tasty(Action, {\n styles: {\n display: 'block',\n cursor: 'default',\n width: '100%',\n },\n});\n\nconst StyledBlock = tasty({\n styles: {\n position: 'relative',\n overflow: {\n '': 'auto clip',\n multiline: 'auto',\n },\n width: 'initial auto 100%',\n height: {\n '': 'max 5x',\n multiline: 'auto',\n },\n boxSizing: 'border-box',\n whiteSpace: {\n '': 'initial',\n nowrap: 'nowrap',\n },\n scrollbar: 'styled',\n padding: '1.125x 1.5x',\n fade: {\n '': 'right 2x',\n multiline: false,\n },\n\n Code: {\n $: 'code',\n preset: {\n '': 's3',\n serif: 't3',\n },\n // `s3` carries `fontFamily: var(--font-mono)` but `t3` sets no family at\n // all, so the preset alone cannot express \"serif\". Left to the preset, the\n // `serif` variant would inherit the `<code>` element's UA monospace\n // default and render monospace anyway. Keep the family explicit:\n // `font: 'monospace'` for the default, `font: true` for the design\n // system's default (non-mono) stack under `serif`.\n font: {\n '': 'monospace',\n serif: true,\n },\n // The wrapping itself (`white-space` / `overflow-wrap` on the `<code>`)\n // is owned by `PrismCode` via its `isWrapped` prop, which this component\n // forwards.\n },\n },\n});\n\nconst ButtonContainer = tasty({\n styles: {\n position: 'relative',\n display: 'flex',\n flow: {\n '': 'row-reverse',\n multiline: 'column',\n },\n placeContent: 'start',\n\n '$button-size': {\n '': '5x',\n multiline: '4x',\n },\n\n '$first-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 0',\n },\n\n '$last-button-radius': {\n '': '0',\n multiline: '0 0 0 1r',\n },\n\n '$first-and-last-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 1r',\n },\n\n // Make sure there's a small gap between buttons and the content\n border: 'left #clear',\n },\n});\n\nconst CopySnippetElement = tasty(Card, {\n qa: 'CopySnippet',\n styles: {\n display: 'grid',\n gridRows: 'minmax(0, 1fr)',\n fill: '#surface-2',\n border: 0,\n padding: 0,\n preset: 'default',\n radius: '1r',\n overflow: 'hidden',\n height: 'max-content',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) auto',\n gridRows: 'minmax(0, 1fr)',\n width: 'min 20x',\n position: 'relative',\n },\n },\n});\n\nconst ActionButton = tasty(Button, {\n type: 'clear',\n styles: {\n width: '4x',\n padding: 0,\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': 'inset 0 0 0 1ow #purple-03.0',\n focused: 'inset 0 0 0 1ow #purple-03',\n },\n outline: false,\n height: '$button-size',\n radius: {\n '': 0,\n ':last-child': '$last-button-radius',\n ':first-child': '$first-button-radius',\n ':first-child & :last-child': '$first-and-last-button-radius',\n },\n },\n});\n\nconst CopyButton = tasty(ActionButton, {\n icon: <CopyIcon />,\n});\n\nconst ShowButton = tasty(ActionButton, {});\n\nexport interface CubeCopySnippetProps extends CubeCardProps {\n /** The code snippet */\n code: string;\n /** The title of the snippet */\n title?: string;\n /** Whether the snippet is single-lined */\n nowrap?: boolean;\n /**\n * Soft-wrap long content onto multiple lines instead of scrolling it\n * horizontally. The block grows vertically to fit (so even a single long line\n * is fully readable rather than clamped), and unbreakable runs like URLs,\n * tokens and identifiers wrap too. Useful for error messages and logs.\n * Has no effect when `nowrap` is set. Note this is a different axis from\n * `nowrap`: `nowrap` collapses real newlines into one scrolling line, while\n * `isWrapped` breaks long lines that would otherwise scroll.\n */\n isWrapped?: boolean;\n /** The prefix for each line of code. Useful for bash snippets. */\n prefix?: string;\n /** The code language of the snippet */\n language?: CubePrismCodeProps['language'];\n /** Whether the snippet uses a serif font */\n serif?: boolean;\n /** Whether to show the tooltip with the full content */\n showTooltip?: boolean;\n hideText?: string[] | string | boolean;\n actions?: ReactNode;\n}\n\n// const HIDDEN_SYMBOL = '●';\nconst HIDDEN_SYMBOL = '•';\n\nfunction replaceSymbolsToHidden(str: string) {\n return HIDDEN_SYMBOL.repeat(str.length);\n}\n\nfunction CopySnippet(allProps: CubeCopySnippetProps) {\n const { t } = useI18n();\n\n const {\n code = '',\n title = t('copySnippet.title', 'Code example'),\n nowrap,\n isWrapped,\n prefix = '',\n language,\n serif,\n actions,\n showTooltip = false,\n hideText,\n ...props\n } = allProps;\n\n const toast = useToast();\n\n const [showHidden, setShowHidden] = useState(false);\n\n async function onCopy() {\n await copy(code);\n\n toast.success(t('copySnippet.copied', '{{title}} copied', { title }));\n }\n\n const pristineCode = code.replace(/\\n$/, '');\n\n const multiline = pristineCode.includes('\\n') && !nowrap;\n // `isWrapped` reuses the multiline block layout (auto height, no right fade,\n // copy button on top) so wrapped content grows vertically instead of being\n // clamped to the single-line height. `nowrap` (force one scrolling line) wins\n // over it.\n const shouldWrap = !!isWrapped && !nowrap;\n let formattedCode = pristineCode\n .replace(/\\r/g, '')\n .split(/\\n/g)\n .map((line) => `${prefix}${line}`)\n .join('\\n')\n .trim();\n\n if (!showHidden) {\n if (hideText === true) {\n formattedCode = replaceSymbolsToHidden(formattedCode);\n } else if (typeof hideText === 'string') {\n formattedCode = formattedCode.replaceAll(\n hideText,\n replaceSymbolsToHidden(hideText),\n );\n } else if (Array.isArray(hideText)) {\n hideText.forEach((text) => {\n formattedCode = formattedCode.replaceAll(\n text,\n replaceSymbolsToHidden(text),\n );\n });\n }\n }\n\n const mods = {\n nowrap,\n multiline: multiline || shouldWrap,\n serif,\n hidden: !!hideText,\n };\n\n const Snippet = (\n <CopySnippetElement mods={mods} {...props}>\n <div data-element=\"Grid\">\n <StyledBlock mods={mods}>\n <PrismCode\n styles={COPY_SNIPPET_CODE_STYLES}\n code={formattedCode}\n language={language || 'javascript'}\n isWrapped={shouldWrap}\n />\n </StyledBlock>\n <ButtonContainer mods={mods}>\n <CopyButton\n aria-label={t(\n 'copySnippet.copyToClipboard',\n 'Copy {{title}} to clipboard',\n { title },\n )}\n onPress={onCopy}\n />\n {hideText && (\n <ShowButton\n aria-label={t('copySnippet.showHiddenParts', 'Show hidden parts')}\n icon={showHidden ? <EyeInvisibleIcon /> : <EyeIcon />}\n onPress={() => setShowHidden(!showHidden)}\n />\n )}\n {actions}\n </ButtonContainer>\n </div>\n </CopySnippetElement>\n );\n\n if (showTooltip) {\n return (\n <TooltipTrigger>\n <ActionElement>{Snippet}</ActionElement>\n <Tooltip>{formattedCode}</Tooltip>\n </TooltipTrigger>\n );\n }\n\n return Snippet;\n}\n\nconst _CopySnippet = Object.assign(\n CopySnippet as typeof CopySnippet & {\n Button: typeof ActionButton;\n },\n {\n Button: ActionButton,\n },\n);\n\n(_CopySnippet as any).displayName = 'CopySnippet';\n\nexport { _CopySnippet as CopySnippet };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CopySnippet.js","names":["Styles","tasty","copy","ReactNode","useState","useI18n","CopyIcon","EyeIcon","EyeInvisibleIcon","Action","Button","CubePrismCodeProps","PrismCode","useToast","Tooltip","TooltipTrigger","Card","CubeCardProps","COPY_SNIPPET_CODE_STYLES","margin","overflow","ActionElement","styles","display","cursor","width","StyledBlock","position","multiline","height","boxSizing","whiteSpace","nowrap","scrollbar","padding","fade","Code","$","preset","serif","font","ButtonContainer","flow","placeContent","border","CopySnippetElement","qa","gridRows","fill","radius","Grid","gridColumns","ActionButton","type","placeSelf","shadow","focused","outline","CopyButton","icon","ShowButton","CubeCopySnippetProps","code","title","isWrapped","prefix","language","showTooltip","hideText","actions","HIDDEN_SYMBOL","replaceSymbolsToHidden","str","repeat","length","CopySnippet","allProps","_c","t","props","t0","t1","t2","t3","undefined","toast","showHidden","setShowHidden","onCopy","success","formattedCode","shouldWrap","pristineCode","replace","includes","t4","line","split","map","join","trim","replaceAll","Array","isArray","forEach","text","t5","t6","hidden","mods","T0","t7","t8","t9","t10","T1","T2","t11","t12","t13","t14","t15","t16","Snippet","t17","t18","t19","_CopySnippet","Object","assign","displayName","_c","PrismCode","Tooltip"],"sources":["../../../../src/components/content/CopySnippet/CopySnippet.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ReactNode, useState } from 'react';\n\nimport { useI18n } from '../../../i18n/useI18n';\nimport { CopyIcon } from '../../../icons/CopyIcon';\nimport { EyeIcon } from '../../../icons/EyeIcon';\nimport { EyeInvisibleIcon } from '../../../icons/EyeInvisibleIcon';\nimport { Action } from '../../actions/Action/Action';\nimport { Button } from '../../actions/Button/Button';\nimport {\n CubePrismCodeProps,\n PrismCode,\n} from '../../content/PrismCode/PrismCode';\nimport { useToast } from '../../overlays/Toast/useToast';\nimport { Tooltip } from '../../overlays/Tooltip/Tooltip';\nimport { TooltipTrigger } from '../../overlays/Tooltip/TooltipTrigger';\nimport { Card, CubeCardProps } from '../Card/Card';\n\n// The snippet's grid scrolls the code, so the code block itself must not clip.\nconst COPY_SNIPPET_CODE_STYLES: Styles = { margin: 0, overflow: 'visible' };\n\nconst ActionElement = tasty(Action, {\n styles: {\n display: 'block',\n cursor: 'default',\n width: '100%',\n },\n});\n\nconst StyledBlock = tasty({\n styles: {\n position: 'relative',\n overflow: {\n '': 'auto clip',\n multiline: 'auto',\n },\n width: 'initial auto 100%',\n height: {\n '': 'max 5x',\n multiline: 'auto',\n },\n boxSizing: 'border-box',\n whiteSpace: {\n '': 'initial',\n nowrap: 'nowrap',\n },\n scrollbar: 'styled',\n padding: '1.125x 1.5x',\n fade: {\n '': 'right 2x',\n multiline: false,\n },\n\n Code: {\n $: 'code',\n preset: {\n '': 's3',\n serif: 't3',\n },\n // `s3` carries `fontFamily: var(--font-mono)` but `t3` sets no family at\n // all, so the preset alone cannot express \"serif\". Left to the preset, the\n // `serif` variant would inherit the `<code>` element's UA monospace\n // default and render monospace anyway. Keep the family explicit:\n // `font: 'monospace'` for the default, `font: true` for the design\n // system's default (non-mono) stack under `serif`.\n font: {\n '': 'monospace',\n serif: true,\n },\n // The wrapping itself (`white-space` / `overflow-wrap` on the `<code>`)\n // is owned by `PrismCode` via its `isWrapped` prop, which this component\n // forwards.\n },\n },\n});\n\nconst ButtonContainer = tasty({\n styles: {\n position: 'relative',\n display: 'flex',\n flow: {\n '': 'row-reverse',\n multiline: 'column',\n },\n placeContent: 'start',\n\n '$button-size': {\n '': '5x',\n multiline: '4x',\n },\n\n '$first-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 0',\n },\n\n '$last-button-radius': {\n '': '0',\n multiline: '0 0 0 1r',\n },\n\n '$first-and-last-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 1r',\n },\n\n // Make sure there's a small gap between buttons and the content\n border: 'left #clear',\n },\n});\n\nconst CopySnippetElement = tasty(Card, {\n qa: 'CopySnippet',\n styles: {\n display: 'grid',\n gridRows: 'minmax(0, 1fr)',\n fill: '#surface-2',\n border: 0,\n padding: 0,\n preset: 'default',\n radius: '1r',\n overflow: 'hidden',\n height: 'max-content',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) auto',\n gridRows: 'minmax(0, 1fr)',\n width: 'min 20x',\n position: 'relative',\n },\n },\n});\n\nconst ActionButton = tasty(Button, {\n type: 'clear',\n styles: {\n width: '4x',\n padding: 0,\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': 'inset 0 0 0 1ow #purple-03.0',\n focused: 'inset 0 0 0 1ow #purple-03',\n },\n outline: false,\n height: '$button-size',\n radius: {\n '': 0,\n ':last-child': '$last-button-radius',\n ':first-child': '$first-button-radius',\n ':first-child & :last-child': '$first-and-last-button-radius',\n },\n },\n});\n\nconst CopyButton = tasty(ActionButton, {\n icon: <CopyIcon />,\n});\n\nconst ShowButton = tasty(ActionButton, {});\n\nexport interface CubeCopySnippetProps extends CubeCardProps {\n /** The code snippet */\n code: string;\n /** The title of the snippet */\n title?: string;\n /** Whether the snippet is single-lined */\n nowrap?: boolean;\n /**\n * Soft-wrap long content onto multiple lines instead of scrolling it\n * horizontally. The block grows vertically to fit (so even a single long line\n * is fully readable rather than clamped), and unbreakable runs like URLs,\n * tokens and identifiers wrap too. Useful for error messages and logs.\n * Has no effect when `nowrap` is set. Note this is a different axis from\n * `nowrap`: `nowrap` collapses real newlines into one scrolling line, while\n * `isWrapped` breaks long lines that would otherwise scroll.\n */\n isWrapped?: boolean;\n /** The prefix for each line of code. Useful for bash snippets. */\n prefix?: string;\n /** The code language of the snippet */\n language?: CubePrismCodeProps['language'];\n /** Whether the snippet uses a serif font */\n serif?: boolean;\n /** Whether to show the tooltip with the full content */\n showTooltip?: boolean;\n hideText?: string[] | string | boolean;\n actions?: ReactNode;\n}\n\n// const HIDDEN_SYMBOL = '●';\nconst HIDDEN_SYMBOL = '•';\n\nfunction replaceSymbolsToHidden(str: string) {\n return HIDDEN_SYMBOL.repeat(str.length);\n}\n\nfunction CopySnippet(allProps: CubeCopySnippetProps) {\n const { t } = useI18n();\n\n const {\n code = '',\n title = t('copySnippet.title', 'Code example'),\n nowrap,\n isWrapped,\n prefix = '',\n language,\n serif,\n actions,\n showTooltip = false,\n hideText,\n ...props\n } = allProps;\n\n const toast = useToast();\n\n const [showHidden, setShowHidden] = useState(false);\n\n async function onCopy() {\n await copy(code);\n\n toast.success(t('copySnippet.copied', '{{title}} copied', { title }));\n }\n\n const pristineCode = code.replace(/\\n$/, '');\n\n const multiline = pristineCode.includes('\\n') && !nowrap;\n // `isWrapped` reuses the multiline block layout (auto height, no right fade,\n // copy button on top) so wrapped content grows vertically instead of being\n // clamped to the single-line height. `nowrap` (force one scrolling line) wins\n // over it.\n const shouldWrap = !!isWrapped && !nowrap;\n let formattedCode = pristineCode\n .replace(/\\r/g, '')\n .split(/\\n/g)\n .map((line) => `${prefix}${line}`)\n .join('\\n')\n .trim();\n\n if (!showHidden) {\n if (hideText === true) {\n formattedCode = replaceSymbolsToHidden(formattedCode);\n } else if (typeof hideText === 'string') {\n formattedCode = formattedCode.replaceAll(\n hideText,\n replaceSymbolsToHidden(hideText),\n );\n } else if (Array.isArray(hideText)) {\n hideText.forEach((text) => {\n formattedCode = formattedCode.replaceAll(\n text,\n replaceSymbolsToHidden(text),\n );\n });\n }\n }\n\n const mods = {\n nowrap,\n multiline: multiline || shouldWrap,\n serif,\n hidden: !!hideText,\n };\n\n const Snippet = (\n <CopySnippetElement mods={mods} {...props}>\n <div data-element=\"Grid\">\n <StyledBlock mods={mods}>\n <PrismCode\n styles={COPY_SNIPPET_CODE_STYLES}\n code={formattedCode}\n language={language || 'javascript'}\n isWrapped={shouldWrap}\n />\n </StyledBlock>\n <ButtonContainer mods={mods}>\n <CopyButton\n aria-label={t(\n 'copySnippet.copyToClipboard',\n 'Copy {{title}} to clipboard',\n { title },\n )}\n onPress={onCopy}\n />\n {hideText && (\n <ShowButton\n aria-label={t('copySnippet.showHiddenParts', 'Show hidden parts')}\n icon={showHidden ? <EyeInvisibleIcon /> : <EyeIcon />}\n onPress={() => setShowHidden(!showHidden)}\n />\n )}\n {actions}\n </ButtonContainer>\n </div>\n </CopySnippetElement>\n );\n\n if (showTooltip) {\n return (\n <TooltipTrigger>\n <ActionElement>{Snippet}</ActionElement>\n <Tooltip>{formattedCode}</Tooltip>\n </TooltipTrigger>\n );\n }\n\n return Snippet;\n}\n\nconst _CopySnippet = Object.assign(\n CopySnippet as typeof CopySnippet & {\n Button: typeof ActionButton;\n },\n {\n Button: ActionButton,\n },\n);\n\n(_CopySnippet as any).displayName = 'CopySnippet';\n\nexport { _CopySnippet as CopySnippet };\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
|
|
2
2
|
import { CubeItemButtonProps } from "../../actions/ItemButton/ItemButton.js";
|
|
3
|
-
import "../../actions/ItemButton/index.js";
|
|
4
3
|
import { AllBaseProps, BaseProps, OuterStyleProps, Styles } from "@tenphi/tasty";
|
|
5
4
|
import { Key, ReactNode } from "react";
|
|
6
5
|
//#region src/components/content/Disclosure/Disclosure.d.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
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, mergeStyleLayers } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
|
|
5
|
-
import { RightIcon } from "../../../icons/RightIcon.js";
|
|
6
5
|
import { ItemButton as _ItemButton } from "../../actions/ItemButton/ItemButton.js";
|
|
6
|
+
import { RightIcon } from "../../../icons/RightIcon.js";
|
|
7
7
|
import { c } from "react/compiler-runtime";
|
|
8
8
|
import { OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
|
|
9
9
|
import { createContext, forwardRef, useContext, useRef } from "react";
|