@cube-dev/ui-kit 0.187.2 → 0.188.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 +33 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.d.ts +4 -0
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Action/Action.js.map +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +2 -2
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +3 -3
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +7 -5
- 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.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.d.ts +4 -0
- package/dist/components/actions/use-action.js +6 -1
- 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.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.d.ts +7 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +6 -1
- package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +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/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 +31 -5
- package/dist/components/data/DataTable/DataTable.js.map +1 -1
- package/dist/components/data/DataTable/types.d.ts +3 -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/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 +9 -7
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +82 -0
- package/dist/components/data/TableBase/column-styles.js.map +1 -0
- 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/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.d.ts +11 -0
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/types.js.map +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +9 -4
- package/dist/components/fields/ComboBox/ComboBox.js +2 -1
- 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 +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +46 -44
- 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.d.ts +2 -2
- 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 +3 -3
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.d.ts +2 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- 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.d.ts +9 -4
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +2 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +170 -158
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.d.ts +2 -2
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +2 -2
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.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/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +470 -407
- package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +22 -4
- 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/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.d.ts +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/types.js.map +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +78 -116
- 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/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.d.ts +2 -2
- package/dist/components/overlays/Dialog/DialogForm.js +4 -5
- package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +5 -6
- 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 +30 -0
- package/dist/components/overlays/Dialog/default-button-text.js.map +1 -0
- 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 +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +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 +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +4 -1
- package/dist/i18n/locales/en-US/uikit.js +4 -1
- package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -0
- package/dist/i18n/locales/es-ES/uikit.js +4 -1
- package/dist/i18n/locales/es-MX/uikit.js +4 -1
- package/dist/i18n/locales/fr-FR/uikit.js +4 -1
- package/dist/i18n/locales/it-IT/uikit.js +4 -1
- package/dist/i18n/locales/ja-JP/uikit.js +4 -1
- package/dist/i18n/locales/nb-NO/uikit.js +4 -1
- package/dist/i18n/locales/pt-BR/uikit.js +4 -1
- package/dist/i18n/locales/pt-PT/uikit.js +4 -1
- package/dist/i18n/locales/sv-SE/uikit.js +4 -1
- package/dist/i18n/locales/vi-VN/uikit.js +4 -1
- package/dist/i18n/locales.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 +2 -2
- package/dist/index.js +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/shared/form.d.ts +29 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/escapePropagation.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/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/components/actions/Action.md +1 -1
- package/docs/components/actions/Button.md +4 -2
- package/docs/components/actions/ItemButton.md +1 -0
- package/docs/components/actions/Link.md +1 -1
- package/docs/components/content/InfoBadge.md +1 -1
- package/docs/components/content/Item.md +1 -1
- package/docs/components/data/DataTable.md +18 -0
- package/docs/components/data/ItemTable.md +3 -1
- package/docs/components/fields/ComboBox.md +49 -1
- package/docs/components/fields/FilterPicker.md +3 -3
- package/docs/components/fields/NumberInput.md +27 -0
- package/docs/components/fields/PasswordInput.md +24 -0
- package/docs/components/fields/Picker.md +3 -3
- package/docs/components/fields/SearchComboBox.md +3 -1
- package/docs/components/fields/TagInput.md +4 -2
- package/docs/components/fields/TextArea.md +24 -0
- package/docs/components/fields/TextInput.md +24 -0
- package/docs/components/navigation/Tabs.md +8 -3
- package/docs/components/overlays/AlertDialog.md +3 -3
- package/docs/components/overlays/DialogForm.md +3 -3
- package/docs/components/overlays/UseDialogContainer.md +4 -7
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuSection.js","names":["Styles","useMenuSection","MenuItem","MenuItemProps","StyledMenu","StyledSection","StyledSectionHeading","CubeMenuSectionProps","T","itemStyles","headingStyles","size","MenuSection","props","$","_c","item","state","styles","heading","rendered","t0","t1","itemProps","headingProps","groupProps","t2","t3","Symbol","for","section","t4","childNodes","t5","map","node","menuItem","key","onAction","wrapper","t6","t7"],"sources":["../../../../src/components/actions/Menu/MenuSection.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport { useMenuSection } from 'react-aria';\n\nimport { MenuItem, MenuItemProps } from './MenuItem';\nimport { StyledMenu, StyledSection, StyledSectionHeading } from './styled';\n\nexport interface CubeMenuSectionProps<T> extends MenuItemProps<T> {\n itemStyles?: Styles;\n headingStyles?: Styles;\n size?: 'small' | 'medium' | (string & {});\n}\n\n/** @private */\nexport function MenuSection<T>(props: CubeMenuSectionProps<T>) {\n const { item, state, styles, itemStyles, headingStyles, size } = props;\n const heading = item.rendered;\n const { itemProps, headingProps, groupProps } = useMenuSection({\n heading,\n 'aria-label': item['aria-label'],\n });\n\n return (\n <>\n <StyledSection {...itemProps} styles={styles}>\n {heading && (\n <StyledSectionHeading\n {...headingProps}\n size={size}\n styles={headingStyles}\n >\n {heading}\n </StyledSectionHeading>\n )}\n <StyledMenu {...groupProps} mods={{ section: true }}>\n {[...item.childNodes].map((node) => {\n let menuItem = (\n <MenuItem\n key={node.key}\n item={node}\n styles={itemStyles}\n state={state}\n size={size}\n onAction={(node as unknown as MenuItemProps<T>).onAction}\n />\n );\n\n // `MenuItem` renders the item's `tooltip` itself, as `Menu` does\n // for items outside a section.\n if (node.props
|
|
1
|
+
{"version":3,"file":"MenuSection.js","names":["Styles","cloneElement","useMenuSection","MenuItem","MenuItemProps","StyledMenu","StyledSection","StyledSectionHeading","CubeMenuSectionProps","T","itemStyles","headingStyles","size","MenuSection","props","$","_c","item","state","styles","heading","rendered","t0","t1","itemProps","headingProps","groupProps","t2","t3","Symbol","for","section","t4","childNodes","t5","map","node","menuItem","key","onAction","wrapper","t6","t7"],"sources":["../../../../src/components/actions/Menu/MenuSection.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport { cloneElement } from 'react';\nimport { useMenuSection } from 'react-aria';\n\nimport { MenuItem, MenuItemProps } from './MenuItem';\nimport { StyledMenu, StyledSection, StyledSectionHeading } from './styled';\n\nexport interface CubeMenuSectionProps<T> extends MenuItemProps<T> {\n itemStyles?: Styles;\n headingStyles?: Styles;\n size?: 'small' | 'medium' | (string & {});\n}\n\n/** @private */\nexport function MenuSection<T>(props: CubeMenuSectionProps<T>) {\n const { item, state, styles, itemStyles, headingStyles, size } = props;\n const heading = item.rendered;\n const { itemProps, headingProps, groupProps } = useMenuSection({\n heading,\n 'aria-label': item['aria-label'],\n });\n\n return (\n <>\n <StyledSection {...itemProps} styles={styles}>\n {heading && (\n <StyledSectionHeading\n {...headingProps}\n size={size}\n styles={headingStyles}\n >\n {heading}\n </StyledSectionHeading>\n )}\n <StyledMenu {...groupProps} mods={{ section: true }}>\n {[...item.childNodes].map((node) => {\n let menuItem = (\n <MenuItem\n key={node.key}\n item={node}\n styles={itemStyles}\n state={state}\n size={size}\n onAction={(node as unknown as MenuItemProps<T>).onAction}\n />\n );\n\n // `MenuItem` renders the item's `tooltip` itself, as `Menu` does\n // for items outside a section. A `SubMenuTrigger` puts its\n // wrapper on the collection node rather than in the item's props.\n if (node.props?.wrapper) {\n menuItem = node.props.wrapper(menuItem);\n } else if ((node as any).wrapper) {\n menuItem = (node as any).wrapper(menuItem);\n }\n\n // The wrapper's element doesn't carry the item's key.\n return cloneElement(menuItem, { key: node.key });\n })}\n </StyledMenu>\n </StyledSection>\n </>\n );\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAOa,YAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACL,MAAA,EAAAC,MAAAC,OAAAC,QAAAT,YAAAC,eAAAC,SAAiEE;CACjE,MAAAM,UAAgBH,KAAII;CAGJ,MAAAC,KAAAL,KAAK;CAAa,IAAAM;AAAA,KAAAR,EAAA,OAAAK,WAAAL,EAAA,OAAAO,IAAA;AAF6BC,OAAA;GAAAH;GAAA,cAE/CE;GACf;AAAAP,IAAA,KAAAK;AAAAL,IAAA,KAAAO;AAAAP,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAHD,MAAA,EAAAS,WAAAC,cAAAC,eAAgDxB,eAAeqB,GAG7D;CAAC,IAAAI;AAAA,KAAAZ,EAAA,OAAAK,WAAAL,EAAA,OAAAU,gBAAAV,EAAA,OAAAJ,iBAAAI,EAAA,OAAAH,MAAA;AAKIe,OAAAP,WACC,oBAAC;GAAoB,GACfK;GACEb;GACED,QAAAA;aAEPS;IAEJ;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAU;AAAAV,IAAA,KAAAJ;AAAAI,IAAA,KAAAH;AAAAG,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAAA,IAAAa;AAAA,KAAAb,EAAA,OAAAc,OAAAC,IAAA,4BAAA,EAAA;AACiCF,OAAA,EAAAG,SAAW,MAAM;AAAAhB,IAAA,KAAAa;OAAAA,MAAAb,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,OAAAE,KAAAgB,YAAA;AAChDD,OAAA,CAAA,GAAIf,KAAIgB,WAAY;AAAAlB,IAAA,KAAAE,KAAAgB;AAAAlB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,QAAAL,cAAAK,EAAA,QAAAH,QAAAG,EAAA,QAAAG,SAAAH,EAAA,QAAAiB,IAAA;AAApBE,OAAAF,GAAoBG,KAAKC,SAAA;GACxB,IAAAC,WACE,oBAAC;IAEOD,MAAAA;IACE1B,QAAAA;IACDQ;IACDN;IACI,UAACwB,KAAmCG;MALzCH,KAAIE,IAMT;AAMJ,OAAIF,KAAItB,OAAe0B,QACrBH,YAAWD,KAAItB,MAAM0B,QAASH,SAAS;YAC7BD,KAAWI,QACrBH,YAAYD,KAAWI,QAAUH,SAAS;AAC3C,UAGMpC,aAAaoC,UAAU,EAAAC,KAAOF,KAAIE,KAAM,CAAC;IAChD;AAAAvB,IAAA,MAAAL;AAAAK,IAAA,MAAAH;AAAAG,IAAA,MAAAG;AAAAH,IAAA,MAAAiB;AAAAjB,IAAA,MAAAmB;OAAAA,MAAAnB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAW,cAAAX,EAAA,QAAAmB,IAAA;AAxBJO,OAAA,oBAAC;GAAU,GAAKf;GAAkB,MAAAE;aAC/BM;IAwBU;AAAAnB,IAAA,MAAAW;AAAAX,IAAA,MAAAmB;AAAAnB,IAAA,MAAA0B;OAAAA,MAAA1B,EAAA;CAAA,IAAA2B;AAAA,KAAA3B,EAAA,QAAAS,aAAAT,EAAA,QAAAI,UAAAJ,EAAA,QAAAY,MAAAZ,EAAA,QAAA0B,IAAA;AApCjBC,OAAA,4CACE,qBAAC;GAAa,GAAKlB;GAAmBL;cACnCQ,IASDc;IA0Bc,GACf;AAAA1B,IAAA,MAAAS;AAAAT,IAAA,MAAAI;AAAAJ,IAAA,MAAAY;AAAAZ,IAAA,MAAA0B;AAAA1B,IAAA,MAAA2B;OAAAA,MAAA3B,EAAA;AAAA,QAtCH2B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { SlotProvider } from "../../../utils/react/Slots.js";
|
|
3
3
|
import { usePopoverSync } from "../../../utils/react/usePopoverSync.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.188.0 | Cube Dev Team */
|
|
2
2
|
import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { MenuContext, useMenuContext } from "./context.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { DEFAULT_CLEAR_STYLES } from "../../../data/item-themes.js";
|
|
3
3
|
import { Space } from "../../layout/Space.js";
|
|
4
4
|
import { DEFAULT_BUTTON_STYLES } from "../Button/Button.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { ItemActionProvider, useItemActionContext } from "./ItemActionContext.js";
|
|
3
3
|
import { openLink, parseTo, performClickHandler, useAction } from "./use-action.js";
|
|
4
4
|
import { ItemAction } from "./ItemAction/ItemAction.js";
|
|
@@ -9,6 +9,10 @@ import { FocusableRef } from "@react-types/shared";
|
|
|
9
9
|
//#region src/components/actions/use-action.d.ts
|
|
10
10
|
interface CubeUseActionProps<T extends TagName = 'a' | 'button' | 'span' | 'div'> extends AllBaseProps<T>, Omit<AriaButtonProps, 'type'> {
|
|
11
11
|
to?: NavigateArg;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `aria-label` for the accessible name, and `children` for
|
|
14
|
+
* visible text. Not every action honours it: `ItemAction` ignores it.
|
|
15
|
+
*/
|
|
12
16
|
label?: string;
|
|
13
17
|
htmlType?: 'button' | 'submit' | 'reset' | undefined;
|
|
14
18
|
navigationOptions?: NavigateOptions;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../_internal/hooks/use-event.js";
|
|
4
|
+
import { useWarn } from "../../_internal/hooks/use-warn.js";
|
|
4
5
|
import { useFocus as useFocus$1 } from "../../utils/react/interactions.js";
|
|
5
6
|
import { UIKitContext } from "../../provider.js";
|
|
6
7
|
import { useTracking } from "../../providers/TrackingProvider.js";
|
|
@@ -171,6 +172,10 @@ function performClickHandler(evt, { navigate, resolvedHref, to, onPress, trackin
|
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
174
|
const useAction = function useAction({ to, as, htmlType, label, mods, onPress, navigationOptions, ...props }, ref) {
|
|
175
|
+
useWarn(label !== void 0, {
|
|
176
|
+
key: "action-label-deprecated",
|
|
177
|
+
args: ["The \"label\" property of Button, ItemButton, ItemAction and Action is deprecated. Use \"aria-label\" for the accessible name and \"children\" for visible text."]
|
|
178
|
+
});
|
|
174
179
|
const tracking = useTracking();
|
|
175
180
|
const navigation = useContext(UIKitContext).navigation;
|
|
176
181
|
const isDisabled = props.isDisabled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-action.js","names":["useFocusableRef","FocusableRef","PressEvent","AllBaseProps","filterBaseProps","TagName","useContext","AriaButtonProps","useButton","useHover","useEvent","UIKitContext","useTracking","mergeProps","useFocus","NavigateArg","NavigateOptions","Path","To","LINK_PRESS_EVENT","BUTTON_PRESS_EVENT","NavigateLike","RelativeRoutingType","CubeUseActionProps","T","Omit","to","label","htmlType","navigationOptions","FILTER_OPTIONS","propNames","Set","openLink","href","target","link","document","createElement","rel","body","appendChild","click","removeChild","isExternalUrl","url","startsWith","includes","parseTo","newTab","nativeRoute","cleanTo","isHistoryNavigation","historyDelta","isHashNavigation","isExternal","undefined","slice","SanitizedPressEvent","type","pointerType","shiftKey","metaKey","ctrlKey","altKey","key","sanitizePressEvent","evt","safeEvt","Object","defineProperty","value","enumerable","configurable","e","performClickHandler","navigate","resolvedHref","onPress","tracking","element","qa","getAttribute","event","delta","id","targetElement","getElementById","scrollIntoView","behavior","block","inline","window","location","reload","assign","useAction","as","mods","props","ref","HTMLElement","navigation","isDisabled","useNavigate","useHref","domRef","mergedNavigationOptions","customOnPress","buttonProps","isPressed","hoverProps","isHovered","focusProps","isFocused","customProps","onClick","preventDefault","actionProps","hovered","pressed","focused","disabled"],"sources":["../../../src/components/actions/use-action.ts"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { FocusableRef, PressEvent } from '@react-types/shared';\nimport { AllBaseProps, filterBaseProps, TagName } from '@tenphi/tasty';\nimport { useContext } from 'react';\nimport { AriaButtonProps, useButton, useHover } from 'react-aria';\n\nimport { useEvent } from '../../_internal';\nimport { UIKitContext } from '../../provider';\nimport { useTracking } from '../../providers/TrackingProvider';\nimport { mergeProps } from '../../utils/react';\nimport { useFocus } from '../../utils/react/interactions';\n\n// Import specific types for internal usage\nimport type {\n NavigateArg,\n NavigateOptions,\n Path,\n To,\n} from '../../providers/navigation.types';\n\nconst LINK_PRESS_EVENT = 'Link Press';\nconst BUTTON_PRESS_EVENT = 'Button Press';\n\n// Re-export types for convenience\nexport type {\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from '../../providers/navigation.types';\n\nexport interface CubeUseActionProps<\n T extends TagName = 'a' | 'button' | 'span' | 'div',\n> extends AllBaseProps<T>,\n Omit<AriaButtonProps, 'type'> {\n to?: NavigateArg;\n label?: string;\n htmlType?: 'button' | 'submit' | 'reset' | undefined;\n navigationOptions?: NavigateOptions;\n}\n\nconst FILTER_OPTIONS = { propNames: new Set(['onMouseEnter', 'onMouseLeave']) };\n\n/**\n * Helper to open link.\n * @param {String} href\n * @param {String|Boolean} [target]\n */\nexport function openLink(href, target?) {\n const link = document.createElement('a');\n\n link.href = href;\n\n if (target) {\n link.target = target === true ? '_blank' : target;\n // Prevent reverse tabnabbing when opening in a new tab\n link.rel = 'noopener noreferrer';\n }\n\n document.body.appendChild(link);\n\n link.click();\n\n document.body.removeChild(link);\n}\n\n/**\n * Checks if a URL is external (absolute HTTP(S), protocol-relative, or non-http protocols)\n */\nfunction isExternalUrl(url: string): boolean {\n return (\n url.startsWith('http://') ||\n url.startsWith('https://') ||\n url.startsWith('//') ||\n (url.includes(':') && !url.startsWith('#'))\n );\n}\n\nexport function parseTo(to: NavigateArg | undefined): {\n newTab: boolean;\n nativeRoute: boolean;\n cleanTo: To | undefined;\n isHistoryNavigation: boolean;\n historyDelta?: number;\n isHashNavigation: boolean;\n isExternal: boolean;\n} {\n // Handle number (history navigation)\n if (typeof to === 'number') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: true,\n historyDelta: to,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle object path\n if (to && typeof to === 'object') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: to,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle string\n if (!to || typeof to !== 'string') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n const newTab = to.startsWith('!');\n const nativeRoute = to.startsWith('@');\n const isHashNavigation = to.startsWith('#');\n const cleanTo = newTab || nativeRoute ? to.slice(1) : to;\n const isExternal = typeof cleanTo === 'string' && isExternalUrl(cleanTo);\n\n return {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation: false,\n isHashNavigation,\n isExternal,\n };\n}\n\ninterface SanitizedPressEvent {\n type?: string;\n pointerType?: string;\n shiftKey: boolean;\n metaKey: boolean;\n ctrlKey: boolean;\n altKey: boolean;\n // target is defined as a non-enumerable property below\n [key: string]: unknown; // allow non-enumerable 'target'\n}\n\nfunction sanitizePressEvent(evt: PressEvent): SanitizedPressEvent {\n const safeEvt: SanitizedPressEvent = {\n type: 'type' in evt ? evt.type : undefined,\n pointerType:\n 'pointerType' in evt\n ? (evt as { pointerType?: string }).pointerType\n : undefined,\n shiftKey:\n 'shiftKey' in evt ? !!(evt as { shiftKey?: boolean }).shiftKey : false,\n metaKey:\n 'metaKey' in evt ? !!(evt as { metaKey?: boolean }).metaKey : false,\n ctrlKey:\n 'ctrlKey' in evt ? !!(evt as { ctrlKey?: boolean }).ctrlKey : false,\n altKey: 'altKey' in evt ? !!(evt as { altKey?: boolean }).altKey : false,\n };\n try {\n Object.defineProperty(safeEvt, 'target', {\n value: 'target' in evt ? (evt as { target?: unknown }).target : undefined,\n enumerable: false,\n configurable: true,\n });\n } catch (e) {\n // Failed to define target property - continue without it\n }\n return safeEvt;\n}\n\nexport function performClickHandler(\n evt,\n { navigate, resolvedHref, to, onPress, tracking, navigationOptions },\n) {\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n historyDelta,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n const element = evt.target;\n const qa = element?.getAttribute('data-qa');\n\n onPress?.(sanitizePressEvent(evt));\n\n if (to == null) {\n // Allow 0 as valid navigation (go to current page)\n tracking.event(BUTTON_PRESS_EVENT, { qa }, element);\n return;\n }\n\n // Handle history navigation (back/forward)\n if (isHistoryNavigation && typeof historyDelta === 'number') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, delta: historyDelta, type: 'router-history' },\n element,\n );\n navigate(historyDelta);\n return;\n }\n\n // Handle hash navigation (smooth scroll)\n if (isHashNavigation && typeof to === 'string') {\n const id = to.slice(1);\n const targetElement = document.getElementById(id);\n\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: to, type: 'hash', target: id },\n element,\n );\n\n if (targetElement) {\n targetElement.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n return;\n }\n\n // Handle new tab (via ! prefix or user modifiers)\n if (evt.shiftKey || evt.metaKey || (evt as any).ctrlKey || newTab) {\n openLink(resolvedHref, true);\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'tab' },\n element,\n );\n return;\n }\n\n // Handle @ prefix (native navigation)\n if (nativeRoute) {\n if (cleanTo === '' || cleanTo === undefined) {\n // @'' or @ -> reload current page\n tracking.event(LINK_PRESS_EVENT, { qa, type: 'native' }, element);\n window.location.reload();\n } else {\n // @path -> navigate to resolved path natively\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'native' },\n element,\n );\n window.location.assign(resolvedHref);\n }\n return;\n }\n\n // Handle external URLs (always native)\n if (isExternal && typeof cleanTo === 'string') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: cleanTo, type: 'native' },\n element,\n );\n window.location.assign(cleanTo);\n return;\n }\n\n // Handle router navigation\n if (cleanTo !== undefined) {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'router' },\n element,\n );\n navigate(cleanTo, navigationOptions);\n }\n}\n\nexport const useAction = function useAction(\n {\n to,\n as,\n htmlType,\n label,\n mods,\n onPress,\n navigationOptions,\n ...props\n }: CubeUseActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const tracking = useTracking();\n const navigation = useContext(UIKitContext).navigation;\n const isDisabled = props.isDisabled;\n\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n\n const navigate = navigation.useNavigate();\n // Resolve the path with its `!` / `@` prefix stripped, and only that. Also\n // resolving the raw `to` put `!https://…` through the router as a route,\n // which a HashRouter warned about on every render.\n const resolvedHref = navigation.useHref(cleanTo || '.');\n\n // Determine element type: 'a' for navigation, 'button' for actions\n as = to && !isHistoryNavigation ? 'a' : as || 'button';\n\n // Compute target (prefixes override explicit target prop per spec)\n const target = newTab ? '_blank' : props.target;\n\n // Compute href for anchor elements\n let href: string | undefined;\n if (as === 'a' && cleanTo !== undefined) {\n if (newTab || nativeRoute) {\n // For ! and @ prefixes, resolve the clean path\n href =\n typeof cleanTo === 'string' && isExternal\n ? cleanTo // External URLs as-is\n : resolvedHref;\n } else {\n // Regular navigation\n href = resolvedHref;\n }\n }\n\n const domRef = useFocusableRef(ref);\n\n // Use navigation options directly\n const mergedNavigationOptions = navigationOptions;\n\n const customOnPress = useEvent((evt: PressEvent) => {\n performClickHandler(evt, {\n navigate,\n resolvedHref: href || resolvedHref,\n to,\n onPress,\n tracking,\n navigationOptions: mergedNavigationOptions,\n });\n });\n\n let { buttonProps, isPressed } = useButton(\n {\n 'aria-label': label, // @TODO: remove label prop\n ...props,\n onPress: customOnPress,\n },\n domRef,\n );\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let { focusProps, isFocused } = useFocus({ isDisabled }, true);\n\n const customProps =\n to && !isHistoryNavigation\n ? {\n onClick(evt) {\n evt.preventDefault();\n },\n }\n : {};\n\n return {\n isPressed,\n actionProps: {\n mods: {\n hovered: isHovered && !isDisabled,\n pressed: isPressed && !isDisabled,\n focused: isFocused && !isDisabled,\n disabled: isDisabled,\n ...mods,\n },\n ...(mergeProps(\n buttonProps,\n hoverProps,\n focusProps,\n customProps,\n filterBaseProps(props, FILTER_OPTIONS),\n ) as object),\n ref: domRef,\n type: htmlType || 'button',\n rel: as === 'a' && newTab ? 'noopener noreferrer' : undefined,\n as,\n isDisabled,\n target,\n href,\n },\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-action.js","names":["useFocusableRef","FocusableRef","PressEvent","AllBaseProps","filterBaseProps","TagName","useContext","AriaButtonProps","useButton","useHover","useEvent","useWarn","UIKitContext","useTracking","mergeProps","useFocus","NavigateArg","NavigateOptions","Path","To","LINK_PRESS_EVENT","BUTTON_PRESS_EVENT","NavigateLike","RelativeRoutingType","CubeUseActionProps","T","Omit","to","label","htmlType","navigationOptions","FILTER_OPTIONS","propNames","Set","openLink","href","target","link","document","createElement","rel","body","appendChild","click","removeChild","isExternalUrl","url","startsWith","includes","parseTo","newTab","nativeRoute","cleanTo","isHistoryNavigation","historyDelta","isHashNavigation","isExternal","undefined","slice","SanitizedPressEvent","type","pointerType","shiftKey","metaKey","ctrlKey","altKey","key","sanitizePressEvent","evt","safeEvt","Object","defineProperty","value","enumerable","configurable","e","performClickHandler","navigate","resolvedHref","onPress","tracking","element","qa","getAttribute","event","delta","id","targetElement","getElementById","scrollIntoView","behavior","block","inline","window","location","reload","assign","useAction","as","mods","props","ref","HTMLElement","args","navigation","isDisabled","useNavigate","useHref","domRef","mergedNavigationOptions","customOnPress","buttonProps","isPressed","hoverProps","isHovered","focusProps","isFocused","customProps","onClick","preventDefault","actionProps","hovered","pressed","focused","disabled"],"sources":["../../../src/components/actions/use-action.ts"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { FocusableRef, PressEvent } from '@react-types/shared';\nimport { AllBaseProps, filterBaseProps, TagName } from '@tenphi/tasty';\nimport { useContext } from 'react';\nimport { AriaButtonProps, useButton, useHover } from 'react-aria';\n\nimport { useEvent, useWarn } from '../../_internal';\nimport { UIKitContext } from '../../provider';\nimport { useTracking } from '../../providers/TrackingProvider';\nimport { mergeProps } from '../../utils/react';\nimport { useFocus } from '../../utils/react/interactions';\n\n// Import specific types for internal usage\nimport type {\n NavigateArg,\n NavigateOptions,\n Path,\n To,\n} from '../../providers/navigation.types';\n\nconst LINK_PRESS_EVENT = 'Link Press';\nconst BUTTON_PRESS_EVENT = 'Button Press';\n\n// Re-export types for convenience\nexport type {\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from '../../providers/navigation.types';\n\nexport interface CubeUseActionProps<\n T extends TagName = 'a' | 'button' | 'span' | 'div',\n> extends AllBaseProps<T>,\n Omit<AriaButtonProps, 'type'> {\n to?: NavigateArg;\n /**\n * @deprecated Use `aria-label` for the accessible name, and `children` for\n * visible text. Not every action honours it: `ItemAction` ignores it.\n */\n label?: string;\n htmlType?: 'button' | 'submit' | 'reset' | undefined;\n navigationOptions?: NavigateOptions;\n}\n\nconst FILTER_OPTIONS = { propNames: new Set(['onMouseEnter', 'onMouseLeave']) };\n\n/**\n * Helper to open link.\n * @param {String} href\n * @param {String|Boolean} [target]\n */\nexport function openLink(href, target?) {\n const link = document.createElement('a');\n\n link.href = href;\n\n if (target) {\n link.target = target === true ? '_blank' : target;\n // Prevent reverse tabnabbing when opening in a new tab\n link.rel = 'noopener noreferrer';\n }\n\n document.body.appendChild(link);\n\n link.click();\n\n document.body.removeChild(link);\n}\n\n/**\n * Checks if a URL is external (absolute HTTP(S), protocol-relative, or non-http protocols)\n */\nfunction isExternalUrl(url: string): boolean {\n return (\n url.startsWith('http://') ||\n url.startsWith('https://') ||\n url.startsWith('//') ||\n (url.includes(':') && !url.startsWith('#'))\n );\n}\n\nexport function parseTo(to: NavigateArg | undefined): {\n newTab: boolean;\n nativeRoute: boolean;\n cleanTo: To | undefined;\n isHistoryNavigation: boolean;\n historyDelta?: number;\n isHashNavigation: boolean;\n isExternal: boolean;\n} {\n // Handle number (history navigation)\n if (typeof to === 'number') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: true,\n historyDelta: to,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle object path\n if (to && typeof to === 'object') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: to,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n // Handle string\n if (!to || typeof to !== 'string') {\n return {\n newTab: false,\n nativeRoute: false,\n cleanTo: undefined,\n isHistoryNavigation: false,\n isHashNavigation: false,\n isExternal: false,\n };\n }\n\n const newTab = to.startsWith('!');\n const nativeRoute = to.startsWith('@');\n const isHashNavigation = to.startsWith('#');\n const cleanTo = newTab || nativeRoute ? to.slice(1) : to;\n const isExternal = typeof cleanTo === 'string' && isExternalUrl(cleanTo);\n\n return {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation: false,\n isHashNavigation,\n isExternal,\n };\n}\n\ninterface SanitizedPressEvent {\n type?: string;\n pointerType?: string;\n shiftKey: boolean;\n metaKey: boolean;\n ctrlKey: boolean;\n altKey: boolean;\n // target is defined as a non-enumerable property below\n [key: string]: unknown; // allow non-enumerable 'target'\n}\n\nfunction sanitizePressEvent(evt: PressEvent): SanitizedPressEvent {\n const safeEvt: SanitizedPressEvent = {\n type: 'type' in evt ? evt.type : undefined,\n pointerType:\n 'pointerType' in evt\n ? (evt as { pointerType?: string }).pointerType\n : undefined,\n shiftKey:\n 'shiftKey' in evt ? !!(evt as { shiftKey?: boolean }).shiftKey : false,\n metaKey:\n 'metaKey' in evt ? !!(evt as { metaKey?: boolean }).metaKey : false,\n ctrlKey:\n 'ctrlKey' in evt ? !!(evt as { ctrlKey?: boolean }).ctrlKey : false,\n altKey: 'altKey' in evt ? !!(evt as { altKey?: boolean }).altKey : false,\n };\n try {\n Object.defineProperty(safeEvt, 'target', {\n value: 'target' in evt ? (evt as { target?: unknown }).target : undefined,\n enumerable: false,\n configurable: true,\n });\n } catch (e) {\n // Failed to define target property - continue without it\n }\n return safeEvt;\n}\n\nexport function performClickHandler(\n evt,\n { navigate, resolvedHref, to, onPress, tracking, navigationOptions },\n) {\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n historyDelta,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n const element = evt.target;\n const qa = element?.getAttribute('data-qa');\n\n onPress?.(sanitizePressEvent(evt));\n\n if (to == null) {\n // Allow 0 as valid navigation (go to current page)\n tracking.event(BUTTON_PRESS_EVENT, { qa }, element);\n return;\n }\n\n // Handle history navigation (back/forward)\n if (isHistoryNavigation && typeof historyDelta === 'number') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, delta: historyDelta, type: 'router-history' },\n element,\n );\n navigate(historyDelta);\n return;\n }\n\n // Handle hash navigation (smooth scroll)\n if (isHashNavigation && typeof to === 'string') {\n const id = to.slice(1);\n const targetElement = document.getElementById(id);\n\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: to, type: 'hash', target: id },\n element,\n );\n\n if (targetElement) {\n targetElement.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n return;\n }\n\n // Handle new tab (via ! prefix or user modifiers)\n if (evt.shiftKey || evt.metaKey || (evt as any).ctrlKey || newTab) {\n openLink(resolvedHref, true);\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'tab' },\n element,\n );\n return;\n }\n\n // Handle @ prefix (native navigation)\n if (nativeRoute) {\n if (cleanTo === '' || cleanTo === undefined) {\n // @'' or @ -> reload current page\n tracking.event(LINK_PRESS_EVENT, { qa, type: 'native' }, element);\n window.location.reload();\n } else {\n // @path -> navigate to resolved path natively\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'native' },\n element,\n );\n window.location.assign(resolvedHref);\n }\n return;\n }\n\n // Handle external URLs (always native)\n if (isExternal && typeof cleanTo === 'string') {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: cleanTo, type: 'native' },\n element,\n );\n window.location.assign(cleanTo);\n return;\n }\n\n // Handle router navigation\n if (cleanTo !== undefined) {\n tracking.event(\n LINK_PRESS_EVENT,\n { qa, href: resolvedHref, type: 'router' },\n element,\n );\n navigate(cleanTo, navigationOptions);\n }\n}\n\nexport const useAction = function useAction(\n {\n to,\n as,\n htmlType,\n label,\n mods,\n onPress,\n navigationOptions,\n ...props\n }: CubeUseActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n useWarn(label !== undefined, {\n key: 'action-label-deprecated',\n args: [\n 'The \"label\" property of Button, ItemButton, ItemAction and Action is deprecated. Use \"aria-label\" for the accessible name and \"children\" for visible text.',\n ],\n });\n\n const tracking = useTracking();\n const navigation = useContext(UIKitContext).navigation;\n const isDisabled = props.isDisabled;\n\n const {\n newTab,\n nativeRoute,\n cleanTo,\n isHistoryNavigation,\n isHashNavigation,\n isExternal,\n } = parseTo(to);\n\n const navigate = navigation.useNavigate();\n // Resolve the path with its `!` / `@` prefix stripped, and only that. Also\n // resolving the raw `to` put `!https://…` through the router as a route,\n // which a HashRouter warned about on every render.\n const resolvedHref = navigation.useHref(cleanTo || '.');\n\n // Determine element type: 'a' for navigation, 'button' for actions\n as = to && !isHistoryNavigation ? 'a' : as || 'button';\n\n // Compute target (prefixes override explicit target prop per spec)\n const target = newTab ? '_blank' : props.target;\n\n // Compute href for anchor elements\n let href: string | undefined;\n if (as === 'a' && cleanTo !== undefined) {\n if (newTab || nativeRoute) {\n // For ! and @ prefixes, resolve the clean path\n href =\n typeof cleanTo === 'string' && isExternal\n ? cleanTo // External URLs as-is\n : resolvedHref;\n } else {\n // Regular navigation\n href = resolvedHref;\n }\n }\n\n const domRef = useFocusableRef(ref);\n\n // Use navigation options directly\n const mergedNavigationOptions = navigationOptions;\n\n const customOnPress = useEvent((evt: PressEvent) => {\n performClickHandler(evt, {\n navigate,\n resolvedHref: href || resolvedHref,\n to,\n onPress,\n tracking,\n navigationOptions: mergedNavigationOptions,\n });\n });\n\n let { buttonProps, isPressed } = useButton(\n {\n 'aria-label': label, // deprecated, see `CubeUseActionProps.label`\n ...props,\n onPress: customOnPress,\n },\n domRef,\n );\n let { hoverProps, isHovered } = useHover({ isDisabled });\n let { focusProps, isFocused } = useFocus({ isDisabled }, true);\n\n const customProps =\n to && !isHistoryNavigation\n ? {\n onClick(evt) {\n evt.preventDefault();\n },\n }\n : {};\n\n return {\n isPressed,\n actionProps: {\n mods: {\n hovered: isHovered && !isDisabled,\n pressed: isPressed && !isDisabled,\n focused: isFocused && !isDisabled,\n disabled: isDisabled,\n ...mods,\n },\n ...(mergeProps(\n buttonProps,\n hoverProps,\n focusProps,\n customProps,\n filterBaseProps(props, FILTER_OPTIONS),\n ) as object),\n ref: domRef,\n type: htmlType || 'button',\n rel: as === 'a' && newTab ? 'noopener noreferrer' : undefined,\n as,\n isDisabled,\n target,\n href,\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.188.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
|
|
3
3
|
import { usePopoverSync } from "../../utils/react/usePopoverSync.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.188.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
|
|
3
3
|
import { usePopoverSync } from "../../utils/react/usePopoverSync.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.188.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,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.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.188.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,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.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.188.0 | Cube Dev Team */
|
|
2
2
|
import { _Item } from "../Item/Item.js";
|
|
3
3
|
import themes_default from "../../../data/themes.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.188.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.188.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,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.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.188.0 | Cube Dev Team */
|
|
2
2
|
import { _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
|
|
3
3
|
import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.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.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { useSlotProps } from "../../utils/react/Slots.js";
|
|
3
3
|
import { useCombinedRefs } from "../../utils/react/useCombinedRefs.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.188.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,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.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,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { _Text } from "../Text.js";
|
|
4
4
|
import { useKeySymbols } from "../../../utils/react/useKeySymbols.js";
|
|
@@ -7,7 +7,13 @@ import { ReactNode } from "react";
|
|
|
7
7
|
|
|
8
8
|
//#region src/components/content/InfoBadge/InfoBadge.d.ts
|
|
9
9
|
type CubeInfoBadgeTooltipConfig = Omit<CubeTooltipProviderProps, 'children'>;
|
|
10
|
-
interface CubeInfoBadgeProps extends Omit<BaseProps, 'children'>, Partial<Pick<CubeUseActionProps, 'to' | 'onPress' | 'navigationOptions' | 'target'
|
|
10
|
+
interface CubeInfoBadgeProps extends Omit<BaseProps, 'children'>, Partial<Pick<CubeUseActionProps, 'to' | 'onPress' | 'navigationOptions' | 'target'>> {
|
|
11
|
+
/**
|
|
12
|
+
* Overrides the badge's accessible name.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Use `aria-label`. It still overrides the name today.
|
|
15
|
+
*/
|
|
16
|
+
label?: string;
|
|
11
17
|
/**
|
|
12
18
|
* Tooltip content. Either the content itself or a configuration object
|
|
13
19
|
* `{ title, ...tooltipProps }` for advanced setups (placement, delay, etc.).
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
|
+
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
2
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
3
4
|
import { ItemBadge } from "../ItemBadge/ItemBadge.js";
|
|
4
5
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
@@ -99,6 +100,10 @@ function isTooltipConfig(value) {
|
|
|
99
100
|
const InfoBadge = forwardRef(function InfoBadge(allProps, ref) {
|
|
100
101
|
const { t } = useI18n();
|
|
101
102
|
const { tooltip, tooltipSuffix, icon = /* @__PURE__ */ jsx(InfoCircleIcon, {}), size = "medium", type = "clear", theme = "default", to, onPress, navigationOptions, target, label, qa = "InfoBadge", styles, ...rest } = allProps;
|
|
103
|
+
useWarn(label !== void 0, {
|
|
104
|
+
key: "info-badge-label-deprecated",
|
|
105
|
+
args: ["The \"label\" property of InfoBadge is deprecated. Use \"aria-label\" instead."]
|
|
106
|
+
});
|
|
102
107
|
const isInteractive = to != null || onPress != null;
|
|
103
108
|
const { title: title_0, tooltipProps: tooltipProps_0 } = useMemo(() => {
|
|
104
109
|
if (isTooltipConfig(tooltip)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoBadge.js","names":["FocusableRefValue","BaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","isValidElement","KeyboardEvent","MouseEvent","PointerEvent","ReactNode","useCallback","useMemo","useI18n","InfoCircleIcon","CubeItemActionProps","ItemAction","CubeUseActionProps","CubeTooltipProviderProps","ItemBadge","CubeInfoBadgeTooltipConfig","Omit","CubeInfoBadgeProps","Partial","Pick","tooltip","tooltipSuffix","icon","size","type","theme","isLoading","isDisabled","styles","SIZES","Record","NonNullable","small","medium","large","GUARD_HANDLERS","onClick","event","preventDefault","stopPropagation","onPointerDown","onMouseDown","onKeyDown","key","onKeyUp","GuardElement","as","display","sizeStyles","box","preset","height","width","margin","verticalAlign","Icon","INFO_STYLES","color","pressed","disabled","isTooltipConfig","value","Array","isArray","InfoBadge","allProps","ref","HTMLElement","t","to","onPress","navigationOptions","target","label","qa","rest","isInteractive","title","tooltipProps","suffix","undefined","finalTooltip","ariaLabel","finalStyles","actionRef","element","UNSAFE_getDOMNode","current","sharedProps","HTMLDivElement","InfoBadgeProps"],"sources":["../../../../src/components/content/InfoBadge/InfoBadge.tsx"],"sourcesContent":["import { FocusableRefValue } from '@react-types/shared';\nimport { BaseProps, mergeStyles, Styles, tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n useCallback,\n useMemo,\n} from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { InfoCircleIcon } from '../../../icons/InfoCircleIcon';\nimport { CubeItemActionProps, ItemAction } from '../../actions/ItemAction';\nimport { CubeUseActionProps } from '../../actions/use-action';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { ItemBadge } from '../ItemBadge';\n\nexport type CubeInfoBadgeTooltipConfig = Omit<\n CubeTooltipProviderProps,\n 'children'\n>;\n\nexport interface CubeInfoBadgeProps\n extends Omit<BaseProps, 'children'>,\n Partial<\n Pick<\n CubeUseActionProps,\n 'to' | 'onPress' | 'navigationOptions' | 'target' | 'label'\n >\n > {\n /**\n * Tooltip content. Either the content itself or a configuration object\n * `{ title, ...tooltipProps }` for advanced setups (placement, delay, etc.).\n */\n tooltip: ReactNode | CubeInfoBadgeTooltipConfig;\n /**\n * Text appended to the tooltip content. Defaults to a \"learn more\" hint when\n * the badge is interactive (`to` or `onPress` is provided). Pass `null` or an\n * empty string to opt out.\n */\n tooltipSuffix?: ReactNode;\n /** Icon to render. @default <InfoCircleIcon /> */\n icon?: ReactNode;\n /**\n * Size of the badge. Every size still contributes exactly one line to the\n * text around it, so the badge stays aligned with adjacent text.\n * @default \"medium\"\n */\n size?: 'small' | 'medium' | 'large';\n /** @default \"clear\" */\n type?: 'primary' | 'outline' | 'clear';\n /** @default \"default\" */\n theme?: 'default' | 'danger' | 'success';\n isLoading?: boolean;\n isDisabled?: boolean;\n styles?: Styles;\n}\n\nconst SIZES: Record<NonNullable<CubeInfoBadgeProps['size']>, string> = {\n small: '2x',\n medium: '2.5x',\n large: '3x',\n};\n\n/**\n * The info badge is a leaf element that is often placed inside a bigger click\n * target: a field `<label>`, a switch row, a table header, a list item. Neither\n * the tooltip nor the optional navigation should ever activate that container,\n * so the events that would do so are contained here.\n *\n * The guard sits *above* the badge, so the badge's own handlers (including\n * `usePress`, which fires `onPress` from the `click` event) run first and stay\n * intact. `preventDefault` on click is what stops an enclosing `<label>` from\n * forwarding activation to its control — `stopPropagation` alone can't.\n *\n * `pointerup` / `mouseup` are intentionally left alone: `usePress` finishes a\n * press through document-level listeners for those events.\n */\nconst GUARD_HANDLERS = {\n onClick: (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n },\n onPointerDown: (event: PointerEvent) => event.stopPropagation(),\n onMouseDown: (event: MouseEvent) => event.stopPropagation(),\n onKeyDown: (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n },\n onKeyUp: (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n },\n};\n\n/**\n * `display: contents` keeps the guard out of the layout entirely while staying\n * in the event path, so the badge remains a direct flex/grid/inline child of\n * whatever contains it.\n */\nconst GuardElement = tasty({\n as: 'span',\n styles: { display: 'contents' },\n});\n\n/**\n * Sizing the badge so it aligns with the text beside it.\n *\n * The box is a fixed square, but its *margin* box is padded (or trimmed, for\n * `large` in tight text) to exactly one line. An atomic inline's margin box is\n * what the line box measures, so `vertical-align: top` then lands the badge's\n * center on the line box center — where the adjacent text is optically\n * centered — at every size, in inline and block containers alike.\n *\n * `vertical-align: middle` can't do this: it aligns the box center with the\n * x-height midpoint, ~1.5px below the text center, and inflates the line box,\n * which pushes the badge down again inside a block container (a field's\n * `labelSuffix`, a paragraph).\n *\n * `preset: inherit` is what makes `1lh` mean the line the badge sits on. It\n * also keeps the glyph identical across render paths, since `ItemAction` pins\n * itself to the `t4` preset while `ItemBadge` inherits.\n */\nfunction sizeStyles(size: NonNullable<CubeInfoBadgeProps['size']>): Styles {\n const box = SIZES[size];\n\n return {\n preset: 'inherit',\n height: box,\n width: box,\n // Replaces the base first/last-child margin rules outright, so the badge\n // doesn't reserve an `Item` action row's side padding as an outer margin.\n margin: `((1lh - ${box}) / 2) 0`,\n verticalAlign: 'top',\n Icon: {\n height: box,\n width: box,\n '$icon-size': `(${box} - .25x)`,\n },\n };\n}\n\n// Soft → strong on interaction, mirroring the link styles: the badge reads as a\n// quiet brand-colored hint at rest and gains contrast once it's engaged.\n//\n// A state map with a `''` entry replaces the variant's map outright, so the\n// disabled color has to be restated here (`@inherit` can't reach the variant —\n// it isn't the parent map in this merge) or a disabled badge would keep the\n// brand tint and still read as interactive.\nconst INFO_STYLES: Styles = {\n color: {\n '': '#primary-text-soft',\n 'hovered | focused': '#primary-text',\n pressed: '#primary-text',\n disabled: '#disabled-surface-text',\n },\n};\n\nfunction isTooltipConfig(\n value: ReactNode | CubeInfoBadgeTooltipConfig,\n): value is CubeInfoBadgeTooltipConfig {\n return (\n typeof value === 'object' &&\n value !== null &&\n !isValidElement(value) &&\n !Array.isArray(value)\n );\n}\n\n/**\n * An informational icon with a tooltip. Renders as a plain badge by default and\n * upgrades to a link / button when `to` or `onPress` is provided.\n */\nexport const InfoBadge = forwardRef(function InfoBadge(\n allProps: CubeInfoBadgeProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n\n const {\n tooltip,\n tooltipSuffix,\n icon = <InfoCircleIcon />,\n size = 'medium',\n type = 'clear',\n theme = 'default',\n to,\n onPress,\n navigationOptions,\n target,\n label,\n qa = 'InfoBadge',\n styles,\n ...rest\n } = allProps;\n\n const isInteractive = to != null || onPress != null;\n\n const { title, tooltipProps } = useMemo(() => {\n if (isTooltipConfig(tooltip)) {\n const { title, ...tooltipProps } = tooltip;\n\n return { title, tooltipProps };\n }\n\n return { title: tooltip, tooltipProps: {} };\n }, [tooltip]);\n\n const suffix =\n tooltipSuffix === undefined\n ? isInteractive\n ? t('infoBadge.learnMore', 'Click to learn more.')\n : null\n : tooltipSuffix;\n\n const finalTooltip = useMemo(\n () => ({\n ...tooltipProps,\n title: suffix ? (\n <>\n {title} {suffix}\n </>\n ) : (\n title\n ),\n }),\n [tooltipProps, title, suffix],\n );\n\n // The accessible name is the tooltip text itself when it's plain text. Rich\n // tooltip content can't serve as a label, so fall back to a generic one.\n const ariaLabel =\n label ??\n rest['aria-label'] ??\n (typeof title === 'string'\n ? title\n : t('infoBadge.ariaLabel', 'More information'));\n\n const finalStyles = useMemo(\n () =>\n mergeStyles(\n sizeStyles(size),\n // Only the default look is brand-tinted; explicit themes and filled\n // types bring their own colors.\n theme === 'default' && type === 'clear' ? INFO_STYLES : null,\n styles,\n ),\n [size, theme, type, styles],\n );\n\n // `ItemAction` exposes a react-spectrum focusable ref; unwrap it so that `ref`\n // points at the DOM node whether or not the badge is interactive.\n const actionRef = useCallback(\n (value: FocusableRefValue<HTMLElement> | null) => {\n const element = value ? value.UNSAFE_getDOMNode() : null;\n\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n },\n [ref],\n );\n\n const sharedProps = {\n ...rest,\n qa,\n icon,\n type,\n theme,\n styles: finalStyles,\n 'aria-label': ariaLabel,\n tooltip: finalTooltip as CubeItemActionProps['tooltip'],\n };\n\n return (\n <GuardElement {...GUARD_HANDLERS}>\n {isInteractive ? (\n <ItemAction\n ref={actionRef}\n to={to}\n onPress={onPress}\n navigationOptions={navigationOptions}\n target={target}\n {...sharedProps}\n />\n ) : (\n <ItemBadge ref={ref as ForwardedRef<HTMLDivElement>} {...sharedProps} />\n )}\n </GuardElement>\n );\n});\n\nexport type { CubeInfoBadgeProps as InfoBadgeProps };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InfoBadge.js","names":["FocusableRefValue","BaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","isValidElement","KeyboardEvent","MouseEvent","PointerEvent","ReactNode","useCallback","useMemo","useWarn","useI18n","InfoCircleIcon","CubeItemActionProps","ItemAction","CubeUseActionProps","CubeTooltipProviderProps","ItemBadge","CubeInfoBadgeTooltipConfig","Omit","CubeInfoBadgeProps","Partial","Pick","label","tooltip","tooltipSuffix","icon","size","type","theme","isLoading","isDisabled","styles","SIZES","Record","NonNullable","small","medium","large","GUARD_HANDLERS","onClick","event","preventDefault","stopPropagation","onPointerDown","onMouseDown","onKeyDown","key","onKeyUp","GuardElement","as","display","sizeStyles","box","preset","height","width","margin","verticalAlign","Icon","INFO_STYLES","color","pressed","disabled","isTooltipConfig","value","Array","isArray","InfoBadge","allProps","ref","HTMLElement","t","to","onPress","navigationOptions","target","qa","rest","undefined","args","isInteractive","title","tooltipProps","suffix","finalTooltip","ariaLabel","finalStyles","actionRef","element","UNSAFE_getDOMNode","current","sharedProps","HTMLDivElement","InfoBadgeProps"],"sources":["../../../../src/components/content/InfoBadge/InfoBadge.tsx"],"sourcesContent":["import { FocusableRefValue } from '@react-types/shared';\nimport { BaseProps, mergeStyles, Styles, tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n useCallback,\n useMemo,\n} from 'react';\n\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport { useI18n } from '../../../i18n';\nimport { InfoCircleIcon } from '../../../icons/InfoCircleIcon';\nimport { CubeItemActionProps, ItemAction } from '../../actions/ItemAction';\nimport { CubeUseActionProps } from '../../actions/use-action';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { ItemBadge } from '../ItemBadge';\n\nexport type CubeInfoBadgeTooltipConfig = Omit<\n CubeTooltipProviderProps,\n 'children'\n>;\n\nexport interface CubeInfoBadgeProps\n extends Omit<BaseProps, 'children'>,\n Partial<\n Pick<\n CubeUseActionProps,\n 'to' | 'onPress' | 'navigationOptions' | 'target'\n >\n > {\n /**\n * Overrides the badge's accessible name.\n *\n * @deprecated Use `aria-label`. It still overrides the name today.\n */\n label?: string;\n /**\n * Tooltip content. Either the content itself or a configuration object\n * `{ title, ...tooltipProps }` for advanced setups (placement, delay, etc.).\n */\n tooltip: ReactNode | CubeInfoBadgeTooltipConfig;\n /**\n * Text appended to the tooltip content. Defaults to a \"learn more\" hint when\n * the badge is interactive (`to` or `onPress` is provided). Pass `null` or an\n * empty string to opt out.\n */\n tooltipSuffix?: ReactNode;\n /** Icon to render. @default <InfoCircleIcon /> */\n icon?: ReactNode;\n /**\n * Size of the badge. Every size still contributes exactly one line to the\n * text around it, so the badge stays aligned with adjacent text.\n * @default \"medium\"\n */\n size?: 'small' | 'medium' | 'large';\n /** @default \"clear\" */\n type?: 'primary' | 'outline' | 'clear';\n /** @default \"default\" */\n theme?: 'default' | 'danger' | 'success';\n isLoading?: boolean;\n isDisabled?: boolean;\n styles?: Styles;\n}\n\nconst SIZES: Record<NonNullable<CubeInfoBadgeProps['size']>, string> = {\n small: '2x',\n medium: '2.5x',\n large: '3x',\n};\n\n/**\n * The info badge is a leaf element that is often placed inside a bigger click\n * target: a field `<label>`, a switch row, a table header, a list item. Neither\n * the tooltip nor the optional navigation should ever activate that container,\n * so the events that would do so are contained here.\n *\n * The guard sits *above* the badge, so the badge's own handlers (including\n * `usePress`, which fires `onPress` from the `click` event) run first and stay\n * intact. `preventDefault` on click is what stops an enclosing `<label>` from\n * forwarding activation to its control — `stopPropagation` alone can't.\n *\n * `pointerup` / `mouseup` are intentionally left alone: `usePress` finishes a\n * press through document-level listeners for those events.\n */\nconst GUARD_HANDLERS = {\n onClick: (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n },\n onPointerDown: (event: PointerEvent) => event.stopPropagation(),\n onMouseDown: (event: MouseEvent) => event.stopPropagation(),\n onKeyDown: (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n },\n onKeyUp: (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.stopPropagation();\n }\n },\n};\n\n/**\n * `display: contents` keeps the guard out of the layout entirely while staying\n * in the event path, so the badge remains a direct flex/grid/inline child of\n * whatever contains it.\n */\nconst GuardElement = tasty({\n as: 'span',\n styles: { display: 'contents' },\n});\n\n/**\n * Sizing the badge so it aligns with the text beside it.\n *\n * The box is a fixed square, but its *margin* box is padded (or trimmed, for\n * `large` in tight text) to exactly one line. An atomic inline's margin box is\n * what the line box measures, so `vertical-align: top` then lands the badge's\n * center on the line box center — where the adjacent text is optically\n * centered — at every size, in inline and block containers alike.\n *\n * `vertical-align: middle` can't do this: it aligns the box center with the\n * x-height midpoint, ~1.5px below the text center, and inflates the line box,\n * which pushes the badge down again inside a block container (a field's\n * `labelSuffix`, a paragraph).\n *\n * `preset: inherit` is what makes `1lh` mean the line the badge sits on. It\n * also keeps the glyph identical across render paths, since `ItemAction` pins\n * itself to the `t4` preset while `ItemBadge` inherits.\n */\nfunction sizeStyles(size: NonNullable<CubeInfoBadgeProps['size']>): Styles {\n const box = SIZES[size];\n\n return {\n preset: 'inherit',\n height: box,\n width: box,\n // Replaces the base first/last-child margin rules outright, so the badge\n // doesn't reserve an `Item` action row's side padding as an outer margin.\n margin: `((1lh - ${box}) / 2) 0`,\n verticalAlign: 'top',\n Icon: {\n height: box,\n width: box,\n '$icon-size': `(${box} - .25x)`,\n },\n };\n}\n\n// Soft → strong on interaction, mirroring the link styles: the badge reads as a\n// quiet brand-colored hint at rest and gains contrast once it's engaged.\n//\n// A state map with a `''` entry replaces the variant's map outright, so the\n// disabled color has to be restated here (`@inherit` can't reach the variant —\n// it isn't the parent map in this merge) or a disabled badge would keep the\n// brand tint and still read as interactive.\nconst INFO_STYLES: Styles = {\n color: {\n '': '#primary-text-soft',\n 'hovered | focused': '#primary-text',\n pressed: '#primary-text',\n disabled: '#disabled-surface-text',\n },\n};\n\nfunction isTooltipConfig(\n value: ReactNode | CubeInfoBadgeTooltipConfig,\n): value is CubeInfoBadgeTooltipConfig {\n return (\n typeof value === 'object' &&\n value !== null &&\n !isValidElement(value) &&\n !Array.isArray(value)\n );\n}\n\n/**\n * An informational icon with a tooltip. Renders as a plain badge by default and\n * upgrades to a link / button when `to` or `onPress` is provided.\n */\nexport const InfoBadge = forwardRef(function InfoBadge(\n allProps: CubeInfoBadgeProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n\n const {\n tooltip,\n tooltipSuffix,\n icon = <InfoCircleIcon />,\n size = 'medium',\n type = 'clear',\n theme = 'default',\n to,\n onPress,\n navigationOptions,\n target,\n label,\n qa = 'InfoBadge',\n styles,\n ...rest\n } = allProps;\n\n useWarn(label !== undefined, {\n key: 'info-badge-label-deprecated',\n args: [\n 'The \"label\" property of InfoBadge is deprecated. Use \"aria-label\" instead.',\n ],\n });\n\n const isInteractive = to != null || onPress != null;\n\n const { title, tooltipProps } = useMemo(() => {\n if (isTooltipConfig(tooltip)) {\n const { title, ...tooltipProps } = tooltip;\n\n return { title, tooltipProps };\n }\n\n return { title: tooltip, tooltipProps: {} };\n }, [tooltip]);\n\n const suffix =\n tooltipSuffix === undefined\n ? isInteractive\n ? t('infoBadge.learnMore', 'Click to learn more.')\n : null\n : tooltipSuffix;\n\n const finalTooltip = useMemo(\n () => ({\n ...tooltipProps,\n title: suffix ? (\n <>\n {title} {suffix}\n </>\n ) : (\n title\n ),\n }),\n [tooltipProps, title, suffix],\n );\n\n // The accessible name is the tooltip text itself when it's plain text. Rich\n // tooltip content can't serve as a label, so fall back to a generic one.\n const ariaLabel =\n label ??\n rest['aria-label'] ??\n (typeof title === 'string'\n ? title\n : t('infoBadge.ariaLabel', 'More information'));\n\n const finalStyles = useMemo(\n () =>\n mergeStyles(\n sizeStyles(size),\n // Only the default look is brand-tinted; explicit themes and filled\n // types bring their own colors.\n theme === 'default' && type === 'clear' ? INFO_STYLES : null,\n styles,\n ),\n [size, theme, type, styles],\n );\n\n // `ItemAction` exposes a react-spectrum focusable ref; unwrap it so that `ref`\n // points at the DOM node whether or not the badge is interactive.\n const actionRef = useCallback(\n (value: FocusableRefValue<HTMLElement> | null) => {\n const element = value ? value.UNSAFE_getDOMNode() : null;\n\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n },\n [ref],\n );\n\n const sharedProps = {\n ...rest,\n qa,\n icon,\n type,\n theme,\n styles: finalStyles,\n 'aria-label': ariaLabel,\n tooltip: finalTooltip as CubeItemActionProps['tooltip'],\n };\n\n return (\n <GuardElement {...GUARD_HANDLERS}>\n {isInteractive ? (\n <ItemAction\n ref={actionRef}\n to={to}\n onPress={onPress}\n navigationOptions={navigationOptions}\n target={target}\n {...sharedProps}\n />\n ) : (\n <ItemBadge ref={ref as ForwardedRef<HTMLDivElement>} {...sharedProps} />\n )}\n </GuardElement>\n );\n});\n\nexport type { CubeInfoBadgeProps as InfoBadgeProps };\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.188.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 { 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.188.0 | Cube Dev Team */
|
|
2
2
|
import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
|
|
3
3
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { resolveIcon } from "../../../utils/react/resolveIcon.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
|
|
4
4
|
import { CURRENT_CLEAR_STYLES, CURRENT_OUTLINE_STYLES, CURRENT_PRIMARY_STYLES, DANGER_CLEAR_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, ITEM_ACTION_BASE_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES } from "../../../data/item-themes.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
3
3
|
import { _Item } from "../Item/Item.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.188.0 | Cube Dev Team */
|
|
2
2
|
import { _Layout } from "./Layout.js";
|
|
3
3
|
import { _LayoutContent } from "./LayoutContent.js";
|
|
4
4
|
import { _LayoutBlock } from "./LayoutBlock.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { isDevEnv } from "../../../utils/is-dev-env.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { _LayoutContainer } from "./LayoutContainer.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { LayoutContextReset } from "./LayoutContext.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { LayoutContextReset } from "./LayoutContext.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { createContext, useContext, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { useAutoTooltip } from "../use-auto-tooltip.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { Button } from "../../actions/Button/Button.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.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 { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.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 { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { _Item } from "../Item/Item.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
|
|
2
2
|
import { LayoutActionsContext, LayoutContextReset, LayoutPanelContext, LayoutRefsContext, LayoutStateContext, useLayoutActionsContext, useLayoutPanelContext, useLayoutRefsContext, useLayoutStateContext } from "./LayoutContext.js";
|
|
3
3
|
import { _Layout } from "./Layout.js";
|
|
4
4
|
import { _LayoutContent } from "./LayoutContent.js";
|