@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
|
@@ -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
|
|
@@ -9,42 +10,55 @@ import { shallow } from 'enzyme';
|
|
|
9
10
|
import { DefaultBlockAppender, ZWNBSP } from '../';
|
|
10
11
|
|
|
11
12
|
describe( 'DefaultBlockAppender', () => {
|
|
12
|
-
const expectOnAppendCalled = ( onAppend ) => {
|
|
13
|
-
expect( onAppend ).toHaveBeenCalledTimes( 1 );
|
|
14
|
-
expect( onAppend ).toHaveBeenCalledWith();
|
|
15
|
-
};
|
|
16
|
-
|
|
17
13
|
it( 'should match snapshot', () => {
|
|
18
14
|
const onAppend = jest.fn();
|
|
19
|
-
|
|
15
|
+
|
|
16
|
+
const { container } = render(
|
|
20
17
|
<DefaultBlockAppender onAppend={ onAppend } showPrompt />
|
|
21
18
|
);
|
|
22
19
|
|
|
23
|
-
expect(
|
|
20
|
+
expect( container ).toMatchSnapshot();
|
|
24
21
|
} );
|
|
25
22
|
|
|
26
|
-
it( 'should append a default block when input focused', () => {
|
|
23
|
+
it( 'should append a default block when input focused', async () => {
|
|
24
|
+
const user = userEvent.setup( {
|
|
25
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
26
|
+
} );
|
|
27
27
|
const onAppend = jest.fn();
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
const { container } = render(
|
|
29
30
|
<DefaultBlockAppender onAppend={ onAppend } showPrompt />
|
|
30
31
|
);
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
await user.click(
|
|
34
|
+
screen.getByRole( 'button', { name: 'Add default block' } )
|
|
35
|
+
);
|
|
33
36
|
|
|
34
|
-
expect(
|
|
37
|
+
expect( container ).toMatchSnapshot();
|
|
35
38
|
|
|
36
|
-
|
|
39
|
+
// Called once for focusing and once for clicking.
|
|
40
|
+
expect( onAppend ).toHaveBeenCalledTimes( 2 );
|
|
41
|
+
expect( onAppend ).toHaveBeenCalledWith();
|
|
37
42
|
} );
|
|
38
43
|
|
|
39
|
-
it( 'should optionally show without prompt', () => {
|
|
44
|
+
it( 'should optionally show without prompt', async () => {
|
|
45
|
+
const user = userEvent.setup( {
|
|
46
|
+
advanceTimers: jest.advanceTimersByTime,
|
|
47
|
+
} );
|
|
40
48
|
const onAppend = jest.fn();
|
|
41
|
-
|
|
49
|
+
|
|
50
|
+
const { container } = render(
|
|
42
51
|
<DefaultBlockAppender onAppend={ onAppend } showPrompt={ false } />
|
|
43
52
|
);
|
|
44
|
-
const input = wrapper.find( 'p' );
|
|
45
53
|
|
|
46
|
-
|
|
54
|
+
const appender = screen.getByRole( 'button', {
|
|
55
|
+
name: 'Add default block',
|
|
56
|
+
} );
|
|
57
|
+
|
|
58
|
+
await user.click( appender );
|
|
59
|
+
|
|
60
|
+
expect( appender ).toContainHTML( ZWNBSP );
|
|
47
61
|
|
|
48
|
-
expect(
|
|
62
|
+
expect( container ).toMatchSnapshot();
|
|
49
63
|
} );
|
|
50
64
|
} );
|
|
@@ -31,6 +31,7 @@ const MyFontSizePicker = () => {
|
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
33
|
<FontSizePicker
|
|
34
|
+
__nextHasNoMarginBottom
|
|
34
35
|
value={ fontSize }
|
|
35
36
|
fallbackFontSize={ fallbackFontSize }
|
|
36
37
|
onChange={ ( newFontSize ) => {
|
|
@@ -79,3 +80,11 @@ If `true`, the UI will contain a slider, instead of a numeric text input field.
|
|
|
79
80
|
- Type: `Boolean`
|
|
80
81
|
- Required: no
|
|
81
82
|
- Default: `false`
|
|
83
|
+
|
|
84
|
+
### __nextHasNoMarginBottom
|
|
85
|
+
|
|
86
|
+
Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 6.4. (The prop can be safely removed once this happens.)
|
|
87
|
+
|
|
88
|
+
- Type: `Boolean`
|
|
89
|
+
- Required: no
|
|
90
|
+
- Default: `false`
|
|
@@ -14,7 +14,11 @@ import {
|
|
|
14
14
|
useReducer,
|
|
15
15
|
} from '@wordpress/element';
|
|
16
16
|
import { __ } from '@wordpress/i18n';
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
useResizeObserver,
|
|
19
|
+
useMergeRefs,
|
|
20
|
+
useRefEffect,
|
|
21
|
+
} from '@wordpress/compose';
|
|
18
22
|
import { __experimentalStyleProvider as StyleProvider } from '@wordpress/components';
|
|
19
23
|
|
|
20
24
|
/**
|
|
@@ -184,7 +188,7 @@ async function loadScript( head, { id, src } ) {
|
|
|
184
188
|
}
|
|
185
189
|
|
|
186
190
|
function Iframe(
|
|
187
|
-
{ contentRef, children, head, tabIndex = 0, assets, ...props },
|
|
191
|
+
{ contentRef, children, head, tabIndex = 0, assets, isZoomedOut, ...props },
|
|
188
192
|
ref
|
|
189
193
|
) {
|
|
190
194
|
const [ , forceRender ] = useReducer( () => ( {} ) );
|
|
@@ -194,10 +198,18 @@ function Iframe(
|
|
|
194
198
|
const scripts = useParsedAssets( assets?.scripts );
|
|
195
199
|
const clearerRef = useBlockSelectionClearer();
|
|
196
200
|
const [ before, writingFlowRef, after ] = useWritingFlow();
|
|
201
|
+
const [ contentResizeListener, { height: contentHeight } ] =
|
|
202
|
+
useResizeObserver();
|
|
197
203
|
const setRef = useRefEffect( ( node ) => {
|
|
204
|
+
let iFrameDocument;
|
|
205
|
+
// Prevent the default browser action for files dropped outside of dropzones.
|
|
206
|
+
function preventFileDropDefault( event ) {
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
}
|
|
198
209
|
function setDocumentIfReady() {
|
|
199
210
|
const { contentDocument, ownerDocument } = node;
|
|
200
211
|
const { readyState, documentElement } = contentDocument;
|
|
212
|
+
iFrameDocument = contentDocument;
|
|
201
213
|
|
|
202
214
|
if ( readyState !== 'interactive' && readyState !== 'complete' ) {
|
|
203
215
|
return false;
|
|
@@ -223,14 +235,35 @@ function Iframe(
|
|
|
223
235
|
documentElement.removeChild( contentDocument.head );
|
|
224
236
|
documentElement.removeChild( contentDocument.body );
|
|
225
237
|
|
|
238
|
+
iFrameDocument.addEventListener(
|
|
239
|
+
'dragover',
|
|
240
|
+
preventFileDropDefault,
|
|
241
|
+
false
|
|
242
|
+
);
|
|
243
|
+
iFrameDocument.addEventListener(
|
|
244
|
+
'drop',
|
|
245
|
+
preventFileDropDefault,
|
|
246
|
+
false
|
|
247
|
+
);
|
|
226
248
|
return true;
|
|
227
249
|
}
|
|
228
250
|
|
|
229
251
|
// Document set with srcDoc is not immediately ready.
|
|
230
252
|
node.addEventListener( 'load', setDocumentIfReady );
|
|
231
253
|
|
|
232
|
-
return () =>
|
|
254
|
+
return () => {
|
|
255
|
+
node.removeEventListener( 'load', setDocumentIfReady );
|
|
256
|
+
iFrameDocument?.removeEventListener(
|
|
257
|
+
'dragover',
|
|
258
|
+
preventFileDropDefault
|
|
259
|
+
);
|
|
260
|
+
iFrameDocument?.removeEventListener(
|
|
261
|
+
'drop',
|
|
262
|
+
preventFileDropDefault
|
|
263
|
+
);
|
|
264
|
+
};
|
|
233
265
|
}, [] );
|
|
266
|
+
|
|
234
267
|
const headRef = useRefEffect( ( element ) => {
|
|
235
268
|
scripts
|
|
236
269
|
.reduce(
|
|
@@ -285,14 +318,40 @@ function Iframe(
|
|
|
285
318
|
{ iframeDocument &&
|
|
286
319
|
createPortal(
|
|
287
320
|
<>
|
|
288
|
-
<head ref={ headRef }>
|
|
321
|
+
<head ref={ headRef }>
|
|
322
|
+
{ head }
|
|
323
|
+
<style>
|
|
324
|
+
{ `html { transition: background 5s; ${
|
|
325
|
+
isZoomedOut
|
|
326
|
+
? 'background: #2f2f2f; transition: background 0s;'
|
|
327
|
+
: ''
|
|
328
|
+
} }` }
|
|
329
|
+
</style>
|
|
330
|
+
</head>
|
|
289
331
|
<body
|
|
290
332
|
ref={ bodyRef }
|
|
291
333
|
className={ classnames(
|
|
334
|
+
'block-editor-iframe__body',
|
|
292
335
|
BODY_CLASS_NAME,
|
|
293
|
-
...bodyClasses
|
|
336
|
+
...bodyClasses,
|
|
337
|
+
{
|
|
338
|
+
'is-zoomed-out': isZoomedOut,
|
|
339
|
+
}
|
|
294
340
|
) }
|
|
341
|
+
style={
|
|
342
|
+
isZoomedOut
|
|
343
|
+
? {
|
|
344
|
+
// This is the remaining percentage from the scaling down
|
|
345
|
+
// of the iframe body(`scale(0.45)`). We also need to subtract
|
|
346
|
+
// the body's bottom margin.
|
|
347
|
+
marginBottom: `-${
|
|
348
|
+
contentHeight * 0.55 - 100
|
|
349
|
+
}px`,
|
|
350
|
+
}
|
|
351
|
+
: {}
|
|
352
|
+
}
|
|
295
353
|
>
|
|
354
|
+
{ contentResizeListener }
|
|
296
355
|
{ /*
|
|
297
356
|
* This is a wrapper for the extra styles and scripts
|
|
298
357
|
* rendered imperatively by cloning the parent,
|
|
@@ -125,11 +125,12 @@ Template locking of `InnerBlocks` is similar to [Custom Post Type templates lock
|
|
|
125
125
|
Template locking allows locking the `InnerBlocks` area for the current template.
|
|
126
126
|
_Options:_
|
|
127
127
|
|
|
128
|
+
- `noContent` — prevents all operations. Additionally, the block types that don't have content are hidden from the list view and can't gain focus within the block list. Unlike the other lock types, this is not overrideable by children.
|
|
128
129
|
- `'all'` — prevents all operations. It is not possible to insert new blocks. Move existing blocks or delete them.
|
|
129
130
|
- `'insert'` — prevents inserting or removing blocks, but allows moving existing ones.
|
|
130
131
|
- `false` — prevents locking from being applied to an `InnerBlocks` area even if a parent block contains locking. ( Boolean )
|
|
131
132
|
|
|
132
|
-
If locking is not set in an `InnerBlocks` area: the locking of the parent `InnerBlocks` area is used.
|
|
133
|
+
If locking is not set in an `InnerBlocks` area: the locking of the parent `InnerBlocks` area is used. Note that `noContent` can't be overriden: it's present, the `templateLock` value of any children is ignored.
|
|
133
134
|
|
|
134
135
|
If the block is a top level block: the locking of the Custom Post Type is used.
|
|
135
136
|
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { last } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -28,7 +23,7 @@ export default compose( [
|
|
|
28
23
|
const blockClientIds = getBlockOrder( clientId );
|
|
29
24
|
|
|
30
25
|
return {
|
|
31
|
-
lastBlockClientId:
|
|
26
|
+
lastBlockClientId: blockClientIds[ blockClientIds.length - 1 ],
|
|
32
27
|
};
|
|
33
28
|
} ),
|
|
34
29
|
] )( DefaultBlockAppender );
|
|
@@ -155,10 +155,11 @@ export function useInnerBlocksProps( props = {}, options = {} ) {
|
|
|
155
155
|
getBlockName,
|
|
156
156
|
isBlockSelected,
|
|
157
157
|
hasSelectedInnerBlock,
|
|
158
|
-
|
|
158
|
+
__unstableGetEditorMode,
|
|
159
159
|
} = select( blockEditorStore );
|
|
160
160
|
const blockName = getBlockName( clientId );
|
|
161
|
-
const enableClickThrough =
|
|
161
|
+
const enableClickThrough =
|
|
162
|
+
__unstableGetEditorMode() === 'navigation' || isSmallScreen;
|
|
162
163
|
return {
|
|
163
164
|
__experimentalCaptureToolbars: select(
|
|
164
165
|
blocksStore
|
|
@@ -21,6 +21,7 @@ import getBlockContext from './get-block-context';
|
|
|
21
21
|
* Internal dependencies
|
|
22
22
|
*/
|
|
23
23
|
import BlockList from '../block-list';
|
|
24
|
+
import BlockListCompact from '../block-list/block-list-compact';
|
|
24
25
|
import { useBlockEditContext } from '../block-edit/context';
|
|
25
26
|
import useBlockSync from '../provider/use-block-sync';
|
|
26
27
|
import { BlockContextProvider } from '../block-context';
|
|
@@ -96,6 +97,7 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
96
97
|
blockWidth,
|
|
97
98
|
__experimentalLayout: layout = defaultLayout,
|
|
98
99
|
gridProperties,
|
|
100
|
+
useCompactList,
|
|
99
101
|
} = props;
|
|
100
102
|
|
|
101
103
|
const block = useSelect(
|
|
@@ -112,8 +114,10 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
112
114
|
templateInsertUpdatesSelection
|
|
113
115
|
);
|
|
114
116
|
|
|
117
|
+
const BlockListComponent = useCompactList ? BlockListCompact : BlockList;
|
|
118
|
+
|
|
115
119
|
let blockList = (
|
|
116
|
-
<
|
|
120
|
+
<BlockListComponent
|
|
117
121
|
marginVertical={ marginVertical }
|
|
118
122
|
marginHorizontal={ marginHorizontal }
|
|
119
123
|
rootClientId={ clientId }
|
|
@@ -19,8 +19,8 @@ import { store as blockEditorStore } from '../../store';
|
|
|
19
19
|
* This hook makes sure that a block's inner blocks stay in sync with the given
|
|
20
20
|
* block "template". The template is a block hierarchy to which inner blocks must
|
|
21
21
|
* conform. If the blocks get "out of sync" with the template and the template
|
|
22
|
-
* is meant to be locked (e.g. templateLock = "all"
|
|
23
|
-
* blocks with the correct value after synchronizing it with the template.
|
|
22
|
+
* is meant to be locked (e.g. templateLock = "all" or templateLock = "noContent"),
|
|
23
|
+
* then we replace the inner blocks with the correct value after synchronizing it with the template.
|
|
24
24
|
*
|
|
25
25
|
* @param {string} clientId The block client ID.
|
|
26
26
|
* @param {Object} template The template to match.
|
|
@@ -51,9 +51,13 @@ export default function useInnerBlockTemplateSync(
|
|
|
51
51
|
// Maintain a reference to the previous value so we can do a deep equality check.
|
|
52
52
|
const existingTemplate = useRef( null );
|
|
53
53
|
useLayoutEffect( () => {
|
|
54
|
-
// Only synchronize innerBlocks with template if innerBlocks are empty
|
|
55
|
-
// a locking all exists directly on the block.
|
|
56
|
-
if (
|
|
54
|
+
// Only synchronize innerBlocks with template if innerBlocks are empty
|
|
55
|
+
// or a locking "all" or "noContent" exists directly on the block.
|
|
56
|
+
if (
|
|
57
|
+
innerBlocks.length === 0 ||
|
|
58
|
+
templateLock === 'all' ||
|
|
59
|
+
templateLock === 'noContent'
|
|
60
|
+
) {
|
|
57
61
|
const hasTemplateChanged = ! isEqual(
|
|
58
62
|
template,
|
|
59
63
|
existingTemplate.current
|
|
@@ -69,7 +69,9 @@ export default function useNestedSettingsUpdate(
|
|
|
69
69
|
const newSettings = {
|
|
70
70
|
allowedBlocks: _allowedBlocks,
|
|
71
71
|
templateLock:
|
|
72
|
-
templateLock === undefined
|
|
72
|
+
templateLock === undefined || parentLock === 'noContent'
|
|
73
|
+
? parentLock
|
|
74
|
+
: templateLock,
|
|
73
75
|
};
|
|
74
76
|
|
|
75
77
|
// These values are not defined for RN, so only include them if they
|
|
@@ -168,6 +168,7 @@ class Inserter extends Component {
|
|
|
168
168
|
clientId={ clientId }
|
|
169
169
|
isAppender={ isAppender }
|
|
170
170
|
showInserterHelpPanel={ showInserterHelpPanel }
|
|
171
|
+
prioritizePatterns={ prioritizePatterns }
|
|
171
172
|
/>
|
|
172
173
|
);
|
|
173
174
|
}
|
|
@@ -212,8 +213,6 @@ export default compose( [
|
|
|
212
213
|
hasInserterItems,
|
|
213
214
|
__experimentalGetAllowedBlocks,
|
|
214
215
|
__experimentalGetDirectInsertBlock,
|
|
215
|
-
getBlockIndex,
|
|
216
|
-
getBlockCount,
|
|
217
216
|
getSettings,
|
|
218
217
|
} = select( blockEditorStore );
|
|
219
218
|
|
|
@@ -227,8 +226,6 @@ export default compose( [
|
|
|
227
226
|
const directInsertBlock =
|
|
228
227
|
__experimentalGetDirectInsertBlock( rootClientId );
|
|
229
228
|
|
|
230
|
-
const index = getBlockIndex( clientId );
|
|
231
|
-
const blockCount = getBlockCount();
|
|
232
229
|
const settings = getSettings();
|
|
233
230
|
|
|
234
231
|
const hasSingleBlockType =
|
|
@@ -249,10 +246,7 @@ export default compose( [
|
|
|
249
246
|
directInsertBlock,
|
|
250
247
|
rootClientId,
|
|
251
248
|
prioritizePatterns:
|
|
252
|
-
settings.__experimentalPreferPatternsOnRoot &&
|
|
253
|
-
! rootClientId &&
|
|
254
|
-
index > 0 &&
|
|
255
|
-
( index < blockCount || blockCount === 0 ),
|
|
249
|
+
settings.__experimentalPreferPatternsOnRoot && ! rootClientId,
|
|
256
250
|
};
|
|
257
251
|
} ),
|
|
258
252
|
withDispatch( ( dispatch, ownProps, { select } ) => {
|
|
@@ -26,13 +26,18 @@ function InserterLibrary(
|
|
|
26
26
|
},
|
|
27
27
|
ref
|
|
28
28
|
) {
|
|
29
|
-
const destinationRootClientId = useSelect(
|
|
29
|
+
const { destinationRootClientId, prioritizePatterns } = useSelect(
|
|
30
30
|
( select ) => {
|
|
31
|
-
const { getBlockRootClientId } =
|
|
31
|
+
const { getBlockRootClientId, getSettings } =
|
|
32
|
+
select( blockEditorStore );
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
rootClientId || getBlockRootClientId( clientId ) || undefined
|
|
35
|
-
|
|
34
|
+
const _rootClientId =
|
|
35
|
+
rootClientId || getBlockRootClientId( clientId ) || undefined;
|
|
36
|
+
return {
|
|
37
|
+
destinationRootClientId: _rootClientId,
|
|
38
|
+
prioritizePatterns:
|
|
39
|
+
getSettings().__experimentalPreferPatternsOnRoot,
|
|
40
|
+
};
|
|
36
41
|
},
|
|
37
42
|
[ clientId, rootClientId ]
|
|
38
43
|
);
|
|
@@ -48,6 +53,7 @@ function InserterLibrary(
|
|
|
48
53
|
__experimentalInsertionIndex={ __experimentalInsertionIndex }
|
|
49
54
|
__experimentalFilterValue={ __experimentalFilterValue }
|
|
50
55
|
shouldFocusBlock={ shouldFocusBlock }
|
|
56
|
+
prioritizePatterns={ prioritizePatterns }
|
|
51
57
|
ref={ ref }
|
|
52
58
|
/>
|
|
53
59
|
);
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
@@ -37,6 +42,7 @@ function InserterMenu(
|
|
|
37
42
|
showMostUsedBlocks,
|
|
38
43
|
__experimentalFilterValue = '',
|
|
39
44
|
shouldFocusBlock = true,
|
|
45
|
+
prioritizePatterns,
|
|
40
46
|
},
|
|
41
47
|
ref
|
|
42
48
|
) {
|
|
@@ -180,23 +186,28 @@ function InserterMenu(
|
|
|
180
186
|
},
|
|
181
187
|
} ) );
|
|
182
188
|
|
|
189
|
+
const showAsTabs = ! filterValue && ( showPatterns || hasReusableBlocks );
|
|
190
|
+
|
|
183
191
|
return (
|
|
184
192
|
<div className="block-editor-inserter__menu">
|
|
185
|
-
<div
|
|
186
|
-
{
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
value
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
{
|
|
193
|
+
<div
|
|
194
|
+
className={ classnames( 'block-editor-inserter__main-area', {
|
|
195
|
+
'show-as-tabs': showAsTabs,
|
|
196
|
+
} ) }
|
|
197
|
+
>
|
|
198
|
+
<SearchControl
|
|
199
|
+
className="block-editor-inserter__search"
|
|
200
|
+
onChange={ ( value ) => {
|
|
201
|
+
if ( hoveredItem ) setHoveredItem( null );
|
|
202
|
+
setFilterValue( value );
|
|
203
|
+
} }
|
|
204
|
+
value={ filterValue }
|
|
205
|
+
label={ __( 'Search for blocks and patterns' ) }
|
|
206
|
+
placeholder={ __( 'Search' ) }
|
|
207
|
+
ref={ searchRef }
|
|
208
|
+
/>
|
|
209
|
+
{ !! filterValue && (
|
|
210
|
+
<div className="block-editor-inserter__no-tab-container">
|
|
200
211
|
<InserterSearchResults
|
|
201
212
|
filterValue={ filterValue }
|
|
202
213
|
onSelect={ onSelect }
|
|
@@ -210,20 +221,22 @@ function InserterMenu(
|
|
|
210
221
|
showBlockDirectory
|
|
211
222
|
shouldFocusBlock={ shouldFocusBlock }
|
|
212
223
|
/>
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
</div>
|
|
225
|
+
) }
|
|
226
|
+
{ showAsTabs && (
|
|
227
|
+
<InserterTabs
|
|
228
|
+
showPatterns={ showPatterns }
|
|
229
|
+
showReusableBlocks={ hasReusableBlocks }
|
|
230
|
+
prioritizePatterns={ prioritizePatterns }
|
|
231
|
+
>
|
|
232
|
+
{ getCurrentTab }
|
|
233
|
+
</InserterTabs>
|
|
234
|
+
) }
|
|
235
|
+
{ ! filterValue && ! showAsTabs && (
|
|
236
|
+
<div className="block-editor-inserter__no-tab-container">
|
|
237
|
+
{ blocksTab }
|
|
238
|
+
</div>
|
|
239
|
+
) }
|
|
227
240
|
</div>
|
|
228
241
|
{ showInserterHelpPanel && hoveredItem && (
|
|
229
242
|
<InserterPreviewPanel item={ hoveredItem } />
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const patterns = [
|
|
2
|
+
{
|
|
3
|
+
categories: [ 'featured', 'text' ],
|
|
4
|
+
content:
|
|
5
|
+
'<!-- wp:heading {"align":"wide","style":{"typography":{"fontSize":"48px","lineHeight":"1.1"}}} -->\n<h2 class="alignwide" id="we-re-a-studio-in-berlin-with-an-international-practice-in-architecture-urban-planning-and-interior-design-we-believe-in-sharing-knowledge-and-promoting-dialogue-to-increase-the-creative-potential-of-collaboration" style="font-size:48px;line-height:1.1">We\'re a studio in Berlin with an international practice in architecture, urban planning and interior design. We believe in sharing knowledge and promoting dialogue to increase the creative potential of collaboration.</h2>\n<!-- /wp:heading -->',
|
|
6
|
+
description: 'Heading text',
|
|
7
|
+
keywords: [ 'large text', 'title' ],
|
|
8
|
+
name: 'heading',
|
|
9
|
+
title: 'Heading',
|
|
10
|
+
},
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export const patternCategories = [
|
|
14
|
+
{
|
|
15
|
+
name: 'featured',
|
|
16
|
+
label: 'Featured',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'text',
|
|
20
|
+
label: 'Text',
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
export const reusableBlocks = [
|
|
25
|
+
{
|
|
26
|
+
content: {
|
|
27
|
+
raw: '\x3C!-- wp:paragraph -->\n<p>This is reusable</p>\n\x3C!-- /wp:paragraph -->',
|
|
28
|
+
protected: false,
|
|
29
|
+
block_version: 1,
|
|
30
|
+
},
|
|
31
|
+
date: '2022-09-12T13:28:06',
|
|
32
|
+
date_gmt: '2022-09-12T13:28:06',
|
|
33
|
+
id: 70,
|
|
34
|
+
link: 'http://localhost:8888/?p=70',
|
|
35
|
+
modified: '2022-09-12T13:28:06',
|
|
36
|
+
modified_gmt: '2022-09-12T13:28:06',
|
|
37
|
+
password: '',
|
|
38
|
+
slug: 'simple-paragraph',
|
|
39
|
+
status: 'publish',
|
|
40
|
+
template: '',
|
|
41
|
+
title: { raw: 'Simple paragraph' },
|
|
42
|
+
type: 'wp_block',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import BlockLibrary from '../library';
|
|
5
|
+
import BlockEditorProvider from '../../provider';
|
|
6
|
+
import { patternCategories, patterns, reusableBlocks } from './fixtures';
|
|
7
|
+
import Inserter from '../';
|
|
8
|
+
|
|
9
|
+
export default { title: 'BlockEditor/Inserter' };
|
|
10
|
+
|
|
11
|
+
export const libraryWithoutPatterns = () => {
|
|
12
|
+
const wrapperStyle = {
|
|
13
|
+
margin: '24px',
|
|
14
|
+
height: 400,
|
|
15
|
+
border: '1px solid #f3f3f3',
|
|
16
|
+
display: 'inline-block',
|
|
17
|
+
};
|
|
18
|
+
return (
|
|
19
|
+
<BlockEditorProvider>
|
|
20
|
+
<div style={ wrapperStyle }>
|
|
21
|
+
<BlockLibrary showInserterHelpPanel />
|
|
22
|
+
</div>
|
|
23
|
+
</BlockEditorProvider>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const libraryWithPatterns = () => {
|
|
28
|
+
const wrapperStyle = {
|
|
29
|
+
margin: '24px',
|
|
30
|
+
height: 400,
|
|
31
|
+
border: '1px solid #f3f3f3',
|
|
32
|
+
display: 'inline-block',
|
|
33
|
+
};
|
|
34
|
+
return (
|
|
35
|
+
<BlockEditorProvider
|
|
36
|
+
settings={ {
|
|
37
|
+
__experimentalBlockPatternCategories: patternCategories,
|
|
38
|
+
__experimentalBlockPatterns: patterns,
|
|
39
|
+
} }
|
|
40
|
+
>
|
|
41
|
+
<div style={ wrapperStyle }>
|
|
42
|
+
<BlockLibrary showInserterHelpPanel />
|
|
43
|
+
</div>
|
|
44
|
+
</BlockEditorProvider>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const libraryWithPatternsAndReusableBlocks = () => {
|
|
49
|
+
const wrapperStyle = {
|
|
50
|
+
margin: '24px',
|
|
51
|
+
height: 400,
|
|
52
|
+
border: '1px solid #f3f3f3',
|
|
53
|
+
display: 'inline-block',
|
|
54
|
+
};
|
|
55
|
+
return (
|
|
56
|
+
<BlockEditorProvider
|
|
57
|
+
settings={ {
|
|
58
|
+
__experimentalBlockPatternCategories: patternCategories,
|
|
59
|
+
__experimentalBlockPatterns: patterns,
|
|
60
|
+
__experimentalReusableBlocks: reusableBlocks,
|
|
61
|
+
} }
|
|
62
|
+
>
|
|
63
|
+
<div style={ wrapperStyle }>
|
|
64
|
+
<BlockLibrary showInserterHelpPanel />
|
|
65
|
+
</div>
|
|
66
|
+
</BlockEditorProvider>
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export const quickInserter = () => {
|
|
71
|
+
const wrapperStyle = {
|
|
72
|
+
margin: '24px',
|
|
73
|
+
height: 400,
|
|
74
|
+
border: '1px solid #f3f3f3',
|
|
75
|
+
display: 'inline-block',
|
|
76
|
+
};
|
|
77
|
+
return (
|
|
78
|
+
<BlockEditorProvider
|
|
79
|
+
settings={ {
|
|
80
|
+
__experimentalBlockPatternCategories: patternCategories,
|
|
81
|
+
__experimentalBlockPatterns: patterns,
|
|
82
|
+
__experimentalReusableBlocks: reusableBlocks,
|
|
83
|
+
} }
|
|
84
|
+
>
|
|
85
|
+
<div style={ wrapperStyle }>
|
|
86
|
+
<Inserter __experimentalIsQuick />
|
|
87
|
+
</div>
|
|
88
|
+
</BlockEditorProvider>
|
|
89
|
+
);
|
|
90
|
+
};
|