@cube-dev/ui-kit 0.0.0-canary-0b79a39 → 0.0.0-canary-c02e70f
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 +6 -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 +23 -21
- package/dist/components/GlobalStyles.js.map +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.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Banner/Banner.js.map +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +128 -66
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +451 -280
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +57 -93
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +49 -69
- package/dist/components/actions/Menu/Menu.js.map +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/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.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/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/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +44 -60
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +39 -65
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.js +208 -263
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +70 -145
- package/dist/components/content/ItemBadge/ItemBadge.js.map +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 +39 -18
- package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.js +100 -48
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +211 -95
- package/dist/components/content/Layout/LayoutContext.js.map +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js.map +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 +240 -123
- package/dist/components/content/Layout/LayoutPane.js.map +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/LayoutPanelHeader.js.map +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/hooks/useTinyScrollbar.js.map +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 +28 -48
- package/dist/components/content/Result/Result.js.map +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 +9 -17
- package/dist/components/content/TextItem/TextItem.js.map +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 +68 -105
- package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +106 -138
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/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 +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.js +30 -31
- package/dist/components/data/TableBase/use-column-order.js.map +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +38 -42
- package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +19 -57
- package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +55 -64
- package/dist/components/data/TableBase/use-table-tree-state.js.map +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.js +1 -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 +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +32 -38
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/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/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.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/HueSlider.js.map +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +738 -1139
- 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.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/ColorPanel.js.map +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +10 -15
- package/dist/components/form/Form/Field.js.map +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/react.js.map +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 +129 -48
- package/dist/components/layout/Panel.js.map +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 +227 -347
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- 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 +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js.map +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.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js.map +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/CalendarGrid.js.map +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +497 -515
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +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 +266 -161
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/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 +18 -9
- package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +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/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useFormatter.js.map +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.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/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/useKeySymbols.js.map +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/usePopoverSync.js.map +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/CreateComponent.md +3 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.js","names":["useControlledState","filterBaseProps","OUTER_STYLES","tasty","forwardRef","useMemo","useEvent","useFormatter","useI18n","BackwardIcon","ForwardIcon","LeftIcon","RightIcon","extractStyles","Button","Select","clampPage","getPageInfo","getPaginationRange","ForwardedRef","ReactElement","CubePaginationProps","CubeTablePageInfo","PaginationElement","qa","as","styles","display","flow","gap","placeItems","placeContent","Summary","preset","color","whiteSpace","Controls","Gap","width","height","userSelect","Pages","styleProps","NavButton","type","border","PageButton","formatRange","info","start","page","pageSize","end","total","Math","min","Pagination","props","ref","$","_c","pageProp","defaultPage","onPageChange","totalPages","totalPagesProp","pageSizeProp","defaultPageSize","pageSizeOptions","onPageSizeChange","t0","siblingCount","t1","boundaryCount","t2","size","t3","isDisabled","hasNextPage","isCompact","t4","summary","t5","labelFormatter","ariaLabel","pageSizeSelectStyles","mods","rest","undefined","t","formatNumber","setPageSize","v","setPage","isCountable","t6","Number","MAX_SAFE_INTEGER","from","to","t7","next","clamped","max","goTo","t8","value","onPageSizeSelectionChange","t9","value_0","onPageSelectionChange","t10","pageItems","t11","Array","length","_temp","selectEntries","isFirst","isLast","t12","t13","summaryNode","t14","renderPageControl","String","map","entry","entryInfo","label","entry_0","index","showEdgeButtons","T0","t15","eventProps","t16","t17","t18","t19","t20","option","label_0","t21","t22","Symbol","for","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32","t33","t34","t35","_","i","_Pagination","displayName"],"sources":["../../../../src/components/navigation/Pagination/Pagination.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { filterBaseProps, OUTER_STYLES, tasty } from '@tenphi/tasty';\nimport { forwardRef, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useFormatter, useI18n } from '../../../i18n';\nimport { BackwardIcon } from '../../../icons/BackwardIcon';\nimport { ForwardIcon } from '../../../icons/ForwardIcon';\nimport { LeftIcon } from '../../../icons/LeftIcon';\nimport { RightIcon } from '../../../icons/RightIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions';\nimport { Select } from '../../fields/Select';\n\nimport { clampPage, getPageInfo, getPaginationRange } from './use-pagination';\n\nimport type { ForwardedRef, ReactElement } from 'react';\nimport type { CubePaginationProps, CubeTablePageInfo } from './types';\n\nconst PaginationElement = tasty({\n qa: 'Pagination',\n as: 'nav',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'start',\n\n Summary: {\n // Follows the control's size rather than being fixed, so the summary\n // matches whatever the buttons beside it are.\n preset: { '': 't3', 'size=xsmall': 't4' },\n color: '#dark-03',\n whiteSpace: 'nowrap',\n },\n\n Controls: {\n display: 'flex',\n flow: 'row',\n gap: '.5x',\n placeItems: 'center',\n },\n\n Gap: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $gap-size',\n height: '$gap-size',\n preset: 't3',\n color: '#dark-04',\n userSelect: 'none',\n },\n\n /**\n * The page numbers sit tighter than the nav buttons around them: they read\n * as one run of pages, not as separate controls, and a hairline is enough\n * to keep the current page's outline off its neighbours.\n */\n Pages: {\n display: 'flex',\n flow: 'row',\n gap: '1bw',\n placeItems: 'center',\n },\n\n '$gap-size': {\n '': '$size-sm',\n 'size=xsmall': '$size-xs',\n 'size=medium': '$size-md',\n },\n },\n styleProps: OUTER_STYLES,\n});\n\nconst NavButton = tasty(Button, {\n type: 'clear',\n styles: { border: true },\n});\n\n// Page buttons are borderless so the current page — which renders as `outline`\n// and therefore draws its own border — is the only bordered one in the run.\nconst PageButton = tasty(Button, {\n type: 'clear',\n});\n\nfunction formatRange(info: CubeTablePageInfo): string {\n const start = (info.page - 1) * info.pageSize + 1;\n const end =\n info.total > 0\n ? Math.min(info.page * info.pageSize, info.total)\n : info.page * info.pageSize;\n\n return `${start}–${end}`;\n}\n\nfunction Pagination(\n props: CubePaginationProps,\n ref: ForwardedRef<HTMLElement>,\n): ReactElement {\n const {\n page: pageProp,\n defaultPage,\n onPageChange,\n totalPages: totalPagesProp,\n total,\n pageSize: pageSizeProp,\n defaultPageSize,\n pageSizeOptions,\n onPageSizeChange,\n type = 'numbers',\n siblingCount = 1,\n boundaryCount = 1,\n size = 'small',\n isDisabled,\n hasNextPage,\n isCompact = false,\n summary = false,\n labelFormatter,\n ariaLabel,\n pageSizeSelectStyles,\n qa,\n mods,\n ...rest\n } = props;\n\n const { t } = useI18n();\n const { formatNumber } = useFormatter();\n\n const [pageSize, setPageSize] = useControlledState<number>(\n pageSizeProp as number,\n defaultPageSize ?? 50,\n onPageSizeChange as (v: number) => void,\n );\n const [page, setPage] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (v: number) => void,\n );\n\n // Unknown total: prev/next only, with `hasNextPage` driving the next button.\n // The page must NOT be clamped in that mode — there is nothing to clamp to.\n const isCountable = totalPagesProp != null || total != null;\n\n const info: CubeTablePageInfo = isCountable\n ? getPageInfo({\n page,\n pageSize,\n total: total ?? 0,\n totalPages: totalPagesProp,\n })\n : {\n page: clampPage(page, Number.MAX_SAFE_INTEGER),\n pageSize,\n totalPages: 0,\n total: 0,\n from: 0,\n to: 0,\n };\n\n const { totalPages } = info;\n\n const goTo = useEvent((next: number) => {\n const clamped = isCountable\n ? clampPage(next, totalPages)\n : Math.max(next, 1);\n\n if (clamped !== info.page) setPage(clamped);\n });\n\n const onPageSizeSelectionChange = useEvent((value: any) => {\n setPageSize(Number(value));\n setPage(1);\n });\n\n const onPageSelectionChange = useEvent((value: any) => {\n goTo(Number(value));\n });\n\n const pageItems = useMemo(\n () =>\n type === 'numbers' && isCountable\n ? getPaginationRange({\n page: info.page,\n totalPages,\n siblingCount,\n boundaryCount,\n })\n : [],\n [type, isCountable, info.page, totalPages, siblingCount, boundaryCount],\n );\n\n // `type=\"select\"` materializes one entry per page, so it is only safe for\n // small page counts. Above the cap we fall back to `compact`, which reads the\n // same but renders a single label.\n const selectEntries = useMemo(\n () =>\n type === 'select' && isCountable && totalPages <= 200\n ? Array.from({ length: totalPages }, (_, i) => i + 1)\n : null,\n [type, isCountable, totalPages],\n );\n\n const isFirst = info.page <= 1;\n const isLast = isCountable ? info.page >= totalPages : !hasNextPage;\n\n const styles = extractStyles(props, OUTER_STYLES);\n\n const summaryNode =\n summary === false\n ? null\n : typeof summary === 'function'\n ? summary(info)\n : info.total > 0\n ? // Numbers are formatted here rather than left to i18next, which\n // interpolates them raw (\"1204\", not \"1,204\").\n t('pagination.summary', '{{from}}–{{to}} of {{total}}', {\n from: formatNumber(info.from),\n to: formatNumber(info.to),\n total: formatNumber(info.total),\n })\n : null;\n\n function renderPageControl() {\n if (selectEntries) {\n return (\n <Select\n qa=\"PaginationPageSelect\"\n size={size}\n isDisabled={isDisabled}\n aria-label={t('pagination.selectPage', 'Select page')}\n selectedKey={String(info.page)}\n width=\"min 15x\"\n styles={pageSizeSelectStyles}\n onSelectionChange={onPageSelectionChange}\n >\n {selectEntries.map((entry) => {\n const entryInfo = { ...info, page: entry };\n const label =\n labelFormatter?.(entryInfo) ??\n (info.total > 0\n ? formatRange(entryInfo)\n : t('pagination.page', 'Page {{page}}', { page: entry }));\n\n return (\n <Select.Item key={entry} textValue={String(label)}>\n {label}\n </Select.Item>\n );\n })}\n </Select>\n );\n }\n\n if (type === 'numbers' && pageItems.length > 0) {\n return (\n <div data-element=\"Pages\">\n {pageItems.map((entry, index) =>\n entry === 'gap' ? (\n <div key={`gap-${index}`} data-element=\"Gap\" aria-hidden=\"true\">\n {'…'}\n </div>\n ) : (\n <PageButton\n key={entry}\n qa={`PaginationPage_${entry}`}\n size={size}\n type={entry === info.page ? 'outline' : 'clear'}\n isDisabled={isDisabled}\n aria-label={t('pagination.page', 'Page {{page}}', {\n page: entry,\n })}\n aria-current={entry === info.page ? 'page' : undefined}\n onPress={() => goTo(entry)}\n >\n {entry}\n </PageButton>\n ),\n )}\n </div>\n );\n }\n\n if (!isCountable) return null;\n\n return (\n <div data-element=\"Summary\" data-qa=\"PaginationPageLabel\">\n {t('pagination.pageOf', '{{page}} of {{totalPages}}', {\n page: info.page,\n totalPages,\n })}\n </div>\n );\n }\n\n const showEdgeButtons = !isCompact && isCountable;\n\n return (\n <PaginationElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n qa={qa || 'Pagination'}\n styles={styles}\n mods={{ size, ...mods }}\n aria-label={ariaLabel ?? t('pagination.ariaLabel', 'Pagination')}\n >\n {summaryNode ? <div data-element=\"Summary\">{summaryNode}</div> : null}\n\n {pageSizeOptions && onPageSizeChange ? (\n <Select\n qa=\"PaginationPageSizeSelect\"\n size={size}\n isDisabled={isDisabled}\n aria-label={t('pagination.itemsPerPage', 'Items per page')}\n selectedKey={String(pageSize)}\n styles={pageSizeSelectStyles}\n onSelectionChange={onPageSizeSelectionChange}\n >\n {pageSizeOptions.map((option) => {\n const label = t(\n 'pagination.itemsPerPageOption',\n '{{size}} / page',\n {\n size: option,\n },\n );\n\n return (\n <Select.Item key={option} textValue={label}>\n {label}\n </Select.Item>\n );\n })}\n </Select>\n ) : null}\n\n <div data-element=\"Controls\">\n {showEdgeButtons ? (\n <NavButton\n qa=\"PaginationFirstButton\"\n size={size}\n icon={<BackwardIcon />}\n isDisabled={isFirst || isDisabled}\n aria-label={t('pagination.firstPage', 'First page')}\n onPress={() => goTo(1)}\n />\n ) : null}\n\n <NavButton\n qa=\"PaginationPrevButton\"\n size={size}\n icon={<LeftIcon />}\n isDisabled={isFirst || isDisabled}\n aria-label={t('pagination.previousPage', 'Previous page')}\n onPress={() => goTo(info.page - 1)}\n />\n\n {renderPageControl()}\n\n <NavButton\n qa=\"PaginationNextButton\"\n size={size}\n icon={<RightIcon />}\n isDisabled={isLast || isDisabled}\n aria-label={t('pagination.nextPage', 'Next page')}\n onPress={() => goTo(info.page + 1)}\n />\n\n {showEdgeButtons ? (\n <NavButton\n qa=\"PaginationLastButton\"\n size={size}\n icon={<ForwardIcon />}\n isDisabled={isLast || isDisabled}\n aria-label={t('pagination.lastPage', 'Last page')}\n onPress={() => goTo(totalPages)}\n />\n ) : null}\n </div>\n </PaginationElement>\n );\n}\n\nconst _Pagination = forwardRef(Pagination);\n\n_Pagination.displayName = 'Pagination';\n\nexport { _Pagination as Pagination };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination.js","names":["useControlledState","filterBaseProps","OUTER_STYLES","tasty","forwardRef","useEvent","useFormatter","useI18n","BackwardIcon","ForwardIcon","LeftIcon","RightIcon","extractStyles","Button","Select","clampPage","getPageInfo","getPaginationRange","ForwardedRef","ReactElement","CubePaginationProps","CubeTablePageInfo","PaginationElement","qa","as","styles","display","flow","gap","placeItems","placeContent","Summary","preset","color","whiteSpace","Controls","Gap","width","height","userSelect","Pages","styleProps","NavButton","type","border","PageButton","formatRange","info","start","page","pageSize","end","total","Math","min","Pagination","props","ref","$","_c","pageProp","defaultPage","onPageChange","totalPages","totalPagesProp","pageSizeProp","defaultPageSize","pageSizeOptions","onPageSizeChange","t0","siblingCount","t1","boundaryCount","t2","size","t3","isDisabled","hasNextPage","isCompact","t4","summary","t5","labelFormatter","ariaLabel","pageSizeSelectStyles","mods","rest","undefined","t","formatNumber","setPageSize","v","setPage","isCountable","Number","MAX_SAFE_INTEGER","from","to","goTo","next","clamped","max","t6","value","onPageSizeSelectionChange","t7","value_0","onPageSelectionChange","pageItems","selectEntries","Array","length","_temp","isFirst","isLast","t8","summaryNode","renderPageControl","String","map","entry","entryInfo","label","entry_0","index","showEdgeButtons","t9","eventProps","t10","t11","t12","option","label_0","t13","t14","Symbol","for","t15","t16","t17","t18","t19","t20","t21","t22","_","i","_Pagination","displayName"],"sources":["../../../../src/components/navigation/Pagination/Pagination.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { filterBaseProps, OUTER_STYLES, tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useFormatter, useI18n } from '../../../i18n';\nimport { BackwardIcon } from '../../../icons/BackwardIcon';\nimport { ForwardIcon } from '../../../icons/ForwardIcon';\nimport { LeftIcon } from '../../../icons/LeftIcon';\nimport { RightIcon } from '../../../icons/RightIcon';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../../actions';\nimport { Select } from '../../fields/Select';\n\nimport { clampPage, getPageInfo, getPaginationRange } from './use-pagination';\n\nimport type { ForwardedRef, ReactElement } from 'react';\nimport type { CubePaginationProps, CubeTablePageInfo } from './types';\n\nconst PaginationElement = tasty({\n qa: 'Pagination',\n as: 'nav',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'start',\n\n Summary: {\n // Follows the control's size rather than being fixed, so the summary\n // matches whatever the buttons beside it are.\n preset: { '': 't3', 'size=xsmall': 't4' },\n color: '#dark-03',\n whiteSpace: 'nowrap',\n },\n\n Controls: {\n display: 'flex',\n flow: 'row',\n gap: '.5x',\n placeItems: 'center',\n },\n\n Gap: {\n display: 'grid',\n placeItems: 'center',\n width: 'min $gap-size',\n height: '$gap-size',\n preset: 't3',\n color: '#dark-04',\n userSelect: 'none',\n },\n\n /**\n * The page numbers sit tighter than the nav buttons around them: they read\n * as one run of pages, not as separate controls, and a hairline is enough\n * to keep the current page's outline off its neighbours.\n */\n Pages: {\n display: 'flex',\n flow: 'row',\n gap: '1bw',\n placeItems: 'center',\n },\n\n '$gap-size': {\n '': '$size-sm',\n 'size=xsmall': '$size-xs',\n 'size=medium': '$size-md',\n },\n },\n styleProps: OUTER_STYLES,\n});\n\nconst NavButton = tasty(Button, {\n type: 'clear',\n styles: { border: true },\n});\n\n// Page buttons are borderless so the current page — which renders as `outline`\n// and therefore draws its own border — is the only bordered one in the run.\nconst PageButton = tasty(Button, {\n type: 'clear',\n});\n\nfunction formatRange(info: CubeTablePageInfo): string {\n const start = (info.page - 1) * info.pageSize + 1;\n const end =\n info.total > 0\n ? Math.min(info.page * info.pageSize, info.total)\n : info.page * info.pageSize;\n\n return `${start}–${end}`;\n}\n\nfunction Pagination(\n props: CubePaginationProps,\n ref: ForwardedRef<HTMLElement>,\n): ReactElement {\n const {\n page: pageProp,\n defaultPage,\n onPageChange,\n totalPages: totalPagesProp,\n total,\n pageSize: pageSizeProp,\n defaultPageSize,\n pageSizeOptions,\n onPageSizeChange,\n type = 'numbers',\n siblingCount = 1,\n boundaryCount = 1,\n size = 'small',\n isDisabled,\n hasNextPage,\n isCompact = false,\n summary = false,\n labelFormatter,\n ariaLabel,\n pageSizeSelectStyles,\n qa,\n mods,\n ...rest\n } = props;\n\n const { t } = useI18n();\n const { formatNumber } = useFormatter();\n\n const [pageSize, setPageSize] = useControlledState<number>(\n pageSizeProp as number,\n defaultPageSize ?? 50,\n onPageSizeChange as (v: number) => void,\n );\n const [page, setPage] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (v: number) => void,\n );\n\n // Unknown total: prev/next only, with `hasNextPage` driving the next button.\n // The page must NOT be clamped in that mode — there is nothing to clamp to.\n const isCountable = totalPagesProp != null || total != null;\n\n const info: CubeTablePageInfo = isCountable\n ? getPageInfo({\n page,\n pageSize,\n total: total ?? 0,\n totalPages: totalPagesProp,\n })\n : {\n page: clampPage(page, Number.MAX_SAFE_INTEGER),\n pageSize,\n totalPages: 0,\n total: 0,\n from: 0,\n to: 0,\n };\n\n const { totalPages } = info;\n\n const goTo = useEvent((next: number) => {\n const clamped = isCountable\n ? clampPage(next, totalPages)\n : Math.max(next, 1);\n\n if (clamped !== info.page) setPage(clamped);\n });\n\n const onPageSizeSelectionChange = useEvent((value: any) => {\n setPageSize(Number(value));\n setPage(1);\n });\n\n const onPageSelectionChange = useEvent((value: any) => {\n goTo(Number(value));\n });\n\n const pageItems =\n type === 'numbers' && isCountable\n ? getPaginationRange({\n page: info.page,\n totalPages,\n siblingCount,\n boundaryCount,\n })\n : [];\n\n // `type=\"select\"` materializes one entry per page, so it is only safe for\n // small page counts. Above the cap we fall back to `compact`, which reads the\n // same but renders a single label.\n const selectEntries =\n type === 'select' && isCountable && totalPages <= 200\n ? Array.from({ length: totalPages }, (_, i) => i + 1)\n : null;\n\n const isFirst = info.page <= 1;\n const isLast = isCountable ? info.page >= totalPages : !hasNextPage;\n\n const styles = extractStyles(props, OUTER_STYLES);\n\n const summaryNode =\n summary === false\n ? null\n : typeof summary === 'function'\n ? summary(info)\n : info.total > 0\n ? // Numbers are formatted here rather than left to i18next, which\n // interpolates them raw (\"1204\", not \"1,204\").\n t('pagination.summary', '{{from}}–{{to}} of {{total}}', {\n from: formatNumber(info.from),\n to: formatNumber(info.to),\n total: formatNumber(info.total),\n })\n : null;\n\n function renderPageControl() {\n if (selectEntries) {\n return (\n <Select\n qa=\"PaginationPageSelect\"\n size={size}\n isDisabled={isDisabled}\n aria-label={t('pagination.selectPage', 'Select page')}\n selectedKey={String(info.page)}\n width=\"min 15x\"\n styles={pageSizeSelectStyles}\n onSelectionChange={onPageSelectionChange}\n >\n {selectEntries.map((entry) => {\n const entryInfo = { ...info, page: entry };\n const label =\n labelFormatter?.(entryInfo) ??\n (info.total > 0\n ? formatRange(entryInfo)\n : t('pagination.page', 'Page {{page}}', { page: entry }));\n\n return (\n <Select.Item key={entry} textValue={String(label)}>\n {label}\n </Select.Item>\n );\n })}\n </Select>\n );\n }\n\n if (type === 'numbers' && pageItems.length > 0) {\n return (\n <div data-element=\"Pages\">\n {pageItems.map((entry, index) =>\n entry === 'gap' ? (\n <div key={`gap-${index}`} data-element=\"Gap\" aria-hidden=\"true\">\n {'…'}\n </div>\n ) : (\n <PageButton\n key={entry}\n qa={`PaginationPage_${entry}`}\n size={size}\n type={entry === info.page ? 'outline' : 'clear'}\n isDisabled={isDisabled}\n aria-label={t('pagination.page', 'Page {{page}}', {\n page: entry,\n })}\n aria-current={entry === info.page ? 'page' : undefined}\n onPress={() => goTo(entry)}\n >\n {entry}\n </PageButton>\n ),\n )}\n </div>\n );\n }\n\n if (!isCountable) return null;\n\n return (\n <div data-element=\"Summary\" data-qa=\"PaginationPageLabel\">\n {t('pagination.pageOf', '{{page}} of {{totalPages}}', {\n page: info.page,\n totalPages,\n })}\n </div>\n );\n }\n\n const showEdgeButtons = !isCompact && isCountable;\n\n return (\n <PaginationElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n qa={qa || 'Pagination'}\n styles={styles}\n mods={{ size, ...mods }}\n aria-label={ariaLabel ?? t('pagination.ariaLabel', 'Pagination')}\n >\n {summaryNode ? <div data-element=\"Summary\">{summaryNode}</div> : null}\n\n {pageSizeOptions && onPageSizeChange ? (\n <Select\n qa=\"PaginationPageSizeSelect\"\n size={size}\n isDisabled={isDisabled}\n aria-label={t('pagination.itemsPerPage', 'Items per page')}\n selectedKey={String(pageSize)}\n styles={pageSizeSelectStyles}\n onSelectionChange={onPageSizeSelectionChange}\n >\n {pageSizeOptions.map((option) => {\n const label = t(\n 'pagination.itemsPerPageOption',\n '{{size}} / page',\n {\n size: option,\n },\n );\n\n return (\n <Select.Item key={option} textValue={label}>\n {label}\n </Select.Item>\n );\n })}\n </Select>\n ) : null}\n\n <div data-element=\"Controls\">\n {showEdgeButtons ? (\n <NavButton\n qa=\"PaginationFirstButton\"\n size={size}\n icon={<BackwardIcon />}\n isDisabled={isFirst || isDisabled}\n aria-label={t('pagination.firstPage', 'First page')}\n onPress={() => goTo(1)}\n />\n ) : null}\n\n <NavButton\n qa=\"PaginationPrevButton\"\n size={size}\n icon={<LeftIcon />}\n isDisabled={isFirst || isDisabled}\n aria-label={t('pagination.previousPage', 'Previous page')}\n onPress={() => goTo(info.page - 1)}\n />\n\n {renderPageControl()}\n\n <NavButton\n qa=\"PaginationNextButton\"\n size={size}\n icon={<RightIcon />}\n isDisabled={isLast || isDisabled}\n aria-label={t('pagination.nextPage', 'Next page')}\n onPress={() => goTo(info.page + 1)}\n />\n\n {showEdgeButtons ? (\n <NavButton\n qa=\"PaginationLastButton\"\n size={size}\n icon={<ForwardIcon />}\n isDisabled={isLast || isDisabled}\n aria-label={t('pagination.lastPage', 'Last page')}\n onPress={() => goTo(totalPages)}\n />\n ) : null}\n </div>\n </PaginationElement>\n );\n}\n\nconst _Pagination = forwardRef(Pagination);\n\n_Pagination.displayName = 'Pagination';\n\nexport { _Pagination as Pagination };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAmBA,MAAMsB,oBAAoBnB,MAAM;CAC9BoB,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,cAAc;EAEdC,SAAS;GAGPC,QAAQ;IAAE,IAAI;IAAM,eAAe;IAAM;GACzCC,OAAO;GACPC,YAAY;GACb;EAEDC,UAAU;GACRT,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACb;EAEDO,KAAK;GACHV,SAAS;GACTG,YAAY;GACZQ,OAAO;GACPC,QAAQ;GACRN,QAAQ;GACRC,OAAO;GACPM,YAAY;GACb;EAODC,OAAO;GACLd,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACb;EAED,aAAa;GACX,IAAI;GACJ,eAAe;GACf,eAAe;GACjB;EACD;CACDY,YAAYvC;CACb,CAAC;AAEF,MAAMwC,YAAYvC,MAAMU,QAAQ;CAC9B8B,MAAM;CACNlB,QAAQ,EAAEmB,QAAQ,MAAK;CACxB,CAAC;AAIF,MAAMC,aAAa1C,MAAMU,QAAQ,EAC/B8B,MAAM,SACP,CAAC;AAEF,SAASG,YAAYC,MAAiC;AAOpD,QAAO,IANQA,KAAKE,OAAO,KAAKF,KAAKG,WAAW,EAMjC,GAJbH,KAAKK,QAAQ,IACTC,KAAKC,IAAIP,KAAKE,OAAOF,KAAKG,UAAUH,KAAKK,MAAM,GAC/CL,KAAKE,OAAOF,KAAKG;;AAKzB,SAAAK,WAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAIE,MAAA,EAAAV,MAAAW,UAAAC,aAAAC,cAAAC,YAAAC,gBAAAZ,OAAAF,UAAAe,cAAAC,iBAAAC,iBAAAC,kBAAAzB,MAAA0B,IAAAC,cAAAC,IAAAC,eAAAC,IAAAC,MAAAC,IAAAC,YAAAC,aAAAC,WAAAC,IAAAC,SAAAC,IAAAC,gBAAAC,WAAAC,sBAAA7D,IAAA8D,MAAA,GAAAC,SAwBI9B;CAdF,MAAAb,OAAA0B,OAAAkB,SAAA,YAAAlB;CACA,MAAAC,eAAAC,OAAAgB,SAAA,IAAAhB;CACA,MAAAC,gBAAAC,OAAAc,SAAA,IAAAd;CACA,MAAAC,OAAAC,OAAAY,SAAA,UAAAZ;CAGA,MAAAG,YAAAC,OAAAQ,SAAA,QAAAR;CACA,MAAAC,UAAAC,OAAAM,SAAA,QAAAN;CASF,MAAA,EAAAO,MAAcjF,SAAS;CACvB,MAAA,EAAAkF,iBAAyBnF,cAAc;CAEvC,MAAA,CAAA4C,UAAAwC,eAAgC1F,mBAC9BiE,cACAC,mBAAA,IACAE,iBACD;CACD,MAAA,CAAAnB,MAAA2C,WAAwB5F,mBACtB4D,UACAC,eAAA,GACAC,aACD;CAID,MAAA+B,cAAoB7B,kBAAkB,QAAQZ,SAAS;CAEvD,MAAAL,OAAgC8C,cAC5B7E,YAAY;EAAAiC;EAAAC;EAAAE,OAGHA,SAAA;EAAUW,YACLC;EASd,CAAC,GAd2B;EAAAf,MAQpBlC,UAAUkC,MAAM6C,OAAMC,iBAAkB;EAAA7C;EAAAa,YAElC;EAACX,OACN;EAAC4C,MACF;EAACC,IACH;EACL;CAEL,MAAA,EAAAlC,eAAuBhB;CAEvB,MAAAmD,OAAa7F,UAAS8F,SAAA;EACpB,MAAAC,UAAgBP,cACZ9E,UAAUoF,MAAMpC,WACC,GAAjBV,KAAIgD,IAAKF,MAAM,EAAE;AAErB,MAAIC,YAAYrD,KAAIE,KAAO2C,SAAQQ,QAAQ;GAC3C;CAAC,IAAAE;AAAA,KAAA5C,EAAA,OAAAkC,WAAAlC,EAAA,OAAAgC,aAAA;AAEwCY,QAAAC,UAAA;AACzCb,eAAYI,OAAOS,MAAM,CAAC;AAC1BX,WAAQ,EAAE;;AACXlC,IAAA,KAAAkC;AAAAlC,IAAA,KAAAgC;AAAAhC,IAAA,KAAA4C;OAAAA,MAAA5C,EAAA;CAHD,MAAA8C,4BAAkCnG,SAASiG,GAGzC;CAAC,IAAAG;AAAA,KAAA/C,EAAA,OAAAwC,MAAA;AAEoCO,QAAAC,YAAA;AACrCR,QAAKJ,OAAOS,QAAM,CAAC;;AACpB7C,IAAA,KAAAwC;AAAAxC,IAAA,KAAA+C;OAAAA,MAAA/C,EAAA;CAFD,MAAAiD,wBAA8BtG,SAASoG,GAErC;CAEF,MAAAG,YACEjE,SAAS,aAATkD,cACI5E,mBAAmB;EAAAgC,MACXF,KAAIE;EAAKc;EAAAO;EAAAE;EAKhB,CAAC,GAPN,EAOM;CAKR,MAAAqC,gBACElE,SAAS,YAATkD,eAAoC9B,cAAc,MAC9C+C,MAAKd,KAAM,EAAAe,QAAUhD,YAAY,EAAEiD,MAC/B,GAFR;CAIF,MAAAC,UAAgBlE,KAAIE,QAAS;CAC7B,MAAAiE,SAAerB,cAAc9C,KAAIE,QAASc,aAA3B,CAAyCc;CAAY,IAAAsC;AAAA,KAAAzD,EAAA,OAAAF,OAAA;AAErD2D,OAAAvG,cAAc4C,OAAOtD,aAAa;AAAAwD,IAAA,KAAAF;AAAAE,IAAA,KAAAyD;OAAAA,MAAAzD,EAAA;CAAjD,MAAAjC,SAAe0F;CAEf,MAAAC,cACEpC,YAAY,QAAZ,OAEI,OAAOA,YAAY,aACjBA,QAAQjC,KASF,GARNA,KAAIK,QAAS,IAGXoC,EAAE,sBAAsB,gCAAgC;EAAAQ,MAChDP,aAAa1C,KAAIiD,KAAM;EAAAC,IACzBR,aAAa1C,KAAIkD,GAAI;EAAA7C,OAClBqC,aAAa1C,KAAIK,MAAM;EAE7B,CAAC,GARN;CAUR,MAAAiE,oBAAA,SAAAA,oBAAA;AACE,MAAIR,cAAa,QAEb,oBAAC;GACI,IAAA;GACGnC;GACME;GACA,cAAAY,EAAE,yBAAyB,cAAa;GACvC,aAAA8B,OAAOvE,KAAIE,KAAK;GACvB,OAAA;GACEmC,QAAAA;GACWuB,mBAAAA;aAElBE,cAAaU,KAAKC,UAAA;IACjB,MAAAC,YAAkB;KAAA,GAAK1E;KAAIE,MAAQuE;KAAO;IAC1C,MAAAE,QACExC,iBAAiBuC,UAG0C,KAF1D1E,KAAIK,QAAS,IACVN,YAAY2E,UAC0C,GAAtDjC,EAAE,mBAAmB,iBAAiB,EAAAvC,MAAQuE,OAAO,CAAE;AAAC,WAG5D,oBAAA,SAAA;KAAoC,WAAAF,OAAOI,MAAK;eAC7CA;OADeF,MAEJ;KAEjB;IACM;AAIb,MAAI7E,SAAS,aAAaiE,UAASG,SAAU,EAAC,QAE1C,oBAAA;GAAkB,gBAAA;aACfH,UAASW,KAAKI,SAAAC,UACbJ,YAAU,QACR,oBAAA;IAAuC,gBAAA;IAAkB,eAAA;cACtD;MADO,OAAOI,QAkBlB,GAdC,oBAAC;IAEK,IAAA,kBAAkBJ;IAChB9C;IACA,MAAA8C,YAAUzE,KAAIE,OAAd,YAAA;IACM2B;IACA,cAAAY,EAAE,mBAAmB,iBAAiB,EAAAvC,MAC1CuE,SACP,CAAA;IACa,gBAAAA,YAAUzE,KAAIE,OAAd,SAAAsC;IACL,eAAMW,KAAKsB,QAAK;cAExBA;MAXIA,QAcX,CAAA;IACI;AAIV,MAAI,CAAC3B,YAAW,QAAS;AAAK,SAG5B,oBAAA;GAAkB,gBAAA;GAAkB,WAAA;aACjCL,EAAE,qBAAqB,8BAA8B;IAAAvC,MAC9CF,KAAIE;IAAKc;IAEhB,CAAA;IACG;;CAIV,MAAA8D,kBAAwB,CAAC/C,aAADe;CAIhB,MAAAiC,KAAA7H,gBAAgBqF,MAAM,EAAAyC,YAAc,MAAM,CAAC;CAAA,IAAAC;AAAA,KAAAtE,EAAA,OAAA2B,QAAA3B,EAAA,OAAAgB,MAAA;AAIzCsD,QAAA;GAAAtD;GAAA,GAAWW;GAAM;AAAA3B,IAAA,KAAA2B;AAAA3B,IAAA,KAAAgB;AAAAhB,IAAA,KAAAsE;OAAAA,OAAAtE,EAAA;CAAA,IAAAuE;AAAA,KAAAvE,EAAA,QAAAyB,aAAAzB,EAAA,QAAA8B,GAAA;AACXyC,QAAA9C,aAAaK,EAAE,wBAAwB,aAAa;AAAA9B,IAAA,MAAAyB;AAAAzB,IAAA,MAAA8B;AAAA9B,IAAA,MAAAuE;OAAAA,OAAAvE,EAAA;CAAA,IAAAwE;AAAA,KAAAxE,EAAA,QAAAkB,cAAAlB,EAAA,QAAAU,oBAAAV,EAAA,QAAA8C,6BAAA9C,EAAA,QAAAR,YAAAQ,EAAA,QAAAS,mBAAAT,EAAA,QAAA0B,wBAAA1B,EAAA,QAAAgB,QAAAhB,EAAA,QAAA8B,GAAA;AAI/D0C,QAAA/D,mBAAAC,mBACC,oBAAC;GACI,IAAA;GACGM;GACME;GACA,cAAAY,EAAE,2BAA2B,iBAAgB;GAC5C,aAAA8B,OAAOpE,SAAQ;GACpBkC,QAAAA;GACWoB,mBAAAA;aAElBrC,gBAAeoD,KAAKY,WAAA;IACnB,MAAAC,UAAc5C,EACZ,iCACA,mBACA,EAAAd,MACQyD,QAEV,CAAC;AAAC,WAGA,oBAAA,SAAA;KAAqCT,WAAAA;eAClCA;OADeS,OAEJ;KAEjB;IAEG,GA1BP;AA0BOzE,IAAA,MAAAkB;AAAAlB,IAAA,MAAAU;AAAAV,IAAA,MAAA8C;AAAA9C,IAAA,MAAAR;AAAAQ,IAAA,MAAAS;AAAAT,IAAA,MAAA0B;AAAA1B,IAAA,MAAAgB;AAAAhB,IAAA,MAAA8B;AAAA9B,IAAA,MAAAwE;OAAAA,OAAAxE,EAAA;CAAA,IAAA2E;AAAA,KAAA3E,EAAA,QAAAwC,QAAAxC,EAAA,QAAAkB,cAAAlB,EAAA,QAAAuD,WAAAvD,EAAA,QAAAmE,mBAAAnE,EAAA,QAAAgB,QAAAhB,EAAA,QAAA8B,GAAA;AAGL6C,QAAAR,kBACC,oBAAC;GACI,IAAA;GACGnD;GACA,MAAA,oBAAC,iBAAc;GACT,YAAAuC,WAAArC;GACA,cAAAY,EAAE,wBAAwB,aAAY;GACzC,eAAMU,KAAK,EAAC;IAEjB,GATP;AASOxC,IAAA,MAAAwC;AAAAxC,IAAA,MAAAkB;AAAAlB,IAAA,MAAAuD;AAAAvD,IAAA,MAAAmE;AAAAnE,IAAA,MAAAgB;AAAAhB,IAAA,MAAA8B;AAAA9B,IAAA,MAAA2E;OAAAA,OAAA3E,EAAA;CAAA,IAAA4E;AAAA,KAAA5E,EAAA,QAAA6E,OAAAC,IAAA,4BAAA,EAAA;AAKAF,QAAA,oBAAC,aAAW;AAAA5E,IAAA,MAAA4E;OAAAA,OAAA5E,EAAA;CAAA,IAAA+E;AAAA,KAAA/E,EAAA,QAAA8B,GAAA;AAENiD,QAAAjD,EAAE,2BAA2B,gBAAgB;AAAA9B,IAAA,MAAA8B;AAAA9B,IAAA,MAAA+E;OAAAA,OAAA/E,EAAA;CAI1D,MAAAgF,MAAArB,mBAAmB;CAAA,IAAAsB;AAAA,KAAAjF,EAAA,QAAA6E,OAAAC,IAAA,4BAAA,EAAA;AAKZG,QAAA,oBAAC,cAAY;AAAAjF,IAAA,MAAAiF;OAAAA,OAAAjF,EAAA;CACP,MAAAkF,MAAA1B,UAAAtC;CAAoB,IAAAiE;AAAA,KAAAnF,EAAA,QAAA8B,GAAA;AACpBqD,QAAArD,EAAE,uBAAuB,YAAY;AAAA9B,IAAA,MAAA8B;AAAA9B,IAAA,MAAAmF;OAAAA,OAAAnF,EAAA;CAAA,IAAAoF;AAAA,KAAApF,EAAA,QAAAwC,QAAAxC,EAAA,QAAAX,KAAAE,MAAA;AACxC6F,cAAM5C,KAAKnD,KAAIE,OAAQ,EAAE;AAAAS,IAAA,MAAAwC;AAAAxC,IAAA,MAAAX,KAAAE;AAAAS,IAAA,MAAAoF;OAAAA,OAAApF,EAAA;CAAA,IAAAqF;AAAA,KAAArF,EAAA,QAAAgB,QAAAhB,EAAA,QAAAkF,OAAAlF,EAAA,QAAAmF,OAAAnF,EAAA,QAAAoF,KAAA;AANpCC,QAAA,oBAAC;GACI,IAAA;GACGrE;GACA,MAAAiE;GACM,YAAAC;GACA,cAAAC;GACH,SAAAC;IACT;AAAApF,IAAA,MAAAgB;AAAAhB,IAAA,MAAAkF;AAAAlF,IAAA,MAAAmF;AAAAnF,IAAA,MAAAoF;AAAApF,IAAA,MAAAqF;OAAAA,OAAArF,EAAA;CAAA,IAAAsF;AAAA,KAAAtF,EAAA,QAAAwC,QAAAxC,EAAA,QAAAkB,cAAAlB,EAAA,QAAAwD,UAAAxD,EAAA,QAAAmE,mBAAAnE,EAAA,QAAAgB,QAAAhB,EAAA,QAAA8B,KAAA9B,EAAA,QAAAK,YAAA;AAEDiF,QAAAnB,kBACC,oBAAC;GACI,IAAA;GACGnD;GACA,MAAA,oBAAC,gBAAa;GACR,YAAAwC,UAAAtC;GACA,cAAAY,EAAE,uBAAuB,YAAW;GACvC,eAAMU,KAAKnC,WAAU;IAE1B,GATP;AASOL,IAAA,MAAAwC;AAAAxC,IAAA,MAAAkB;AAAAlB,IAAA,MAAAwD;AAAAxD,IAAA,MAAAmE;AAAAnE,IAAA,MAAAgB;AAAAhB,IAAA,MAAA8B;AAAA9B,IAAA,MAAAK;AAAAL,IAAA,MAAAsF;OAAAA,OAAAtF,EAAA;AAAA,QA/EZ,qBAAC;EAAiB,GACZoE;EACCrE;EACD,IAAAlC,MAAA;EACIE;EACF,MAAAuG;EACM,cAAAC;;GAEXb,cAAc,oBAAA;IAAkB,gBAAA;cAAWA;KAAyB,GAApE;GAEAc;GA4BD,qBAAA;IAAkB,gBAAA;;KACfG;KAWD,oBAAC;MACI,IAAA;MACG3D;MACA,MAAA4D;MACM,YAAArB,WAAArC;MACA,cAAA6D;MACH,eAAMvC,KAAKnD,KAAIE,OAAQ,EAAC;OAGlC;KAAAyF;KAEDK;KASCC;;KAWL;;GAAoB;;AArRxB,SAAAhC,MAAAiC,GAAAC,GAAA;AAAA,QAkGqDA,IAAI;;AAuLzD,MAAMC,cAAc/I,WAAWmD,WAAW;AAE1C4F,YAAYC,cAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useControlledState } from "@react-stately/utils";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pagination.js","names":["useControlledState","
|
|
1
|
+
{"version":3,"file":"use-pagination.js","names":["useControlledState","useEvent","CubePaginationItem","CubeTablePageInfo","range","start","end","length","Array","from","_","i","clampPage","page","totalPages","Number","isFinite","Math","min","max","trunc","PaginationRangeOptions","siblingCount","boundaryCount","getPaginationRange","current","startPages","endPages","siblingsStart","siblingsEnd","getPageInfo","options","pageSize","total","ceil","to","UsePaginationOptions","defaultPage","onPageChange","defaultPageSize","onPageSizeChange","UsePaginationResult","pageItems","T","setPage","setPageSize","usePagination","items","t0","$","_c","t1","undefined","setPageSizeState","v","setPageState","t2","info","t3","next","t4","next_0","t5","slice","t6"],"sources":["../../../../src/components/navigation/Pagination/use-pagination.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { CubePaginationItem, CubeTablePageInfo } from './types';\n\nfunction range(start: number, end: number): number[] {\n const length = end - start + 1;\n\n return length > 0 ? Array.from({ length }, (_, i) => start + i) : [];\n}\n\nexport function clampPage(page: number, totalPages: number): number {\n if (!Number.isFinite(page)) return 1;\n\n return Math.min(Math.max(Math.trunc(page), 1), Math.max(totalPages, 1));\n}\n\nexport interface PaginationRangeOptions {\n page: number;\n totalPages: number;\n /** Page buttons either side of the current page. @default 1 */\n siblingCount?: number;\n /** Page buttons pinned at each end. @default 1 */\n boundaryCount?: number;\n}\n\n/**\n * Page numbers to render, with `'gap'` marking an elided run. The output length\n * is bounded by `boundaryCount * 2 + siblingCount * 2 + 3` regardless of\n * `totalPages` — which is the whole point of `type=\"numbers\"`: a 100k-row table\n * at 100 per page renders ~7 buttons, not 1000 `Select` items.\n */\nexport function getPaginationRange({\n page,\n totalPages,\n siblingCount = 1,\n boundaryCount = 1,\n}: PaginationRangeOptions): CubePaginationItem[] {\n if (totalPages <= 0) return [];\n\n const current = clampPage(page, totalPages);\n\n const startPages = range(1, Math.min(boundaryCount, totalPages));\n const endPages = range(\n Math.max(totalPages - boundaryCount + 1, boundaryCount + 1),\n totalPages,\n );\n\n // Pull the sibling window inwards when it would run past either boundary, so\n // the rendered count stays constant as the user pages through.\n const siblingsStart = Math.max(\n Math.min(\n current - siblingCount,\n totalPages - boundaryCount - siblingCount * 2 - 1,\n ),\n boundaryCount + 2,\n );\n const siblingsEnd = Math.min(\n Math.max(current + siblingCount, boundaryCount + siblingCount * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : totalPages - 1,\n );\n\n return [\n ...startPages,\n\n // A gap that would hide exactly one page renders that page instead.\n ...(siblingsStart > boundaryCount + 2\n ? (['gap'] as CubePaginationItem[])\n : boundaryCount + 1 < totalPages - boundaryCount\n ? [boundaryCount + 1]\n : []),\n\n ...range(siblingsStart, siblingsEnd),\n\n ...(siblingsEnd < totalPages - boundaryCount - 1\n ? (['gap'] as CubePaginationItem[])\n : totalPages - boundaryCount > boundaryCount\n ? [totalPages - boundaryCount]\n : []),\n\n ...endPages,\n ];\n}\n\nexport function getPageInfo(options: {\n page: number;\n pageSize: number;\n total: number;\n totalPages?: number;\n}): CubeTablePageInfo {\n const { pageSize, total } = options;\n const totalPages =\n options.totalPages ??\n (pageSize > 0 ? Math.max(Math.ceil(total / pageSize), 1) : 1);\n const page = clampPage(options.page, totalPages);\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\n const to = total === 0 ? 0 : Math.min(page * pageSize, total);\n\n return { page, pageSize, totalPages, total, from, to };\n}\n\nexport interface UsePaginationOptions {\n page?: number;\n defaultPage?: number;\n onPageChange?: (page: number) => void;\n pageSize?: number;\n defaultPageSize?: number;\n onPageSizeChange?: (pageSize: number) => void;\n}\n\nexport type UsePaginationResult<T> = CubeTablePageInfo & {\n /** The current page's slice of `items`. */\n pageItems: T[];\n setPage: (page: number) => void;\n /** Also resets to page 1, since the old page index no longer means anything. */\n setPageSize: (pageSize: number) => void;\n};\n\n/**\n * Client-side pagination over an in-memory array. Standalone — `ItemTable` uses\n * it internally, but it works on its own for any paged list.\n */\nexport function usePagination<T>(\n items: readonly T[],\n options: UsePaginationOptions = {},\n): UsePaginationResult<T> {\n const [pageSize, setPageSizeState] = useControlledState<number>(\n options.pageSize as number,\n options.defaultPageSize ?? 50,\n options.onPageSizeChange as (v: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n options.page as number,\n options.defaultPage ?? 1,\n options.onPageChange as (v: number) => void,\n );\n\n const info = getPageInfo({ page, pageSize, total: items.length });\n\n const setPage = useEvent((next: number) => {\n setPageState(clampPage(next, info.totalPages));\n });\n\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n setPageState(1);\n });\n\n const pageItems = items.slice(\n (info.page - 1) * pageSize,\n info.page * pageSize,\n ) as T[];\n\n return { ...info, pageItems, setPage, setPageSize };\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { DraggableCollection } from "../../shared/DraggableCollection.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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
4
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabButton.js","names":["Children","cloneElement","isValidElement","ReactElement","ReactNode","useEffect","useMemo","useRef","useState","useDraggableItem","useFocus","useFocusVisible","useHover","useTab","useEvent","useI18n","CloseIcon","MoreIcon","mergeProps","CubeItemActionProps","ItemAction","ItemActionsWrapper","CubeMenuProps","Menu","MenuTrigger","useContextMenu","CubeInlineInputRef","InlineInput","useBoardDragActive","createMockDragState","POPOVER_PLACEMENT_BY_TABS_PLACEMENT","TabContainer","TabElement","TabDropIndicator","useTabsContext","ParsedTab","RADIO_SIZE_MAP","Key","Node","KeyboardEvent","MouseEvent","PointerEvent","DraggableCollectionState","ACTIONS_EVENT_HANDLERS","onClick","e","stopPropagation","onPointerDown","onPointerUp","onMouseDown","onMouseUp","onKeyDown","key","INLINE_INPUT_STYLES","cursor","const","SPRING_LOAD_DELAY","MenuItemLikeProps","children","isDisabled","theme","getRawKey","element","keyStr","String","startsWith","slice","processMenuItems","effectiveIsEditable","isDeletable","result","forEach","child","push","childKey","childProps","props","isMenuEmpty","menu","undefined","toArray","length","TabButtonProps","item","tabData","isLastTab","disableTooltip","tooltip","title","TabButton","t0","$","_c","t","t1","editTabTitleLabel","state","type","size","placement","autoHideActions","parentAutoHideActions","isEditable","parentIsEditable","parentMenu","menuTriggerProps","parentMenuTriggerProps","menuProps","parentMenuProps","contextMenu","parentContextMenu","onAction","parentOnAction","onDelete","dragState","dropState","editingKey","startEditing","submitEditing","cancelEditing","ref","containerRef","inlineInputRef","t2","tabProps","isDraggable","t3","collection","selectionManager","mockDragState","t4","dragResult","t5","dragProps","effectiveDragProps","isDragging","isMenuOpen","setIsMenuOpen","t6","Symbol","for","hoverProps","isHovered","isFocused","setIsFocused","t7","onFocusChange","focusProps","isFocusVisible","suppressFocusVisible","setSuppressFocusVisible","effectiveFocusVisible","isActive","selectedKey","t8","disabledKeys","has","isEditing","isBoardDragActive","isDropPending","setIsDropPending","springLoadTimerRef","t9","current","clearTimeout","clearSpringLoad","t10","window","setTimeout","setSelectedKey","handleSpringLoadEnter","t11","t12","effectiveMenu","t13","effectiveMenuTriggerProps","t14","effectiveMenuProps","effectiveContextMenu","effectiveType","contextMenuEnabled","contextMenuOnly","t15","showDeleteButton","t16","processedMenu","itemKeyStr","t17","handleDelete","titleString","t18","handleStartEditing","t19","onTitleChange","newTitle","focus","handleSubmitEditing","t20","handleCancelEditing","t21","editing","handleEditingChange","t22","action","actionStr","normalizedAction","handleMenuAction","t23","menuElement","menuPopoverPlacement","t24","t25","t26","preventDefault","shiftKey","open","handleKeyDown","t27","active","deletable","disabled","hovered","focused","draggable","dragging","mods","t28","t29","scrollIntoView","block","inline","t30","menuAction","t31","deleteAction","t32","actions","effectiveSize","itemSize","isFileType","itemShape","effectiveAutoHideActions","itemStyleProps","qa","qaVal","styles","tabTooltip","_title","content","_content","_key","_isDisabled","prerender","_prerender","keepMounted","_keepMounted","_size","_actions","_autoHideActions","_isEditable","_onTitleChange","_menu","_menuTriggerProps","_menuProps","_contextMenu","_onAction","t33","t34","t35","t36","t37","renderTitleDisplay","tabElementTooltip","titleContent","effectiveContainerRef","targetRef","ariaProps","containerMods","t38","dropPosition","t39","t40","t41","showActions","skipActionsWidthTransition","onPointerEnter","onPointerLeave","itemType","t42","rendered","t43","t44"],"sources":["../../../../src/components/navigation/Tabs/TabButton.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n isValidElement,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n useDraggableItem,\n useFocus,\n useFocusVisible,\n useHover,\n useTab,\n} from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { MoreIcon } from '../../../icons/MoreIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { CubeItemActionProps, ItemAction } from '../../actions/ItemAction';\nimport { ItemActionsWrapper } from '../../actions/ItemActionsWrapper';\nimport { CubeMenuProps, Menu, MenuTrigger } from '../../actions/Menu';\nimport { useContextMenu } from '../../actions/use-context-menu';\nimport {\n CubeInlineInputRef,\n InlineInput,\n} from '../../content/InlineInput/InlineInput';\nimport { useBoardDragActive } from '../../layout/Board/board-context';\nimport { createMockDragState } from '../../shared/DraggableCollection';\n\nimport { POPOVER_PLACEMENT_BY_TABS_PLACEMENT } from './popover-placement';\nimport { TabContainer, TabElement } from './styled';\nimport { TabDropIndicator } from './TabDropIndicator';\nimport { useTabsContext } from './TabsContext';\nimport { ParsedTab, RADIO_SIZE_MAP } from './types';\n\nimport type { Key, Node } from '@react-types/shared';\nimport type { KeyboardEvent, MouseEvent, PointerEvent } from 'react';\nimport type { DraggableCollectionState } from 'react-stately';\n\n// =============================================================================\n// Event handlers for actions to prevent event propagation to tab button\n// =============================================================================\n\nconst ACTIONS_EVENT_HANDLERS = {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerDown: (e: PointerEvent) => e.stopPropagation(),\n onPointerUp: (e: PointerEvent) => e.stopPropagation(),\n onMouseDown: (e: MouseEvent) => e.stopPropagation(),\n onMouseUp: (e: MouseEvent) => e.stopPropagation(),\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n },\n};\n\n// Inherit the tab button's pointer cursor — InlineInput's default `cursor: text`\n// hover hint is misleading inside a clickable tab.\nconst INLINE_INPUT_STYLES = { cursor: 'inherit' } as const;\n\n// How long a dragged Board widget must hover a tab header before that tab\n// spring-loads (opens). Long enough to avoid accidental switches while crossing\n// tabs, short enough to feel responsive.\nconst SPRING_LOAD_DELAY = 500;\n\n// =============================================================================\n// Menu Processing Utilities\n// =============================================================================\n\ninterface MenuItemLikeProps {\n children?: ReactNode;\n isDisabled?: boolean;\n theme?: string;\n}\n\n/**\n * Extracts the raw key from a React element, stripping the \".$\" prefix\n * that React adds via Children.map/toArray.\n */\nfunction getRawKey(element: ReactElement): string | null {\n if (element.key == null) return null;\n const keyStr = String(element.key);\n return keyStr.startsWith('.$') ? keyStr.slice(2) : keyStr;\n}\n\n/**\n * Process menu items for predefined action keys (rename, delete).\n * Auto-adds labels and disables items when requirements aren't met.\n */\nfunction processMenuItems(\n children: ReactNode,\n effectiveIsEditable: boolean,\n isDeletable: boolean,\n): ReactNode {\n // Use Children.forEach instead of Children.toArray to avoid React prepending\n // \".$\" to element keys, which breaks selectedKeys matching in Menu.\n const result: ReactNode[] = [];\n\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) {\n result.push(child);\n return;\n }\n\n const childKey = getRawKey(child);\n const childProps = child.props as MenuItemLikeProps;\n\n // Handle predefined action keys\n if (childKey === 'rename') {\n result.push(\n cloneElement(child as ReactElement<MenuItemLikeProps>, {\n children: childProps.children ?? 'Rename',\n isDisabled: childProps.isDisabled ?? !effectiveIsEditable,\n }),\n );\n return;\n }\n if (childKey === 'delete') {\n result.push(\n cloneElement(child as ReactElement<MenuItemLikeProps>, {\n children: childProps.children ?? 'Delete',\n theme: childProps.theme ?? 'danger',\n isDisabled: childProps.isDisabled ?? !isDeletable,\n }),\n );\n return;\n }\n\n // Recursively process Menu.Section children\n if (childProps.children && typeof childProps.children !== 'string') {\n result.push(\n cloneElement(child as ReactElement<MenuItemLikeProps>, {\n children: processMenuItems(\n childProps.children,\n effectiveIsEditable,\n isDeletable,\n ),\n }),\n );\n return;\n }\n\n result.push(child);\n });\n\n return result;\n}\n\n/**\n * Check if menu children is empty (null, undefined, or empty fragment)\n */\nfunction isMenuEmpty(menu: ReactNode): boolean {\n if (menu === null || menu === undefined) return true;\n const children = Children.toArray(menu);\n return children.length === 0;\n}\n\n// =============================================================================\n// TabButton Props\n// =============================================================================\n\nexport interface TabButtonProps {\n /** React Aria collection item */\n item: Node<object>;\n /** Parsed tab data */\n tabData: ParsedTab;\n /** Whether this is the last tab (for drop indicator) */\n isLastTab?: boolean;\n}\n\n/** The same tooltip, kept mounted but unable to open. */\nfunction disableTooltip(tooltip: ParsedTab['tooltip']): ParsedTab['tooltip'] {\n if (typeof tooltip === 'string') return { title: tooltip, isDisabled: true };\n if (tooltip && typeof tooltip === 'object') {\n return { ...tooltip, isDisabled: true };\n }\n\n return tooltip;\n}\n\n// =============================================================================\n// TabButton Component\n// =============================================================================\n\n/**\n * Individual tab button component.\n *\n * Uses TabsContext to access shared props, dramatically reducing prop drilling.\n * Handles:\n * - Tab selection and keyboard navigation\n * - Inline title editing\n * - Menu and context menu\n * - Drag-and-drop reordering\n * - Focus and hover states\n */\nexport function TabButton({ item, tabData, isLastTab }: TabButtonProps) {\n const { t } = useI18n();\n const editTabTitleLabel = t('tabs.editTabTitle', 'Edit tab title');\n\n // Get shared context\n const {\n state,\n type,\n size,\n placement,\n autoHideActions: parentAutoHideActions,\n isEditable: parentIsEditable,\n menu: parentMenu,\n menuTriggerProps: parentMenuTriggerProps,\n menuProps: parentMenuProps,\n contextMenu: parentContextMenu,\n onAction: parentOnAction,\n onDelete,\n dragState,\n dropState,\n editingKey,\n startEditing,\n submitEditing,\n cancelEditing,\n } = useTabsContext();\n\n const ref = useRef<HTMLButtonElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const inlineInputRef = useRef<CubeInlineInputRef>(null);\n const { tabProps } = useTab({ key: item.key }, state, ref);\n\n // Drag-and-drop support - only enable when both states are provided\n const isDraggable = !!dragState && !!dropState;\n\n // useDraggableItem must be called unconditionally (Rules of Hooks)\n // When dragState is undefined, we pass a minimal mock state to satisfy the hook\n const mockDragState = useMemo(\n () => createMockDragState(state.collection, state.selectionManager),\n [state.collection, state.selectionManager],\n );\n\n const dragResult = useDraggableItem(\n { key: item.key },\n dragState ?? mockDragState,\n );\n const effectiveDragProps = isDraggable ? dragResult.dragProps : {};\n const isDragging = isDraggable && dragResult.isDragging;\n\n // Controlled state for menu trigger (enables keyboard opening with Shift+F10)\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n // Hover, focus, and focus-visible state handling\n const { hoverProps, isHovered } = useHover({});\n const [isFocused, setIsFocused] = useState(false);\n const { focusProps } = useFocus({ onFocusChange: setIsFocused });\n const { isFocusVisible } = useFocusVisible();\n\n // Suppress focus-visible when restoring focus after editing\n const [suppressFocusVisible, setSuppressFocusVisible] = useState(false);\n const effectiveFocusVisible = isFocusVisible && !suppressFocusVisible;\n\n const isActive = state.selectedKey === item.key;\n const isDisabled = state.disabledKeys.has(item.key);\n const isDeletable = !!onDelete;\n const isEditing = editingKey === item.key;\n\n // Spring-load: when this Tabs sits inside a Board and a widget is being\n // dragged, hovering an inactive tab header for a moment opens it, so the user\n // can drop the widget into (or move it between) tabs. React Aria's `useMove`\n // uses window listeners without pointer capture and the dragged widget is\n // `pointer-events: none`, so the tab header still receives native pointer\n // enter/leave during the drag. `false` outside a Board, so nothing changes.\n const isBoardDragActive = useBoardDragActive();\n const [isDropPending, setIsDropPending] = useState(false);\n const springLoadTimerRef = useRef<number | null>(null);\n\n const clearSpringLoad = useEvent(() => {\n if (springLoadTimerRef.current != null) {\n clearTimeout(springLoadTimerRef.current);\n springLoadTimerRef.current = null;\n }\n setIsDropPending(false);\n });\n\n const handleSpringLoadEnter = useEvent(() => {\n if (!isBoardDragActive || isActive || isDisabled) return;\n if (springLoadTimerRef.current != null) return;\n setIsDropPending(true);\n springLoadTimerRef.current = window.setTimeout(() => {\n springLoadTimerRef.current = null;\n setIsDropPending(false);\n state.setSelectedKey(item.key);\n }, SPRING_LOAD_DELAY);\n });\n\n // Cancel any pending spring-load when the drag ends (or the tab unmounts), so\n // a stale timer can never switch tabs after the drop.\n useEffect(() => {\n if (!isBoardDragActive) clearSpringLoad();\n return clearSpringLoad;\n }, [isBoardDragActive, clearSpringLoad]);\n\n // Compute effective values - Tab-level overrides Tabs-level.\n // Icon-only tabs (no `title`) have nothing to rename, so editing is disabled.\n const effectiveIsEditable =\n (tabData.isEditable ?? parentIsEditable ?? false) && tabData.title != null;\n const effectiveMenu =\n tabData.menu === null ? null : tabData.menu ?? parentMenu;\n const effectiveMenuTriggerProps: Partial<CubeItemActionProps> = {\n ...parentMenuTriggerProps,\n ...tabData.menuTriggerProps,\n };\n const effectiveMenuProps: Partial<CubeMenuProps<object>> = {\n ...parentMenuProps,\n ...tabData.menuProps,\n };\n const effectiveContextMenu =\n tabData.contextMenu ?? parentContextMenu ?? false;\n const effectiveType = type ?? 'default';\n\n const contextMenuEnabled =\n effectiveContextMenu === true || effectiveContextMenu === 'context-only';\n const contextMenuOnly = effectiveContextMenu === 'context-only';\n\n // Inline close when no menu, or context-only (no overflow trigger)\n const showDeleteButton =\n isDeletable && (isMenuEmpty(effectiveMenu) || contextMenuOnly);\n\n // Process menu items for auto-labels and disabled states\n const processedMenu =\n effectiveMenu && !isMenuEmpty(effectiveMenu)\n ? processMenuItems(effectiveMenu, effectiveIsEditable, isDeletable)\n : null;\n\n const itemKeyStr = String(item.key);\n\n const handleDelete = useEvent(() => {\n onDelete?.(itemKeyStr);\n });\n\n const titleString =\n typeof tabData.title === 'string' ? tabData.title : itemKeyStr;\n\n const handleStartEditing = useEvent(() => {\n if (!effectiveIsEditable || isDisabled) return;\n startEditing(itemKeyStr, titleString);\n });\n\n const handleSubmitEditing = useEvent((newTitle: string) => {\n submitEditing(itemKeyStr, newTitle, tabData.onTitleChange);\n // Suppress focus-visible and restore focus to the tab button after editing\n setSuppressFocusVisible(true);\n ref.current?.focus();\n });\n\n const handleCancelEditing = useEvent(() => {\n cancelEditing();\n // Suppress focus-visible and restore focus to the tab button after editing\n setSuppressFocusVisible(true);\n ref.current?.focus();\n });\n\n const handleEditingChange = useEvent((editing: boolean) => {\n if (editing && !isEditing) {\n handleStartEditing();\n }\n });\n\n // Handle menu actions - predefined actions first, then callbacks\n const handleMenuAction = useEvent((action: Key) => {\n // Strip the \".$\" prefix that React adds via Children.toArray/map\n const actionStr = String(action);\n const normalizedAction = actionStr.startsWith('.$')\n ? actionStr.slice(2)\n : actionStr;\n\n // Handle predefined actions first (only if requirements are met)\n // The rename input claims focus through its own `<FocusScope autoFocus>`,\n // and the closing Menu no longer takes focus back to its trigger once an\n // action has moved it (see `MenuTrigger`), so no refocus pass is needed.\n if (normalizedAction === 'rename' && effectiveIsEditable) {\n inlineInputRef.current?.startEditing();\n }\n if (normalizedAction === 'delete' && isDeletable) {\n onDelete?.(itemKeyStr);\n }\n // Call Tab-level onAction first (with normalized action)\n tabData.onAction?.(normalizedAction);\n // Then call Tabs-level onAction with tab key (with normalized action)\n parentOnAction?.(normalizedAction, itemKeyStr);\n });\n\n const menuElement = processedMenu ? (\n <Menu {...effectiveMenuProps} onAction={handleMenuAction}>\n {processedMenu}\n </Menu>\n ) : null;\n\n // Menus follow the same axis-aware popover rule as TabPicker so they always\n // open toward the panel area instead of past the bar's outer edge.\n const menuPopoverPlacement = POPOVER_PLACEMENT_BY_TABS_PLACEMENT[placement];\n\n const contextMenu = useContextMenu<HTMLDivElement, CubeMenuProps<object>>(\n Menu,\n { placement: menuPopoverPlacement },\n {\n ...effectiveMenuProps,\n onAction: handleMenuAction,\n children: processedMenu,\n },\n );\n\n // Keyboard handler for accessibility shortcuts (WAI-ARIA Tabs Pattern)\n const handleKeyDown = useEvent((e: KeyboardEvent) => {\n // Reset focus-visible suppression on any keyboard interaction\n if (suppressFocusVisible) {\n setSuppressFocusVisible(false);\n }\n\n // F2 to start editing (standard rename shortcut)\n if (e.key === 'F2' && effectiveIsEditable && !isDisabled) {\n e.preventDefault();\n e.stopPropagation();\n inlineInputRef.current?.startEditing();\n }\n\n // Shift+F10 opens the menu (standard context menu shortcut)\n if (e.key === 'F10' && e.shiftKey && processedMenu) {\n e.preventDefault();\n e.stopPropagation();\n if (contextMenuOnly) {\n contextMenu.open();\n } else {\n setIsMenuOpen(true);\n }\n }\n\n // Delete key for direct tab deletion (ARIA Tabs pattern optional feature)\n // Skip when editing to allow normal text editing operations\n if (\n (e.key === 'Delete' || e.key === 'Backspace') &&\n isDeletable &&\n !isEditing\n ) {\n e.preventDefault();\n onDelete?.(itemKeyStr);\n }\n });\n\n const mods = useMemo(\n () => ({\n type: effectiveType,\n placement,\n active: isActive,\n deletable: isDeletable,\n disabled: isDisabled,\n editing: isEditing,\n hovered: isHovered,\n focused: isFocused,\n 'focus-visible': effectiveFocusVisible,\n draggable: isDraggable,\n dragging: isDragging,\n 'drop-pending': isDropPending,\n }),\n [\n effectiveType,\n placement,\n isActive,\n isDeletable,\n isDisabled,\n isEditing,\n isHovered,\n isFocused,\n effectiveFocusVisible,\n isDraggable,\n isDragging,\n isDropPending,\n ],\n );\n\n // Scroll active tab into view\n useEffect(() => {\n if (ref.current && isActive) {\n ref.current.scrollIntoView?.({ block: 'nearest', inline: 'nearest' });\n }\n }, [isActive]);\n\n // Overflow trigger (hidden in context-only mode)\n const menuAction =\n menuElement && !contextMenuOnly ? (\n <MenuTrigger\n isOpen={isMenuOpen}\n placement={menuPopoverPlacement}\n onOpenChange={setIsMenuOpen}\n >\n <ItemAction\n tabIndex={-1}\n icon={<MoreIcon />}\n {...effectiveMenuTriggerProps}\n />\n {menuElement}\n </MenuTrigger>\n ) : null;\n\n // Build delete button (only shown when no menu)\n const deleteAction = showDeleteButton ? (\n <ItemAction\n tabIndex={-1}\n icon={<CloseIcon />}\n tooltip={t('tabs.close', 'Close')}\n onPress={handleDelete}\n />\n ) : null;\n\n // Order: custom actions → menu trigger → delete button\n const actions =\n tabData.actions || menuAction || deleteAction ? (\n <>\n {tabData.actions}\n {menuAction}\n {deleteAction}\n </>\n ) : undefined;\n\n // Determine effective size\n const effectiveSize = tabData.size ?? size ?? 'medium';\n const itemSize =\n effectiveType === 'radio'\n ? RADIO_SIZE_MAP[effectiveSize === 'large' ? 'large' : 'medium']\n : effectiveSize;\n\n // Determine Item type prop\n const itemType = 'clear';\n\n // Determine shape - file type uses sharp edges\n const isFileType = effectiveType === 'file';\n const itemShape = isFileType ? 'sharp' : undefined;\n\n // Determine autoHideActions - tab-level overrides parent-level\n const effectiveAutoHideActions =\n tabData.autoHideActions ?? parentAutoHideActions;\n\n // Extract tab-specific props and pass through the rest (style props) to the Item\n const {\n title: _title,\n content: _content,\n key: _key,\n isDisabled: _isDisabled,\n prerender: _prerender,\n keepMounted: _keepMounted,\n size: _size,\n actions: _actions,\n autoHideActions: _autoHideActions,\n isEditable: _isEditable,\n onTitleChange: _onTitleChange,\n menu: _menu,\n menuTriggerProps: _menuTriggerProps,\n menuProps: _menuProps,\n contextMenu: _contextMenu,\n onAction: _onAction,\n tooltip: tabTooltip,\n qa,\n qaVal,\n styles,\n ...itemStyleProps\n } = tabData;\n\n // Render title with editing support if editable\n // Override InlineInput's default `cursor: text` hover hint — in Tabs the\n // title sits inside a clickable tab, so a text caret cursor is misleading.\n //\n // When the title is a plain string we let InlineInput render it directly,\n // which lets the optimistic display kick in (avoids flicker if the parent's\n // `onTitleChange` updates the source asynchronously, e.g. inside a RAF).\n // For ReactNode titles (icons, badges, ...), preserve the original node.\n //\n // For editable tabs with a string title, route the tab's `tooltip` prop\n // through InlineInput so it owns the truncation + tooltip behaviour (and we\n // pass `tooltip={false}` to `TabElement` below to avoid double tooltips).\n // InlineInput shows no tooltip over a custom display, so a ReactNode title\n // keeps its tooltip on `TabElement`. It is disabled rather than dropped while\n // the title is edited: dropping it would unwrap the tab, remounting it just\n // as editing starts.\n const renderTitleDisplay =\n typeof tabData.title === 'string' ? undefined : () => tabData.title;\n const tabElementTooltip = !effectiveIsEditable\n ? tabTooltip\n : !renderTitleDisplay\n ? false\n : isEditing\n ? disableTooltip(tabTooltip)\n : tabTooltip;\n const titleContent = effectiveIsEditable ? (\n <InlineInput\n ref={inlineInputRef}\n value={titleString}\n isEditing={isEditing}\n isDisabled={isDisabled}\n keyboardActivation={false}\n aria-label={editTabTitleLabel}\n styles={INLINE_INPUT_STYLES}\n renderDisplay={renderTitleDisplay}\n tooltip={tabTooltip ?? true}\n onEditingChange={handleEditingChange}\n onSubmit={handleSubmitEditing}\n onCancel={handleCancelEditing}\n />\n ) : (\n tabData.title\n );\n\n // Use the hook's targetRef when context menu is enabled\n const effectiveContainerRef =\n contextMenuEnabled && processedMenu ? contextMenu.targetRef : containerRef;\n\n // ARIA: indicate popup menu presence\n const ariaProps = processedMenu ? { 'aria-haspopup': 'menu' as const } : {};\n\n // Mods for TabContainer\n const containerMods = {\n ...mods,\n 'auto-hide-actions': effectiveAutoHideActions,\n };\n\n return (\n <TabContainer\n ref={effectiveContainerRef}\n data-size={itemSize}\n mods={containerMods}\n {...effectiveDragProps}\n >\n {/* Drop indicator before this tab */}\n {isDraggable && dropState && (\n <TabDropIndicator\n target={{ type: 'item', key: item.key, dropPosition: 'before' }}\n dropState={dropState}\n position=\"before\"\n />\n )}\n <ItemActionsWrapper\n preserveActionsSpace\n // The active tab keeps its actions on show. Everywhere else the wrapper\n // reveals them on hover or focus, which is the same set of triggers the\n // hand-rolled run used, minus the `active` case it had to spell out in\n // CSS because it had no way to ask for it.\n autoHideActions={effectiveAutoHideActions && !isActive}\n type={itemType}\n theme=\"default\"\n size={itemSize}\n isDisabled={isDisabled}\n mods={mods}\n actions={actions}\n // The container carries the drag handlers, so a press on an action would\n // start a drag if it were allowed to reach it.\n actionsProps={ACTIONS_EVENT_HANDLERS}\n >\n {({ showActions, skipActionsWidthTransition }) => (\n <TabElement\n insideWrapper\n preserveActionsSpace\n showActions={showActions}\n skipActionsWidthTransition={skipActionsWidthTransition}\n autoHideActions={effectiveAutoHideActions}\n as=\"button\"\n {...mergeProps(tabProps, hoverProps, focusProps, {\n onKeyDown: handleKeyDown,\n onPointerEnter: handleSpringLoadEnter,\n onPointerLeave: clearSpringLoad,\n })}\n {...ariaProps}\n {...itemStyleProps}\n ref={ref}\n qa={qa ?? `Tab-${String(item.key)}`}\n qaVal={qaVal}\n styles={styles}\n mods={mods}\n isSelected={isActive}\n isDisabled={isDisabled}\n size={itemSize}\n type={itemType}\n shape={itemShape}\n actions={actions ? true : undefined}\n tooltip={tabElementTooltip}\n >\n {titleContent}\n </TabElement>\n )}\n </ItemActionsWrapper>\n {contextMenuEnabled && processedMenu && contextMenu.rendered}\n {/* Drop indicator after the last tab */}\n {isDraggable && dropState && isLastTab && (\n <TabDropIndicator\n target={{ type: 'item', key: item.key, dropPosition: 'after' }}\n dropState={dropState}\n position=\"after\"\n />\n )}\n </TabContainer>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabButton.js","names":["Children","cloneElement","isValidElement","ReactElement","ReactNode","useEffect","useMemo","useRef","useState","useDraggableItem","useFocus","useFocusVisible","useHover","useTab","useEvent","useI18n","CloseIcon","MoreIcon","mergeProps","CubeItemActionProps","ItemAction","ItemActionsWrapper","CubeMenuProps","Menu","MenuTrigger","useContextMenu","CubeInlineInputRef","InlineInput","useBoardDragActive","createMockDragState","POPOVER_PLACEMENT_BY_TABS_PLACEMENT","TabContainer","TabElement","TabDropIndicator","useTabsContext","ParsedTab","RADIO_SIZE_MAP","Key","Node","KeyboardEvent","MouseEvent","PointerEvent","DraggableCollectionState","ACTIONS_EVENT_HANDLERS","onClick","e","stopPropagation","onPointerDown","onPointerUp","onMouseDown","onMouseUp","onKeyDown","key","INLINE_INPUT_STYLES","cursor","const","SPRING_LOAD_DELAY","MenuItemLikeProps","children","isDisabled","theme","getRawKey","element","keyStr","String","startsWith","slice","processMenuItems","effectiveIsEditable","isDeletable","result","forEach","child","push","childKey","childProps","props","isMenuEmpty","menu","undefined","toArray","length","TabButtonProps","item","tabData","isLastTab","disableTooltip","tooltip","title","TabButton","t0","$","_c","t","t1","editTabTitleLabel","state","type","size","placement","autoHideActions","parentAutoHideActions","isEditable","parentIsEditable","parentMenu","menuTriggerProps","parentMenuTriggerProps","menuProps","parentMenuProps","contextMenu","parentContextMenu","onAction","parentOnAction","onDelete","dragState","dropState","editingKey","startEditing","submitEditing","cancelEditing","ref","containerRef","inlineInputRef","t2","tabProps","isDraggable","t3","collection","selectionManager","mockDragState","t4","dragResult","t5","dragProps","effectiveDragProps","isDragging","isMenuOpen","setIsMenuOpen","t6","Symbol","for","hoverProps","isHovered","isFocused","setIsFocused","t7","onFocusChange","focusProps","isFocusVisible","suppressFocusVisible","setSuppressFocusVisible","effectiveFocusVisible","isActive","selectedKey","t8","disabledKeys","has","isEditing","isBoardDragActive","isDropPending","setIsDropPending","springLoadTimerRef","t9","current","clearTimeout","clearSpringLoad","t10","window","setTimeout","setSelectedKey","handleSpringLoadEnter","t11","t12","effectiveMenu","t13","effectiveMenuTriggerProps","t14","effectiveMenuProps","effectiveContextMenu","effectiveType","contextMenuEnabled","contextMenuOnly","t15","showDeleteButton","t16","processedMenu","itemKeyStr","t17","handleDelete","titleString","t18","handleStartEditing","t19","onTitleChange","newTitle","focus","handleSubmitEditing","t20","handleCancelEditing","t21","editing","handleEditingChange","t22","action","actionStr","normalizedAction","handleMenuAction","t23","menuElement","menuPopoverPlacement","t24","t25","t26","preventDefault","shiftKey","open","handleKeyDown","t27","active","deletable","disabled","hovered","focused","draggable","dragging","mods","t28","t29","scrollIntoView","block","inline","t30","menuAction","t31","deleteAction","t32","actions","effectiveSize","itemSize","isFileType","itemShape","effectiveAutoHideActions","itemStyleProps","qa","qaVal","styles","tabTooltip","_title","content","_content","_key","_isDisabled","prerender","_prerender","keepMounted","_keepMounted","_size","_actions","_autoHideActions","_isEditable","_onTitleChange","_menu","_menuTriggerProps","_menuProps","_contextMenu","_onAction","t33","t34","t35","t36","t37","renderTitleDisplay","tabElementTooltip","titleContent","effectiveContainerRef","targetRef","ariaProps","containerMods","t38","dropPosition","t39","t40","t41","showActions","skipActionsWidthTransition","onPointerEnter","onPointerLeave","itemType","t42","rendered","t43","t44"],"sources":["../../../../src/components/navigation/Tabs/TabButton.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n isValidElement,\n ReactElement,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n useDraggableItem,\n useFocus,\n useFocusVisible,\n useHover,\n useTab,\n} from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { MoreIcon } from '../../../icons/MoreIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { CubeItemActionProps, ItemAction } from '../../actions/ItemAction';\nimport { ItemActionsWrapper } from '../../actions/ItemActionsWrapper';\nimport { CubeMenuProps, Menu, MenuTrigger } from '../../actions/Menu';\nimport { useContextMenu } from '../../actions/use-context-menu';\nimport {\n CubeInlineInputRef,\n InlineInput,\n} from '../../content/InlineInput/InlineInput';\nimport { useBoardDragActive } from '../../layout/Board/board-context';\nimport { createMockDragState } from '../../shared/DraggableCollection';\n\nimport { POPOVER_PLACEMENT_BY_TABS_PLACEMENT } from './popover-placement';\nimport { TabContainer, TabElement } from './styled';\nimport { TabDropIndicator } from './TabDropIndicator';\nimport { useTabsContext } from './TabsContext';\nimport { ParsedTab, RADIO_SIZE_MAP } from './types';\n\nimport type { Key, Node } from '@react-types/shared';\nimport type { KeyboardEvent, MouseEvent, PointerEvent } from 'react';\nimport type { DraggableCollectionState } from 'react-stately';\n\n// =============================================================================\n// Event handlers for actions to prevent event propagation to tab button\n// =============================================================================\n\nconst ACTIONS_EVENT_HANDLERS = {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerDown: (e: PointerEvent) => e.stopPropagation(),\n onPointerUp: (e: PointerEvent) => e.stopPropagation(),\n onMouseDown: (e: MouseEvent) => e.stopPropagation(),\n onMouseUp: (e: MouseEvent) => e.stopPropagation(),\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n },\n};\n\n// Inherit the tab button's pointer cursor — InlineInput's default `cursor: text`\n// hover hint is misleading inside a clickable tab.\nconst INLINE_INPUT_STYLES = { cursor: 'inherit' } as const;\n\n// How long a dragged Board widget must hover a tab header before that tab\n// spring-loads (opens). Long enough to avoid accidental switches while crossing\n// tabs, short enough to feel responsive.\nconst SPRING_LOAD_DELAY = 500;\n\n// =============================================================================\n// Menu Processing Utilities\n// =============================================================================\n\ninterface MenuItemLikeProps {\n children?: ReactNode;\n isDisabled?: boolean;\n theme?: string;\n}\n\n/**\n * Extracts the raw key from a React element, stripping the \".$\" prefix\n * that React adds via Children.map/toArray.\n */\nfunction getRawKey(element: ReactElement): string | null {\n if (element.key == null) return null;\n const keyStr = String(element.key);\n return keyStr.startsWith('.$') ? keyStr.slice(2) : keyStr;\n}\n\n/**\n * Process menu items for predefined action keys (rename, delete).\n * Auto-adds labels and disables items when requirements aren't met.\n */\nfunction processMenuItems(\n children: ReactNode,\n effectiveIsEditable: boolean,\n isDeletable: boolean,\n): ReactNode {\n // Use Children.forEach instead of Children.toArray to avoid React prepending\n // \".$\" to element keys, which breaks selectedKeys matching in Menu.\n const result: ReactNode[] = [];\n\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) {\n result.push(child);\n return;\n }\n\n const childKey = getRawKey(child);\n const childProps = child.props as MenuItemLikeProps;\n\n // Handle predefined action keys\n if (childKey === 'rename') {\n result.push(\n cloneElement(child as ReactElement<MenuItemLikeProps>, {\n children: childProps.children ?? 'Rename',\n isDisabled: childProps.isDisabled ?? !effectiveIsEditable,\n }),\n );\n return;\n }\n if (childKey === 'delete') {\n result.push(\n cloneElement(child as ReactElement<MenuItemLikeProps>, {\n children: childProps.children ?? 'Delete',\n theme: childProps.theme ?? 'danger',\n isDisabled: childProps.isDisabled ?? !isDeletable,\n }),\n );\n return;\n }\n\n // Recursively process Menu.Section children\n if (childProps.children && typeof childProps.children !== 'string') {\n result.push(\n cloneElement(child as ReactElement<MenuItemLikeProps>, {\n children: processMenuItems(\n childProps.children,\n effectiveIsEditable,\n isDeletable,\n ),\n }),\n );\n return;\n }\n\n result.push(child);\n });\n\n return result;\n}\n\n/**\n * Check if menu children is empty (null, undefined, or empty fragment)\n */\nfunction isMenuEmpty(menu: ReactNode): boolean {\n if (menu === null || menu === undefined) return true;\n const children = Children.toArray(menu);\n return children.length === 0;\n}\n\n// =============================================================================\n// TabButton Props\n// =============================================================================\n\nexport interface TabButtonProps {\n /** React Aria collection item */\n item: Node<object>;\n /** Parsed tab data */\n tabData: ParsedTab;\n /** Whether this is the last tab (for drop indicator) */\n isLastTab?: boolean;\n}\n\n/** The same tooltip, kept mounted but unable to open. */\nfunction disableTooltip(tooltip: ParsedTab['tooltip']): ParsedTab['tooltip'] {\n if (typeof tooltip === 'string') return { title: tooltip, isDisabled: true };\n if (tooltip && typeof tooltip === 'object') {\n return { ...tooltip, isDisabled: true };\n }\n\n return tooltip;\n}\n\n// =============================================================================\n// TabButton Component\n// =============================================================================\n\n/**\n * Individual tab button component.\n *\n * Uses TabsContext to access shared props, dramatically reducing prop drilling.\n * Handles:\n * - Tab selection and keyboard navigation\n * - Inline title editing\n * - Menu and context menu\n * - Drag-and-drop reordering\n * - Focus and hover states\n */\nexport function TabButton({ item, tabData, isLastTab }: TabButtonProps) {\n const { t } = useI18n();\n const editTabTitleLabel = t('tabs.editTabTitle', 'Edit tab title');\n\n // Get shared context\n const {\n state,\n type,\n size,\n placement,\n autoHideActions: parentAutoHideActions,\n isEditable: parentIsEditable,\n menu: parentMenu,\n menuTriggerProps: parentMenuTriggerProps,\n menuProps: parentMenuProps,\n contextMenu: parentContextMenu,\n onAction: parentOnAction,\n onDelete,\n dragState,\n dropState,\n editingKey,\n startEditing,\n submitEditing,\n cancelEditing,\n } = useTabsContext();\n\n const ref = useRef<HTMLButtonElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const inlineInputRef = useRef<CubeInlineInputRef>(null);\n const { tabProps } = useTab({ key: item.key }, state, ref);\n\n // Drag-and-drop support - only enable when both states are provided\n const isDraggable = !!dragState && !!dropState;\n\n // useDraggableItem must be called unconditionally (Rules of Hooks)\n // When dragState is undefined, we pass a minimal mock state to satisfy the hook\n const mockDragState = useMemo(\n () => createMockDragState(state.collection, state.selectionManager),\n [state.collection, state.selectionManager],\n );\n\n const dragResult = useDraggableItem(\n { key: item.key },\n dragState ?? mockDragState,\n );\n const effectiveDragProps = isDraggable ? dragResult.dragProps : {};\n const isDragging = isDraggable && dragResult.isDragging;\n\n // Controlled state for menu trigger (enables keyboard opening with Shift+F10)\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n // Hover, focus, and focus-visible state handling\n const { hoverProps, isHovered } = useHover({});\n const [isFocused, setIsFocused] = useState(false);\n const { focusProps } = useFocus({ onFocusChange: setIsFocused });\n const { isFocusVisible } = useFocusVisible();\n\n // Suppress focus-visible when restoring focus after editing\n const [suppressFocusVisible, setSuppressFocusVisible] = useState(false);\n const effectiveFocusVisible = isFocusVisible && !suppressFocusVisible;\n\n const isActive = state.selectedKey === item.key;\n const isDisabled = state.disabledKeys.has(item.key);\n const isDeletable = !!onDelete;\n const isEditing = editingKey === item.key;\n\n // Spring-load: when this Tabs sits inside a Board and a widget is being\n // dragged, hovering an inactive tab header for a moment opens it, so the user\n // can drop the widget into (or move it between) tabs. React Aria's `useMove`\n // uses window listeners without pointer capture and the dragged widget is\n // `pointer-events: none`, so the tab header still receives native pointer\n // enter/leave during the drag. `false` outside a Board, so nothing changes.\n const isBoardDragActive = useBoardDragActive();\n const [isDropPending, setIsDropPending] = useState(false);\n const springLoadTimerRef = useRef<number | null>(null);\n\n const clearSpringLoad = useEvent(() => {\n if (springLoadTimerRef.current != null) {\n clearTimeout(springLoadTimerRef.current);\n springLoadTimerRef.current = null;\n }\n setIsDropPending(false);\n });\n\n const handleSpringLoadEnter = useEvent(() => {\n if (!isBoardDragActive || isActive || isDisabled) return;\n if (springLoadTimerRef.current != null) return;\n setIsDropPending(true);\n springLoadTimerRef.current = window.setTimeout(() => {\n springLoadTimerRef.current = null;\n setIsDropPending(false);\n state.setSelectedKey(item.key);\n }, SPRING_LOAD_DELAY);\n });\n\n // Cancel any pending spring-load when the drag ends (or the tab unmounts), so\n // a stale timer can never switch tabs after the drop.\n useEffect(() => {\n if (!isBoardDragActive) clearSpringLoad();\n return clearSpringLoad;\n }, [isBoardDragActive, clearSpringLoad]);\n\n // Compute effective values - Tab-level overrides Tabs-level.\n // Icon-only tabs (no `title`) have nothing to rename, so editing is disabled.\n const effectiveIsEditable =\n (tabData.isEditable ?? parentIsEditable ?? false) && tabData.title != null;\n const effectiveMenu =\n tabData.menu === null ? null : tabData.menu ?? parentMenu;\n const effectiveMenuTriggerProps: Partial<CubeItemActionProps> = {\n ...parentMenuTriggerProps,\n ...tabData.menuTriggerProps,\n };\n const effectiveMenuProps: Partial<CubeMenuProps<object>> = {\n ...parentMenuProps,\n ...tabData.menuProps,\n };\n const effectiveContextMenu =\n tabData.contextMenu ?? parentContextMenu ?? false;\n const effectiveType = type ?? 'default';\n\n const contextMenuEnabled =\n effectiveContextMenu === true || effectiveContextMenu === 'context-only';\n const contextMenuOnly = effectiveContextMenu === 'context-only';\n\n // Inline close when no menu, or context-only (no overflow trigger)\n const showDeleteButton =\n isDeletable && (isMenuEmpty(effectiveMenu) || contextMenuOnly);\n\n // Process menu items for auto-labels and disabled states\n const processedMenu =\n effectiveMenu && !isMenuEmpty(effectiveMenu)\n ? processMenuItems(effectiveMenu, effectiveIsEditable, isDeletable)\n : null;\n\n const itemKeyStr = String(item.key);\n\n const handleDelete = useEvent(() => {\n onDelete?.(itemKeyStr);\n });\n\n const titleString =\n typeof tabData.title === 'string' ? tabData.title : itemKeyStr;\n\n const handleStartEditing = useEvent(() => {\n if (!effectiveIsEditable || isDisabled) return;\n startEditing(itemKeyStr, titleString);\n });\n\n const handleSubmitEditing = useEvent((newTitle: string) => {\n submitEditing(itemKeyStr, newTitle, tabData.onTitleChange);\n // Suppress focus-visible and restore focus to the tab button after editing\n setSuppressFocusVisible(true);\n ref.current?.focus();\n });\n\n const handleCancelEditing = useEvent(() => {\n cancelEditing();\n // Suppress focus-visible and restore focus to the tab button after editing\n setSuppressFocusVisible(true);\n ref.current?.focus();\n });\n\n const handleEditingChange = useEvent((editing: boolean) => {\n if (editing && !isEditing) {\n handleStartEditing();\n }\n });\n\n // Handle menu actions - predefined actions first, then callbacks\n const handleMenuAction = useEvent((action: Key) => {\n // Strip the \".$\" prefix that React adds via Children.toArray/map\n const actionStr = String(action);\n const normalizedAction = actionStr.startsWith('.$')\n ? actionStr.slice(2)\n : actionStr;\n\n // Handle predefined actions first (only if requirements are met)\n // The rename input claims focus through its own `<FocusScope autoFocus>`,\n // and the closing Menu no longer takes focus back to its trigger once an\n // action has moved it (see `MenuTrigger`), so no refocus pass is needed.\n if (normalizedAction === 'rename' && effectiveIsEditable) {\n inlineInputRef.current?.startEditing();\n }\n if (normalizedAction === 'delete' && isDeletable) {\n onDelete?.(itemKeyStr);\n }\n // Call Tab-level onAction first (with normalized action)\n tabData.onAction?.(normalizedAction);\n // Then call Tabs-level onAction with tab key (with normalized action)\n parentOnAction?.(normalizedAction, itemKeyStr);\n });\n\n const menuElement = processedMenu ? (\n <Menu {...effectiveMenuProps} onAction={handleMenuAction}>\n {processedMenu}\n </Menu>\n ) : null;\n\n // Menus follow the same axis-aware popover rule as TabPicker so they always\n // open toward the panel area instead of past the bar's outer edge.\n const menuPopoverPlacement = POPOVER_PLACEMENT_BY_TABS_PLACEMENT[placement];\n\n const contextMenu = useContextMenu<HTMLDivElement, CubeMenuProps<object>>(\n Menu,\n { placement: menuPopoverPlacement },\n {\n ...effectiveMenuProps,\n onAction: handleMenuAction,\n children: processedMenu,\n },\n );\n\n // Keyboard handler for accessibility shortcuts (WAI-ARIA Tabs Pattern)\n const handleKeyDown = useEvent((e: KeyboardEvent) => {\n // Reset focus-visible suppression on any keyboard interaction\n if (suppressFocusVisible) {\n setSuppressFocusVisible(false);\n }\n\n // F2 to start editing (standard rename shortcut)\n if (e.key === 'F2' && effectiveIsEditable && !isDisabled) {\n e.preventDefault();\n e.stopPropagation();\n inlineInputRef.current?.startEditing();\n }\n\n // Shift+F10 opens the menu (standard context menu shortcut)\n if (e.key === 'F10' && e.shiftKey && processedMenu) {\n e.preventDefault();\n e.stopPropagation();\n if (contextMenuOnly) {\n contextMenu.open();\n } else {\n setIsMenuOpen(true);\n }\n }\n\n // Delete key for direct tab deletion (ARIA Tabs pattern optional feature)\n // Skip when editing to allow normal text editing operations\n if (\n (e.key === 'Delete' || e.key === 'Backspace') &&\n isDeletable &&\n !isEditing\n ) {\n e.preventDefault();\n onDelete?.(itemKeyStr);\n }\n });\n\n const mods = {\n type: effectiveType,\n placement,\n active: isActive,\n deletable: isDeletable,\n disabled: isDisabled,\n editing: isEditing,\n hovered: isHovered,\n focused: isFocused,\n 'focus-visible': effectiveFocusVisible,\n draggable: isDraggable,\n dragging: isDragging,\n 'drop-pending': isDropPending,\n };\n\n // Scroll active tab into view\n useEffect(() => {\n if (ref.current && isActive) {\n ref.current.scrollIntoView?.({ block: 'nearest', inline: 'nearest' });\n }\n }, [isActive]);\n\n // Overflow trigger (hidden in context-only mode)\n const menuAction =\n menuElement && !contextMenuOnly ? (\n <MenuTrigger\n isOpen={isMenuOpen}\n placement={menuPopoverPlacement}\n onOpenChange={setIsMenuOpen}\n >\n <ItemAction\n tabIndex={-1}\n icon={<MoreIcon />}\n {...effectiveMenuTriggerProps}\n />\n {menuElement}\n </MenuTrigger>\n ) : null;\n\n // Build delete button (only shown when no menu)\n const deleteAction = showDeleteButton ? (\n <ItemAction\n tabIndex={-1}\n icon={<CloseIcon />}\n tooltip={t('tabs.close', 'Close')}\n onPress={handleDelete}\n />\n ) : null;\n\n // Order: custom actions → menu trigger → delete button\n const actions =\n tabData.actions || menuAction || deleteAction ? (\n <>\n {tabData.actions}\n {menuAction}\n {deleteAction}\n </>\n ) : undefined;\n\n // Determine effective size\n const effectiveSize = tabData.size ?? size ?? 'medium';\n const itemSize =\n effectiveType === 'radio'\n ? RADIO_SIZE_MAP[effectiveSize === 'large' ? 'large' : 'medium']\n : effectiveSize;\n\n // Determine Item type prop\n const itemType = 'clear';\n\n // Determine shape - file type uses sharp edges\n const isFileType = effectiveType === 'file';\n const itemShape = isFileType ? 'sharp' : undefined;\n\n // Determine autoHideActions - tab-level overrides parent-level\n const effectiveAutoHideActions =\n tabData.autoHideActions ?? parentAutoHideActions;\n\n // Extract tab-specific props and pass through the rest (style props) to the Item\n const {\n title: _title,\n content: _content,\n key: _key,\n isDisabled: _isDisabled,\n prerender: _prerender,\n keepMounted: _keepMounted,\n size: _size,\n actions: _actions,\n autoHideActions: _autoHideActions,\n isEditable: _isEditable,\n onTitleChange: _onTitleChange,\n menu: _menu,\n menuTriggerProps: _menuTriggerProps,\n menuProps: _menuProps,\n contextMenu: _contextMenu,\n onAction: _onAction,\n tooltip: tabTooltip,\n qa,\n qaVal,\n styles,\n ...itemStyleProps\n } = tabData;\n\n // Render title with editing support if editable\n // Override InlineInput's default `cursor: text` hover hint — in Tabs the\n // title sits inside a clickable tab, so a text caret cursor is misleading.\n //\n // When the title is a plain string we let InlineInput render it directly,\n // which lets the optimistic display kick in (avoids flicker if the parent's\n // `onTitleChange` updates the source asynchronously, e.g. inside a RAF).\n // For ReactNode titles (icons, badges, ...), preserve the original node.\n //\n // For editable tabs with a string title, route the tab's `tooltip` prop\n // through InlineInput so it owns the truncation + tooltip behaviour (and we\n // pass `tooltip={false}` to `TabElement` below to avoid double tooltips).\n // InlineInput shows no tooltip over a custom display, so a ReactNode title\n // keeps its tooltip on `TabElement`. It is disabled rather than dropped while\n // the title is edited: dropping it would unwrap the tab, remounting it just\n // as editing starts.\n const renderTitleDisplay =\n typeof tabData.title === 'string' ? undefined : () => tabData.title;\n const tabElementTooltip = !effectiveIsEditable\n ? tabTooltip\n : !renderTitleDisplay\n ? false\n : isEditing\n ? disableTooltip(tabTooltip)\n : tabTooltip;\n const titleContent = effectiveIsEditable ? (\n <InlineInput\n ref={inlineInputRef}\n value={titleString}\n isEditing={isEditing}\n isDisabled={isDisabled}\n keyboardActivation={false}\n aria-label={editTabTitleLabel}\n styles={INLINE_INPUT_STYLES}\n renderDisplay={renderTitleDisplay}\n tooltip={tabTooltip ?? true}\n onEditingChange={handleEditingChange}\n onSubmit={handleSubmitEditing}\n onCancel={handleCancelEditing}\n />\n ) : (\n tabData.title\n );\n\n // Use the hook's targetRef when context menu is enabled\n const effectiveContainerRef =\n contextMenuEnabled && processedMenu ? contextMenu.targetRef : containerRef;\n\n // ARIA: indicate popup menu presence\n const ariaProps = processedMenu ? { 'aria-haspopup': 'menu' as const } : {};\n\n // Mods for TabContainer\n const containerMods = {\n ...mods,\n 'auto-hide-actions': effectiveAutoHideActions,\n };\n\n return (\n <TabContainer\n ref={effectiveContainerRef}\n data-size={itemSize}\n mods={containerMods}\n {...effectiveDragProps}\n >\n {/* Drop indicator before this tab */}\n {isDraggable && dropState && (\n <TabDropIndicator\n target={{ type: 'item', key: item.key, dropPosition: 'before' }}\n dropState={dropState}\n position=\"before\"\n />\n )}\n <ItemActionsWrapper\n preserveActionsSpace\n // The active tab keeps its actions on show. Everywhere else the wrapper\n // reveals them on hover or focus, which is the same set of triggers the\n // hand-rolled run used, minus the `active` case it had to spell out in\n // CSS because it had no way to ask for it.\n autoHideActions={effectiveAutoHideActions && !isActive}\n type={itemType}\n theme=\"default\"\n size={itemSize}\n isDisabled={isDisabled}\n mods={mods}\n actions={actions}\n // The container carries the drag handlers, so a press on an action would\n // start a drag if it were allowed to reach it.\n actionsProps={ACTIONS_EVENT_HANDLERS}\n >\n {({ showActions, skipActionsWidthTransition }) => (\n <TabElement\n insideWrapper\n preserveActionsSpace\n showActions={showActions}\n skipActionsWidthTransition={skipActionsWidthTransition}\n autoHideActions={effectiveAutoHideActions}\n as=\"button\"\n {...mergeProps(tabProps, hoverProps, focusProps, {\n onKeyDown: handleKeyDown,\n onPointerEnter: handleSpringLoadEnter,\n onPointerLeave: clearSpringLoad,\n })}\n {...ariaProps}\n {...itemStyleProps}\n ref={ref}\n qa={qa ?? `Tab-${String(item.key)}`}\n qaVal={qaVal}\n styles={styles}\n mods={mods}\n isSelected={isActive}\n isDisabled={isDisabled}\n size={itemSize}\n type={itemType}\n shape={itemShape}\n actions={actions ? true : undefined}\n tooltip={tabElementTooltip}\n >\n {titleContent}\n </TabElement>\n )}\n </ItemActionsWrapper>\n {contextMenuEnabled && processedMenu && contextMenu.rendered}\n {/* Drop indicator after the last tab */}\n {isDraggable && dropState && isLastTab && (\n <TabDropIndicator\n target={{ type: 'item', key: item.key, dropPosition: 'after' }}\n dropState={dropState}\n position=\"after\"\n />\n )}\n </TabContainer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAM2C,yBAAyB;CAC7BC,UAAUC,MAAkBA,EAAEC,iBAAiB;CAC/CC,gBAAgBF,MAAoBA,EAAEC,iBAAiB;CACvDE,cAAcH,MAAoBA,EAAEC,iBAAiB;CACrDG,cAAcJ,MAAkBA,EAAEC,iBAAiB;CACnDI,YAAYL,MAAkBA,EAAEC,iBAAiB;CACjDK,YAAYN,MAAqB;AAC/B,MAAIA,EAAEO,QAAQ,WAAWP,EAAEO,QAAQ,IACjCP,GAAEC,iBAAiB;;CAGxB;AAID,MAAMO,sBAAsB,EAAEC,QAAQ,WAAW;AAKjD,MAAME,oBAAoB;;;;;AAgB1B,SAASK,UAAUC,SAAsC;AACvD,KAAIA,QAAQV,OAAO,KAAM,QAAO;CAChC,MAAMW,SAASC,OAAOF,QAAQV,IAAI;AAClC,QAAOW,OAAOE,WAAW,KAAK,GAAGF,OAAOG,MAAM,EAAE,GAAGH;;;;;;AAOrD,SAASI,iBACPT,UACAU,qBACAC,aACW;CAGX,MAAMC,SAAsB,EAAE;AAE9BtE,UAASuE,QAAQb,WAAWc,UAAU;AACpC,MAAI,CAACtE,eAAesE,MAAM,EAAE;AAC1BF,UAAOG,KAAKD,MAAM;AAClB;;EAGF,MAAME,WAAWb,UAAUW,MAAM;EACjC,MAAMG,aAAaH,MAAMI;AAGzB,MAAIF,aAAa,UAAU;AACzBJ,UAAOG,KACLxE,aAAauE,OAA0C;IACrDd,UAAUiB,WAAWjB,YAAY;IACjCC,YAAYgB,WAAWhB,cAAc,CAACS;IACvC,CACH,CAAC;AACD;;AAEF,MAAIM,aAAa,UAAU;AACzBJ,UAAOG,KACLxE,aAAauE,OAA0C;IACrDd,UAAUiB,WAAWjB,YAAY;IACjCE,OAAOe,WAAWf,SAAS;IAC3BD,YAAYgB,WAAWhB,cAAc,CAACU;IACvC,CACH,CAAC;AACD;;AAIF,MAAIM,WAAWjB,YAAY,OAAOiB,WAAWjB,aAAa,UAAU;AAClEY,UAAOG,KACLxE,aAAauE,OAA0C,EACrDd,UAAUS,iBACRQ,WAAWjB,UACXU,qBACAC,YACF,EACD,CACH,CAAC;AACD;;AAGFC,SAAOG,KAAKD,MAAM;GAClB;AAEF,QAAOF;;;;;AAMT,SAASO,YAAYC,MAA0B;AAC7C,KAAIA,SAAS,QAAQA,SAASC,OAAW,QAAO;AAEhD,QADiB/E,SAASgF,QAAQF,KAAK,CACvBG,WAAW;;;AAiB7B,SAASK,eAAeC,SAAqD;AAC3E,KAAI,OAAOA,YAAY,SAAU,QAAO;EAAEC,OAAOD;EAAS5B,YAAY;EAAM;AAC5E,KAAI4B,WAAW,OAAOA,YAAY,SAChC,QAAO;EAAE,GAAGA;EAAS5B,YAAY;EAAM;AAGzC,QAAO4B;;;;;;;;;;;;;AAkBT,SAAOE,UAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,IAAA;CAAmB,MAAA,EAAAT,MAAAC,SAAAC,cAAAK;CACxB,MAAA,EAAAG,MAAc9E,SAAS;CAAC,IAAA+E;AAAA,KAAAH,EAAA,OAAAE,GAAA;AACEC,OAAAD,EAAE,qBAAqB,iBAAiB;AAAAF,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAAlE,MAAAI,oBAA0BD;CAG1B,MAAA,EAAAE,OAAAC,MAAAC,MAAAC,WAAAC,iBAAAC,uBAAAC,YAAAC,kBAAAzB,MAAA0B,YAAAC,kBAAAC,wBAAAC,WAAAC,iBAAAC,aAAAC,mBAAAC,UAAAC,gBAAAC,UAAAC,WAAAC,WAAAC,YAAAC,cAAAC,eAAAC,kBAmBIrF,gBAAgB;CAEpB,MAAAsF,MAAYjH,OAA0B,KAAK;CAC3C,MAAAkH,eAAqBlH,OAAuB,KAAK;CACjD,MAAAmH,iBAAuBnH,OAA2B,KAAK;CAAC,IAAAoH;AAAA,KAAAhC,EAAA,OAAAR,KAAA/B,KAAA;AAC5BuE,OAAA,EAAAvE,KAAO+B,KAAI/B,KAAM;AAAAuC,IAAA,KAAAR,KAAA/B;AAAAuC,IAAA,KAAAgC;OAAAA,MAAAhC,EAAA;CAA7C,MAAA,EAAAiC,aAAqB/G,OAAO8G,IAAmB3B,OAAOwB,IAAI;CAG1D,MAAAK,cAAoB,CAAC,CAACX,aAAF,CAAgB,CAACC;CAAU,IAAAW;AAAA,KAAAnC,EAAA,OAAAK,MAAA+B,cAAApC,EAAA,OAAAK,MAAAgC,kBAAA;AAKvCF,OAAAjG,oBAAoBmE,MAAK+B,YAAa/B,MAAKgC,iBAAkB;AAAArC,IAAA,KAAAK,MAAA+B;AAAApC,IAAA,KAAAK,MAAAgC;AAAArC,IAAA,KAAAmC;OAAAA,MAAAnC,EAAA;CADrE,MAAAsC,gBACQH;CAEN,IAAAI;AAAA,KAAAvC,EAAA,OAAAR,KAAA/B,KAAA;AAGA8E,OAAA,EAAA9E,KAAO+B,KAAI/B,KAAM;AAAAuC,IAAA,KAAAR,KAAA/B;AAAAuC,IAAA,KAAAuC;OAAAA,MAAAvC,EAAA;CADnB,MAAAwC,aAAmB1H,iBACjByH,IACAhB,aAAAe,cACD;CAAC,IAAAG;AAAA,KAAAzC,EAAA,OAAAwC,cAAAxC,EAAA,QAAAkC,aAAA;AACyBO,OAAAP,cAAcM,WAAUE,YAAxB,EAAuC;AAAA1C,IAAA,KAAAwC;AAAAxC,IAAA,MAAAkC;AAAAlC,IAAA,MAAAyC;OAAAA,MAAAzC,EAAA;CAAlE,MAAA2C,qBAA2BF;CAC3B,MAAAG,aAAmBV,eAAeM,WAAUI;CAG5C,MAAA,CAAAC,YAAAC,iBAAoCjI,SAAS,MAAM;CAAC,IAAAkI;AAAA,KAAA/C,EAAA,QAAAgD,OAAAC,IAAA,4BAAA,EAAA;AAGTF,OAAA,EAAE;AAAA/C,IAAA,MAAA+C;OAAAA,MAAA/C,EAAA;CAA7C,MAAA,EAAAkD,YAAAC,cAAkClI,SAAS8H,GAAG;CAC9C,MAAA,CAAAK,WAAAC,gBAAkCxI,SAAS,MAAM;CAAC,IAAAyI;AAAA,KAAAtD,EAAA,QAAAgD,OAAAC,IAAA,4BAAA,EAAA;AAClBK,OAAA,EAAAC,eAAiBF,cAAc;AAAArD,IAAA,MAAAsD;OAAAA,MAAAtD,EAAA;CAA/D,MAAA,EAAAwD,eAAuBzI,SAASuI,GAAgC;CAChE,MAAA,EAAAG,mBAA2BzI,iBAAiB;CAG5C,MAAA,CAAA0I,sBAAAC,2BAAwD9I,SAAS,MAAM;CACvE,MAAA+I,wBAA8BH,kBAAA,CAAmBC;CAEjD,MAAAG,WAAiBxD,MAAKyD,gBAAiBtE,KAAI/B;CAAK,IAAAsG;AAAA,KAAA/D,EAAA,QAAAR,KAAA/B,OAAAuC,EAAA,QAAAK,MAAA2D,cAAA;AAC7BD,OAAA1D,MAAK2D,aAAaC,IAAKzE,KAAI/B,IAAK;AAAAuC,IAAA,MAAAR,KAAA/B;AAAAuC,IAAA,MAAAK,MAAA2D;AAAAhE,IAAA,MAAA+D;OAAAA,MAAA/D,EAAA;CAAnD,MAAAhC,aAAmB+F;CACnB,MAAArF,cAAoB,CAAC,CAAC4C;CACtB,MAAA4C,YAAkBzC,eAAejC,KAAI/B;CAQrC,MAAA0G,oBAA0BlI,oBAAoB;CAC9C,MAAA,CAAAmI,eAAAC,oBAA0CxJ,SAAS,MAAM;CACzD,MAAAyJ,qBAA2B1J,OAAsB,KAAK;CAAC,IAAA2J;AAAA,KAAAvE,EAAA,QAAAgD,OAAAC,IAAA,4BAAA,EAAA;AAEtBsB,aAAA;AAC/B,OAAID,mBAAkBE,WAAY,MAAI;AACpCC,iBAAaH,mBAAkBE,QAAS;AACxCF,uBAAkBE,UAAW;;AAE/BH,oBAAiB,MAAM;;AACxBrE,IAAA,MAAAuE;OAAAA,MAAAvE,EAAA;CAND,MAAA0E,kBAAwBvJ,SAASoJ,GAM/B;CAAC,IAAAI;AAAA,KAAA3E,EAAA,QAAA6D,YAAA7D,EAAA,QAAAmE,qBAAAnE,EAAA,QAAAhC,cAAAgC,EAAA,QAAAR,KAAA/B,OAAAuC,EAAA,QAAAK,OAAA;AAEoCsE,cAAA;AACrC,OAAI,CAACR,qBAADN,YAAA7F,WAA4C;AAChD,OAAIsG,mBAAkBE,WAAY,KAAI;AACtCH,oBAAiB,KAAK;AACtBC,sBAAkBE,UAAWI,OAAMC,iBAAY;AAC7CP,uBAAkBE,UAAW;AAC7BH,qBAAiB,MAAM;AACvBhE,UAAKyE,eAAgBtF,KAAI/B,IAAK;MAC7BI,kBAJuB;;AAK3BmC,IAAA,MAAA6D;AAAA7D,IAAA,MAAAmE;AAAAnE,IAAA,MAAAhC;AAAAgC,IAAA,MAAAR,KAAA/B;AAAAuC,IAAA,MAAAK;AAAAL,IAAA,MAAA2E;OAAAA,OAAA3E,EAAA;CATD,MAAA+E,wBAA8B5J,SAASwJ,IASrC;CAAC,IAAAK;CAAA,IAAAC;AAAA,KAAAjF,EAAA,QAAA0E,mBAAA1E,EAAA,QAAAmE,mBAAA;AAIOa,cAAA;AACR,OAAI,CAACb,kBAAmBO,kBAAiB;AAAC,UACnCA;;AACNO,QAAA,CAACd,mBAAmBO,gBAAgB;AAAA1E,IAAA,MAAA0E;AAAA1E,IAAA,MAAAmE;AAAAnE,IAAA,MAAAgF;AAAAhF,IAAA,MAAAiF;QAAA;AAAAD,QAAAhF,EAAA;AAAAiF,QAAAjF,EAAA;;AAHvCtF,WAAUsK,KAGPC,IAAqC;CAIxC,MAAAxG,uBACGgB,QAAOkB,cAAPC,oBAAA,UAAoDnB,QAAOI,SAAU;CACxE,MAAAqF,gBACEzF,QAAON,SAAU,OAAjB,OAA+BM,QAAON,QAAP0B;CAA2B,IAAAsE;AAAA,KAAAnF,EAAA,QAAAe,0BAAAf,EAAA,QAAAP,QAAAqB,kBAAA;AACIqE,QAAA;GAAA,GAC3DpE;GAAsB,GACtBtB,QAAOqB;GACX;AAAAd,IAAA,MAAAe;AAAAf,IAAA,MAAAP,QAAAqB;AAAAd,IAAA,MAAAmF;OAAAA,OAAAnF,EAAA;CAHD,MAAAoF,4BAAgED;CAG9D,IAAAE;AAAA,KAAArF,EAAA,QAAAiB,mBAAAjB,EAAA,QAAAP,QAAAuB,WAAA;AACyDqE,QAAA;GAAA,GACtDpE;GAAe,GACfxB,QAAOuB;GACX;AAAAhB,IAAA,MAAAiB;AAAAjB,IAAA,MAAAP,QAAAuB;AAAAhB,IAAA,MAAAqF;OAAAA,OAAArF,EAAA;CAHD,MAAAsF,qBAA2DD;CAI3D,MAAAE,uBACE9F,QAAOyB,eAAPC,qBAAA;CACF,MAAAqE,gBAAsBlF,QAAA;CAEtB,MAAAmF,qBACEF,yBAAyB,QAAQA,yBAAyB;CAC5D,MAAAG,kBAAwBH,yBAAyB;CAAe,IAAAI;AAAA,KAAA3F,EAAA,QAAA0F,mBAAA1F,EAAA,QAAAkF,iBAAAlF,EAAA,QAAAtB,aAAA;AAI9DiH,QAAAjH,gBAAgBQ,YAAYgG,cAAiC,IAA7CQ;AAA8C1F,IAAA,MAAA0F;AAAA1F,IAAA,MAAAkF;AAAAlF,IAAA,MAAAtB;AAAAsB,IAAA,MAAA2F;OAAAA,OAAA3F,EAAA;CADhE,MAAA4F,mBACED;CAA+D,IAAAE;AAAA,KAAA7F,EAAA,QAAAvB,uBAAAuB,EAAA,QAAAkF,iBAAAlF,EAAA,QAAAtB,aAAA;AAI/DmH,QAAAX,iBAAA,CAAkBhG,YAAYgG,cAEtB,GADJ1G,iBAAiB0G,eAAezG,qBAAqBC,YACjD,GAFR;AAEQsB,IAAA,MAAAvB;AAAAuB,IAAA,MAAAkF;AAAAlF,IAAA,MAAAtB;AAAAsB,IAAA,MAAA6F;OAAAA,OAAA7F,EAAA;CAHV,MAAA8F,gBACED;CAIF,MAAAE,aAAmB1H,OAAOmB,KAAI/B,IAAK;CAAC,IAAAuI;AAAA,KAAAhG,EAAA,QAAA+F,cAAA/F,EAAA,QAAAsB,UAAA;AAEN0E,cAAA;AAC5B1E,cAAWyE,WAAW;;AACvB/F,IAAA,MAAA+F;AAAA/F,IAAA,MAAAsB;AAAAtB,IAAA,MAAAgG;OAAAA,OAAAhG,EAAA;CAFD,MAAAiG,eAAqB9K,SAAS6K,IAE5B;CAEF,MAAAE,cACE,OAAOzG,QAAOI,UAAW,WAAWJ,QAAOI,QAA3CkG;CAA+D,IAAAI;AAAA,KAAAnG,EAAA,QAAAvB,uBAAAuB,EAAA,QAAAhC,cAAAgC,EAAA,QAAA+F,cAAA/F,EAAA,QAAA0B,gBAAA1B,EAAA,QAAAkG,aAAA;AAE7BC,cAAA;AAClC,OAAI,CAAC1H,uBAADT,WAAkC;AACtC0D,gBAAaqE,YAAYG,YAAY;;AACtClG,IAAA,MAAAvB;AAAAuB,IAAA,MAAAhC;AAAAgC,IAAA,MAAA+F;AAAA/F,IAAA,MAAA0B;AAAA1B,IAAA,MAAAkG;AAAAlG,IAAA,MAAAmG;OAAAA,OAAAnG,EAAA;CAHD,MAAAoG,qBAA2BjL,SAASgL,IAGlC;CAAC,IAAAE;AAAA,KAAArG,EAAA,QAAA+F,cAAA/F,EAAA,QAAA2B,iBAAA3B,EAAA,QAAAP,QAAA6G,eAAA;AAEkCD,SAAAE,aAAA;AACnC5E,iBAAcoE,YAAYQ,UAAU9G,QAAO6G,cAAe;AAE1D3C,2BAAwB,KAAK;AAC7B9B,OAAG2C,SAAegC,OAAE;;AACrBxG,IAAA,MAAA+F;AAAA/F,IAAA,MAAA2B;AAAA3B,IAAA,MAAAP,QAAA6G;AAAAtG,IAAA,MAAAqG;OAAAA,OAAArG,EAAA;CALD,MAAAyG,sBAA4BtL,SAASkL,IAKnC;CAAC,IAAAK;AAAA,KAAA1G,EAAA,QAAA4B,eAAA;AAEkC8E,cAAA;AACnC9E,kBAAe;AAEf+B,2BAAwB,KAAK;AAC7B9B,OAAG2C,SAAegC,OAAE;;AACrBxG,IAAA,MAAA4B;AAAA5B,IAAA,MAAA0G;OAAAA,OAAA1G,EAAA;CALD,MAAA2G,sBAA4BxL,SAASuL,IAKnC;CAAC,IAAAE;AAAA,KAAA5G,EAAA,QAAAoG,sBAAApG,EAAA,QAAAkE,WAAA;AAEkC0C,SAAAC,YAAA;AACnC,OAAIA,WAAA,CAAY3C,UACdkC,qBAAoB;;AAEvBpG,IAAA,MAAAoG;AAAApG,IAAA,MAAAkE;AAAAlE,IAAA,MAAA4G;OAAAA,OAAA5G,EAAA;CAJD,MAAA8G,sBAA4B3L,SAASyL,IAInC;CAAC,IAAAG;AAAA,KAAA/G,EAAA,QAAAvB,uBAAAuB,EAAA,QAAAtB,eAAAsB,EAAA,QAAA+F,cAAA/F,EAAA,QAAAsB,YAAAtB,EAAA,QAAAqB,kBAAArB,EAAA,QAAAP,SAAA;AAG+BsH,SAAAC,WAAA;GAEhC,MAAAC,YAAkB5I,OAAO2I,OAAO;GAChC,MAAAE,mBAAyBD,UAAS3I,WAAY,KAEjC,GADT2I,UAAS1I,MAAO,EACP,GAFY0I;AAQzB,OAAIC,qBAAqB,YAArBzI,oBACFsD,gBAAcyC,SAAsB9C,cAAE;AAExC,OAAIwF,qBAAqB,YAArBxI,YACF4C,YAAWyE,WAAW;AAGxBtG,WAAO2B,WAAY8F,iBAAiB;AAEpC7F,oBAAiB6F,kBAAkBnB,WAAW;;AAC/C/F,IAAA,MAAAvB;AAAAuB,IAAA,MAAAtB;AAAAsB,IAAA,MAAA+F;AAAA/F,IAAA,MAAAsB;AAAAtB,IAAA,MAAAqB;AAAArB,IAAA,MAAAP;AAAAO,IAAA,MAAA+G;OAAAA,OAAA/G,EAAA;CArBD,MAAAmH,mBAAyBhM,SAAS4L,IAqBhC;CAAC,IAAAK;AAAA,KAAApH,EAAA,QAAAsF,sBAAAtF,EAAA,QAAAmH,oBAAAnH,EAAA,QAAA8F,eAAA;AAEiBsB,QAAAtB,gBAClB,oBAAC;GAAI,GAAKR;GAA8B6B,UAAAA;aACrCrB;IAEG,GAJY;AAIZ9F,IAAA,MAAAsF;AAAAtF,IAAA,MAAAmH;AAAAnH,IAAA,MAAA8F;AAAA9F,IAAA,MAAAoH;OAAAA,OAAApH,EAAA;CAJR,MAAAqH,cAAoBD;CAQpB,MAAAE,uBAA6BnL,oCAAoCqE;CAAW,IAAA+G;AAAA,KAAAvH,EAAA,QAAAsH,sBAAA;AAI1EC,QAAA,EAAA/G,WAAa8G,sBAAsB;AAAAtH,IAAA,MAAAsH;AAAAtH,IAAA,MAAAuH;OAAAA,OAAAvH,EAAA;CAAA,IAAAwH;AAAA,KAAAxH,EAAA,QAAAsF,sBAAAtF,EAAA,QAAAmH,oBAAAnH,EAAA,QAAA8F,eAAA;AACnC0B,QAAA;GAAA,GACKlC;GAAkBlE,UACX+F;GAAgBpJ,UAChB+H;GACX;AAAA9F,IAAA,MAAAsF;AAAAtF,IAAA,MAAAmH;AAAAnH,IAAA,MAAA8F;AAAA9F,IAAA,MAAAwH;OAAAA,OAAAxH,EAAA;CAPH,MAAAkB,cAAoBpF,eAClBF,QACA2L,KACAC,IAKD;CAAC,IAAAC;AAAA,KAAAzH,EAAA,QAAAkB,eAAAlB,EAAA,QAAA0F,mBAAA1F,EAAA,QAAAvB,uBAAAuB,EAAA,QAAAtB,eAAAsB,EAAA,QAAAhC,cAAAgC,EAAA,QAAAkE,aAAAlE,EAAA,QAAA+F,cAAA/F,EAAA,QAAAsB,YAAAtB,EAAA,QAAA8F,iBAAA9F,EAAA,QAAA0D,sBAAA;AAG6B+D,SAAAvK,MAAA;AAE7B,OAAIwG,qBACFC,yBAAwB,MAAM;AAIhC,OAAIzG,EAACO,QAAS,QAAVgB,uBAAA,CAA0CT,YAAU;AACtDd,MAACwK,gBAAiB;AAClBxK,MAACC,iBAAkB;AACnB4E,mBAAcyC,SAAsB9C,cAAE;;AAIxC,OAAIxE,EAACO,QAAS,SAASP,EAACyK,YAApB7B,eAA8C;AAChD5I,MAACwK,gBAAiB;AAClBxK,MAACC,iBAAkB;AACnB,QAAIuI,gBACFxE,aAAW0G,MAAO;QAElB9E,eAAc,KAAK;;AAMvB,QACG5F,EAACO,QAAS,YAAYP,EAACO,QAAS,gBAAjCiB,eAAA,CAECwF,WAAS;AAEVhH,MAACwK,gBAAiB;AAClBpG,eAAWyE,WAAW;;;AAEzB/F,IAAA,MAAAkB;AAAAlB,IAAA,MAAA0F;AAAA1F,IAAA,MAAAvB;AAAAuB,IAAA,MAAAtB;AAAAsB,IAAA,MAAAhC;AAAAgC,IAAA,MAAAkE;AAAAlE,IAAA,MAAA+F;AAAA/F,IAAA,MAAAsB;AAAAtB,IAAA,MAAA8F;AAAA9F,IAAA,MAAA0D;AAAA1D,IAAA,MAAAyH;OAAAA,OAAAzH,EAAA;CAlCD,MAAA6H,gBAAsB1M,SAASsM,IAkC7B;CAAC,IAAAK;AAAA,KAAA9H,EAAA,QAAA4D,yBAAA5D,EAAA,QAAAwF,iBAAAxF,EAAA,QAAA6D,YAAA7D,EAAA,QAAAtB,eAAAsB,EAAA,QAAAhC,cAAAgC,EAAA,QAAAkC,eAAAlC,EAAA,QAAA4C,cAAA5C,EAAA,QAAAoE,iBAAApE,EAAA,QAAAkE,aAAAlE,EAAA,QAAAoD,aAAApD,EAAA,QAAAmD,aAAAnD,EAAA,QAAAQ,WAAA;AAEUsH,QAAA;GAAAxH,MACLkF;GAAahF;GAAAuH,QAEXlE;GAAQmE,WACLtJ;GAAWuJ,UACZjK;GAAU6I,SACX3C;GAASgE,SACT/E;GAASgF,SACT/E;GAAS,iBACDQ;GAAqBwE,WAC3BlG;GAAWmG,UACZzF;GAAU,gBACJwB;GACjB;AAAApE,IAAA,MAAA4D;AAAA5D,IAAA,MAAAwF;AAAAxF,IAAA,MAAA6D;AAAA7D,IAAA,MAAAtB;AAAAsB,IAAA,MAAAhC;AAAAgC,IAAA,MAAAkC;AAAAlC,IAAA,MAAA4C;AAAA5C,IAAA,MAAAoE;AAAApE,IAAA,MAAAkE;AAAAlE,IAAA,MAAAoD;AAAApD,IAAA,MAAAmD;AAAAnD,IAAA,MAAAQ;AAAAR,IAAA,OAAA8H;OAAAA,OAAA9H,EAAA;CAbD,MAAAsI,OAAaR;CAaX,IAAAS;CAAA,IAAAC;AAAA,KAAAxI,EAAA,SAAA6D,UAAA;AAGQ0E,cAAA;AACR,OAAI1G,IAAG2C,WAAHX,SACFhC,KAAG2C,QAAQiE,iBAAkB;IAAAC,OAAS;IAASC,QAAU;IAAW,CAAC;;AAEtEH,QAAA,CAAC3E,SAAS;AAAA7D,IAAA,OAAA6D;AAAA7D,IAAA,OAAAuI;AAAAvI,IAAA,OAAAwI;QAAA;AAAAD,QAAAvI,EAAA;AAAAwI,QAAAxI,EAAA;;AAJbtF,WAAU6N,KAIPC,IAAW;CAAA,IAAAI;AAAA,KAAA5I,EAAA,SAAA0F,mBAAA1F,EAAA,SAAAoF,6BAAApF,EAAA,SAAA6C,cAAA7C,EAAA,SAAAqH,eAAArH,EAAA,SAAAsH,sBAAA;AAIZsB,QAAAvB,eAAA,CAAgB3B,kBACd,qBAAC;GACS7C,QAAAA;GACGyE,WAAAA;GACGxE,cAAAA;cAEd,oBAAC;IACW,UAAA;IACJ,MAAA,oBAAC,aAAU;IAAC,GACdsC;KAELiC,EAAAA;IAEG,GAbR;AAaQrH,IAAA,OAAA0F;AAAA1F,IAAA,OAAAoF;AAAApF,IAAA,OAAA6C;AAAA7C,IAAA,OAAAqH;AAAArH,IAAA,OAAAsH;AAAAtH,IAAA,OAAA4I;OAAAA,OAAA5I,EAAA;CAdV,MAAA6I,aACED;CAaS,IAAAE;AAAA,KAAA9I,EAAA,SAAAiG,gBAAAjG,EAAA,SAAA4F,oBAAA5F,EAAA,SAAAE,GAAA;AAGU4I,QAAAlD,mBACnB,oBAAC;GACW,UAAA;GACJ,MAAA,oBAAC,cAAW;GACT,SAAA1F,EAAE,cAAc,QAAO;GACvB+F,SAAAA;IAEL,GAPa;AAObjG,IAAA,OAAAiG;AAAAjG,IAAA,OAAA4F;AAAA5F,IAAA,OAAAE;AAAAF,IAAA,OAAA8I;OAAAA,OAAA9I,EAAA;CAPR,MAAA+I,eAAqBD;CAOZ,IAAAE;AAAA,KAAAhJ,EAAA,SAAA+I,gBAAA/I,EAAA,SAAA6I,cAAA7I,EAAA,SAAAP,QAAAwJ,SAAA;AAIPD,QAAAvJ,QAAOwJ,WAAPJ,cAAAE,eAAA;GAEKtJ,QAAOwJ;GACPJ;GACAE;MAEQ,GANb3J;AAMaY,IAAA,OAAA+I;AAAA/I,IAAA,OAAA6I;AAAA7I,IAAA,OAAAP,QAAAwJ;AAAAjJ,IAAA,OAAAgJ;OAAAA,OAAAhJ,EAAA;CAPf,MAAAiJ,UACED;CASF,MAAAE,gBAAsBzJ,QAAOc,QAAPA,QAAA;CACtB,MAAA4I,WACE3D,kBAAkB,UACd/I,eAAeyM,kBAAkB,UAAlB,UAAA,YADnBA;CASF,MAAAG,YADmB7D,kBAAkB,SACnB,UAAApG;CAGlB,MAAAkK,2BACE7J,QAAOgB,mBAAPC;CAAiD,IAAA6I;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAA3J,EAAA,SAAAP,SAAA;EAGnD,MAAA,EAAAI,OAAA+J,QAAAC,SAAAC,UAAArM,KAAAsM,MAAA/L,YAAAgM,aAAAC,WAAAC,YAAAC,aAAAC,cAAA7J,MAAA8J,OAAApB,SAAAqB,UAAA7J,iBAAA8J,kBAAA5J,YAAA6J,aAAAlE,eAAAmE,gBAAAtL,MAAAuL,OAAA5J,kBAAA6J,mBAAA3J,WAAA4J,YAAA1J,aAAA2J,cAAAzJ,UAAA0J,WAAAlL,SAAAmL,KAAAvB,IAAAwB,KAAAvB,OAAAwB,KAAAvB,QAAAwB,KAAA,GAAAC,QAsBI1L;AAtBJkK,eAAAoB;AAAAvB,OAAAwB;AAAAvB,UAAAwB;AAAAvB,WAAAwB;AAAA3B,mBAAA4B;AAsBYnL,IAAA,OAAAP;AAAAO,IAAA,OAAAuJ;AAAAvJ,IAAA,OAAAwJ;AAAAxJ,IAAA,OAAAyJ;AAAAzJ,IAAA,OAAA0J;AAAA1J,IAAA,OAAA2J;QAAA;AAAAJ,mBAAAvJ,EAAA;AAAAwJ,OAAAxJ,EAAA;AAAAyJ,UAAAzJ,EAAA;AAAA0J,WAAA1J,EAAA;AAAA2J,eAAA3J,EAAA;;CAAA,IAAA+K;AAAA,KAAA/K,EAAA,SAAAP,QAAAI,OAAA;AAmBVkL,QAAA,OAAOtL,QAAOI,UAAW,WAAzBT,eAAsDK,QAAOI;AAAMG,IAAA,OAAAP,QAAAI;AAAAG,IAAA,OAAA+K;OAAAA,OAAA/K,EAAA;CADrE,MAAAoL,qBACEL;CAAoE,IAAAC;AAAA,KAAAhL,EAAA,SAAAvB,uBAAAuB,EAAA,SAAAkE,aAAAlE,EAAA,SAAAoL,sBAAApL,EAAA,SAAA2J,YAAA;AAC5CqB,QAAA,CAACvM,sBAADkL,aAEtB,CAACyB,qBAAD,QAEElH,YACEvE,eAAegK,WACL,GAFZA;AAEY3J,IAAA,OAAAvB;AAAAuB,IAAA,OAAAkE;AAAAlE,IAAA,OAAAoL;AAAApL,IAAA,OAAA2J;AAAA3J,IAAA,OAAAgL;OAAAA,OAAAhL,EAAA;CANlB,MAAAqL,oBAA0BL;CAMP,IAAAC;AAAA,KAAAjL,EAAA,SAAAI,qBAAAJ,EAAA,SAAAvB,uBAAAuB,EAAA,SAAA2G,uBAAA3G,EAAA,SAAA8G,uBAAA9G,EAAA,SAAAyG,uBAAAzG,EAAA,SAAAhC,cAAAgC,EAAA,SAAAkE,aAAAlE,EAAA,SAAAoL,sBAAApL,EAAA,SAAAP,QAAAI,SAAAG,EAAA,SAAA2J,cAAA3J,EAAA,SAAAkG,aAAA;AACE+E,QAAAxM,sBACnB,oBAAC;GACMsD,KAAAA;GACEmE,OAAAA;GACIhC;GACClG;GACQ,oBAAA;GACRoC,cAAAA;GACJ1C,QAAAA;GACO0N,eAAAA;GACN,SAAAzB,cAAA;GACQ7C,iBAAAA;GACPL,UAAAA;GACAE,UAAAA;IAIb,GADClH,QAAOI;AACRG,IAAA,OAAAI;AAAAJ,IAAA,OAAAvB;AAAAuB,IAAA,OAAA2G;AAAA3G,IAAA,OAAA8G;AAAA9G,IAAA,OAAAyG;AAAAzG,IAAA,OAAAhC;AAAAgC,IAAA,OAAAkE;AAAAlE,IAAA,OAAAoL;AAAApL,IAAA,OAAAP,QAAAI;AAAAG,IAAA,OAAA2J;AAAA3J,IAAA,OAAAkG;AAAAlG,IAAA,OAAAiL;OAAAA,OAAAjL,EAAA;CAjBD,MAAAsL,eAAqBL;CAoBrB,MAAAM,wBACE9F,sBAAAK,gBAAsC5E,YAAWsK,YAAjD1J;CAA2E,IAAAoJ;AAAA,KAAAlL,EAAA,SAAA8F,eAAA;AAG3DoF,QAAApF,gBAAA,EAAA,iBAAmC,QAAsB,GAAzD,EAAyD;AAAA9F,IAAA,OAAA8F;AAAA9F,IAAA,OAAAkL;OAAAA,OAAAlL,EAAA;CAA3E,MAAAyL,YAAkBP;CAA0D,IAAAC;AAAA,KAAAnL,EAAA,SAAAsJ,4BAAAtJ,EAAA,SAAAsI,MAAA;AAGtD6C,QAAA;GAAA,GACjB7C;GAAI,qBACcgB;GACtB;AAAAtJ,IAAA,OAAAsJ;AAAAtJ,IAAA,OAAAsI;AAAAtI,IAAA,OAAAmL;OAAAA,OAAAnL,EAAA;CAHD,MAAA0L,gBAAsBP;CAGpB,IAAAQ;AAAA,KAAA3L,EAAA,SAAAwB,aAAAxB,EAAA,SAAAkC,eAAAlC,EAAA,SAAAR,KAAA/B,KAAA;AAUGkO,QAAAzJ,eAAAV,aACC,oBAAC;GACS,QAAA;IAAAlB,MAAQ;IAAM7C,KAAO+B,KAAI/B;IAAImO,cAAgB;IAAS;GACnDpK;GACF,UAAA;IAEZ;AAAAxB,IAAA,OAAAwB;AAAAxB,IAAA,OAAAkC;AAAAlC,IAAA,OAAAR,KAAA/B;AAAAuC,IAAA,OAAA2L;OAAAA,OAAA3L,EAAA;CAOkB,MAAA6L,MAAAvC,4BAAA,CAA6BzF;CAAQ,IAAAiI;AAAA,KAAA9L,EAAA,SAAAiJ,WAAAjJ,EAAA,SAAAyL,aAAAzL,EAAA,SAAA0E,mBAAA1E,EAAA,SAAAsJ,4BAAAtJ,EAAA,SAAAwD,cAAAxD,EAAA,SAAA6H,iBAAA7H,EAAA,SAAA+E,yBAAA/E,EAAA,SAAAkD,cAAAlD,EAAA,SAAA6D,YAAA7D,EAAA,SAAAhC,cAAAgC,EAAA,SAAAR,KAAA/B,OAAAuC,EAAA,SAAAqJ,aAAArJ,EAAA,SAAAmJ,YAAAnJ,EAAA,SAAAuJ,kBAAAvJ,EAAA,SAAAsI,QAAAtI,EAAA,SAAAwJ,MAAAxJ,EAAA,SAAAyJ,SAAAzJ,EAAA,SAAA0J,UAAA1J,EAAA,SAAAqL,qBAAArL,EAAA,SAAAiC,YAAAjC,EAAA,SAAAsL,cAAA;AAWrDQ,SAAAC,QAAA;GAAC,MAAA,EAAAC,aAAAC,+BAAAF;AAA2C,UAC3C,oBAAC;IACC,eAAA;IACA,sBAAA;IACaC;IACeC;IACX3C,iBAAAA;IACd,IAAA;IAAQ,GACP/N,aAAW0G,UAAUiB,YAAYM,YAAY;KAAAhG,WACpCqK;KAAaqE,gBACRnH;KAAqBoH,gBACrBzH;KACjB,CAAC;IAAA,GACE+G;IAAS,GACTlC;IACC1H;IACD,IAAA2H,MAAA,OAAanL,OAAOmB,KAAI/B,IAAK;IAC1BgM;IACCC;IACFpB;IACMzE,YAAAA;IACA7F;IACNmL,MAAAA;IACAiD,MAnJC;IAoJA/C,OAAAA;IACE,SAAAJ,UAAA,OAAA7J;IACAiM,SAAAA;cAERC;KACU;;AACdtL,IAAA,OAAAiJ;AAAAjJ,IAAA,OAAAyL;AAAAzL,IAAA,OAAA0E;AAAA1E,IAAA,OAAAsJ;AAAAtJ,IAAA,OAAAwD;AAAAxD,IAAA,OAAA6H;AAAA7H,IAAA,OAAA+E;AAAA/E,IAAA,OAAAkD;AAAAlD,IAAA,OAAA6D;AAAA7D,IAAA,OAAAhC;AAAAgC,IAAA,OAAAR,KAAA/B;AAAAuC,IAAA,OAAAqJ;AAAArJ,IAAA,OAAAmJ;AAAAnJ,IAAA,OAAAuJ;AAAAvJ,IAAA,OAAAsI;AAAAtI,IAAA,OAAAwJ;AAAAxJ,IAAA,OAAAyJ;AAAAzJ,IAAA,OAAA0J;AAAA1J,IAAA,OAAAqL;AAAArL,IAAA,OAAAiC;AAAAjC,IAAA,OAAAsL;AAAAtL,IAAA,OAAA8L;OAAAA,OAAA9L,EAAA;CAAA,IAAA+L;AAAA,KAAA/L,EAAA,SAAAiJ,WAAAjJ,EAAA,SAAAhC,cAAAgC,EAAA,SAAAmJ,YAAAnJ,EAAA,SAAAsI,QAAAtI,EAAA,SAAA6L,OAAA7L,EAAA,SAAA8L,KAAA;AA/CHC,QAAA,oBAAC;GACC,sBAAA;GAKiB,iBAAAF;GACXO,MAlHK;GAmHL,OAAA;GACAjD,MAAAA;GACMnL;GACNsK;GACGW;GAGKjM,cAAAA;aAEb8O;IA+BkB;AAAA9L,IAAA,OAAAiJ;AAAAjJ,IAAA,OAAAhC;AAAAgC,IAAA,OAAAmJ;AAAAnJ,IAAA,OAAAsI;AAAAtI,IAAA,OAAA6L;AAAA7L,IAAA,OAAA8L;AAAA9L,IAAA,OAAA+L;OAAAA,OAAA/L,EAAA;CACpB,MAAAqM,MAAA5G,sBAAAK,iBAAuC5E,YAAWoL;CAAS,IAAAC;AAAA,KAAAvM,EAAA,SAAAwB,aAAAxB,EAAA,SAAAkC,eAAAlC,EAAA,SAAAN,aAAAM,EAAA,SAAAR,KAAA/B,KAAA;AAE3D8O,QAAArK,eAAAV,aAAA9B,aACC,oBAAC;GACS,QAAA;IAAAY,MAAQ;IAAM7C,KAAO+B,KAAI/B;IAAImO,cAAgB;IAAQ;GAClDpK;GACF,UAAA;IAEZ;AAAAxB,IAAA,OAAAwB;AAAAxB,IAAA,OAAAkC;AAAAlC,IAAA,OAAAN;AAAAM,IAAA,OAAAR,KAAA/B;AAAAuC,IAAA,OAAAuM;OAAAA,OAAAvM,EAAA;CAAA,IAAAwM;AAAA,KAAAxM,EAAA,SAAA0L,iBAAA1L,EAAA,SAAAuL,yBAAAvL,EAAA,SAAA2C,sBAAA3C,EAAA,SAAAmJ,YAAAnJ,EAAA,SAAA2L,OAAA3L,EAAA,SAAA+L,OAAA/L,EAAA,SAAAqM,OAAArM,EAAA,SAAAuM,KAAA;AAvEHC,QAAA,qBAAC;GACMjB,KAAAA;GACMpC,aAAAA;GACLuC,MAAAA;GAAa,GACf/I;;IAGHgJ;IAODI;IAiDCM;IAEAE;;IAOY;AAAAvM,IAAA,OAAA0L;AAAA1L,IAAA,OAAAuL;AAAAvL,IAAA,OAAA2C;AAAA3C,IAAA,OAAAmJ;AAAAnJ,IAAA,OAAA2L;AAAA3L,IAAA,OAAA+L;AAAA/L,IAAA,OAAAqM;AAAArM,IAAA,OAAAuM;AAAAvM,IAAA,OAAAwM;OAAAA,OAAAxM,EAAA;AAAA,QAxEfwM"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { DropIndicatorElement } from "./styled.js";
|
|
3
3
|
import { useTabsContext } from "./TabsContext.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { TabPanelElement } from "./styled.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useEffect, useMemo, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { CloseIcon } from "../../../icons/CloseIcon.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { _ItemButton } from "../../actions/ItemButton/ItemButton.js";
|
|
3
3
|
import { useOptionalTabsContext } from "./TabsContext.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabsAction.js","names":["FocusableRef","tasty","forwardRef","
|
|
1
|
+
{"version":3,"file":"TabsAction.js","names":["FocusableRef","tasty","forwardRef","CubeItemButtonProps","ItemButton","useOptionalTabsContext","TabSize","CubeTabsActionProps","Omit","size","TabsActionElement","styles","border","radius","TabsAction","props","ref","$","_c","mods","rest","type","tabsContext","effectiveSize","tabsType","tabsPlacement","placement","tabsVertical","t0","t1","combinedMods","t2","t3"],"sources":["../../../../src/components/navigation/Tabs/TabsAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport {\n CubeItemButtonProps,\n ItemButton,\n} from '../../actions/ItemButton/ItemButton';\n\nimport { useOptionalTabsContext } from './TabsContext';\n\nimport type { TabSize } from './types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface CubeTabsActionProps\n extends Omit<CubeItemButtonProps, 'size' | 'shape'> {\n /**\n * Size of the action button.\n * When used inside Tabs prefix/suffix, inherits from Tabs size by default.\n */\n size?: TabSize;\n}\n\n// =============================================================================\n// Styled Component\n// =============================================================================\n\nconst TabsActionElement = tasty(ItemButton, {\n styles: {\n border: {\n 'type=clear': 0,\n 'type=clear & tabs-type-file & !:first-child & !tabs-vertical': 'left',\n 'type=clear & tabs-type-file & !:first-child & tabs-vertical': 'top',\n },\n radius: {\n 'type=clear': 0,\n },\n },\n});\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * Action button designed for the Tabs prefix/suffix slots.\n *\n * Styled with sharp edges and no border to match the TabPicker trigger.\n * When multiple TabsAction components are placed together, they automatically\n * display dividers between them using CSS :not(:first-child) border styling\n * (only for file tab type).\n *\n * Inherits size from the parent Tabs component when used inside prefix/suffix slots.\n *\n * @example\n * <Tabs suffix={<Tabs.Action icon={<PlusIcon />} onPress={handleAdd} />}>\n * <Tab key=\"tab1\" title=\"Tab 1\">Content</Tab>\n * </Tabs>\n *\n * @example\n * // Multiple actions with automatic dividers\n * <Tabs\n * suffix={\n * <>\n * <Tabs.Action icon={<PlusIcon />} onPress={handleAdd} />\n * <Tabs.Action icon={<SettingsIcon />} onPress={handleSettings} />\n * </>\n * }\n * >\n * <Tab key=\"tab1\" title=\"Tab 1\">Content</Tab>\n * </Tabs>\n */\nexport const TabsAction = forwardRef(function TabsAction(\n props: CubeTabsActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const { size, mods, type, ...rest } = props;\n\n // Get size, type, and placement from context if available (when used inside Tabs)\n const tabsContext = useOptionalTabsContext();\n const effectiveSize = size ?? tabsContext?.size ?? 'medium';\n const tabsType = tabsContext?.type ?? 'default';\n const tabsPlacement = tabsContext?.placement ?? 'top';\n const tabsVertical = tabsPlacement === 'left' || tabsPlacement === 'right';\n\n const combinedMods = {\n 'tabs-type-file': tabsType === 'file',\n 'tabs-vertical': tabsVertical,\n ...mods,\n };\n\n return (\n <TabsActionElement\n ref={ref}\n type={type ?? (tabsType === 'default' ? 'outline' : 'clear')}\n size={effectiveSize}\n mods={combinedMods}\n {...rest}\n />\n );\n});\n"],"mappings":";;;;;;;;;AA8BA,MAAMU,oBAAoBT,MAAMG,aAAY,EAC1CO,QAAQ;CACNC,QAAQ;EACN,cAAc;EACd,gEAAgE;EAChE,+DAA+D;EAChE;CACDC,QAAQ,EACN,cAAc,GAChB;CACF,EACD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCF,MAAaC,aAAaZ,WAAW,SAAAY,WAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAX;CAAA,IAAAY;AAAA,KAAAJ,EAAA,OAAAF,OAAA;AAInC,GAAA,CAAAN,MAAAU,MAAAE,SAAAD,QAAsCL;AAAME,IAAA,KAAAF;AAAAE,IAAA,KAAAE;AAAAF,IAAA,KAAAG;AAAAH,IAAA,KAAAR;AAAAQ,IAAA,KAAAI;QAAA;AAAAF,SAAAF,EAAA;AAAAG,SAAAH,EAAA;AAAAR,SAAAQ,EAAA;AAAAI,SAAAJ,EAAA;;CAG5C,MAAAK,cAAoBjB,wBAAwB;CAC5C,MAAAkB,gBAAsBd,QAAQa,aAAWb,QAAnB;CACtB,MAAAe,WAAiBF,aAAWD,QAAX;CACjB,MAAAI,gBAAsBH,aAAWI,aAAX;CACtB,MAAAC,eAAqBF,kBAAkB,UAAUA,kBAAkB;CAG/C,MAAAG,KAAAJ,aAAa;CAAM,IAAAK;AAAA,KAAAZ,EAAA,OAAAE,QAAAF,EAAA,OAAAW,MAAAX,EAAA,OAAAU,cAAA;AADlBE,OAAA;GAAA,kBACDD;GAAmB,iBACpBD;GAAY,GAC1BR;GACJ;AAAAF,IAAA,KAAAE;AAAAF,IAAA,KAAAW;AAAAX,IAAA,KAAAU;AAAAV,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAJD,MAAAa,eAAqBD;CASX,MAAAE,KAAAV,SAASG,aAAa,YAAb,YAAA;CAA6C,IAAAQ;AAAA,KAAAf,EAAA,OAAAa,gBAAAb,EAAA,QAAAM,iBAAAN,EAAA,QAAAD,OAAAC,EAAA,QAAAG,QAAAH,EAAA,QAAAc,IAAA;AAF9DC,OAAA,oBAAC;GACMhB;GACC,MAAAe;GACAR,MAAAA;GACAO,MAAAA;GAAY,GACdV;IACJ;AAAAH,IAAA,KAAAa;AAAAb,IAAA,MAAAM;AAAAN,IAAA,MAAAD;AAAAC,IAAA,MAAAG;AAAAH,IAAA,MAAAc;AAAAd,IAAA,MAAAe;OAAAA,MAAAf,EAAA;AAAA,QANFe;EAQF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { c } from "react-compiler-runtime";
|
|
3
3
|
import { createContext, useContext } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
//#region src/components/navigation/Tabs/popover-placement.ts
|
|
3
3
|
/**
|
|
4
4
|
* Maps the parent Tabs `placement` to the popover placement for menus and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tab-editing.js","names":["
|
|
1
|
+
{"version":3,"file":"use-tab-editing.js","names":["useState","UseTabEditingOptions","onChange","key","onTitleChange","newTitle","UseTabEditingResult","editingKey","startEditing","currentTitle","submitEditing","tabOnTitleChange","title","cancelEditing","useTabEditing","t0","$","_c","t1","undefined","setEditingKey","t2","t3","Symbol","for","t4","key_0","trimmed","trim","t5"],"sources":["../../../../src/components/navigation/Tabs/use-tab-editing.ts"],"sourcesContent":["import { useState } from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface UseTabEditingOptions {\n /** Callback when tab selection changes (used to select tab when editing starts) */\n onChange?: (key: string) => void;\n /** Callback when a tab title is changed */\n onTitleChange?: (key: string, newTitle: string) => void;\n}\n\nexport interface UseTabEditingResult {\n /** Currently editing tab key (null if not editing) */\n editingKey: string | null;\n /** Start editing the given tab. The `currentTitle` argument is kept for API compatibility but is no longer used internally — `InlineInput` manages the draft. */\n startEditing: (key: string, currentTitle?: string) => void;\n /** Submit the current edit */\n submitEditing: (\n key: string,\n newTitle: string,\n tabOnTitleChange?: (title: string) => void,\n ) => void;\n /** Cancel the current edit */\n cancelEditing: () => void;\n}\n\n// =============================================================================\n// Hook\n// =============================================================================\n\n/**\n * Hook to manage tab title editing state.\n *\n * Provides state and callbacks for inline title editing with support for:\n * - Starting edit mode (selecting the tab)\n * - Submitting changes (with tab-level or parent-level callback)\n * - Canceling edits\n *\n * The draft value is managed inside `InlineInput`; this hook only tracks\n * which tab (if any) is currently editing.\n */\nexport function useTabEditing({\n onChange,\n onTitleChange,\n}: UseTabEditingOptions = {}): UseTabEditingResult {\n const [editingKey, setEditingKey] = useState<string | null>(null);\n\n const startEditing = (key: string) => {\n onChange?.(key);\n setEditingKey(key);\n };\n\n const cancelEditing = () => {\n setEditingKey(null);\n };\n\n const submitEditing = (\n key: string,\n newTitle: string,\n tabOnTitleChange?: (title: string) => void,\n ) => {\n const trimmed = newTitle.trim();\n\n if (trimmed) {\n // Tab-level callback takes precedence\n if (tabOnTitleChange) {\n tabOnTitleChange(trimmed);\n } else if (onTitleChange) {\n onTitleChange(key, trimmed);\n }\n }\n\n setEditingKey(null);\n };\n\n return {\n editingKey,\n startEditing,\n cancelEditing,\n submitEditing,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA2CA,SAAOc,cAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAD,IAAA;AAAuBG,OAAAH,OAAAI,SAAA,EAGF,GAHEJ;AAGFC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAHE,MAAA,EAAAd,UAAAE,kBAAAc;CAI5B,MAAA,CAAAX,YAAAa,iBAAoCpB,SAAwB,KAAK;CAAC,IAAAqB;AAAA,KAAAL,EAAA,OAAAd,UAAA;AAE7CmB,QAAAlB,QAAA;AACnBD,cAAWC,IAAI;AACfiB,iBAAcjB,IAAI;;AACnBa,IAAA,KAAAd;AAAAc,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAHD,MAAAR,eAAqBa;CAGnB,IAAAC;AAAA,KAAAN,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AAEoBF,aAAA;AACpBF,iBAAc,KAAK;;AACpBJ,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAFD,MAAAH,gBAAsBS;CAEpB,IAAAG;AAAA,KAAAT,EAAA,OAAAZ,eAAA;AAEoBqB,QAAAC,OAAArB,UAAAM,qBAAA;GAKpB,MAAAgB,UAAgBtB,SAAQuB,MAAO;AAE/B,OAAID,SAEF;QAAIhB,iBACFA,kBAAiBgB,QAAQ;aAChBvB,cACTA,eAAcD,OAAKwB,QAAQ;;AAI/BP,iBAAc,KAAK;;AACpBJ,IAAA,KAAAZ;AAAAY,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CAjBD,MAAAN,gBAAsBe;CAiBpB,IAAAI;AAAA,KAAAb,EAAA,OAAAT,cAAAS,EAAA,OAAAR,gBAAAQ,EAAA,OAAAN,eAAA;AAEKmB,OAAA;GAAAtB;GAAAC;GAAAK;GAAAH;GAKN;AAAAM,IAAA,KAAAT;AAAAS,IAAA,KAAAR;AAAAQ,IAAA,KAAAN;AAAAM,IAAA,MAAAa;OAAAA,MAAAb,EAAA;AAAA,QALMa"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { chainRaf } from "../../../utils/raf.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { _Text } from "../../content/Text.js";
|
|
3
3
|
import { _Title } from "../../content/Title.js";
|
|
4
4
|
import { Card } from "../../content/Card/Card.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../provider.js";
|
|
3
3
|
import { CalendarPanel } from "./CalendarPanel.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { CALENDAR_CELL_STYLES } from "./styled.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|