@cube-dev/ui-kit 0.193.2 → 0.194.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 +22 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.d.ts +25 -12
- package/dist/components/CollectionItem.js +59 -4
- package/dist/components/CollectionItem.js.map +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +2 -2
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.d.ts +1 -1
- package/dist/components/actions/Banner/Banner.js +6 -6
- package/dist/components/actions/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +28 -25
- 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 +7 -7
- package/dist/components/actions/CommandMenu/CommandMenu.js +232 -239
- 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 +26 -22
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.d.ts +3 -0
- package/dist/components/actions/ItemActionContext.js +15 -13
- package/dist/components/actions/ItemActionContext.js.map +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.d.ts +2 -2
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.d.ts +9 -9
- package/dist/components/actions/Menu/Menu.js +88 -64
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.d.ts +18 -0
- package/dist/components/actions/Menu/MenuCollectionItem.js +36 -0
- package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -0
- package/dist/components/actions/Menu/MenuItem.d.ts +5 -0
- package/dist/components/actions/Menu/MenuItem.js +402 -116
- package/dist/components/actions/Menu/MenuItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuSection.d.ts +3 -1
- package/dist/components/actions/Menu/MenuSection.js +31 -33
- package/dist/components/actions/Menu/MenuSection.js.map +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.d.ts +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 -0
- 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 +3 -2
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +60 -36
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.d.ts +5 -5
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +44 -33
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.d.ts +7 -7
- package/dist/components/content/Item/Item.js +205 -67
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +314 -0
- package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -0
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.d.ts +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +18 -15
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +41 -46
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +2 -2
- 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 +77 -70
- 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 +5 -5
- package/dist/components/content/Result/Result.js.map +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +18 -19
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.js +2 -2
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +66 -48
- package/dist/components/content/Title.js.map +1 -1
- package/dist/components/content/Tree/Tree.js +6 -3
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/types.d.ts +2 -2
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +8 -5
- 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-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.d.ts +1 -1
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +119 -57
- package/dist/components/data/TableBase/use-column-window.js.map +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +19 -17
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js.map +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +3 -1
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +13 -13
- 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.js +32 -29
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +2 -0
- package/dist/components/fields/ColorPicker/ColorPicker.js +8 -5
- 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.js +6 -3
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +41 -30
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +246 -238
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +22 -2
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +5 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +4 -2
- package/dist/components/fields/FilterPicker/FilterPicker.js +3 -2
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +8 -7
- 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 +36 -32
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +4 -2
- package/dist/components/fields/Picker/Picker.js +3 -2
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +4 -4
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.d.ts +4 -4
- package/dist/components/fields/Select/Select.js +35 -32
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +13 -5
- 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 +62 -53
- 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/form/FieldWrapper/FieldWrapper.d.ts +1 -0
- package/dist/components/form/FieldWrapper/FieldWrapper.js +133 -109
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +102 -0
- package/dist/components/form/FieldWrapper/field-description.js.map +1 -0
- package/dist/components/form/FieldWrapper/types.d.ts +6 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +17 -4
- package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +27 -24
- package/dist/components/form/Label.js.map +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +2 -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/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +3 -3
- 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 +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +44 -24
- package/dist/components/overlays/Modal/Modal.js.map +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +34 -24
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +45 -25
- 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 +145 -0
- package/dist/components/overlays/Modal/modal-containment.js.map +1 -0
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +2 -2
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +50 -47
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +2 -2
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +3 -2
- package/dist/i18n/I18nProvider.js.map +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.d.ts +2 -1
- package/dist/i18n/index.js +3 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/instance.d.ts +2 -3
- package/dist/i18n/instance.js +3 -4
- package/dist/i18n/instance.js.map +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +36 -5
- package/dist/i18n/locales/en-US/uikit.js +36 -5
- package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -4
- package/dist/i18n/locales/es-ES/uikit.js +36 -5
- package/dist/i18n/locales/es-MX/uikit.js +36 -5
- package/dist/i18n/locales/fr-FR/uikit.js +36 -5
- package/dist/i18n/locales/it-IT/uikit.js +36 -5
- package/dist/i18n/locales/ja-JP/uikit.js +36 -5
- package/dist/i18n/locales/nb-NO/uikit.js +36 -5
- package/dist/i18n/locales/pt-BR/uikit.js +36 -5
- package/dist/i18n/locales/pt-PT/uikit.js +36 -5
- package/dist/i18n/locales/sv-SE/uikit.js +36 -5
- package/dist/i18n/locales/vi-VN/uikit.js +36 -5
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.d.ts +11 -0
- package/dist/i18n/namespace.js +12 -0
- package/dist/i18n/namespace.js.map +1 -0
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +5 -3
- package/dist/i18n/useI18n.js.map +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/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 +9 -7
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +2 -2
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +11 -0
- package/dist/providers/navigation-url.js.map +1 -0
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +19 -0
- package/dist/providers/use-navigation.js.map +1 -0
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +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/Usage.md +4 -0
- package/docs/components/CollectionItem.md +5 -1
- package/docs/components/actions/CommandMenu.md +46 -18
- package/docs/components/actions/Menu.md +124 -19
- package/docs/components/content/Placeholder.md +2 -0
- package/docs/components/content/Skeleton.md +2 -0
- package/docs/components/data/ItemTable.md +2 -0
- package/docs/components/overlays/Dialog.md +1 -1
- package/docs/components/overlays/DialogContainer.md +1 -2
- package/docs/components/overlays/DialogTrigger.md +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tray.js","names":["useObjectRef","BaseProps","Styles","tasty","ForwardedRef","forwardRef","ReactNode","AriaOverlayProps","useModal","useOverlay","usePreventScroll","mergeProps","useOverlayEscapeGuard","OVERLAY_WRAPPER_STYLES","CubeOverlayProps","Overlay","TransitionState","Underlay","Props","TrayWrapperElement","qa","styles","placeContent","placeItems","TrayElement","display","hide","exit","unmounted","zIndex","height","width","pointerEvents","transition","opacity","open","CubeTrayProps","container","HTMLElement","onClose","action","isFixedHeight","isNonModal","children","isKeyboardDismissDisabled","isOpen","onOpenChange","defaultOpen","shouldCloseOnInteractOutside","element","Element","CubeTrayWrapperProps","overlayProps","Tray","props","ref","$","_c","otherProps","domRef","t0","isDismissable","rawOverlayProps","underlayProps","t1","t2","t3","TrayWrapper","transitionState","isDisabled","modalProps","domProps","t4","t5","t6","t7","enter","entered","t8","t9","_Tray","displayName"],"sources":["../../../../src/components/overlays/Modal/Tray.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode } from 'react';\nimport {\n AriaOverlayProps,\n useModal,\n useOverlay,\n usePreventScroll,\n} from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport { OVERLAY_WRAPPER_STYLES } from './Modal';\nimport { CubeOverlayProps, Overlay } from './Overlay';\nimport { TransitionState } from './types';\nimport { Underlay } from './Underlay';\n\nimport type { Props } from '../../../props';\n\nconst TrayWrapperElement = tasty({\n qa: 'TrayWrapper',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- overlay wrapper base shared with ModalWrapper\n ...OVERLAY_WRAPPER_STYLES,\n placeContent: 'end center',\n placeItems: 'end center',\n },\n});\n\nconst TrayElement = tasty({\n styles: {\n display: 'initial',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n zIndex: 10,\n height: 'max 90dvh',\n width: '$min-dialog-size 90vw',\n pointerEvents: 'auto',\n transition:\n 'transform .25s ease-in-out, opacity .25s linear, visibility 0ms linear',\n opacity: {\n '': 0,\n open: '.9999',\n },\n },\n});\n\nexport interface CubeTrayProps extends AriaOverlayProps, CubeOverlayProps {\n container?: HTMLElement;\n qa?: BaseProps['qa'];\n onClose?: (action?: string) => void;\n isFixedHeight?: boolean;\n isNonModal?: boolean;\n styles?: Styles;\n children?: ReactNode;\n isKeyboardDismissDisabled?: boolean;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n /**\n * Predicate that decides whether the overlay should close in response to an\n * interaction outside of it. When the function returns `false`, react-aria's\n * `useOverlay` no longer calls `stopPropagation`/`preventDefault` on the\n * outside event, which lets sibling triggers receive the click.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\ninterface CubeTrayWrapperProps extends CubeTrayProps, TransitionState {\n isOpen?: boolean;\n overlayProps?: Props;\n}\n\nfunction Tray(props: CubeTrayProps, ref: ForwardedRef<HTMLElement>) {\n let {\n qa,\n children,\n onClose,\n isFixedHeight,\n isNonModal,\n styles,\n shouldCloseOnInteractOutside,\n ...otherProps\n } = props;\n let domRef = useObjectRef(ref);\n\n let { overlayProps: rawOverlayProps, underlayProps } = useOverlay(\n { ...props, isDismissable: true, shouldCloseOnInteractOutside },\n domRef,\n );\n\n // Same as `Modal`: a tray pressed while it closes must not take `Escape`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n return (\n <Overlay {...otherProps}>\n <Underlay {...underlayProps} />\n <TrayWrapper\n ref={domRef}\n qa={qa}\n overlayProps={overlayProps}\n isFixedHeight={isFixedHeight}\n isNonModal={isNonModal}\n styles={styles}\n onClose={onClose}\n >\n {children}\n </TrayWrapper>\n </Overlay>\n );\n}\n\nlet TrayWrapper = forwardRef(function TrayWrapper(\n props: CubeTrayWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n isOpen,\n styles,\n isFixedHeight,\n isNonModal,\n overlayProps,\n transitionState,\n ...otherProps\n } = props;\n usePreventScroll();\n let { modalProps } = useModal({\n isDisabled: isNonModal,\n });\n\n let domProps = mergeProps(otherProps, overlayProps);\n\n return (\n <TrayWrapperElement\n mods={{\n open: isOpen,\n }}\n >\n <TrayElement\n qa={qa || 'Tray'}\n styles={styles}\n mods={{\n open: isOpen,\n enter: transitionState === 'enter',\n exit: transitionState === 'exit',\n unmounted: transitionState === 'unmounted',\n entered: transitionState === 'entered',\n 'fixed-height': isFixedHeight,\n }}\n {...domProps}\n {...modalProps}\n ref={ref}\n >\n {children}\n </TrayElement>\n </TrayWrapperElement>\n );\n});\n\nlet _Tray = forwardRef(Tray);\n\n_Tray.displayName = 'Tray';\n\nexport { _Tray as Tray };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tray.js","names":["useObjectRef","BaseProps","Styles","tasty","ForwardedRef","forwardRef","ReactNode","AriaOverlayProps","useModal","useOverlay","usePreventScroll","mergeProps","mergeRefs","useOverlayEscapeGuard","OVERLAY_WRAPPER_STYLES","ModalContainmentProvider","useModalContainment","CubeOverlayProps","Overlay","TransitionState","Underlay","Props","TrayWrapperElement","qa","styles","placeContent","placeItems","TrayElement","display","hide","exit","unmounted","zIndex","height","width","pointerEvents","transition","opacity","open","CubeTrayProps","container","HTMLElement","onClose","action","isFixedHeight","isNonModal","children","isKeyboardDismissDisabled","isOpen","onOpenChange","defaultOpen","shouldCloseOnInteractOutside","element","Element","CubeTrayWrapperProps","overlayProps","Tray","props","ref","$","_c","otherProps","domRef","t0","isDismissable","rawOverlayProps","underlayProps","containment","containmentRef","t1","t2","t3","t4","t5","TrayWrapper","transitionState","isDisabled","modalProps","domProps","t6","t7","enter","entered","t8","t9","_Tray","displayName"],"sources":["../../../../src/components/overlays/Modal/Tray.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode } from 'react';\nimport {\n AriaOverlayProps,\n useModal,\n useOverlay,\n usePreventScroll,\n} from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport { OVERLAY_WRAPPER_STYLES } from './Modal';\nimport {\n ModalContainmentProvider,\n useModalContainment,\n} from './modal-containment';\nimport { CubeOverlayProps, Overlay } from './Overlay';\nimport { TransitionState } from './types';\nimport { Underlay } from './Underlay';\n\nimport type { Props } from '../../../props';\n\nconst TrayWrapperElement = tasty({\n qa: 'TrayWrapper',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- overlay wrapper base shared with ModalWrapper\n ...OVERLAY_WRAPPER_STYLES,\n placeContent: 'end center',\n placeItems: 'end center',\n },\n});\n\nconst TrayElement = tasty({\n styles: {\n display: 'initial',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n zIndex: 10,\n height: 'max 90dvh',\n width: '$min-dialog-size 90vw',\n pointerEvents: 'auto',\n transition:\n 'transform .25s ease-in-out, opacity .25s linear, visibility 0ms linear',\n opacity: {\n '': 0,\n open: '.9999',\n },\n },\n});\n\nexport interface CubeTrayProps extends AriaOverlayProps, CubeOverlayProps {\n container?: HTMLElement;\n qa?: BaseProps['qa'];\n onClose?: (action?: string) => void;\n isFixedHeight?: boolean;\n isNonModal?: boolean;\n styles?: Styles;\n children?: ReactNode;\n isKeyboardDismissDisabled?: boolean;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n /**\n * Predicate that decides whether the overlay should close in response to an\n * interaction outside of it. When the function returns `false`, react-aria's\n * `useOverlay` no longer calls `stopPropagation`/`preventDefault` on the\n * outside event, which lets sibling triggers receive the click.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\ninterface CubeTrayWrapperProps extends CubeTrayProps, TransitionState {\n isOpen?: boolean;\n overlayProps?: Props;\n}\n\nfunction Tray(props: CubeTrayProps, ref: ForwardedRef<HTMLElement>) {\n let {\n qa,\n children,\n onClose,\n isFixedHeight,\n isNonModal,\n styles,\n shouldCloseOnInteractOutside,\n ...otherProps\n } = props;\n let domRef = useObjectRef(ref);\n\n let { overlayProps: rawOverlayProps, underlayProps } = useOverlay(\n { ...props, isDismissable: true, shouldCloseOnInteractOutside },\n domRef,\n );\n\n // Same as `Modal`: a tray pressed while it closes must not take `Escape`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // Same as `Modal`: the page behind an open tray is hidden.\n const { containment, ref: containmentRef } = useModalContainment(\n !isNonModal,\n !!props.isOpen,\n );\n\n return (\n <ModalContainmentProvider value={containment}>\n <Overlay {...otherProps}>\n <Underlay {...underlayProps} />\n <TrayWrapper\n ref={mergeRefs(domRef, containmentRef)}\n qa={qa}\n overlayProps={overlayProps}\n isFixedHeight={isFixedHeight}\n isNonModal={isNonModal}\n styles={styles}\n onClose={onClose}\n >\n {children}\n </TrayWrapper>\n </Overlay>\n </ModalContainmentProvider>\n );\n}\n\nlet TrayWrapper = forwardRef(function TrayWrapper(\n props: CubeTrayWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n isOpen,\n styles,\n isFixedHeight,\n isNonModal,\n overlayProps,\n transitionState,\n ...otherProps\n } = props;\n usePreventScroll();\n let { modalProps } = useModal({\n isDisabled: isNonModal,\n });\n\n let domProps = mergeProps(otherProps, overlayProps);\n\n return (\n <TrayWrapperElement\n mods={{\n open: isOpen,\n }}\n >\n <TrayElement\n qa={qa || 'Tray'}\n styles={styles}\n mods={{\n open: isOpen,\n enter: transitionState === 'enter',\n exit: transitionState === 'exit',\n unmounted: transitionState === 'unmounted',\n entered: transitionState === 'entered',\n 'fixed-height': isFixedHeight,\n }}\n {...domProps}\n {...modalProps}\n ref={ref}\n >\n {children}\n </TrayElement>\n </TrayWrapperElement>\n );\n});\n\nlet _Tray = forwardRef(Tray);\n\n_Tray.displayName = 'Tray';\n\nexport { _Tray as Tray };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
|
+
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
|
|
4
|
+
import { ariaHideOutside } from "react-aria/private/overlays/ariaHideOutside";
|
|
5
|
+
|
|
6
|
+
//#region src/components/overlays/Modal/modal-containment.ts
|
|
7
|
+
const ModalContainmentContext = createContext(null);
|
|
8
|
+
const ModalContainmentProvider = ModalContainmentContext.Provider;
|
|
9
|
+
/**
|
|
10
|
+
* The open modals, in the order they opened. A modal opened while another is
|
|
11
|
+
* open, or in the same commit, need not be one of its layers — a dialog opened
|
|
12
|
+
* through `useDialogContainer` or the alert dialog API is not — so each one
|
|
13
|
+
* keeps the modals above it readable, and they hide it in turn.
|
|
14
|
+
*/
|
|
15
|
+
const openModals = [];
|
|
16
|
+
/**
|
|
17
|
+
* Hides anew for every open modal, lowest first, so the top one hides the
|
|
18
|
+
* others and its observer is the one left watching.
|
|
19
|
+
*/
|
|
20
|
+
function hideBehindOpenModals() {
|
|
21
|
+
openModals.forEach((open, index) => open.hide(openModals.slice(index + 1)));
|
|
22
|
+
}
|
|
23
|
+
function createModalContainment() {
|
|
24
|
+
const layers = /* @__PURE__ */ new Map();
|
|
25
|
+
let isActive = false;
|
|
26
|
+
let shown = /* @__PURE__ */ new Set();
|
|
27
|
+
let release;
|
|
28
|
+
const open = {
|
|
29
|
+
modal: null,
|
|
30
|
+
hide(above) {
|
|
31
|
+
const modals = [open, ...above].flatMap(({ modal }) => modal ? [modal] : []);
|
|
32
|
+
const next = open.modal ? ariaHideOutside([...modals, ...layers.keys()]) : void 0;
|
|
33
|
+
release?.();
|
|
34
|
+
release = next;
|
|
35
|
+
shown = new Set(next ? layers.keys() : []);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
keep(element) {
|
|
40
|
+
layers.set(element, (layers.get(element) ?? 0) + 1);
|
|
41
|
+
if (release && !shown.has(element)) hideBehindOpenModals();
|
|
42
|
+
return () => {
|
|
43
|
+
const count = (layers.get(element) ?? 1) - 1;
|
|
44
|
+
if (count) layers.set(element, count);
|
|
45
|
+
else layers.delete(element);
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
setElement(element) {
|
|
49
|
+
if (!element || element === open.modal) return;
|
|
50
|
+
open.modal = element;
|
|
51
|
+
if (isActive) hideBehindOpenModals();
|
|
52
|
+
},
|
|
53
|
+
setActive(next) {
|
|
54
|
+
if (next === isActive) return;
|
|
55
|
+
isActive = next;
|
|
56
|
+
if (next) openModals.push(open);
|
|
57
|
+
else {
|
|
58
|
+
openModals.splice(openModals.indexOf(open), 1);
|
|
59
|
+
release?.();
|
|
60
|
+
release = void 0;
|
|
61
|
+
shown = /* @__PURE__ */ new Set();
|
|
62
|
+
}
|
|
63
|
+
hideBehindOpenModals();
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* For a modal overlay. While `isModal && isOpen`, hides the page outside the
|
|
69
|
+
* element given `ref` and outside the layers opened from it. Returns that ref,
|
|
70
|
+
* and the containment to provide to the overlay's content: its own, or the
|
|
71
|
+
* enclosing one for an overlay that is not modal, so the layers opened from it
|
|
72
|
+
* still register with a modal around it. The overlay itself is a layer of the
|
|
73
|
+
* enclosing modal either way.
|
|
74
|
+
*/
|
|
75
|
+
function useModalContainment(isModal, isOpen) {
|
|
76
|
+
const $ = c(10);
|
|
77
|
+
const parent = useContext(ModalContainmentContext);
|
|
78
|
+
const [containment] = useState(createModalContainment);
|
|
79
|
+
const layerRef = useModalLayerRef();
|
|
80
|
+
const isActive = isModal && isOpen;
|
|
81
|
+
let t0;
|
|
82
|
+
let t1;
|
|
83
|
+
if ($[0] !== containment || $[1] !== isActive) {
|
|
84
|
+
t0 = () => {
|
|
85
|
+
if (!isActive) return;
|
|
86
|
+
containment.setActive(true);
|
|
87
|
+
return () => containment.setActive(false);
|
|
88
|
+
};
|
|
89
|
+
t1 = [containment, isActive];
|
|
90
|
+
$[0] = containment;
|
|
91
|
+
$[1] = isActive;
|
|
92
|
+
$[2] = t0;
|
|
93
|
+
$[3] = t1;
|
|
94
|
+
} else {
|
|
95
|
+
t0 = $[2];
|
|
96
|
+
t1 = $[3];
|
|
97
|
+
}
|
|
98
|
+
useLayoutEffect(t0, t1);
|
|
99
|
+
let t2;
|
|
100
|
+
if ($[4] !== containment || $[5] !== layerRef) {
|
|
101
|
+
t2 = (element) => {
|
|
102
|
+
layerRef(element);
|
|
103
|
+
containment.setElement(element);
|
|
104
|
+
};
|
|
105
|
+
$[4] = containment;
|
|
106
|
+
$[5] = layerRef;
|
|
107
|
+
$[6] = t2;
|
|
108
|
+
} else t2 = $[6];
|
|
109
|
+
const ref = t2;
|
|
110
|
+
const t3 = isModal ? containment : parent;
|
|
111
|
+
let t4;
|
|
112
|
+
if ($[7] !== ref || $[8] !== t3) {
|
|
113
|
+
t4 = {
|
|
114
|
+
containment: t3,
|
|
115
|
+
ref
|
|
116
|
+
};
|
|
117
|
+
$[7] = ref;
|
|
118
|
+
$[8] = t3;
|
|
119
|
+
$[9] = t4;
|
|
120
|
+
} else t4 = $[9];
|
|
121
|
+
return t4;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* A ref for the root of an overlay that renders in a portal: opened from inside
|
|
125
|
+
* a modal, it stays readable while the modal hides the page.
|
|
126
|
+
*/
|
|
127
|
+
function useModalLayerRef() {
|
|
128
|
+
const $ = c(2);
|
|
129
|
+
const containment = useContext(ModalContainmentContext);
|
|
130
|
+
const release = useRef(void 0);
|
|
131
|
+
let t0;
|
|
132
|
+
if ($[0] !== containment) {
|
|
133
|
+
t0 = (element) => {
|
|
134
|
+
release.current?.();
|
|
135
|
+
release.current = element ? containment?.keep(element) : void 0;
|
|
136
|
+
};
|
|
137
|
+
$[0] = containment;
|
|
138
|
+
$[1] = t0;
|
|
139
|
+
} else t0 = $[1];
|
|
140
|
+
return t0;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
//#endregion
|
|
144
|
+
export { ModalContainmentProvider, useModalContainment, useModalLayerRef };
|
|
145
|
+
//# sourceMappingURL=modal-containment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-containment.js","names":["createContext","useContext","useLayoutEffect","useRef","useState","ariaHideOutside","ModalContainment","keep","element","Element","OwnModalContainment","setElement","setActive","isActive","OpenModal","modal","hide","above","ModalContainmentContext","ModalContainmentProvider","Provider","openModals","hideBehindOpenModals","forEach","open","index","slice","createModalContainment","layers","Map","shown","Set","release","modals","flatMap","next","keys","undefined","set","get","has","count","delete","push","splice","indexOf","useModalContainment","isModal","isOpen","$","_c","parent","containment","layerRef","useModalLayerRef","t0","t1","t2","ref","t3","t4","current"],"sources":["../../../../src/components/overlays/Modal/modal-containment.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\n// React Aria's own modal overlays hide the page with this; the public barrel\n// does not export it. Sharing React Aria's copy shares its reference counts and\n// observer stack, so this and React Aria's own calls nest correctly.\nimport { ariaHideOutside } from 'react-aria/private/overlays/ariaHideOutside';\n\n/**\n * While a modal overlay is open, everything outside it is `aria-hidden`, so a\n * screen reader's reading cursor cannot wander onto the page behind it.\n *\n * The lists, menus, popovers and dialogs opened from inside a modal render in\n * portals outside its element, and must stay readable. Each one registers its\n * root with the nearest modal through `useModalLayerRef`. `aria-modal` can't\n * do this: it hides everything outside the dialog element, those lists too.\n */\ninterface ModalContainment {\n /** Keeps `element` readable while the modal is open. Returns a release. */\n keep(element: Element): () => void;\n}\n\ninterface OwnModalContainment extends ModalContainment {\n /** The modal's own element, from its ref. */\n setElement(element: Element | null): void;\n setActive(isActive: boolean): void;\n}\n\ninterface OpenModal {\n modal: Element | null;\n /** Hides everything but the modal, its layers and the modals `above` it. */\n hide(above: OpenModal[]): void;\n}\n\nconst ModalContainmentContext = createContext<ModalContainment | null>(null);\n\nexport const ModalContainmentProvider = ModalContainmentContext.Provider;\n\n/**\n * The open modals, in the order they opened. A modal opened while another is\n * open, or in the same commit, need not be one of its layers — a dialog opened\n * through `useDialogContainer` or the alert dialog API is not — so each one\n * keeps the modals above it readable, and they hide it in turn.\n */\nconst openModals: OpenModal[] = [];\n\n/**\n * Hides anew for every open modal, lowest first, so the top one hides the\n * others and its observer is the one left watching.\n */\nfunction hideBehindOpenModals() {\n openModals.forEach((open, index) => open.hide(openModals.slice(index + 1)));\n}\n\nfunction createModalContainment(): OwnModalContainment {\n const layers = new Map<Element, number>();\n let isActive = false;\n let shown = new Set<Element>();\n let release: (() => void) | undefined;\n\n const open: OpenModal = {\n modal: null,\n hide(above) {\n // Hide anew before releasing the previous call, so nothing behind the\n // modal is shown in between. The new call also takes over the old one's\n // observer, dropping what it had not yet hidden, and the release reveals\n // any layer or modal the old call had already hidden.\n const modals = [open, ...above].flatMap(({ modal }) =>\n modal ? [modal] : [],\n );\n const next = open.modal\n ? ariaHideOutside([...modals, ...layers.keys()])\n : undefined;\n\n release?.();\n release = next;\n shown = new Set(next ? layers.keys() : []);\n },\n };\n\n return {\n keep(element) {\n layers.set(element, (layers.get(element) ?? 0) + 1);\n\n if (release && !shown.has(element)) hideBehindOpenModals();\n\n return () => {\n const count = (layers.get(element) ?? 1) - 1;\n\n // A released layer is leaving the page, or is being kept again at\n // once by a new ref; either way nothing needs hiding right now.\n if (count) layers.set(element, count);\n else layers.delete(element);\n };\n },\n setElement(element) {\n // The element moves when its portal does: a dialog open from the first\n // render is portaled before `<Root>` is ready, then again into it. A\n // detached element is replaced in the same commit, or the modal is\n // unmounting and `setActive(false)` lets go.\n if (!element || element === open.modal) return;\n\n open.modal = element;\n\n if (isActive) hideBehindOpenModals();\n },\n setActive(next) {\n if (next === isActive) return;\n\n isActive = next;\n\n if (next) {\n openModals.push(open);\n } else {\n openModals.splice(openModals.indexOf(open), 1);\n release?.();\n release = undefined;\n shown = new Set();\n }\n\n hideBehindOpenModals();\n },\n };\n}\n\n/**\n * For a modal overlay. While `isModal && isOpen`, hides the page outside the\n * element given `ref` and outside the layers opened from it. Returns that ref,\n * and the containment to provide to the overlay's content: its own, or the\n * enclosing one for an overlay that is not modal, so the layers opened from it\n * still register with a modal around it. The overlay itself is a layer of the\n * enclosing modal either way.\n */\nexport function useModalContainment(isModal: boolean, isOpen: boolean) {\n const parent = useContext(ModalContainmentContext);\n const [containment] = useState(createModalContainment);\n const layerRef = useModalLayerRef();\n const isActive = isModal && isOpen;\n\n // A layout effect, so the page is hidden in the commit that inserts the\n // overlay. A modal already open hides what is inserted after it once its\n // observer runs, and a passive effect here could come too late: a modal\n // hidden that way stays hidden.\n useLayoutEffect(() => {\n if (!isActive) return;\n\n containment.setActive(true);\n\n return () => containment.setActive(false);\n }, [containment, isActive]);\n\n const ref = (element: Element | null) => {\n layerRef(element);\n containment.setElement(element);\n };\n\n return { containment: isModal ? containment : parent, ref };\n}\n\n/**\n * A ref for the root of an overlay that renders in a portal: opened from inside\n * a modal, it stays readable while the modal hides the page.\n */\nexport function useModalLayerRef() {\n const containment = useContext(ModalContainmentContext);\n const release = useRef<(() => void) | undefined>(undefined);\n\n return (element: Element | null) => {\n release.current?.();\n release.current = element ? containment?.keep(element) : undefined;\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.194.0 | Cube Dev Team */
|
|
2
2
|
import { useNotificationContext } from "./NotificationContext.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { Block } from "../../Block.js";
|
|
3
3
|
import { ItemActionProvider } from "../../actions/ItemActionContext.js";
|
|
4
|
+
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
5
|
import { Space } from "../../layout/Space.js";
|
|
5
6
|
import { _Item } from "../../content/Item/Item.js";
|
|
6
|
-
import { useI18n } from "../../../i18n/useI18n.js";
|
|
7
7
|
import { getThemeIcon } from "../Toast/useToast.js";
|
|
8
8
|
import { Flex } from "../../layout/Flex.js";
|
|
9
9
|
import { NotificationAction, NotificationDismissProvider } from "./NotificationAction.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { NotificationCard } from "./NotificationCard.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { useViewportSize } from "../../../utils/react/useViewportSize.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { NotificationContext, PersistentNotificationsContext, ToastContext, useNotificationContext, useToastContext } from "./NotificationContext.js";
|
|
3
3
|
import { OverlayContainer } from "./OverlayContainer.js";
|
|
4
4
|
import { useNotificationState } from "./use-notification-state.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { _Text } from "../../content/Text.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/overlays/Notifications/dismissed-storage.ts
|
|
3
3
|
const STORAGE_KEY = "cube-ui-dismissed-notifications";
|
|
4
4
|
const TTL_MS = 864e5;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useToastContext } from "./NotificationContext.js";
|
|
3
3
|
import { NotificationAction } from "./NotificationAction.js";
|
|
4
4
|
import { NotificationCard } from "./NotificationCard.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
4
4
|
import { useNotificationContext } from "./NotificationContext.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { cleanupAndGetValidIds, saveDismissedId } from "./dismissed-storage.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { _Item } from "../../content/Item/Item.js";
|
|
3
3
|
import { getThemeIcon } from "./useToast.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.194.0 | Cube Dev Team */
|
|
2
2
|
import { useToastContext } from "../Notifications/NotificationContext.js";
|
|
3
3
|
import { useProgressToast } from "./useProgressToast.js";
|
|
4
4
|
import { getThemeIcon, useToast } from "./useToast.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { CheckIcon } from "../../../icons/CheckIcon.js";
|
|
3
3
|
import { InfoCircleIcon } from "../../../icons/InfoCircleIcon.js";
|
|
4
4
|
import { useToastContext } from "../Notifications/NotificationContext.js";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
4
4
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
5
5
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
6
|
+
import { useModalLayerRef } from "../Modal/modal-containment.js";
|
|
6
7
|
import { TooltipContext } from "./context.js";
|
|
7
8
|
import { c } from "react/compiler-runtime";
|
|
8
9
|
import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
|
|
@@ -108,17 +109,19 @@ const TooltipTipElement = tasty({ styles: {
|
|
|
108
109
|
transition: "theme"
|
|
109
110
|
} });
|
|
110
111
|
function Tooltip(props, ref) {
|
|
111
|
-
const $ = c(
|
|
112
|
+
const $ = c(31);
|
|
112
113
|
let { ref: overlayRef, transitionRef, arrowProps, state, overlayProps, minOffset, minScale, isMaterial: isMaterialContext, isLight: isLightContext, phase, isShown, updatePosition, ...tooltipProviderProps } = useContext(TooltipContext);
|
|
113
114
|
const defaultRef = useRef(null);
|
|
115
|
+
const layerRef = useModalLayerRef();
|
|
114
116
|
const t0 = overlayRef ?? defaultRef;
|
|
115
117
|
let t1;
|
|
116
|
-
if ($[0] !==
|
|
117
|
-
t1 = mergeRefs(transitionRef, t0);
|
|
118
|
-
$[0] =
|
|
119
|
-
$[1] =
|
|
120
|
-
$[2] =
|
|
121
|
-
|
|
118
|
+
if ($[0] !== layerRef || $[1] !== t0 || $[2] !== transitionRef) {
|
|
119
|
+
t1 = mergeRefs(transitionRef, t0, layerRef);
|
|
120
|
+
$[0] = layerRef;
|
|
121
|
+
$[1] = t0;
|
|
122
|
+
$[2] = transitionRef;
|
|
123
|
+
$[3] = t1;
|
|
124
|
+
} else t1 = $[3];
|
|
122
125
|
const combinedRef = t1;
|
|
123
126
|
const finalOverlayRef = overlayRef ?? defaultRef;
|
|
124
127
|
props = mergeProps$1(props, tooltipProviderProps);
|
|
@@ -129,59 +132,59 @@ function Tooltip(props, ref) {
|
|
|
129
132
|
const styles = extractStyles(otherProps, CONTAINER_STYLES);
|
|
130
133
|
const { tooltipProps } = useTooltip(props, state);
|
|
131
134
|
let t5;
|
|
132
|
-
if ($[
|
|
135
|
+
if ($[4] !== finalOverlayRef) {
|
|
133
136
|
t5 = () => createDOMRef(finalOverlayRef);
|
|
134
|
-
$[
|
|
135
|
-
$[
|
|
136
|
-
} else t5 = $[
|
|
137
|
+
$[4] = finalOverlayRef;
|
|
138
|
+
$[5] = t5;
|
|
139
|
+
} else t5 = $[5];
|
|
137
140
|
useImperativeHandle(ref, t5);
|
|
138
141
|
if (typeof minOffset === "number") minOffset = `${minOffset}px`;
|
|
139
142
|
if (typeof minScale === "number") minScale = String(minScale);
|
|
140
143
|
const placementDirection = placement?.split(" ")[0] || placement || "top";
|
|
141
144
|
const t6 = isShown ?? isOpen;
|
|
142
145
|
let t7;
|
|
143
|
-
if ($[
|
|
146
|
+
if ($[6] !== isLight || $[7] !== isMaterial || $[8] !== t6) {
|
|
144
147
|
t7 = {
|
|
145
148
|
material: isMaterial,
|
|
146
149
|
light: isLight,
|
|
147
150
|
open: t6
|
|
148
151
|
};
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
152
|
-
$[
|
|
153
|
-
} else t7 = $[
|
|
152
|
+
$[6] = isLight;
|
|
153
|
+
$[7] = isMaterial;
|
|
154
|
+
$[8] = t6;
|
|
155
|
+
$[9] = t7;
|
|
156
|
+
} else t7 = $[9];
|
|
154
157
|
const mods = t7;
|
|
155
158
|
let t8;
|
|
156
|
-
if ($[
|
|
159
|
+
if ($[10] !== updatePosition) {
|
|
157
160
|
t8 = () => {
|
|
158
161
|
updatePosition?.();
|
|
159
162
|
};
|
|
160
|
-
$[
|
|
161
|
-
$[
|
|
162
|
-
} else t8 = $[
|
|
163
|
+
$[10] = updatePosition;
|
|
164
|
+
$[11] = t8;
|
|
165
|
+
} else t8 = $[11];
|
|
163
166
|
let t9;
|
|
164
|
-
if ($[
|
|
167
|
+
if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
165
168
|
t9 = [];
|
|
166
|
-
$[
|
|
167
|
-
} else t9 = $[
|
|
169
|
+
$[12] = t9;
|
|
170
|
+
} else t9 = $[12];
|
|
168
171
|
useLayoutEffect$1(t8, t9);
|
|
169
172
|
let t10;
|
|
170
|
-
if ($[
|
|
173
|
+
if ($[13] !== arrowProps || $[14] !== mods || $[15] !== placementDirection || $[16] !== tipStyles) {
|
|
171
174
|
t10 = /* @__PURE__ */ jsx(TooltipTipElement, {
|
|
172
175
|
"data-placement": placementDirection,
|
|
173
176
|
styles: tipStyles,
|
|
174
177
|
mods,
|
|
175
178
|
...arrowProps
|
|
176
179
|
});
|
|
177
|
-
$[
|
|
178
|
-
$[
|
|
179
|
-
$[
|
|
180
|
-
$[
|
|
181
|
-
$[
|
|
182
|
-
} else t10 = $[
|
|
180
|
+
$[13] = arrowProps;
|
|
181
|
+
$[14] = mods;
|
|
182
|
+
$[15] = placementDirection;
|
|
183
|
+
$[16] = tipStyles;
|
|
184
|
+
$[17] = t10;
|
|
185
|
+
} else t10 = $[17];
|
|
183
186
|
let t11;
|
|
184
|
-
if ($[
|
|
187
|
+
if ($[18] !== combinedRef || $[19] !== minOffset || $[20] !== minScale || $[21] !== mods || $[22] !== otherProps.qa || $[23] !== overlayProps || $[24] !== phase || $[25] !== placementDirection || $[26] !== props.children || $[27] !== styles || $[28] !== t10 || $[29] !== tooltipProps) {
|
|
185
188
|
t11 = /* @__PURE__ */ jsxs(TooltipElement, {
|
|
186
189
|
...tooltipProps,
|
|
187
190
|
...overlayProps,
|
|
@@ -195,20 +198,20 @@ function Tooltip(props, ref) {
|
|
|
195
198
|
"data-phase": phase,
|
|
196
199
|
children: [props.children, t10]
|
|
197
200
|
});
|
|
198
|
-
$[
|
|
199
|
-
$[
|
|
200
|
-
$[
|
|
201
|
-
$[
|
|
202
|
-
$[
|
|
203
|
-
$[
|
|
204
|
-
$[
|
|
205
|
-
$[
|
|
206
|
-
$[
|
|
207
|
-
$[
|
|
208
|
-
$[
|
|
209
|
-
$[
|
|
210
|
-
$[
|
|
211
|
-
} else t11 = $[
|
|
201
|
+
$[18] = combinedRef;
|
|
202
|
+
$[19] = minOffset;
|
|
203
|
+
$[20] = minScale;
|
|
204
|
+
$[21] = mods;
|
|
205
|
+
$[22] = otherProps.qa;
|
|
206
|
+
$[23] = overlayProps;
|
|
207
|
+
$[24] = phase;
|
|
208
|
+
$[25] = placementDirection;
|
|
209
|
+
$[26] = props.children;
|
|
210
|
+
$[27] = styles;
|
|
211
|
+
$[28] = t10;
|
|
212
|
+
$[29] = tooltipProps;
|
|
213
|
+
$[30] = t11;
|
|
214
|
+
} else t11 = $[30];
|
|
212
215
|
return t11;
|
|
213
216
|
}
|
|
214
217
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["createDOMRef","DOMRefValue","BaseProps","CONTAINER_STYLES","ContainerStyleProps","Styles","tasty","ForwardedRef","forwardRef","useContext","useImperativeHandle","useRef","AriaTooltipProps","useTooltip","PlacementAxis","mergeProps","mergeRefs","useLayoutEffect","extractStyles","TooltipContext","TooltipElement","styles","display","fill","light","color","width","radius","padding","preset","backdropFilter","whiteSpace","overflowWrap","pointerEvents","material","filter","transition","translate","transformOrigin","scale","opacity","Description","$","TooltipTipElement","position","height","border","borderTop","borderBottom","top","left","right","bottom","transform","CubeTooltipProps","tipStyles","showIcon","placement","isMaterial","isOpen","isLight","onOpenChange","defaultOpen","shouldFlip","Tooltip","props","ref","_c","overlayRef","transitionRef","arrowProps","state","overlayProps","minOffset","minScale","isMaterialContext","isLightContext","phase","isShown","updatePosition","tooltipProviderProps","defaultRef","t0","t1","combinedRef","finalOverlayRef","t2","t3","t4","otherProps","undefined","tooltipProps","t5","String","placementDirection","split","t6","t7","open","mods","t8","t9","Symbol","for","t10","t11","qa","children","_Tooltip","displayName"],"sources":["../../../../src/components/overlays/Tooltip/Tooltip.tsx"],"sourcesContent":["import { createDOMRef } from '@react-spectrum/utils';\nimport { DOMRefValue } from '@react-types/shared';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n useContext,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport { AriaTooltipProps, useTooltip } from 'react-aria';\n\nimport { PlacementAxis } from '../../../shared';\nimport { mergeProps, mergeRefs, useLayoutEffect } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { TooltipContext } from './context';\n\nexport type { AriaTooltipProps };\n\nconst TooltipElement = tasty({\n styles: {\n display: 'block',\n // The DEFAULT (dark) tooltip is intentionally scheme-invariant:\n // `#surface-inverse.85` + `#white` keep it the \"always dark\" tooltip in\n // light, dark, and high-contrast schemes — matching the legacy `#dark.85`\n // + `#white` design.\n //\n // The `light` variant uses the adaptive surface tokens (`#surface` +\n // `#surface-text-soft`) so it follows the page scheme. This restores the\n // softer legacy `#dark-02` look in light mode (cr≈9.2) and stays AA-safe\n // in dark mode (the previous fixed `#surface-inverse` was much darker\n // than the legacy `#dark-02`, and pairing the fixed `#white` fill with\n // the adaptive `#surface-text-soft` text — the LEGACY_ALIASES port of\n // `#dark-02` — would collapse to cr≈1.8 in dark schemes; using `#surface`\n // for the fill keeps both ends of the pair adapting together).\n fill: {\n '': '#surface-inverse.85',\n light: '#surface',\n },\n color: {\n '': '#white',\n light: '#surface-text-soft',\n },\n width: 'initial min(36x, (100dvw - 4x)) max-content',\n radius: true,\n padding: '.75x 1x',\n preset: 't4',\n backdropFilter: 'blur(.5x)',\n whiteSpace: 'pre-line',\n // The tooltip is width-capped (`min(36x, …)`) with `max-width: max-content`,\n // so a run with no spaces — a URL, a token, an identifier, an error string —\n // stays on one line and spills straight out of the bubble. `anywhere` breaks\n // it at the cap instead. It inherits, so tooltip children wrap too.\n overflowWrap: 'anywhere',\n pointerEvents: {\n '': 'none',\n material: 'auto',\n },\n filter: {\n '': false,\n light: 'drop-shadow(0 0 1px #surface-text-soft.2)',\n },\n transition:\n 'translate $transition ease-out, scale $transition ease-out, theme $transition ease-out',\n translate: {\n '': '0 0',\n 'open & [data-placement=\"top\"]': '0 0',\n '!open & [data-placement=\"top\"]': '0 1x',\n 'open & [data-placement=\"bottom\"]': '0 0',\n '!open & [data-placement=\"bottom\"]': '0 -1x',\n 'open & [data-placement=\"left\"]': '0 0',\n '!open & [data-placement=\"left\"]': '1x 0',\n 'open & [data-placement=\"right\"]': '0 0',\n '!open & [data-placement=\"right\"]': '-1x 0',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n '[data-placement=\"left\"]': 'right center',\n '[data-placement=\"right\"]': 'left center',\n },\n scale: {\n '': '1 1',\n '!open': '1 .8',\n '!open & ([data-placement=\"left\"] | [data-placement=\"right\"])': '.8 1',\n },\n opacity: {\n '': 1,\n '!open': 0.001,\n },\n\n // A secondary line under the title — the description an auto tooltip\n // shows when a row's label and description are both cut off. Lighter and\n // dimmed like the row's own description, from the tooltip's own color, so\n // it follows the `light` variant. Direct children only: a tooltip whose\n // body is an `Item` keeps that item's description as it is.\n Description: {\n $: '>',\n display: 'block',\n preset: 't4n',\n opacity: 0.75,\n },\n },\n});\n\nconst TooltipTipElement = tasty({\n styles: {\n position: 'absolute',\n width: '1px',\n height: '1px',\n border: '.5x #clear',\n borderTop: {\n '': '.5x solid #surface-inverse.85',\n light: '.5x solid #surface',\n },\n borderBottom: '0',\n top: {\n '': 'initial',\n '[data-placement=\"left\"] | [data-placement=\"right\"]': '50%',\n '[data-placement=\"top\"]': '100%',\n },\n left: {\n '': 'initial',\n '[data-placement=\"top\"] | [data-placement=\"bottom\"]': '50%',\n '[data-placement=\"left\"]': '100%',\n },\n right: {\n '': 'initial',\n '[data-placement=\"right\"]': '100%',\n },\n bottom: {\n '': 'initial',\n '[data-placement=\"bottom\"]': '100%',\n },\n transform: {\n '': 'translate((-.375x - 1px), 0)',\n '[data-placement=\"bottom\"]':\n 'translate((-.375x - 1px), 0) rotate(180deg)',\n '[data-placement=\"left\"]': 'translate(-.25x, -.25x) rotate(270deg)',\n '[data-placement=\"right\"]': 'translate(.25x, -.25x) rotate(90deg)',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeTooltipProps\n extends BaseProps,\n ContainerStyleProps,\n AriaTooltipProps {\n tipStyles?: Styles;\n showIcon?: boolean;\n placement?: PlacementAxis;\n isMaterial?: boolean;\n isOpen?: boolean;\n isLight?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n shouldFlip?: boolean;\n}\n\nfunction Tooltip(\n props: CubeTooltipProps,\n ref: ForwardedRef<DOMRefValue<HTMLDivElement>>,\n) {\n let {\n ref: overlayRef,\n transitionRef,\n arrowProps,\n state,\n overlayProps,\n minOffset,\n minScale,\n isMaterial: isMaterialContext,\n isLight: isLightContext,\n phase,\n isShown,\n updatePosition,\n ...tooltipProviderProps\n } = useContext(TooltipContext);\n\n const defaultRef = useRef<HTMLDivElement>(null);\n const combinedRef = mergeRefs(transitionRef, overlayRef ?? defaultRef);\n const finalOverlayRef = overlayRef ?? defaultRef;\n\n props = mergeProps(props, tooltipProviderProps);\n\n let {\n placement = 'top',\n isOpen,\n tipStyles,\n showIcon,\n isMaterial = isMaterialContext,\n isLight = isLightContext,\n ...otherProps\n } = props;\n\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n let { tooltipProps } = useTooltip(props, state);\n\n // Sync ref with overlayRef from context.\n useImperativeHandle(ref, () => createDOMRef(finalOverlayRef));\n\n if (typeof minOffset === 'number') {\n minOffset = `${minOffset}px`;\n }\n\n if (typeof minScale === 'number') {\n minScale = String(minScale);\n }\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || placement || 'top';\n\n const mods = {\n material: isMaterial,\n light: isLight,\n open: isShown ?? isOpen,\n };\n\n // Update position when tooltip becomes visible\n useLayoutEffect(() => {\n updatePosition?.();\n }, []);\n\n return (\n <TooltipElement\n {...tooltipProps}\n {...overlayProps}\n ref={combinedRef}\n // `qa` is typed through `BaseProps` but nothing forwarded it, so a test\n // had no way to tell one control's tooltip from another's.\n qa={otherProps.qa}\n styles={styles}\n mods={mods}\n data-min-offset={minOffset}\n data-min-scale={minScale}\n data-placement={placementDirection}\n data-phase={phase}\n >\n {props.children}\n <TooltipTipElement\n data-placement={placementDirection}\n styles={tipStyles}\n mods={mods}\n {...arrowProps}\n />\n </TooltipElement>\n );\n}\n\n/**\n * Display container for Tooltip content. Has a directional arrow dependent on its placement.\n */\nlet _Tooltip = forwardRef(Tooltip);\n\n_Tooltip.displayName = 'Tooltip';\n\nexport { _Tooltip as Tooltip };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["createDOMRef","DOMRefValue","BaseProps","CONTAINER_STYLES","ContainerStyleProps","Styles","tasty","ForwardedRef","forwardRef","useContext","useImperativeHandle","useRef","AriaTooltipProps","useTooltip","PlacementAxis","mergeProps","mergeRefs","useLayoutEffect","extractStyles","useModalLayerRef","TooltipContext","TooltipElement","styles","display","fill","light","color","width","radius","padding","preset","backdropFilter","whiteSpace","overflowWrap","pointerEvents","material","filter","transition","translate","transformOrigin","scale","opacity","Description","$","TooltipTipElement","position","height","border","borderTop","borderBottom","top","left","right","bottom","transform","CubeTooltipProps","tipStyles","showIcon","placement","isMaterial","isOpen","isLight","onOpenChange","defaultOpen","shouldFlip","Tooltip","props","ref","_c","overlayRef","transitionRef","arrowProps","state","overlayProps","minOffset","minScale","isMaterialContext","isLightContext","phase","isShown","updatePosition","tooltipProviderProps","defaultRef","layerRef","t0","t1","combinedRef","finalOverlayRef","t2","t3","t4","otherProps","undefined","tooltipProps","t5","String","placementDirection","split","t6","t7","open","mods","t8","t9","Symbol","for","t10","t11","qa","children","_Tooltip","displayName"],"sources":["../../../../src/components/overlays/Tooltip/Tooltip.tsx"],"sourcesContent":["import { createDOMRef } from '@react-spectrum/utils';\nimport { DOMRefValue } from '@react-types/shared';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n useContext,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport { AriaTooltipProps, useTooltip } from 'react-aria';\n\nimport { PlacementAxis } from '../../../shared';\nimport { mergeProps, mergeRefs, useLayoutEffect } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useModalLayerRef } from '../Modal/modal-containment';\n\nimport { TooltipContext } from './context';\n\nexport type { AriaTooltipProps };\n\nconst TooltipElement = tasty({\n styles: {\n display: 'block',\n // The DEFAULT (dark) tooltip is intentionally scheme-invariant:\n // `#surface-inverse.85` + `#white` keep it the \"always dark\" tooltip in\n // light, dark, and high-contrast schemes — matching the legacy `#dark.85`\n // + `#white` design.\n //\n // The `light` variant uses the adaptive surface tokens (`#surface` +\n // `#surface-text-soft`) so it follows the page scheme. This restores the\n // softer legacy `#dark-02` look in light mode (cr≈9.2) and stays AA-safe\n // in dark mode (the previous fixed `#surface-inverse` was much darker\n // than the legacy `#dark-02`, and pairing the fixed `#white` fill with\n // the adaptive `#surface-text-soft` text — the LEGACY_ALIASES port of\n // `#dark-02` — would collapse to cr≈1.8 in dark schemes; using `#surface`\n // for the fill keeps both ends of the pair adapting together).\n fill: {\n '': '#surface-inverse.85',\n light: '#surface',\n },\n color: {\n '': '#white',\n light: '#surface-text-soft',\n },\n width: 'initial min(36x, (100dvw - 4x)) max-content',\n radius: true,\n padding: '.75x 1x',\n preset: 't4',\n backdropFilter: 'blur(.5x)',\n whiteSpace: 'pre-line',\n // The tooltip is width-capped (`min(36x, …)`) with `max-width: max-content`,\n // so a run with no spaces — a URL, a token, an identifier, an error string —\n // stays on one line and spills straight out of the bubble. `anywhere` breaks\n // it at the cap instead. It inherits, so tooltip children wrap too.\n overflowWrap: 'anywhere',\n pointerEvents: {\n '': 'none',\n material: 'auto',\n },\n filter: {\n '': false,\n light: 'drop-shadow(0 0 1px #surface-text-soft.2)',\n },\n transition:\n 'translate $transition ease-out, scale $transition ease-out, theme $transition ease-out',\n translate: {\n '': '0 0',\n 'open & [data-placement=\"top\"]': '0 0',\n '!open & [data-placement=\"top\"]': '0 1x',\n 'open & [data-placement=\"bottom\"]': '0 0',\n '!open & [data-placement=\"bottom\"]': '0 -1x',\n 'open & [data-placement=\"left\"]': '0 0',\n '!open & [data-placement=\"left\"]': '1x 0',\n 'open & [data-placement=\"right\"]': '0 0',\n '!open & [data-placement=\"right\"]': '-1x 0',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n '[data-placement=\"left\"]': 'right center',\n '[data-placement=\"right\"]': 'left center',\n },\n scale: {\n '': '1 1',\n '!open': '1 .8',\n '!open & ([data-placement=\"left\"] | [data-placement=\"right\"])': '.8 1',\n },\n opacity: {\n '': 1,\n '!open': 0.001,\n },\n\n // A secondary line under the title — the description an auto tooltip\n // shows when a row's label and description are both cut off. Lighter and\n // dimmed like the row's own description, from the tooltip's own color, so\n // it follows the `light` variant. Direct children only: a tooltip whose\n // body is an `Item` keeps that item's description as it is.\n Description: {\n $: '>',\n display: 'block',\n preset: 't4n',\n opacity: 0.75,\n },\n },\n});\n\nconst TooltipTipElement = tasty({\n styles: {\n position: 'absolute',\n width: '1px',\n height: '1px',\n border: '.5x #clear',\n borderTop: {\n '': '.5x solid #surface-inverse.85',\n light: '.5x solid #surface',\n },\n borderBottom: '0',\n top: {\n '': 'initial',\n '[data-placement=\"left\"] | [data-placement=\"right\"]': '50%',\n '[data-placement=\"top\"]': '100%',\n },\n left: {\n '': 'initial',\n '[data-placement=\"top\"] | [data-placement=\"bottom\"]': '50%',\n '[data-placement=\"left\"]': '100%',\n },\n right: {\n '': 'initial',\n '[data-placement=\"right\"]': '100%',\n },\n bottom: {\n '': 'initial',\n '[data-placement=\"bottom\"]': '100%',\n },\n transform: {\n '': 'translate((-.375x - 1px), 0)',\n '[data-placement=\"bottom\"]':\n 'translate((-.375x - 1px), 0) rotate(180deg)',\n '[data-placement=\"left\"]': 'translate(-.25x, -.25x) rotate(270deg)',\n '[data-placement=\"right\"]': 'translate(.25x, -.25x) rotate(90deg)',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeTooltipProps\n extends BaseProps,\n ContainerStyleProps,\n AriaTooltipProps {\n tipStyles?: Styles;\n showIcon?: boolean;\n placement?: PlacementAxis;\n isMaterial?: boolean;\n isOpen?: boolean;\n isLight?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n shouldFlip?: boolean;\n}\n\nfunction Tooltip(\n props: CubeTooltipProps,\n ref: ForwardedRef<DOMRefValue<HTMLDivElement>>,\n) {\n let {\n ref: overlayRef,\n transitionRef,\n arrowProps,\n state,\n overlayProps,\n minOffset,\n minScale,\n isMaterial: isMaterialContext,\n isLight: isLightContext,\n phase,\n isShown,\n updatePosition,\n ...tooltipProviderProps\n } = useContext(TooltipContext);\n\n const defaultRef = useRef<HTMLDivElement>(null);\n // Opened inside a modal, the tooltip stays readable while the modal hides\n // the page.\n const layerRef = useModalLayerRef();\n const combinedRef = mergeRefs(\n transitionRef,\n overlayRef ?? defaultRef,\n layerRef,\n );\n const finalOverlayRef = overlayRef ?? defaultRef;\n\n props = mergeProps(props, tooltipProviderProps);\n\n let {\n placement = 'top',\n isOpen,\n tipStyles,\n showIcon,\n isMaterial = isMaterialContext,\n isLight = isLightContext,\n ...otherProps\n } = props;\n\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n let { tooltipProps } = useTooltip(props, state);\n\n // Sync ref with overlayRef from context.\n useImperativeHandle(ref, () => createDOMRef(finalOverlayRef));\n\n if (typeof minOffset === 'number') {\n minOffset = `${minOffset}px`;\n }\n\n if (typeof minScale === 'number') {\n minScale = String(minScale);\n }\n\n // Extract primary placement direction for consistent styling\n const placementDirection = placement?.split(' ')[0] || placement || 'top';\n\n const mods = {\n material: isMaterial,\n light: isLight,\n open: isShown ?? isOpen,\n };\n\n // Update position when tooltip becomes visible\n useLayoutEffect(() => {\n updatePosition?.();\n }, []);\n\n return (\n <TooltipElement\n {...tooltipProps}\n {...overlayProps}\n ref={combinedRef}\n // `qa` is typed through `BaseProps` but nothing forwarded it, so a test\n // had no way to tell one control's tooltip from another's.\n qa={otherProps.qa}\n styles={styles}\n mods={mods}\n data-min-offset={minOffset}\n data-min-scale={minScale}\n data-placement={placementDirection}\n data-phase={phase}\n >\n {props.children}\n <TooltipTipElement\n data-placement={placementDirection}\n styles={tipStyles}\n mods={mods}\n {...arrowProps}\n />\n </TooltipElement>\n );\n}\n\n/**\n * Display container for Tooltip content. Has a directional arrow dependent on its placement.\n */\nlet _Tooltip = forwardRef(Tooltip);\n\n_Tooltip.displayName = 'Tooltip';\n\nexport { _Tooltip as Tooltip };\n"],"mappings":"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"}
|