@wordpress/components 23.3.2 → 23.4.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 +20 -5
- package/build/alignment-matrix-control/utils.js +4 -4
- package/build/alignment-matrix-control/utils.js.map +1 -1
- package/build/angle-picker-control/angle-circle.js +37 -29
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/angle-picker-control/index.js +44 -9
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
- package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build/{base-field → angle-picker-control}/types.js +0 -0
- package/build/angle-picker-control/types.js.map +1 -0
- package/build/autocomplete/autocompleter-ui.native.js +1 -0
- package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build/base-control/hooks.js +1 -1
- package/build/base-control/hooks.js.map +1 -1
- package/build/border-box-control/utils.js +1 -1
- package/build/border-box-control/utils.js.map +1 -1
- package/build/box-control/all-input-control.js +2 -2
- package/build/box-control/all-input-control.js.map +1 -1
- package/build/box-control/axial-input-controls.js +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 +32 -3
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/input-controls.js +5 -5
- package/build/box-control/input-controls.js.map +1 -1
- package/build/box-control/linked-button.js.map +1 -1
- package/build/box-control/styles/box-control-icon-styles.js +28 -28
- package/build/box-control/styles/box-control-icon-styles.js.map +1 -1
- package/build/box-control/styles/box-control-styles.js +23 -23
- package/build/box-control/styles/box-control-styles.js.map +1 -1
- package/build/box-control/styles/box-control-visualizer-styles.js +19 -19
- package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
- package/build/box-control/types.js +6 -0
- package/build/box-control/types.js.map +1 -0
- package/build/box-control/unit-control.js.map +1 -1
- package/build/box-control/utils.js +23 -23
- package/build/box-control/utils.js.map +1 -1
- package/build/color-palette/index.js +8 -3
- package/build/color-palette/index.js.map +1 -1
- package/build/combobox-control/index.js +68 -12
- package/build/combobox-control/index.js.map +1 -1
- package/build/combobox-control/styles.js +2 -2
- package/build/combobox-control/styles.js.map +1 -1
- package/build/combobox-control/types.js +6 -0
- package/build/combobox-control/types.js.map +1 -0
- package/build/custom-gradient-picker/index.js +0 -1
- package/build/custom-gradient-picker/index.js.map +1 -1
- package/build/date-time/time/index.js +1 -1
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/utils.js +1 -1
- package/build/date-time/utils.js.map +1 -1
- package/build/draggable/index.js +2 -2
- package/build/draggable/index.js.map +1 -1
- package/build/focal-point-picker/utils.js +3 -3
- package/build/focal-point-picker/utils.js.map +1 -1
- package/build/font-size-picker/utils.js +2 -2
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/gradient-picker/index.js +9 -4
- package/build/gradient-picker/index.js.map +1 -1
- package/build/input-control/reducer/reducer.js +5 -5
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/input-control/utils.js +1 -1
- package/build/input-control/utils.js.map +1 -1
- package/build/menu-items-choice/index.js +40 -3
- package/build/menu-items-choice/index.js.map +1 -1
- package/build/menu-items-choice/types.js +6 -0
- package/build/menu-items-choice/types.js.map +1 -0
- package/build/modal/index.js +41 -3
- package/build/modal/index.js.map +1 -1
- package/build/palette-edit/index.js +4 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/panel/header.js +9 -0
- package/build/panel/header.js.map +1 -1
- package/build/panel/index.js +21 -3
- package/build/panel/index.js.map +1 -1
- package/build/panel/row.js +10 -4
- package/build/panel/row.js.map +1 -1
- package/build/panel/types.js +6 -0
- package/build/panel/types.js.map +1 -0
- package/build/popover/index.js +15 -3
- package/build/popover/index.js.map +1 -1
- package/build/popover/overlay-middlewares.js +46 -0
- package/build/popover/overlay-middlewares.js.map +1 -0
- package/build/popover/utils.js +45 -6
- package/build/popover/utils.js.map +1 -1
- package/build/query-controls/terms.js +1 -1
- package/build/query-controls/terms.js.map +1 -1
- package/build/range-control/utils.js +4 -4
- package/build/range-control/utils.js.map +1 -1
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
- package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js +14 -14
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/snackbar/index.js +2 -2
- package/build/snackbar/index.js.map +1 -1
- package/build/toolbar/toolbar/index.js +25 -14
- package/build/toolbar/toolbar/index.js.map +1 -1
- package/build/toolbar/toolbar/toolbar-container.js +5 -4
- package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
- package/build/toolbar/toolbar/types.js +6 -0
- package/build/toolbar/toolbar/types.js.map +1 -0
- package/build/toolbar/toolbar-button/index.js +2 -0
- package/build/toolbar/toolbar-button/index.js.map +1 -1
- package/build/toolbar/toolbar-button/toolbar-button-container.js +1 -0
- package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
- package/build/toolbar/toolbar-context/index.js +2 -0
- package/build/toolbar/toolbar-context/index.js.map +1 -1
- package/build/toolbar/toolbar-dropdown-menu/index.js +2 -0
- package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
- package/build/toolbar/toolbar-group/index.js +2 -0
- package/build/toolbar/toolbar-group/index.js.map +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
- package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
- package/build/toolbar/toolbar-group/toolbar-group-container.js +1 -0
- package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
- package/build/toolbar/toolbar-item/index.js +2 -0
- package/build/toolbar/toolbar-item/index.js.map +1 -1
- package/build/tools-panel/tools-panel/component.js +61 -5
- package/build/tools-panel/tools-panel/component.js.map +1 -1
- package/build/tools-panel/tools-panel/hook.js +4 -2
- package/build/tools-panel/tools-panel/hook.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +2 -1
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/hook.js +2 -0
- package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
- package/build/tools-panel/tools-panel-item/component.js +5 -4
- package/build/tools-panel/tools-panel-item/component.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +4 -2
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/tree-grid/cell.js +15 -4
- package/build/tree-grid/cell.js.map +1 -1
- package/build/tree-grid/index.js +81 -19
- package/build/tree-grid/index.js.map +1 -1
- package/build/tree-grid/item.js +14 -3
- package/build/tree-grid/item.js.map +1 -1
- package/build/tree-grid/roving-tab-index-context.js +1 -1
- package/build/tree-grid/roving-tab-index-context.js.map +1 -1
- package/build/tree-grid/roving-tab-index-item.js +13 -6
- package/build/tree-grid/roving-tab-index-item.js.map +1 -1
- package/build/tree-grid/roving-tab-index.js +0 -3
- package/build/tree-grid/roving-tab-index.js.map +1 -1
- package/build/tree-grid/row.js +20 -18
- package/build/tree-grid/row.js.map +1 -1
- package/build/tree-grid/types.js +6 -0
- package/build/tree-grid/types.js.map +1 -0
- package/build/ui/context/context-connect.js +7 -7
- package/build/ui/context/context-connect.js.map +1 -1
- package/build/ui/context/get-styled-class-name-from-key.js +1 -1
- package/build/ui/context/get-styled-class-name-from-key.js.map +1 -1
- package/build/ui/utils/get-valid-children.js +1 -1
- package/build/ui/utils/get-valid-children.js.map +1 -1
- package/build/ui/utils/space.js +1 -1
- package/build/ui/utils/space.js.map +1 -1
- package/build/unit-control/index.js +2 -2
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/utils.js +20 -20
- package/build/unit-control/utils.js.map +1 -1
- package/build/utils/events.js +4 -4
- package/build/utils/events.js.map +1 -1
- package/build/utils/hooks/use-controlled-state.js +2 -2
- package/build/utils/hooks/use-controlled-state.js.map +1 -1
- package/build/utils/hooks/use-controlled-value.js +4 -4
- package/build/utils/hooks/use-controlled-value.js.map +1 -1
- package/build/utils/hooks/use-latest-ref.js +1 -1
- package/build/utils/hooks/use-latest-ref.js.map +1 -1
- package/build/utils/unit-values.js +3 -3
- package/build/utils/unit-values.js.map +1 -1
- package/build-module/alignment-matrix-control/utils.js +4 -4
- package/build-module/alignment-matrix-control/utils.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js +37 -29
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/angle-picker-control/index.js +42 -8
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
- package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
- package/build-module/{base-field → angle-picker-control}/types.js +0 -0
- package/build-module/{base-field → angle-picker-control}/types.js.map +0 -0
- package/build-module/autocomplete/autocompleter-ui.native.js +1 -0
- package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build-module/base-control/hooks.js +1 -1
- package/build-module/base-control/hooks.js.map +1 -1
- package/build-module/border-box-control/utils.js +1 -1
- package/build-module/border-box-control/utils.js.map +1 -1
- package/build-module/box-control/all-input-control.js +2 -2
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js +1 -1
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/box-control/icon.js.map +1 -1
- package/build-module/box-control/index.js +31 -3
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/input-controls.js +5 -5
- package/build-module/box-control/input-controls.js.map +1 -1
- package/build-module/box-control/linked-button.js.map +1 -1
- package/build-module/box-control/styles/box-control-icon-styles.js +28 -28
- package/build-module/box-control/styles/box-control-icon-styles.js.map +1 -1
- package/build-module/box-control/styles/box-control-styles.js +23 -23
- package/build-module/box-control/styles/box-control-styles.js.map +1 -1
- package/build-module/box-control/styles/box-control-visualizer-styles.js +19 -19
- package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
- package/build-module/box-control/types.js +2 -0
- package/{build/base-field → build-module/box-control}/types.js.map +0 -0
- package/build-module/box-control/unit-control.js.map +1 -1
- package/build-module/box-control/utils.js +23 -23
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/color-palette/index.js +8 -3
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/combobox-control/index.js +68 -12
- package/build-module/combobox-control/index.js.map +1 -1
- package/build-module/combobox-control/styles.js +2 -2
- package/build-module/combobox-control/styles.js.map +1 -1
- package/build-module/combobox-control/types.js +2 -0
- package/build-module/{resizable-box/styles/resizable-box.styles.js.map → combobox-control/types.js.map} +0 -0
- package/build-module/custom-gradient-picker/index.js +0 -1
- package/build-module/custom-gradient-picker/index.js.map +1 -1
- package/build-module/date-time/time/index.js +1 -1
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/utils.js +1 -1
- package/build-module/date-time/utils.js.map +1 -1
- package/build-module/draggable/index.js +2 -2
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/focal-point-picker/utils.js +3 -3
- package/build-module/focal-point-picker/utils.js.map +1 -1
- package/build-module/font-size-picker/utils.js +2 -2
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/gradient-picker/index.js +9 -4
- package/build-module/gradient-picker/index.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +5 -5
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/input-control/utils.js +1 -1
- package/build-module/input-control/utils.js.map +1 -1
- package/build-module/menu-items-choice/index.js +40 -4
- package/build-module/menu-items-choice/index.js.map +1 -1
- package/build-module/menu-items-choice/types.js +2 -0
- package/{build/resizable-box/styles/resizable-box.styles.js.map → build-module/menu-items-choice/types.js.map} +0 -0
- package/build-module/modal/index.js +41 -4
- package/build-module/modal/index.js.map +1 -1
- package/build-module/palette-edit/index.js +4 -1
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/panel/header.js +9 -0
- package/build-module/panel/header.js.map +1 -1
- package/build-module/panel/index.js +20 -2
- package/build-module/panel/index.js.map +1 -1
- package/build-module/panel/row.js +9 -3
- package/build-module/panel/row.js.map +1 -1
- package/build-module/panel/types.js +2 -0
- package/build-module/panel/types.js.map +1 -0
- package/build-module/popover/index.js +14 -4
- package/build-module/popover/index.js.map +1 -1
- package/build-module/popover/overlay-middlewares.js +38 -0
- package/build-module/popover/overlay-middlewares.js.map +1 -0
- package/build-module/popover/utils.js +41 -5
- package/build-module/popover/utils.js.map +1 -1
- package/build-module/query-controls/terms.js +1 -1
- package/build-module/query-controls/terms.js.map +1 -1
- package/build-module/range-control/utils.js +4 -4
- package/build-module/range-control/utils.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
- package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js +14 -14
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/snackbar/index.js +2 -2
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar/index.js +25 -13
- package/build-module/toolbar/toolbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar/toolbar-container.js +4 -3
- package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
- package/build-module/toolbar/toolbar/types.js +2 -0
- package/build-module/toolbar/toolbar/types.js.map +1 -0
- package/build-module/toolbar/toolbar-button/index.js +1 -0
- package/build-module/toolbar/toolbar-button/index.js.map +1 -1
- package/build-module/toolbar/toolbar-button/toolbar-button-container.js +1 -0
- package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
- package/build-module/toolbar/toolbar-context/index.js +2 -0
- package/build-module/toolbar/toolbar-context/index.js.map +1 -1
- package/build-module/toolbar/toolbar-dropdown-menu/index.js +1 -0
- package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
- package/build-module/toolbar/toolbar-group/index.js +1 -0
- package/build-module/toolbar/toolbar-group/index.js.map +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +1 -0
- package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js +1 -0
- package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
- package/build-module/toolbar/toolbar-item/index.js +1 -0
- package/build-module/toolbar/toolbar-item/index.js.map +1 -1
- package/build-module/tools-panel/tools-panel/component.js +59 -4
- package/build-module/tools-panel/tools-panel/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel/hook.js +4 -2
- package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +2 -1
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/hook.js +2 -0
- package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/component.js +3 -3
- package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +5 -2
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/tree-grid/cell.js +16 -4
- package/build-module/tree-grid/cell.js.map +1 -1
- package/build-module/tree-grid/index.js +81 -21
- package/build-module/tree-grid/index.js.map +1 -1
- package/build-module/tree-grid/item.js +14 -2
- package/build-module/tree-grid/item.js.map +1 -1
- package/build-module/tree-grid/roving-tab-index-context.js +1 -1
- package/build-module/tree-grid/roving-tab-index-context.js.map +1 -1
- package/build-module/tree-grid/roving-tab-index-item.js +11 -4
- package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
- package/build-module/tree-grid/roving-tab-index.js +0 -3
- package/build-module/tree-grid/roving-tab-index.js.map +1 -1
- package/build-module/tree-grid/row.js +22 -17
- package/build-module/tree-grid/row.js.map +1 -1
- package/build-module/tree-grid/types.js +2 -0
- package/build-module/tree-grid/types.js.map +1 -0
- package/build-module/ui/context/context-connect.js +7 -7
- package/build-module/ui/context/context-connect.js.map +1 -1
- package/build-module/ui/context/get-styled-class-name-from-key.js +1 -1
- package/build-module/ui/context/get-styled-class-name-from-key.js.map +1 -1
- package/build-module/ui/utils/get-valid-children.js +1 -1
- package/build-module/ui/utils/get-valid-children.js.map +1 -1
- package/build-module/ui/utils/space.js +1 -1
- package/build-module/ui/utils/space.js.map +1 -1
- package/build-module/unit-control/index.js +2 -2
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/utils.js +20 -20
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-module/utils/events.js +4 -4
- package/build-module/utils/events.js.map +1 -1
- package/build-module/utils/hooks/use-controlled-state.js +2 -2
- package/build-module/utils/hooks/use-controlled-state.js.map +1 -1
- package/build-module/utils/hooks/use-controlled-value.js +4 -4
- package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
- package/build-module/utils/hooks/use-latest-ref.js +1 -1
- package/build-module/utils/hooks/use-latest-ref.js.map +1 -1
- package/build-module/utils/unit-values.js +3 -3
- package/build-module/utils/unit-values.js.map +1 -1
- package/build-style/style-rtl.css +5 -0
- package/build-style/style.css +5 -0
- package/build-types/alignment-matrix-control/utils.d.ts +4 -4
- package/build-types/angle-picker-control/angle-circle.d.ts +6 -0
- package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -0
- package/build-types/angle-picker-control/index.d.ts +29 -0
- package/build-types/angle-picker-control/index.d.ts.map +1 -0
- package/build-types/angle-picker-control/stories/index.d.ts +15 -0
- package/build-types/angle-picker-control/stories/index.d.ts.map +1 -0
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +20 -0
- package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -0
- package/build-types/angle-picker-control/types.d.ts +26 -0
- package/build-types/angle-picker-control/types.d.ts.map +1 -0
- package/build-types/base-control/hooks.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -1
- package/build-types/border-box-control/stories/index.d.ts +1 -1
- package/build-types/{base-field → border-box-control}/test/index.d.ts +0 -0
- package/build-types/border-box-control/test/index.d.ts.map +1 -0
- package/build-types/border-box-control/test/utils.d.ts +2 -0
- package/build-types/border-box-control/test/utils.d.ts.map +1 -0
- package/build-types/box-control/all-input-control.d.ts +4 -0
- package/build-types/box-control/all-input-control.d.ts.map +1 -0
- package/build-types/box-control/axial-input-controls.d.ts +4 -0
- package/build-types/box-control/axial-input-controls.d.ts.map +1 -0
- package/build-types/box-control/icon.d.ts +8 -0
- package/build-types/box-control/icon.d.ts.map +1 -0
- package/build-types/box-control/index.d.ts +31 -0
- package/build-types/box-control/index.d.ts.map +1 -0
- package/build-types/box-control/input-controls.d.ts +4 -0
- package/build-types/box-control/input-controls.d.ts.map +1 -0
- package/build-types/box-control/linked-button.d.ts +9 -0
- package/build-types/box-control/linked-button.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-icon-styles.d.ts +42 -0
- package/build-types/box-control/styles/box-control-icon-styles.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-styles.d.ts +42 -0
- package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -0
- package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +46 -0
- package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +1 -0
- package/build-types/box-control/test/index.d.ts +2 -0
- package/build-types/box-control/test/index.d.ts.map +1 -0
- package/build-types/box-control/types.d.ts +99 -0
- package/build-types/box-control/types.d.ts.map +1 -0
- package/build-types/box-control/unit-control.d.ts +4 -0
- package/build-types/box-control/unit-control.d.ts.map +1 -0
- package/build-types/box-control/utils.d.ts +84 -0
- package/build-types/box-control/utils.d.ts.map +1 -0
- package/build-types/color-palette/index.d.ts +3 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +6 -2
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/types.d.ts +8 -0
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/combobox-control/index.d.ts +51 -0
- package/build-types/combobox-control/index.d.ts.map +1 -0
- package/build-types/combobox-control/stories/index.d.ts +18 -0
- package/build-types/combobox-control/stories/index.d.ts.map +1 -0
- package/build-types/combobox-control/styles.d.ts +8 -0
- package/build-types/combobox-control/styles.d.ts.map +1 -0
- package/build-types/combobox-control/test/index.d.ts +2 -0
- package/build-types/combobox-control/test/index.d.ts.map +1 -0
- package/build-types/combobox-control/types.d.ts +62 -0
- package/build-types/combobox-control/types.d.ts.map +1 -0
- package/build-types/date-time/utils.d.ts +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focal-point-picker/utils.d.ts +3 -3
- package/build-types/font-size-picker/utils.d.ts +2 -2
- package/build-types/input-control/reducer/reducer.d.ts +3 -3
- package/build-types/input-control/utils.d.ts +1 -1
- package/build-types/menu-items-choice/index.d.ts +38 -0
- package/build-types/menu-items-choice/index.d.ts.map +1 -0
- package/build-types/menu-items-choice/stories/index.d.ts +12 -0
- package/build-types/menu-items-choice/stories/index.d.ts.map +1 -0
- package/build-types/menu-items-choice/types.d.ts +53 -0
- package/build-types/menu-items-choice/types.d.ts.map +1 -0
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/modal/types.d.ts +2 -0
- package/build-types/modal/types.d.ts.map +1 -1
- package/build-types/panel/header.d.ts +13 -0
- package/build-types/panel/header.d.ts.map +1 -0
- package/build-types/panel/index.d.ts +21 -0
- package/build-types/panel/index.d.ts.map +1 -0
- package/build-types/panel/row.d.ts +12 -0
- package/build-types/panel/row.d.ts.map +1 -0
- package/build-types/panel/test/header.d.ts +2 -0
- package/build-types/panel/test/header.d.ts.map +1 -0
- package/build-types/panel/test/index.d.ts +2 -0
- package/build-types/{base-field → panel}/test/index.d.ts.map +1 -1
- package/build-types/panel/test/row.d.ts +2 -0
- package/build-types/panel/test/row.d.ts.map +1 -0
- package/build-types/panel/types.d.ts +38 -0
- package/build-types/panel/types.d.ts.map +1 -0
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/overlay-middlewares.d.ts +9 -0
- package/build-types/popover/overlay-middlewares.d.ts.map +1 -0
- package/build-types/popover/stories/index.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +3 -2
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/popover/utils.d.ts +12 -4
- package/build-types/popover/utils.d.ts.map +1 -1
- package/build-types/query-controls/terms.d.ts +1 -1
- package/build-types/range-control/utils.d.ts +4 -4
- package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +5 -4
- package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts +6 -6
- package/build-types/toolbar/index.d.ts +7 -0
- package/build-types/toolbar/index.d.ts.map +1 -0
- package/build-types/toolbar/stories/index.d.ts +14 -0
- package/build-types/toolbar/stories/index.d.ts.map +1 -0
- package/build-types/toolbar/test/index.d.ts +2 -0
- package/build-types/toolbar/test/index.d.ts.map +1 -0
- package/build-types/toolbar/test/toolbar-group.d.ts +2 -0
- package/build-types/toolbar/test/toolbar-group.d.ts.map +1 -0
- package/build-types/toolbar/toolbar/index.d.ts +25 -0
- package/build-types/toolbar/toolbar/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar/toolbar-container.d.ts +5 -0
- package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -0
- package/build-types/toolbar/toolbar/types.d.ts +15 -0
- package/build-types/toolbar/toolbar/types.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-button/index.d.ts +12 -0
- package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts +3 -0
- package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-context/index.d.ts +3 -0
- package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -0
- package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-group/index.d.ts +39 -0
- package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +7 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -0
- package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -0
- package/build-types/toolbar/toolbar-item/index.d.ts +7 -0
- package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -0
- package/build-types/tools-panel/stories/index.d.ts +17 -0
- package/build-types/tools-panel/stories/index.d.ts.map +1 -0
- package/build-types/tools-panel/tools-panel/component.d.ts +54 -2
- package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +2 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/component.d.ts +2 -2
- package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +42 -15
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tree-grid/cell.d.ts +13 -0
- package/build-types/tree-grid/cell.d.ts.map +1 -0
- package/build-types/tree-grid/index.d.ts +70 -0
- package/build-types/tree-grid/index.d.ts.map +1 -0
- package/build-types/tree-grid/item.d.ts +12 -0
- package/build-types/tree-grid/item.d.ts.map +1 -0
- package/build-types/tree-grid/roving-tab-index-context.d.ts +10 -0
- package/build-types/tree-grid/roving-tab-index-context.d.ts.map +1 -0
- package/build-types/tree-grid/roving-tab-index-item.d.ts +5 -0
- package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -0
- package/build-types/tree-grid/roving-tab-index.d.ts +10 -0
- package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -0
- package/build-types/tree-grid/row.d.ts +12 -0
- package/build-types/tree-grid/row.d.ts.map +1 -0
- package/build-types/tree-grid/stories/index.d.ts +13 -0
- package/build-types/tree-grid/stories/index.d.ts.map +1 -0
- package/build-types/tree-grid/test/cell.d.ts +2 -0
- package/build-types/tree-grid/test/cell.d.ts.map +1 -0
- package/build-types/tree-grid/test/index.d.ts +2 -0
- package/build-types/tree-grid/test/index.d.ts.map +1 -0
- package/build-types/tree-grid/test/roving-tab-index-item.d.ts +2 -0
- package/build-types/tree-grid/test/roving-tab-index-item.d.ts.map +1 -0
- package/build-types/tree-grid/test/roving-tab-index.d.ts +2 -0
- package/build-types/tree-grid/test/roving-tab-index.d.ts.map +1 -0
- package/build-types/tree-grid/test/row.d.ts +2 -0
- package/build-types/tree-grid/test/row.d.ts.map +1 -0
- package/build-types/tree-grid/types.d.ts +109 -0
- package/build-types/tree-grid/types.d.ts.map +1 -0
- package/build-types/ui/context/context-connect.d.ts +7 -7
- package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -1
- package/build-types/ui/utils/get-valid-children.d.ts +1 -1
- package/build-types/ui/utils/space.d.ts +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/utils.d.ts +20 -20
- package/build-types/utils/events.d.ts +2 -2
- package/build-types/utils/hooks/use-controlled-state.d.ts +1 -1
- package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
- package/build-types/utils/hooks/use-controlled-value.d.ts +4 -4
- package/build-types/utils/hooks/use-latest-ref.d.ts +1 -1
- package/build-types/utils/unit-values.d.ts +3 -3
- package/package.json +19 -19
- package/src/alignment-matrix-control/utils.tsx +4 -4
- package/src/angle-picker-control/README.md +17 -14
- package/src/angle-picker-control/{angle-circle.js → angle-circle.tsx} +44 -12
- package/src/angle-picker-control/{index.js → index.tsx} +54 -10
- package/src/angle-picker-control/stories/index.tsx +57 -0
- package/src/angle-picker-control/styles/{angle-picker-control-styles.js → angle-picker-control-styles.tsx} +5 -1
- package/src/angle-picker-control/types.ts +29 -0
- package/src/autocomplete/autocompleter-ui.native.js +1 -0
- package/src/base-control/hooks.ts +1 -1
- package/src/border-box-control/test/{index.js → index.tsx} +76 -102
- package/src/border-box-control/test/{utils.js → utils.ts} +20 -0
- package/src/border-box-control/utils.ts +1 -1
- package/src/box-control/README.md +17 -26
- package/src/box-control/{all-input-control.js → all-input-control.tsx} +10 -6
- package/src/box-control/{axial-input-controls.js → axial-input-controls.tsx} +29 -24
- package/src/box-control/{icon.js → icon.tsx} +9 -4
- package/src/box-control/{index.js → index.tsx} +43 -8
- package/src/box-control/{input-controls.js → input-controls.tsx} +26 -16
- package/src/box-control/{linked-button.js → linked-button.tsx} +4 -1
- package/src/box-control/styles/{box-control-icon-styles.js → box-control-icon-styles.ts} +1 -1
- package/src/box-control/styles/{box-control-styles.js → box-control-styles.ts} +10 -2
- package/src/box-control/styles/{box-control-visualizer-styles.js → box-control-visualizer-styles.ts} +6 -2
- package/src/box-control/test/{index.js → index.tsx} +12 -9
- package/src/box-control/types.ts +121 -0
- package/src/box-control/{unit-control.js → unit-control.tsx} +9 -2
- package/src/box-control/{utils.js → utils.ts} +47 -38
- package/src/button/test/index.tsx +38 -30
- package/src/color-palette/README.md +7 -0
- package/src/color-palette/index.tsx +6 -1
- package/src/color-palette/types.ts +8 -0
- package/src/combobox-control/README.md +8 -15
- package/src/combobox-control/{index.js → index.tsx} +91 -19
- package/src/combobox-control/stories/index.tsx +114 -0
- package/src/combobox-control/styles.ts +4 -1
- package/src/combobox-control/test/{index.js → index.tsx} +9 -7
- package/src/combobox-control/types.ts +69 -0
- package/src/custom-gradient-picker/index.js +0 -1
- package/src/custom-select-control/stories/index.js +1 -1
- package/src/date-time/time/index.tsx +1 -1
- package/src/date-time/utils.ts +1 -1
- package/src/draggable/index.tsx +2 -2
- package/src/dropdown-menu/test/index.js +3 -11
- package/src/focal-point-picker/utils.ts +3 -3
- package/src/font-size-picker/utils.ts +2 -2
- package/src/gradient-picker/README.md +8 -0
- package/src/gradient-picker/index.js +6 -1
- package/src/input-control/reducer/reducer.ts +5 -5
- package/src/input-control/utils.ts +1 -1
- package/src/menu-items-choice/index.tsx +83 -0
- package/src/menu-items-choice/stories/index.tsx +79 -0
- package/src/menu-items-choice/types.ts +54 -0
- package/src/modal/index.tsx +45 -1
- package/src/modal/style.scss +8 -0
- package/src/modal/types.ts +2 -0
- package/src/palette-edit/index.js +4 -1
- package/src/panel/README.md +2 -2
- package/src/panel/header.tsx +20 -0
- package/src/panel/index.tsx +48 -0
- package/src/panel/row.tsx +37 -0
- package/src/panel/stories/index.js +22 -0
- package/src/panel/test/__snapshots__/{header.js.snap → header.tsx.snap} +0 -0
- package/src/panel/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- package/src/panel/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
- package/src/panel/test/{header.js → header.tsx} +1 -1
- package/src/panel/test/{index.js → index.tsx} +6 -4
- package/src/panel/test/{row.js → row.tsx} +4 -2
- package/src/panel/types.ts +38 -0
- package/src/popover/README.md +4 -1
- package/src/popover/index.tsx +17 -1
- package/src/popover/overlay-middlewares.tsx +29 -0
- package/src/popover/stories/index.tsx +7 -1
- package/src/popover/test/index.tsx +29 -21
- package/src/popover/types.ts +4 -2
- package/src/popover/utils.ts +39 -3
- package/src/query-controls/terms.ts +1 -1
- package/src/range-control/utils.ts +4 -4
- package/src/resizable-box/resize-tooltip/styles/{resize-tooltip.styles.js → resize-tooltip.styles.ts} +0 -0
- package/src/resizable-box/resize-tooltip/utils.ts +14 -14
- package/src/snackbar/index.tsx +2 -2
- package/src/toolbar/stories/{index.js → index.tsx} +39 -26
- package/src/toolbar/test/{index.js → index.tsx} +0 -0
- package/src/toolbar/test/{toolbar-group.js → toolbar-group.tsx} +2 -2
- package/src/toolbar/toolbar/README.md +7 -2
- package/src/toolbar/toolbar/{index.js → index.tsx} +33 -12
- package/src/toolbar/toolbar/{toolbar-container.js → toolbar-container.tsx} +9 -2
- package/src/toolbar/toolbar/types.ts +15 -0
- package/src/toolbar/toolbar-button/index.js +2 -0
- package/src/toolbar/toolbar-button/toolbar-button-container.js +2 -0
- package/src/toolbar/toolbar-context/index.js +2 -0
- package/src/toolbar/toolbar-dropdown-menu/index.js +2 -0
- package/src/toolbar/toolbar-group/index.js +2 -0
- package/src/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
- package/src/toolbar/toolbar-group/toolbar-group-container.js +2 -0
- package/src/toolbar/toolbar-item/index.js +2 -0
- package/src/tools-panel/stories/{index.js → index.tsx} +196 -95
- package/src/tools-panel/test/index.js +6 -6
- package/src/tools-panel/tools-panel/README.md +12 -4
- package/src/tools-panel/tools-panel/component.tsx +57 -3
- package/src/tools-panel/tools-panel/hook.ts +4 -2
- package/src/tools-panel/tools-panel-header/README.md +7 -0
- package/src/tools-panel/tools-panel-header/component.tsx +2 -1
- package/src/tools-panel/tools-panel-header/hook.ts +6 -4
- package/src/tools-panel/tools-panel-item/README.md +6 -4
- package/src/tools-panel/tools-panel-item/component.tsx +4 -4
- package/src/tools-panel/tools-panel-item/hook.ts +4 -2
- package/src/tools-panel/types.ts +43 -15
- package/src/tree-grid/README.md +18 -58
- package/src/tree-grid/cell.tsx +41 -0
- package/src/tree-grid/{index.js → index.tsx} +111 -35
- package/src/tree-grid/item.tsx +32 -0
- package/src/tree-grid/{roving-tab-index-context.js → roving-tab-index-context.ts} +9 -1
- package/src/tree-grid/roving-tab-index-item.tsx +50 -0
- package/src/tree-grid/{roving-tab-index.js → roving-tab-index.tsx} +7 -5
- package/src/tree-grid/row.tsx +47 -0
- package/src/tree-grid/stories/index.tsx +144 -0
- package/src/tree-grid/test/__snapshots__/{cell.js.snap → cell.tsx.snap} +0 -0
- package/src/tree-grid/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- package/src/tree-grid/test/__snapshots__/{roving-tab-index-item.js.snap → roving-tab-index-item.tsx.snap} +0 -0
- package/src/tree-grid/test/__snapshots__/{roving-tab-index.js.snap → roving-tab-index.tsx.snap} +0 -0
- package/src/tree-grid/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
- package/src/tree-grid/test/{cell.js → cell.tsx} +7 -4
- package/src/tree-grid/test/{index.js → index.tsx} +13 -5
- package/src/tree-grid/test/{roving-tab-index-item.js → roving-tab-index-item.tsx} +7 -4
- package/src/tree-grid/test/{roving-tab-index.js → roving-tab-index.tsx} +0 -0
- package/src/tree-grid/test/{row.js → row.tsx} +4 -4
- package/src/tree-grid/types.ts +116 -0
- package/src/ui/context/context-connect.ts +7 -7
- package/src/ui/context/get-styled-class-name-from-key.ts +1 -1
- package/src/ui/utils/get-valid-children.ts +1 -1
- package/src/ui/utils/space.ts +1 -1
- package/src/unit-control/index.tsx +2 -2
- package/src/unit-control/utils.ts +20 -20
- package/src/utils/events.ts +4 -4
- package/src/utils/hooks/use-controlled-state.js +2 -2
- package/src/utils/hooks/use-controlled-value.ts +4 -4
- package/src/utils/hooks/use-latest-ref.ts +1 -1
- package/src/utils/unit-values.ts +3 -3
- package/tsconfig.json +1 -7
- package/tsconfig.tsbuildinfo +1 -1
- package/build/base-field/hook.js +0 -54
- package/build/base-field/hook.js.map +0 -1
- package/build/base-field/index.js +0 -14
- package/build/base-field/index.js.map +0 -1
- package/build/base-field/styles.js +0 -33
- package/build/base-field/styles.js.map +0 -1
- package/build/resizable-box/styles/resizable-box.styles.js +0 -2
- package/build-module/base-field/hook.js +0 -37
- package/build-module/base-field/hook.js.map +0 -1
- package/build-module/base-field/index.js +0 -2
- package/build-module/base-field/index.js.map +0 -1
- package/build-module/base-field/styles.js +0 -18
- package/build-module/base-field/styles.js.map +0 -1
- package/build-module/resizable-box/styles/resizable-box.styles.js +0 -2
- package/build-types/base-field/hook.d.ts +0 -270
- package/build-types/base-field/hook.d.ts.map +0 -1
- package/build-types/base-field/index.d.ts +0 -2
- package/build-types/base-field/index.d.ts.map +0 -1
- package/build-types/base-field/styles.d.ts +0 -6
- package/build-types/base-field/styles.d.ts.map +0 -1
- package/build-types/base-field/types.d.ts +0 -29
- package/build-types/base-field/types.d.ts.map +0 -1
- package/build-types/resizable-box/styles/resizable-box.styles.d.ts +0 -1
- package/build-types/resizable-box/styles/resizable-box.styles.d.ts.map +0 -1
- package/src/angle-picker-control/stories/index.js +0 -29
- package/src/base-field/README.md +0 -66
- package/src/base-field/hook.ts +0 -51
- package/src/base-field/index.ts +0 -1
- package/src/base-field/styles.ts +0 -86
- package/src/base-field/test/__snapshots__/index.tsx.snap +0 -141
- package/src/base-field/test/index.tsx +0 -84
- package/src/base-field/types.ts +0 -29
- package/src/combobox-control/stories/index.js +0 -339
- package/src/menu-items-choice/index.js +0 -43
- package/src/panel/header.js +0 -10
- package/src/panel/index.js +0 -26
- package/src/panel/row.js +0 -20
- package/src/resizable-box/styles/resizable-box.styles.js +0 -0
- package/src/tools-panel/stories/utils/tools-panel-with-item-group-slot.js +0 -246
- package/src/tree-grid/cell.js +0 -24
- package/src/tree-grid/item.js +0 -20
- package/src/tree-grid/roving-tab-index-item.js +0 -33
- package/src/tree-grid/row.js +0 -31
- package/src/tree-grid/stories/index.js +0 -106
package/src/popover/index.tsx
CHANGED
|
@@ -43,6 +43,7 @@ import {
|
|
|
43
43
|
import { close } from '@wordpress/icons';
|
|
44
44
|
import deprecated from '@wordpress/deprecated';
|
|
45
45
|
import { Path, SVG } from '@wordpress/primitives';
|
|
46
|
+
import { getScrollContainer } from '@wordpress/dom';
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
49
|
* Internal dependencies
|
|
@@ -52,6 +53,7 @@ import ScrollLock from '../scroll-lock';
|
|
|
52
53
|
import { Slot, Fill, useSlot } from '../slot-fill';
|
|
53
54
|
import {
|
|
54
55
|
getFrameOffset,
|
|
56
|
+
getFrameScale,
|
|
55
57
|
positionToPlacement,
|
|
56
58
|
placementToMotionAnimationProps,
|
|
57
59
|
getReferenceOwnerDocument,
|
|
@@ -65,6 +67,7 @@ import type {
|
|
|
65
67
|
PopoverAnchorRefTopBottom,
|
|
66
68
|
} from './types';
|
|
67
69
|
import { limitShift as customLimitShift } from './limit-shift';
|
|
70
|
+
import { overlayMiddlewares } from './overlay-middlewares';
|
|
68
71
|
|
|
69
72
|
/**
|
|
70
73
|
* Name of slot in which popover should fill.
|
|
@@ -268,6 +271,7 @@ const UnforwardedPopover = (
|
|
|
268
271
|
const frameOffsetRef = useRef( getFrameOffset( referenceOwnerDocument ) );
|
|
269
272
|
|
|
270
273
|
const middleware = [
|
|
274
|
+
...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),
|
|
271
275
|
// Custom middleware which adjusts the popover's position by taking into
|
|
272
276
|
// account the offset of the anchor's iframe (if any) compared to the page.
|
|
273
277
|
{
|
|
@@ -361,7 +365,10 @@ const UnforwardedPopover = (
|
|
|
361
365
|
placement: computedPlacement,
|
|
362
366
|
middlewareData: { arrow: arrowData },
|
|
363
367
|
} = useFloating( {
|
|
364
|
-
placement:
|
|
368
|
+
placement:
|
|
369
|
+
normalizedPlacementFromProps === 'overlay'
|
|
370
|
+
? undefined
|
|
371
|
+
: normalizedPlacementFromProps,
|
|
365
372
|
middleware,
|
|
366
373
|
whileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>
|
|
367
374
|
autoUpdate( referenceParam, floatingParam, updateParam, {
|
|
@@ -399,12 +406,14 @@ const UnforwardedPopover = (
|
|
|
399
406
|
fallbackReferenceElement,
|
|
400
407
|
fallbackDocument: document,
|
|
401
408
|
} );
|
|
409
|
+
const scale = getFrameScale( resultingReferenceOwnerDoc );
|
|
402
410
|
const resultingReferenceElement = getReferenceElement( {
|
|
403
411
|
anchor,
|
|
404
412
|
anchorRef,
|
|
405
413
|
anchorRect,
|
|
406
414
|
getAnchorRect,
|
|
407
415
|
fallbackReferenceElement,
|
|
416
|
+
scale,
|
|
408
417
|
} );
|
|
409
418
|
|
|
410
419
|
referenceCallbackRef( resultingReferenceElement );
|
|
@@ -441,17 +450,24 @@ const UnforwardedPopover = (
|
|
|
441
450
|
}
|
|
442
451
|
|
|
443
452
|
const { defaultView } = referenceOwnerDocument;
|
|
453
|
+
const { frameElement } = defaultView;
|
|
454
|
+
|
|
455
|
+
const scrollContainer = frameElement
|
|
456
|
+
? getScrollContainer( frameElement )
|
|
457
|
+
: null;
|
|
444
458
|
|
|
445
459
|
const updateFrameOffset = () => {
|
|
446
460
|
frameOffsetRef.current = getFrameOffset( referenceOwnerDocument );
|
|
447
461
|
update();
|
|
448
462
|
};
|
|
449
463
|
defaultView.addEventListener( 'resize', updateFrameOffset );
|
|
464
|
+
scrollContainer?.addEventListener( 'scroll', updateFrameOffset );
|
|
450
465
|
|
|
451
466
|
updateFrameOffset();
|
|
452
467
|
|
|
453
468
|
return () => {
|
|
454
469
|
defaultView.removeEventListener( 'resize', updateFrameOffset );
|
|
470
|
+
scrollContainer?.removeEventListener( 'scroll', updateFrameOffset );
|
|
455
471
|
};
|
|
456
472
|
}, [ referenceOwnerDocument, update, refs.floating ] );
|
|
457
473
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { size, MiddlewareArguments } from '@floating-ui/react-dom';
|
|
5
|
+
|
|
6
|
+
export function overlayMiddlewares() {
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
name: 'overlay',
|
|
10
|
+
fn( { rects }: MiddlewareArguments ) {
|
|
11
|
+
return rects.reference;
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
size( {
|
|
15
|
+
apply( { rects, elements } ) {
|
|
16
|
+
const { firstElementChild } = elements.floating ?? {};
|
|
17
|
+
|
|
18
|
+
// Only HTMLElement instances have the `style` property.
|
|
19
|
+
if ( ! ( firstElementChild instanceof HTMLElement ) ) return;
|
|
20
|
+
|
|
21
|
+
// Reduce the height of the popover to the available space.
|
|
22
|
+
Object.assign( firstElementChild.style, {
|
|
23
|
+
width: `${ rects.reference.width }px`,
|
|
24
|
+
height: `${ rects.reference.height }px`,
|
|
25
|
+
} );
|
|
26
|
+
},
|
|
27
|
+
} ),
|
|
28
|
+
];
|
|
29
|
+
}
|
|
@@ -31,6 +31,7 @@ const AVAILABLE_PLACEMENTS: PopoverProps[ 'placement' ][] = [
|
|
|
31
31
|
'left',
|
|
32
32
|
'left-start',
|
|
33
33
|
'left-end',
|
|
34
|
+
'overlay',
|
|
34
35
|
];
|
|
35
36
|
|
|
36
37
|
const meta: ComponentMeta< typeof Popover > = {
|
|
@@ -170,7 +171,12 @@ export const AllPlacements: ComponentStory< typeof Popover > = ( {
|
|
|
170
171
|
</h2>
|
|
171
172
|
<div>
|
|
172
173
|
{ AVAILABLE_PLACEMENTS.map( ( p ) => (
|
|
173
|
-
<PopoverWithAnchor
|
|
174
|
+
<PopoverWithAnchor
|
|
175
|
+
key={ p }
|
|
176
|
+
placement={ p }
|
|
177
|
+
{ ...args }
|
|
178
|
+
resize={ p === 'overlay' ? true : args.resize }
|
|
179
|
+
>
|
|
174
180
|
{ children }
|
|
175
181
|
<div>
|
|
176
182
|
<small>(placement: { p })</small>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import type { CSSProperties
|
|
4
|
+
import { render, screen, waitFor } from '@testing-library/react';
|
|
5
|
+
import type { CSSProperties } from 'react';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
@@ -91,25 +91,21 @@ const ALL_POSITIONS_TO_EXPECTED_PLACEMENTS: PositionToPlacementTuple[] = [
|
|
|
91
91
|
|
|
92
92
|
describe( 'Popover', () => {
|
|
93
93
|
describe( 'Component', () => {
|
|
94
|
-
// Render UI and then wait for the `floating-ui` effects inside `Popover` to finish running
|
|
95
|
-
// See also: https://floating-ui.com/docs/react-dom#testing
|
|
96
|
-
async function renderAsync( ui: ReactElement ) {
|
|
97
|
-
const view = render( ui );
|
|
98
|
-
await act( () => Promise.resolve() );
|
|
99
|
-
return view;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
94
|
describe( 'basic behavior', () => {
|
|
103
95
|
it( 'should render content', async () => {
|
|
104
|
-
|
|
96
|
+
render( <Popover>Hello</Popover> );
|
|
105
97
|
|
|
106
|
-
|
|
98
|
+
await waitFor( () =>
|
|
99
|
+
expect( screen.getByText( 'Hello' ) ).toBeVisible()
|
|
100
|
+
);
|
|
107
101
|
} );
|
|
108
102
|
|
|
109
103
|
it( 'should forward additional props to portaled element', async () => {
|
|
110
|
-
|
|
104
|
+
render( <Popover role="tooltip">Hello</Popover> );
|
|
111
105
|
|
|
112
|
-
|
|
106
|
+
await waitFor( () =>
|
|
107
|
+
expect( screen.getByRole( 'tooltip' ) ).toBeVisible()
|
|
108
|
+
);
|
|
113
109
|
} );
|
|
114
110
|
} );
|
|
115
111
|
|
|
@@ -129,32 +125,44 @@ describe( 'Popover', () => {
|
|
|
129
125
|
);
|
|
130
126
|
};
|
|
131
127
|
|
|
132
|
-
|
|
128
|
+
render(
|
|
133
129
|
<PopoverWithAnchor>Popover content</PopoverWithAnchor>
|
|
134
130
|
);
|
|
135
131
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
await waitFor( () =>
|
|
133
|
+
expect(
|
|
134
|
+
screen.getByText( 'Popover content' )
|
|
135
|
+
).toBeVisible()
|
|
136
|
+
);
|
|
139
137
|
} );
|
|
140
138
|
} );
|
|
141
139
|
|
|
142
140
|
describe( 'focus behavior', () => {
|
|
143
141
|
it( 'should focus the popover by default when opened', async () => {
|
|
144
|
-
|
|
142
|
+
render(
|
|
145
143
|
<Popover data-testid="popover-element">
|
|
146
144
|
Popover content
|
|
147
145
|
</Popover>
|
|
148
146
|
);
|
|
149
147
|
|
|
150
|
-
|
|
148
|
+
const popover = screen.getByTestId( 'popover-element' );
|
|
149
|
+
|
|
150
|
+
await waitFor( () => expect( popover ).toBeVisible() );
|
|
151
|
+
|
|
152
|
+
expect( popover ).toHaveFocus();
|
|
151
153
|
} );
|
|
152
154
|
|
|
153
155
|
it( 'should allow focus-on-open behavior to be disabled', async () => {
|
|
154
|
-
|
|
156
|
+
render(
|
|
155
157
|
<Popover focusOnMount={ false }>Popover content</Popover>
|
|
156
158
|
);
|
|
157
159
|
|
|
160
|
+
await waitFor( () =>
|
|
161
|
+
expect(
|
|
162
|
+
screen.getByText( 'Popover content' )
|
|
163
|
+
).toBeVisible()
|
|
164
|
+
);
|
|
165
|
+
|
|
158
166
|
expect( document.body ).toHaveFocus();
|
|
159
167
|
} );
|
|
160
168
|
} );
|
package/src/popover/types.ts
CHANGED
|
@@ -12,8 +12,10 @@ type DomRectWithOwnerDocument = DOMRect & {
|
|
|
12
12
|
ownerDocument?: Document;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
+
type PopoverPlacement = Placement | 'overlay';
|
|
16
|
+
|
|
15
17
|
export type AnimatedWrapperProps = {
|
|
16
|
-
placement:
|
|
18
|
+
placement: PopoverPlacement;
|
|
17
19
|
shouldAnimate?: boolean;
|
|
18
20
|
};
|
|
19
21
|
|
|
@@ -111,7 +113,7 @@ export type PopoverProps = {
|
|
|
111
113
|
*
|
|
112
114
|
* @default 'bottom-start'
|
|
113
115
|
*/
|
|
114
|
-
placement?:
|
|
116
|
+
placement?: PopoverPlacement;
|
|
115
117
|
/**
|
|
116
118
|
* Legacy way to specify the popover's position with respect to its anchor.
|
|
117
119
|
* _Note: this prop is deprecated. Use the `placement` prop instead._
|
package/src/popover/utils.ts
CHANGED
|
@@ -74,7 +74,7 @@ const POSITION_TO_PLACEMENT: Record<
|
|
|
74
74
|
* Converts the `Popover`'s legacy "position" prop to the new "placement" prop
|
|
75
75
|
* (used by `floating-ui`).
|
|
76
76
|
*
|
|
77
|
-
* @param
|
|
77
|
+
* @param position The legacy position
|
|
78
78
|
* @return The corresponding placement
|
|
79
79
|
*/
|
|
80
80
|
export const positionToPlacement = (
|
|
@@ -105,13 +105,14 @@ const PLACEMENT_TO_ANIMATION_ORIGIN: Record<
|
|
|
105
105
|
left: { originX: 1, originY: 0.5 }, // open from middle, right
|
|
106
106
|
'left-start': { originX: 1, originY: 0 }, // open from top, right
|
|
107
107
|
'left-end': { originX: 1, originY: 1 }, // open from bottom, right
|
|
108
|
+
overlay: { originX: 0.5, originY: 0.5 }, // open from center, center
|
|
108
109
|
};
|
|
109
110
|
|
|
110
111
|
/**
|
|
111
112
|
* Given the floating-ui `placement`, compute the framer-motion props for the
|
|
112
113
|
* popover's entry animation.
|
|
113
114
|
*
|
|
114
|
-
* @param
|
|
115
|
+
* @param placement A placement string from floating ui
|
|
115
116
|
* @return The object containing the motion props
|
|
116
117
|
*/
|
|
117
118
|
export const placementToMotionAnimationProps = (
|
|
@@ -141,7 +142,7 @@ export const placementToMotionAnimationProps = (
|
|
|
141
142
|
/**
|
|
142
143
|
* Returns the offset of a document's frame element.
|
|
143
144
|
*
|
|
144
|
-
* @param
|
|
145
|
+
* @param document The iframe's owner document.
|
|
145
146
|
*
|
|
146
147
|
* @return The offset of the document's frame element, or undefined if the
|
|
147
148
|
* document has no frame element.
|
|
@@ -157,6 +158,23 @@ export const getFrameOffset = (
|
|
|
157
158
|
return { x: iframeRect.left, y: iframeRect.top };
|
|
158
159
|
};
|
|
159
160
|
|
|
161
|
+
export const getFrameScale = (
|
|
162
|
+
document?: Document
|
|
163
|
+
): {
|
|
164
|
+
x: number;
|
|
165
|
+
y: number;
|
|
166
|
+
} => {
|
|
167
|
+
const frameElement = document?.defaultView?.frameElement as HTMLElement;
|
|
168
|
+
if ( ! frameElement ) {
|
|
169
|
+
return { x: 1, y: 1 };
|
|
170
|
+
}
|
|
171
|
+
const rect = frameElement.getBoundingClientRect();
|
|
172
|
+
return {
|
|
173
|
+
x: rect.width / frameElement.offsetWidth,
|
|
174
|
+
y: rect.height / frameElement.offsetHeight,
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
|
|
160
178
|
export const getReferenceOwnerDocument = ( {
|
|
161
179
|
anchor,
|
|
162
180
|
anchorRef,
|
|
@@ -213,11 +231,13 @@ export const getReferenceElement = ( {
|
|
|
213
231
|
anchorRect,
|
|
214
232
|
getAnchorRect,
|
|
215
233
|
fallbackReferenceElement,
|
|
234
|
+
scale,
|
|
216
235
|
}: Pick<
|
|
217
236
|
PopoverProps,
|
|
218
237
|
'anchorRef' | 'anchorRect' | 'getAnchorRect' | 'anchor'
|
|
219
238
|
> & {
|
|
220
239
|
fallbackReferenceElement: Element | null;
|
|
240
|
+
scale: { x: number; y: number };
|
|
221
241
|
} ): ReferenceType | null => {
|
|
222
242
|
let referenceElement = null;
|
|
223
243
|
|
|
@@ -279,6 +299,22 @@ export const getReferenceElement = ( {
|
|
|
279
299
|
referenceElement = fallbackReferenceElement.parentElement;
|
|
280
300
|
}
|
|
281
301
|
|
|
302
|
+
if ( referenceElement && ( scale.x !== 1 || scale.y !== 1 ) ) {
|
|
303
|
+
// If the popover is inside an iframe, the coordinates of the
|
|
304
|
+
// reference element need to be scaled to match the iframe's scale.
|
|
305
|
+
const rect = referenceElement.getBoundingClientRect();
|
|
306
|
+
referenceElement = {
|
|
307
|
+
getBoundingClientRect() {
|
|
308
|
+
return new window.DOMRect(
|
|
309
|
+
rect.x * scale.x,
|
|
310
|
+
rect.y * scale.y,
|
|
311
|
+
rect.width * scale.x,
|
|
312
|
+
rect.height * scale.y
|
|
313
|
+
);
|
|
314
|
+
},
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
|
|
282
318
|
// Convert any `undefined` value to `null`.
|
|
283
319
|
return referenceElement ?? null;
|
|
284
320
|
};
|
|
@@ -14,9 +14,9 @@ import type { UseControlledRangeValueArgs } from './types';
|
|
|
14
14
|
/**
|
|
15
15
|
* A float supported clamp function for a specific value.
|
|
16
16
|
*
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
17
|
+
* @param value The value to clamp.
|
|
18
|
+
* @param min The minimum value.
|
|
19
|
+
* @param max The maximum value.
|
|
20
20
|
*
|
|
21
21
|
* @return A (float) number
|
|
22
22
|
*/
|
|
@@ -31,7 +31,7 @@ export function floatClamp( value: number | null, min: number, max: number ) {
|
|
|
31
31
|
/**
|
|
32
32
|
* Hook to store a clamped value, derived from props.
|
|
33
33
|
*
|
|
34
|
-
* @param
|
|
34
|
+
* @param settings
|
|
35
35
|
* @return The controlled value and the value setter.
|
|
36
36
|
*/
|
|
37
37
|
export function useControlledRangeValue(
|
|
File without changes
|
|
@@ -34,12 +34,12 @@ interface UseResizeLabelArgs {
|
|
|
34
34
|
* Custom hook that manages resize listener events. It also provides a label
|
|
35
35
|
* based on current resize width x height values.
|
|
36
36
|
*
|
|
37
|
-
* @param
|
|
38
|
-
* @param
|
|
39
|
-
* @param
|
|
40
|
-
* @param
|
|
41
|
-
* @param
|
|
42
|
-
* @param
|
|
37
|
+
* @param props
|
|
38
|
+
* @param props.axis Only shows the label corresponding to the axis.
|
|
39
|
+
* @param props.fadeTimeout Duration (ms) before deactivating the resize label.
|
|
40
|
+
* @param props.onResize Callback when a resize occurs. Provides { width, height } callback.
|
|
41
|
+
* @param props.position Adjusts label value.
|
|
42
|
+
* @param props.showPx Whether to add `PX` to the label.
|
|
43
43
|
*
|
|
44
44
|
* @return Properties for hook.
|
|
45
45
|
*/
|
|
@@ -174,14 +174,14 @@ interface GetSizeLabelArgs {
|
|
|
174
174
|
/**
|
|
175
175
|
* Gets the resize label based on width and height values (as well as recent changes).
|
|
176
176
|
*
|
|
177
|
-
* @param
|
|
178
|
-
* @param
|
|
179
|
-
* @param
|
|
180
|
-
* @param
|
|
181
|
-
* @param
|
|
182
|
-
* @param
|
|
183
|
-
* @param
|
|
184
|
-
* @param
|
|
177
|
+
* @param props
|
|
178
|
+
* @param props.axis Only shows the label corresponding to the axis.
|
|
179
|
+
* @param props.height Height value.
|
|
180
|
+
* @param props.moveX Recent width (x axis) changes.
|
|
181
|
+
* @param props.moveY Recent width (y axis) changes.
|
|
182
|
+
* @param props.position Adjusts label value.
|
|
183
|
+
* @param props.showPx Whether to add `PX` to the label.
|
|
184
|
+
* @param props.width Width value.
|
|
185
185
|
*
|
|
186
186
|
* @return The rendered label.
|
|
187
187
|
*/
|
package/src/snackbar/index.tsx
CHANGED
|
@@ -26,8 +26,8 @@ const NOTICE_TIMEOUT = 10000;
|
|
|
26
26
|
* Custom hook which announces the message with the given politeness, if a
|
|
27
27
|
* valid message is provided.
|
|
28
28
|
*
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
29
|
+
* @param message Message to announce.
|
|
30
|
+
* @param politeness Politeness to announce.
|
|
31
31
|
*/
|
|
32
32
|
function useSpokenMessage(
|
|
33
33
|
message: SnackbarProps[ 'spokenMessage' ],
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
@@ -18,6 +23,7 @@ import {
|
|
|
18
23
|
arrowRight,
|
|
19
24
|
chevronDown,
|
|
20
25
|
} from '@wordpress/icons';
|
|
26
|
+
import { SVG, Path } from '@wordpress/primitives';
|
|
21
27
|
|
|
22
28
|
/**
|
|
23
29
|
* Internal dependencies
|
|
@@ -29,9 +35,9 @@ import {
|
|
|
29
35
|
ToolbarItem,
|
|
30
36
|
ToolbarDropdownMenu,
|
|
31
37
|
} from '..';
|
|
32
|
-
import
|
|
38
|
+
import DropdownMenu from '../../dropdown-menu';
|
|
33
39
|
|
|
34
|
-
|
|
40
|
+
const meta: ComponentMeta< typeof Toolbar > = {
|
|
35
41
|
title: 'Components/Toolbar',
|
|
36
42
|
component: Toolbar,
|
|
37
43
|
subcomponents: {
|
|
@@ -49,6 +55,8 @@ export default {
|
|
|
49
55
|
},
|
|
50
56
|
};
|
|
51
57
|
|
|
58
|
+
export default meta;
|
|
59
|
+
|
|
52
60
|
function InlineImageIcon() {
|
|
53
61
|
return (
|
|
54
62
|
<SVG xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
@@ -57,7 +65,7 @@ function InlineImageIcon() {
|
|
|
57
65
|
);
|
|
58
66
|
}
|
|
59
67
|
|
|
60
|
-
const Template = ( props ) => (
|
|
68
|
+
const Template: ComponentStory< typeof Toolbar > = ( props ) => (
|
|
61
69
|
<div style={ { height: 280 } }>
|
|
62
70
|
<Toolbar { ...props } />
|
|
63
71
|
</div>
|
|
@@ -74,29 +82,32 @@ Default.args = {
|
|
|
74
82
|
</ToolbarGroup>
|
|
75
83
|
<ToolbarGroup>
|
|
76
84
|
<ToolbarItem>
|
|
77
|
-
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
85
|
+
{
|
|
86
|
+
// @ts-expect-error TODO: Remove when ToolbarItem/DropdownMenu is typed
|
|
87
|
+
( toggleProps ) => (
|
|
88
|
+
<DropdownMenu
|
|
89
|
+
hasArrowIndicator
|
|
90
|
+
icon={ alignLeft }
|
|
91
|
+
label="Align"
|
|
92
|
+
controls={ [
|
|
93
|
+
{
|
|
94
|
+
icon: alignLeft,
|
|
95
|
+
title: 'Align left',
|
|
96
|
+
isActive: true,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
icon: alignCenter,
|
|
100
|
+
title: 'Align center',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
icon: alignRight,
|
|
104
|
+
title: 'Align right',
|
|
105
|
+
},
|
|
106
|
+
] }
|
|
107
|
+
toggleProps={ toggleProps }
|
|
108
|
+
/>
|
|
109
|
+
)
|
|
110
|
+
}
|
|
100
111
|
</ToolbarItem>
|
|
101
112
|
</ToolbarGroup>
|
|
102
113
|
<ToolbarGroup>
|
|
@@ -106,6 +117,7 @@ Default.args = {
|
|
|
106
117
|
<ToolbarButton icon={ link } label="Link" />
|
|
107
118
|
<ToolbarGroup
|
|
108
119
|
isCollapsed
|
|
120
|
+
// @ts-expect-error TODO: Remove when ToolbarGroup is typed
|
|
109
121
|
icon={ false }
|
|
110
122
|
label="More rich text controls"
|
|
111
123
|
controls={ [
|
|
@@ -119,6 +131,7 @@ Default.args = {
|
|
|
119
131
|
/>
|
|
120
132
|
</ToolbarGroup>
|
|
121
133
|
<ToolbarGroup
|
|
134
|
+
// @ts-expect-error TODO: Remove when ToolbarGroup is typed
|
|
122
135
|
icon={ more }
|
|
123
136
|
label="Align"
|
|
124
137
|
isCollapsed
|
|
File without changes
|
|
@@ -23,7 +23,7 @@ describe( 'ToolbarGroup', () => {
|
|
|
23
23
|
} );
|
|
24
24
|
|
|
25
25
|
it( 'should render a list of controls with buttons', () => {
|
|
26
|
-
const clickHandler = ( event ) => event;
|
|
26
|
+
const clickHandler = ( event: Event ) => event;
|
|
27
27
|
const controls = [
|
|
28
28
|
{
|
|
29
29
|
icon: 'wordpress',
|
|
@@ -41,7 +41,7 @@ describe( 'ToolbarGroup', () => {
|
|
|
41
41
|
} );
|
|
42
42
|
|
|
43
43
|
it( 'should render a list of controls with buttons and active control', () => {
|
|
44
|
-
const clickHandler = ( event ) => event;
|
|
44
|
+
const clickHandler = ( event: Event ) => event;
|
|
45
45
|
const controls = [
|
|
46
46
|
{
|
|
47
47
|
icon: 'wordpress',
|
|
@@ -59,11 +59,16 @@ function MyToolbar() {
|
|
|
59
59
|
|
|
60
60
|
Toolbar will pass all HTML props to the underlying element. Additionally, you can pass the custom props specified below.
|
|
61
61
|
|
|
62
|
-
####
|
|
62
|
+
#### `className`: `string`
|
|
63
|
+
|
|
64
|
+
Class to set on the container div.
|
|
65
|
+
|
|
66
|
+
- Required: No
|
|
67
|
+
|
|
68
|
+
#### `label`: `string`
|
|
63
69
|
|
|
64
70
|
An accessible label for the toolbar.
|
|
65
71
|
|
|
66
|
-
- Type: `String`
|
|
67
72
|
- Required: Yes
|
|
68
73
|
|
|
69
74
|
## Related components
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
+
import type { ForwardedRef } from 'react';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* WordPress dependencies
|
|
@@ -14,18 +15,17 @@ import deprecated from '@wordpress/deprecated';
|
|
|
14
15
|
*/
|
|
15
16
|
import ToolbarGroup from '../toolbar-group';
|
|
16
17
|
import ToolbarContainer from './toolbar-container';
|
|
18
|
+
import type { ToolbarProps } from './types';
|
|
19
|
+
import type { WordPressComponentProps } from '../../ui/context';
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* @param {Object} ref React Element ref.
|
|
27
|
-
*/
|
|
28
|
-
function Toolbar( { className, label, ...props }, ref ) {
|
|
21
|
+
function UnforwardedToolbar(
|
|
22
|
+
{
|
|
23
|
+
className,
|
|
24
|
+
label,
|
|
25
|
+
...props
|
|
26
|
+
}: WordPressComponentProps< ToolbarProps, 'div', false >,
|
|
27
|
+
ref: ForwardedRef< any >
|
|
28
|
+
) {
|
|
29
29
|
if ( ! label ) {
|
|
30
30
|
deprecated( 'Using Toolbar without label prop', {
|
|
31
31
|
since: '5.6',
|
|
@@ -49,4 +49,25 @@ function Toolbar( { className, label, ...props }, ref ) {
|
|
|
49
49
|
);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Renders a toolbar.
|
|
54
|
+
*
|
|
55
|
+
* To add controls, simply pass `ToolbarButton` components as children.
|
|
56
|
+
*
|
|
57
|
+
* ```jsx
|
|
58
|
+
* import { Toolbar, ToolbarButton } from '@wordpress/components';
|
|
59
|
+
* import { formatBold, formatItalic, link } from '@wordpress/icons';
|
|
60
|
+
*
|
|
61
|
+
* function MyToolbar() {
|
|
62
|
+
* return (
|
|
63
|
+
* <Toolbar label="Options">
|
|
64
|
+
* <ToolbarButton icon={ formatBold } label="Bold" />
|
|
65
|
+
* <ToolbarButton icon={ formatItalic } label="Italic" />
|
|
66
|
+
* <ToolbarButton icon={ link } label="Link" />
|
|
67
|
+
* </Toolbar>
|
|
68
|
+
* );
|
|
69
|
+
* }
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export const Toolbar = forwardRef( UnforwardedToolbar );
|
|
73
|
+
export default Toolbar;
|