@wordpress/block-editor 12.5.0 → 12.7.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 +4 -0
- package/README.md +2 -6
- package/build/autocompleters/block.js +6 -2
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-draggable/index.js +6 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +2 -2
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +25 -13
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-editing-mode/index.js +1 -1
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +14 -18
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block.js +4 -2
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +21 -42
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +2 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +6 -21
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-preview/auto.js +6 -1
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +1 -4
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +2 -2
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +3 -17
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +7 -5
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build/components/block-toolbar/index.js +4 -33
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +62 -3
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-toolbar/utils.js +56 -51
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +4 -2
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +10 -20
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/colors-gradients/control.js +4 -2
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/editor-styles/index.js +2 -2
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +11 -11
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/global-styles/behaviors-panel.js +66 -0
- package/build/components/global-styles/behaviors-panel.js.map +1 -0
- package/build/components/global-styles/color-panel.js +21 -15
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +13 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +4 -8
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/hooks.js +131 -27
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +20 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +18 -3
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +4 -4
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +12 -18
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +7 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +36 -48
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +5 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build/components/index.js +1 -10
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +3 -1
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +6 -2
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-debounced-input.js +5 -7
- package/build/components/inserter/hooks/use-debounced-input.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +3 -2
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +2 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +21 -32
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +23 -3
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.js +3 -2
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter-list-item/index.js +1 -1
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/link-control/index.js +51 -7
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +3 -3
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-item.js +1 -1
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +2 -2
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +6 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +65 -31
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.native.js +15 -3
- package/build/components/media-replace-flow/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +2 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/content.js +0 -36
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/format-edit.js +57 -28
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +111 -0
- package/build/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +2 -2
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/use-block-display-information/index.js +7 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +49 -8
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-setting/index.js +5 -9
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/behaviors.js +5 -12
- package/build/hooks/behaviors.js.map +1 -1
- package/build/hooks/border.js +2 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/margin.js +1 -1
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +11 -2
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +1 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +10 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +3 -4
- package/build/store/actions.js.map +1 -1
- package/build/store/private-selectors.js +5 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +0 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +23 -79
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +38 -2
- package/build/utils/object.js.map +1 -1
- package/build-module/autocompleters/block.js +7 -3
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-draggable/index.js +6 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +2 -2
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +27 -10
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +1 -1
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +14 -18
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block.js +4 -2
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +24 -43
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +2 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -3
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +7 -22
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +6 -1
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +1 -4
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +3 -3
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -18
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +9 -7
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +6 -35
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +60 -4
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/utils.js +54 -49
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +4 -2
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +13 -23
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -2
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/editor-styles/index.js +2 -2
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +11 -11
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/global-styles/behaviors-panel.js +57 -0
- package/build-module/components/global-styles/behaviors-panel.js.map +1 -0
- package/build-module/components/global-styles/color-panel.js +21 -15
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +13 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +4 -8
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +127 -27
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +2 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +18 -3
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +4 -4
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +13 -18
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +6 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +37 -49
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +5 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +3 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +7 -3
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +5 -7
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +3 -2
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +22 -33
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +22 -3
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.js +3 -2
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +1 -1
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/link-control/index.js +49 -7
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +3 -3
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-item.js +1 -1
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +6 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +66 -33
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.native.js +15 -3
- package/build-module/components/media-replace-flow/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/content.js +1 -36
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +51 -26
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +100 -0
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +2 -2
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +7 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +50 -8
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js +5 -9
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/behaviors.js +5 -12
- package/build-module/hooks/behaviors.js.map +1 -1
- package/build-module/hooks/border.js +2 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/margin.js +1 -1
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +11 -2
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +2 -7
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +7 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +4 -5
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-selectors.js +3 -3
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +0 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +20 -75
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +34 -2
- package/build-module/utils/object.js.map +1 -1
- package/build-style/content-rtl.css +2 -1
- package/build-style/content.css +2 -1
- package/build-style/style-rtl.css +25 -6
- package/build-style/style.css +25 -6
- package/package.json +32 -32
- package/src/autocompleters/block.js +21 -6
- package/src/components/block-controls/README.md +89 -0
- package/src/components/block-draggable/index.js +13 -4
- package/src/components/block-draggable/index.native.js +7 -3
- package/src/components/block-draggable/test/index.native.js +2 -57
- package/src/components/block-edit/edit.js +26 -9
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-editing-mode/index.js +1 -1
- package/src/components/block-list/block-outline.native.js +26 -25
- package/src/components/block-list/block.js +6 -1
- package/src/components/block-list/block.native.js +24 -38
- package/src/components/block-list/block.native.scss +18 -40
- package/src/components/block-list/index.js +3 -6
- package/src/components/block-list/style.native.scss +3 -3
- package/src/components/block-list/test/block-invalid-warning.native.js +8 -1
- package/src/components/block-mover/index.native.js +3 -3
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +40 -6
- package/src/components/block-parent-selector/index.js +30 -42
- package/src/components/block-preview/auto.js +8 -1
- package/src/components/block-preview/style.scss +2 -1
- package/src/components/block-removal-warning-modal/index.js +0 -3
- package/src/components/block-settings/button.native.js +12 -6
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -13
- package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +15 -10
- package/src/components/block-toolbar/index.js +36 -64
- package/src/components/block-toolbar/index.native.js +86 -6
- package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
- package/src/components/block-toolbar/test/index.native.js +42 -0
- package/src/components/block-toolbar/utils.js +57 -45
- package/src/components/block-tools/block-contextual-toolbar.js +43 -35
- package/src/components/block-tools/style.scss +17 -5
- package/src/components/block-variation-picker/index.native.js +52 -72
- package/src/components/button-block-appender/styles.native.scss +2 -2
- package/src/components/caption/README.md +49 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/control.js +3 -2
- package/src/components/editor-styles/index.js +2 -2
- package/src/components/font-sizes/fluid-utils.js +17 -17
- package/src/components/font-sizes/test/fluid-utils.js +6 -6
- package/src/components/global-styles/behaviors-panel.js +71 -0
- package/src/components/global-styles/color-panel.js +23 -16
- package/src/components/global-styles/dimensions-panel.js +8 -2
- package/src/components/global-styles/get-block-css-selector.js +5 -9
- package/src/components/global-styles/hooks.js +134 -31
- package/src/components/global-styles/index.js +3 -0
- package/src/components/global-styles/test/typography-utils.js +6 -6
- package/src/components/global-styles/typography-panel.js +17 -5
- package/src/components/global-styles/typography-utils.js +4 -4
- package/src/components/global-styles/use-global-styles-output.js +36 -18
- package/src/components/global-styles/utils.js +17 -7
- package/src/components/iframe/index.js +30 -56
- package/src/components/iframe/use-compatibility-styles.js +5 -0
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/README.md +10 -0
- package/src/components/inner-blocks/index.js +4 -0
- package/src/components/inner-blocks/index.native.js +4 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
- package/src/components/inserter/hooks/use-block-types-state.js +15 -6
- package/src/components/inserter/hooks/use-debounced-input.js +8 -7
- package/src/components/inserter/hooks/use-patterns-state.js +2 -1
- package/src/components/inserter/index.js +2 -3
- package/src/components/inserter/index.native.js +17 -36
- package/src/components/inserter/reusable-block-rename-hint.js +18 -1
- package/src/components/inserter/reusable-blocks-tab.js +4 -1
- package/src/components/inserter/style.native.scss +10 -15
- package/src/components/inserter-list-item/index.js +3 -1
- package/src/components/link-control/README.md +12 -3
- package/src/components/link-control/index.js +47 -7
- package/src/components/link-control/link-preview.js +6 -4
- package/src/components/link-control/search-item.js +1 -1
- package/src/components/link-control/style.scss +11 -3
- package/src/components/link-control/test/index.js +28 -1
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/list-view/use-list-view-drop-zone.js +5 -1
- package/src/components/media-placeholder/index.native.js +108 -59
- package/src/components/media-placeholder/styles.native.scss +59 -24
- package/src/components/media-replace-flow/index.native.js +12 -3
- package/src/components/media-upload/test/index.native.js +1 -0
- package/src/components/preview-options/README.md +18 -17
- package/src/components/preview-options/index.js +2 -2
- package/src/components/rich-text/content.js +1 -46
- package/src/components/rich-text/format-edit.js +62 -38
- package/src/components/rich-text/get-rich-text-values.js +99 -0
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
- package/src/components/spacing-sizes-control/test/utils.js +9 -1
- package/src/components/spacing-sizes-control/utils.js +2 -2
- package/src/components/text-transform-control/README.md +44 -0
- package/src/components/use-block-display-information/index.js +12 -5
- package/src/components/use-block-drop-zone/index.native.js +65 -28
- package/src/components/use-setting/index.js +8 -8
- package/src/hooks/behaviors.js +10 -16
- package/src/hooks/border.js +2 -1
- package/src/hooks/margin.js +4 -1
- package/src/hooks/padding.js +4 -1
- package/src/hooks/style.js +7 -3
- package/src/hooks/utils.js +5 -7
- package/src/private-apis.js +9 -1
- package/src/store/actions.js +23 -30
- package/src/store/private-selectors.js +3 -6
- package/src/store/reducer.js +0 -1
- package/src/store/selectors.js +36 -85
- package/src/store/test/actions.js +3 -0
- package/src/store/test/private-selectors.js +5 -5
- package/src/store/test/reducer.js +14 -7
- package/src/store/test/selectors.js +8 -7
- package/src/utils/object.js +32 -2
- package/src/utils/test/object.js +36 -0
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build/components/block-mobile-toolbar/index.native.js +0 -135
- package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
- package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.native.js +0 -127
- package/src/components/block-mobile-toolbar/style.native.scss +0 -16
- /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
createPortal,
|
|
12
12
|
forwardRef,
|
|
13
13
|
useMemo,
|
|
14
|
-
useReducer,
|
|
15
14
|
useEffect,
|
|
16
15
|
} from '@wordpress/element';
|
|
17
16
|
import { __ } from '@wordpress/i18n';
|
|
@@ -78,29 +77,6 @@ function bubbleEvents( doc ) {
|
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
79
|
|
|
81
|
-
function useParsedAssets( html ) {
|
|
82
|
-
return useMemo( () => {
|
|
83
|
-
const doc = document.implementation.createHTMLDocument( '' );
|
|
84
|
-
doc.body.innerHTML = html;
|
|
85
|
-
return Array.from( doc.body.children );
|
|
86
|
-
}, [ html ] );
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
async function loadScript( head, { id, src } ) {
|
|
90
|
-
return new Promise( ( resolve, reject ) => {
|
|
91
|
-
const script = head.ownerDocument.createElement( 'script' );
|
|
92
|
-
script.id = id;
|
|
93
|
-
if ( src ) {
|
|
94
|
-
script.src = src;
|
|
95
|
-
script.onload = () => resolve();
|
|
96
|
-
script.onerror = () => reject();
|
|
97
|
-
} else {
|
|
98
|
-
resolve();
|
|
99
|
-
}
|
|
100
|
-
head.appendChild( script );
|
|
101
|
-
} );
|
|
102
|
-
}
|
|
103
|
-
|
|
104
80
|
function Iframe( {
|
|
105
81
|
contentRef,
|
|
106
82
|
children,
|
|
@@ -112,21 +88,25 @@ function Iframe( {
|
|
|
112
88
|
forwardedRef: ref,
|
|
113
89
|
...props
|
|
114
90
|
} ) {
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
91
|
+
const { resolvedAssets, isPreviewMode } = useSelect( ( select ) => {
|
|
92
|
+
const settings = select( blockEditorStore ).getSettings();
|
|
93
|
+
return {
|
|
94
|
+
resolvedAssets: settings.__unstableResolvedAssets,
|
|
95
|
+
isPreviewMode: settings.__unstableIsPreviewMode,
|
|
96
|
+
};
|
|
97
|
+
}, [] );
|
|
98
|
+
const { styles = '', scripts = '' } = resolvedAssets;
|
|
121
99
|
const [ iframeDocument, setIframeDocument ] = useState();
|
|
122
100
|
const [ bodyClasses, setBodyClasses ] = useState( [] );
|
|
123
101
|
const compatStyles = useCompatibilityStyles();
|
|
124
|
-
const scripts = useParsedAssets( assets?.scripts );
|
|
125
102
|
const clearerRef = useBlockSelectionClearer();
|
|
126
103
|
const [ before, writingFlowRef, after ] = useWritingFlow();
|
|
127
104
|
const [ contentResizeListener, { height: contentHeight } ] =
|
|
128
105
|
useResizeObserver();
|
|
129
106
|
const setRef = useRefEffect( ( node ) => {
|
|
107
|
+
node._load = () => {
|
|
108
|
+
setIframeDocument( node.contentDocument );
|
|
109
|
+
};
|
|
130
110
|
let iFrameDocument;
|
|
131
111
|
// Prevent the default browser action for files dropped outside of dropzones.
|
|
132
112
|
function preventFileDropDefault( event ) {
|
|
@@ -138,7 +118,6 @@ function Iframe( {
|
|
|
138
118
|
iFrameDocument = contentDocument;
|
|
139
119
|
|
|
140
120
|
bubbleEvents( contentDocument );
|
|
141
|
-
setIframeDocument( contentDocument );
|
|
142
121
|
clearerRef( documentElement );
|
|
143
122
|
|
|
144
123
|
// Ideally ALL classes that are added through get_body_class should
|
|
@@ -154,7 +133,6 @@ function Iframe( {
|
|
|
154
133
|
);
|
|
155
134
|
|
|
156
135
|
contentDocument.dir = ownerDocument.dir;
|
|
157
|
-
documentElement.removeChild( contentDocument.body );
|
|
158
136
|
|
|
159
137
|
for ( const compatStyle of compatStyles ) {
|
|
160
138
|
if ( contentDocument.getElementById( compatStyle.id ) ) {
|
|
@@ -165,11 +143,13 @@ function Iframe( {
|
|
|
165
143
|
compatStyle.cloneNode( true )
|
|
166
144
|
);
|
|
167
145
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
146
|
+
if ( ! isPreviewMode ) {
|
|
147
|
+
// eslint-disable-next-line no-console
|
|
148
|
+
console.warn(
|
|
149
|
+
`${ compatStyle.id } was added to the iframe incorrectly. Please use block.json or enqueue_block_assets to add styles to the iframe.`,
|
|
150
|
+
compatStyle
|
|
151
|
+
);
|
|
152
|
+
}
|
|
173
153
|
}
|
|
174
154
|
|
|
175
155
|
iFrameDocument.addEventListener(
|
|
@@ -199,35 +179,29 @@ function Iframe( {
|
|
|
199
179
|
};
|
|
200
180
|
}, [] );
|
|
201
181
|
|
|
202
|
-
const headRef = useRefEffect( ( element ) => {
|
|
203
|
-
scripts
|
|
204
|
-
.reduce(
|
|
205
|
-
( promise, script ) =>
|
|
206
|
-
promise.then( () => loadScript( element, script ) ),
|
|
207
|
-
Promise.resolve()
|
|
208
|
-
)
|
|
209
|
-
.finally( () => {
|
|
210
|
-
// When script are loaded, re-render blocks to allow them
|
|
211
|
-
// to initialise.
|
|
212
|
-
forceRender();
|
|
213
|
-
} );
|
|
214
|
-
}, [] );
|
|
215
182
|
const disabledRef = useDisabled( { isDisabled: ! readonly } );
|
|
216
183
|
const bodyRef = useMergeRefs( [
|
|
217
184
|
contentRef,
|
|
218
185
|
clearerRef,
|
|
219
186
|
writingFlowRef,
|
|
220
187
|
disabledRef,
|
|
221
|
-
headRef,
|
|
222
188
|
] );
|
|
223
189
|
|
|
224
190
|
// Correct doctype is required to enable rendering in standards
|
|
225
191
|
// mode. Also preload the styles to avoid a flash of unstyled
|
|
226
192
|
// content.
|
|
227
|
-
const html =
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
(
|
|
193
|
+
const html = `<!doctype html>
|
|
194
|
+
<html>
|
|
195
|
+
<head>
|
|
196
|
+
<script>window.frameElement._load()</script>
|
|
197
|
+
<style>html{height:auto!important;min-height:100%;}body{margin:0}</style>
|
|
198
|
+
${ styles }
|
|
199
|
+
${ scripts }
|
|
200
|
+
</head>
|
|
201
|
+
<body>
|
|
202
|
+
<script>document.currentScript.parentElement.remove()</script>
|
|
203
|
+
</body>
|
|
204
|
+
</html>`;
|
|
231
205
|
|
|
232
206
|
const [ src, cleanup ] = useMemo( () => {
|
|
233
207
|
const _src = URL.createObjectURL(
|
|
@@ -45,6 +45,11 @@ export function useCompatibilityStyles() {
|
|
|
45
45
|
return accumulator;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
// Don't try to add styles without ID. Styles enqueued via the WP dependency system will always have IDs.
|
|
49
|
+
if ( ! ownerNode.id ) {
|
|
50
|
+
return accumulator;
|
|
51
|
+
}
|
|
52
|
+
|
|
48
53
|
function matchFromRules( _cssRules ) {
|
|
49
54
|
return Array.from( _cssRules ).find(
|
|
50
55
|
( {
|
package/src/components/index.js
CHANGED
|
@@ -165,8 +165,3 @@ export { default as __experimentalInspectorPopoverHeader } from './inspector-pop
|
|
|
165
165
|
|
|
166
166
|
export { default as BlockEditorProvider } from './provider';
|
|
167
167
|
export { default as useSetting } from './use-setting';
|
|
168
|
-
|
|
169
|
-
/*
|
|
170
|
-
* The following rename hint component can be removed in 6.4.
|
|
171
|
-
*/
|
|
172
|
-
export { default as ReusableBlocksRenameHint } from './inserter/reusable-block-rename-hint';
|
|
@@ -185,3 +185,13 @@ For example, a button block, deeply nested in several levels of block `X` that u
|
|
|
185
185
|
|
|
186
186
|
- **Type:** `Array`
|
|
187
187
|
- **Default:** - `undefined`. Determines which block types should be shown in the block inserter. For example, when inserting a block within the Navigation block we specify `core/navigation-link` and `core/navigation-link/page` as these are the most commonly used inner blocks. `prioritizedInserterBlocks` takes an array of the form {blockName}/{variationName}, where {variationName} is optional.
|
|
188
|
+
|
|
189
|
+
### `defaultBlock`
|
|
190
|
+
|
|
191
|
+
- **Type:** `Array`
|
|
192
|
+
- **Default:** - `undefined`. Determines which block type should be inserted by default and any attributes that should be set by default when the block is inserted. Takes an array in the form of `[ blockname, {blockAttributes} ]`.
|
|
193
|
+
|
|
194
|
+
### `directInsert`
|
|
195
|
+
|
|
196
|
+
- **Type:** `Boolean`
|
|
197
|
+
- **Default:** - `undefined`. Determines whether the default block should be inserted directly into the InnerBlocks area by the block appender.
|
|
@@ -46,6 +46,8 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
46
46
|
clientId,
|
|
47
47
|
allowedBlocks,
|
|
48
48
|
prioritizedInserterBlocks,
|
|
49
|
+
defaultBlock,
|
|
50
|
+
directInsert,
|
|
49
51
|
__experimentalDefaultBlock,
|
|
50
52
|
__experimentalDirectInsert,
|
|
51
53
|
template,
|
|
@@ -64,6 +66,8 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
64
66
|
clientId,
|
|
65
67
|
allowedBlocks,
|
|
66
68
|
prioritizedInserterBlocks,
|
|
69
|
+
defaultBlock,
|
|
70
|
+
directInsert,
|
|
67
71
|
__experimentalDefaultBlock,
|
|
68
72
|
__experimentalDirectInsert,
|
|
69
73
|
templateLock,
|
|
@@ -73,6 +73,8 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
73
73
|
clientId,
|
|
74
74
|
allowedBlocks,
|
|
75
75
|
prioritizedInserterBlocks,
|
|
76
|
+
defaultBlock,
|
|
77
|
+
directInsert,
|
|
76
78
|
__experimentalDefaultBlock,
|
|
77
79
|
__experimentalDirectInsert,
|
|
78
80
|
template,
|
|
@@ -103,6 +105,8 @@ function UncontrolledInnerBlocks( props ) {
|
|
|
103
105
|
clientId,
|
|
104
106
|
allowedBlocks,
|
|
105
107
|
prioritizedInserterBlocks,
|
|
108
|
+
defaultBlock,
|
|
109
|
+
directInsert,
|
|
106
110
|
__experimentalDefaultBlock,
|
|
107
111
|
__experimentalDirectInsert,
|
|
108
112
|
templateLock,
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { useLayoutEffect, useMemo } from '@wordpress/element';
|
|
5
5
|
import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
|
|
6
|
+
import deprecated from '@wordpress/deprecated';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Internal dependencies
|
|
@@ -25,9 +26,13 @@ const pendingSettingsUpdates = new WeakMap();
|
|
|
25
26
|
* @param {string[]} allowedBlocks An array of block names which are permitted
|
|
26
27
|
* in inner blocks.
|
|
27
28
|
* @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}.
|
|
28
|
-
* @param {?WPDirectInsertBlock}
|
|
29
|
-
* @param {?Function|boolean}
|
|
30
|
-
*
|
|
29
|
+
* @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ].
|
|
30
|
+
* @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender.
|
|
31
|
+
*
|
|
32
|
+
* @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead.
|
|
33
|
+
*
|
|
34
|
+
* @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead.
|
|
35
|
+
*
|
|
31
36
|
* @param {string} [templateLock] The template lock specified for the inner
|
|
32
37
|
* blocks component. (e.g. "all")
|
|
33
38
|
* @param {boolean} captureToolbars Whether or children toolbars should be shown
|
|
@@ -41,6 +46,8 @@ export default function useNestedSettingsUpdate(
|
|
|
41
46
|
clientId,
|
|
42
47
|
allowedBlocks,
|
|
43
48
|
prioritizedInserterBlocks,
|
|
49
|
+
defaultBlock,
|
|
50
|
+
directInsert,
|
|
44
51
|
__experimentalDefaultBlock,
|
|
45
52
|
__experimentalDirectInsert,
|
|
46
53
|
templateLock,
|
|
@@ -108,11 +115,29 @@ export default function useNestedSettingsUpdate(
|
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
if ( __experimentalDefaultBlock !== undefined ) {
|
|
111
|
-
|
|
118
|
+
deprecated( '__experimentalDefaultBlock', {
|
|
119
|
+
alternative: 'defaultBlock',
|
|
120
|
+
since: '6.3',
|
|
121
|
+
version: '6.4',
|
|
122
|
+
} );
|
|
123
|
+
newSettings.defaultBlock = __experimentalDefaultBlock;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if ( defaultBlock !== undefined ) {
|
|
127
|
+
newSettings.defaultBlock = defaultBlock;
|
|
112
128
|
}
|
|
113
129
|
|
|
114
130
|
if ( __experimentalDirectInsert !== undefined ) {
|
|
115
|
-
|
|
131
|
+
deprecated( '__experimentalDirectInsert', {
|
|
132
|
+
alternative: 'directInsert',
|
|
133
|
+
since: '6.3',
|
|
134
|
+
version: '6.4',
|
|
135
|
+
} );
|
|
136
|
+
newSettings.directInsert = __experimentalDirectInsert;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if ( directInsert !== undefined ) {
|
|
140
|
+
newSettings.directInsert = directInsert;
|
|
116
141
|
}
|
|
117
142
|
|
|
118
143
|
// Batch updates to block list settings to avoid triggering cascading renders
|
|
@@ -144,6 +169,8 @@ export default function useNestedSettingsUpdate(
|
|
|
144
169
|
_allowedBlocks,
|
|
145
170
|
_prioritizedInserterBlocks,
|
|
146
171
|
_templateLock,
|
|
172
|
+
defaultBlock,
|
|
173
|
+
directInsert,
|
|
147
174
|
__experimentalDefaultBlock,
|
|
148
175
|
__experimentalDirectInsert,
|
|
149
176
|
captureToolbars,
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
createBlock,
|
|
6
6
|
createBlocksFromInnerBlocksTemplate,
|
|
7
7
|
store as blocksStore,
|
|
8
|
+
parse,
|
|
8
9
|
} from '@wordpress/blocks';
|
|
9
10
|
import { useSelect } from '@wordpress/data';
|
|
10
11
|
import { useCallback } from '@wordpress/element';
|
|
@@ -37,12 +38,20 @@ const useBlockTypesState = ( rootClientId, onInsert ) => {
|
|
|
37
38
|
);
|
|
38
39
|
|
|
39
40
|
const onSelectItem = useCallback(
|
|
40
|
-
(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
(
|
|
42
|
+
{ name, initialAttributes, innerBlocks, syncStatus, content },
|
|
43
|
+
shouldFocusBlock
|
|
44
|
+
) => {
|
|
45
|
+
const insertedBlock =
|
|
46
|
+
syncStatus === 'unsynced'
|
|
47
|
+
? parse( content, {
|
|
48
|
+
__unstableSkipMigrationLogs: true,
|
|
49
|
+
} )
|
|
50
|
+
: createBlock(
|
|
51
|
+
name,
|
|
52
|
+
initialAttributes,
|
|
53
|
+
createBlocksFromInnerBlocksTemplate( innerBlocks )
|
|
54
|
+
);
|
|
46
55
|
|
|
47
56
|
onInsert( insertedBlock, undefined, shouldFocusBlock );
|
|
48
57
|
},
|
|
@@ -6,12 +6,13 @@ import { useDebounce } from '@wordpress/compose';
|
|
|
6
6
|
|
|
7
7
|
export default function useDebouncedInput( defaultValue = '' ) {
|
|
8
8
|
const [ input, setInput ] = useState( defaultValue );
|
|
9
|
-
const [
|
|
10
|
-
|
|
9
|
+
const [ debouncedInput, setDebouncedState ] = useState( defaultValue );
|
|
10
|
+
|
|
11
|
+
const setDebouncedInput = useDebounce( setDebouncedState, 250 );
|
|
12
|
+
|
|
11
13
|
useEffect( () => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return [ input, setInput, debounced ];
|
|
14
|
+
setDebouncedInput( input );
|
|
15
|
+
}, [ input ] );
|
|
16
|
+
|
|
17
|
+
return [ input, setInput, debouncedInput ];
|
|
17
18
|
}
|
|
@@ -15,7 +15,7 @@ import { store as blockEditorStore } from '../../../store';
|
|
|
15
15
|
const CUSTOM_CATEGORY = {
|
|
16
16
|
name: 'custom',
|
|
17
17
|
label: __( 'My patterns' ),
|
|
18
|
-
description: __( 'Custom patterns
|
|
18
|
+
description: __( 'Custom patterns added by site users' ),
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
/**
|
|
@@ -61,6 +61,7 @@ const usePatternsState = ( onInsert, rootClientId ) => {
|
|
|
61
61
|
),
|
|
62
62
|
{
|
|
63
63
|
type: 'snackbar',
|
|
64
|
+
id: 'block-pattern-inserted-notice',
|
|
64
65
|
}
|
|
65
66
|
);
|
|
66
67
|
},
|
|
@@ -231,7 +231,7 @@ export const ComposedPrivateInserter = compose( [
|
|
|
231
231
|
getBlockRootClientId,
|
|
232
232
|
hasInserterItems,
|
|
233
233
|
getAllowedBlocks,
|
|
234
|
-
|
|
234
|
+
getDirectInsertBlock,
|
|
235
235
|
getSettings,
|
|
236
236
|
} = select( blockEditorStore );
|
|
237
237
|
|
|
@@ -243,8 +243,7 @@ export const ComposedPrivateInserter = compose( [
|
|
|
243
243
|
const allowedBlocks = getAllowedBlocks( rootClientId );
|
|
244
244
|
|
|
245
245
|
const directInsertBlock =
|
|
246
|
-
shouldDirectInsert &&
|
|
247
|
-
__experimentalGetDirectInsertBlock( rootClientId );
|
|
246
|
+
shouldDirectInsert && getDirectInsertBlock( rootClientId );
|
|
248
247
|
|
|
249
248
|
const settings = getSettings();
|
|
250
249
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { AccessibilityInfo, Platform
|
|
4
|
+
import { AccessibilityInfo, Platform } from 'react-native';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -35,33 +35,17 @@ const VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;
|
|
|
35
35
|
const defaultRenderToggle = ( {
|
|
36
36
|
onToggle,
|
|
37
37
|
disabled,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
iconStyle,
|
|
39
|
+
buttonStyle,
|
|
40
40
|
onLongPress,
|
|
41
|
-
useExpandedMode,
|
|
42
41
|
} ) => {
|
|
43
|
-
// The "expanded mode" refers to the editor's appearance when no blocks
|
|
44
|
-
// are currently selected. The "add block" button has a separate style
|
|
45
|
-
// for the "expanded mode", which are added via the below "expandedModeViewProps"
|
|
46
|
-
// and "expandedModeViewText" variables.
|
|
47
|
-
const expandedModeViewProps = useExpandedMode && {
|
|
48
|
-
icon: <Icon icon={ plus } style={ style } />,
|
|
49
|
-
customContainerStyles: containerStyle,
|
|
50
|
-
fixedRatio: false,
|
|
51
|
-
};
|
|
52
|
-
const expandedModeViewText = (
|
|
53
|
-
<Text style={ styles[ 'inserter-menu__add-block-button-text' ] }>
|
|
54
|
-
{ __( 'Add blocks' ) }
|
|
55
|
-
</Text>
|
|
56
|
-
);
|
|
57
|
-
|
|
58
42
|
return (
|
|
59
43
|
<ToolbarButton
|
|
60
44
|
title={ _x(
|
|
61
45
|
'Add block',
|
|
62
46
|
'Generic label for block inserter button'
|
|
63
47
|
) }
|
|
64
|
-
icon={ <Icon icon={
|
|
48
|
+
icon={ <Icon icon={ plus } style={ iconStyle } /> }
|
|
65
49
|
onClick={ onToggle }
|
|
66
50
|
extraProps={ {
|
|
67
51
|
hint: __( 'Double tap to add a block' ),
|
|
@@ -69,12 +53,12 @@ const defaultRenderToggle = ( {
|
|
|
69
53
|
// usually required for components. See: https://github.com/WordPress/gutenberg/pull/18832#issuecomment-561411389.
|
|
70
54
|
testID: 'add-block-button',
|
|
71
55
|
onLongPress,
|
|
56
|
+
hitSlop: { top: 10, bottom: 10, left: 10, right: 10 },
|
|
72
57
|
} }
|
|
73
58
|
isDisabled={ disabled }
|
|
74
|
-
{
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
</ToolbarButton>
|
|
59
|
+
customContainerStyles={ buttonStyle }
|
|
60
|
+
fixedRatio={ false }
|
|
61
|
+
/>
|
|
78
62
|
);
|
|
79
63
|
};
|
|
80
64
|
|
|
@@ -249,23 +233,21 @@ export class Inserter extends Component {
|
|
|
249
233
|
renderToggle = defaultRenderToggle,
|
|
250
234
|
getStylesFromColorScheme,
|
|
251
235
|
showSeparator,
|
|
252
|
-
useExpandedMode,
|
|
253
236
|
} = this.props;
|
|
254
237
|
if ( showSeparator && isOpen ) {
|
|
255
238
|
return <BlockInsertionPoint />;
|
|
256
239
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
: getStylesFromColorScheme(
|
|
260
|
-
styles[ 'inserter-menu__add-block-button-icon' ],
|
|
261
|
-
styles[ 'inserter-menu__add-block-button-icon--dark' ]
|
|
262
|
-
);
|
|
263
|
-
|
|
264
|
-
const containerStyle = getStylesFromColorScheme(
|
|
240
|
+
|
|
241
|
+
const buttonStyle = getStylesFromColorScheme(
|
|
265
242
|
styles[ 'inserter-menu__add-block-button' ],
|
|
266
243
|
styles[ 'inserter-menu__add-block-button--dark' ]
|
|
267
244
|
);
|
|
268
245
|
|
|
246
|
+
const iconStyle = getStylesFromColorScheme(
|
|
247
|
+
styles[ 'inserter-menu__add-block-button-icon' ],
|
|
248
|
+
styles[ 'inserter-menu__add-block-button-icon--dark' ]
|
|
249
|
+
);
|
|
250
|
+
|
|
269
251
|
const onPress = () => {
|
|
270
252
|
this.setState(
|
|
271
253
|
{
|
|
@@ -301,10 +283,9 @@ export class Inserter extends Component {
|
|
|
301
283
|
onToggle: onPress,
|
|
302
284
|
isOpen,
|
|
303
285
|
disabled,
|
|
304
|
-
|
|
305
|
-
|
|
286
|
+
iconStyle,
|
|
287
|
+
buttonStyle,
|
|
306
288
|
onLongPress,
|
|
307
|
-
useExpandedMode,
|
|
308
289
|
} ) }
|
|
309
290
|
<Picker
|
|
310
291
|
ref={ ( instance ) => ( this.picker = instance ) }
|
|
@@ -10,7 +10,24 @@ import { close } from '@wordpress/icons';
|
|
|
10
10
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
11
11
|
|
|
12
12
|
const PREFERENCE_NAME = 'isResuableBlocksrRenameHintVisible';
|
|
13
|
+
/*
|
|
14
|
+
* This hook was added in 6.3 to help users with the transition from Reusable blocks to Patterns.
|
|
15
|
+
* It is only exported for use in the reusable-blocks package as well as block-editor.
|
|
16
|
+
* It will be removed in 6.4. and should not be used in any new code.
|
|
17
|
+
*/
|
|
18
|
+
export function useReusableBlocksRenameHint() {
|
|
19
|
+
return useSelect(
|
|
20
|
+
( select ) =>
|
|
21
|
+
select( preferencesStore ).get( 'core', PREFERENCE_NAME ) ?? true,
|
|
22
|
+
[]
|
|
23
|
+
);
|
|
24
|
+
}
|
|
13
25
|
|
|
26
|
+
/*
|
|
27
|
+
* This component was added in 6.3 to help users with the transition from Reusable blocks to Patterns.
|
|
28
|
+
* It is only exported for use in the reusable-blocks package as well as block-editor.
|
|
29
|
+
* It will be removed in 6.4. and should not be used in any new code.
|
|
30
|
+
*/
|
|
14
31
|
export default function ReusableBlocksRenameHint() {
|
|
15
32
|
const isReusableBlocksRenameHint = useSelect(
|
|
16
33
|
( select ) =>
|
|
@@ -29,7 +46,7 @@ export default function ReusableBlocksRenameHint() {
|
|
|
29
46
|
<div ref={ ref } className="reusable-blocks-menu-items__rename-hint">
|
|
30
47
|
<div className="reusable-blocks-menu-items__rename-hint-content">
|
|
31
48
|
{ __(
|
|
32
|
-
'Reusable blocks are now
|
|
49
|
+
'Reusable blocks are now synced patterns. A synced pattern will behave in exactly the same way as a reusable block.'
|
|
33
50
|
) }
|
|
34
51
|
</div>
|
|
35
52
|
<Button
|
|
@@ -22,7 +22,10 @@ function ReusableBlocksList( { onHover, onInsert, rootClientId } ) {
|
|
|
22
22
|
);
|
|
23
23
|
|
|
24
24
|
const filteredItems = useMemo( () => {
|
|
25
|
-
return items.filter(
|
|
25
|
+
return items.filter(
|
|
26
|
+
( { category, syncStatus } ) =>
|
|
27
|
+
category === 'reusable' && syncStatus !== 'unsynced'
|
|
28
|
+
);
|
|
26
29
|
}, [ items ] );
|
|
27
30
|
|
|
28
31
|
if ( filteredItems.length === 0 ) {
|
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
/** @format */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
color: $
|
|
2
|
+
.inserter-menu__add-block-button {
|
|
3
|
+
border-radius: 2px;
|
|
4
|
+
background-color: $black;
|
|
5
|
+
margin: 9px $grid-unit-20 10px $grid-unit-20;
|
|
6
|
+
padding: 0;
|
|
5
7
|
}
|
|
6
8
|
|
|
7
|
-
.inserter-menu__add-block-button
|
|
8
|
-
color: $
|
|
9
|
+
.inserter-menu__add-block-button--dark {
|
|
10
|
+
background-color: $white;
|
|
9
11
|
}
|
|
10
12
|
|
|
11
|
-
.inserter-menu__add-block-button-icon
|
|
13
|
+
.inserter-menu__add-block-button-icon {
|
|
12
14
|
color: $white;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
.inserter-menu__add-block-button {
|
|
16
|
-
|
|
17
|
-
background-color: $blue-50;
|
|
18
|
-
margin: 8px;
|
|
19
|
-
padding: 6px 16px 6px 12px;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.inserter-menu__add-block-button--dark {
|
|
23
|
-
background-color: $blue-30;
|
|
17
|
+
.inserter-menu__add-block-button-icon--dark {
|
|
18
|
+
color: $black;
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
.inserter-menu__add-block-button-text {
|
|
@@ -49,7 +49,9 @@ function InserterListItem( {
|
|
|
49
49
|
];
|
|
50
50
|
}, [ item.name, item.initialAttributes, item.initialAttributes ] );
|
|
51
51
|
|
|
52
|
-
const isSynced =
|
|
52
|
+
const isSynced =
|
|
53
|
+
( isReusableBlock( item ) && item.syncStatus !== 'unsynced' ) ||
|
|
54
|
+
isTemplatePart( item );
|
|
53
55
|
|
|
54
56
|
return (
|
|
55
57
|
<InserterDraggableBlocks
|
|
@@ -15,6 +15,16 @@ The distinction between the two components is perhaps best summarized by the fol
|
|
|
15
15
|
- `<URLInput>` - an input for presenting and managing selection behaviors associated with choosing a URL, optionally from a pool of available candidates.
|
|
16
16
|
- `<LinkControl>` - includes the features of `<URLInput>`, plus additional UI and behaviors to control how this URL applies to the concept of a "link". This includes link "settings" (eg: "opens in new tab", etc) and dynamic, "on the fly" link creation capabilities.
|
|
17
17
|
|
|
18
|
+
## Persistent "Advanced" (settings) toggle state
|
|
19
|
+
|
|
20
|
+
By default the link "settings" are hidden and can be toggled open/closed by way of a button labelled `Advanced` in the UI.
|
|
21
|
+
|
|
22
|
+
In some circumstances if may be desirable to persist the toggle state of this portion of the UI so that it remains in the last state triggered by user interaction.
|
|
23
|
+
|
|
24
|
+
For example, once the user has toggled the UI to "open", then it may remain open across all links on the site until such time as the user toggles the UI back again.
|
|
25
|
+
|
|
26
|
+
Consumers who which to take advantage of this functionality should ensure that their block editor environment utilizes the [`@wordpress/preferences`](packages/preferences/README.md) package. By default the `<LinkControl>` component will attempt to persist the state of UI to a setting named `linkControlSettingsDrawer` with a scope of `core/block-editor`. If the preferences package is not available then local state is used and the setting will not be persisted.
|
|
27
|
+
|
|
18
28
|
## Search Suggestions
|
|
19
29
|
|
|
20
30
|
When creating links the `LinkControl` component will handle two kinds of input from users:
|
|
@@ -69,9 +79,7 @@ An array of settings objects associated with a link (for example: a setting to d
|
|
|
69
79
|
To disable settings, pass in an empty array. for example:
|
|
70
80
|
|
|
71
81
|
```jsx
|
|
72
|
-
<LinkControl
|
|
73
|
-
settings={ [] }
|
|
74
|
-
/>
|
|
82
|
+
<LinkControl settings={ [] } />
|
|
75
83
|
```
|
|
76
84
|
|
|
77
85
|
### onChange
|
|
@@ -192,6 +200,7 @@ A `suggestion` should have the following shape:
|
|
|
192
200
|
)}
|
|
193
201
|
/>
|
|
194
202
|
```
|
|
203
|
+
|
|
195
204
|
### renderControlBottom
|
|
196
205
|
|
|
197
206
|
- Type: `Function`
|