@wordpress/block-editor 9.4.0 → 9.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 +6 -0
- package/README.md +1 -8
- package/build/components/block-list/block-invalid-warning.native.js +54 -6
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block.js +14 -4
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +5 -4
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/layout.js +20 -5
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-lock/modal.js +37 -7
- 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-pattern-setup/index.js +5 -17
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-popover/inbetween.js +2 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +1 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/build/components/block-settings-menu/block-settings-dropdown.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.map +1 -1
- package/build/components/block-switcher/index.js +7 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +8 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +12 -5
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build/components/block-tools/block-contextual-toolbar.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/index.js +5 -1
- package/build/components/border-radius-control/index.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 +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +49 -39
- 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/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.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/iframe/index.js +19 -6
- package/build/components/iframe/index.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 +13 -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-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/index.js +1 -1
- package/build/components/link-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/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 +15 -7
- 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/drop-indicator.js +1 -1
- package/build/components/list-view/drop-indicator.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/media-placeholder/index.js +13 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +3 -6
- package/build/components/media-replace-flow/index.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-format-types.js +36 -16
- package/build/components/rich-text/use-format-types.js.map +1 -1
- 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-popover/image-url-input-ui.js +4 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +2 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +38 -27
- 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 +3 -47
- 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 +1 -3
- 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/color.js +2 -4
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/index.js +8 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +61 -15
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +41 -31
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +5 -3
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +40 -36
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +35 -37
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/utils.js +35 -3
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +15 -18
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +0 -4
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +5 -3
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +3 -3
- 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-list/block-invalid-warning.native.js +50 -6
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block.js +15 -5
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +4 -2
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +19 -4
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-lock/modal.js +39 -8
- 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-pattern-setup/index.js +6 -18
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +2 -2
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +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.map +1 -1
- package/build-module/components/block-switcher/index.js +7 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +8 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +12 -5
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.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/index.js +6 -2
- package/build-module/components/border-radius-control/index.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 +2 -2
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +50 -40
- 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/date-format-picker/index.js +1 -1
- package/build-module/components/date-format-picker/index.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/iframe/index.js +19 -6
- package/build-module/components/iframe/index.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 +1 -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-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/index.js +1 -1
- package/build-module/components/link-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/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 +16 -8
- 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/drop-indicator.js +1 -1
- package/build-module/components/list-view/drop-indicator.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/media-placeholder/index.js +13 -2
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -7
- package/build-module/components/media-replace-flow/index.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-format-types.js +37 -18
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- 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-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/url-popover/index.js +2 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +40 -29
- 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 +3 -45
- 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 +1 -3
- 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/color.js +2 -3
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +62 -16
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +44 -35
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +5 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +41 -33
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +35 -38
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/utils.js +33 -3
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +9 -10
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +0 -4
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/reducer.js +5 -2
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +4 -4
- 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 +72 -14
- package/build-style/style.css +72 -14
- package/package.json +28 -28
- package/src/components/block-list/block-invalid-warning.native.js +42 -7
- package/src/components/block-list/block.js +15 -4
- package/src/components/block-list/block.native.js +1 -0
- package/src/components/block-list/index.native.js +2 -2
- package/src/components/block-list/layout.js +15 -3
- package/src/components/block-list/style.scss +1 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
- package/src/components/block-lock/modal.js +47 -9
- package/src/components/block-lock/style.scss +10 -0
- 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-pattern-setup/index.js +3 -15
- package/src/components/block-pattern-setup/style.scss +4 -2
- package/src/components/block-popover/inbetween.js +2 -1
- package/src/components/block-popover/index.js +1 -1
- package/src/components/block-popover/style.scss +25 -2
- package/src/components/block-settings-menu/block-mode-toggle.js +1 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
- 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 +1 -0
- package/src/components/block-styles/style.scss +10 -0
- package/src/components/block-switcher/index.js +7 -1
- package/src/components/block-title/index.js +3 -2
- package/src/components/block-title/use-block-display-title.js +11 -5
- package/src/components/block-tools/block-contextual-toolbar.js +3 -1
- 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/index.js +6 -1
- 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 +2 -2
- package/src/components/colors-gradients/control.js +82 -65
- package/src/components/colors-gradients/dropdown.js +14 -3
- package/src/components/colors-gradients/style.scss +34 -9
- package/src/components/colors-gradients/test/control.js +16 -23
- package/src/components/date-format-picker/index.js +1 -0
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/iframe/index.js +25 -6
- 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 +4 -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-results.native.js +4 -2
- package/src/components/inserter/style.scss +1 -1
- 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/index.js +1 -0
- package/src/components/link-control/is-url-like.js +1 -6
- package/src/components/link-control/test/index.js +6 -4
- package/src/components/link-control/use-search-handler.js +1 -6
- package/src/components/list-view/block-select-button.js +29 -14
- package/src/components/list-view/branch.js +1 -6
- package/src/components/list-view/drop-indicator.js +1 -1
- package/src/components/list-view/expander.js +4 -2
- package/src/components/list-view/style.scss +18 -4
- package/src/components/media-placeholder/index.js +19 -0
- package/src/components/media-replace-flow/index.js +3 -6
- package/src/components/media-replace-flow/test/index.js +14 -4
- 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-format-types.js +38 -17
- package/src/components/text-decoration-control/index.js +4 -2
- package/src/components/text-transform-control/index.js +4 -2
- package/src/components/url-popover/image-url-input-ui.js +3 -0
- package/src/components/url-popover/index.js +1 -0
- package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
- package/src/components/writing-flow/use-arrow-nav.js +36 -34
- package/src/components/writing-flow/use-drag-selection.js +7 -1
- package/src/components/writing-flow/use-multi-selection.js +1 -48
- package/src/components/writing-flow/use-select-all.js +2 -1
- package/src/components/writing-flow/use-selection-observer.js +2 -3
- package/src/components/writing-flow/use-tab-nav.js +1 -1
- package/src/hooks/color.js +10 -3
- package/src/hooks/index.js +1 -0
- package/src/hooks/layout.js +66 -23
- package/src/hooks/style.js +46 -39
- package/src/hooks/utils.js +7 -3
- package/src/index.js +1 -0
- package/src/layouts/flex.js +47 -41
- package/src/layouts/flow.js +35 -34
- package/src/layouts/test/flex.js +21 -0
- package/src/layouts/test/flow.js +21 -0
- package/src/layouts/test/utils.js +138 -0
- package/src/layouts/utils.js +44 -3
- package/src/store/actions.js +10 -11
- package/src/store/index.js +0 -4
- package/src/store/reducer.js +3 -2
- package/src/store/selectors.js +3 -4
- 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/tsconfig.json +2 -1
- package/build/components/use-no-recursive-renders/index.js.map +0 -1
- package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
|
@@ -65,12 +65,31 @@ function useStylesCompatibility() {
|
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
function matchFromRules( _cssRules ) {
|
|
69
|
+
return Array.from( _cssRules ).find(
|
|
70
|
+
( {
|
|
71
|
+
selectorText,
|
|
72
|
+
conditionText,
|
|
73
|
+
cssRules: __cssRules,
|
|
74
|
+
} ) => {
|
|
75
|
+
// If the rule is conditional then it will not have selector text.
|
|
76
|
+
// Recurse into child CSS ruleset to determine selector eligibility.
|
|
77
|
+
if ( conditionText ) {
|
|
78
|
+
return matchFromRules( __cssRules );
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return (
|
|
82
|
+
selectorText &&
|
|
83
|
+
( selectorText.includes(
|
|
84
|
+
`.${ BODY_CLASS_NAME }`
|
|
85
|
+
) ||
|
|
86
|
+
selectorText.includes( `.${ BLOCK_PREFIX }` ) )
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const isMatch = matchFromRules( cssRules );
|
|
74
93
|
|
|
75
94
|
if (
|
|
76
95
|
isMatch &&
|
|
@@ -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
|
@@ -147,7 +147,10 @@ export { default as Warning } from './warning';
|
|
|
147
147
|
export { default as WritingFlow } from './writing-flow';
|
|
148
148
|
export { default as useBlockDisplayInformation } from './use-block-display-information';
|
|
149
149
|
export { default as __unstableIframe } from './iframe';
|
|
150
|
-
export {
|
|
150
|
+
export {
|
|
151
|
+
RecursionProvider as __experimentalRecursionProvider,
|
|
152
|
+
useHasRecursion as __experimentalUseHasRecursion,
|
|
153
|
+
} from './recursion-provider';
|
|
151
154
|
export { default as __experimentalBlockPatternsList } from './block-patterns-list';
|
|
152
155
|
export { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';
|
|
153
156
|
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
|
/>
|
|
@@ -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 }
|
|
@@ -21,6 +21,7 @@ const LineHeightControl = ( {
|
|
|
21
21
|
/** Start opting into the new margin-free styles that will become the default in a future version. */
|
|
22
22
|
__nextHasNoMarginBottom = false,
|
|
23
23
|
__unstableInputWidth = '60px',
|
|
24
|
+
...otherProps
|
|
24
25
|
} ) => {
|
|
25
26
|
const isDefined = isLineHeightDefined( lineHeight );
|
|
26
27
|
|
|
@@ -89,6 +90,7 @@ const LineHeightControl = ( {
|
|
|
89
90
|
style={ deprecatedStyles }
|
|
90
91
|
>
|
|
91
92
|
<NumberControl
|
|
93
|
+
{ ...otherProps }
|
|
92
94
|
__unstableInputWidth={ __unstableInputWidth }
|
|
93
95
|
__unstableStateReducer={ stateReducer }
|
|
94
96
|
onChange={ onChange }
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { startsWith } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -20,6 +15,6 @@ import { isURL } from '@wordpress/url';
|
|
|
20
15
|
* @return {boolean} whether or not the value is potentially a URL.
|
|
21
16
|
*/
|
|
22
17
|
export default function isURLLike( val ) {
|
|
23
|
-
const isInternal = startsWith(
|
|
18
|
+
const isInternal = val?.startsWith( '#' );
|
|
24
19
|
return isURL( val ) || ( val && val.includes( 'www.' ) ) || isInternal;
|
|
25
20
|
}
|
|
@@ -2417,10 +2417,12 @@ describe( 'Controlling link title text', () => {
|
|
|
2417
2417
|
Simulate.keyDown( textInput, { keyCode: ENTER } );
|
|
2418
2418
|
} );
|
|
2419
2419
|
|
|
2420
|
-
expect( mockOnChange ).toHaveBeenCalledWith(
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2420
|
+
expect( mockOnChange ).toHaveBeenCalledWith(
|
|
2421
|
+
expect.objectContaining( {
|
|
2422
|
+
title: textValue,
|
|
2423
|
+
url: selectedLink.url,
|
|
2424
|
+
} )
|
|
2425
|
+
);
|
|
2424
2426
|
|
|
2425
2427
|
// The text input should not be showing as the form is submitted.
|
|
2426
2428
|
expect(
|
|
@@ -5,11 +5,6 @@ import { getProtocol, prependHTTP } from '@wordpress/url';
|
|
|
5
5
|
import { useCallback } from '@wordpress/element';
|
|
6
6
|
import { useSelect } from '@wordpress/data';
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* External dependencies
|
|
10
|
-
*/
|
|
11
|
-
import { startsWith } from 'lodash';
|
|
12
|
-
|
|
13
8
|
/**
|
|
14
9
|
* Internal dependencies
|
|
15
10
|
*/
|
|
@@ -38,7 +33,7 @@ export const handleDirectEntry = ( val ) => {
|
|
|
38
33
|
type = TEL_TYPE;
|
|
39
34
|
}
|
|
40
35
|
|
|
41
|
-
if ( startsWith(
|
|
36
|
+
if ( val?.startsWith( '#' ) ) {
|
|
42
37
|
type = INTERNAL_TYPE;
|
|
43
38
|
}
|
|
44
39
|
|
|
@@ -6,7 +6,11 @@ import classnames from 'classnames';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
Button,
|
|
11
|
+
__experimentalHStack as HStack,
|
|
12
|
+
__experimentalTruncate as Truncate,
|
|
13
|
+
} from '@wordpress/components';
|
|
10
14
|
import { forwardRef } from '@wordpress/element';
|
|
11
15
|
import { Icon, lock } from '@wordpress/icons';
|
|
12
16
|
import { SPACE, ENTER } from '@wordpress/keycodes';
|
|
@@ -16,7 +20,7 @@ import { SPACE, ENTER } from '@wordpress/keycodes';
|
|
|
16
20
|
*/
|
|
17
21
|
import BlockIcon from '../block-icon';
|
|
18
22
|
import useBlockDisplayInformation from '../use-block-display-information';
|
|
19
|
-
import
|
|
23
|
+
import useBlockDisplayTitle from '../block-title/use-block-display-title';
|
|
20
24
|
import ListViewExpander from './expander';
|
|
21
25
|
import { useBlockLock } from '../block-lock';
|
|
22
26
|
|
|
@@ -35,6 +39,10 @@ function ListViewBlockSelectButton(
|
|
|
35
39
|
ref
|
|
36
40
|
) {
|
|
37
41
|
const blockInformation = useBlockDisplayInformation( clientId );
|
|
42
|
+
const blockTitle = useBlockDisplayTitle( {
|
|
43
|
+
clientId,
|
|
44
|
+
context: 'list-view',
|
|
45
|
+
} );
|
|
38
46
|
const { isLocked } = useBlockLock( clientId );
|
|
39
47
|
|
|
40
48
|
// The `href` attribute triggers the browser's native HTML drag operations.
|
|
@@ -72,19 +80,26 @@ function ListViewBlockSelectButton(
|
|
|
72
80
|
>
|
|
73
81
|
<ListViewExpander onClick={ onToggleExpanded } />
|
|
74
82
|
<BlockIcon icon={ blockInformation?.icon } showColors />
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
<HStack
|
|
84
|
+
alignment="center"
|
|
85
|
+
className="block-editor-list-view-block-select-button__label-wrapper"
|
|
86
|
+
justify="flex-start"
|
|
87
|
+
spacing={ 1 }
|
|
88
|
+
>
|
|
89
|
+
<span className="block-editor-list-view-block-select-button__title">
|
|
90
|
+
<Truncate ellipsizeMode="auto">{ blockTitle }</Truncate>
|
|
81
91
|
</span>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
92
|
+
{ blockInformation?.anchor && (
|
|
93
|
+
<span className="block-editor-list-view-block-select-button__anchor">
|
|
94
|
+
{ blockInformation.anchor }
|
|
95
|
+
</span>
|
|
96
|
+
) }
|
|
97
|
+
{ isLocked && (
|
|
98
|
+
<span className="block-editor-list-view-block-select-button__lock">
|
|
99
|
+
<Icon icon={ lock } />
|
|
100
|
+
</span>
|
|
101
|
+
) }
|
|
102
|
+
</HStack>
|
|
88
103
|
</Button>
|
|
89
104
|
</>
|
|
90
105
|
);
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { compact } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -95,7 +90,7 @@ function ListViewBranch( props ) {
|
|
|
95
90
|
|
|
96
91
|
const { expandedState, draggedClientIds } = useListViewContext();
|
|
97
92
|
|
|
98
|
-
const filteredBlocks =
|
|
93
|
+
const filteredBlocks = blocks.filter( Boolean );
|
|
99
94
|
const blockCount = filteredBlocks.length;
|
|
100
95
|
let nextPosition = listPosition;
|
|
101
96
|
|