@cube-dev/ui-kit 0.0.0-canary-5bbff30 → 0.0.0-canary-4141d5b
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/_internal/hooks/use-chained-callback.js +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.d.ts +0 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/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/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/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 +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.d.ts +1 -2
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +25 -8
- 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 +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +0 -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 +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +29 -10
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/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/index.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/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.d.ts +1 -2
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/types.d.ts +0 -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.d.ts +0 -2
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +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/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/index.d.ts +0 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.js +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/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/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/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.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/tasty/configuration.md +10 -6
- package/docs/tasty/dsl.md +99 -2
- package/docs/tasty/styles.md +3 -1
- package/package.json +2 -2
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +0 -146
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +0 -1
- package/dist/components/portal/PortalProvider.d.ts +0 -2
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-5bbff30 | Cube Dev Team */
|
|
2
|
-
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
|
-
import { useEffect, useLayoutEffect, useRef } from "react";
|
|
4
|
-
|
|
5
|
-
//#region src/components/fields/TextInput/useAutoSizeTextArea.ts
|
|
6
|
-
/**
|
|
7
|
-
* Computed properties that decide where text wraps and how tall a line box is.
|
|
8
|
-
* Copied onto the mirror so it wraps exactly like the live textarea.
|
|
9
|
-
*/
|
|
10
|
-
const MIRROR_TYPOGRAPHY_PROPS = [
|
|
11
|
-
"direction",
|
|
12
|
-
"fontFamily",
|
|
13
|
-
"fontFeatureSettings",
|
|
14
|
-
"fontKerning",
|
|
15
|
-
"fontSize",
|
|
16
|
-
"fontStretch",
|
|
17
|
-
"fontStyle",
|
|
18
|
-
"fontVariant",
|
|
19
|
-
"fontVariationSettings",
|
|
20
|
-
"fontWeight",
|
|
21
|
-
"letterSpacing",
|
|
22
|
-
"lineHeight",
|
|
23
|
-
"overflowWrap",
|
|
24
|
-
"tabSize",
|
|
25
|
-
"textIndent",
|
|
26
|
-
"textTransform",
|
|
27
|
-
"whiteSpace",
|
|
28
|
-
"wordBreak",
|
|
29
|
-
"wordSpacing"
|
|
30
|
-
];
|
|
31
|
-
const FALLBACK_LINE_HEIGHT = 20;
|
|
32
|
-
/**
|
|
33
|
-
* An off-screen textarea used to measure how tall the content wants to be.
|
|
34
|
-
*
|
|
35
|
-
* It carries no padding and no border, and its width is set to the live
|
|
36
|
-
* element's *content* width, so `scrollHeight` is the content height and
|
|
37
|
-
* nothing else. `height: 0` is what makes shrinking measurable: a textarea's
|
|
38
|
-
* `scrollHeight` never drops below its own client height, so measuring the live
|
|
39
|
-
* element can only ever report "at least what it already is".
|
|
40
|
-
*/
|
|
41
|
-
function createMirror() {
|
|
42
|
-
const mirror = document.createElement("textarea");
|
|
43
|
-
mirror.setAttribute("aria-hidden", "true");
|
|
44
|
-
mirror.setAttribute("tabindex", "-1");
|
|
45
|
-
mirror.readOnly = true;
|
|
46
|
-
mirror.rows = 1;
|
|
47
|
-
Object.assign(mirror.style, {
|
|
48
|
-
position: "absolute",
|
|
49
|
-
top: "0",
|
|
50
|
-
left: "-9999px",
|
|
51
|
-
boxSizing: "content-box",
|
|
52
|
-
margin: "0",
|
|
53
|
-
padding: "0",
|
|
54
|
-
border: "0",
|
|
55
|
-
height: "0",
|
|
56
|
-
minHeight: "0",
|
|
57
|
-
maxHeight: "none",
|
|
58
|
-
overflow: "hidden",
|
|
59
|
-
resize: "none",
|
|
60
|
-
visibility: "hidden",
|
|
61
|
-
pointerEvents: "none"
|
|
62
|
-
});
|
|
63
|
-
return mirror;
|
|
64
|
-
}
|
|
65
|
-
/** The width the text actually has to wrap in, scrollbar and padding removed. */
|
|
66
|
-
function getContentWidth(textarea, style) {
|
|
67
|
-
const paddingLeft = parseFloat(style.paddingLeft) || 0;
|
|
68
|
-
const paddingRight = parseFloat(style.paddingRight) || 0;
|
|
69
|
-
const borderLeft = parseFloat(style.borderLeftWidth) || 0;
|
|
70
|
-
const borderRight = parseFloat(style.borderRightWidth) || 0;
|
|
71
|
-
const scrollbar = Math.max(0, Math.round(textarea.offsetWidth - textarea.clientWidth - borderLeft - borderRight));
|
|
72
|
-
return Math.max(0, textarea.getBoundingClientRect().width - borderLeft - borderRight - scrollbar - paddingLeft - paddingRight);
|
|
73
|
-
}
|
|
74
|
-
/** `line-height: normal` has no px value to read, so measure one line instead. */
|
|
75
|
-
function getLineHeight(style, mirror) {
|
|
76
|
-
const parsed = parseFloat(style.lineHeight);
|
|
77
|
-
if (Number.isFinite(parsed) && parsed > 0) return parsed;
|
|
78
|
-
const previousValue = mirror.value;
|
|
79
|
-
mirror.value = "x";
|
|
80
|
-
const measured = mirror.scrollHeight;
|
|
81
|
-
mirror.value = previousValue;
|
|
82
|
-
return measured > 0 ? measured : FALLBACK_LINE_HEIGHT;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Keeps an `autoSize` textarea's height in step with its content, and returns
|
|
86
|
-
* the `adjustHeight` callback so a change handler can resize in the same tick
|
|
87
|
-
* as the keystroke.
|
|
88
|
-
*
|
|
89
|
-
* The height is derived from an off-screen mirror rather than from the live
|
|
90
|
-
* element. Measuring the live element — `height: auto`, read `scrollHeight`,
|
|
91
|
-
* restore — re-lays out every ancestor mid-keystroke: in a chat-style column
|
|
92
|
-
* the input box collapses to one row and the scroll viewport grows by the
|
|
93
|
-
* difference, and the browser's scroll anchoring has to undo that. It does so
|
|
94
|
-
* imperfectly, which is visible as the whole conversation bouncing by a pixel
|
|
95
|
-
* on every keystroke (CUB-4042). Measuring off-screen touches no ancestor, so
|
|
96
|
-
* there is nothing to undo.
|
|
97
|
-
*/
|
|
98
|
-
function useAutoSizeTextArea({ inputRef, autoSize, rows, maxRows, value }) {
|
|
99
|
-
const mirrorRef = useRef(null);
|
|
100
|
-
const adjustHeight = useEvent(() => {
|
|
101
|
-
const textarea = inputRef.current;
|
|
102
|
-
if (!textarea || !autoSize) return;
|
|
103
|
-
let mirror = mirrorRef.current;
|
|
104
|
-
if (!mirror) {
|
|
105
|
-
mirror = createMirror();
|
|
106
|
-
mirrorRef.current = mirror;
|
|
107
|
-
document.body.appendChild(mirror);
|
|
108
|
-
}
|
|
109
|
-
const style = getComputedStyle(textarea);
|
|
110
|
-
const contentWidth = getContentWidth(textarea, style);
|
|
111
|
-
if (contentWidth === 0) return;
|
|
112
|
-
for (const prop of MIRROR_TYPOGRAPHY_PROPS) mirror.style[prop] = style[prop];
|
|
113
|
-
mirror.style.width = `${contentWidth}px`;
|
|
114
|
-
mirror.value = textarea.value;
|
|
115
|
-
const lineHeight = getLineHeight(style, mirror);
|
|
116
|
-
const contentRows = Math.max(1, Math.round(mirror.scrollHeight / lineHeight));
|
|
117
|
-
const targetRows = Math.max(Math.min(contentRows, maxRows), rows);
|
|
118
|
-
const paddingTop = parseFloat(style.paddingTop) || 0;
|
|
119
|
-
const paddingBottom = parseFloat(style.paddingBottom) || 0;
|
|
120
|
-
const borderTop = parseFloat(style.borderTopWidth) || 0;
|
|
121
|
-
const borderBottom = parseFloat(style.borderBottomWidth) || 0;
|
|
122
|
-
const box = style.boxSizing === "border-box" ? paddingTop + paddingBottom + borderTop + borderBottom : 0;
|
|
123
|
-
const nextHeight = `${targetRows * lineHeight + box}px`;
|
|
124
|
-
if (textarea.style.height !== nextHeight) textarea.style.height = nextHeight;
|
|
125
|
-
});
|
|
126
|
-
const useEnvironmentalEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
127
|
-
useEnvironmentalEffect(() => {
|
|
128
|
-
if (!autoSize || !inputRef.current) return;
|
|
129
|
-
adjustHeight();
|
|
130
|
-
const resizeObserver = new ResizeObserver(adjustHeight);
|
|
131
|
-
resizeObserver.observe(inputRef.current);
|
|
132
|
-
return () => resizeObserver.disconnect();
|
|
133
|
-
}, [autoSize, inputRef.current]);
|
|
134
|
-
useEnvironmentalEffect(() => {
|
|
135
|
-
if (autoSize && inputRef.current) adjustHeight();
|
|
136
|
-
}, [value]);
|
|
137
|
-
useEffect(() => () => {
|
|
138
|
-
mirrorRef.current?.remove();
|
|
139
|
-
mirrorRef.current = null;
|
|
140
|
-
}, []);
|
|
141
|
-
return adjustHeight;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
//#endregion
|
|
145
|
-
export { useAutoSizeTextArea };
|
|
146
|
-
//# sourceMappingURL=useAutoSizeTextArea.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAutoSizeTextArea.js","names":[],"sources":["../../../../src/components/fields/TextInput/useAutoSizeTextArea.ts"],"sourcesContent":["import { RefObject, useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/index';\n\n/**\n * Computed properties that decide where text wraps and how tall a line box is.\n * Copied onto the mirror so it wraps exactly like the live textarea.\n */\nconst MIRROR_TYPOGRAPHY_PROPS = [\n 'direction',\n 'fontFamily',\n 'fontFeatureSettings',\n 'fontKerning',\n 'fontSize',\n 'fontStretch',\n 'fontStyle',\n 'fontVariant',\n 'fontVariationSettings',\n 'fontWeight',\n 'letterSpacing',\n 'lineHeight',\n 'overflowWrap',\n 'tabSize',\n 'textIndent',\n 'textTransform',\n 'whiteSpace',\n 'wordBreak',\n 'wordSpacing',\n] as const;\n\nconst FALLBACK_LINE_HEIGHT = 20;\n\n/**\n * An off-screen textarea used to measure how tall the content wants to be.\n *\n * It carries no padding and no border, and its width is set to the live\n * element's *content* width, so `scrollHeight` is the content height and\n * nothing else. `height: 0` is what makes shrinking measurable: a textarea's\n * `scrollHeight` never drops below its own client height, so measuring the live\n * element can only ever report \"at least what it already is\".\n */\nfunction createMirror(): HTMLTextAreaElement {\n const mirror = document.createElement('textarea');\n\n mirror.setAttribute('aria-hidden', 'true');\n mirror.setAttribute('tabindex', '-1');\n mirror.readOnly = true;\n mirror.rows = 1;\n\n Object.assign(mirror.style, {\n position: 'absolute',\n top: '0',\n left: '-9999px',\n boxSizing: 'content-box',\n margin: '0',\n padding: '0',\n border: '0',\n height: '0',\n minHeight: '0',\n maxHeight: 'none',\n overflow: 'hidden',\n resize: 'none',\n visibility: 'hidden',\n pointerEvents: 'none',\n });\n\n return mirror;\n}\n\n/** The width the text actually has to wrap in, scrollbar and padding removed. */\nfunction getContentWidth(\n textarea: HTMLTextAreaElement,\n style: CSSStyleDeclaration,\n): number {\n const paddingLeft = parseFloat(style.paddingLeft) || 0;\n const paddingRight = parseFloat(style.paddingRight) || 0;\n const borderLeft = parseFloat(style.borderLeftWidth) || 0;\n const borderRight = parseFloat(style.borderRightWidth) || 0;\n // A classic (space-taking) scrollbar narrows the text; overlay scrollbars\n // report 0 here.\n const scrollbar = Math.max(\n 0,\n Math.round(\n textarea.offsetWidth - textarea.clientWidth - borderLeft - borderRight,\n ),\n );\n\n return Math.max(\n 0,\n textarea.getBoundingClientRect().width -\n borderLeft -\n borderRight -\n scrollbar -\n paddingLeft -\n paddingRight,\n );\n}\n\n/** `line-height: normal` has no px value to read, so measure one line instead. */\nfunction getLineHeight(\n style: CSSStyleDeclaration,\n mirror: HTMLTextAreaElement,\n): number {\n const parsed = parseFloat(style.lineHeight);\n\n if (Number.isFinite(parsed) && parsed > 0) return parsed;\n\n const previousValue = mirror.value;\n\n mirror.value = 'x';\n\n const measured = mirror.scrollHeight;\n\n mirror.value = previousValue;\n\n return measured > 0 ? measured : FALLBACK_LINE_HEIGHT;\n}\n\nexport interface AutoSizeTextAreaOptions {\n inputRef: RefObject<HTMLTextAreaElement | null>;\n /** Whether the textarea resizes to fit its content. */\n autoSize: boolean;\n /** Minimum number of visible rows. */\n rows: number;\n /** Maximum number of visible rows. */\n maxRows: number;\n /** The rendered value. A change re-measures, so buffered drafts count too. */\n value: unknown;\n}\n\n/**\n * Keeps an `autoSize` textarea's height in step with its content, and returns\n * the `adjustHeight` callback so a change handler can resize in the same tick\n * as the keystroke.\n *\n * The height is derived from an off-screen mirror rather than from the live\n * element. Measuring the live element — `height: auto`, read `scrollHeight`,\n * restore — re-lays out every ancestor mid-keystroke: in a chat-style column\n * the input box collapses to one row and the scroll viewport grows by the\n * difference, and the browser's scroll anchoring has to undo that. It does so\n * imperfectly, which is visible as the whole conversation bouncing by a pixel\n * on every keystroke (CUB-4042). Measuring off-screen touches no ancestor, so\n * there is nothing to undo.\n */\nexport function useAutoSizeTextArea({\n inputRef,\n autoSize,\n rows,\n maxRows,\n value,\n}: AutoSizeTextAreaOptions) {\n const mirrorRef = useRef<HTMLTextAreaElement | null>(null);\n\n const adjustHeight = useEvent(() => {\n const textarea = inputRef.current;\n\n if (!textarea || !autoSize) return;\n\n let mirror = mirrorRef.current;\n\n if (!mirror) {\n mirror = createMirror();\n mirrorRef.current = mirror;\n document.body.appendChild(mirror);\n }\n\n const style = getComputedStyle(textarea);\n const contentWidth = getContentWidth(textarea, style);\n\n // Nothing to wrap into: the field is display:none, or has not been laid out\n // yet. Measuring at zero width would wrap every character onto its own line\n // and pin the height at `maxRows`; keep the current height instead and wait\n // for the ResizeObserver to report a real one.\n if (contentWidth === 0) return;\n\n for (const prop of MIRROR_TYPOGRAPHY_PROPS) {\n mirror.style[prop] = style[prop];\n }\n\n mirror.style.width = `${contentWidth}px`;\n mirror.value = textarea.value;\n\n const lineHeight = getLineHeight(style, mirror);\n // A textarea lays every line out at `line-height`, so the content height is\n // a whole number of lines — `round` keeps a fractional line height (a zoomed\n // page, a percentage preset) from adding a phantom row.\n const contentRows = Math.max(\n 1,\n Math.round(mirror.scrollHeight / lineHeight),\n );\n const targetRows = Math.max(Math.min(contentRows, maxRows), rows);\n\n const paddingTop = parseFloat(style.paddingTop) || 0;\n const paddingBottom = parseFloat(style.paddingBottom) || 0;\n const borderTop = parseFloat(style.borderTopWidth) || 0;\n const borderBottom = parseFloat(style.borderBottomWidth) || 0;\n // `height` covers padding and border under `border-box` only.\n const box =\n style.boxSizing === 'border-box'\n ? paddingTop + paddingBottom + borderTop + borderBottom\n : 0;\n\n const nextHeight = `${targetRows * lineHeight + box}px`;\n\n // Writing an unchanged height would wake the ResizeObserver below for\n // nothing.\n if (textarea.style.height !== nextHeight) {\n textarea.style.height = nextHeight;\n }\n });\n\n const useEnvironmentalEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n // Re-measure on element resize as that can affect wrapping.\n useEnvironmentalEffect(() => {\n if (!autoSize || !inputRef.current) return;\n\n adjustHeight();\n\n const resizeObserver = new ResizeObserver(adjustHeight);\n\n resizeObserver.observe(inputRef.current);\n\n return () => resizeObserver.disconnect();\n }, [autoSize, inputRef.current]);\n\n // Adjust when the value changes programmatically (controlled mode).\n useEnvironmentalEffect(() => {\n if (autoSize && inputRef.current) {\n adjustHeight();\n }\n }, [value]);\n\n useEffect(\n () => () => {\n mirrorRef.current?.remove();\n mirrorRef.current = null;\n },\n [],\n );\n\n return adjustHeight;\n}\n"],"mappings":"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"}
|