@wordpress/block-editor 9.7.1-next.d6164808d3.0 → 10.0.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 +8 -0
- package/README.md +13 -1
- package/build/components/alignment-control/ui.js +6 -5
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-actions/index.js +5 -9
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +5 -5
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-content-overlay/index.js +2 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.js +2 -1
- package/build/components/block-draggable/draggable-chip.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-inspector/index.js +125 -17
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-compact.native.js +73 -0
- package/build/components/block-list/block-list-compact.native.js.map +1 -0
- package/build/components/block-list/block.js +40 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +4 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +14 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -10
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -12
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +20 -21
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js +1 -7
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +3 -1
- package/build/components/block-lock/use-block-lock.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/button.js +4 -6
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -6
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +24 -8
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-popover/inbetween.js +58 -16
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +14 -9
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +4 -2
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +3 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +7 -1
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +114 -25
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -8
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +13 -5
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +33 -15
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +4 -9
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +19 -10
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +131 -0
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build/components/block-vertical-alignment-control/ui.js +5 -2
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/colors-gradients/control.js +1 -0
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +1 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/iframe/index.js +31 -4
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +1 -7
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +6 -2
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -6
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +14 -3
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +21 -8
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/tabs.js +11 -4
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +6 -3
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-item.js +36 -5
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/block.js +23 -11
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +19 -2
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +8 -4
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +0 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/provider/use-block-sync.js +1 -7
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +1 -1
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/rich-text/index.js +37 -19
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +11 -20
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +32 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/text-decoration-control/index.js +28 -17
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +21 -14
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +6 -11
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-popover/index.js +1 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +7 -4
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +9 -28
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -0
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +7 -16
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/hooks/align.js +17 -3
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +3 -7
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/color-panel.js +2 -1
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/content-lock-ui.js +145 -0
- package/build/hooks/content-lock-ui.js.map +1 -0
- package/build/hooks/dimensions.js +6 -6
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +8 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-appearance.js +2 -1
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +3 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +3 -1
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -6
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +14 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +14 -10
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/letter-spacing.js +2 -1
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +2 -1
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +3 -7
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/metadata-name.js +55 -0
- package/build/hooks/metadata-name.js.map +1 -0
- package/build/hooks/metadata.js +65 -0
- package/build/hooks/metadata.js.map +1 -0
- package/build/hooks/text-decoration.js +2 -1
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +2 -1
- package/build/hooks/text-transform.js.map +1 -1
- package/build/hooks/use-typography-props.js +51 -0
- package/build/hooks/use-typography-props.js.map +1 -0
- package/build/hooks/utils.js +3 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/constrained.js +71 -22
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flow.js +30 -2
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +65 -21
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +39 -18
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +95 -9
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +1 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +6 -5
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-actions/index.js +5 -8
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +5 -5
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +2 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.js +2 -1
- package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-inspector/index.js +127 -19
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-compact.native.js +58 -0
- package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
- package/build-module/components/block-list/block.js +41 -9
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -4
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +13 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -9
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +7 -12
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +20 -20
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js +1 -6
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +3 -1
- package/build-module/components/block-lock/use-block-lock.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -5
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -5
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +24 -7
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +59 -17
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +12 -9
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +4 -2
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +3 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +6 -1
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +9 -8
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +12 -5
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +30 -15
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +4 -9
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +17 -10
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +119 -0
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
- package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +1 -0
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +1 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/iframe/index.js +32 -5
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +1 -6
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +5 -2
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -6
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +14 -3
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +20 -8
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/tabs.js +11 -4
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +6 -2
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-item.js +37 -6
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/block.js +23 -11
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +19 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +8 -4
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +0 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +1 -6
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +1 -1
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +37 -18
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +11 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +30 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +25 -18
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +19 -15
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +6 -11
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-popover/index.js +1 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +7 -4
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +9 -28
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -0
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +7 -15
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/hooks/align.js +16 -4
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +3 -6
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/color-panel.js +2 -1
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +128 -0
- package/build-module/hooks/content-lock-ui.js.map +1 -0
- package/build-module/hooks/dimensions.js +6 -6
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +6 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-appearance.js +2 -1
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +3 -1
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -6
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +4 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +15 -11
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +2 -1
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +2 -1
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +3 -6
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/metadata-name.js +45 -0
- package/build-module/hooks/metadata-name.js.map +1 -0
- package/build-module/hooks/metadata.js +50 -0
- package/build-module/hooks/metadata.js.map +1 -0
- package/build-module/hooks/text-decoration.js +2 -1
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +2 -1
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/hooks/use-typography-props.js +38 -0
- package/build-module/hooks/use-typography-props.js.map +1 -0
- package/build-module/hooks/utils.js +4 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/constrained.js +74 -25
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flow.js +31 -3
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +58 -20
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +37 -18
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +80 -9
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +1 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +137 -86
- package/build-style/style.css +137 -86
- package/package.json +28 -28
- package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
- package/src/components/alignment-control/test/index.js +124 -33
- package/src/components/alignment-control/ui.js +8 -3
- package/src/components/block-actions/index.js +9 -8
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
- package/src/components/block-alignment-control/test/index.js +95 -31
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
- package/src/components/block-compare/test/block-view.js +3 -3
- package/src/components/block-content-overlay/index.js +2 -6
- package/src/components/block-content-overlay/style.scss +24 -3
- package/src/components/block-draggable/draggable-chip.js +4 -1
- package/src/components/block-edit/edit.js +5 -1
- package/src/components/block-edit/test/edit.js +23 -21
- package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
- package/src/components/block-icon/test/index.js +31 -16
- package/src/components/block-inspector/index.js +126 -12
- package/src/components/block-inspector/style.scss +7 -1
- package/src/components/block-list/block-list-compact.native.js +62 -0
- package/src/components/block-list/block.js +53 -13
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/style.scss +68 -18
- package/src/components/block-list/test/block-list-context.native.js +11 -13
- package/src/components/block-list/use-block-props/index.js +10 -10
- package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +4 -9
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +11 -13
- package/src/components/block-list-appender/index.js +27 -18
- package/src/components/block-list-appender/index.native.js +3 -6
- package/src/components/block-lock/use-block-lock.js +2 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
- package/src/components/block-mover/button.js +6 -5
- package/src/components/block-mover/index.js +8 -7
- package/src/components/block-mover/index.native.js +20 -13
- package/src/components/block-popover/inbetween.js +85 -21
- package/src/components/block-popover/index.js +25 -17
- package/src/components/block-popover/style.scss +3 -4
- package/src/components/block-preview/auto.js +4 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
- package/src/components/block-settings-menu-controls/README.md +9 -0
- package/src/components/block-settings-menu-controls/index.js +13 -2
- package/src/components/block-styles/preview-panel.js +3 -0
- package/src/components/block-switcher/block-transformations-menu.js +127 -33
- package/src/components/block-switcher/style.scss +4 -2
- package/src/components/block-switcher/test/index.js +1 -2
- package/src/components/block-title/test/index.js +28 -25
- package/src/components/block-toolbar/index.js +27 -17
- package/src/components/block-tools/block-contextual-toolbar.js +10 -3
- package/src/components/block-tools/block-selection-button.js +35 -16
- package/src/components/block-tools/index.js +40 -24
- package/src/components/block-tools/insertion-point.js +3 -7
- package/src/components/block-tools/selected-block-popover.js +16 -7
- package/src/components/block-tools/style.scss +5 -0
- package/src/components/block-tools/use-block-toolbar-popover-props.js +136 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
- package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
- package/src/components/block-vertical-alignment-control/test/index.js +92 -23
- package/src/components/block-vertical-alignment-control/ui.js +3 -2
- package/src/components/button-block-appender/style.scss +23 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
- package/src/components/colors/test/with-colors.js +37 -12
- package/src/components/colors-gradients/control.js +1 -0
- package/src/components/colors-gradients/dropdown.js +1 -1
- package/src/components/contrast-checker/test/index.js +135 -116
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
- package/src/components/default-block-appender/test/index.js +32 -18
- package/src/components/font-sizes/README.MD +9 -0
- package/src/components/iframe/index.js +64 -5
- package/src/components/inner-blocks/README.md +2 -1
- package/src/components/inner-blocks/default-block-appender.js +1 -6
- package/src/components/inner-blocks/index.js +3 -2
- package/src/components/inner-blocks/index.native.js +5 -1
- package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
- package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
- package/src/components/inserter/index.js +2 -8
- package/src/components/inserter/library.js +11 -5
- package/src/components/inserter/menu.js +42 -29
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/stories/fixtures.js +44 -0
- package/src/components/inserter/stories/index.js +90 -0
- package/src/components/inserter/style.scss +21 -27
- package/src/components/inserter/tabs.js +8 -4
- package/src/components/link-control/link-preview.js +5 -3
- package/src/components/link-control/search-input.js +2 -2
- package/src/components/link-control/search-item.js +39 -7
- package/src/components/list-view/block.js +29 -10
- package/src/components/list-view/branch.js +27 -4
- package/src/components/list-view/index.js +8 -3
- package/src/components/list-view/use-block-selection.js +0 -1
- package/src/components/media-placeholder/test/index.js +2 -2
- package/src/components/media-replace-flow/README.md +1 -1
- package/src/components/provider/use-block-sync.js +3 -6
- package/src/components/publish-date-time-picker/index.js +1 -1
- package/src/components/rich-text/index.js +33 -35
- package/src/components/rich-text/index.native.js +8 -21
- package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
- package/src/components/spacing-sizes-control/test/utils.js +26 -0
- package/src/components/spacing-sizes-control/utils.js +36 -9
- package/src/components/text-decoration-control/index.js +41 -30
- package/src/components/text-decoration-control/stories/index.js +37 -0
- package/src/components/text-transform-control/index.js +27 -27
- package/src/components/text-transform-control/stories/index.js +37 -0
- package/src/components/tool-selector/index.js +9 -11
- package/src/components/url-input/test/button.js +145 -71
- package/src/components/url-popover/index.js +1 -1
- package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
- package/src/components/url-popover/test/index.js +14 -12
- package/src/components/use-block-drop-zone/index.js +15 -4
- package/src/components/use-moving-animation/index.js +9 -24
- package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
- package/src/components/warning/test/index.js +32 -29
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-select-all.js +13 -18
- package/src/hooks/align.js +24 -15
- package/src/hooks/anchor.js +1 -6
- package/src/hooks/color-panel.js +2 -1
- package/src/hooks/content-lock-ui.js +161 -0
- package/src/hooks/dimensions.js +7 -8
- package/src/hooks/duotone.js +13 -1
- package/src/hooks/font-appearance.js +1 -0
- package/src/hooks/font-family.js +2 -0
- package/src/hooks/font-size.js +2 -0
- package/src/hooks/gap.js +43 -25
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +27 -21
- package/src/hooks/layout.scss +7 -1
- package/src/hooks/letter-spacing.js +1 -0
- package/src/hooks/line-height.js +1 -0
- package/src/hooks/lock.js +1 -6
- package/src/hooks/metadata-name.js +48 -0
- package/src/hooks/metadata.js +64 -0
- package/src/hooks/test/gap.js +16 -22
- package/src/hooks/test/use-typography-props.js +28 -0
- package/src/hooks/text-decoration.js +1 -0
- package/src/hooks/text-transform.js +1 -0
- package/src/hooks/typography.scss +0 -6
- package/src/hooks/use-typography-props.js +41 -0
- package/src/hooks/utils.js +2 -11
- package/src/index.js +1 -0
- package/src/layouts/constrained.js +85 -33
- package/src/layouts/flow.js +21 -10
- package/src/store/actions.js +45 -4
- package/src/store/reducer.js +33 -21
- package/src/store/selectors.js +98 -19
- package/src/store/test/reducer.js +8 -5
- package/src/style.scss +0 -2
- package/src/utils/parse-css-unit-to-px.js +1 -1
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useRefEffect } from '@wordpress/compose';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { useCallback, useLayoutEffect, useState } from '@wordpress/element';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { store as blockEditorStore } from '../../store';
|
|
12
|
+
import { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';
|
|
13
|
+
|
|
14
|
+
// By default the toolbar sets the `shift` prop. If the user scrolls the page
|
|
15
|
+
// down the toolbar will stay on screen by adopting a sticky position at the
|
|
16
|
+
// top of the viewport.
|
|
17
|
+
const DEFAULT_PROPS = {
|
|
18
|
+
flip: false,
|
|
19
|
+
shift: true,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// When there isn't enough height between the top of the block and the editor
|
|
23
|
+
// canvas, the `shift` prop is set to `false`, as it will cause the block to be
|
|
24
|
+
// obscured. The `flip` behavior is enabled, which positions the toolbar below
|
|
25
|
+
// the block. This only happens if the block is smaller than the viewport, as
|
|
26
|
+
// otherwise the toolbar will be off-screen.
|
|
27
|
+
const RESTRICTED_HEIGHT_PROPS = {
|
|
28
|
+
flip: true,
|
|
29
|
+
shift: false,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Get the popover props for the block toolbar, determined by the space at the top of the canvas and the toolbar height.
|
|
34
|
+
*
|
|
35
|
+
* @param {Element} contentElement The DOM element that represents the editor content or canvas.
|
|
36
|
+
* @param {Element} selectedBlockElement The outer DOM element of the first selected block.
|
|
37
|
+
* @param {number} toolbarHeight The height of the toolbar in pixels.
|
|
38
|
+
*
|
|
39
|
+
* @return {Object} The popover props used to determine the position of the toolbar.
|
|
40
|
+
*/
|
|
41
|
+
function getProps( contentElement, selectedBlockElement, toolbarHeight ) {
|
|
42
|
+
if ( ! contentElement || ! selectedBlockElement ) {
|
|
43
|
+
return DEFAULT_PROPS;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const blockRect = selectedBlockElement.getBoundingClientRect();
|
|
47
|
+
const contentRect = contentElement.getBoundingClientRect();
|
|
48
|
+
|
|
49
|
+
// The document element's clientHeight represents the viewport height.
|
|
50
|
+
const viewportHeight =
|
|
51
|
+
contentElement.ownerDocument.documentElement.clientHeight;
|
|
52
|
+
|
|
53
|
+
const hasSpaceForToolbarAbove =
|
|
54
|
+
blockRect.top - contentRect.top > toolbarHeight;
|
|
55
|
+
const isBlockTallerThanViewport =
|
|
56
|
+
blockRect.height > viewportHeight - toolbarHeight;
|
|
57
|
+
|
|
58
|
+
if ( hasSpaceForToolbarAbove || isBlockTallerThanViewport ) {
|
|
59
|
+
return DEFAULT_PROPS;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return RESTRICTED_HEIGHT_PROPS;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Determines the desired popover positioning behavior, returning a set of appropriate props.
|
|
67
|
+
*
|
|
68
|
+
* @param {Object} elements
|
|
69
|
+
* @param {Element} elements.contentElement The DOM element that represents the editor content or canvas.
|
|
70
|
+
* @param {string} elements.clientId The clientId of the first selected block.
|
|
71
|
+
*
|
|
72
|
+
* @return {Object} The popover props used to determine the position of the toolbar.
|
|
73
|
+
*/
|
|
74
|
+
export default function useBlockToolbarPopoverProps( {
|
|
75
|
+
contentElement,
|
|
76
|
+
clientId,
|
|
77
|
+
} ) {
|
|
78
|
+
const selectedBlockElement = useBlockElement( clientId );
|
|
79
|
+
const [ toolbarHeight, setToolbarHeight ] = useState( 0 );
|
|
80
|
+
const [ props, setProps ] = useState( () =>
|
|
81
|
+
getProps( contentElement, selectedBlockElement, toolbarHeight )
|
|
82
|
+
);
|
|
83
|
+
const blockIndex = useSelect(
|
|
84
|
+
( select ) => select( blockEditorStore ).getBlockIndex( clientId ),
|
|
85
|
+
[ clientId ]
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
const popoverRef = useRefEffect( ( popoverNode ) => {
|
|
89
|
+
setToolbarHeight( popoverNode.offsetHeight );
|
|
90
|
+
}, [] );
|
|
91
|
+
|
|
92
|
+
const updateProps = useCallback(
|
|
93
|
+
() =>
|
|
94
|
+
setProps(
|
|
95
|
+
getProps( contentElement, selectedBlockElement, toolbarHeight )
|
|
96
|
+
),
|
|
97
|
+
[ contentElement, selectedBlockElement, toolbarHeight ]
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
// Update props when the block is moved. This also ensures the props are
|
|
101
|
+
// correct on initial mount, and when the selected block or content element
|
|
102
|
+
// changes (since the callback ref will update).
|
|
103
|
+
useLayoutEffect( updateProps, [ blockIndex, updateProps ] );
|
|
104
|
+
|
|
105
|
+
// Update props when the viewport is resized or the block is resized.
|
|
106
|
+
useLayoutEffect( () => {
|
|
107
|
+
if ( ! contentElement || ! selectedBlockElement ) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Update the toolbar props on viewport resize.
|
|
112
|
+
const contentView = contentElement?.ownerDocument?.defaultView;
|
|
113
|
+
contentView?.addEventHandler?.( 'resize', updateProps );
|
|
114
|
+
|
|
115
|
+
// Update the toolbar props on block resize.
|
|
116
|
+
let resizeObserver;
|
|
117
|
+
const blockView = selectedBlockElement?.ownerDocument?.defaultView;
|
|
118
|
+
if ( blockView.ResizeObserver ) {
|
|
119
|
+
resizeObserver = new blockView.ResizeObserver( updateProps );
|
|
120
|
+
resizeObserver.observe( selectedBlockElement );
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return () => {
|
|
124
|
+
contentView?.removeEventHandler?.( 'resize', updateProps );
|
|
125
|
+
|
|
126
|
+
if ( resizeObserver ) {
|
|
127
|
+
resizeObserver.disconnect();
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}, [ updateProps, contentElement, selectedBlockElement ] );
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
...props,
|
|
134
|
+
ref: popoverRef,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useSelect } from '@wordpress/data';
|
|
5
|
+
import { useEffect, useState } from '@wordpress/element';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import BlockPopoverInbetween from '../block-popover/inbetween';
|
|
11
|
+
import { store as blockEditorStore } from '../../store';
|
|
12
|
+
import Inserter from '../inserter';
|
|
13
|
+
|
|
14
|
+
function ZoomOutModeInserters( { __unstableContentRef } ) {
|
|
15
|
+
const [ isReady, setIsReady ] = useState( false );
|
|
16
|
+
const blockOrder = useSelect( ( select ) => {
|
|
17
|
+
return select( blockEditorStore ).getBlockOrder();
|
|
18
|
+
}, [] );
|
|
19
|
+
|
|
20
|
+
// Defer the initial rendering to avoid the jumps due to the animation.
|
|
21
|
+
useEffect( () => {
|
|
22
|
+
const timeout = setTimeout( () => {
|
|
23
|
+
setIsReady( true );
|
|
24
|
+
}, 500 );
|
|
25
|
+
return () => {
|
|
26
|
+
clearTimeout( timeout );
|
|
27
|
+
};
|
|
28
|
+
}, [] );
|
|
29
|
+
|
|
30
|
+
if ( ! isReady ) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return blockOrder.map( ( clientId, index ) => {
|
|
35
|
+
if ( index === blockOrder.length - 1 ) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return (
|
|
39
|
+
<BlockPopoverInbetween
|
|
40
|
+
key={ clientId }
|
|
41
|
+
previousClientId={ clientId }
|
|
42
|
+
nextClientId={ blockOrder[ index + 1 ] }
|
|
43
|
+
__unstableContentRef={ __unstableContentRef }
|
|
44
|
+
>
|
|
45
|
+
<div className="block-editor-block-list__insertion-point-inserter is-with-inserter">
|
|
46
|
+
<Inserter
|
|
47
|
+
position="bottom center"
|
|
48
|
+
clientId={ blockOrder[ index + 1 ] }
|
|
49
|
+
__experimentalIsQuick
|
|
50
|
+
/>
|
|
51
|
+
</div>
|
|
52
|
+
</BlockPopoverInbetween>
|
|
53
|
+
);
|
|
54
|
+
} );
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export default ZoomOutModeInserters;
|
|
@@ -1,69 +1,109 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`BlockVerticalAlignmentUI should match snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
exports[`BlockVerticalAlignmentUI should match snapshot when controls are hidden 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="components-dropdown components-dropdown-menu components-toolbar"
|
|
7
|
+
tabindex="-1"
|
|
8
|
+
>
|
|
9
|
+
<button
|
|
10
|
+
aria-expanded="false"
|
|
11
|
+
aria-haspopup="true"
|
|
12
|
+
aria-label="Change vertical alignment"
|
|
13
|
+
class="components-button components-dropdown-menu__toggle has-icon"
|
|
14
|
+
data-toolbar-item="true"
|
|
15
|
+
type="button"
|
|
16
|
+
>
|
|
17
|
+
<svg
|
|
18
|
+
aria-hidden="true"
|
|
19
|
+
focusable="false"
|
|
20
|
+
height="24"
|
|
21
|
+
viewBox="0 0 24 24"
|
|
22
|
+
width="24"
|
|
23
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
24
|
+
>
|
|
25
|
+
<path
|
|
26
|
+
d="M9 20h6V9H9v11zM4 4v1.5h16V4H4z"
|
|
27
|
+
/>
|
|
28
|
+
</svg>
|
|
29
|
+
</button>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
exports[`BlockVerticalAlignmentUI should match snapshot when controls are visible 1`] = `
|
|
35
|
+
<div>
|
|
36
|
+
<div
|
|
37
|
+
class="components-toolbar"
|
|
38
|
+
icon="[object Object]"
|
|
39
|
+
label="Change vertical alignment"
|
|
40
|
+
>
|
|
41
|
+
<div>
|
|
42
|
+
<button
|
|
43
|
+
aria-label="Align top"
|
|
44
|
+
aria-pressed="true"
|
|
45
|
+
class="components-button components-toolbar__control is-pressed has-icon"
|
|
46
|
+
data-toolbar-item="true"
|
|
47
|
+
type="button"
|
|
48
|
+
>
|
|
49
|
+
<svg
|
|
50
|
+
aria-hidden="true"
|
|
51
|
+
focusable="false"
|
|
52
|
+
height="24"
|
|
9
53
|
viewBox="0 0 24 24"
|
|
54
|
+
width="24"
|
|
10
55
|
xmlns="http://www.w3.org/2000/svg"
|
|
11
56
|
>
|
|
12
|
-
<
|
|
57
|
+
<path
|
|
13
58
|
d="M9 20h6V9H9v11zM4 4v1.5h16V4H4z"
|
|
14
59
|
/>
|
|
15
|
-
</
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"icon"
|
|
60
|
+
</svg>
|
|
61
|
+
</button>
|
|
62
|
+
</div>
|
|
63
|
+
<div>
|
|
64
|
+
<button
|
|
65
|
+
aria-label="Align middle"
|
|
66
|
+
aria-pressed="false"
|
|
67
|
+
class="components-button components-toolbar__control has-icon"
|
|
68
|
+
data-toolbar-item="true"
|
|
69
|
+
type="button"
|
|
70
|
+
>
|
|
71
|
+
<svg
|
|
72
|
+
aria-hidden="true"
|
|
73
|
+
focusable="false"
|
|
74
|
+
height="24"
|
|
23
75
|
viewBox="0 0 24 24"
|
|
76
|
+
width="24"
|
|
24
77
|
xmlns="http://www.w3.org/2000/svg"
|
|
25
78
|
>
|
|
26
|
-
<
|
|
79
|
+
<path
|
|
27
80
|
d="M20 11h-5V4H9v7H4v1.5h5V20h6v-7.5h5z"
|
|
28
81
|
/>
|
|
29
|
-
</
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"icon"
|
|
82
|
+
</svg>
|
|
83
|
+
</button>
|
|
84
|
+
</div>
|
|
85
|
+
<div>
|
|
86
|
+
<button
|
|
87
|
+
aria-label="Align bottom"
|
|
88
|
+
aria-pressed="false"
|
|
89
|
+
class="components-button components-toolbar__control has-icon"
|
|
90
|
+
data-toolbar-item="true"
|
|
91
|
+
type="button"
|
|
92
|
+
>
|
|
93
|
+
<svg
|
|
94
|
+
aria-hidden="true"
|
|
95
|
+
focusable="false"
|
|
96
|
+
height="24"
|
|
37
97
|
viewBox="0 0 24 24"
|
|
98
|
+
width="24"
|
|
38
99
|
xmlns="http://www.w3.org/2000/svg"
|
|
39
100
|
>
|
|
40
|
-
<
|
|
101
|
+
<path
|
|
41
102
|
d="M15 4H9v11h6V4zM4 18.5V20h16v-1.5H4z"
|
|
42
103
|
/>
|
|
43
|
-
</
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
icon={
|
|
52
|
-
<SVG
|
|
53
|
-
viewBox="0 0 24 24"
|
|
54
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
55
|
-
>
|
|
56
|
-
<Path
|
|
57
|
-
d="M9 20h6V9H9v11zM4 4v1.5h16V4H4z"
|
|
58
|
-
/>
|
|
59
|
-
</SVG>
|
|
60
|
-
}
|
|
61
|
-
isCollapsed={true}
|
|
62
|
-
label="Change vertical alignment"
|
|
63
|
-
popoverProps={
|
|
64
|
-
Object {
|
|
65
|
-
"isAlternate": true,
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/>
|
|
104
|
+
</svg>
|
|
105
|
+
</button>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
69
109
|
`;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
@@ -12,44 +13,112 @@ describe( 'BlockVerticalAlignmentUI', () => {
|
|
|
12
13
|
const alignment = 'top';
|
|
13
14
|
const onChange = jest.fn();
|
|
14
15
|
|
|
15
|
-
const wrapper = shallow(
|
|
16
|
-
<BlockVerticalAlignmentUI
|
|
17
|
-
isToolbar
|
|
18
|
-
value={ alignment }
|
|
19
|
-
onChange={ onChange }
|
|
20
|
-
/>
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
const controls = wrapper.props().controls;
|
|
24
|
-
|
|
25
16
|
afterEach( () => {
|
|
26
17
|
onChange.mockClear();
|
|
27
18
|
} );
|
|
28
19
|
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
test( 'should match snapshot when controls are hidden', () => {
|
|
21
|
+
const { container } = render(
|
|
22
|
+
<BlockVerticalAlignmentUI
|
|
23
|
+
isToolbar
|
|
24
|
+
value={ alignment }
|
|
25
|
+
onChange={ onChange }
|
|
26
|
+
/>
|
|
27
|
+
);
|
|
28
|
+
expect( container ).toMatchSnapshot();
|
|
29
|
+
} );
|
|
30
|
+
|
|
31
|
+
test( 'should match snapshot when controls are visible', () => {
|
|
32
|
+
const { container } = render(
|
|
33
|
+
<BlockVerticalAlignmentUI
|
|
34
|
+
isToolbar
|
|
35
|
+
value={ alignment }
|
|
36
|
+
onChange={ onChange }
|
|
37
|
+
isCollapsed={ false }
|
|
38
|
+
/>
|
|
39
|
+
);
|
|
40
|
+
expect( container ).toMatchSnapshot();
|
|
31
41
|
} );
|
|
32
42
|
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
43
|
+
test( 'should expand controls when toggled', async () => {
|
|
44
|
+
const user = userEvent.setup( {
|
|
45
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
46
|
+
} );
|
|
47
|
+
|
|
48
|
+
render(
|
|
49
|
+
<BlockVerticalAlignmentUI
|
|
50
|
+
isToolbar
|
|
51
|
+
value={ alignment }
|
|
52
|
+
onChange={ onChange }
|
|
53
|
+
/>
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
expect(
|
|
57
|
+
screen.queryByRole( 'menuitemradio', {
|
|
58
|
+
name: /^Align \w+$/,
|
|
59
|
+
} )
|
|
60
|
+
).not.toBeInTheDocument();
|
|
61
|
+
|
|
62
|
+
await user.click(
|
|
63
|
+
screen.getByRole( 'button', {
|
|
64
|
+
name: 'Change vertical alignment',
|
|
65
|
+
} )
|
|
36
66
|
);
|
|
37
|
-
activeControl.onClick();
|
|
38
67
|
|
|
39
|
-
expect(
|
|
68
|
+
expect(
|
|
69
|
+
screen.getAllByRole( 'menuitemradio', {
|
|
70
|
+
name: /^Align \w+$/,
|
|
71
|
+
} )
|
|
72
|
+
).toHaveLength( 3 );
|
|
73
|
+
} );
|
|
74
|
+
|
|
75
|
+
it( 'should call onChange with undefined, when the control is already active', async () => {
|
|
76
|
+
const user = userEvent.setup( {
|
|
77
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
78
|
+
} );
|
|
79
|
+
|
|
80
|
+
render(
|
|
81
|
+
<BlockVerticalAlignmentUI
|
|
82
|
+
isToolbar
|
|
83
|
+
value={ alignment }
|
|
84
|
+
onChange={ onChange }
|
|
85
|
+
isCollapsed={ false }
|
|
86
|
+
/>
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
const activeControl = screen.getByRole( 'button', {
|
|
90
|
+
name: `Align ${ alignment }`,
|
|
91
|
+
pressed: true,
|
|
92
|
+
} );
|
|
93
|
+
|
|
94
|
+
await user.click( activeControl );
|
|
95
|
+
|
|
40
96
|
expect( onChange ).toHaveBeenCalledTimes( 1 );
|
|
41
97
|
expect( onChange ).toHaveBeenCalledWith( undefined );
|
|
42
98
|
} );
|
|
43
99
|
|
|
44
|
-
it( 'should call onChange with alignment value when the control is inactive', () => {
|
|
100
|
+
it( 'should call onChange with alignment value when the control is inactive', async () => {
|
|
45
101
|
// note "middle" alias for "center"
|
|
46
|
-
const
|
|
47
|
-
|
|
102
|
+
const user = userEvent.setup( {
|
|
103
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
104
|
+
} );
|
|
105
|
+
|
|
106
|
+
render(
|
|
107
|
+
<BlockVerticalAlignmentUI
|
|
108
|
+
isToolbar
|
|
109
|
+
value={ alignment }
|
|
110
|
+
onChange={ onChange }
|
|
111
|
+
isCollapsed={ false }
|
|
112
|
+
/>
|
|
48
113
|
);
|
|
49
114
|
|
|
50
|
-
|
|
115
|
+
const inactiveControl = screen.getByRole( 'button', {
|
|
116
|
+
name: 'Align middle',
|
|
117
|
+
pressed: false,
|
|
118
|
+
} );
|
|
119
|
+
|
|
120
|
+
await user.click( inactiveControl );
|
|
51
121
|
|
|
52
|
-
expect( inactiveCenterControl.isActive ).toBe( false );
|
|
53
122
|
expect( onChange ).toHaveBeenCalledTimes( 1 );
|
|
54
123
|
expect( onChange ).toHaveBeenCalledWith( 'center' );
|
|
55
124
|
} );
|
|
@@ -47,11 +47,12 @@ function BlockVerticalAlignmentUI( {
|
|
|
47
47
|
BLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];
|
|
48
48
|
|
|
49
49
|
const UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;
|
|
50
|
-
const extraProps = isToolbar
|
|
50
|
+
const extraProps = isToolbar
|
|
51
|
+
? { isCollapsed }
|
|
52
|
+
: { popoverProps: { POPOVER_PROPS } };
|
|
51
53
|
|
|
52
54
|
return (
|
|
53
55
|
<UIComponent
|
|
54
|
-
popoverProps={ POPOVER_PROPS }
|
|
55
56
|
icon={
|
|
56
57
|
activeAlignment
|
|
57
58
|
? activeAlignment.icon
|
|
@@ -31,3 +31,26 @@
|
|
|
31
31
|
color: $black;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
// When the appender shows up in empty container blocks, such as Group and Columns, add an extra click state.
|
|
36
|
+
.block-list-appender:only-child {
|
|
37
|
+
.is-layout-constrained.block-editor-block-list__block:not(.is-selected) > &,
|
|
38
|
+
.is-layout-flow.block-editor-block-list__block:not(.is-selected) > & {
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
|
|
41
|
+
&::after {
|
|
42
|
+
content: "";
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 0;
|
|
45
|
+
right: 0;
|
|
46
|
+
bottom: 0;
|
|
47
|
+
left: 0;
|
|
48
|
+
pointer-events: none;
|
|
49
|
+
@include placeholder-style();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.block-editor-inserter {
|
|
53
|
+
visibility: hidden;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -29,15 +29,12 @@ exports[`ColorPaletteControl matches the snapshot 1`] = `
|
|
|
29
29
|
-webkit-flex-direction: column;
|
|
30
30
|
-ms-flex-direction: column;
|
|
31
31
|
flex-direction: column;
|
|
32
|
+
gap: calc(4px * 1);
|
|
32
33
|
-webkit-box-pack: justify;
|
|
33
34
|
-webkit-justify-content: space-between;
|
|
34
35
|
justify-content: space-between;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
.emotion-4>*+*:not( marquee ) {
|
|
38
|
-
margin-top: calc(4px * 1);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
38
|
.emotion-4>* {
|
|
42
39
|
min-height: 0;
|
|
43
40
|
}
|
|
@@ -64,15 +61,12 @@ exports[`ColorPaletteControl matches the snapshot 1`] = `
|
|
|
64
61
|
-webkit-flex-direction: column;
|
|
65
62
|
-ms-flex-direction: column;
|
|
66
63
|
flex-direction: column;
|
|
64
|
+
gap: calc(4px * 3);
|
|
67
65
|
-webkit-box-pack: justify;
|
|
68
66
|
-webkit-justify-content: space-between;
|
|
69
67
|
justify-content: space-between;
|
|
70
68
|
}
|
|
71
69
|
|
|
72
|
-
.emotion-8>*+*:not( marquee ) {
|
|
73
|
-
margin-top: calc(4px * 3);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
70
|
.emotion-8>* {
|
|
77
71
|
min-height: 0;
|
|
78
72
|
}
|
|
@@ -89,16 +83,13 @@ exports[`ColorPaletteControl matches the snapshot 1`] = `
|
|
|
89
83
|
-webkit-flex-direction: row;
|
|
90
84
|
-ms-flex-direction: row;
|
|
91
85
|
flex-direction: row;
|
|
86
|
+
gap: calc(4px * 2);
|
|
92
87
|
-webkit-box-pack: justify;
|
|
93
88
|
-webkit-justify-content: space-between;
|
|
94
89
|
justify-content: space-between;
|
|
95
90
|
width: 100%;
|
|
96
91
|
}
|
|
97
92
|
|
|
98
|
-
.emotion-10>*+*:not( marquee ) {
|
|
99
|
-
margin-left: calc(4px * 2);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
93
|
.emotion-10>* {
|
|
103
94
|
min-width: 0;
|
|
104
95
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { render, screen } from '@testing-library/react';
|
|
5
|
+
import userEvent from '@testing-library/user-event';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
@@ -13,18 +14,37 @@ describe( 'createCustomColorsHOC', () => {
|
|
|
13
14
|
const withCustomColors = createCustomColorsHOC( [
|
|
14
15
|
{ name: 'Red', slug: 'red', color: 'ff0000' },
|
|
15
16
|
] );
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const BaseComponent = jest.fn( () => <div /> );
|
|
18
|
+
const EnhancedComponent =
|
|
19
|
+
withCustomColors( 'backgroundColor' )( BaseComponent );
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
render(
|
|
21
22
|
<EnhancedComponent attributes={ { backgroundColor: null } } />
|
|
22
23
|
);
|
|
23
24
|
|
|
24
|
-
expect(
|
|
25
|
+
expect( BaseComponent ).toHaveBeenCalledWith(
|
|
26
|
+
expect.objectContaining( {
|
|
27
|
+
attributes: {
|
|
28
|
+
backgroundColor: null,
|
|
29
|
+
},
|
|
30
|
+
backgroundColor: {
|
|
31
|
+
class: undefined,
|
|
32
|
+
color: undefined,
|
|
33
|
+
},
|
|
34
|
+
colorUtils: {
|
|
35
|
+
getMostReadableColor: expect.any( Function ),
|
|
36
|
+
},
|
|
37
|
+
colors: undefined,
|
|
38
|
+
setBackgroundColor: expect.any( Function ),
|
|
39
|
+
} ),
|
|
40
|
+
expect.anything()
|
|
41
|
+
);
|
|
25
42
|
} );
|
|
26
43
|
|
|
27
|
-
it( 'setting the color to a value in the provided custom color array updated the backgroundColor attribute', () => {
|
|
44
|
+
it( 'setting the color to a value in the provided custom color array updated the backgroundColor attribute', async () => {
|
|
45
|
+
const user = userEvent.setup( {
|
|
46
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
47
|
+
} );
|
|
28
48
|
const withCustomColors = createCustomColorsHOC( [
|
|
29
49
|
{ name: 'Red', slug: 'red', color: 'ff0000' },
|
|
30
50
|
] );
|
|
@@ -38,21 +58,25 @@ describe( 'createCustomColorsHOC', () => {
|
|
|
38
58
|
|
|
39
59
|
const setAttributes = jest.fn();
|
|
40
60
|
|
|
41
|
-
|
|
61
|
+
render(
|
|
42
62
|
<EnhancedComponent
|
|
43
63
|
attributes={ { backgroundColor: null } }
|
|
44
64
|
setAttributes={ setAttributes }
|
|
45
65
|
/>
|
|
46
66
|
);
|
|
47
67
|
|
|
48
|
-
|
|
68
|
+
await user.click( screen.getByRole( 'button' ) );
|
|
69
|
+
|
|
49
70
|
expect( setAttributes ).toHaveBeenCalledWith( {
|
|
50
71
|
backgroundColor: 'red',
|
|
51
72
|
customBackgroundColor: undefined,
|
|
52
73
|
} );
|
|
53
74
|
} );
|
|
54
75
|
|
|
55
|
-
it( 'setting the color to a value not in the provided custom color array updates customBackgroundColor attribute', () => {
|
|
76
|
+
it( 'setting the color to a value not in the provided custom color array updates customBackgroundColor attribute', async () => {
|
|
77
|
+
const user = userEvent.setup( {
|
|
78
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
79
|
+
} );
|
|
56
80
|
const withCustomColors = createCustomColorsHOC( [
|
|
57
81
|
{ name: 'Red', slug: 'red', color: 'ff0000' },
|
|
58
82
|
] );
|
|
@@ -66,14 +90,15 @@ describe( 'createCustomColorsHOC', () => {
|
|
|
66
90
|
|
|
67
91
|
const setAttributes = jest.fn();
|
|
68
92
|
|
|
69
|
-
|
|
93
|
+
render(
|
|
70
94
|
<EnhancedComponent
|
|
71
95
|
attributes={ { backgroundColor: null } }
|
|
72
96
|
setAttributes={ setAttributes }
|
|
73
97
|
/>
|
|
74
98
|
);
|
|
75
99
|
|
|
76
|
-
|
|
100
|
+
await user.click( screen.getByRole( 'button' ) );
|
|
101
|
+
|
|
77
102
|
expect( setAttributes ).toHaveBeenCalledWith( {
|
|
78
103
|
backgroundColor: undefined,
|
|
79
104
|
customBackgroundColor: '000000',
|