@wordpress/components 28.8.6 → 28.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -5
- package/build/alignment-matrix-control/icon.js.map +1 -1
- package/build/alignment-matrix-control/types.js.map +1 -1
- package/build/alignment-matrix-control/utils.js.map +1 -1
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +3 -3
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/autocomplete/get-default-use-items.js.map +1 -1
- package/build/autocomplete/index.js +5 -1
- package/build/autocomplete/index.js.map +1 -1
- package/build/base-control/hooks.js.map +1 -1
- package/build/base-control/index.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +3 -14
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/styles.js.map +1 -1
- package/build/border-box-control/utils.js.map +1 -1
- package/build/border-control/border-control/component.js +1 -2
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +2 -14
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/styles.js +13 -13
- package/build/border-control/styles.js.map +1 -1
- package/build/border-control/types.js.map +1 -1
- package/build/box-control/axial-input-controls.js.map +1 -1
- package/build/box-control/icon.js.map +1 -1
- package/build/box-control/index.js +4 -4
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/input-controls.js.map +1 -1
- package/build/box-control/types.js.map +1 -1
- package/build/button/index.native.js +1 -1
- package/build/button/index.native.js.map +1 -1
- package/build/card/card/component.js +1 -1
- package/build/card/card/component.js.map +1 -1
- package/build/card/styles.js.map +1 -1
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/index.native.js +2 -1
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/styles.js.map +1 -1
- package/build/combobox-control/index.js +1 -1
- package/build/combobox-control/index.js.map +1 -1
- package/build/composite/legacy/index.js.map +1 -1
- package/build/context/context-connect.js +1 -0
- package/build/context/context-connect.js.map +1 -1
- package/build/context/context-system-provider.js +1 -1
- package/build/context/context-system-provider.js.map +1 -1
- package/build/context/get-styled-class-name-from-key.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/custom-gradient-picker/index.js.map +1 -1
- package/build/custom-gradient-picker/serializer.js.map +1 -1
- package/build/custom-gradient-picker/utils.js.map +1 -1
- package/build/custom-select-control-v2/styles.js.map +1 -1
- package/build/dashicon/index.js.map +1 -1
- package/build/date-time/date/styles.js.map +1 -1
- package/build/date-time/time/timezone.js.map +1 -1
- package/build/draggable/index.js.map +1 -1
- package/build/drop-zone/index.js.map +1 -1
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/duotone-picker/color-list-picker/index.js.map +1 -1
- package/build/duotone-picker/utils.js.map +1 -1
- package/build/elevation/hook.js.map +1 -1
- package/build/external-link/index.js +20 -23
- package/build/external-link/index.js.map +1 -1
- package/build/focal-point-picker/index.js.map +1 -1
- package/build/focal-point-picker/index.native.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build/font-size-picker/index.js.map +1 -1
- package/build/form-token-field/index.js +2 -1
- package/build/form-token-field/index.js.map +1 -1
- package/build/form-token-field/suggestions-list.js.map +1 -1
- package/build/form-token-field/token-input.js.map +1 -1
- package/build/form-token-field/token.js +1 -1
- package/build/form-token-field/token.js.map +1 -1
- package/build/gradient-picker/index.js.map +1 -1
- package/build/grid/hook.js.map +1 -1
- package/build/guide/page-control.js +1 -1
- package/build/guide/page-control.js.map +1 -1
- package/build/h-stack/hook.js.map +1 -1
- package/build/heading/hook.js.map +1 -1
- package/build/index.js +36 -5
- package/build/index.js.map +1 -1
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-base.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/item-group/styles.js.map +1 -1
- package/build/menu-group/index.js.map +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build/mobile/bottom-sheet/cell.native.js +4 -4
- package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet/range-cell.native.js +1 -1
- package/build/mobile/bottom-sheet/range-cell.native.js.map +1 -1
- package/build/mobile/bottom-sheet/range-text-input.native.js.map +1 -1
- package/build/mobile/bottom-sheet/stepper-cell/index.native.js +1 -1
- package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet/switch-cell.native.js +4 -4
- package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
- package/build/mobile/cycle-select-control/index.native.js.map +1 -1
- package/build/mobile/gradient/index.native.js.map +1 -1
- package/build/mobile/image/index.native.js.map +1 -1
- package/build/mobile/link-picker/index.native.js +1 -1
- package/build/mobile/link-picker/index.native.js.map +1 -1
- package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
- package/build/mobile/picker/index.android.js.map +1 -1
- package/build/mobile/segmented-control/index.native.js.map +1 -1
- package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -1
- package/build/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
- package/build/modal/aria-helper.js +2 -1
- package/build/modal/aria-helper.js.map +1 -1
- package/build/modal/index.js +2 -1
- package/build/modal/index.js.map +1 -1
- package/build/modal/use-modal-exit-animation.js.map +1 -1
- package/build/navigation/group/index.js.map +1 -1
- package/build/navigation/item/base.js.map +1 -1
- package/build/navigation/menu/index.js.map +1 -1
- package/build/navigation/menu/menu-title-search.js +2 -2
- package/build/navigation/menu/menu-title-search.js.map +1 -1
- package/build/navigation/menu/menu-title.js.map +1 -1
- package/build/navigation/styles/navigation-styles.js.map +1 -1
- package/build/navigator/index.js +128 -32
- package/build/navigator/index.js.map +1 -1
- package/build/navigator/legacy.js +179 -0
- package/build/navigator/legacy.js.map +1 -0
- package/build/navigator/{navigator-provider → navigator}/component.js +5 -40
- package/build/navigator/navigator/component.js.map +1 -0
- package/build/navigator/navigator-back-button/component.js +2 -38
- package/build/navigator/navigator-back-button/component.js.map +1 -1
- package/build/navigator/navigator-back-button/hook.js +1 -1
- package/build/navigator/navigator-back-button/hook.js.map +1 -1
- package/build/navigator/navigator-button/component.js +2 -37
- package/build/navigator/navigator-button/component.js.map +1 -1
- package/build/navigator/navigator-button/hook.js +1 -1
- package/build/navigator/navigator-button/hook.js.map +1 -1
- package/build/navigator/navigator-screen/component.js +40 -62
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/navigator/navigator-screen/use-screen-animate-presence.js +114 -0
- package/build/navigator/navigator-screen/use-screen-animate-presence.js.map +1 -0
- package/build/navigator/navigator-to-parent-button/component.js +3 -7
- package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
- package/build/navigator/styles.js +78 -35
- package/build/navigator/styles.js.map +1 -1
- package/build/navigator/types.js.map +1 -1
- package/build/navigator/use-navigator.js +4 -1
- package/build/navigator/use-navigator.js.map +1 -1
- package/build/number-control/styles/number-control-styles.js.map +1 -1
- package/build/palette-edit/index.js +1 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +1 -1
- package/build/popover/index.js.map +1 -1
- package/build/popover/overlay-middlewares.js.map +1 -1
- package/build/popover/utils.js.map +1 -1
- package/build/progress-bar/index.js.map +1 -1
- package/build/progress-bar/styles.js.map +1 -1
- package/build/query-controls/index.js.map +1 -1
- package/build/query-controls/index.native.js.map +1 -1
- package/build/radio-control/index.js.map +1 -1
- package/build/radio-control/index.native.js.map +1 -1
- package/build/range-control/index.js.map +1 -1
- package/build/range-control/index.native.js.map +1 -1
- package/build/range-control/rail.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +32 -32
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/range-control/tooltip.js +1 -1
- package/build/range-control/tooltip.js.map +1 -1
- package/build/range-control/utils.js.map +1 -1
- package/build/resizable-box/resize-tooltip/label.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/responsive-wrapper/index.js.map +1 -1
- package/build/sandbox/index.js.map +1 -1
- package/build/sandbox/index.native.js.map +1 -1
- package/build/search-control/index.js +11 -2
- package/build/search-control/index.js.map +1 -1
- package/build/search-control/index.native.js.map +1 -1
- package/build/search-control/types.js.map +1 -1
- package/build/select-control/index.js.map +1 -1
- package/build/select-control/index.native.js.map +1 -1
- package/build/slot-fill/index.js.map +1 -1
- package/build/spinner/styles.js.map +1 -1
- package/build/style-provider/index.js +1 -0
- package/build/style-provider/index.js.map +1 -1
- package/build/surface/hook.js.map +1 -1
- package/build/surface/styles.js.map +1 -1
- package/build/tab-panel/index.js.map +1 -1
- package/build/tabs/index.js.map +1 -1
- package/build/tabs/styles.js +30 -12
- package/build/tabs/styles.js.map +1 -1
- package/build/tabs/tab.js +7 -2
- package/build/tabs/tab.js.map +1 -1
- package/build/tabs/tablist.js +71 -39
- package/build/tabs/tablist.js.map +1 -1
- package/build/tabs/tabpanel.js.map +1 -1
- package/build/tabs/use-track-overflow.js +73 -0
- package/build/tabs/use-track-overflow.js.map +1 -0
- package/build/text/get-line-height.js.map +1 -1
- package/build/text/styles/text-mixins.native.js.map +1 -1
- package/build/text/utils.js.map +1 -1
- package/build/text-control/index.native.js.map +1 -1
- package/build/text-highlight/index.js.map +1 -1
- package/build/textarea-control/index.js.map +1 -1
- package/build/theme/color-algorithms.js.map +1 -1
- package/build/theme/styles.js.map +1 -1
- package/build/toggle-control/index.js.map +1 -1
- package/build/toggle-control/index.native.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-button-group.js +4 -2
- package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js +13 -2
- package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +15 -8
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +7 -7
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/component.js +13 -20
- package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js +8 -9
- package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build/toggle-group-control/types.js.map +1 -1
- package/build/toolbar/toolbar/index.js.map +1 -1
- package/build/tools-panel/styles.js.map +1 -1
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/utils.js.map +1 -1
- package/build/utils/breakpoint.js.map +1 -1
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/config-values.js.map +1 -1
- package/build/utils/element-rect.js +22 -13
- package/build/utils/element-rect.js.map +1 -1
- package/build/utils/font-size.js.map +1 -1
- package/build/utils/hooks/use-animated-offset-rect.js +80 -0
- package/build/utils/hooks/use-animated-offset-rect.js.map +1 -0
- package/build/utils/hooks/use-cx.js.map +1 -1
- package/build/utils/hooks/use-on-value-update.js +3 -7
- package/build/utils/hooks/use-on-value-update.js.map +1 -1
- package/build/utils/math.js +2 -2
- package/build/utils/math.js.map +1 -1
- package/build/utils/space.js.map +1 -1
- package/build/utils/unit-values.js.map +1 -1
- package/build/utils/use-responsive-value.js.map +1 -1
- package/build-module/alignment-matrix-control/cell.js +1 -2
- package/build-module/alignment-matrix-control/cell.js.map +1 -1
- package/build-module/alignment-matrix-control/icon.js.map +1 -1
- package/build-module/alignment-matrix-control/types.js.map +1 -1
- package/build-module/alignment-matrix-control/utils.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/angle-picker-control/index.js +1 -2
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +4 -6
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.native.js +1 -2
- package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build-module/autocomplete/get-default-use-items.js.map +1 -1
- package/build-module/autocomplete/index.js +6 -4
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/base-control/hooks.js.map +1 -1
- package/build-module/base-control/index.js +1 -2
- package/build-module/base-control/index.js.map +1 -1
- package/build-module/base-control/index.native.js +1 -2
- package/build-module/base-control/index.native.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +4 -16
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js +1 -2
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build-module/border-box-control/styles.js.map +1 -1
- package/build-module/border-box-control/utils.js.map +1 -1
- package/build-module/border-control/border-control/component.js +2 -4
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +3 -17
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/styles.js +13 -13
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/border-control/types.js.map +1 -1
- package/build-module/box-control/all-input-control.js +1 -3
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js +1 -3
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/box-control/icon.js +1 -2
- package/build-module/box-control/icon.js.map +1 -1
- package/build-module/box-control/index.js +5 -6
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/input-controls.js +1 -3
- package/build-module/box-control/input-controls.js.map +1 -1
- package/build-module/box-control/types.js.map +1 -1
- package/build-module/button/index.js +1 -3
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/index.native.js +2 -3
- package/build-module/button/index.native.js.map +1 -1
- package/build-module/card/card/component.js +2 -3
- package/build-module/card/card/component.js.map +1 -1
- package/build-module/card/styles.js.map +1 -1
- package/build-module/checkbox-control/index.js +1 -2
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-option.js +1 -2
- package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker.js +1 -2
- package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build-module/color-indicator/index.native.js +1 -2
- package/build-module/color-indicator/index.native.js.map +1 -1
- package/build-module/color-palette/index.js +1 -2
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +3 -4
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/component.js +1 -2
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/hsl-input.js +1 -3
- package/build-module/color-picker/hsl-input.js.map +1 -1
- package/build-module/color-picker/hsv-color-picker.native.js +1 -2
- package/build-module/color-picker/hsv-color-picker.native.js.map +1 -1
- package/build-module/color-picker/hue-picker.native.js +1 -2
- package/build-module/color-picker/hue-picker.native.js.map +1 -1
- package/build-module/color-picker/index.native.js +1 -3
- package/build-module/color-picker/index.native.js.map +1 -1
- package/build-module/color-picker/input-with-slider.js +1 -2
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/color-picker/rgb-input.js +1 -3
- package/build-module/color-picker/rgb-input.js.map +1 -1
- package/build-module/color-picker/saturation-picker.native.js +1 -2
- package/build-module/color-picker/saturation-picker.native.js.map +1 -1
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/combobox-control/index.js +2 -3
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/composite/legacy/index.js.map +1 -1
- package/build-module/confirm-dialog/component.js +1 -3
- package/build-module/confirm-dialog/component.js.map +1 -1
- package/build-module/context/context-connect.js +1 -0
- package/build-module/context/context-connect.js.map +1 -1
- package/build-module/context/context-system-provider.js +1 -1
- package/build-module/context/context-system-provider.js.map +1 -1
- package/build-module/context/get-styled-class-name-from-key.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +1 -3
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/index.js +1 -2
- package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
- package/build-module/custom-gradient-picker/index.js +1 -2
- package/build-module/custom-gradient-picker/index.js.map +1 -1
- package/build-module/custom-gradient-picker/index.native.js +1 -3
- package/build-module/custom-gradient-picker/index.native.js.map +1 -1
- package/build-module/custom-gradient-picker/serializer.js.map +1 -1
- package/build-module/custom-gradient-picker/utils.js.map +1 -1
- package/build-module/custom-select-control/index.js +1 -3
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/custom-select-control-v2/custom-select.js +1 -2
- package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
- package/build-module/custom-select-control-v2/item.js +1 -2
- package/build-module/custom-select-control-v2/item.js.map +1 -1
- package/build-module/custom-select-control-v2/styles.js.map +1 -1
- package/build-module/dashicon/index.js.map +1 -1
- package/build-module/date-time/date/index.js +1 -2
- package/build-module/date-time/date/index.js.map +1 -1
- package/build-module/date-time/date/styles.js.map +1 -1
- package/build-module/date-time/date-time/index.js +1 -3
- package/build-module/date-time/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +1 -2
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/time/time-input/index.js +1 -2
- package/build-module/date-time/time/time-input/index.js.map +1 -1
- package/build-module/date-time/time/timezone.js.map +1 -1
- package/build-module/dimension-control/index.js +1 -3
- package/build-module/dimension-control/index.js.map +1 -1
- package/build-module/draggable/index.js +1 -3
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/drop-zone/index.js +1 -2
- package/build-module/drop-zone/index.js.map +1 -1
- package/build-module/dropdown/index.js +1 -2
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/dropdown/index.native.js +1 -2
- package/build-module/dropdown/index.native.js.map +1 -1
- package/build-module/dropdown-menu/index.js +1 -2
- package/build-module/dropdown-menu/index.js.map +1 -1
- package/build-module/dropdown-menu/index.native.js +1 -2
- package/build-module/dropdown-menu/index.native.js.map +1 -1
- package/build-module/dropdown-menu-v2/checkbox-item.js +1 -2
- package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -1
- package/build-module/dropdown-menu-v2/index.js +1 -3
- package/build-module/dropdown-menu-v2/index.js.map +1 -1
- package/build-module/dropdown-menu-v2/item.js +1 -2
- package/build-module/dropdown-menu-v2/item.js.map +1 -1
- package/build-module/dropdown-menu-v2/radio-item.js +1 -2
- package/build-module/dropdown-menu-v2/radio-item.js.map +1 -1
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/duotone-picker/color-list-picker/index.js +1 -3
- package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
- package/build-module/duotone-picker/duotone-picker.js +1 -2
- package/build-module/duotone-picker/duotone-picker.js.map +1 -1
- package/build-module/duotone-picker/utils.js.map +1 -1
- package/build-module/elevation/hook.js.map +1 -1
- package/build-module/external-link/index.js +21 -25
- package/build-module/external-link/index.js.map +1 -1
- package/build-module/external-link/index.native.js +1 -2
- package/build-module/external-link/index.native.js.map +1 -1
- package/build-module/focal-point-picker/controls.js +1 -2
- package/build-module/focal-point-picker/controls.js.map +1 -1
- package/build-module/focal-point-picker/focal-point.native.js +1 -2
- package/build-module/focal-point-picker/focal-point.native.js.map +1 -1
- package/build-module/focal-point-picker/grid.js +1 -2
- package/build-module/focal-point-picker/grid.js.map +1 -1
- package/build-module/focal-point-picker/index.js +1 -2
- package/build-module/focal-point-picker/index.js.map +1 -1
- package/build-module/focal-point-picker/index.native.js +1 -2
- package/build-module/focal-point-picker/index.native.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build-module/focal-point-picker/tooltip/index.native.js +1 -2
- package/build-module/focal-point-picker/tooltip/index.native.js.map +1 -1
- package/build-module/font-size-picker/index.js +1 -2
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/index.native.js +1 -3
- package/build-module/font-size-picker/index.native.js.map +1 -1
- package/build-module/form-file-upload/index.js +1 -2
- package/build-module/form-file-upload/index.js.map +1 -1
- package/build-module/form-toggle/index.js +1 -2
- package/build-module/form-toggle/index.js.map +1 -1
- package/build-module/form-token-field/index.js +3 -3
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/form-token-field/suggestions-list.js +1 -2
- package/build-module/form-token-field/suggestions-list.js.map +1 -1
- package/build-module/form-token-field/token-input.js.map +1 -1
- package/build-module/form-token-field/token.js +2 -3
- package/build-module/form-token-field/token.js.map +1 -1
- package/build-module/gradient-picker/index.js +1 -2
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/grid/hook.js.map +1 -1
- package/build-module/guide/index.js +1 -2
- package/build-module/guide/index.js.map +1 -1
- package/build-module/guide/page-control.js +1 -1
- package/build-module/guide/page-control.js.map +1 -1
- package/build-module/h-stack/hook.js.map +1 -1
- package/build-module/heading/hook.js.map +1 -1
- package/build-module/higher-order/with-fallback-styles/index.js +3 -4
- package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
- package/build-module/index.js +14 -4
- package/build-module/index.js.map +1 -1
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-base.js +1 -2
- package/build-module/input-control/input-base.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/item-group/styles.js.map +1 -1
- package/build-module/keyboard-shortcuts/index.js +1 -3
- package/build-module/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/menu-group/index.js +1 -2
- package/build-module/menu-group/index.js.map +1 -1
- package/build-module/menu-item/index.js +1 -2
- package/build-module/menu-item/index.js.map +1 -1
- package/build-module/menu-items-choice/index.js +1 -2
- package/build-module/menu-items-choice/index.js.map +1 -1
- package/build-module/mobile/badge/index.native.js +1 -3
- package/build-module/mobile/badge/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -2
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/cell.native.js +5 -6
- package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/color-cell.native.js +1 -2
- package/build-module/mobile/bottom-sheet/color-cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/index.native.js +1 -3
- package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js +1 -2
- package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/nav-bar/back-button.native.js +1 -2
- package/build-module/mobile/bottom-sheet/nav-bar/back-button.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/range-cell.native.js +2 -3
- package/build-module/mobile/bottom-sheet/range-cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/range-text-input.native.js +1 -2
- package/build-module/mobile/bottom-sheet/range-text-input.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js +2 -3
- package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/stepper-cell/stepper.android.js +1 -2
- package/build-module/mobile/bottom-sheet/stepper-cell/stepper.android.js.map +1 -1
- package/build-module/mobile/bottom-sheet/stepper-cell/stepper.ios.js +1 -2
- package/build-module/mobile/bottom-sheet/stepper-cell/stepper.ios.js.map +1 -1
- package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js +1 -3
- package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/switch-cell.native.js +4 -4
- package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet-select-control/index.native.js +1 -3
- package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet-text-control/index.native.js +1 -3
- package/build-module/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
- package/build-module/mobile/color-settings/gradient-picker-screen.native.js +1 -2
- package/build-module/mobile/color-settings/gradient-picker-screen.native.js.map +1 -1
- package/build-module/mobile/color-settings/index.native.js +1 -2
- package/build-module/mobile/color-settings/index.native.js.map +1 -1
- package/build-module/mobile/color-settings/palette.screen.native.js +1 -3
- package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build-module/mobile/cycle-select-control/index.native.js.map +1 -1
- package/build-module/mobile/focal-point-settings-panel/index.native.js +1 -2
- package/build-module/mobile/focal-point-settings-panel/index.native.js.map +1 -1
- package/build-module/mobile/gradient/index.native.js +1 -2
- package/build-module/mobile/gradient/index.native.js.map +1 -1
- package/build-module/mobile/html-text-input/index.native.js +1 -2
- package/build-module/mobile/html-text-input/index.native.js.map +1 -1
- package/build-module/mobile/image/icon-retry.native.js +1 -2
- package/build-module/mobile/image/icon-retry.native.js.map +1 -1
- package/build-module/mobile/image/image-editing-button.native.js +1 -2
- package/build-module/mobile/image/image-editing-button.native.js.map +1 -1
- package/build-module/mobile/image/index.native.js +1 -3
- package/build-module/mobile/image/index.native.js.map +1 -1
- package/build-module/mobile/keyboard-avoiding-view/index.ios.js +1 -2
- package/build-module/mobile/keyboard-avoiding-view/index.ios.js.map +1 -1
- package/build-module/mobile/link-picker/index.native.js +2 -3
- package/build-module/mobile/link-picker/index.native.js.map +1 -1
- package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
- package/build-module/mobile/link-settings/index.native.js +1 -3
- package/build-module/mobile/link-settings/index.native.js.map +1 -1
- package/build-module/mobile/link-settings/link-settings-navigation.native.js +1 -2
- package/build-module/mobile/link-settings/link-settings-navigation.native.js.map +1 -1
- package/build-module/mobile/picker/index.android.js +1 -2
- package/build-module/mobile/picker/index.android.js.map +1 -1
- package/build-module/mobile/segmented-control/index.native.js +1 -2
- package/build-module/mobile/segmented-control/index.native.js.map +1 -1
- package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -1
- package/build-module/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
- package/build-module/modal/aria-helper.js +2 -1
- package/build-module/modal/aria-helper.js.map +1 -1
- package/build-module/modal/index.js +3 -4
- package/build-module/modal/index.js.map +1 -1
- package/build-module/modal/use-modal-exit-animation.js.map +1 -1
- package/build-module/navigation/back-button/index.js +1 -2
- package/build-module/navigation/back-button/index.js.map +1 -1
- package/build-module/navigation/group/index.js +1 -2
- package/build-module/navigation/group/index.js.map +1 -1
- package/build-module/navigation/item/base-content.js +1 -3
- package/build-module/navigation/item/base-content.js.map +1 -1
- package/build-module/navigation/item/base.js.map +1 -1
- package/build-module/navigation/item/index.js +1 -2
- package/build-module/navigation/item/index.js.map +1 -1
- package/build-module/navigation/menu/index.js +1 -2
- package/build-module/navigation/menu/index.js.map +1 -1
- package/build-module/navigation/menu/menu-title-search.js +2 -2
- package/build-module/navigation/menu/menu-title-search.js.map +1 -1
- package/build-module/navigation/menu/menu-title.js +1 -2
- package/build-module/navigation/menu/menu-title.js.map +1 -1
- package/build-module/navigation/menu/search-no-results-found.js +1 -2
- package/build-module/navigation/menu/search-no-results-found.js.map +1 -1
- package/build-module/navigation/styles/navigation-styles.js.map +1 -1
- package/build-module/navigator/index.js +130 -5
- package/build-module/navigator/index.js.map +1 -1
- package/build-module/navigator/legacy.js +167 -0
- package/build-module/navigator/legacy.js.map +1 -0
- package/build-module/navigator/{navigator-provider → navigator}/component.js +4 -39
- package/build-module/navigator/navigator/component.js.map +1 -0
- package/build-module/navigator/navigator-back-button/component.js +1 -37
- package/build-module/navigator/navigator-back-button/component.js.map +1 -1
- package/build-module/navigator/navigator-back-button/hook.js +1 -1
- package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
- package/build-module/navigator/navigator-button/component.js +1 -36
- package/build-module/navigator/navigator-button/component.js.map +1 -1
- package/build-module/navigator/navigator-button/hook.js +1 -1
- package/build-module/navigator/navigator-button/hook.js.map +1 -1
- package/build-module/navigator/navigator-screen/component.js +39 -61
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/navigator/navigator-screen/use-screen-animate-presence.js +106 -0
- package/build-module/navigator/navigator-screen/use-screen-animate-presence.js.map +1 -0
- package/build-module/navigator/navigator-to-parent-button/component.js +2 -6
- package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
- package/build-module/navigator/styles.js +77 -33
- package/build-module/navigator/styles.js.map +1 -1
- package/build-module/navigator/types.js.map +1 -1
- package/build-module/navigator/use-navigator.js +4 -1
- package/build-module/navigator/use-navigator.js.map +1 -1
- package/build-module/notice/index.js +1 -2
- package/build-module/notice/index.js.map +1 -1
- package/build-module/notice/index.native.js +1 -3
- package/build-module/notice/index.native.js.map +1 -1
- package/build-module/number-control/index.js +1 -3
- package/build-module/number-control/index.js.map +1 -1
- package/build-module/number-control/styles/number-control-styles.js.map +1 -1
- package/build-module/palette-edit/index.js +2 -4
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/panel/actions.native.js +1 -2
- package/build-module/panel/actions.native.js.map +1 -1
- package/build-module/panel/body.js +1 -2
- package/build-module/panel/body.js.map +1 -1
- package/build-module/panel/body.native.js +1 -2
- package/build-module/panel/body.native.js.map +1 -1
- package/build-module/panel/header.js +1 -2
- package/build-module/panel/header.js.map +1 -1
- package/build-module/panel/index.js +1 -2
- package/build-module/panel/index.js.map +1 -1
- package/build-module/placeholder/index.js +1 -2
- package/build-module/placeholder/index.js.map +1 -1
- package/build-module/popover/index.js +2 -4
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/overlay-middlewares.js.map +1 -1
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/progress-bar/index.js +1 -2
- package/build-module/progress-bar/index.js.map +1 -1
- package/build-module/progress-bar/styles.js.map +1 -1
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/query-controls/index.native.js +1 -3
- package/build-module/query-controls/index.native.js.map +1 -1
- package/build-module/radio-control/index.js +1 -2
- package/build-module/radio-control/index.js.map +1 -1
- package/build-module/radio-control/index.native.js +1 -2
- package/build-module/radio-control/index.native.js.map +1 -1
- package/build-module/range-control/index.js +1 -2
- package/build-module/range-control/index.js.map +1 -1
- package/build-module/range-control/index.native.js.map +1 -1
- package/build-module/range-control/mark.js +1 -3
- package/build-module/range-control/mark.js.map +1 -1
- package/build-module/range-control/rail.js +1 -3
- package/build-module/range-control/rail.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +32 -32
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/range-control/tooltip.js +1 -1
- package/build-module/range-control/tooltip.js.map +1 -1
- package/build-module/range-control/utils.js.map +1 -1
- package/build-module/resizable-box/index.js +1 -2
- package/build-module/resizable-box/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/index.js +1 -2
- package/build-module/resizable-box/resize-tooltip/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/label.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/responsive-wrapper/index.js.map +1 -1
- package/build-module/sandbox/index.js +1 -2
- package/build-module/sandbox/index.js.map +1 -1
- package/build-module/sandbox/index.native.js +1 -2
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/search-control/index.js +11 -2
- package/build-module/search-control/index.js.map +1 -1
- package/build-module/search-control/index.native.js +1 -2
- package/build-module/search-control/index.native.js.map +1 -1
- package/build-module/search-control/types.js.map +1 -1
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/select-control/index.native.js.map +1 -1
- package/build-module/slot-fill/index.js +1 -3
- package/build-module/slot-fill/index.js.map +1 -1
- package/build-module/slot-fill/slot.js +1 -2
- package/build-module/slot-fill/slot.js.map +1 -1
- package/build-module/snackbar/index.js +1 -2
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/snackbar/list.js +1 -2
- package/build-module/snackbar/list.js.map +1 -1
- package/build-module/spinner/index.js +1 -2
- package/build-module/spinner/index.js.map +1 -1
- package/build-module/spinner/styles.js.map +1 -1
- package/build-module/style-provider/index.js +1 -0
- package/build-module/style-provider/index.js.map +1 -1
- package/build-module/surface/hook.js.map +1 -1
- package/build-module/surface/styles.js.map +1 -1
- package/build-module/tab-panel/index.js +1 -2
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/tabs/index.js.map +1 -1
- package/build-module/tabs/styles.js +28 -6
- package/build-module/tabs/styles.js.map +1 -1
- package/build-module/tabs/tab.js +9 -4
- package/build-module/tabs/tab.js.map +1 -1
- package/build-module/tabs/tablist.js +72 -40
- package/build-module/tabs/tablist.js.map +1 -1
- package/build-module/tabs/tabpanel.js.map +1 -1
- package/build-module/tabs/use-track-overflow.js +67 -0
- package/build-module/tabs/use-track-overflow.js.map +1 -0
- package/build-module/text/get-line-height.js.map +1 -1
- package/build-module/text/styles/text-mixins.native.js.map +1 -1
- package/build-module/text/utils.js.map +1 -1
- package/build-module/text-control/index.native.js.map +1 -1
- package/build-module/text-highlight/index.js +1 -2
- package/build-module/text-highlight/index.js.map +1 -1
- package/build-module/textarea-control/index.js.map +1 -1
- package/build-module/theme/color-algorithms.js.map +1 -1
- package/build-module/theme/styles.js.map +1 -1
- package/build-module/tip/index.js +1 -2
- package/build-module/tip/index.js.map +1 -1
- package/build-module/toggle-control/index.js +1 -2
- package/build-module/toggle-control/index.js.map +1 -1
- package/build-module/toggle-control/index.native.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.js +4 -2
- package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +14 -3
- package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +17 -12
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -7
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +16 -25
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +7 -8
- package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
- package/build-module/toggle-group-control/types.js.map +1 -1
- package/build-module/toolbar/toolbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar-button/toolbar-button-container.native.js +2 -2
- package/build-module/toolbar/toolbar-button/toolbar-button-container.native.js.map +1 -1
- package/build-module/toolbar/toolbar-group/index.js +1 -2
- package/build-module/toolbar/toolbar-group/index.js.map +1 -1
- package/build-module/tools-panel/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +1 -2
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +1 -3
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tooltip/index.js +1 -2
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tooltip/index.native.js +1 -3
- package/build-module/tooltip/index.native.js.map +1 -1
- package/build-module/tree-grid/cell.js +1 -2
- package/build-module/tree-grid/cell.js.map +1 -1
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/index.native.js +1 -3
- package/build-module/unit-control/index.native.js.map +1 -1
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-module/utils/breakpoint.js.map +1 -1
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/config-values.js.map +1 -1
- package/build-module/utils/element-rect.js +22 -12
- package/build-module/utils/element-rect.js.map +1 -1
- package/build-module/utils/font-size.js.map +1 -1
- package/build-module/utils/hooks/use-animated-offset-rect.js +74 -0
- package/build-module/utils/hooks/use-animated-offset-rect.js.map +1 -0
- package/build-module/utils/hooks/use-cx.js.map +1 -1
- package/build-module/utils/hooks/use-on-value-update.js +3 -6
- package/build-module/utils/hooks/use-on-value-update.js.map +1 -1
- package/build-module/utils/math.js +2 -2
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/space.js.map +1 -1
- package/build-module/utils/unit-values.js.map +1 -1
- package/build-module/utils/use-responsive-value.js.map +1 -1
- package/build-style/style-rtl.css +30 -14
- package/build-style/style.css +30 -14
- package/build-types/alignment-matrix-control/types.d.ts +2 -0
- package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
- package/build-types/autocomplete/index.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/component.d.ts +5 -15
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +2 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.story.d.ts +3 -2
- package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts +3 -2
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts +2 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -1
- package/build-types/border-control/stories/index.story.d.ts +15 -30
- package/build-types/border-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +12 -7
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/box-control/index.d.ts +4 -4
- package/build-types/box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/box-control/types.d.ts +3 -3
- package/build-types/composite/stories/index.story.d.ts +22 -0
- package/build-types/composite/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
- package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
- package/build-types/index.d.ts +23 -4
- package/build-types/index.d.ts.map +1 -1
- package/build-types/modal/aria-helper.d.ts.map +1 -1
- package/build-types/navigator/index.d.ts +171 -5
- package/build-types/navigator/index.d.ts.map +1 -1
- package/build-types/navigator/legacy.d.ts +226 -0
- package/build-types/navigator/legacy.d.ts.map +1 -0
- package/build-types/navigator/navigator/component.d.ts +3 -0
- package/build-types/navigator/navigator/component.d.ts.map +1 -0
- package/build-types/navigator/navigator-back-button/component.d.ts +0 -35
- package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-button/component.d.ts +0 -34
- package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/component.d.ts +0 -35
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts +16 -0
- package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts.map +1 -0
- package/build-types/navigator/navigator-to-parent-button/component.d.ts +0 -4
- package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
- package/build-types/navigator/stories/index.story.d.ts +5 -5
- package/build-types/navigator/stories/index.story.d.ts.map +1 -1
- package/build-types/navigator/styles.d.ts +20 -7
- package/build-types/navigator/styles.d.ts.map +1 -1
- package/build-types/navigator/types.d.ts +19 -1
- package/build-types/navigator/types.d.ts.map +1 -1
- package/build-types/navigator/use-navigator.d.ts +4 -1
- package/build-types/navigator/use-navigator.d.ts.map +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
- package/build-types/search-control/index.d.ts.map +1 -1
- package/build-types/search-control/stories/index.story.d.ts +0 -8
- package/build-types/search-control/stories/index.story.d.ts.map +1 -1
- package/build-types/search-control/types.d.ts +3 -0
- package/build-types/search-control/types.d.ts.map +1 -1
- package/build-types/select-control/stories/index.story.d.ts +7 -0
- package/build-types/select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/tabs/stories/index.story.d.ts +2 -1
- package/build-types/tabs/stories/index.story.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts +7 -0
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/tabs/tab.d.ts.map +1 -1
- package/build-types/tabs/tablist.d.ts.map +1 -1
- package/build-types/tabs/use-track-overflow.d.ts +17 -0
- package/build-types/tabs/use-track-overflow.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -2
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +0 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +2 -1
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/utils/element-rect.d.ts +8 -0
- package/build-types/utils/element-rect.d.ts.map +1 -1
- package/build-types/utils/hooks/use-animated-offset-rect.d.ts +62 -0
- package/build-types/utils/hooks/use-animated-offset-rect.d.ts.map +1 -0
- package/build-types/utils/hooks/use-on-value-update.d.ts.map +1 -1
- package/package.json +20 -20
- package/schemas/docs-manifest.json +38 -0
- package/src/alignment-matrix-control/README.md +46 -36
- package/src/alignment-matrix-control/docs-manifest.json +12 -0
- package/src/alignment-matrix-control/types.ts +2 -0
- package/src/angle-picker-control/README.md +36 -23
- package/src/angle-picker-control/docs-manifest.json +5 -0
- package/src/autocomplete/index.tsx +4 -1
- package/src/border-box-control/border-box-control/README.md +22 -26
- package/src/border-box-control/border-box-control/component.tsx +3 -14
- package/src/border-box-control/stories/index.story.tsx +2 -1
- package/src/border-control/border-control/README.md +26 -36
- package/src/border-control/border-control/component.tsx +1 -2
- package/src/border-control/border-control-dropdown/component.tsx +1 -15
- package/src/border-control/stories/index.story.tsx +4 -10
- package/src/border-control/styles.ts +0 -1
- package/src/border-control/test/index.js +2 -15
- package/src/border-control/types.ts +12 -7
- package/src/box-control/README.md +9 -12
- package/src/box-control/index.tsx +4 -4
- package/src/box-control/stories/index.story.tsx +1 -1
- package/src/box-control/types.ts +3 -3
- package/src/button/style.scss +5 -1
- package/src/composite/legacy/test/index.tsx +22 -21
- package/src/composite/stories/index.story.tsx +42 -0
- package/src/composite/test/index.tsx +629 -38
- package/src/dropdown/stories/index.story.tsx +1 -0
- package/src/dropdown/style.scss +10 -13
- package/src/dropdown-menu/stories/index.story.tsx +3 -0
- package/src/index.ts +19 -1
- package/src/menu-group/style.scss +4 -1
- package/src/menu-items-choice/style.scss +2 -0
- package/src/modal/aria-helper.ts +1 -0
- package/src/navigator/README.md +176 -0
- package/src/navigator/index.tsx +131 -0
- package/src/navigator/legacy.ts +169 -0
- package/src/navigator/{navigator-provider → navigator}/component.tsx +6 -44
- package/src/navigator/navigator-back-button/component.tsx +1 -37
- package/src/navigator/navigator-back-button/hook.ts +1 -1
- package/src/navigator/navigator-button/component.tsx +1 -36
- package/src/navigator/navigator-button/hook.ts +1 -1
- package/src/navigator/navigator-screen/component.tsx +48 -76
- package/src/navigator/navigator-screen/use-screen-animate-presence.ts +177 -0
- package/src/navigator/navigator-to-parent-button/component.tsx +2 -7
- package/src/navigator/stories/index.story.tsx +55 -54
- package/src/navigator/styles.ts +112 -41
- package/src/navigator/test/index.tsx +47 -47
- package/src/navigator/types.ts +19 -1
- package/src/navigator/use-navigator.ts +4 -1
- package/src/range-control/styles/range-control-styles.ts +19 -10
- package/src/range-control/tooltip.tsx +1 -1
- package/src/search-control/README.md +2 -0
- package/src/search-control/index.tsx +9 -2
- package/src/search-control/stories/index.story.tsx +0 -15
- package/src/search-control/test/index.tsx +4 -1
- package/src/search-control/types.ts +3 -0
- package/src/select-control/stories/index.story.tsx +14 -1
- package/src/tabs/stories/index.story.tsx +106 -0
- package/src/tabs/styles.ts +161 -58
- package/src/tabs/tab.tsx +8 -2
- package/src/tabs/tablist.tsx +72 -39
- package/src/tabs/use-track-overflow.ts +76 -0
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +208 -44
- package/src/toggle-group-control/test/index.tsx +26 -0
- package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +18 -10
- package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +30 -12
- package/src/toggle-group-control/toggle-group-control/component.tsx +19 -6
- package/src/toggle-group-control/toggle-group-control/styles.ts +41 -0
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +15 -28
- package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +0 -11
- package/src/toggle-group-control/types.ts +3 -1
- package/src/tools-panel/tools-panel/README.md +10 -10
- package/src/utils/element-rect.ts +32 -15
- package/src/utils/hooks/use-animated-offset-rect.ts +107 -0
- package/src/utils/hooks/use-on-value-update.ts +3 -6
- package/tsconfig.tsbuildinfo +1 -1
- package/build/navigator/navigator-provider/component.js.map +0 -1
- package/build/utils/hooks/use-event.js +0 -41
- package/build/utils/hooks/use-event.js.map +0 -1
- package/build-module/navigator/navigator-provider/component.js.map +0 -1
- package/build-module/utils/hooks/use-event.js +0 -35
- package/build-module/utils/hooks/use-event.js.map +0 -1
- package/build-types/navigator/navigator-provider/component.d.ts +0 -37
- package/build-types/navigator/navigator-provider/component.d.ts.map +0 -1
- package/build-types/utils/hooks/use-event.d.ts +0 -20
- package/build-types/utils/hooks/use-event.d.ts.map +0 -1
- package/src/navigator/index.ts +0 -6
- package/src/navigator/navigator-back-button/README.md +0 -15
- package/src/navigator/navigator-button/README.md +0 -38
- package/src/navigator/navigator-provider/README.md +0 -94
- package/src/navigator/navigator-screen/README.md +0 -33
- package/src/navigator/navigator-to-parent-button/README.md +0 -17
- package/src/utils/hooks/use-event.ts +0 -38
|
@@ -9,7 +9,7 @@ import { useStoreState } from '@ariakit/react';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { useInstanceId } from '@wordpress/compose';
|
|
12
|
-
import { forwardRef, useMemo } from '@wordpress/element';
|
|
12
|
+
import { forwardRef, useEffect, useMemo } from '@wordpress/element';
|
|
13
13
|
import { isRTL } from '@wordpress/i18n';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -33,6 +33,7 @@ function UnforwardedToggleGroupControlAsRadioGroup(
|
|
|
33
33
|
size,
|
|
34
34
|
value: valueProp,
|
|
35
35
|
id: idProp,
|
|
36
|
+
setSelectedElement,
|
|
36
37
|
...otherProps
|
|
37
38
|
}: WordPressComponentProps<
|
|
38
39
|
ToggleGroupControlMainControlProps,
|
|
@@ -72,18 +73,35 @@ function UnforwardedToggleGroupControlAsRadioGroup(
|
|
|
72
73
|
const selectedValue = useStoreState( radio, 'value' );
|
|
73
74
|
const setValue = radio.setValue;
|
|
74
75
|
|
|
76
|
+
// Ensures that the active id is also reset after the value is "reset" by the consumer.
|
|
77
|
+
useEffect( () => {
|
|
78
|
+
if ( selectedValue === '' ) {
|
|
79
|
+
radio.setActiveId( undefined );
|
|
80
|
+
}
|
|
81
|
+
}, [ radio, selectedValue ] );
|
|
82
|
+
|
|
75
83
|
const groupContextValue = useMemo(
|
|
76
|
-
() =>
|
|
77
|
-
(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
(): ToggleGroupControlContextProps => ( {
|
|
85
|
+
activeItemIsNotFirstItem: () =>
|
|
86
|
+
radio.getState().activeId !== radio.first(),
|
|
87
|
+
baseId,
|
|
88
|
+
isBlock: ! isAdaptiveWidth,
|
|
89
|
+
size,
|
|
90
|
+
// @ts-expect-error - This is wrong and we should fix it.
|
|
91
|
+
value: selectedValue,
|
|
92
|
+
// @ts-expect-error - This is wrong and we should fix it.
|
|
93
|
+
setValue,
|
|
94
|
+
setSelectedElement,
|
|
95
|
+
} ),
|
|
96
|
+
[
|
|
97
|
+
baseId,
|
|
98
|
+
isAdaptiveWidth,
|
|
99
|
+
radio,
|
|
100
|
+
selectedValue,
|
|
101
|
+
setSelectedElement,
|
|
102
|
+
setValue,
|
|
103
|
+
size,
|
|
104
|
+
]
|
|
87
105
|
);
|
|
88
106
|
|
|
89
107
|
return (
|
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import type { ForwardedRef } from 'react';
|
|
5
|
-
import { LayoutGroup } from 'framer-motion';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* WordPress dependencies
|
|
9
8
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import { useMemo } from '@wordpress/element';
|
|
9
|
+
import { useMemo, useState } from '@wordpress/element';
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
12
|
* Internal dependencies
|
|
@@ -22,6 +20,9 @@ import { VisualLabelWrapper } from './styles';
|
|
|
22
20
|
import * as styles from './styles';
|
|
23
21
|
import { ToggleGroupControlAsRadioGroup } from './as-radio-group';
|
|
24
22
|
import { ToggleGroupControlAsButtonGroup } from './as-button-group';
|
|
23
|
+
import { useTrackElementOffsetRect } from '../../utils/element-rect';
|
|
24
|
+
import { useMergeRefs } from '@wordpress/compose';
|
|
25
|
+
import { useAnimatedOffsetRect } from '../../utils/hooks/use-animated-offset-rect';
|
|
25
26
|
|
|
26
27
|
function UnconnectedToggleGroupControl(
|
|
27
28
|
props: WordPressComponentProps< ToggleGroupControlProps, 'div', false >,
|
|
@@ -44,10 +45,21 @@ function UnconnectedToggleGroupControl(
|
|
|
44
45
|
...otherProps
|
|
45
46
|
} = useContextSystem( props, 'ToggleGroupControl' );
|
|
46
47
|
|
|
47
|
-
const baseId = useInstanceId( ToggleGroupControl, 'toggle-group-control' );
|
|
48
48
|
const normalizedSize =
|
|
49
49
|
__next40pxDefaultSize && size === 'default' ? '__unstable-large' : size;
|
|
50
50
|
|
|
51
|
+
const [ selectedElement, setSelectedElement ] = useState< HTMLElement >();
|
|
52
|
+
const [ controlElement, setControlElement ] = useState< HTMLElement >();
|
|
53
|
+
const refs = useMergeRefs( [ setControlElement, forwardedRef ] );
|
|
54
|
+
const selectedRect = useTrackElementOffsetRect(
|
|
55
|
+
value ? selectedElement : undefined
|
|
56
|
+
);
|
|
57
|
+
useAnimatedOffsetRect( controlElement, selectedRect, {
|
|
58
|
+
prefix: 'selected',
|
|
59
|
+
dataAttribute: 'indicator-animated',
|
|
60
|
+
transitionEndFilter: ( event ) => event.pseudoElement === '::before',
|
|
61
|
+
} );
|
|
62
|
+
|
|
51
63
|
const cx = useCx();
|
|
52
64
|
|
|
53
65
|
const classes = useMemo(
|
|
@@ -81,15 +93,16 @@ function UnconnectedToggleGroupControl(
|
|
|
81
93
|
) }
|
|
82
94
|
<MainControl
|
|
83
95
|
{ ...otherProps }
|
|
96
|
+
setSelectedElement={ setSelectedElement }
|
|
84
97
|
className={ classes }
|
|
85
98
|
isAdaptiveWidth={ isAdaptiveWidth }
|
|
86
99
|
label={ label }
|
|
87
100
|
onChange={ onChange }
|
|
88
|
-
ref={
|
|
101
|
+
ref={ refs }
|
|
89
102
|
size={ normalizedSize }
|
|
90
103
|
value={ value }
|
|
91
104
|
>
|
|
92
|
-
|
|
105
|
+
{ children }
|
|
93
106
|
</MainControl>
|
|
94
107
|
</BaseControl>
|
|
95
108
|
);
|
|
@@ -26,6 +26,47 @@ export const toggleGroupControl = ( {
|
|
|
26
26
|
|
|
27
27
|
${ toggleGroupControlSize( size ) }
|
|
28
28
|
${ ! isDeselectable && enclosingBorders( isBlock ) }
|
|
29
|
+
|
|
30
|
+
@media not ( prefers-reduced-motion ) {
|
|
31
|
+
&[data-indicator-animated]::before {
|
|
32
|
+
transition-property: transform, border-radius;
|
|
33
|
+
transition-duration: 0.2s;
|
|
34
|
+
transition-timing-function: ease-out;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&::before {
|
|
39
|
+
content: '';
|
|
40
|
+
position: absolute;
|
|
41
|
+
pointer-events: none;
|
|
42
|
+
background: ${ COLORS.gray[ 900 ] };
|
|
43
|
+
|
|
44
|
+
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
45
|
+
outline: 2px solid transparent;
|
|
46
|
+
outline-offset: -3px;
|
|
47
|
+
|
|
48
|
+
/* Using a large value to avoid antialiasing rounding issues
|
|
49
|
+
when scaling in the transform, see: https://stackoverflow.com/a/52159123 */
|
|
50
|
+
--antialiasing-factor: 100;
|
|
51
|
+
/* Adjusting the border radius to match the scaling in the x axis. */
|
|
52
|
+
border-radius: calc(
|
|
53
|
+
${ CONFIG.radiusXSmall } /
|
|
54
|
+
(
|
|
55
|
+
var( --selected-width, 0 ) /
|
|
56
|
+
var( --antialiasing-factor )
|
|
57
|
+
)
|
|
58
|
+
) / ${ CONFIG.radiusXSmall };
|
|
59
|
+
left: -1px; // Correcting for border.
|
|
60
|
+
width: calc( var( --antialiasing-factor ) * 1px );
|
|
61
|
+
height: calc( var( --selected-height, 0 ) * 1px );
|
|
62
|
+
transform-origin: left top;
|
|
63
|
+
transform: translateX( calc( var( --selected-left, 0 ) * 1px ) )
|
|
64
|
+
scaleX(
|
|
65
|
+
calc(
|
|
66
|
+
var( --selected-width, 0 ) / var( --antialiasing-factor )
|
|
67
|
+
)
|
|
68
|
+
);
|
|
69
|
+
}
|
|
29
70
|
`;
|
|
30
71
|
|
|
31
72
|
const enclosingBorders = ( isBlock: ToggleGroupControlProps[ 'isBlock' ] ) => {
|
|
@@ -3,13 +3,12 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { ForwardedRef } from 'react';
|
|
5
5
|
import * as Ariakit from '@ariakit/react';
|
|
6
|
-
import { motion } from 'framer-motion';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* WordPress dependencies
|
|
10
9
|
*/
|
|
11
|
-
import {
|
|
12
|
-
import { useMemo } from '@wordpress/element';
|
|
10
|
+
import { useInstanceId } from '@wordpress/compose';
|
|
11
|
+
import { useLayoutEffect, useMemo, useRef } from '@wordpress/element';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Internal dependencies
|
|
@@ -27,12 +26,6 @@ import Tooltip from '../../tooltip';
|
|
|
27
26
|
|
|
28
27
|
const { ButtonContentView, LabelView } = styles;
|
|
29
28
|
|
|
30
|
-
const REDUCED_MOTION_TRANSITION_CONFIG = {
|
|
31
|
-
duration: 0,
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const LAYOUT_ID = 'toggle-group-backdrop-shared-layout-id';
|
|
35
|
-
|
|
36
29
|
const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
|
|
37
30
|
if ( showTooltip && text ) {
|
|
38
31
|
return (
|
|
@@ -58,7 +51,6 @@ function ToggleGroupControlOptionBase(
|
|
|
58
51
|
>,
|
|
59
52
|
forwardedRef: ForwardedRef< any >
|
|
60
53
|
) {
|
|
61
|
-
const shouldReduceMotion = useReducedMotion();
|
|
62
54
|
const toggleGroupControlContext = useToggleGroupControlContext();
|
|
63
55
|
|
|
64
56
|
const id = useInstanceId(
|
|
@@ -106,7 +98,6 @@ function ToggleGroupControlOptionBase(
|
|
|
106
98
|
),
|
|
107
99
|
[ cx, isDeselectable, isIcon, isPressed, size, className ]
|
|
108
100
|
);
|
|
109
|
-
const backdropClasses = useMemo( () => cx( styles.backdropView ), [ cx ] );
|
|
110
101
|
|
|
111
102
|
const buttonOnClick = () => {
|
|
112
103
|
if ( isDeselectable && isPressed ) {
|
|
@@ -123,8 +114,15 @@ function ToggleGroupControlOptionBase(
|
|
|
123
114
|
ref: forwardedRef,
|
|
124
115
|
};
|
|
125
116
|
|
|
117
|
+
const labelRef = useRef< HTMLDivElement | null >( null );
|
|
118
|
+
useLayoutEffect( () => {
|
|
119
|
+
if ( isPressed && labelRef.current ) {
|
|
120
|
+
toggleGroupControlContext.setSelectedElement( labelRef.current );
|
|
121
|
+
}
|
|
122
|
+
}, [ isPressed, toggleGroupControlContext ] );
|
|
123
|
+
|
|
126
124
|
return (
|
|
127
|
-
<LabelView className={ labelViewClasses }>
|
|
125
|
+
<LabelView ref={ labelRef } className={ labelViewClasses }>
|
|
128
126
|
<WithToolTip
|
|
129
127
|
showTooltip={ showTooltip }
|
|
130
128
|
text={ otherButtonProps[ 'aria-label' ] }
|
|
@@ -143,10 +141,14 @@ function ToggleGroupControlOptionBase(
|
|
|
143
141
|
<Ariakit.Radio
|
|
144
142
|
disabled={ disabled }
|
|
145
143
|
onFocusVisible={ () => {
|
|
144
|
+
const selectedValueIsEmpty =
|
|
145
|
+
toggleGroupControlContext.value === null ||
|
|
146
|
+
toggleGroupControlContext.value === '';
|
|
147
|
+
|
|
146
148
|
// Conditions ensure that the first visible focus to a radio group
|
|
147
149
|
// without a selected option will not automatically select the option.
|
|
148
150
|
if (
|
|
149
|
-
|
|
151
|
+
! selectedValueIsEmpty ||
|
|
150
152
|
toggleGroupControlContext.activeItemIsNotFirstItem?.()
|
|
151
153
|
) {
|
|
152
154
|
toggleGroupControlContext.setValue( value );
|
|
@@ -159,21 +161,6 @@ function ToggleGroupControlOptionBase(
|
|
|
159
161
|
</Ariakit.Radio>
|
|
160
162
|
) }
|
|
161
163
|
</WithToolTip>
|
|
162
|
-
{ /* Animated backdrop using framer motion's shared layout animation */ }
|
|
163
|
-
{ isPressed ? (
|
|
164
|
-
<motion.div layout layoutRoot>
|
|
165
|
-
<motion.div
|
|
166
|
-
className={ backdropClasses }
|
|
167
|
-
transition={
|
|
168
|
-
shouldReduceMotion
|
|
169
|
-
? REDUCED_MOTION_TRANSITION_CONFIG
|
|
170
|
-
: undefined
|
|
171
|
-
}
|
|
172
|
-
role="presentation"
|
|
173
|
-
layoutId={ LAYOUT_ID }
|
|
174
|
-
/>
|
|
175
|
-
</motion.div>
|
|
176
|
-
) : null }
|
|
177
164
|
</LabelView>
|
|
178
165
|
);
|
|
179
166
|
}
|
|
@@ -119,14 +119,3 @@ const isIconStyles = ( {
|
|
|
119
119
|
padding-right: 0;
|
|
120
120
|
`;
|
|
121
121
|
};
|
|
122
|
-
|
|
123
|
-
export const backdropView = css`
|
|
124
|
-
background: ${ COLORS.gray[ 900 ] };
|
|
125
|
-
border-radius: ${ CONFIG.radiusXSmall };
|
|
126
|
-
position: absolute;
|
|
127
|
-
inset: 0;
|
|
128
|
-
z-index: 1;
|
|
129
|
-
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
130
|
-
outline: 2px solid transparent;
|
|
131
|
-
outline-offset: -3px;
|
|
132
|
-
`;
|
|
@@ -138,9 +138,11 @@ export type ToggleGroupControlContextProps = {
|
|
|
138
138
|
size: ToggleGroupControlProps[ 'size' ];
|
|
139
139
|
value: ToggleGroupControlProps[ 'value' ];
|
|
140
140
|
setValue: ( newValue: string | number | undefined ) => void;
|
|
141
|
+
setSelectedElement: ( element: HTMLElement | undefined ) => void;
|
|
141
142
|
};
|
|
142
143
|
|
|
143
144
|
export type ToggleGroupControlMainControlProps = Pick<
|
|
144
145
|
ToggleGroupControlProps,
|
|
145
146
|
'children' | 'isAdaptiveWidth' | 'label' | 'size' | 'onChange' | 'value'
|
|
146
|
-
|
|
147
|
+
> &
|
|
148
|
+
Pick< ToggleGroupControlContextProps, 'setSelectedElement' >;
|
|
@@ -60,7 +60,7 @@ import styled from '@emotion/styled';
|
|
|
60
60
|
* WordPress dependencies
|
|
61
61
|
*/
|
|
62
62
|
import {
|
|
63
|
-
|
|
63
|
+
BoxControl,
|
|
64
64
|
__experimentalToolsPanel as ToolsPanel,
|
|
65
65
|
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
66
66
|
__experimentalUnitControl as UnitControl,
|
|
@@ -91,8 +91,8 @@ export function DimensionPanel() {
|
|
|
91
91
|
return (
|
|
92
92
|
<ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>
|
|
93
93
|
<PanelDescription>
|
|
94
|
-
Select dimensions or spacing related settings from the
|
|
95
|
-
|
|
94
|
+
Select dimensions or spacing related settings from the menu for
|
|
95
|
+
additional controls.
|
|
96
96
|
</PanelDescription>
|
|
97
97
|
<SingleColumnItem
|
|
98
98
|
hasValue={ () => !! height }
|
|
@@ -154,8 +154,8 @@ export function DimensionPanel() {
|
|
|
154
154
|
Flags that the items in this ToolsPanel will be contained within an inner
|
|
155
155
|
wrapper element allowing the panel to lay them out accordingly.
|
|
156
156
|
|
|
157
|
-
-
|
|
158
|
-
-
|
|
157
|
+
- Required: No
|
|
158
|
+
- Default: `false`
|
|
159
159
|
|
|
160
160
|
### `dropdownMenuProps`: `{}`
|
|
161
161
|
|
|
@@ -176,7 +176,7 @@ The heading level of the panel's header.
|
|
|
176
176
|
Text to be displayed within the panel's header and as the `aria-label` for the
|
|
177
177
|
panel's dropdown menu.
|
|
178
178
|
|
|
179
|
-
-
|
|
179
|
+
- Required: Yes
|
|
180
180
|
|
|
181
181
|
### `panelId`: `string | null`
|
|
182
182
|
|
|
@@ -185,13 +185,13 @@ to restrict panel items. When a `panelId` is set, items can only register
|
|
|
185
185
|
themselves if the `panelId` is explicitly `null` or the item's `panelId` matches
|
|
186
186
|
exactly.
|
|
187
187
|
|
|
188
|
-
-
|
|
188
|
+
- Required: No
|
|
189
189
|
|
|
190
190
|
### `resetAll`: `( filters?: ResetAllFilter[] ) => void`
|
|
191
191
|
|
|
192
192
|
A function to call when the `Reset all` menu option is selected. As an argument, it receives an array containing the `resetAllFilter` callbacks of all the valid registered `ToolsPanelItems`.
|
|
193
193
|
|
|
194
|
-
-
|
|
194
|
+
- Required: Yes
|
|
195
195
|
|
|
196
196
|
### `shouldRenderPlaceholderItems`: `boolean`
|
|
197
197
|
|
|
@@ -201,5 +201,5 @@ placeholder content (instead of `null`) when they are toggled off and hidden.
|
|
|
201
201
|
Note that placeholder items won't apply the `className` that would be
|
|
202
202
|
normally applied to a visible `ToolsPanelItem` via the `className` prop.
|
|
203
203
|
|
|
204
|
-
-
|
|
205
|
-
-
|
|
204
|
+
- Required: No
|
|
205
|
+
- Default: `false`
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
5
|
import { useLayoutEffect, useRef, useState } from '@wordpress/element';
|
|
6
|
-
import { useResizeObserver } from '@wordpress/compose';
|
|
7
|
-
/**
|
|
8
|
-
* Internal dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { useEvent } from './hooks/use-event';
|
|
6
|
+
import { useEvent, useResizeObserver } from '@wordpress/compose';
|
|
11
7
|
|
|
12
8
|
/**
|
|
13
9
|
* The position and dimensions of an element, relative to its offset parent.
|
|
14
10
|
*/
|
|
15
11
|
export type ElementOffsetRect = {
|
|
12
|
+
/**
|
|
13
|
+
* The element the rect belongs to.
|
|
14
|
+
*/
|
|
15
|
+
element: HTMLElement | undefined;
|
|
16
16
|
/**
|
|
17
17
|
* The distance from the top edge of the offset parent to the top edge of
|
|
18
18
|
* the element.
|
|
@@ -47,6 +47,7 @@ export type ElementOffsetRect = {
|
|
|
47
47
|
* An `ElementOffsetRect` object with all values set to zero.
|
|
48
48
|
*/
|
|
49
49
|
export const NULL_ELEMENT_OFFSET_RECT = {
|
|
50
|
+
element: undefined,
|
|
50
51
|
top: 0,
|
|
51
52
|
right: 0,
|
|
52
53
|
bottom: 0,
|
|
@@ -79,9 +80,11 @@ export function getElementOffsetRect(
|
|
|
79
80
|
if ( rect.width === 0 || rect.height === 0 ) {
|
|
80
81
|
return;
|
|
81
82
|
}
|
|
83
|
+
const offsetParent = element.offsetParent;
|
|
82
84
|
const offsetParentRect =
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
offsetParent?.getBoundingClientRect() ?? NULL_ELEMENT_OFFSET_RECT;
|
|
86
|
+
const offsetParentScrollX = offsetParent?.scrollLeft ?? 0;
|
|
87
|
+
const offsetParentScrollY = offsetParent?.scrollTop ?? 0;
|
|
85
88
|
|
|
86
89
|
// Computed widths and heights have subpixel precision, and are not affected
|
|
87
90
|
// by distortions.
|
|
@@ -94,13 +97,22 @@ export function getElementOffsetRect(
|
|
|
94
97
|
const scaleY = computedHeight / rect.height;
|
|
95
98
|
|
|
96
99
|
return {
|
|
100
|
+
element,
|
|
97
101
|
// To obtain the adjusted values for the position:
|
|
98
102
|
// 1. Compute the element's position relative to the offset parent.
|
|
99
103
|
// 2. Correct for the scale factor.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
// 3. Adjust for the scroll position of the offset parent.
|
|
105
|
+
top:
|
|
106
|
+
( rect.top - offsetParentRect?.top ) * scaleY + offsetParentScrollY,
|
|
107
|
+
right:
|
|
108
|
+
( offsetParentRect?.right - rect.right ) * scaleX -
|
|
109
|
+
offsetParentScrollX,
|
|
110
|
+
bottom:
|
|
111
|
+
( offsetParentRect?.bottom - rect.bottom ) * scaleY -
|
|
112
|
+
offsetParentScrollY,
|
|
113
|
+
left:
|
|
114
|
+
( rect.left - offsetParentRect?.left ) * scaleX +
|
|
115
|
+
offsetParentScrollX,
|
|
104
116
|
// Computed dimensions don't need any adjustments.
|
|
105
117
|
width: computedWidth,
|
|
106
118
|
height: computedHeight,
|
|
@@ -113,6 +125,9 @@ const POLL_RATE = 100;
|
|
|
113
125
|
* Tracks the position and dimensions of an element, relative to its offset
|
|
114
126
|
* parent. The element can be changed dynamically.
|
|
115
127
|
*
|
|
128
|
+
* When no element is provided (`null` or `undefined`), the hook will return
|
|
129
|
+
* a "null" rect, in which all values are `0` and `element` is `undefined`.
|
|
130
|
+
*
|
|
116
131
|
* **Note:** sometimes, the measurement will fail (see `getElementOffsetRect`'s
|
|
117
132
|
* documentation for more details). When that happens, this hook will attempt
|
|
118
133
|
* to measure again after a frame, and if that fails, it will poll every 100
|
|
@@ -149,10 +164,12 @@ export function useTrackElementOffsetRect(
|
|
|
149
164
|
}
|
|
150
165
|
} );
|
|
151
166
|
|
|
152
|
-
useLayoutEffect(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
167
|
+
useLayoutEffect( () => {
|
|
168
|
+
setElement( targetElement );
|
|
169
|
+
if ( ! targetElement ) {
|
|
170
|
+
setIndicatorPosition( NULL_ELEMENT_OFFSET_RECT );
|
|
171
|
+
}
|
|
172
|
+
}, [ setElement, targetElement ] );
|
|
156
173
|
|
|
157
174
|
return indicatorPosition;
|
|
158
175
|
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/* eslint-disable jsdoc/require-param */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* WordPress dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { useEvent } from '@wordpress/compose';
|
|
7
|
+
import { useLayoutEffect } from '@wordpress/element';
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import type { ElementOffsetRect } from '../element-rect';
|
|
12
|
+
import { useOnValueUpdate } from './use-on-value-update';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A utility used to animate something in a container component based on the "offset
|
|
16
|
+
* rect" (position relative to the container and size) of a subelement. For example,
|
|
17
|
+
* this is useful to render an indicator for the selected option of a component, and
|
|
18
|
+
* to animate it when the selected option changes.
|
|
19
|
+
*
|
|
20
|
+
* Takes in a container element and the up-to-date "offset rect" of the target
|
|
21
|
+
* subelement, obtained with `useTrackElementOffsetRect`. Then it does the following:
|
|
22
|
+
*
|
|
23
|
+
* - Adds CSS variables with rect information to the container, so that the indicator
|
|
24
|
+
* can be rendered and animated with them. These are kept up-to-date, enabling CSS
|
|
25
|
+
* transitions on change.
|
|
26
|
+
* - Sets an attribute (`data-subelement-animated` by default) when the tracked
|
|
27
|
+
* element changes, so that the target (e.g. the indicator) can be animated to its
|
|
28
|
+
* new size and position.
|
|
29
|
+
* - Removes the attribute when the animation is done.
|
|
30
|
+
*
|
|
31
|
+
* The need for the attribute is due to the fact that the rect might update in
|
|
32
|
+
* situations other than when the tracked element changes, e.g. the tracked element
|
|
33
|
+
* might be resized. In such cases, there is no need to animate the indicator, and
|
|
34
|
+
* the change in size or position of the indicator needs to be reflected immediately.
|
|
35
|
+
*/
|
|
36
|
+
export function useAnimatedOffsetRect(
|
|
37
|
+
/**
|
|
38
|
+
* The container element.
|
|
39
|
+
*/
|
|
40
|
+
container: HTMLElement | undefined,
|
|
41
|
+
/**
|
|
42
|
+
* The rect of the tracked element.
|
|
43
|
+
*/
|
|
44
|
+
rect: ElementOffsetRect,
|
|
45
|
+
{
|
|
46
|
+
prefix = 'subelement',
|
|
47
|
+
dataAttribute = `${ prefix }-animated`,
|
|
48
|
+
transitionEndFilter = () => true,
|
|
49
|
+
}: {
|
|
50
|
+
/**
|
|
51
|
+
* The prefix used for the CSS variables, e.g. if `prefix` is `selected`, the
|
|
52
|
+
* CSS variables will be `--selected-top`, `--selected-left`, etc.
|
|
53
|
+
* @default 'subelement'
|
|
54
|
+
*/
|
|
55
|
+
prefix?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The name of the data attribute used to indicate that the animation is in
|
|
58
|
+
* progress. The `data-` prefix is added automatically.
|
|
59
|
+
*
|
|
60
|
+
* For example, if `dataAttribute` is `indicator-animated`, the attribute will
|
|
61
|
+
* be `data-indicator-animated`.
|
|
62
|
+
* @default `${ prefix }-animated`
|
|
63
|
+
*/
|
|
64
|
+
dataAttribute?: string;
|
|
65
|
+
/**
|
|
66
|
+
* A function that is called with the transition event and returns a boolean
|
|
67
|
+
* indicating whether the animation should be stopped. The default is a function
|
|
68
|
+
* that always returns `true`.
|
|
69
|
+
*
|
|
70
|
+
* For example, if the animated element is the `::before` pseudo-element, the
|
|
71
|
+
* function can be written as `( event ) => event.pseudoElement === '::before'`.
|
|
72
|
+
* @default () => true
|
|
73
|
+
*/
|
|
74
|
+
transitionEndFilter?: ( event: TransitionEvent ) => boolean;
|
|
75
|
+
} = {}
|
|
76
|
+
) {
|
|
77
|
+
const setProperties = useEvent( () => {
|
|
78
|
+
( Object.keys( rect ) as Array< keyof typeof rect > ).forEach(
|
|
79
|
+
( property ) =>
|
|
80
|
+
property !== 'element' &&
|
|
81
|
+
container?.style.setProperty(
|
|
82
|
+
`--${ prefix }-${ property }`,
|
|
83
|
+
String( rect[ property ] )
|
|
84
|
+
)
|
|
85
|
+
);
|
|
86
|
+
} );
|
|
87
|
+
useLayoutEffect( () => {
|
|
88
|
+
setProperties();
|
|
89
|
+
}, [ rect, setProperties ] );
|
|
90
|
+
useOnValueUpdate( rect.element, ( { previousValue } ) => {
|
|
91
|
+
// Only enable the animation when moving from one element to another.
|
|
92
|
+
if ( rect.element && previousValue ) {
|
|
93
|
+
container?.setAttribute( `data-${ dataAttribute }`, '' );
|
|
94
|
+
}
|
|
95
|
+
} );
|
|
96
|
+
useLayoutEffect( () => {
|
|
97
|
+
function onTransitionEnd( event: TransitionEvent ) {
|
|
98
|
+
if ( transitionEndFilter( event ) ) {
|
|
99
|
+
container?.removeAttribute( `data-${ dataAttribute }` );
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
container?.addEventListener( 'transitionend', onTransitionEnd );
|
|
103
|
+
return () =>
|
|
104
|
+
container?.removeEventListener( 'transitionend', onTransitionEnd );
|
|
105
|
+
}, [ dataAttribute, container, transitionEndFilter ] );
|
|
106
|
+
}
|
|
107
|
+
/* eslint-enable jsdoc/require-param */
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
* Internal dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { useEvent } from './use-event';
|
|
5
|
+
import { useEvent } from '@wordpress/compose';
|
|
6
|
+
import { useRef, useLayoutEffect } from '@wordpress/element';
|
|
10
7
|
|
|
11
8
|
/**
|
|
12
9
|
* Context object for the `onUpdate` callback of `useOnValueUpdate`.
|
|
@@ -30,7 +27,7 @@ export function useOnValueUpdate< T >(
|
|
|
30
27
|
) {
|
|
31
28
|
const previousValueRef = useRef( value );
|
|
32
29
|
const updateCallbackEvent = useEvent( onUpdate );
|
|
33
|
-
|
|
30
|
+
useLayoutEffect( () => {
|
|
34
31
|
if ( previousValueRef.current !== value ) {
|
|
35
32
|
updateCallbackEvent( {
|
|
36
33
|
previousValue: previousValueRef.current,
|