@wordpress/block-editor 9.5.0 → 9.7.1-next.d6164808d3.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/build/components/block-alignment-control/use-available-alignments.js +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-edit-visually-button/index.js +46 -0
- package/build/components/block-edit-visually-button/index.js.map +1 -0
- package/build/components/block-list/block.js +12 -2
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -1
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -2
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/mover-description.js +95 -32
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-popover/inbetween.js +5 -3
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-settings-menu/index.js +2 -6
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +3 -6
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/preview.native.js +1 -3
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/index.js +10 -16
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +5 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +1 -7
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.js +1 -1
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +65 -23
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js +31 -3
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js +23 -7
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +21 -6
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/utils.js +13 -16
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors/utils.js +6 -2
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +17 -4
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +8 -4
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +9 -3
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/copy-handler/index.js +6 -0
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -7
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/duotone/components.js +5 -5
- package/build/components/duotone/components.js.map +1 -1
- package/build/components/font-appearance-control/index.js +10 -4
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +1 -1
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +17 -4
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/image-editor/cropper.js +4 -3
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +3 -1
- package/build/components/image-editor/index.js.map +1 -1
- package/build/components/image-size-control/index.js +3 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +22 -6
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +11 -4
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +30 -16
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/index.native.js +8 -3
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/preview-panel.js +8 -8
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +5 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-items.js +22 -4
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.native.js +5 -2
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +21 -0
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inserter-list-item/index.js +7 -20
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +6 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +6 -3
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/is-url-like.js +1 -7
- package/build/components/link-control/is-url-like.js.map +1 -1
- package/build/components/link-control/link-preview.js +0 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +1 -7
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +5 -2
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/branch.js +1 -7
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/expander.js +3 -1
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +1 -7
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/media-upload/index.native.js +8 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/observe-typing/index.js +22 -8
- package/build/components/observe-typing/index.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/{use-no-recursive-renders → recursion-provider}/index.js +40 -18
- package/build/components/recursion-provider/index.js.map +1 -0
- package/build/components/rich-text/format-toolbar-container.js +61 -12
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +8 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +3 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-before-input-rules.js +110 -0
- package/build/components/rich-text/use-before-input-rules.js.map +1 -0
- package/build/components/rich-text/use-enter.js +0 -4
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +39 -22
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/spacing-sizes-control/all-input-control.js +53 -0
- package/build/components/spacing-sizes-control/all-input-control.js.map +1 -0
- package/build/components/spacing-sizes-control/axial-input-controls.js +69 -0
- package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -0
- package/build/components/spacing-sizes-control/index.js +100 -0
- package/build/components/spacing-sizes-control/index.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls.js +52 -0
- package/build/components/spacing-sizes-control/input-controls.js.map +1 -0
- package/build/components/spacing-sizes-control/linked-button.js +38 -0
- package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
- package/build/components/spacing-sizes-control/spacing-input-control.js +208 -0
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -0
- package/build/components/spacing-sizes-control/utils.js +202 -0
- package/build/components/spacing-sizes-control/utils.js.map +1 -0
- package/build/components/text-decoration-control/index.js +3 -1
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +3 -1
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-input/index.js +1 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +4 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +4 -25
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +9 -2
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +4 -2
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +3 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +10 -2
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +1 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/border-radius.js +2 -7
- package/build/hooks/border-radius.js.map +1 -1
- package/build/hooks/border.js +2 -2
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +4 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +15 -0
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +4 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/gap.js +6 -4
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/generated-class-name.js +1 -7
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/layout.js +42 -15
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/margin.js +28 -12
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +19 -8
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +40 -76
- package/build/hooks/style.js.map +1 -1
- package/build/layouts/constrained.js +215 -0
- package/build/layouts/constrained.js.map +1 -0
- package/build/layouts/flex.js +1 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +6 -145
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/index.js +3 -1
- package/build/layouts/index.js.map +1 -1
- package/build/layouts/utils.js +43 -0
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +25 -3
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +4 -6
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-variation-transforms.js +15 -9
- package/build/utils/block-variation-transforms.js.map +1 -1
- package/build/utils/pasting.js +9 -1
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-edit-visually-button/index.js +35 -0
- package/build-module/components/block-edit-visually-button/index.js.map +1 -0
- package/build-module/components/block-list/block.js +13 -3
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -1
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -2
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js +97 -33
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +5 -3
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +3 -6
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -2
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +4 -7
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +2 -3
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +10 -16
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +4 -1
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +1 -7
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.js +1 -1
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +67 -25
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js +32 -4
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +24 -8
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +22 -7
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +13 -16
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors/utils.js +7 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +16 -3
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +8 -4
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +10 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/copy-handler/index.js +7 -1
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -6
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/duotone/components.js +5 -5
- package/build-module/components/duotone/components.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +7 -4
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +1 -1
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +16 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +4 -3
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +3 -1
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +3 -1
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +2 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +31 -15
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/index.native.js +9 -2
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +9 -9
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-items.js +19 -5
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +6 -3
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +19 -0
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +5 -18
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +5 -3
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +5 -3
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/is-url-like.js +1 -6
- package/build-module/components/link-control/is-url-like.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +0 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +1 -6
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +5 -2
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -6
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/expander.js +3 -2
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +1 -6
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +9 -2
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/observe-typing/index.js +22 -8
- package/build-module/components/observe-typing/index.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/{use-no-recursive-renders → recursion-provider}/index.js +39 -19
- package/build-module/components/recursion-provider/index.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar-container.js +58 -12
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +7 -2
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +3 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-before-input-rules.js +96 -0
- package/build-module/components/rich-text/use-before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/use-enter.js +0 -4
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +39 -22
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/spacing-sizes-control/all-input-control.js +41 -0
- package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -0
- package/build-module/components/spacing-sizes-control/axial-input-controls.js +57 -0
- package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -0
- package/build-module/components/spacing-sizes-control/index.js +83 -0
- package/build-module/components/spacing-sizes-control/index.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls.js +41 -0
- package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -0
- package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
- package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +192 -0
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -0
- package/build-module/components/spacing-sizes-control/utils.js +174 -0
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -0
- package/build-module/components/text-decoration-control/index.js +4 -2
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +4 -2
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-input/index.js +1 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +4 -1
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +5 -26
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +9 -2
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +4 -2
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +3 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +10 -2
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/border-radius.js +2 -7
- package/build-module/hooks/border-radius.js.map +1 -1
- package/build-module/hooks/border.js +2 -2
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +4 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/dimensions.js +13 -0
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/gap.js +3 -2
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/generated-class-name.js +1 -6
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/layout.js +42 -15
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/margin.js +26 -12
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +17 -8
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +44 -81
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/layouts/constrained.js +197 -0
- package/build-module/layouts/constrained.js.map +1 -0
- package/build-module/layouts/flex.js +1 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +7 -140
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/index.js +2 -1
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/layouts/utils.js +40 -0
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +25 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +5 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-variation-transforms.js +14 -7
- package/build-module/utils/block-variation-transforms.js.map +1 -1
- package/build-module/utils/pasting.js +9 -1
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/style-rtl.css +154 -27
- package/build-style/style.css +154 -27
- package/package.json +30 -28
- package/src/components/block-alignment-control/use-available-alignments.js +1 -1
- package/src/components/block-edit-visually-button/index.js +39 -0
- package/src/components/block-list/block.js +13 -2
- package/src/components/block-list/index.native.js +1 -1
- package/src/components/block-lock/modal.js +5 -5
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/src/components/block-mover/mover-description.js +131 -48
- package/src/components/block-mover/test/mover-description.js +55 -3
- package/src/components/block-popover/inbetween.js +5 -1
- package/src/components/block-popover/style.scss +25 -2
- package/src/components/block-settings-menu/index.js +11 -15
- package/src/components/block-settings-menu-controls/index.js +2 -2
- package/src/components/block-styles/index.js +4 -7
- package/src/components/block-styles/preview.native.js +2 -2
- package/src/components/block-styles/style.scss +10 -0
- package/src/components/block-switcher/index.js +9 -13
- package/src/components/block-switcher/test/index.js +1 -0
- package/src/components/block-toolbar/index.js +2 -0
- package/src/components/block-tools/block-selection-button.js +0 -5
- package/src/components/block-tools/index.js +4 -1
- package/src/components/block-types-list/index.js +1 -1
- package/src/components/block-types-list/index.native.js +76 -24
- package/src/components/block-types-list/style.native.scss +18 -0
- package/src/components/border-radius-control/all-input-control.js +41 -4
- package/src/components/border-radius-control/index.js +29 -6
- package/src/components/border-radius-control/input-controls.js +40 -13
- package/src/components/border-radius-control/test/utils.js +22 -60
- package/src/components/border-radius-control/utils.js +12 -16
- package/src/components/color-palette/test/__snapshots__/control.js.snap +91 -79
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +1 -1
- package/src/components/colors/test/with-colors.js +1 -1
- package/src/components/colors/utils.js +5 -2
- package/src/components/colors/with-colors.js +11 -1
- package/src/components/colors-gradients/control.js +13 -8
- package/src/components/colors-gradients/dropdown.js +14 -3
- package/src/components/colors-gradients/style.scss +33 -12
- package/src/components/colors-gradients/test/control.js +3 -3
- package/src/components/copy-handler/index.js +18 -0
- package/src/components/date-format-picker/index.js +12 -14
- package/src/components/date-format-picker/style.scss +0 -4
- package/src/components/duotone/components.js +5 -5
- package/src/components/duotone-control/style.scss +0 -4
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-appearance-control/style.scss +0 -2
- package/src/components/font-family/index.js +1 -1
- package/src/components/font-sizes/with-font-sizes.js +11 -1
- package/src/components/image-editor/cropper.js +9 -3
- package/src/components/image-editor/index.js +2 -0
- package/src/components/image-size-control/README.md +7 -0
- package/src/components/image-size-control/index.js +2 -0
- package/src/components/index.js +5 -1
- package/src/components/index.native.js +4 -1
- package/src/components/inserter/block-types-tab.native.js +42 -21
- package/src/components/inserter/index.native.js +7 -2
- package/src/components/inserter/preview-panel.js +6 -14
- package/src/components/inserter/reusable-blocks-tab.native.js +4 -2
- package/src/components/inserter/search-items.js +17 -5
- package/src/components/inserter/search-results.native.js +4 -2
- package/src/components/inserter/test/block-types-tab.native.js +2 -0
- package/src/components/inserter/test/utils.native.js +37 -0
- package/src/components/inserter/utils.native.js +11 -0
- package/src/components/inserter-list-item/index.js +5 -18
- package/src/components/letter-spacing-control/index.js +2 -0
- package/src/components/line-height-control/index.js +2 -0
- package/src/components/link-control/is-url-like.js +1 -6
- package/src/components/link-control/link-preview.js +0 -1
- package/src/components/link-control/test/index.js +540 -893
- package/src/components/link-control/use-search-handler.js +1 -6
- package/src/components/list-view/block-select-button.js +7 -2
- package/src/components/list-view/branch.js +1 -6
- package/src/components/list-view/expander.js +4 -2
- package/src/components/list-view/style.scss +11 -4
- package/src/components/list-view/use-block-selection.js +2 -8
- package/src/components/media-replace-flow/style.scss +1 -0
- package/src/components/media-upload/index.native.js +7 -3
- package/src/components/observe-typing/index.js +17 -14
- package/src/components/preview-options/index.js +2 -2
- package/src/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -28
- package/src/components/{use-no-recursive-renders/test/use-no-recursive-renders.js → recursion-provider/test/index.js} +5 -6
- package/src/components/rich-text/README.md +13 -1
- package/src/components/rich-text/format-toolbar-container.js +63 -14
- package/src/components/rich-text/index.js +3 -0
- package/src/components/rich-text/index.native.js +2 -0
- package/src/components/rich-text/use-before-input-rules.js +91 -0
- package/src/components/rich-text/use-enter.js +0 -3
- package/src/components/rich-text/use-format-types.js +38 -17
- package/src/components/spacing-sizes-control/all-input-control.js +40 -0
- package/src/components/spacing-sizes-control/axial-input-controls.js +62 -0
- package/src/components/spacing-sizes-control/index.js +91 -0
- package/src/components/spacing-sizes-control/input-controls.js +46 -0
- package/src/components/spacing-sizes-control/linked-button.js +25 -0
- package/src/components/spacing-sizes-control/spacing-input-control.js +280 -0
- package/src/components/spacing-sizes-control/style.scss +122 -0
- package/src/components/spacing-sizes-control/test/utils.js +156 -0
- package/src/components/spacing-sizes-control/utils.js +195 -0
- package/src/components/text-decoration-control/index.js +4 -2
- package/src/components/text-transform-control/index.js +4 -2
- package/src/components/url-input/index.js +1 -1
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +3 -0
- package/src/components/url-popover/style.scss +0 -3
- package/src/components/writing-flow/use-arrow-nav.js +4 -33
- package/src/components/writing-flow/use-drag-selection.js +7 -1
- package/src/components/writing-flow/use-multi-selection.js +4 -1
- package/src/components/writing-flow/use-select-all.js +2 -1
- package/src/components/writing-flow/use-selection-observer.js +10 -2
- package/src/components/writing-flow/use-tab-nav.js +1 -1
- package/src/hooks/border-radius.js +2 -6
- package/src/hooks/border.js +2 -2
- package/src/hooks/color.js +13 -3
- package/src/hooks/dimensions.js +15 -0
- package/src/hooks/duotone.js +4 -4
- package/src/hooks/gap.js +7 -2
- package/src/hooks/generated-class-name.js +6 -9
- package/src/hooks/layout.js +66 -18
- package/src/hooks/margin.js +49 -17
- package/src/hooks/padding.js +41 -14
- package/src/hooks/style.js +42 -86
- package/src/hooks/test/gap.js +22 -0
- package/src/hooks/typography.scss +0 -1
- package/src/layouts/constrained.js +217 -0
- package/src/layouts/flex.js +1 -1
- package/src/layouts/flow.js +6 -151
- package/src/layouts/index.js +2 -1
- package/src/layouts/test/constrained.js +21 -0
- package/src/layouts/utils.js +34 -0
- package/src/store/actions.js +32 -4
- package/src/store/selectors.js +5 -4
- package/src/style.scss +1 -0
- package/src/utils/block-variation-transforms.js +13 -6
- package/src/utils/pasting.js +10 -1
- package/src/utils/test/block-variation-transforms.js +24 -0
- package/src/utils/test/pasting.js +10 -0
- package/build/components/block-settings-menu/block-edit-visually-button.js +0 -70
- package/build/components/block-settings-menu/block-edit-visually-button.js.map +0 -1
- package/build/components/use-no-recursive-renders/index.js.map +0 -1
- package/build-module/components/block-settings-menu/block-edit-visually-button.js +0 -56
- package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +0 -1
- package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
- package/src/components/block-settings-menu/block-edit-visually-button.js +0 -52
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { uniq } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -83,15 +78,17 @@ function NonDefaultControls( { format, onChange } ) {
|
|
|
83
78
|
// 2022) in German (de). The resultant array is de-duplicated as some
|
|
84
79
|
// languages will use the same format string for short, medium, and long
|
|
85
80
|
// formats.
|
|
86
|
-
const suggestedFormats =
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
81
|
+
const suggestedFormats = [
|
|
82
|
+
...new Set( [
|
|
83
|
+
'Y-m-d',
|
|
84
|
+
_x( 'n/j/Y', 'short date format' ),
|
|
85
|
+
_x( 'n/j/Y g:i A', 'short date format with time' ),
|
|
86
|
+
_x( 'M j, Y', 'medium date format' ),
|
|
87
|
+
_x( 'M j, Y g:i A', 'medium date format with time' ),
|
|
88
|
+
_x( 'F j, Y', 'long date format' ),
|
|
89
|
+
_x( 'M j', 'short date format without the year' ),
|
|
90
|
+
] ),
|
|
91
|
+
];
|
|
95
92
|
|
|
96
93
|
const suggestedOptions = suggestedFormats.map(
|
|
97
94
|
( suggestedFormat, index ) => ( {
|
|
@@ -116,6 +113,7 @@ function NonDefaultControls( { format, onChange } ) {
|
|
|
116
113
|
<>
|
|
117
114
|
<BaseControl className="block-editor-date-format-picker__custom-format-select-control">
|
|
118
115
|
<CustomSelectControl
|
|
116
|
+
__nextUnconstrainedWidth
|
|
119
117
|
label={ __( 'Choose a format' ) }
|
|
120
118
|
options={ [ ...suggestedOptions, customOption ] }
|
|
121
119
|
value={
|
|
@@ -11,9 +11,9 @@ import { __unstableGetValuesFromColors as getValuesFromColors } from './index';
|
|
|
11
11
|
/**
|
|
12
12
|
* SVG and stylesheet needed for rendering the duotone filter.
|
|
13
13
|
*
|
|
14
|
-
* @param {Object}
|
|
15
|
-
* @param {string}
|
|
16
|
-
* @param {string}
|
|
14
|
+
* @param {Object} props Duotone props.
|
|
15
|
+
* @param {string} props.selector Selector to apply the filter to.
|
|
16
|
+
* @param {string} props.id Unique id for this duotone filter.
|
|
17
17
|
*
|
|
18
18
|
* @return {WPElement} Duotone element.
|
|
19
19
|
*/
|
|
@@ -29,8 +29,8 @@ ${ selector } {
|
|
|
29
29
|
/**
|
|
30
30
|
* Stylesheet for disabling a global styles duotone filter.
|
|
31
31
|
*
|
|
32
|
-
* @param {Object}
|
|
33
|
-
* @param {string}
|
|
32
|
+
* @param {Object} props Duotone props.
|
|
33
|
+
* @param {string} props.selector Selector to disable the filter for.
|
|
34
34
|
*
|
|
35
35
|
* @return {WPElement} Filter none style element.
|
|
36
36
|
*/
|
|
@@ -18,10 +18,6 @@ $swatch-columns: math.floor(math.div($popover-width + $swatch-gap - 2 * $popover
|
|
|
18
18
|
padding: 0;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.components-custom-gradient-picker__gradient-bar {
|
|
22
|
-
margin: $grid-unit-20 0 $grid-unit-15;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
21
|
.components-circular-option-picker__swatches {
|
|
26
22
|
display: grid;
|
|
27
23
|
grid-template-columns: repeat($swatch-columns, $swatch-size);
|
|
@@ -88,6 +88,7 @@ export default function FontAppearanceControl( props ) {
|
|
|
88
88
|
hasFontStyles = true,
|
|
89
89
|
hasFontWeights = true,
|
|
90
90
|
value: { fontStyle, fontWeight },
|
|
91
|
+
...otherProps
|
|
91
92
|
} = props;
|
|
92
93
|
const hasStylesOrWeights = hasFontStyles || hasFontWeights;
|
|
93
94
|
const label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );
|
|
@@ -205,6 +206,7 @@ export default function FontAppearanceControl( props ) {
|
|
|
205
206
|
return (
|
|
206
207
|
hasStylesOrWeights && (
|
|
207
208
|
<CustomSelectControl
|
|
209
|
+
{ ...otherProps }
|
|
208
210
|
className="components-font-appearance-control"
|
|
209
211
|
label={ label }
|
|
210
212
|
describedBy={ getDescribedBy() }
|
|
@@ -213,6 +215,7 @@ export default function FontAppearanceControl( props ) {
|
|
|
213
215
|
onChange={ ( { selectedItem } ) =>
|
|
214
216
|
onChange( selectedItem.style )
|
|
215
217
|
}
|
|
218
|
+
__nextUnconstrainedWidth
|
|
216
219
|
/>
|
|
217
220
|
)
|
|
218
221
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { find, pickBy, reduce, some
|
|
4
|
+
import { find, pickBy, reduce, some } from 'lodash';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -17,6 +17,16 @@ import useSetting from '../use-setting';
|
|
|
17
17
|
|
|
18
18
|
const DEFAULT_FONT_SIZES = [];
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Capitalizes the first letter in a string.
|
|
22
|
+
*
|
|
23
|
+
* @param {string} str The string whose first letter the function will capitalize.
|
|
24
|
+
*
|
|
25
|
+
* @return {string} Capitalized string.
|
|
26
|
+
*/
|
|
27
|
+
const upperFirst = ( [ firstLetter, ...rest ] ) =>
|
|
28
|
+
firstLetter.toUpperCase() + rest.join( '' );
|
|
29
|
+
|
|
20
30
|
/**
|
|
21
31
|
* Higher-order component, which handles font size logic for class generation,
|
|
22
32
|
* font size value retrieval, and font size change handling.
|
|
@@ -23,6 +23,7 @@ export default function ImageCropper( {
|
|
|
23
23
|
clientWidth,
|
|
24
24
|
naturalHeight,
|
|
25
25
|
naturalWidth,
|
|
26
|
+
borderProps,
|
|
26
27
|
} ) {
|
|
27
28
|
const {
|
|
28
29
|
isInProgress,
|
|
@@ -44,10 +45,15 @@ export default function ImageCropper( {
|
|
|
44
45
|
|
|
45
46
|
return (
|
|
46
47
|
<div
|
|
47
|
-
className={ classnames(
|
|
48
|
-
'
|
|
49
|
-
|
|
48
|
+
className={ classnames(
|
|
49
|
+
'wp-block-image__crop-area',
|
|
50
|
+
borderProps?.className,
|
|
51
|
+
{
|
|
52
|
+
'is-applying': isInProgress,
|
|
53
|
+
}
|
|
54
|
+
) }
|
|
50
55
|
style={ {
|
|
56
|
+
...borderProps?.style,
|
|
51
57
|
width: width || clientWidth,
|
|
52
58
|
height: editedHeight,
|
|
53
59
|
} }
|
|
@@ -32,6 +32,13 @@ const MyImageSizeControl = () => {
|
|
|
32
32
|
|
|
33
33
|
The component accepts the following props:
|
|
34
34
|
|
|
35
|
+
### imageSizeHelp
|
|
36
|
+
|
|
37
|
+
If this property is added, a help text will be generated for the image size control, using imageSizeHelp property as the content.
|
|
38
|
+
|
|
39
|
+
- Type: `String|WPElement`
|
|
40
|
+
- Required: No
|
|
41
|
+
|
|
35
42
|
### slug
|
|
36
43
|
|
|
37
44
|
The currently-selected image size slug (`thumbnail`, `large`, etc). This is used by the parent component to get the specific image, which is used to populate `imageHeight` & `imageWidth`. This is not required, but necessary when `imageSizeOptions` is used.
|
|
@@ -23,6 +23,7 @@ const IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];
|
|
|
23
23
|
const noop = () => {};
|
|
24
24
|
|
|
25
25
|
export default function ImageSizeControl( {
|
|
26
|
+
imageSizeHelp,
|
|
26
27
|
imageWidth,
|
|
27
28
|
imageHeight,
|
|
28
29
|
imageSizeOptions = [],
|
|
@@ -44,6 +45,7 @@ export default function ImageSizeControl( {
|
|
|
44
45
|
value={ slug }
|
|
45
46
|
options={ imageSizeOptions }
|
|
46
47
|
onChange={ onChangeImage }
|
|
48
|
+
help={ imageSizeHelp }
|
|
47
49
|
/>
|
|
48
50
|
) }
|
|
49
51
|
{ isResizable && (
|
package/src/components/index.js
CHANGED
|
@@ -93,6 +93,7 @@ export { default as URLInputButton } from './url-input/button';
|
|
|
93
93
|
export { default as URLPopover } from './url-popover';
|
|
94
94
|
export { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';
|
|
95
95
|
export { default as withColorContext } from './color-palette/with-color-context';
|
|
96
|
+
export { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';
|
|
96
97
|
|
|
97
98
|
/*
|
|
98
99
|
* Content Related Components
|
|
@@ -147,7 +148,10 @@ export { default as Warning } from './warning';
|
|
|
147
148
|
export { default as WritingFlow } from './writing-flow';
|
|
148
149
|
export { default as useBlockDisplayInformation } from './use-block-display-information';
|
|
149
150
|
export { default as __unstableIframe } from './iframe';
|
|
150
|
-
export {
|
|
151
|
+
export {
|
|
152
|
+
RecursionProvider as __experimentalRecursionProvider,
|
|
153
|
+
useHasRecursion as __experimentalUseHasRecursion,
|
|
154
|
+
} from './recursion-provider';
|
|
151
155
|
export { default as __experimentalBlockPatternsList } from './block-patterns-list';
|
|
152
156
|
export { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';
|
|
153
157
|
export { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';
|
|
@@ -59,7 +59,10 @@ export { default as Caption } from './caption';
|
|
|
59
59
|
export { default as PanelColorSettings } from './panel-color-settings';
|
|
60
60
|
export { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';
|
|
61
61
|
export { default as useSetting } from './use-setting';
|
|
62
|
-
export {
|
|
62
|
+
export {
|
|
63
|
+
RecursionProvider as __experimentalRecursionProvider,
|
|
64
|
+
useHasRecursion as __experimentalUseHasRecursion,
|
|
65
|
+
} from './recursion-provider';
|
|
63
66
|
export { default as Warning } from './warning';
|
|
64
67
|
export { default as ContrastChecker } from './contrast-checker';
|
|
65
68
|
export { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';
|
|
@@ -1,36 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { useMemo } from '@wordpress/element';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
9
|
import BlockTypesList from '../block-types-list';
|
|
10
10
|
import useClipboardBlock from './hooks/use-clipboard-block';
|
|
11
|
-
import { store as blockEditorStore } from '../../store';
|
|
12
11
|
import useBlockTypeImpressions from './hooks/use-block-type-impressions';
|
|
13
|
-
import { filterInserterItems } from './utils';
|
|
12
|
+
import { createInserterSection, filterInserterItems } from './utils';
|
|
13
|
+
import useBlockTypesState from './hooks/use-block-types-state';
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
const clipboardBlock = useClipboardBlock( rootClientId );
|
|
17
|
-
|
|
18
|
-
const { blockTypes } = useSelect(
|
|
19
|
-
( select ) => {
|
|
20
|
-
const { getInserterItems } = select( blockEditorStore );
|
|
21
|
-
const blockItems = filterInserterItems(
|
|
22
|
-
getInserterItems( rootClientId )
|
|
23
|
-
);
|
|
15
|
+
const getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];
|
|
24
16
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
[ rootClientId ]
|
|
17
|
+
function BlockTypesTab( { onSelect, rootClientId, listProps } ) {
|
|
18
|
+
const [ rawBlockTypes, , collections ] = useBlockTypesState(
|
|
19
|
+
rootClientId,
|
|
20
|
+
onSelect
|
|
32
21
|
);
|
|
33
|
-
|
|
22
|
+
const clipboardBlock = useClipboardBlock( rootClientId );
|
|
23
|
+
const filteredBlockTypes = filterInserterItems( rawBlockTypes );
|
|
24
|
+
const blockTypes = clipboardBlock
|
|
25
|
+
? [ clipboardBlock, ...filteredBlockTypes ]
|
|
26
|
+
: filteredBlockTypes;
|
|
34
27
|
const { items, trackBlockTypeSelected } =
|
|
35
28
|
useBlockTypeImpressions( blockTypes );
|
|
36
29
|
|
|
@@ -39,10 +32,38 @@ function BlockTypesTab( { onSelect, rootClientId, listProps } ) {
|
|
|
39
32
|
onSelect( ...args );
|
|
40
33
|
};
|
|
41
34
|
|
|
35
|
+
const collectionSections = useMemo( () => {
|
|
36
|
+
const result = [];
|
|
37
|
+
Object.keys( collections ).forEach( ( namespace ) => {
|
|
38
|
+
const data = items.filter(
|
|
39
|
+
( item ) => getBlockNamespace( item ) === namespace
|
|
40
|
+
);
|
|
41
|
+
if ( data.length > 0 ) {
|
|
42
|
+
result.push(
|
|
43
|
+
createInserterSection( {
|
|
44
|
+
key: `collection-${ namespace }`,
|
|
45
|
+
metadata: {
|
|
46
|
+
icon: collections[ namespace ].icon,
|
|
47
|
+
title: collections[ namespace ].title,
|
|
48
|
+
},
|
|
49
|
+
items: data,
|
|
50
|
+
} )
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
} );
|
|
54
|
+
|
|
55
|
+
return result;
|
|
56
|
+
}, [ items, collections ] );
|
|
57
|
+
|
|
58
|
+
const sections = [
|
|
59
|
+
createInserterSection( { key: 'default', items } ),
|
|
60
|
+
...collectionSections,
|
|
61
|
+
];
|
|
62
|
+
|
|
42
63
|
return (
|
|
43
64
|
<BlockTypesList
|
|
44
65
|
name="Blocks"
|
|
45
|
-
|
|
66
|
+
sections={ sections }
|
|
46
67
|
onSelect={ handleSelect }
|
|
47
68
|
listProps={ listProps }
|
|
48
69
|
/>
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { AccessibilityInfo, Platform, Text } from 'react-native';
|
|
5
|
-
import { delay } from 'lodash';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* WordPress dependencies
|
|
@@ -80,6 +79,8 @@ const defaultRenderToggle = ( {
|
|
|
80
79
|
};
|
|
81
80
|
|
|
82
81
|
export class Inserter extends Component {
|
|
82
|
+
announcementTimeout;
|
|
83
|
+
|
|
83
84
|
constructor() {
|
|
84
85
|
super( ...arguments );
|
|
85
86
|
|
|
@@ -88,6 +89,10 @@ export class Inserter extends Component {
|
|
|
88
89
|
this.renderContent = this.renderContent.bind( this );
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
componentWillUnmount() {
|
|
93
|
+
clearTimeout( this.announcementTimeout );
|
|
94
|
+
}
|
|
95
|
+
|
|
91
96
|
getInsertionOptions() {
|
|
92
97
|
const addBeforeOption = {
|
|
93
98
|
value: 'before',
|
|
@@ -217,7 +222,7 @@ export class Inserter extends Component {
|
|
|
217
222
|
const announcement = isOpen
|
|
218
223
|
? __( 'Scrollable block menu opened. Select a block.' )
|
|
219
224
|
: __( 'Scrollable block menu closed.' );
|
|
220
|
-
|
|
225
|
+
this.announcementTimeout = setTimeout(
|
|
221
226
|
() =>
|
|
222
227
|
AccessibilityInfo.announceForAccessibility(
|
|
223
228
|
announcement
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
isReusableBlock,
|
|
6
6
|
createBlock,
|
|
7
7
|
getBlockFromExample,
|
|
8
|
-
getBlockType,
|
|
9
8
|
} from '@wordpress/blocks';
|
|
10
9
|
import { __ } from '@wordpress/i18n';
|
|
11
10
|
|
|
@@ -16,31 +15,24 @@ import BlockCard from '../block-card';
|
|
|
16
15
|
import BlockPreview from '../block-preview';
|
|
17
16
|
|
|
18
17
|
function InserterPreviewPanel( { item } ) {
|
|
19
|
-
const { name, title, icon, description, initialAttributes } = item;
|
|
20
|
-
const hoveredItemBlockType = getBlockType( name );
|
|
18
|
+
const { name, title, icon, description, initialAttributes, example } = item;
|
|
21
19
|
const isReusable = isReusableBlock( item );
|
|
22
20
|
return (
|
|
23
21
|
<div className="block-editor-inserter__preview-container">
|
|
24
22
|
<div className="block-editor-inserter__preview">
|
|
25
|
-
{ isReusable ||
|
|
23
|
+
{ isReusable || example ? (
|
|
26
24
|
<div className="block-editor-inserter__preview-content">
|
|
27
25
|
<BlockPreview
|
|
28
26
|
__experimentalPadding={ 16 }
|
|
29
|
-
viewportWidth={
|
|
30
|
-
hoveredItemBlockType.example?.viewportWidth ??
|
|
31
|
-
500
|
|
32
|
-
}
|
|
27
|
+
viewportWidth={ example?.viewportWidth ?? 500 }
|
|
33
28
|
blocks={
|
|
34
|
-
|
|
29
|
+
example
|
|
35
30
|
? getBlockFromExample( item.name, {
|
|
36
31
|
attributes: {
|
|
37
|
-
...
|
|
38
|
-
.attributes,
|
|
32
|
+
...example.attributes,
|
|
39
33
|
...initialAttributes,
|
|
40
34
|
},
|
|
41
|
-
innerBlocks:
|
|
42
|
-
hoveredItemBlockType.example
|
|
43
|
-
.innerBlocks,
|
|
35
|
+
innerBlocks: example.innerBlocks,
|
|
44
36
|
} )
|
|
45
37
|
: createBlock( name, initialAttributes )
|
|
46
38
|
}
|
|
@@ -8,7 +8,7 @@ import { useSelect } from '@wordpress/data';
|
|
|
8
8
|
*/
|
|
9
9
|
import BlockTypesList from '../block-types-list';
|
|
10
10
|
import { store as blockEditorStore } from '../../store';
|
|
11
|
-
import { filterInserterItems } from './utils';
|
|
11
|
+
import { createInserterSection, filterInserterItems } from './utils';
|
|
12
12
|
|
|
13
13
|
function ReusableBlocksTab( { onSelect, rootClientId, listProps } ) {
|
|
14
14
|
const { items } = useSelect(
|
|
@@ -23,10 +23,12 @@ function ReusableBlocksTab( { onSelect, rootClientId, listProps } ) {
|
|
|
23
23
|
[ rootClientId ]
|
|
24
24
|
);
|
|
25
25
|
|
|
26
|
+
const sections = [ createInserterSection( { key: 'reuseable', items } ) ];
|
|
27
|
+
|
|
26
28
|
return (
|
|
27
29
|
<BlockTypesList
|
|
28
30
|
name="ReusableBlocks"
|
|
29
|
-
|
|
31
|
+
sections={ sections }
|
|
30
32
|
onSelect={ onSelect }
|
|
31
33
|
listProps={ listProps }
|
|
32
34
|
/>
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { noCase } from 'change-case';
|
|
5
|
+
import removeAccents from 'remove-accents';
|
|
6
|
+
import { find } from 'lodash';
|
|
5
7
|
|
|
6
8
|
// Default search helpers.
|
|
7
9
|
const defaultGetName = ( item ) => item.name || '';
|
|
@@ -21,7 +23,7 @@ const defaultGetCollection = () => null;
|
|
|
21
23
|
function normalizeSearchInput( input = '' ) {
|
|
22
24
|
// Disregard diacritics.
|
|
23
25
|
// Input: "média"
|
|
24
|
-
input =
|
|
26
|
+
input = removeAccents( input );
|
|
25
27
|
|
|
26
28
|
// Accommodate leading slash, matching autocomplete expectations.
|
|
27
29
|
// Input: "/media"
|
|
@@ -34,6 +36,17 @@ function normalizeSearchInput( input = '' ) {
|
|
|
34
36
|
return input;
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Extracts words from an input string.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} input The input string.
|
|
43
|
+
*
|
|
44
|
+
* @return {Array} Words, extracted from the input string.
|
|
45
|
+
*/
|
|
46
|
+
function extractWords( input = '' ) {
|
|
47
|
+
return noCase( input ).split( ' ' ).filter( Boolean );
|
|
48
|
+
}
|
|
49
|
+
|
|
37
50
|
/**
|
|
38
51
|
* Converts the search term into a list of normalized terms.
|
|
39
52
|
*
|
|
@@ -42,8 +55,7 @@ function normalizeSearchInput( input = '' ) {
|
|
|
42
55
|
* @return {string[]} The normalized list of search terms.
|
|
43
56
|
*/
|
|
44
57
|
export const getNormalizedSearchTerms = ( input = '' ) => {
|
|
45
|
-
|
|
46
|
-
return words( normalizeSearchInput( input ) );
|
|
58
|
+
return extractWords( normalizeSearchInput( input ) );
|
|
47
59
|
};
|
|
48
60
|
|
|
49
61
|
const removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {
|
|
@@ -150,7 +162,7 @@ export function getItemSearchRank( item, searchTerm, config = {} ) {
|
|
|
150
162
|
category,
|
|
151
163
|
collection,
|
|
152
164
|
].join( ' ' );
|
|
153
|
-
const normalizedSearchTerms =
|
|
165
|
+
const normalizedSearchTerms = extractWords( normalizedSearchInput );
|
|
154
166
|
const unmatchedTerms = removeMatchingTerms(
|
|
155
167
|
normalizedSearchTerms,
|
|
156
168
|
terms
|
|
@@ -11,7 +11,7 @@ import BlockTypesList from '../block-types-list';
|
|
|
11
11
|
import InserterNoResults from './no-results';
|
|
12
12
|
import { store as blockEditorStore } from '../../store';
|
|
13
13
|
import useBlockTypeImpressions from './hooks/use-block-type-impressions';
|
|
14
|
-
import { filterInserterItems } from './utils';
|
|
14
|
+
import { createInserterSection, filterInserterItems } from './utils';
|
|
15
15
|
|
|
16
16
|
function InserterSearchResults( {
|
|
17
17
|
filterValue,
|
|
@@ -51,7 +51,9 @@ function InserterSearchResults( {
|
|
|
51
51
|
<BlockTypesList
|
|
52
52
|
name="Blocks"
|
|
53
53
|
initialNumToRender={ isFullScreen ? 10 : 3 }
|
|
54
|
-
{
|
|
54
|
+
sections={ [ createInserterSection( { key: 'search', items } ) ] }
|
|
55
|
+
onSelect={ handleSelect }
|
|
56
|
+
listProps={ listProps }
|
|
55
57
|
/>
|
|
56
58
|
);
|
|
57
59
|
}
|
|
@@ -18,6 +18,8 @@ jest.mock( '../hooks/use-clipboard-block' );
|
|
|
18
18
|
jest.mock( '@wordpress/data/src/components/use-select' );
|
|
19
19
|
|
|
20
20
|
const selectMock = {
|
|
21
|
+
getCategories: jest.fn().mockReturnValue( [] ),
|
|
22
|
+
getCollections: jest.fn().mockReturnValue( [] ),
|
|
21
23
|
getInserterItems: jest.fn().mockReturnValue( [] ),
|
|
22
24
|
canInsertBlockType: jest.fn(),
|
|
23
25
|
getBlockType: jest.fn(),
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { createInserterSection } from '../utils';
|
|
5
|
+
|
|
6
|
+
describe( 'createInserterSection', () => {
|
|
7
|
+
it( 'returns the expected object shape', () => {
|
|
8
|
+
const key = 'mock-1';
|
|
9
|
+
const items = [ 1, 2, 3 ];
|
|
10
|
+
const metadata = { icon: 'icon-mock', title: 'Title Mock' };
|
|
11
|
+
|
|
12
|
+
expect( createInserterSection( { key, metadata, items } ) ).toEqual(
|
|
13
|
+
expect.objectContaining( {
|
|
14
|
+
metadata,
|
|
15
|
+
data: [ { key, list: items } ],
|
|
16
|
+
} )
|
|
17
|
+
);
|
|
18
|
+
} );
|
|
19
|
+
|
|
20
|
+
it( 'return always includes metadata', () => {
|
|
21
|
+
const key = 'mock-1';
|
|
22
|
+
const items = [ 1, 2, 3 ];
|
|
23
|
+
|
|
24
|
+
expect( createInserterSection( { key, items } ) ).toEqual(
|
|
25
|
+
expect.objectContaining( {
|
|
26
|
+
metadata: {},
|
|
27
|
+
data: [ { key, list: items } ],
|
|
28
|
+
} )
|
|
29
|
+
);
|
|
30
|
+
} );
|
|
31
|
+
|
|
32
|
+
it( 'requires a unique key', () => {
|
|
33
|
+
expect( () => {
|
|
34
|
+
createInserterSection( { items: [ 1, 2, 3 ] } );
|
|
35
|
+
} ).toThrow( 'A unique key for the section must be provided.' );
|
|
36
|
+
} );
|
|
37
|
+
} );
|
|
@@ -33,3 +33,14 @@ export function filterInserterItems(
|
|
|
33
33
|
blockAllowed( block, { onlyReusable, allowReusable } )
|
|
34
34
|
);
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
export function createInserterSection( { key, metadata = {}, items } ) {
|
|
38
|
+
if ( ! key ) {
|
|
39
|
+
throw new Error( 'A unique key for the section must be provided.' );
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
metadata,
|
|
44
|
+
data: [ { key, list: items } ],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
createBlock,
|
|
12
12
|
createBlocksFromInnerBlocksTemplate,
|
|
13
13
|
} from '@wordpress/blocks';
|
|
14
|
-
import {
|
|
14
|
+
import { __experimentalTruncate as Truncate } from '@wordpress/components';
|
|
15
|
+
import { ENTER, isAppleOS } from '@wordpress/keycodes';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Internal dependencies
|
|
@@ -20,22 +21,6 @@ import BlockIcon from '../block-icon';
|
|
|
20
21
|
import { InserterListboxItem } from '../inserter-listbox';
|
|
21
22
|
import InserterDraggableBlocks from '../inserter-draggable-blocks';
|
|
22
23
|
|
|
23
|
-
/**
|
|
24
|
-
* Return true if platform is MacOS.
|
|
25
|
-
*
|
|
26
|
-
* @param {Object} _window window object by default; used for DI testing.
|
|
27
|
-
*
|
|
28
|
-
* @return {boolean} True if MacOS; false otherwise.
|
|
29
|
-
*/
|
|
30
|
-
function isAppleOS( _window = window ) {
|
|
31
|
-
const { platform } = _window.navigator;
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
platform.indexOf( 'Mac' ) !== -1 ||
|
|
35
|
-
[ 'iPad', 'iPhone' ].includes( platform )
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
24
|
function InserterListItem( {
|
|
40
25
|
className,
|
|
41
26
|
isFirst,
|
|
@@ -135,7 +120,9 @@ function InserterListItem( {
|
|
|
135
120
|
<BlockIcon icon={ item.icon } showColors />
|
|
136
121
|
</span>
|
|
137
122
|
<span className="block-editor-block-types-list__item-title">
|
|
138
|
-
{
|
|
123
|
+
<Truncate numberOfLines={ 3 }>
|
|
124
|
+
{ item.title }
|
|
125
|
+
</Truncate>
|
|
139
126
|
</span>
|
|
140
127
|
</InserterListboxItem>
|
|
141
128
|
</div>
|
|
@@ -26,6 +26,7 @@ export default function LetterSpacingControl( {
|
|
|
26
26
|
value,
|
|
27
27
|
onChange,
|
|
28
28
|
__unstableInputWidth = '60px',
|
|
29
|
+
...otherProps
|
|
29
30
|
} ) {
|
|
30
31
|
const units = useCustomUnits( {
|
|
31
32
|
availableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],
|
|
@@ -33,6 +34,7 @@ export default function LetterSpacingControl( {
|
|
|
33
34
|
} );
|
|
34
35
|
return (
|
|
35
36
|
<UnitControl
|
|
37
|
+
{ ...otherProps }
|
|
36
38
|
label={ __( 'Letter spacing' ) }
|
|
37
39
|
value={ value }
|
|
38
40
|
__unstableInputWidth={ __unstableInputWidth }
|