@cube-dev/ui-kit 0.199.2 → 0.200.1
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 +41 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.d.ts +6 -4
- package/dist/components/GridProvider.js +14 -9
- package/dist/components/GridProvider.js.map +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/Root.js.map +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +2 -2
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +7 -12
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +5 -6
- 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 +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +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/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +2 -2
- package/dist/components/actions/Menu/styled.js.map +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/Alert.js.map +1 -1
- package/dist/components/content/Alert/use-alert.js +24 -27
- package/dist/components/content/Alert/use-alert.js.map +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +6 -2
- package/dist/components/content/Badge/Badge.js.map +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +6 -13
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.js +18 -18
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/Layout.js.map +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.js +5 -3
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +2 -2
- package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
- package/dist/components/content/Layout/LayoutPane.js +16 -12
- package/dist/components/content/Layout/LayoutPane.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +23 -19
- package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.js +6 -2
- package/dist/components/content/Tag/Tag.js.map +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +9 -17
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +6 -4
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/styled.js +30 -11
- package/dist/components/content/Tree/styled.js.map +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRow.js.map +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +26 -29
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +3 -3
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.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 +6 -6
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +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/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +5 -9
- package/dist/components/fields/DatePicker/DateInputBase.js.map +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 +49 -39
- package/dist/components/fields/DatePicker/DatePickerSegment.js.map +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 +5 -3
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.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 +2 -2
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +6 -8
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +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.d.ts +1 -1
- package/dist/components/fields/ListBox/ListBox.js +49 -24
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +91 -96
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.d.ts +1 -1
- package/dist/components/fields/Select/Select.js +3 -3
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +3 -3
- 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 +4 -6
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +7 -6
- package/dist/components/fields/Slider/elements.js.map +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +3 -3
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +3 -3
- package/dist/components/fields/TagInput/TagList.js.map +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +3 -6
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +2 -2
- package/dist/components/fields/color/ColorPanel.js.map +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/field-chrome.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/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 +13 -38
- package/dist/components/layout/Panel.js.map +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +24 -20
- package/dist/components/layout/ResizablePanel.js.map +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 +2 -2
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +62 -68
- package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +13 -12
- package/dist/components/navigation/Tabs/styled.js.map +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-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 +6 -6
- package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +3 -3
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +6 -6
- package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +4 -4
- package/dist/components/other/Calendar/styled.js.map +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +3 -4
- package/dist/components/other/CubeLogo/CubeLogo.js.map +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/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.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/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +4 -5
- package/dist/components/overlays/Modal/Tray.js.map +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +8 -6
- 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 +27 -27
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +2 -2
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +21 -38
- package/dist/icons/Icon.js.map +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/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +8 -2
- package/dist/tokens/base.js.map +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.d.ts +0 -1
- package/dist/tokens/shadows.js +2 -3
- package/dist/tokens/shadows.js.map +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +7 -2
- package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/BaseProperties.md +2 -0
- package/docs/ComplexLayout.md +1 -1
- package/docs/Usage.md +45 -2
- package/docs/Utilities.md +5 -2
- package/docs/components/GridProvider.md +3 -3
- package/docs/components/content/Layout.md +1 -1
- package/docs/components/fields/ComboBox.md +1 -1
- package/docs/components/fields/CommandTextArea.md +1 -1
- package/docs/components/fields/FilterListBox.md +1 -1
- package/docs/components/fields/FilterPicker.md +1 -1
- package/docs/components/fields/ListBox.md +2 -2
- package/docs/components/fields/Picker.md +1 -1
- package/docs/components/fields/SearchComboBox.md +1 -1
- package/docs/components/fields/Select.md +1 -1
- package/docs/components/fields/TagInput.md +1 -1
- package/docs/components/overlays/Dialog.md +1 -1
- package/docs/tasty/react-api.md +1 -1
- package/package.json +3 -3
- package/tasty.config.ts +153 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutContainer.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useCombinedRefs","extractStyles","LayoutContextReset","ContainerElement","as","qa","styles","display","flow","flexGrow","flexShrink","placeItems","placeContent","overflow","scrollbar","padding","placeSelf","border","Inner","$","boxSizing","width","CubeLayoutContainerProps","children","innerStyles","innerRef","HTMLDivElement","innerProps","LayoutContainer","props","ref","_c","innerStylesProp","innerRefProp","otherProps","hasInnerStyles","Object","keys","length","finalStyles","combinedInnerRef","T0","t0","eventProps","t1","t2","t3","_LayoutContainer","displayName","_c"],"sources":["../../../../src/components/content/Layout/LayoutContainer.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n mergeStyles,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, HTMLAttributes, ReactNode } from 'react';\n\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { LayoutContextReset } from './LayoutContext';\n\nconst ContainerElement = tasty({\n as: 'div',\n qa: 'LayoutContainer',\n styles: {\n display: 'flex',\n flow: 'column',\n flexGrow: 1,\n flexShrink: 1,\n placeItems: 'center start',\n placeContent: 'stretch',\n overflow: 'auto',\n scrollbar: 'thin',\n padding: '$content-padding',\n placeSelf: 'stretch',\n border: {\n '': 0,\n '!:last-child': '($layout-border-size, 1bw) solid #border bottom',\n },\n\n Inner: {\n $: '>',\n placeSelf: 'center',\n display: 'flex',\n flow: 'column',\n boxSizing: 'border-box',\n width: '40x 100% 120x',\n flexGrow: 1,\n\n '$layout-border-size': '0',\n },\n },\n});\n\nexport interface CubeLayoutContainerProps\n extends BaseProps, ContainerStyleProps {\n children?: ReactNode;\n /** Custom styles for container and inner elements */\n styles?: Styles;\n /** Custom styles for the inner element */\n innerStyles?: Styles;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\nfunction LayoutContainer(\n props: CubeLayoutContainerProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n styles,\n innerStyles: innerStylesProp,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n const innerStyles = extractStyles(\n otherProps,\n CONTAINER_STYLES,\n innerStylesProp,\n );\n\n const hasInnerStyles = Object.keys(innerStyles).length > 0;\n\n const finalStyles = mergeStyles(\n styles,\n hasInnerStyles ? { Inner: innerStyles } : null,\n );\n\n const combinedInnerRef = useCombinedRefs(innerRefProp);\n\n return (\n <ContainerElement\n ref={ref}\n {...filterBaseProps(otherProps, { eventProps: true })}\n styles={finalStyles}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n </ContainerElement>\n );\n}\n\nconst _LayoutContainer = forwardRef(LayoutContainer);\n\n_LayoutContainer.displayName = 'Layout.Container';\n\nexport { _LayoutContainer as LayoutContainer };\n"],"mappings":";;;;;;;;;AAgBA,MAAMc,mBAAmBR,MAAM;CAC7BS,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,UAAU;EACVC,YAAY;EACZC,YAAY;EACZC,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC,SAAS;EACTC,WAAW;EACXC,QAAQ;GACN,IAAI;GACJ,gBAAgB;EAClB;EAEAC,OAAO;GACLC,GAAG;GACHH,WAAW;GACXT,SAAS;GACTC,MAAM;GACNY,WAAW;GACXC,OAAO;GACPZ,UAAU;GAEV,uBAAuB;EACzB;CACF;AACF,CAAC;AAeD,SAAAmB,gBAAAC,OAAAC,KAAA;CAAA,MAAAX,IAAAY,EAAA,EAAA;CAIE,MAAA,EAAAR,UAAAjB,QAAAkB,aAAAQ,iBAAAP,UAAAQ,cAAAN,YAAA,GAAAO,eAOIL;CACJ,MAAAL,cAAoBvB,cAClBiC,YACA5C,kBACA0C,eACF;CAEA,MAAAG,iBAAuBC,OAAMC,KAAMb,WAAW,CAAC,CAAAc,SAAU;CAEzD,MAAAC,cAAoB9C,YAClBa,
|
|
1
|
+
{"version":3,"file":"LayoutContainer.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useCombinedRefs","extractStyles","LayoutContextReset","ContainerElement","as","qa","styles","display","flow","flexGrow","flexShrink","placeItems","placeContent","overflow","scrollbar","padding","placeSelf","border","Inner","$","boxSizing","width","CubeLayoutContainerProps","children","innerStyles","innerRef","HTMLDivElement","innerProps","LayoutContainer","props","ref","_c","innerStylesProp","innerRefProp","otherProps","hasInnerStyles","Object","keys","length","finalStyles","combinedInnerRef","T0","t0","eventProps","t1","t2","t3","_LayoutContainer","displayName","_c"],"sources":["../../../../src/components/content/Layout/LayoutContainer.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n mergeStyles,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, HTMLAttributes, ReactNode } from 'react';\n\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { LayoutContextReset } from './LayoutContext';\n\nconst ContainerElement = tasty({\n as: 'div',\n qa: 'LayoutContainer',\n styles: {\n display: 'flex',\n flow: 'column',\n flexGrow: 1,\n flexShrink: 1,\n placeItems: 'center start',\n placeContent: 'stretch',\n overflow: 'auto',\n scrollbar: 'thin',\n padding: '$content-padding',\n placeSelf: 'stretch',\n border: {\n '': 0,\n '!:last-child': '($layout-border-size, 1bw) solid #border bottom',\n },\n\n Inner: {\n $: '>',\n placeSelf: 'center',\n display: 'flex',\n flow: 'column',\n boxSizing: 'border-box',\n width: '40x 100% 120x',\n flexGrow: 1,\n\n '$layout-border-size': '0',\n },\n },\n});\n\nexport interface CubeLayoutContainerProps\n extends BaseProps, ContainerStyleProps {\n children?: ReactNode;\n /** Custom styles for container and inner elements */\n styles?: Styles;\n /** Custom styles for the inner element */\n innerStyles?: Styles;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\nfunction LayoutContainer(\n props: CubeLayoutContainerProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n styles,\n innerStyles: innerStylesProp,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n const innerStyles = extractStyles(\n otherProps,\n CONTAINER_STYLES,\n innerStylesProp,\n );\n\n const hasInnerStyles = Object.keys(innerStyles).length > 0;\n\n const finalStyles = mergeStyles(\n styles,\n // oxlint-disable-next-line tasty/no-runtime-styles-mutation -- forwards the consumer's `innerStyles` and container style props to `Inner`\n hasInnerStyles ? { Inner: innerStyles } : null,\n );\n\n const combinedInnerRef = useCombinedRefs(innerRefProp);\n\n return (\n <ContainerElement\n ref={ref}\n {...filterBaseProps(otherProps, { eventProps: true })}\n styles={finalStyles}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n </ContainerElement>\n );\n}\n\nconst _LayoutContainer = forwardRef(LayoutContainer);\n\n_LayoutContainer.displayName = 'Layout.Container';\n\nexport { _LayoutContainer as LayoutContainer };\n"],"mappings":";;;;;;;;;AAgBA,MAAMc,mBAAmBR,MAAM;CAC7BS,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,UAAU;EACVC,YAAY;EACZC,YAAY;EACZC,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC,SAAS;EACTC,WAAW;EACXC,QAAQ;GACN,IAAI;GACJ,gBAAgB;EAClB;EAEAC,OAAO;GACLC,GAAG;GACHH,WAAW;GACXT,SAAS;GACTC,MAAM;GACNY,WAAW;GACXC,OAAO;GACPZ,UAAU;GAEV,uBAAuB;EACzB;CACF;AACF,CAAC;AAeD,SAAAmB,gBAAAC,OAAAC,KAAA;CAAA,MAAAX,IAAAY,EAAA,EAAA;CAIE,MAAA,EAAAR,UAAAjB,QAAAkB,aAAAQ,iBAAAP,UAAAQ,cAAAN,YAAA,GAAAO,eAOIL;CACJ,MAAAL,cAAoBvB,cAClBiC,YACA5C,kBACA0C,eACF;CAEA,MAAAG,iBAAuBC,OAAMC,KAAMb,WAAW,CAAC,CAAAc,SAAU;CAEzD,MAAAC,cAAoB9C,YAClBa,QAEA6B,iBAAA,EAAAjB,OAA0BM,YAAmB,IAA7C,IACF;CAEA,MAAAgB,mBAAyBxC,gBAAgBiC,YAAY;CAGlD,MAAAQ,KAAAtC;CAEK,MAAAuC,KAAAlD,gBAAgB0C,YAAY,EAAAS,YAAc,KAAK,CAAC;CAAC,IAAAC;CAAA,IAAAzB,EAAA,OAAAI,UAAA;EAInDqB,KAAA,oBAAC,oBAAD,EAAqBrB,SAAF,CAAA;EAAgCJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAqB,oBAAArB,EAAA,OAAAQ,cAAAR,EAAA,OAAAyB,IAAA;EADrDC,KAAA,oBAAA,OAAA;GAAUL,KAAAA;GAA+B,gBAAA;GAAO,GAAKb;GACnDiB,UAAAA;EACI,CAAA;EAAAzB,EAAA,KAAAqB;EAAArB,EAAA,KAAAQ;EAAAR,EAAA,KAAAyB;EAAAzB,EAAA,KAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAsB,MAAAtB,EAAA,OAAAoB,eAAApB,EAAA,OAAAW,OAAAX,EAAA,OAAAuB,MAAAvB,EAAA,QAAA0B,IAAA;EAPRC,KAAA,oBAAC,IAAD;GACOhB;GAAG,GACJY;GACIH,QAAAA;GAERM,UAAAA;EALe,CAAA;EAQE1B,EAAA,KAAAsB;EAAAtB,EAAA,KAAAoB;EAAApB,EAAA,KAAAW;EAAAX,EAAA,KAAAuB;EAAAvB,EAAA,MAAA0B;EAAA1B,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,OARnB2B;AAQmB;AAIvB,MAAMC,mBAAmBlD,WAAW+B,eAAe;AAEnDmB,iBAAiBC,cAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { LayoutContextReset } from "./LayoutContext.js";
|
|
@@ -49,8 +49,9 @@ const ContentElement = tasty({
|
|
|
49
49
|
},
|
|
50
50
|
ScrollbarV: {
|
|
51
51
|
$: ">",
|
|
52
|
+
"$scrollbar-inset": "1px",
|
|
52
53
|
position: "absolute",
|
|
53
|
-
right: "
|
|
54
|
+
right: "$scrollbar-inset",
|
|
54
55
|
top: "$scrollbar-v-top",
|
|
55
56
|
width: "1ow",
|
|
56
57
|
height: "$scrollbar-v-height",
|
|
@@ -65,8 +66,9 @@ const ContentElement = tasty({
|
|
|
65
66
|
},
|
|
66
67
|
ScrollbarH: {
|
|
67
68
|
$: ">",
|
|
69
|
+
"$scrollbar-inset": "1px",
|
|
68
70
|
position: "absolute",
|
|
69
|
-
bottom: "
|
|
71
|
+
bottom: "$scrollbar-inset",
|
|
70
72
|
left: "$scrollbar-h-left",
|
|
71
73
|
height: "1ow",
|
|
72
74
|
width: "$scrollbar-h-width",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutContent.js","names":["BaseProps","ContainerStyleProps","filterBaseProps","INNER_STYLES","mergeStyles","Mods","OUTER_STYLES","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useRef","useHover","useCombinedRefs","extractStyles","useTinyScrollbar","LayoutContextReset","ContentElement","as","qa","styles","container","position","display","gridColumns","gridRows","placeContent","placeItems","placeSelf","flexGrow","flexShrink","height","overflow","boxSizing","border","Inner","$","flow","padding","scrollbar","ScrollbarV","right","top","width","radius","fill","opacity","transition","pointerEvents","ScrollbarH","bottom","left","ScrollbarType","CubeLayoutContentProps","children","mods","innerRef","HTMLDivElement","innerProps","LayoutContent","props","ref","_c","t0","externalMods","innerRefProp","otherProps","undefined","outerStyles","innerStyles","internalInnerRef","combinedInnerRef","combinedRef","isTinyScrollbar","t1","Symbol","for","hoverProps","isHovered","handleVTokens","handleHTokens","hasOverflowY","hasOverflowX","isScrolling","t2","scrollbarTokens","t3","hovered","scrolling","finalStyles","T0","t4","eventProps","t5","t6","t7","t8","t9","_LayoutContent","displayName","_c"],"sources":["../../../../src/components/content/Layout/LayoutContent.tsx"],"sourcesContent":["import {\n BaseProps,\n ContainerStyleProps,\n filterBaseProps,\n INNER_STYLES,\n mergeStyles,\n Mods,\n OUTER_STYLES,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useRef,\n} from 'react';\nimport { useHover } from 'react-aria';\n\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { useTinyScrollbar } from './hooks/useTinyScrollbar';\nimport { LayoutContextReset } from './LayoutContext';\n\nconst ContentElement = tasty({\n as: 'div',\n qa: 'LayoutContent',\n styles: {\n container: 'content / inline-size',\n position: 'relative',\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n placeSelf: 'stretch',\n flexGrow: 1,\n flexShrink: 1,\n height: 'min 0',\n overflow: 'hidden',\n boxSizing: 'content-box',\n border: {\n '': 0,\n '!:last-child': '($layout-border-size, 1bw) solid #border bottom',\n },\n\n Inner: {\n $: '>',\n display: 'flex',\n flow: 'column',\n padding: '($content-padding, 1x)',\n overflow: {\n '': 'auto',\n 'scrollbar=none': 'clip',\n },\n placeSelf: 'stretch',\n scrollbar: {\n '': 'auto',\n 'scrollbar=thin': 'thin',\n 'scrollbar=tiny | scrollbar=none': 'none',\n },\n\n '$layout-border-size': '0',\n },\n\n // Custom scrollbar handles (when scrollbar=\"tiny\")\n ScrollbarV: {\n $: '>',\n position: 'absolute',\n right: '1px',\n top: '$scrollbar-v-top',\n width: '1ow',\n height: '$scrollbar-v-height',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n\n ScrollbarH: {\n $: '>',\n position: 'absolute',\n bottom: '1px',\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n },\n});\n\nexport type ScrollbarType = 'default' | 'thin' | 'tiny' | 'none';\n\nexport interface CubeLayoutContentProps extends BaseProps, ContainerStyleProps {\n /** Scrollbar style: 'default' | 'thin' | 'tiny' | 'none' */\n scrollbar?: ScrollbarType;\n children?: ReactNode;\n /** Additional modifiers to apply */\n mods?: Mods;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\nfunction LayoutContent(\n props: CubeLayoutContentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n scrollbar = 'thin',\n styles,\n mods: externalMods,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n const innerStyles = extractStyles(otherProps, INNER_STYLES);\n const internalInnerRef = useRef<HTMLDivElement>(null);\n const combinedInnerRef = useCombinedRefs(innerRefProp, internalInnerRef);\n const combinedRef = useCombinedRefs(ref);\n const isTinyScrollbar = scrollbar === 'tiny';\n const { hoverProps, isHovered } = useHover({});\n\n const {\n handleVTokens,\n handleHTokens,\n hasOverflowY,\n hasOverflowX,\n isScrolling,\n } = useTinyScrollbar(internalInnerRef, isTinyScrollbar);\n\n const scrollbarTokens = isTinyScrollbar\n ? { ...handleVTokens, ...handleHTokens }\n : undefined;\n\n const mods = {\n ...externalMods,\n scrollbar,\n hovered: isHovered,\n scrolling: isScrolling,\n };\n\n // Merge styles: outer styles to root, inner styles to Inner element\n const finalStyles = mergeStyles(\n styles,\n outerStyles,\n innerStyles ? { Inner: innerStyles } : null,\n );\n\n return (\n <ContentElement\n ref={combinedRef}\n {...filterBaseProps(otherProps, { eventProps: true })}\n {...hoverProps}\n mods={mods}\n styles={finalStyles}\n tokens={scrollbarTokens}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n {isTinyScrollbar && hasOverflowY && <div data-element=\"ScrollbarV\" />}\n {isTinyScrollbar && hasOverflowX && <div data-element=\"ScrollbarH\" />}\n </ContentElement>\n );\n}\n\nconst _LayoutContent = forwardRef(LayoutContent);\n\n_LayoutContent.displayName = 'Layout.Content';\n\nexport { _LayoutContent as LayoutContent };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LayoutContent.js","names":["BaseProps","ContainerStyleProps","filterBaseProps","INNER_STYLES","mergeStyles","Mods","OUTER_STYLES","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useRef","useHover","useCombinedRefs","extractStyles","useTinyScrollbar","LayoutContextReset","ContentElement","as","qa","styles","container","position","display","gridColumns","gridRows","placeContent","placeItems","placeSelf","flexGrow","flexShrink","height","overflow","boxSizing","border","Inner","$","flow","padding","scrollbar","ScrollbarV","right","top","width","radius","fill","opacity","transition","pointerEvents","ScrollbarH","bottom","left","ScrollbarType","CubeLayoutContentProps","children","mods","innerRef","HTMLDivElement","innerProps","LayoutContent","props","ref","_c","t0","externalMods","innerRefProp","otherProps","undefined","outerStyles","innerStyles","internalInnerRef","combinedInnerRef","combinedRef","isTinyScrollbar","t1","Symbol","for","hoverProps","isHovered","handleVTokens","handleHTokens","hasOverflowY","hasOverflowX","isScrolling","t2","scrollbarTokens","t3","hovered","scrolling","finalStyles","T0","t4","eventProps","t5","t6","t7","t8","t9","_LayoutContent","displayName","_c"],"sources":["../../../../src/components/content/Layout/LayoutContent.tsx"],"sourcesContent":["import {\n BaseProps,\n ContainerStyleProps,\n filterBaseProps,\n INNER_STYLES,\n mergeStyles,\n Mods,\n OUTER_STYLES,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useRef,\n} from 'react';\nimport { useHover } from 'react-aria';\n\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { useTinyScrollbar } from './hooks/useTinyScrollbar';\nimport { LayoutContextReset } from './LayoutContext';\n\nconst ContentElement = tasty({\n as: 'div',\n qa: 'LayoutContent',\n styles: {\n container: 'content / inline-size',\n position: 'relative',\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n placeSelf: 'stretch',\n flexGrow: 1,\n flexShrink: 1,\n height: 'min 0',\n overflow: 'hidden',\n boxSizing: 'content-box',\n border: {\n '': 0,\n '!:last-child': '($layout-border-size, 1bw) solid #border bottom',\n },\n\n Inner: {\n $: '>',\n display: 'flex',\n flow: 'column',\n padding: '($content-padding, 1x)',\n overflow: {\n '': 'auto',\n 'scrollbar=none': 'clip',\n },\n placeSelf: 'stretch',\n scrollbar: {\n '': 'auto',\n 'scrollbar=thin': 'thin',\n 'scrollbar=tiny | scrollbar=none': 'none',\n },\n\n '$layout-border-size': '0',\n },\n\n // Custom scrollbar handles (when scrollbar=\"tiny\")\n ScrollbarV: {\n $: '>',\n // It sits a device pixel in from the edge.\n '$scrollbar-inset': '1px',\n position: 'absolute',\n right: '$scrollbar-inset',\n top: '$scrollbar-v-top',\n width: '1ow',\n height: '$scrollbar-v-height',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n\n ScrollbarH: {\n $: '>',\n // It sits a device pixel in from the edge.\n '$scrollbar-inset': '1px',\n position: 'absolute',\n bottom: '$scrollbar-inset',\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n },\n});\n\nexport type ScrollbarType = 'default' | 'thin' | 'tiny' | 'none';\n\nexport interface CubeLayoutContentProps extends BaseProps, ContainerStyleProps {\n /** Scrollbar style: 'default' | 'thin' | 'tiny' | 'none' */\n scrollbar?: ScrollbarType;\n children?: ReactNode;\n /** Additional modifiers to apply */\n mods?: Mods;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\nfunction LayoutContent(\n props: CubeLayoutContentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n scrollbar = 'thin',\n styles,\n mods: externalMods,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n const innerStyles = extractStyles(otherProps, INNER_STYLES);\n const internalInnerRef = useRef<HTMLDivElement>(null);\n const combinedInnerRef = useCombinedRefs(innerRefProp, internalInnerRef);\n const combinedRef = useCombinedRefs(ref);\n const isTinyScrollbar = scrollbar === 'tiny';\n const { hoverProps, isHovered } = useHover({});\n\n const {\n handleVTokens,\n handleHTokens,\n hasOverflowY,\n hasOverflowX,\n isScrolling,\n } = useTinyScrollbar(internalInnerRef, isTinyScrollbar);\n\n const scrollbarTokens = isTinyScrollbar\n ? { ...handleVTokens, ...handleHTokens }\n : undefined;\n\n const mods = {\n ...externalMods,\n scrollbar,\n hovered: isHovered,\n scrolling: isScrolling,\n };\n\n // Merge styles: outer styles to root, inner styles to Inner element\n const finalStyles = mergeStyles(\n styles,\n outerStyles,\n // oxlint-disable-next-line tasty/no-runtime-styles-mutation -- forwards the consumer's `innerStyles` to `Inner`\n innerStyles ? { Inner: innerStyles } : null,\n );\n\n return (\n <ContentElement\n ref={combinedRef}\n {...filterBaseProps(otherProps, { eventProps: true })}\n {...hoverProps}\n mods={mods}\n styles={finalStyles}\n tokens={scrollbarTokens}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n {isTinyScrollbar && hasOverflowY && <div data-element=\"ScrollbarV\" />}\n {isTinyScrollbar && hasOverflowX && <div data-element=\"ScrollbarH\" />}\n </ContentElement>\n );\n}\n\nconst _LayoutContent = forwardRef(LayoutContent);\n\n_LayoutContent.displayName = 'Layout.Content';\n\nexport { _LayoutContent as LayoutContent };\n"],"mappings":";;;;;;;;;;;AAyBA,MAAMkB,iBAAiBX,MAAM;CAC3BY,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,WAAW;EACXC,UAAU;EACVC,SAAS;EACTC,aAAa;EACbC,UAAU;EACVC,cAAc;EACdC,YAAY;EACZC,WAAW;EACXC,UAAU;EACVC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVC,WAAW;EACXC,QAAQ;GACN,IAAI;GACJ,gBAAgB;EAClB;EAEAC,OAAO;GACLC,GAAG;GACHb,SAAS;GACTc,MAAM;GACNC,SAAS;GACTN,UAAU;IACR,IAAI;IACJ,kBAAkB;GACpB;GACAJ,WAAW;GACXW,WAAW;IACT,IAAI;IACJ,kBAAkB;IAClB,mCAAmC;GACrC;GAEA,uBAAuB;EACzB;EAGAC,YAAY;GACVJ,GAAG;GAEH,oBAAoB;GACpBd,UAAU;GACVmB,OAAO;GACPC,KAAK;GACLC,OAAO;GACPZ,QAAQ;GACRa,QAAQ;GACRC,MAAM;GACNC,SAAS;IACP,IAAI;IACJ,0CAA0C;GAC5C;GACAC,YAAY;GACZC,eAAe;EACjB;EAEAC,YAAY;GACVb,GAAG;GAEH,oBAAoB;GACpBd,UAAU;GACV4B,QAAQ;GACRC,MAAM;GACNpB,QAAQ;GACRY,OAAO;GACPC,QAAQ;GACRC,MAAM;GACNC,SAAS;IACP,IAAI;IACJ,0CAA0C;GAC5C;GACAC,YAAY;GACZC,eAAe;EACjB;CACF;AACF,CAAC;AAgBD,SAAAW,cAAAC,OAAAC,KAAA;CAAA,MAAAzB,IAAA0B,EAAA,EAAA;CAIE,MAAA,EAAAR,UAAAf,WAAAwB,IAAA3C,QAAAmC,MAAAS,cAAAR,UAAAS,cAAAP,YAAA,GAAAQ,eAQIN;CANF,MAAArB,YAAAwB,OAAAI,KAAAA,IAAA,SAAAJ;CAOF,MAAAK,cAAoBtD,cAAcoD,YAAY7D,YAAY;CAC1D,MAAAgE,cAAoBvD,cAAcoD,YAAYhE,YAAY;CAC1D,MAAAoE,mBAAyB3D,OAAuB,IAAI;CACpD,MAAA4D,mBAAyB1D,gBAAgBoD,cAAcK,gBAAgB;CACvE,MAAAE,cAAoB3D,gBAAgBgD,GAAG;CACvC,MAAAY,kBAAwBlC,cAAc;CAAO,IAAAmC;CAAA,IAAAtC,EAAA,OAAAuC,OAAAC,IAAA,2BAAA,GAAA;EACFF,KAAA,CAAC;EAACtC,EAAA,KAAAsC;CAAA,OAAAA,KAAAtC,EAAA;CAA7C,MAAA,EAAAyC,YAAAC,cAAkClE,SAAS8D,EAAE;CAE7C,MAAA,EAAAK,eAAAC,eAAAC,cAAAC,cAAAC,gBAMIpE,iBAAiBuD,kBAAkBG,eAAe;CAAE,IAAAW;CAAA,IAAAhD,EAAA,OAAA4C,iBAAA5C,EAAA,OAAA2C,iBAAA3C,EAAA,OAAAqC,iBAAA;EAEhCW,KAAAX,kBAAA;GAAA,GACfM;GAAa,GAAKC;EACf,IAFYb,KAAAA;EAEX/B,EAAA,KAAA4C;EAAA5C,EAAA,KAAA2C;EAAA3C,EAAA,KAAAqC;EAAArC,EAAA,KAAAgD;CAAA,OAAAA,KAAAhD,EAAA;CAFb,MAAAiD,kBAAwBD;CAEV,IAAAE;CAAA,IAAAlD,EAAA,OAAA4B,gBAAA5B,EAAA,OAAA0C,aAAA1C,EAAA,OAAA+C,eAAA/C,EAAA,OAAAG,WAAA;EAED+C,KAAA;GAAA,GACRtB;GAAYzB;GAAAgD,SAENT;GAASU,WACPL;EACb;EAAC/C,EAAA,KAAA4B;EAAA5B,EAAA,KAAA0C;EAAA1C,EAAA,KAAA+C;EAAA/C,EAAA,KAAAG;EAAAH,EAAA,KAAAkD;CAAA,OAAAA,KAAAlD,EAAA;CALD,MAAAmB,OAAa+B;CAQb,MAAAG,cAAoBtF,YAClBiB,QACAgD,aAEAC,cAAA,EAAAlC,OAAuBkC,YAAmB,IAA1C,IACF;CAGG,MAAAqB,KAAAzE;CAEK,MAAA0E,KAAA1F,gBAAgBiE,YAAY,EAAA0B,YAAc,KAAK,CAAC;CAAC,IAAAC;CAAA,IAAAzD,EAAA,QAAAkB,UAAA;EAOnDuC,KAAA,oBAAC,oBAAD,EAAqBvC,SAAF,CAAA;EAAgClB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAyD;CAAA,OAAAA,KAAAzD,EAAA;CAAA,IAAA0D;CAAA,IAAA1D,EAAA,QAAAmC,oBAAAnC,EAAA,QAAAsB,cAAAtB,EAAA,QAAAyD,IAAA;EADrDC,KAAA,oBAAA,OAAA;GAAUvB,KAAAA;GAA+B,gBAAA;GAAO,GAAKb;GACnDmC,UAAAA;EACI,CAAA;EAAAzD,EAAA,MAAAmC;EAAAnC,EAAA,MAAAsB;EAAAtB,EAAA,MAAAyD;EAAAzD,EAAA,MAAA0D;CAAA,OAAAA,KAAA1D,EAAA;CAAA,IAAA2D;CAAA,IAAA3D,EAAA,QAAA6C,gBAAA7C,EAAA,QAAAqC,iBAAA;EACLsB,KAAAtB,mBAAAQ,gBAAmC,oBAAA,OAAA,EAAkB,gBAAA,aAAY,CAAA;EAAG7C,EAAA,MAAA6C;EAAA7C,EAAA,MAAAqC;EAAArC,EAAA,MAAA2D;CAAA,OAAAA,KAAA3D,EAAA;CAAA,IAAA4D;CAAA,IAAA5D,EAAA,QAAA8C,gBAAA9C,EAAA,QAAAqC,iBAAA;EACpEuB,KAAAvB,mBAAAS,gBAAmC,oBAAA,OAAA,EAAkB,gBAAA,aAAY,CAAA;EAAG9C,EAAA,MAAA8C;EAAA9C,EAAA,MAAAqC;EAAArC,EAAA,MAAA4D;CAAA,OAAAA,KAAA5D,EAAA;CAAA,IAAA6D;CAAA,IAAA7D,EAAA,QAAAsD,MAAAtD,EAAA,QAAAoC,eAAApC,EAAA,QAAAqD,eAAArD,EAAA,QAAAyC,cAAAzC,EAAA,QAAAmB,QAAAnB,EAAA,QAAAiD,mBAAAjD,EAAA,QAAAuD,MAAAvD,EAAA,QAAA0D,MAAA1D,EAAA,QAAA2D,MAAA3D,EAAA,QAAA4D,IAAA;EAZvEC,KAAA,qBAAC,IAAD;GACOzB,KAAAA;GAAW,GACZmB;GAAiD,GACjDd;GACEtB;GACEkC,QAAAA;GACAJ,QAAAA;GANV,UAAA;IAQES;IAGCC;IACAC;GAZY;;EAaE5D,EAAA,MAAAsD;EAAAtD,EAAA,MAAAoC;EAAApC,EAAA,MAAAqD;EAAArD,EAAA,MAAAyC;EAAAzC,EAAA,MAAAmB;EAAAnB,EAAA,MAAAiD;EAAAjD,EAAA,MAAAuD;EAAAvD,EAAA,MAAA0D;EAAA1D,EAAA,MAAA2D;EAAA3D,EAAA,MAAA4D;EAAA5D,EAAA,MAAA6D;CAAA,OAAAA,KAAA7D,EAAA;CAAA,OAbjB6D;AAaiB;AAIrB,MAAMC,iBAAiB1F,WAAWmD,aAAa;AAE/CuC,eAAeC,cAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { createContext, useContext, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { LayoutContent as _LayoutContent } from "./LayoutContent.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { LayoutNestedContext } from "./LayoutContext.js";
|
|
3
3
|
import { LayoutContent as _LayoutContent } from "./LayoutContent.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { LayoutContent as _LayoutContent } from "./LayoutContent.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { useAutoTooltip } from "../use-auto-tooltip.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { Button } from "../../actions/Button/Button.js";
|
|
@@ -48,7 +48,7 @@ const HeaderElement = tasty(_LayoutContent, {
|
|
|
48
48
|
display: "flex",
|
|
49
49
|
flow: "row nowrap",
|
|
50
50
|
placeItems: "center start",
|
|
51
|
-
gap: "
|
|
51
|
+
gap: "$item-gap",
|
|
52
52
|
preset: "t3 / strong",
|
|
53
53
|
color: "#dark-02"
|
|
54
54
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutHeader.js","names":["IconArrowLeft","tasty","ForwardedRef","forwardRef","Fragment","HTMLAttributes","ReactNode","useMemo","useRef","useI18n","SlashIcon","Button","Link","useAutoTooltip","CubeLayoutContentProps","LayoutContent","HeaderElement","as","qa","styles","container","border","flexShrink","flexGrow","height","Inner","$","display","gridTemplate","gap","placeContent","placeItems","padding","placeSelf","Back","gridArea","margin","Breadcrumbs","flow","preset","color","Title","lineHeight","overflow","textOverflow","whiteSpace","Suffix","Extra","width","Subtitle","CubeLayoutHeaderProps","title","level","suffix","extra","subtitle","breadcrumbs","Array","label","href","onBack","LayoutHeader","props","ref","_c","t","children","mods","otherProps","t0","t1","scrollbar","undefined","titleRef","t2","Symbol","for","targetRef","titleTooltip","t3","t4","tooltip","labelRef","renderWithTooltip","hasBreadcrumbs","length","t5","map","_temp","renderBreadcrumbs","T0","t10","t11","t12","t6","t7","t8","t9","renderTitle","tooltipProps","TitleTag","t13","t14","t15","t16","index","_LayoutHeader","displayName","LayoutContent","_c"],"sources":["../../../../src/components/content/Layout/LayoutHeader.tsx"],"sourcesContent":["import { IconArrowLeft } from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n Fragment,\n HTMLAttributes,\n ReactNode,\n useMemo,\n useRef,\n} from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { SlashIcon } from '../../../icons/SlashIcon';\nimport { Button } from '../../actions/Button/Button';\nimport { Link } from '../../actions/Link/Link';\nimport { useAutoTooltip } from '../use-auto-tooltip';\n\nimport { CubeLayoutContentProps, LayoutContent } from './LayoutContent';\n\nconst HeaderElement = tasty(LayoutContent, {\n as: 'header',\n qa: 'LayoutHeader',\n styles: {\n container: 'none',\n // Header always has bottom border (inherent style)\n border: 'bottom',\n flexShrink: 0,\n flexGrow: 0,\n height: 'min 6x',\n\n Inner: {\n $: '>',\n display: 'grid',\n gridTemplate: `\n \"breadcrumbs breadcrumbs breadcrumbs extra\" auto\n \"back title suffix extra\" max-content\n \".. subtitle subtitle extra\" auto\n / auto minmax(0, max-content) 1fr minmax(0, auto)\n `,\n gap: 0,\n placeContent: 'center stretch',\n placeItems: 'center stretch',\n padding: '0 ($content-padding, 1x)',\n placeSelf: 'center stretch',\n },\n\n Back: {\n $: '> Inner >',\n gridArea: 'back',\n display: 'flex',\n placeItems: 'center',\n margin: '.5x right',\n },\n\n Breadcrumbs: {\n $: '> Inner >',\n gridArea: 'breadcrumbs',\n display: 'flex',\n flow: 'row nowrap',\n placeItems: 'center start',\n gap: '1bw',\n preset: 't3 / strong',\n color: '#dark-02',\n },\n\n Title: {\n $: '> Inner >',\n gridArea: 'title',\n preset: {\n '': 'h3',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n lineHeight: 'normal',\n color: '#dark',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n\n Suffix: {\n $: '> Inner >',\n gridArea: 'suffix',\n display: 'flex',\n placeItems: 'center',\n },\n\n Extra: {\n $: '> Inner >',\n gridArea: 'extra',\n display: 'flex',\n placeItems: 'center',\n placeSelf: 'center',\n gap: '1x',\n width: 'max 100%',\n },\n\n Subtitle: {\n $: '> Inner >',\n gridArea: 'subtitle',\n preset: 't3',\n color: '#dark-02',\n },\n },\n});\n\nexport interface CubeLayoutHeaderProps extends CubeLayoutContentProps {\n /** Page/section title */\n title?: ReactNode;\n /** Title heading level (1-6) */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Content next to the title */\n suffix?: ReactNode;\n /** Content on the right side */\n extra?: ReactNode;\n /** Text below the title */\n subtitle?: ReactNode;\n /**\n * Navigation breadcrumbs (max 3 items recommended).\n * Uses Link component which integrates with the navigation provider.\n */\n breadcrumbs?: Array<[label: string, href: string]>;\n /** Callback for the back button. When provided, a back arrow button is rendered to the left of the title. */\n onBack?: () => void;\n}\n\nfunction LayoutHeader(\n props: CubeLayoutHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n const {\n title,\n level = 3,\n suffix,\n extra,\n subtitle,\n breadcrumbs,\n onBack,\n scrollbar = 'tiny',\n children,\n mods,\n ...otherProps\n } = props;\n\n // Use auto tooltip for title overflow detection. The heading is what clips\n // (`overflow: hidden` + ellipsis), so it is both the element measured and\n // the tooltip's anchor — one stable ref for the two, rather than a ref merged\n // afresh on every render, which would re-attach the measuring ref (and\n // rebuild its ResizeObserver) each time the header rendered.\n const titleRef = useRef<HTMLElement>(null!);\n const titleTooltip = useMemo(() => ({ targetRef: titleRef }), []);\n const { labelRef, renderWithTooltip } = useAutoTooltip({\n tooltip: titleTooltip,\n children: typeof title === 'string' ? title : undefined,\n labelRef: titleRef,\n });\n\n const hasBreadcrumbs = breadcrumbs && breadcrumbs.length > 0;\n\n const renderBreadcrumbs = () => {\n if (!hasBreadcrumbs) return null;\n\n return (\n <div data-element=\"Breadcrumbs\">\n {breadcrumbs.map(([label, href], index) => (\n <Fragment key={href}>\n <Link to={href}>{label}</Link>\n <SlashIcon />\n </Fragment>\n ))}\n </div>\n );\n };\n\n const renderTitle = (tooltipProps?: HTMLAttributes<HTMLElement>) => {\n if (!title) return null;\n\n const TitleTag = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n // Measured on the heading itself: an inline wrapper around the text\n // reports a `clientWidth` of 0 and could never read as truncated.\n return (\n <TitleTag\n ref={labelRef}\n data-element=\"Title\"\n data-level={level}\n {...tooltipProps}\n >\n {title}\n </TitleTag>\n );\n };\n\n return (\n <HeaderElement\n {...otherProps}\n ref={ref}\n mods={{ ...mods, level }}\n scrollbar={scrollbar}\n >\n {renderBreadcrumbs()}\n {onBack && (\n <div data-element=\"Back\">\n <Button\n type=\"clear\"\n icon={<IconArrowLeft />}\n aria-label={t('layout.goBack', 'Go back')}\n onPress={onBack}\n />\n </div>\n )}\n {renderWithTooltip(renderTitle, 'bottom')}\n {suffix && <div data-element=\"Suffix\">{suffix}</div>}\n {extra && <div data-element=\"Extra\">{extra}</div>}\n {subtitle && <div data-element=\"Subtitle\">{subtitle}</div>}\n {children}\n </HeaderElement>\n );\n}\n\nconst _LayoutHeader = forwardRef(LayoutHeader);\n\n_LayoutHeader.displayName = 'Layout.Header';\n\nexport { _LayoutHeader as LayoutHeader };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LayoutHeader.js","names":["IconArrowLeft","tasty","ForwardedRef","forwardRef","Fragment","HTMLAttributes","ReactNode","useMemo","useRef","useI18n","SlashIcon","Button","Link","useAutoTooltip","CubeLayoutContentProps","LayoutContent","HeaderElement","as","qa","styles","container","border","flexShrink","flexGrow","height","Inner","$","display","gridTemplate","gap","placeContent","placeItems","padding","placeSelf","Back","gridArea","margin","Breadcrumbs","flow","preset","color","Title","lineHeight","overflow","textOverflow","whiteSpace","Suffix","Extra","width","Subtitle","CubeLayoutHeaderProps","title","level","suffix","extra","subtitle","breadcrumbs","Array","label","href","onBack","LayoutHeader","props","ref","_c","t","children","mods","otherProps","t0","t1","scrollbar","undefined","titleRef","t2","Symbol","for","targetRef","titleTooltip","t3","t4","tooltip","labelRef","renderWithTooltip","hasBreadcrumbs","length","t5","map","_temp","renderBreadcrumbs","T0","t10","t11","t12","t6","t7","t8","t9","renderTitle","tooltipProps","TitleTag","t13","t14","t15","t16","index","_LayoutHeader","displayName","LayoutContent","_c"],"sources":["../../../../src/components/content/Layout/LayoutHeader.tsx"],"sourcesContent":["import { IconArrowLeft } from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n Fragment,\n HTMLAttributes,\n ReactNode,\n useMemo,\n useRef,\n} from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { SlashIcon } from '../../../icons/SlashIcon';\nimport { Button } from '../../actions/Button/Button';\nimport { Link } from '../../actions/Link/Link';\nimport { useAutoTooltip } from '../use-auto-tooltip';\n\nimport { CubeLayoutContentProps, LayoutContent } from './LayoutContent';\n\nconst HeaderElement = tasty(LayoutContent, {\n as: 'header',\n qa: 'LayoutHeader',\n styles: {\n container: 'none',\n // Header always has bottom border (inherent style)\n border: 'bottom',\n flexShrink: 0,\n flexGrow: 0,\n height: 'min 6x',\n\n Inner: {\n $: '>',\n display: 'grid',\n gridTemplate: `\n \"breadcrumbs breadcrumbs breadcrumbs extra\" auto\n \"back title suffix extra\" max-content\n \".. subtitle subtitle extra\" auto\n / auto minmax(0, max-content) 1fr minmax(0, auto)\n `,\n gap: 0,\n placeContent: 'center stretch',\n placeItems: 'center stretch',\n padding: '0 ($content-padding, 1x)',\n placeSelf: 'center stretch',\n },\n\n Back: {\n $: '> Inner >',\n gridArea: 'back',\n display: 'flex',\n placeItems: 'center',\n margin: '.5x right',\n },\n\n Breadcrumbs: {\n $: '> Inner >',\n gridArea: 'breadcrumbs',\n display: 'flex',\n flow: 'row nowrap',\n placeItems: 'center start',\n gap: '$item-gap',\n preset: 't3 / strong',\n color: '#dark-02',\n },\n\n Title: {\n $: '> Inner >',\n gridArea: 'title',\n preset: {\n '': 'h3',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n lineHeight: 'normal',\n color: '#dark',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n\n Suffix: {\n $: '> Inner >',\n gridArea: 'suffix',\n display: 'flex',\n placeItems: 'center',\n },\n\n Extra: {\n $: '> Inner >',\n gridArea: 'extra',\n display: 'flex',\n placeItems: 'center',\n placeSelf: 'center',\n gap: '1x',\n width: 'max 100%',\n },\n\n Subtitle: {\n $: '> Inner >',\n gridArea: 'subtitle',\n preset: 't3',\n color: '#dark-02',\n },\n },\n});\n\nexport interface CubeLayoutHeaderProps extends CubeLayoutContentProps {\n /** Page/section title */\n title?: ReactNode;\n /** Title heading level (1-6) */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Content next to the title */\n suffix?: ReactNode;\n /** Content on the right side */\n extra?: ReactNode;\n /** Text below the title */\n subtitle?: ReactNode;\n /**\n * Navigation breadcrumbs (max 3 items recommended).\n * Uses Link component which integrates with the navigation provider.\n */\n breadcrumbs?: Array<[label: string, href: string]>;\n /** Callback for the back button. When provided, a back arrow button is rendered to the left of the title. */\n onBack?: () => void;\n}\n\nfunction LayoutHeader(\n props: CubeLayoutHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { t } = useI18n();\n\n const {\n title,\n level = 3,\n suffix,\n extra,\n subtitle,\n breadcrumbs,\n onBack,\n scrollbar = 'tiny',\n children,\n mods,\n ...otherProps\n } = props;\n\n // Use auto tooltip for title overflow detection. The heading is what clips\n // (`overflow: hidden` + ellipsis), so it is both the element measured and\n // the tooltip's anchor — one stable ref for the two, rather than a ref merged\n // afresh on every render, which would re-attach the measuring ref (and\n // rebuild its ResizeObserver) each time the header rendered.\n const titleRef = useRef<HTMLElement>(null!);\n const titleTooltip = useMemo(() => ({ targetRef: titleRef }), []);\n const { labelRef, renderWithTooltip } = useAutoTooltip({\n tooltip: titleTooltip,\n children: typeof title === 'string' ? title : undefined,\n labelRef: titleRef,\n });\n\n const hasBreadcrumbs = breadcrumbs && breadcrumbs.length > 0;\n\n const renderBreadcrumbs = () => {\n if (!hasBreadcrumbs) return null;\n\n return (\n <div data-element=\"Breadcrumbs\">\n {breadcrumbs.map(([label, href], index) => (\n <Fragment key={href}>\n <Link to={href}>{label}</Link>\n <SlashIcon />\n </Fragment>\n ))}\n </div>\n );\n };\n\n const renderTitle = (tooltipProps?: HTMLAttributes<HTMLElement>) => {\n if (!title) return null;\n\n const TitleTag = `h${level}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n // Measured on the heading itself: an inline wrapper around the text\n // reports a `clientWidth` of 0 and could never read as truncated.\n return (\n <TitleTag\n ref={labelRef}\n data-element=\"Title\"\n data-level={level}\n {...tooltipProps}\n >\n {title}\n </TitleTag>\n );\n };\n\n return (\n <HeaderElement\n {...otherProps}\n ref={ref}\n mods={{ ...mods, level }}\n scrollbar={scrollbar}\n >\n {renderBreadcrumbs()}\n {onBack && (\n <div data-element=\"Back\">\n <Button\n type=\"clear\"\n icon={<IconArrowLeft />}\n aria-label={t('layout.goBack', 'Go back')}\n onPress={onBack}\n />\n </div>\n )}\n {renderWithTooltip(renderTitle, 'bottom')}\n {suffix && <div data-element=\"Suffix\">{suffix}</div>}\n {extra && <div data-element=\"Extra\">{extra}</div>}\n {subtitle && <div data-element=\"Subtitle\">{subtitle}</div>}\n {children}\n </HeaderElement>\n );\n}\n\nconst _LayoutHeader = forwardRef(LayoutHeader);\n\n_LayoutHeader.displayName = 'Layout.Header';\n\nexport { _LayoutHeader as LayoutHeader };\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -114,10 +114,11 @@ const PaneElement = tasty({
|
|
|
114
114
|
"$layout-border-size": "0"
|
|
115
115
|
},
|
|
116
116
|
ScrollbarV: {
|
|
117
|
+
"$scrollbar-inset": "1px",
|
|
117
118
|
position: "absolute",
|
|
118
119
|
right: {
|
|
119
|
-
"": "
|
|
120
|
-
"edge=right": `
|
|
120
|
+
"": "$scrollbar-inset",
|
|
121
|
+
"edge=right": `(${HANDLER_RESERVED}px + $scrollbar-inset)`
|
|
121
122
|
},
|
|
122
123
|
top: "$scrollbar-v-top",
|
|
123
124
|
width: "1ow",
|
|
@@ -133,10 +134,11 @@ const PaneElement = tasty({
|
|
|
133
134
|
},
|
|
134
135
|
ScrollbarH: {
|
|
135
136
|
$: ">",
|
|
137
|
+
"$scrollbar-inset": "1px",
|
|
136
138
|
position: "absolute",
|
|
137
139
|
bottom: {
|
|
138
|
-
"": "
|
|
139
|
-
"edge=bottom": `
|
|
140
|
+
"": "$scrollbar-inset",
|
|
141
|
+
"edge=bottom": `(${HANDLER_RESERVED}px + $scrollbar-inset)`
|
|
140
142
|
},
|
|
141
143
|
left: "$scrollbar-h-left",
|
|
142
144
|
height: "1ow",
|
|
@@ -187,27 +189,29 @@ const PaneElement = tasty({
|
|
|
187
189
|
transition: "theme"
|
|
188
190
|
},
|
|
189
191
|
Drag: {
|
|
192
|
+
"$grip-size": "3px",
|
|
193
|
+
"$dot-gap": "2px",
|
|
190
194
|
display: "grid",
|
|
191
|
-
gap: "
|
|
195
|
+
gap: "$dot-gap",
|
|
192
196
|
border: 0,
|
|
193
197
|
flow: {
|
|
194
198
|
"": "row",
|
|
195
199
|
"edge=right": "column"
|
|
196
200
|
},
|
|
197
201
|
gridColumns: {
|
|
198
|
-
"": "
|
|
202
|
+
"": "repeat(5, $grip-size)",
|
|
199
203
|
"edge=right": "auto"
|
|
200
204
|
},
|
|
201
205
|
gridRows: {
|
|
202
206
|
"": "auto",
|
|
203
|
-
"edge=right": "
|
|
207
|
+
"edge=right": "repeat(5, $grip-size)"
|
|
204
208
|
},
|
|
205
209
|
width: {
|
|
206
210
|
"": "auto",
|
|
207
|
-
"edge=right": "
|
|
211
|
+
"edge=right": "$grip-size"
|
|
208
212
|
},
|
|
209
213
|
height: {
|
|
210
|
-
"": "
|
|
214
|
+
"": "$grip-size",
|
|
211
215
|
"edge=right": "auto"
|
|
212
216
|
},
|
|
213
217
|
position: "absolute",
|
|
@@ -218,9 +222,9 @@ const PaneElement = tasty({
|
|
|
218
222
|
radius: "round",
|
|
219
223
|
outline: {
|
|
220
224
|
"": "0",
|
|
221
|
-
"focused | drag": "
|
|
225
|
+
"focused | drag": "$ring-width #primary-text"
|
|
222
226
|
},
|
|
223
|
-
outlineOffset:
|
|
227
|
+
outlineOffset: "$outline-offset"
|
|
224
228
|
},
|
|
225
229
|
DragPart: {
|
|
226
230
|
radius: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutPane.js","names":["BaseProps","ContainerStyleProps","filterBaseProps","INNER_STYLES","mergeStyles","OUTER_STYLES","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useCallback","useEffect","useEffectEvent","useRef","useState","useFocusRing","useHover","useMove","useDebouncedValue","useI18n","mergeProps","useCombinedRefs","extractStyles","useTinyScrollbar","ScrollbarType","LayoutContextReset","clampSize","HANDLER_WIDTH","HANDLER_RESERVED","mountedPanes","WeakMap","Element","isHorizontal","adoptSize","drawn","setPaneSize","pane","HTMLElement","size","style","setProperty","getDrawnSize","element","getClientRects","length","NaN","getComputedStyle","parseFloat","width","height","givesWay","flexShrink","getOverflow","container","rect","getBoundingClientRect","scale","offsetWidth","offsetHeight","available","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","used","count","item","Array","from","children","itemStyle","display","position","itemRect","marginLeft","marginRight","marginTop","marginBottom","gap","columnGap","rowGap","Math","max","getPanesBeside","parentElement","flexDirection","startsWith","flexWrap","HTMLCollectionOf","filter","get","Number","isFinite","PaneMove","target","start","ownSize","pointerType","beside","besideSizes","held","maxOverflow","undoMove","move","forEach","index","removeProperty","PaneElement","as","qa","styles","gridColumns","gridRows","placeContent","placeItems","placeSelf","flexGrow","boxSizing","Inner","$","flow","padding","overflow","scrollbar","ScrollbarV","right","top","radius","fill","opacity","transition","pointerEvents","ScrollbarH","bottom","left","ResizeHandler","cursor","disabled","outline","Drag","border","transform","outlineOffset","DragPart","ResizeEdge","CubeLayoutPaneProps","resizeEdge","isResizable","defaultSize","minSize","maxSize","onSizeChange","innerRef","HTMLDivElement","innerProps","PaneResizeHandlerProps","edge","isDisabled","moveProps","ReturnType","onDoubleClick","onHoverChange","isHovered","onFocusChange","isFocused","PaneResizeHandler","props","_c","t","t0","hoverProps","focusProps","isFocusVisible","t1","t2","t3","tabIndex","undefined","role","t4","t5","LayoutPane","ref","providedSize","mods","innerRefProp","otherProps","combinedRef","internalInnerRef","combinedInnerRef","prevProvidedSizeRef","isDragging","setIsDragging","isHandlerHovered","setIsHandlerHovered","isHandlerFocused","setIsHandlerFocused","debouncedHandlerHovered","initialSize","setSize","outerStyles","innerStyles","isTinyScrollbar","Symbol","for","handleVTokens","handleHTokens","hasOverflowY","hasOverflowX","isScrolling","t6","value","clampValue","moveRef","t7","rounded","round","abs","getPropertyValue","map","_temp","side","paneStart","sizes","item_0","item_1","item_2","_temp2","beginMove","t8","move_0","finalSize","pane_0","current","sizes_0","item_4","item_5","index_0","endMove","t9","onMoveStart","onMove","e","delta","step","shiftKey","rawDelta","deltaX","deltaY","pane_1","move_1","next","excess","onMoveEnd","e_0","move_2","t10","drawn_0","t11","pane_2","set","drawn_1","delete","t12","t13","t14","t15","resetSize","parseInt","clampedSize","handleResetSize","t16","scrollbarTokens","t17","t18","hovered","scrolling","handlerHovered","focused","drag","paneMods","finalStyles","t19","t20","t21","paneTokens","T0","t22","eventProps","t23","t24","t25","t26","t27","t28","item_3","_LayoutPane","displayName","_c","mergeProps"],"sources":["../../../../src/components/content/Layout/LayoutPane.tsx"],"sourcesContent":["import {\n BaseProps,\n ContainerStyleProps,\n filterBaseProps,\n INNER_STYLES,\n mergeStyles,\n OUTER_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useCallback,\n useEffect,\n useEffectEvent,\n useRef,\n useState,\n} from 'react';\nimport { useFocusRing, useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { useTinyScrollbar } from './hooks/useTinyScrollbar';\nimport { ScrollbarType } from './LayoutContent';\nimport { LayoutContextReset } from './LayoutContext';\nimport { clampSize } from './utils';\n\n// Handler dimensions\nconst HANDLER_WIDTH = 9; // Interactive area\nconst HANDLER_RESERVED = 5; // Space reserved in Inner padding\n\n/** Mounted panes by element: the axis each resizes along, and how it takes a size. */\nconst mountedPanes = new WeakMap<\n Element,\n { isHorizontal: boolean; adoptSize: (drawn: number) => void }\n>();\n\nfunction setPaneSize(pane: HTMLElement, size: number) {\n pane.style.setProperty('--pane-size', `${size}px`);\n}\n\n/** The size an element is drawn at, or `NaN` when it is not drawn. */\nfunction getDrawnSize(element: HTMLElement, isHorizontal: boolean) {\n // Hidden, an element reports the size it is set to.\n if (!element.getClientRects().length) return NaN;\n\n const style = getComputedStyle(element);\n\n return parseFloat(isHorizontal ? style.width : style.height);\n}\n\nfunction givesWay(element: Element) {\n return parseFloat(getComputedStyle(element).flexShrink) > 0;\n}\n\n/** How far a flex container's items run past its content box. */\nfunction getOverflow(container: HTMLElement, isHorizontal: boolean) {\n const style = getComputedStyle(container);\n const rect = container.getBoundingClientRect();\n // Items are measured as drawn, which a zoomed or scaled ancestor makes\n // differ from the container's own layout size.\n const scale =\n (isHorizontal\n ? rect.width / container.offsetWidth\n : rect.height / container.offsetHeight) || 1;\n const available = isHorizontal\n ? container.clientWidth -\n parseFloat(style.paddingLeft) -\n parseFloat(style.paddingRight)\n : container.clientHeight -\n parseFloat(style.paddingTop) -\n parseFloat(style.paddingBottom);\n let used = 0;\n let count = 0;\n\n for (const item of Array.from(container.children)) {\n const itemStyle = getComputedStyle(item);\n\n if (\n itemStyle.display === 'none' ||\n itemStyle.position === 'absolute' ||\n itemStyle.position === 'fixed'\n ) {\n continue;\n }\n\n const itemRect = item.getBoundingClientRect();\n\n used += isHorizontal\n ? itemRect.width / scale +\n parseFloat(itemStyle.marginLeft) +\n parseFloat(itemStyle.marginRight)\n : itemRect.height / scale +\n parseFloat(itemStyle.marginTop) +\n parseFloat(itemStyle.marginBottom);\n count += 1;\n }\n\n const gap = parseFloat(isHorizontal ? style.columnGap : style.rowGap) || 0;\n\n return used + gap * Math.max(count - 1, 0) - available;\n}\n\n/**\n * The other drawn panes that give way along the same axis, when this one gives\n * way in a non-wrapping flex container along it.\n */\nfunction getPanesBeside(pane: HTMLElement, isHorizontal: boolean) {\n const container = pane.parentElement;\n\n if (!container || !givesWay(pane)) return [];\n\n const style = getComputedStyle(container);\n\n if (\n (style.display !== 'flex' && style.display !== 'inline-flex') ||\n style.flexDirection.startsWith('row') !== isHorizontal ||\n style.flexWrap !== 'nowrap'\n ) {\n return [];\n }\n\n return Array.from(container.children as HTMLCollectionOf<HTMLElement>).filter(\n (item) =>\n item !== pane &&\n mountedPanes.get(item)?.isHorizontal === isHorizontal &&\n givesWay(item) &&\n Number.isFinite(getDrawnSize(item, isHorizontal)),\n );\n}\n\ninterface PaneMove {\n /** Where the pointer or keys ask the pane to be. */\n target: number;\n /** The size so far, ahead of the rendered one. */\n size: number;\n /** The size the move begins at. */\n start: number;\n /** The pane's own size before the move. */\n ownSize: string;\n /** What began the move: a pointer or the keyboard. */\n pointerType: string;\n /** The flex container the pane gives way in beside other panes, or `null`. */\n container: HTMLElement | null;\n /** The panes beside it, sized as drawn for the move. */\n beside: HTMLElement[];\n /** Their own sizes before the move. */\n besideSizes: string[];\n /** The panes that hold their size until the move ends. */\n held: HTMLElement[];\n /** How far the container's items may run past it, as they did at the start. */\n maxOverflow: number;\n}\n\n/**\n * Gives the panes beside a move back their own sizes and lets go of every\n * held pane.\n */\nfunction undoMove(move: PaneMove) {\n move.beside.forEach((item, index) =>\n item.style.setProperty('--pane-size', move.besideSizes[index]),\n );\n move.held.forEach((item) => item.style.removeProperty('flex-shrink'));\n}\n\nconst PaneElement = tasty({\n as: 'div',\n qa: 'LayoutPane',\n styles: {\n container: 'pane / inline-size',\n position: 'relative',\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n placeSelf: 'stretch',\n // Holds its size. With `flexShrink={1}` it gives way down to its minimum\n // when a flex container runs short.\n flexShrink: 0,\n flexGrow: 0,\n // Size is set via CSS custom property for performance during drag\n width: {\n '': 'auto',\n 'edge=right': '($pane-min-size, 2x) $pane-size $pane-size',\n },\n height: {\n '': '($pane-min-size, 2x) $pane-size $pane-size',\n 'edge=right': 'auto',\n },\n boxSizing: 'content-box',\n\n Inner: {\n $: '>',\n display: 'flex',\n flow: 'column',\n padding: '($content-padding, 1x)',\n // Reserve space for handler on resize edge\n paddingRight: {\n '': '($content-padding, 1x)',\n 'edge=right': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n paddingBottom: {\n '': '($content-padding, 1x)',\n 'edge=bottom': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n overflow: {\n '': 'auto',\n 'scrollbar=none': 'clip',\n },\n placeSelf: 'stretch',\n scrollbar: {\n '': 'thin',\n 'scrollbar=tiny | scrollbar=none': 'none',\n },\n\n '$layout-border-size': '0',\n },\n\n // Custom scrollbar handles (when scrollbar=\"tiny\")\n ScrollbarV: {\n position: 'absolute',\n right: {\n '': '1px',\n 'edge=right': `${HANDLER_RESERVED + 1}px`,\n },\n top: '$scrollbar-v-top',\n width: '1ow',\n height: '$scrollbar-v-height',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n\n ScrollbarH: {\n $: '>',\n position: 'absolute',\n bottom: {\n '': '1px',\n 'edge=bottom': `${HANDLER_RESERVED + 1}px`,\n },\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n\n // Compact resize handler - only drag dots\n ResizeHandler: {\n position: 'absolute',\n // Size: 9px interactive area\n width: {\n '': '100%',\n 'edge=right': `${HANDLER_WIDTH}px`,\n },\n height: {\n '': `${HANDLER_WIDTH}px`,\n 'edge=right': '100%',\n },\n // Position at edge, centered on the reserved space boundary\n right: {\n '': 'initial',\n 'edge=right': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n },\n bottom: {\n '': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n 'edge=right': 'initial',\n },\n top: {\n '': 'initial',\n 'edge=right': 0,\n },\n left: {\n '': 0,\n 'edge=right': 'initial',\n },\n cursor: {\n '': 'row-resize',\n 'edge=right': 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n outline: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n border: 0,\n flow: {\n '': 'row',\n 'edge=right': 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n 'edge=right': 'auto',\n },\n gridRows: {\n '': 'auto',\n 'edge=right': '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n 'edge=right': '3px',\n },\n height: {\n '': '3px',\n 'edge=right': 'auto',\n },\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n transition: 'theme',\n radius: 'round',\n outline: {\n '': '0',\n 'focused | drag': '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'handlerHovered | drag | focused': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\nexport type ResizeEdge = 'right' | 'bottom';\n\nexport interface CubeLayoutPaneProps extends BaseProps, ContainerStyleProps {\n /** Edge where resize handler appears */\n resizeEdge?: ResizeEdge;\n /** Enable resize functionality */\n isResizable?: boolean;\n /** Controlled size (width for right edge, height for bottom edge) */\n size?: number | string;\n /** Default size for uncontrolled state */\n defaultSize?: number | string;\n /** Minimum size constraint */\n minSize?: number | string;\n /** Maximum size constraint */\n maxSize?: number | string;\n /**\n * Size change callback. With `flexShrink={1}`, also called when another\n * such pane beside it is resized and this pane keeps the size it is drawn\n * at.\n */\n onSizeChange?: (size: number) => void;\n /** Scrollbar style */\n scrollbar?: ScrollbarType;\n /** Custom styles */\n styles?: Styles;\n children?: ReactNode;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\ninterface PaneResizeHandlerProps {\n edge: ResizeEdge;\n isDisabled?: boolean;\n moveProps: ReturnType<typeof useMove>['moveProps'];\n onDoubleClick?: () => void;\n onHoverChange?: (isHovered: boolean) => void;\n onFocusChange?: (isFocused: boolean) => void;\n}\n\nfunction PaneResizeHandler(props: PaneResizeHandlerProps) {\n const {\n edge,\n isDisabled,\n moveProps,\n onDoubleClick,\n onHoverChange,\n onFocusChange,\n } = props;\n const { t } = useI18n();\n const { hoverProps, isHovered } = useHover({\n onHoverChange,\n });\n const { focusProps, isFocusVisible } = useFocusRing();\n const isHorizontal = edge === 'right';\n\n // Notify parent of focus changes\n useEffect(() => {\n onFocusChange?.(isFocusVisible);\n }, [isFocusVisible, onFocusChange]);\n\n return (\n <div\n data-element=\"ResizeHandler\"\n {...mergeProps(hoverProps, focusProps, isDisabled ? {} : moveProps, {\n tabIndex: isDisabled ? undefined : 0,\n role: 'separator',\n 'aria-orientation': isHorizontal ? 'vertical' : 'horizontal',\n 'aria-label':\n edge === 'right'\n ? t('layout.resizePaneRight', 'Resize pane right')\n : t('layout.resizePaneBottom', 'Resize pane bottom'),\n onDoubleClick: isDisabled ? undefined : onDoubleClick,\n })}\n >\n {!isDisabled && (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction LayoutPane(\n props: CubeLayoutPaneProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n resizeEdge = 'right',\n isResizable = false,\n size: providedSize,\n defaultSize = 200,\n minSize,\n maxSize,\n onSizeChange,\n scrollbar = 'thin',\n styles,\n mods,\n children,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n\n const combinedRef = useCombinedRefs(ref);\n const internalInnerRef = useRef<HTMLDivElement>(null);\n const combinedInnerRef = useCombinedRefs(innerRefProp, internalInnerRef);\n const prevProvidedSizeRef = useRef(providedSize);\n const isHorizontal = resizeEdge === 'right';\n\n // Resize state\n const [isDragging, setIsDragging] = useState(false);\n const [isHandlerHovered, setIsHandlerHovered] = useState(false);\n const [isHandlerFocused, setIsHandlerFocused] = useState(false);\n const debouncedHandlerHovered = useDebouncedValue(isHandlerHovered, 150);\n const [size, setSize] = useState<number>(() => {\n const initialSize =\n typeof providedSize === 'number'\n ? providedSize\n : typeof defaultSize === 'number'\n ? defaultSize\n : 200;\n\n return clampSize(initialSize, minSize, maxSize);\n });\n\n // Extract outer wrapper styles and inner content styles\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n const innerStyles = extractStyles(otherProps, INNER_STYLES);\n\n const isTinyScrollbar = scrollbar === 'tiny';\n const { hoverProps, isHovered } = useHover({});\n\n const {\n handleVTokens,\n handleHTokens,\n hasOverflowY,\n hasOverflowX,\n isScrolling,\n } = useTinyScrollbar(internalInnerRef, isTinyScrollbar);\n\n // Clamp size to min/max constraints\n const clampValue = useCallback(\n (value: number) => clampSize(value, minSize, maxSize),\n [minSize, maxSize],\n );\n\n const moveRef = useRef<PaneMove | null>(null);\n\n const beginMove = (pane: HTMLElement, pointerType: string): PaneMove => {\n const drawn = getDrawnSize(pane, isHorizontal);\n const beside = getPanesBeside(pane, isHorizontal);\n const rounded = Math.round(drawn);\n // Flex shrinking or a CSS minimum can draw the pane at another size than\n // `size`; resize from the one on screen, or the first moves do nothing.\n // Beside other panes the move begins exactly there, so nothing shifts.\n const start = beside.length\n ? drawn\n : Math.abs(rounded - size) >= 1\n ? rounded\n : size;\n const move: PaneMove = {\n target: start,\n size: start,\n start,\n ownSize: pane.style.getPropertyValue('--pane-size'),\n pointerType,\n container: beside.length ? pane.parentElement : null,\n beside,\n besideSizes: beside.map((item) =>\n item.style.getPropertyValue('--pane-size'),\n ),\n held: [],\n maxOverflow: 0,\n };\n\n // Beside other panes that give way, this one would hand them part of every\n // move: flex shares the room by size, and theirs are larger than drawn. So\n // they take the sizes they are drawn at, and this pane holds its size until\n // the move ends, as do the panes before its grip: the room comes from\n // beyond the grip. Keyboard moves start and end within one event, so this\n // goes to the DOM, not through a render. Every size is read before one is\n // written, as each write reflows the rest.\n if (move.container) {\n const side = isHorizontal ? 'left' : 'top';\n const paneStart = pane.getBoundingClientRect()[side];\n const sizes = beside.map((item) => getDrawnSize(item, isHorizontal));\n\n move.maxOverflow = Math.max(getOverflow(move.container, isHorizontal), 0);\n move.held = [\n pane,\n ...beside.filter(\n (item) => item.getBoundingClientRect()[side] < paneStart,\n ),\n ];\n beside.forEach((item, index) => setPaneSize(item, sizes[index]));\n move.held.forEach((item) => item.style.setProperty('flex-shrink', '0'));\n }\n\n return move;\n };\n\n const endMove = (move: PaneMove) => {\n // Round to integer when the move ends and notify parent\n const finalSize = Math.round(clampValue(move.size));\n const pane = combinedRef.current;\n\n if (move.container) {\n // A move that ends where it began, as a key pressed at a stop does,\n // leaves every pane as it found them.\n if (finalSize === Math.round(move.start)) {\n undoMove(move);\n pane.style.setProperty('--pane-size', move.ownSize);\n setSize(parseFloat(move.ownSize));\n\n return;\n }\n\n setPaneSize(pane, finalSize);\n\n // The panes beside it keep the sizes they are left at, read while the\n // panes still hold, before one is written. A pane left at its own size,\n // or hidden meanwhile, keeps its own.\n const sizes = move.beside.map((item) =>\n Math.round(getDrawnSize(item, isHorizontal)),\n );\n\n undoMove(move);\n move.beside.forEach((item, index) => {\n if (\n Number.isFinite(sizes[index]) &&\n sizes[index] !== Math.round(parseFloat(move.besideSizes[index]))\n ) {\n mountedPanes.get(item)?.adoptSize(sizes[index]);\n }\n });\n }\n\n setSize(finalSize);\n onSizeChange?.(finalSize);\n };\n\n const { moveProps } = useMove({\n onMoveStart() {\n if (!isResizable) return;\n setIsDragging(true);\n },\n onMove(e) {\n if (!isResizable) return;\n\n let delta: number;\n\n if (e.pointerType === 'keyboard') {\n // Keyboard resize: 10px per step, 50px with Shift\n const step = e.shiftKey ? 50 : 10;\n const rawDelta = isHorizontal ? e.deltaX : e.deltaY;\n delta = rawDelta * step;\n } else {\n // Pointer resize: use exact delta values\n delta = isHorizontal ? e.deltaX : e.deltaY;\n }\n\n // A move across the resize axis changes nothing.\n if (!delta) return;\n\n const pane = combinedRef.current;\n // An arrow key pressed during a drag joins it.\n const move = moveRef.current ?? beginMove(pane, e.pointerType);\n\n moveRef.current = move;\n move.target += delta;\n\n let next = clampValue(move.target);\n\n if (!move.container) {\n // On its own, the pane keeps no travel past its limits.\n move.target = next;\n } else {\n setPaneSize(pane, next);\n\n // Holding its size, the pane would push the items beyond its grip out\n // of the container once none of them can give way. It grows only into\n // the room it would have taken while giving way, and the target keeps\n // the travel past that, as flex did.\n if (next > move.size) {\n const excess =\n getOverflow(move.container, isHorizontal) - move.maxOverflow;\n\n if (excess > 0) {\n next = Math.max(next - excess, move.size);\n setPaneSize(pane, next);\n }\n }\n }\n\n move.size = next;\n setSize(next);\n },\n onMoveEnd(e) {\n const move = moveRef.current;\n\n // Beside other panes, a key pressed during a drag leaves the move to the\n // pointer. On its own, the pane reports at the key's end, and the drag\n // goes on as a new move, as before.\n if (move?.container && move.pointerType !== e.pointerType) return;\n\n moveRef.current = null;\n setIsDragging(false);\n\n if (move) endMove(move);\n },\n });\n\n const adoptSize = useEffectEvent((drawn: number) => {\n setPaneSize(combinedRef.current, drawn);\n setSize(drawn);\n onSizeChange?.(drawn);\n });\n\n useEffect(() => {\n const pane = combinedRef.current;\n\n mountedPanes.set(pane, {\n isHorizontal,\n adoptSize: (drawn) => adoptSize(drawn),\n });\n\n return () => {\n mountedPanes.delete(pane);\n\n // Unmounted or turned to the other axis mid-move, the pane gives the\n // panes beside it back.\n if (moveRef.current) undoMove(moveRef.current);\n\n moveRef.current = null;\n };\n }, [combinedRef, isHorizontal]);\n\n // Sync provided size with internal state (only when providedSize actually changes)\n // This prevents resetting size when only isDragging changes (which would cause a flash)\n useEffect(() => {\n if (prevProvidedSizeRef.current !== providedSize) {\n prevProvidedSizeRef.current = providedSize;\n if (typeof providedSize === 'number' && !isDragging) {\n setSize(clampValue(providedSize));\n }\n }\n }, [providedSize, isDragging, clampValue]);\n\n // Reset to default size on double-click\n const handleResetSize = () => {\n const resetSize =\n typeof defaultSize === 'number' ? defaultSize : parseInt(defaultSize, 10);\n const clampedSize = clampValue(resetSize || 200);\n setSize(clampedSize);\n onSizeChange?.(clampedSize);\n };\n\n const scrollbarTokens = isTinyScrollbar\n ? { ...handleVTokens, ...handleHTokens }\n : undefined;\n\n const paneMods = {\n scrollbar,\n hovered: isHovered,\n scrolling: isScrolling,\n handlerHovered: debouncedHandlerHovered,\n focused: isHandlerFocused,\n disabled: !isResizable,\n edge: resizeEdge,\n drag: isDragging,\n ...mods,\n };\n\n // Merge styles: outer styles to root, inner styles to Inner element\n // Size is NOT included here - it's set via the `$pane-size` token in paneTokens for performance\n const finalStyles = mergeStyles(\n styles,\n outerStyles,\n innerStyles ? { Inner: innerStyles } : null,\n );\n\n // Size is set via CSS custom property for performance during drag\n // This avoids expensive style recalculation on every mouse move\n const paneTokens = {\n ...scrollbarTokens,\n '$pane-size': `${size}px`,\n // Reset rather than left unset: a custom property inherits, and an\n // enclosing pane's minimum is not this one's.\n '$pane-min-size':\n minSize == null\n ? 'initial'\n : typeof minSize === 'number'\n ? `${minSize}px`\n : minSize,\n };\n\n return (\n <PaneElement\n ref={combinedRef}\n {...filterBaseProps(otherProps, { eventProps: true })}\n {...hoverProps}\n mods={paneMods}\n styles={finalStyles}\n tokens={paneTokens}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n {isTinyScrollbar && hasOverflowY && <div data-element=\"ScrollbarV\" />}\n {isTinyScrollbar && hasOverflowX && <div data-element=\"ScrollbarH\" />}\n {isResizable && (\n <PaneResizeHandler\n edge={resizeEdge}\n isDisabled={!isResizable}\n moveProps={moveProps}\n onDoubleClick={handleResetSize}\n onHoverChange={setIsHandlerHovered}\n onFocusChange={setIsHandlerFocused}\n />\n )}\n </PaneElement>\n );\n}\n\nconst _LayoutPane = forwardRef(LayoutPane);\n\n_LayoutPane.displayName = 'Layout.Pane';\n\nexport { _LayoutPane as LayoutPane };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LayoutPane.js","names":["BaseProps","ContainerStyleProps","filterBaseProps","INNER_STYLES","mergeStyles","OUTER_STYLES","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useCallback","useEffect","useEffectEvent","useRef","useState","useFocusRing","useHover","useMove","useDebouncedValue","useI18n","mergeProps","useCombinedRefs","extractStyles","useTinyScrollbar","ScrollbarType","LayoutContextReset","clampSize","HANDLER_WIDTH","HANDLER_RESERVED","mountedPanes","WeakMap","Element","isHorizontal","adoptSize","drawn","setPaneSize","pane","HTMLElement","size","style","setProperty","getDrawnSize","element","getClientRects","length","NaN","getComputedStyle","parseFloat","width","height","givesWay","flexShrink","getOverflow","container","rect","getBoundingClientRect","scale","offsetWidth","offsetHeight","available","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","used","count","item","Array","from","children","itemStyle","display","position","itemRect","marginLeft","marginRight","marginTop","marginBottom","gap","columnGap","rowGap","Math","max","getPanesBeside","parentElement","flexDirection","startsWith","flexWrap","HTMLCollectionOf","filter","get","Number","isFinite","PaneMove","target","start","ownSize","pointerType","beside","besideSizes","held","maxOverflow","undoMove","move","forEach","index","removeProperty","PaneElement","as","qa","styles","gridColumns","gridRows","placeContent","placeItems","placeSelf","flexGrow","boxSizing","Inner","$","flow","padding","overflow","scrollbar","ScrollbarV","right","top","radius","fill","opacity","transition","pointerEvents","ScrollbarH","bottom","left","ResizeHandler","cursor","disabled","outline","Drag","border","transform","outlineOffset","DragPart","ResizeEdge","CubeLayoutPaneProps","resizeEdge","isResizable","defaultSize","minSize","maxSize","onSizeChange","innerRef","HTMLDivElement","innerProps","PaneResizeHandlerProps","edge","isDisabled","moveProps","ReturnType","onDoubleClick","onHoverChange","isHovered","onFocusChange","isFocused","PaneResizeHandler","props","_c","t","t0","hoverProps","focusProps","isFocusVisible","t1","t2","t3","tabIndex","undefined","role","t4","t5","LayoutPane","ref","providedSize","mods","innerRefProp","otherProps","combinedRef","internalInnerRef","combinedInnerRef","prevProvidedSizeRef","isDragging","setIsDragging","isHandlerHovered","setIsHandlerHovered","isHandlerFocused","setIsHandlerFocused","debouncedHandlerHovered","initialSize","setSize","outerStyles","innerStyles","isTinyScrollbar","Symbol","for","handleVTokens","handleHTokens","hasOverflowY","hasOverflowX","isScrolling","t6","value","clampValue","moveRef","t7","rounded","round","abs","getPropertyValue","map","_temp","side","paneStart","sizes","item_0","item_1","item_2","_temp2","beginMove","t8","move_0","finalSize","pane_0","current","sizes_0","item_4","item_5","index_0","endMove","t9","onMoveStart","onMove","e","delta","step","shiftKey","rawDelta","deltaX","deltaY","pane_1","move_1","next","excess","onMoveEnd","e_0","move_2","t10","drawn_0","t11","pane_2","set","drawn_1","delete","t12","t13","t14","t15","resetSize","parseInt","clampedSize","handleResetSize","t16","scrollbarTokens","t17","t18","hovered","scrolling","handlerHovered","focused","drag","paneMods","finalStyles","t19","t20","t21","paneTokens","T0","t22","eventProps","t23","t24","t25","t26","t27","t28","item_3","_LayoutPane","displayName","_c","mergeProps"],"sources":["../../../../src/components/content/Layout/LayoutPane.tsx"],"sourcesContent":["import {\n BaseProps,\n ContainerStyleProps,\n filterBaseProps,\n INNER_STYLES,\n mergeStyles,\n OUTER_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useCallback,\n useEffect,\n useEffectEvent,\n useRef,\n useState,\n} from 'react';\nimport { useFocusRing, useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { useTinyScrollbar } from './hooks/useTinyScrollbar';\nimport { ScrollbarType } from './LayoutContent';\nimport { LayoutContextReset } from './LayoutContext';\nimport { clampSize } from './utils';\n\n// Handler dimensions\nconst HANDLER_WIDTH = 9; // Interactive area\nconst HANDLER_RESERVED = 5; // Space reserved in Inner padding\n\n/** Mounted panes by element: the axis each resizes along, and how it takes a size. */\nconst mountedPanes = new WeakMap<\n Element,\n { isHorizontal: boolean; adoptSize: (drawn: number) => void }\n>();\n\nfunction setPaneSize(pane: HTMLElement, size: number) {\n pane.style.setProperty('--pane-size', `${size}px`);\n}\n\n/** The size an element is drawn at, or `NaN` when it is not drawn. */\nfunction getDrawnSize(element: HTMLElement, isHorizontal: boolean) {\n // Hidden, an element reports the size it is set to.\n if (!element.getClientRects().length) return NaN;\n\n const style = getComputedStyle(element);\n\n return parseFloat(isHorizontal ? style.width : style.height);\n}\n\nfunction givesWay(element: Element) {\n return parseFloat(getComputedStyle(element).flexShrink) > 0;\n}\n\n/** How far a flex container's items run past its content box. */\nfunction getOverflow(container: HTMLElement, isHorizontal: boolean) {\n const style = getComputedStyle(container);\n const rect = container.getBoundingClientRect();\n // Items are measured as drawn, which a zoomed or scaled ancestor makes\n // differ from the container's own layout size.\n const scale =\n (isHorizontal\n ? rect.width / container.offsetWidth\n : rect.height / container.offsetHeight) || 1;\n const available = isHorizontal\n ? container.clientWidth -\n parseFloat(style.paddingLeft) -\n parseFloat(style.paddingRight)\n : container.clientHeight -\n parseFloat(style.paddingTop) -\n parseFloat(style.paddingBottom);\n let used = 0;\n let count = 0;\n\n for (const item of Array.from(container.children)) {\n const itemStyle = getComputedStyle(item);\n\n if (\n itemStyle.display === 'none' ||\n itemStyle.position === 'absolute' ||\n itemStyle.position === 'fixed'\n ) {\n continue;\n }\n\n const itemRect = item.getBoundingClientRect();\n\n used += isHorizontal\n ? itemRect.width / scale +\n parseFloat(itemStyle.marginLeft) +\n parseFloat(itemStyle.marginRight)\n : itemRect.height / scale +\n parseFloat(itemStyle.marginTop) +\n parseFloat(itemStyle.marginBottom);\n count += 1;\n }\n\n const gap = parseFloat(isHorizontal ? style.columnGap : style.rowGap) || 0;\n\n return used + gap * Math.max(count - 1, 0) - available;\n}\n\n/**\n * The other drawn panes that give way along the same axis, when this one gives\n * way in a non-wrapping flex container along it.\n */\nfunction getPanesBeside(pane: HTMLElement, isHorizontal: boolean) {\n const container = pane.parentElement;\n\n if (!container || !givesWay(pane)) return [];\n\n const style = getComputedStyle(container);\n\n if (\n (style.display !== 'flex' && style.display !== 'inline-flex') ||\n style.flexDirection.startsWith('row') !== isHorizontal ||\n style.flexWrap !== 'nowrap'\n ) {\n return [];\n }\n\n return Array.from(container.children as HTMLCollectionOf<HTMLElement>).filter(\n (item) =>\n item !== pane &&\n mountedPanes.get(item)?.isHorizontal === isHorizontal &&\n givesWay(item) &&\n Number.isFinite(getDrawnSize(item, isHorizontal)),\n );\n}\n\ninterface PaneMove {\n /** Where the pointer or keys ask the pane to be. */\n target: number;\n /** The size so far, ahead of the rendered one. */\n size: number;\n /** The size the move begins at. */\n start: number;\n /** The pane's own size before the move. */\n ownSize: string;\n /** What began the move: a pointer or the keyboard. */\n pointerType: string;\n /** The flex container the pane gives way in beside other panes, or `null`. */\n container: HTMLElement | null;\n /** The panes beside it, sized as drawn for the move. */\n beside: HTMLElement[];\n /** Their own sizes before the move. */\n besideSizes: string[];\n /** The panes that hold their size until the move ends. */\n held: HTMLElement[];\n /** How far the container's items may run past it, as they did at the start. */\n maxOverflow: number;\n}\n\n/**\n * Gives the panes beside a move back their own sizes and lets go of every\n * held pane.\n */\nfunction undoMove(move: PaneMove) {\n move.beside.forEach((item, index) =>\n item.style.setProperty('--pane-size', move.besideSizes[index]),\n );\n move.held.forEach((item) => item.style.removeProperty('flex-shrink'));\n}\n\nconst PaneElement = tasty({\n as: 'div',\n qa: 'LayoutPane',\n styles: {\n container: 'pane / inline-size',\n position: 'relative',\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n placeSelf: 'stretch',\n // Holds its size. With `flexShrink={1}` it gives way down to its minimum\n // when a flex container runs short.\n flexShrink: 0,\n flexGrow: 0,\n // Size is set via CSS custom property for performance during drag\n width: {\n '': 'auto',\n 'edge=right': '($pane-min-size, 2x) $pane-size $pane-size',\n },\n height: {\n '': '($pane-min-size, 2x) $pane-size $pane-size',\n 'edge=right': 'auto',\n },\n boxSizing: 'content-box',\n\n Inner: {\n $: '>',\n display: 'flex',\n flow: 'column',\n padding: '($content-padding, 1x)',\n // Reserve space for handler on resize edge\n paddingRight: {\n '': '($content-padding, 1x)',\n 'edge=right': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n paddingBottom: {\n '': '($content-padding, 1x)',\n 'edge=bottom': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n overflow: {\n '': 'auto',\n 'scrollbar=none': 'clip',\n },\n placeSelf: 'stretch',\n scrollbar: {\n '': 'thin',\n 'scrollbar=tiny | scrollbar=none': 'none',\n },\n\n '$layout-border-size': '0',\n },\n\n // Custom scrollbar handles (when scrollbar=\"tiny\")\n ScrollbarV: {\n // It sits a device pixel in from the edge.\n '$scrollbar-inset': '1px',\n position: 'absolute',\n right: {\n '': '$scrollbar-inset',\n 'edge=right': `(${HANDLER_RESERVED}px + $scrollbar-inset)`,\n },\n top: '$scrollbar-v-top',\n width: '1ow',\n height: '$scrollbar-v-height',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n\n ScrollbarH: {\n $: '>',\n // It sits a device pixel in from the edge.\n '$scrollbar-inset': '1px',\n position: 'absolute',\n bottom: {\n '': '$scrollbar-inset',\n 'edge=bottom': `(${HANDLER_RESERVED}px + $scrollbar-inset)`,\n },\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity $scrollbar-transition',\n pointerEvents: 'none',\n },\n\n // Compact resize handler - only drag dots\n ResizeHandler: {\n position: 'absolute',\n // Size: 9px interactive area\n width: {\n '': '100%',\n 'edge=right': `${HANDLER_WIDTH}px`,\n },\n height: {\n '': `${HANDLER_WIDTH}px`,\n 'edge=right': '100%',\n },\n // Position at edge, centered on the reserved space boundary\n right: {\n '': 'initial',\n 'edge=right': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n },\n bottom: {\n '': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n 'edge=right': 'initial',\n },\n top: {\n '': 'initial',\n 'edge=right': 0,\n },\n left: {\n '': 0,\n 'edge=right': 'initial',\n },\n cursor: {\n '': 'row-resize',\n 'edge=right': 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n outline: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n },\n\n Drag: {\n // Grip dots and their spacing in device pixels, so they stay crisp at\n // any gap.\n '$grip-size': '3px',\n '$dot-gap': '2px',\n display: 'grid',\n gap: '$dot-gap',\n border: 0,\n flow: {\n '': 'row',\n 'edge=right': 'column',\n },\n gridColumns: {\n '': 'repeat(5, $grip-size)',\n 'edge=right': 'auto',\n },\n gridRows: {\n '': 'auto',\n 'edge=right': 'repeat(5, $grip-size)',\n },\n width: {\n '': 'auto',\n 'edge=right': '$grip-size',\n },\n height: {\n '': '$grip-size',\n 'edge=right': 'auto',\n },\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n transition: 'theme',\n radius: 'round',\n outline: {\n '': '0',\n 'focused | drag': '$ring-width #primary-text',\n },\n outlineOffset: '$outline-offset',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'handlerHovered | drag | focused': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\nexport type ResizeEdge = 'right' | 'bottom';\n\nexport interface CubeLayoutPaneProps extends BaseProps, ContainerStyleProps {\n /** Edge where resize handler appears */\n resizeEdge?: ResizeEdge;\n /** Enable resize functionality */\n isResizable?: boolean;\n /** Controlled size (width for right edge, height for bottom edge) */\n size?: number | string;\n /** Default size for uncontrolled state */\n defaultSize?: number | string;\n /** Minimum size constraint */\n minSize?: number | string;\n /** Maximum size constraint */\n maxSize?: number | string;\n /**\n * Size change callback. With `flexShrink={1}`, also called when another\n * such pane beside it is resized and this pane keeps the size it is drawn\n * at.\n */\n onSizeChange?: (size: number) => void;\n /** Scrollbar style */\n scrollbar?: ScrollbarType;\n /** Custom styles */\n styles?: Styles;\n children?: ReactNode;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\ninterface PaneResizeHandlerProps {\n edge: ResizeEdge;\n isDisabled?: boolean;\n moveProps: ReturnType<typeof useMove>['moveProps'];\n onDoubleClick?: () => void;\n onHoverChange?: (isHovered: boolean) => void;\n onFocusChange?: (isFocused: boolean) => void;\n}\n\nfunction PaneResizeHandler(props: PaneResizeHandlerProps) {\n const {\n edge,\n isDisabled,\n moveProps,\n onDoubleClick,\n onHoverChange,\n onFocusChange,\n } = props;\n const { t } = useI18n();\n const { hoverProps, isHovered } = useHover({\n onHoverChange,\n });\n const { focusProps, isFocusVisible } = useFocusRing();\n const isHorizontal = edge === 'right';\n\n // Notify parent of focus changes\n useEffect(() => {\n onFocusChange?.(isFocusVisible);\n }, [isFocusVisible, onFocusChange]);\n\n return (\n <div\n data-element=\"ResizeHandler\"\n {...mergeProps(hoverProps, focusProps, isDisabled ? {} : moveProps, {\n tabIndex: isDisabled ? undefined : 0,\n role: 'separator',\n 'aria-orientation': isHorizontal ? 'vertical' : 'horizontal',\n 'aria-label':\n edge === 'right'\n ? t('layout.resizePaneRight', 'Resize pane right')\n : t('layout.resizePaneBottom', 'Resize pane bottom'),\n onDoubleClick: isDisabled ? undefined : onDoubleClick,\n })}\n >\n {!isDisabled && (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction LayoutPane(\n props: CubeLayoutPaneProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n resizeEdge = 'right',\n isResizable = false,\n size: providedSize,\n defaultSize = 200,\n minSize,\n maxSize,\n onSizeChange,\n scrollbar = 'thin',\n styles,\n mods,\n children,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n\n const combinedRef = useCombinedRefs(ref);\n const internalInnerRef = useRef<HTMLDivElement>(null);\n const combinedInnerRef = useCombinedRefs(innerRefProp, internalInnerRef);\n const prevProvidedSizeRef = useRef(providedSize);\n const isHorizontal = resizeEdge === 'right';\n\n // Resize state\n const [isDragging, setIsDragging] = useState(false);\n const [isHandlerHovered, setIsHandlerHovered] = useState(false);\n const [isHandlerFocused, setIsHandlerFocused] = useState(false);\n const debouncedHandlerHovered = useDebouncedValue(isHandlerHovered, 150);\n const [size, setSize] = useState<number>(() => {\n const initialSize =\n typeof providedSize === 'number'\n ? providedSize\n : typeof defaultSize === 'number'\n ? defaultSize\n : 200;\n\n return clampSize(initialSize, minSize, maxSize);\n });\n\n // Extract outer wrapper styles and inner content styles\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n const innerStyles = extractStyles(otherProps, INNER_STYLES);\n\n const isTinyScrollbar = scrollbar === 'tiny';\n const { hoverProps, isHovered } = useHover({});\n\n const {\n handleVTokens,\n handleHTokens,\n hasOverflowY,\n hasOverflowX,\n isScrolling,\n } = useTinyScrollbar(internalInnerRef, isTinyScrollbar);\n\n // Clamp size to min/max constraints\n const clampValue = useCallback(\n (value: number) => clampSize(value, minSize, maxSize),\n [minSize, maxSize],\n );\n\n const moveRef = useRef<PaneMove | null>(null);\n\n const beginMove = (pane: HTMLElement, pointerType: string): PaneMove => {\n const drawn = getDrawnSize(pane, isHorizontal);\n const beside = getPanesBeside(pane, isHorizontal);\n const rounded = Math.round(drawn);\n // Flex shrinking or a CSS minimum can draw the pane at another size than\n // `size`; resize from the one on screen, or the first moves do nothing.\n // Beside other panes the move begins exactly there, so nothing shifts.\n const start = beside.length\n ? drawn\n : Math.abs(rounded - size) >= 1\n ? rounded\n : size;\n const move: PaneMove = {\n target: start,\n size: start,\n start,\n ownSize: pane.style.getPropertyValue('--pane-size'),\n pointerType,\n container: beside.length ? pane.parentElement : null,\n beside,\n besideSizes: beside.map((item) =>\n item.style.getPropertyValue('--pane-size'),\n ),\n held: [],\n maxOverflow: 0,\n };\n\n // Beside other panes that give way, this one would hand them part of every\n // move: flex shares the room by size, and theirs are larger than drawn. So\n // they take the sizes they are drawn at, and this pane holds its size until\n // the move ends, as do the panes before its grip: the room comes from\n // beyond the grip. Keyboard moves start and end within one event, so this\n // goes to the DOM, not through a render. Every size is read before one is\n // written, as each write reflows the rest.\n if (move.container) {\n const side = isHorizontal ? 'left' : 'top';\n const paneStart = pane.getBoundingClientRect()[side];\n const sizes = beside.map((item) => getDrawnSize(item, isHorizontal));\n\n move.maxOverflow = Math.max(getOverflow(move.container, isHorizontal), 0);\n move.held = [\n pane,\n ...beside.filter(\n (item) => item.getBoundingClientRect()[side] < paneStart,\n ),\n ];\n beside.forEach((item, index) => setPaneSize(item, sizes[index]));\n move.held.forEach((item) => item.style.setProperty('flex-shrink', '0'));\n }\n\n return move;\n };\n\n const endMove = (move: PaneMove) => {\n // Round to integer when the move ends and notify parent\n const finalSize = Math.round(clampValue(move.size));\n const pane = combinedRef.current;\n\n if (move.container) {\n // A move that ends where it began, as a key pressed at a stop does,\n // leaves every pane as it found them.\n if (finalSize === Math.round(move.start)) {\n undoMove(move);\n pane.style.setProperty('--pane-size', move.ownSize);\n setSize(parseFloat(move.ownSize));\n\n return;\n }\n\n setPaneSize(pane, finalSize);\n\n // The panes beside it keep the sizes they are left at, read while the\n // panes still hold, before one is written. A pane left at its own size,\n // or hidden meanwhile, keeps its own.\n const sizes = move.beside.map((item) =>\n Math.round(getDrawnSize(item, isHorizontal)),\n );\n\n undoMove(move);\n move.beside.forEach((item, index) => {\n if (\n Number.isFinite(sizes[index]) &&\n sizes[index] !== Math.round(parseFloat(move.besideSizes[index]))\n ) {\n mountedPanes.get(item)?.adoptSize(sizes[index]);\n }\n });\n }\n\n setSize(finalSize);\n onSizeChange?.(finalSize);\n };\n\n const { moveProps } = useMove({\n onMoveStart() {\n if (!isResizable) return;\n setIsDragging(true);\n },\n onMove(e) {\n if (!isResizable) return;\n\n let delta: number;\n\n if (e.pointerType === 'keyboard') {\n // Keyboard resize: 10px per step, 50px with Shift\n const step = e.shiftKey ? 50 : 10;\n const rawDelta = isHorizontal ? e.deltaX : e.deltaY;\n delta = rawDelta * step;\n } else {\n // Pointer resize: use exact delta values\n delta = isHorizontal ? e.deltaX : e.deltaY;\n }\n\n // A move across the resize axis changes nothing.\n if (!delta) return;\n\n const pane = combinedRef.current;\n // An arrow key pressed during a drag joins it.\n const move = moveRef.current ?? beginMove(pane, e.pointerType);\n\n moveRef.current = move;\n move.target += delta;\n\n let next = clampValue(move.target);\n\n if (!move.container) {\n // On its own, the pane keeps no travel past its limits.\n move.target = next;\n } else {\n setPaneSize(pane, next);\n\n // Holding its size, the pane would push the items beyond its grip out\n // of the container once none of them can give way. It grows only into\n // the room it would have taken while giving way, and the target keeps\n // the travel past that, as flex did.\n if (next > move.size) {\n const excess =\n getOverflow(move.container, isHorizontal) - move.maxOverflow;\n\n if (excess > 0) {\n next = Math.max(next - excess, move.size);\n setPaneSize(pane, next);\n }\n }\n }\n\n move.size = next;\n setSize(next);\n },\n onMoveEnd(e) {\n const move = moveRef.current;\n\n // Beside other panes, a key pressed during a drag leaves the move to the\n // pointer. On its own, the pane reports at the key's end, and the drag\n // goes on as a new move, as before.\n if (move?.container && move.pointerType !== e.pointerType) return;\n\n moveRef.current = null;\n setIsDragging(false);\n\n if (move) endMove(move);\n },\n });\n\n const adoptSize = useEffectEvent((drawn: number) => {\n setPaneSize(combinedRef.current, drawn);\n setSize(drawn);\n onSizeChange?.(drawn);\n });\n\n useEffect(() => {\n const pane = combinedRef.current;\n\n mountedPanes.set(pane, {\n isHorizontal,\n adoptSize: (drawn) => adoptSize(drawn),\n });\n\n return () => {\n mountedPanes.delete(pane);\n\n // Unmounted or turned to the other axis mid-move, the pane gives the\n // panes beside it back.\n if (moveRef.current) undoMove(moveRef.current);\n\n moveRef.current = null;\n };\n }, [combinedRef, isHorizontal]);\n\n // Sync provided size with internal state (only when providedSize actually changes)\n // This prevents resetting size when only isDragging changes (which would cause a flash)\n useEffect(() => {\n if (prevProvidedSizeRef.current !== providedSize) {\n prevProvidedSizeRef.current = providedSize;\n if (typeof providedSize === 'number' && !isDragging) {\n setSize(clampValue(providedSize));\n }\n }\n }, [providedSize, isDragging, clampValue]);\n\n // Reset to default size on double-click\n const handleResetSize = () => {\n const resetSize =\n typeof defaultSize === 'number' ? defaultSize : parseInt(defaultSize, 10);\n const clampedSize = clampValue(resetSize || 200);\n setSize(clampedSize);\n onSizeChange?.(clampedSize);\n };\n\n const scrollbarTokens = isTinyScrollbar\n ? { ...handleVTokens, ...handleHTokens }\n : undefined;\n\n const paneMods = {\n scrollbar,\n hovered: isHovered,\n scrolling: isScrolling,\n handlerHovered: debouncedHandlerHovered,\n focused: isHandlerFocused,\n disabled: !isResizable,\n edge: resizeEdge,\n drag: isDragging,\n ...mods,\n };\n\n // Merge styles: outer styles to root, inner styles to Inner element\n // Size is NOT included here - it's set via the `$pane-size` token in paneTokens for performance\n const finalStyles = mergeStyles(\n styles,\n outerStyles,\n // oxlint-disable-next-line tasty/no-runtime-styles-mutation -- forwards the consumer's `innerStyles` to `Inner`\n innerStyles ? { Inner: innerStyles } : null,\n );\n\n // Size is set via CSS custom property for performance during drag\n // This avoids expensive style recalculation on every mouse move\n const paneTokens = {\n ...scrollbarTokens,\n '$pane-size': `${size}px`,\n // Reset rather than left unset: a custom property inherits, and an\n // enclosing pane's minimum is not this one's.\n '$pane-min-size':\n minSize == null\n ? 'initial'\n : typeof minSize === 'number'\n ? `${minSize}px`\n : minSize,\n };\n\n return (\n <PaneElement\n ref={combinedRef}\n {...filterBaseProps(otherProps, { eventProps: true })}\n {...hoverProps}\n mods={paneMods}\n styles={finalStyles}\n tokens={paneTokens}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n {isTinyScrollbar && hasOverflowY && <div data-element=\"ScrollbarV\" />}\n {isTinyScrollbar && hasOverflowX && <div data-element=\"ScrollbarH\" />}\n {isResizable && (\n <PaneResizeHandler\n edge={resizeEdge}\n isDisabled={!isResizable}\n moveProps={moveProps}\n onDoubleClick={handleResetSize}\n onHoverChange={setIsHandlerHovered}\n onFocusChange={setIsHandlerFocused}\n />\n )}\n </PaneElement>\n );\n}\n\nconst _LayoutPane = forwardRef(LayoutPane);\n\n_LayoutPane.displayName = 'Layout.Pane';\n\nexport { _LayoutPane as LayoutPane };\n"],"mappings":"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"}
|