@wordpress/block-editor 12.24.0 → 12.25.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 +2 -0
- package/README.md +1 -1
- package/build/components/alignment-control/ui.js +3 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-inspector/index.js +1 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +0 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +4 -3
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -9
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +6 -6
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-mover/index.native.js +3 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +0 -25
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-switcher/utils.js +15 -5
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-toolbar/use-has-block-toolbar.js +14 -9
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build/components/block-tools/index.js +3 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +5 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-variation-picker/index.js +3 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/floating-toolbar/index.native.js +9 -5
- package/build/components/floating-toolbar/index.native.js.map +1 -1
- package/build/components/global-styles/background-panel.js +1 -1
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +3 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +16 -0
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +3 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +23 -23
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +149 -132
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +45 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/inner-blocks/index.js +16 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +12 -31
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +4 -0
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +56 -0
- package/build/components/inserter/category-tabs/index.js.map +1 -0
- package/build/components/inserter/media-tab/index.js +2 -2
- package/build/components/inserter/media-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +0 -25
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +13 -3
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +15 -29
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/menu.js +59 -69
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/tabs.js +6 -6
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/line-height-control/index.js +6 -2
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/search-item.js +9 -3
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/block-select-button.js +5 -170
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +166 -14
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/index.js +1 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +3 -3
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/provider/block-refs-provider.js +3 -4
- package/build/components/provider/block-refs-provider.js.map +1 -1
- package/build/components/provider/use-block-sync.js +3 -12
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/event-listeners/before-input-rules.js +93 -0
- package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/delete.js +58 -0
- package/build/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build/components/rich-text/event-listeners/enter.js +98 -0
- package/build/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
- package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build/components/rich-text/event-listeners/index.js +44 -0
- package/build/components/rich-text/event-listeners/index.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-events.js +22 -0
- package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build/components/rich-text/event-listeners/input-rules.js +135 -0
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
- package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/event-listeners/paste-handler.js +146 -0
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
- package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
- package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- package/build/components/rich-text/index.js +11 -31
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +13 -3
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +6 -2
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +12 -0
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +8 -4
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/segmented-text-control/index.js +62 -0
- package/build/components/segmented-text-control/index.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +76 -0
- package/build/components/text-alignment-control/index.js.map +1 -0
- package/build/components/text-decoration-control/index.js +21 -25
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +18 -22
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +9 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +3 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +3 -1
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +3 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +16 -20
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/duotone.js +3 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/utils.js +11 -6
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +4 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +32 -8
- package/build/store/actions.js.map +1 -1
- package/build/store/private-selectors.js +27 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +11 -8
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +21 -7
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +17 -0
- package/build/utils/object.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +6 -2
- package/build/utils/order-inserter-block-items.js.map +1 -1
- package/build/utils/pasting.js +6 -2
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +3 -1
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-inspector/index.js +1 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +0 -9
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -9
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +6 -6
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -26
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +15 -5
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +14 -9
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build-module/components/block-tools/index.js +3 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +3 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/floating-toolbar/index.native.js +9 -5
- package/build-module/components/floating-toolbar/index.native.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +1 -1
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -1
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +17 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +3 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +24 -24
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +149 -132
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +44 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +16 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +13 -32
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +4 -0
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +49 -0
- package/build-module/components/inserter/category-tabs/index.js.map +1 -0
- package/build-module/components/inserter/media-tab/index.js +1 -1
- package/build-module/components/inserter/media-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +0 -24
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +13 -3
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +17 -31
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +61 -71
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/tabs.js +6 -6
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/line-height-control/index.js +6 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/search-item.js +9 -3
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +7 -172
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +167 -15
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/index.js +1 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +3 -3
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/provider/block-refs-provider.js +3 -4
- package/build-module/components/provider/block-refs-provider.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +4 -13
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/before-input-rules.js +86 -0
- package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/delete.js +51 -0
- package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/enter.js +92 -0
- package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
- package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/index.js +36 -0
- package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
- package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js +142 -0
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
- package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
- package/build-module/components/rich-text/index.js +12 -32
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +13 -3
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +6 -2
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +12 -0
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +8 -4
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/segmented-text-control/index.js +55 -0
- package/build-module/components/segmented-text-control/index.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +68 -0
- package/build-module/components/text-alignment-control/index.js.map +1 -0
- package/build-module/components/text-decoration-control/index.js +21 -25
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +18 -22
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +9 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +3 -1
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +16 -20
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/duotone.js +3 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/utils.js +11 -6
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +4 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +32 -8
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-selectors.js +27 -5
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +11 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +21 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +16 -0
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +6 -2
- package/build-module/utils/order-inserter-block-items.js.map +1 -1
- package/build-module/utils/pasting.js +6 -2
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +41 -68
- package/build-style/content.css +41 -68
- package/build-style/style-rtl.css +100 -199
- package/build-style/style.css +100 -199
- package/package.json +31 -31
- package/src/components/alignment-control/ui.js +3 -1
- package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
- package/src/components/block-canvas/style.scss +1 -3
- package/src/components/block-draggable/test/helpers.native.js +8 -8
- package/src/components/block-inspector/index.js +1 -2
- package/src/components/block-list/block.js +2 -13
- package/src/components/block-list/content.scss +9 -1
- package/src/components/block-list/index.js +4 -4
- package/src/components/block-list/index.native.js +1 -6
- package/src/components/block-list/use-block-props/index.js +12 -4
- package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
- package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
- package/src/components/block-mover/index.native.js +3 -1
- package/src/components/block-patterns-list/style.scss +1 -3
- package/src/components/block-preview/style.scss +13 -15
- package/src/components/block-settings-menu/block-settings-dropdown.js +1 -51
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
- package/src/components/block-switcher/use-transformed-patterns.js +6 -2
- package/src/components/block-switcher/utils.js +14 -5
- package/src/components/block-toolbar/style.scss +8 -11
- package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
- package/src/components/block-tools/index.js +3 -1
- package/src/components/block-tools/use-show-block-tools.js +36 -48
- package/src/components/block-tools/zoom-out-mode-inserters.js +5 -1
- package/src/components/block-variation-picker/content.scss +22 -72
- package/src/components/block-variation-picker/index.js +3 -2
- package/src/components/block-variation-transforms/index.js +3 -1
- package/src/components/floating-toolbar/index.native.js +5 -2
- package/src/components/global-styles/background-panel.js +1 -3
- package/src/components/global-styles/color-panel.js +3 -1
- package/src/components/global-styles/dimensions-panel.js +18 -1
- package/src/components/global-styles/hooks.js +2 -0
- package/src/components/global-styles/test/utils.js +21 -0
- package/src/components/global-styles/typography-panel.js +27 -23
- package/src/components/global-styles/use-global-styles-output.js +211 -187
- package/src/components/global-styles/utils.js +55 -0
- package/src/components/inner-blocks/index.js +14 -1
- package/src/components/inserter/block-patterns-tab/index.js +15 -65
- package/src/components/inserter/block-types-tab.js +5 -0
- package/src/components/inserter/category-tabs/index.js +74 -0
- package/src/components/inserter/media-tab/index.js +1 -1
- package/src/components/inserter/media-tab/media-panel.js +0 -22
- package/src/components/inserter/media-tab/media-preview.js +15 -7
- package/src/components/inserter/media-tab/media-tab.js +44 -83
- package/src/components/inserter/menu.js +139 -117
- package/src/components/inserter/style.scss +90 -170
- package/src/components/inserter/tabs.js +5 -13
- package/src/components/line-height-control/index.js +6 -2
- package/src/components/link-control/search-item.js +9 -3
- package/src/components/list-view/block-select-button.js +73 -266
- package/src/components/list-view/block.js +218 -28
- package/src/components/list-view/index.js +1 -1
- package/src/components/list-view/style.scss +20 -28
- package/src/components/list-view/use-list-view-drop-zone.js +1 -1
- package/src/components/list-view/utils.js +3 -1
- package/src/components/media-placeholder/content.scss +0 -11
- package/src/components/media-placeholder/index.js +3 -3
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/provider/block-refs-provider.js +3 -8
- package/src/components/provider/test/use-block-sync.js +7 -0
- package/src/components/provider/use-block-sync.js +3 -20
- package/src/components/rich-text/event-listeners/before-input-rules.js +92 -0
- package/src/components/rich-text/event-listeners/delete.js +53 -0
- package/src/components/rich-text/event-listeners/enter.js +104 -0
- package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
- package/src/components/rich-text/event-listeners/index.js +56 -0
- package/src/components/rich-text/event-listeners/input-events.js +13 -0
- package/src/components/rich-text/event-listeners/input-rules.js +146 -0
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
- package/src/components/rich-text/event-listeners/paste-handler.js +169 -0
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
- package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
- package/src/components/rich-text/index.js +7 -34
- package/src/components/rich-text/index.native.js +11 -0
- package/src/components/rich-text/multiline.js +6 -2
- package/src/components/rich-text/native/index.native.js +11 -0
- package/src/components/rich-text/use-format-types.js +6 -2
- package/src/components/segmented-text-control/index.js +63 -0
- package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
- package/src/components/text-alignment-control/index.js +91 -0
- package/src/components/text-alignment-control/stories/index.story.js +39 -0
- package/src/components/text-decoration-control/index.js +20 -33
- package/src/components/text-transform-control/index.js +17 -30
- package/src/components/use-block-display-information/index.js +9 -3
- package/src/components/use-on-block-drop/index.js +3 -1
- package/src/components/writing-flow/use-drag-selection.js +3 -1
- package/src/components/writing-flow/use-tab-nav.js +3 -1
- package/src/components/writing-mode-control/index.js +15 -28
- package/src/hooks/duotone.js +3 -1
- package/src/hooks/utils.js +16 -2
- package/src/private-apis.js +4 -2
- package/src/store/actions.js +36 -12
- package/src/store/private-selectors.js +28 -4
- package/src/store/reducer.js +13 -23
- package/src/store/selectors.js +20 -7
- package/src/style.scss +1 -2
- package/src/utils/object.js +16 -0
- package/src/utils/order-inserter-block-items.js +6 -2
- package/src/utils/pasting.js +6 -2
- package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
- package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
- package/build/components/rich-text/use-before-input-rules.js +0 -98
- package/build/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build/components/rich-text/use-delete.js +0 -64
- package/build/components/rich-text/use-delete.js.map +0 -1
- package/build/components/rich-text/use-enter.js +0 -109
- package/build/components/rich-text/use-enter.js.map +0 -1
- package/build/components/rich-text/use-firefox-compat.js +0 -44
- package/build/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build/components/rich-text/use-input-events.js +0 -25
- package/build/components/rich-text/use-input-events.js.map +0 -1
- package/build/components/rich-text/use-input-rules.js +0 -139
- package/build/components/rich-text/use-input-rules.js.map +0 -1
- package/build/components/rich-text/use-insert-replacement-text.js +0 -38
- package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build/components/rich-text/use-paste-handler.js +0 -158
- package/build/components/rich-text/use-paste-handler.js.map +0 -1
- package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
- package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-shortcuts.js +0 -25
- package/build/components/rich-text/use-shortcuts.js.map +0 -1
- package/build/components/rich-text/use-undo-automatic-change.js +0 -53
- package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
- package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
- package/build-module/components/rich-text/use-before-input-rules.js +0 -92
- package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-delete.js +0 -57
- package/build-module/components/rich-text/use-delete.js.map +0 -1
- package/build-module/components/rich-text/use-enter.js +0 -102
- package/build-module/components/rich-text/use-enter.js.map +0 -1
- package/build-module/components/rich-text/use-firefox-compat.js +0 -37
- package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
- package/build-module/components/rich-text/use-input-events.js +0 -18
- package/build-module/components/rich-text/use-input-events.js.map +0 -1
- package/build-module/components/rich-text/use-input-rules.js +0 -132
- package/build-module/components/rich-text/use-input-rules.js.map +0 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
- package/build-module/components/rich-text/use-paste-handler.js +0 -152
- package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-shortcuts.js +0 -18
- package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
- package/src/components/rich-text/use-before-input-rules.js +0 -99
- package/src/components/rich-text/use-delete.js +0 -59
- package/src/components/rich-text/use-enter.js +0 -110
- package/src/components/rich-text/use-firefox-compat.js +0 -39
- package/src/components/rich-text/use-input-events.js +0 -19
- package/src/components/rich-text/use-input-rules.js +0 -150
- package/src/components/rich-text/use-insert-replacement-text.js +0 -31
- package/src/components/rich-text/use-paste-handler.js +0 -180
- package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
- package/src/components/rich-text/use-shortcuts.js +0 -19
- package/src/components/rich-text/use-undo-automatic-change.js +0 -46
- package/src/components/text-decoration-control/style.scss +0 -18
- package/src/components/text-transform-control/style.scss +0 -18
|
@@ -2,15 +2,9 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useState } from '@wordpress/element';
|
|
5
|
-
import { __, isRTL } from '@wordpress/i18n';
|
|
6
5
|
import { useViewportMatch } from '@wordpress/compose';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
FlexBlock,
|
|
10
|
-
Button,
|
|
11
|
-
privateApis as componentsPrivateApis,
|
|
12
|
-
} from '@wordpress/components';
|
|
13
|
-
import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
|
|
6
|
+
import { Button } from '@wordpress/components';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
14
8
|
|
|
15
9
|
/**
|
|
16
10
|
* Internal dependencies
|
|
@@ -19,9 +13,8 @@ import PatternsExplorerModal from '../block-patterns-explorer';
|
|
|
19
13
|
import MobileTabNavigation from '../mobile-tab-navigation';
|
|
20
14
|
import { PatternCategoryPreviews } from './pattern-category-previews';
|
|
21
15
|
import { usePatternCategories } from './use-pattern-categories';
|
|
22
|
-
import
|
|
23
|
-
|
|
24
|
-
const { Tabs } = unlock( componentsPrivateApis );
|
|
16
|
+
import CategoryTabs from '../category-tabs';
|
|
17
|
+
import InserterNoResults from '../no-results';
|
|
25
18
|
|
|
26
19
|
function BlockPatternsTab( {
|
|
27
20
|
onSelectCategory,
|
|
@@ -36,64 +29,21 @@ function BlockPatternsTab( {
|
|
|
36
29
|
|
|
37
30
|
const isMobile = useViewportMatch( 'medium', '<' );
|
|
38
31
|
|
|
32
|
+
if ( ! categories.length ) {
|
|
33
|
+
return <InserterNoResults />;
|
|
34
|
+
}
|
|
35
|
+
|
|
39
36
|
return (
|
|
40
37
|
<>
|
|
41
38
|
{ ! isMobile && (
|
|
42
39
|
<div className="block-editor-inserter__block-patterns-tabs-container">
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
orientation={ 'vertical' }
|
|
49
|
-
onSelect={ ( categoryId ) => {
|
|
50
|
-
// Pass the full category object
|
|
51
|
-
onSelectCategory(
|
|
52
|
-
categories.find(
|
|
53
|
-
( category ) => category.name === categoryId
|
|
54
|
-
)
|
|
55
|
-
);
|
|
56
|
-
} }
|
|
40
|
+
<CategoryTabs
|
|
41
|
+
categories={ categories }
|
|
42
|
+
selectedCategory={ selectedCategory }
|
|
43
|
+
onSelectCategory={ onSelectCategory }
|
|
57
44
|
>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
<Tabs.Tab
|
|
61
|
-
key={ category.name }
|
|
62
|
-
tabId={ category.name }
|
|
63
|
-
className="block-editor-inserter__patterns-tab"
|
|
64
|
-
aria-label={ category.label }
|
|
65
|
-
aria-current={
|
|
66
|
-
category === selectedCategory
|
|
67
|
-
? 'true'
|
|
68
|
-
: undefined
|
|
69
|
-
}
|
|
70
|
-
>
|
|
71
|
-
<HStack>
|
|
72
|
-
<FlexBlock>
|
|
73
|
-
{ category.label }
|
|
74
|
-
</FlexBlock>
|
|
75
|
-
<Icon
|
|
76
|
-
icon={
|
|
77
|
-
isRTL()
|
|
78
|
-
? chevronLeft
|
|
79
|
-
: chevronRight
|
|
80
|
-
}
|
|
81
|
-
/>
|
|
82
|
-
</HStack>
|
|
83
|
-
</Tabs.Tab>
|
|
84
|
-
) ) }
|
|
85
|
-
</Tabs.TabList>
|
|
86
|
-
{ categories.map( ( category ) => (
|
|
87
|
-
<Tabs.TabPanel
|
|
88
|
-
key={ category.name }
|
|
89
|
-
tabId={ category.name }
|
|
90
|
-
focusable={ false }
|
|
91
|
-
className="block-editor-inserter__patterns-category-panel"
|
|
92
|
-
>
|
|
93
|
-
{ children }
|
|
94
|
-
</Tabs.TabPanel>
|
|
95
|
-
) ) }
|
|
96
|
-
</Tabs>
|
|
45
|
+
{ children }
|
|
46
|
+
</CategoryTabs>
|
|
97
47
|
<Button
|
|
98
48
|
className="block-editor-inserter__patterns-explore-button"
|
|
99
49
|
onClick={ () => setShowPatternsExplorer( true ) }
|
|
@@ -106,7 +56,7 @@ function BlockPatternsTab( {
|
|
|
106
56
|
{ isMobile && (
|
|
107
57
|
<MobileTabNavigation categories={ categories }>
|
|
108
58
|
{ ( category ) => (
|
|
109
|
-
<div className="block-editor-
|
|
59
|
+
<div className="block-editor-inserter__category-panel">
|
|
110
60
|
<PatternCategoryPreviews
|
|
111
61
|
key={ category.name }
|
|
112
62
|
onInsert={ onInsert }
|
|
@@ -13,6 +13,7 @@ import InserterPanel from './panel';
|
|
|
13
13
|
import useBlockTypesState from './hooks/use-block-types-state';
|
|
14
14
|
import InserterListbox from '../inserter-listbox';
|
|
15
15
|
import { orderBy } from '../../utils/sorting';
|
|
16
|
+
import InserterNoResults from './no-results';
|
|
16
17
|
|
|
17
18
|
const getBlockNamespace = ( item ) => item.name.split( '/' )[ 0 ];
|
|
18
19
|
|
|
@@ -102,6 +103,10 @@ export function BlockTypesTab( {
|
|
|
102
103
|
didRenderAllCategories ? collectionEntries : EMPTY_ARRAY
|
|
103
104
|
);
|
|
104
105
|
|
|
106
|
+
if ( ! items.length ) {
|
|
107
|
+
return <InserterNoResults />;
|
|
108
|
+
}
|
|
109
|
+
|
|
105
110
|
return (
|
|
106
111
|
<InserterListbox>
|
|
107
112
|
<div>
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { isRTL } from '@wordpress/i18n';
|
|
5
|
+
import {
|
|
6
|
+
__experimentalHStack as HStack,
|
|
7
|
+
FlexBlock,
|
|
8
|
+
privateApis as componentsPrivateApis,
|
|
9
|
+
} from '@wordpress/components';
|
|
10
|
+
import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import { unlock } from '../../../lock-unlock';
|
|
16
|
+
|
|
17
|
+
const { Tabs } = unlock( componentsPrivateApis );
|
|
18
|
+
|
|
19
|
+
function CategoryTabs( {
|
|
20
|
+
categories,
|
|
21
|
+
selectedCategory,
|
|
22
|
+
onSelectCategory,
|
|
23
|
+
children,
|
|
24
|
+
} ) {
|
|
25
|
+
return (
|
|
26
|
+
<Tabs
|
|
27
|
+
className="block-editor-inserter__category-tabs"
|
|
28
|
+
selectOnMove={ false }
|
|
29
|
+
selectedTabId={ selectedCategory ? selectedCategory.name : null }
|
|
30
|
+
orientation={ 'vertical' }
|
|
31
|
+
onSelect={ ( categoryId ) => {
|
|
32
|
+
// Pass the full category object
|
|
33
|
+
onSelectCategory(
|
|
34
|
+
categories.find(
|
|
35
|
+
( category ) => category.name === categoryId
|
|
36
|
+
)
|
|
37
|
+
);
|
|
38
|
+
} }
|
|
39
|
+
>
|
|
40
|
+
<Tabs.TabList className="block-editor-inserter__category-tablist">
|
|
41
|
+
{ categories.map( ( category ) => (
|
|
42
|
+
<Tabs.Tab
|
|
43
|
+
key={ category.name }
|
|
44
|
+
tabId={ category.name }
|
|
45
|
+
className="block-editor-inserter__category-tab"
|
|
46
|
+
aria-label={ category.label }
|
|
47
|
+
aria-current={
|
|
48
|
+
category === selectedCategory ? 'true' : undefined
|
|
49
|
+
}
|
|
50
|
+
>
|
|
51
|
+
<HStack>
|
|
52
|
+
<FlexBlock>{ category.label }</FlexBlock>
|
|
53
|
+
<Icon
|
|
54
|
+
icon={ isRTL() ? chevronLeft : chevronRight }
|
|
55
|
+
/>
|
|
56
|
+
</HStack>
|
|
57
|
+
</Tabs.Tab>
|
|
58
|
+
) ) }
|
|
59
|
+
</Tabs.TabList>
|
|
60
|
+
{ categories.map( ( category ) => (
|
|
61
|
+
<Tabs.TabPanel
|
|
62
|
+
key={ category.name }
|
|
63
|
+
tabId={ category.name }
|
|
64
|
+
focusable={ false }
|
|
65
|
+
className="block-editor-inserter__category-panel"
|
|
66
|
+
>
|
|
67
|
+
{ children }
|
|
68
|
+
</Tabs.TabPanel>
|
|
69
|
+
) ) }
|
|
70
|
+
</Tabs>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export default CategoryTabs;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useRef, useEffect } from '@wordpress/element';
|
|
5
4
|
import { Spinner, SearchControl } from '@wordpress/components';
|
|
6
|
-
import { focus } from '@wordpress/dom';
|
|
7
5
|
import { __ } from '@wordpress/i18n';
|
|
8
6
|
import { useDebouncedInput } from '@wordpress/compose';
|
|
9
7
|
|
|
@@ -16,26 +14,6 @@ import InserterNoResults from '../no-results';
|
|
|
16
14
|
|
|
17
15
|
const INITIAL_MEDIA_ITEMS_PER_PAGE = 10;
|
|
18
16
|
|
|
19
|
-
export function MediaCategoryDialog( { rootClientId, onInsert, category } ) {
|
|
20
|
-
const container = useRef();
|
|
21
|
-
useEffect( () => {
|
|
22
|
-
const timeout = setTimeout( () => {
|
|
23
|
-
const [ firstTabbable ] = focus.tabbable.find( container.current );
|
|
24
|
-
firstTabbable?.focus();
|
|
25
|
-
} );
|
|
26
|
-
return () => clearTimeout( timeout );
|
|
27
|
-
}, [ category ] );
|
|
28
|
-
return (
|
|
29
|
-
<div ref={ container } className="block-editor-inserter__media-dialog">
|
|
30
|
-
<MediaCategoryPanel
|
|
31
|
-
rootClientId={ rootClientId }
|
|
32
|
-
onInsert={ onInsert }
|
|
33
|
-
category={ category }
|
|
34
|
-
/>
|
|
35
|
-
</div>
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
17
|
export function MediaCategoryPanel( { rootClientId, onInsert, category } ) {
|
|
40
18
|
const [ search, setSearch, debouncedSearch ] = useDebouncedInput();
|
|
41
19
|
const { mediaList, isLoading } = useMediaResults( category, {
|
|
@@ -127,23 +127,31 @@ export function MediaPreview( { media, onClick, category } ) {
|
|
|
127
127
|
);
|
|
128
128
|
const { createErrorNotice, createSuccessNotice } =
|
|
129
129
|
useDispatch( noticesStore );
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
[]
|
|
133
|
-
);
|
|
130
|
+
const { getSettings } = useSelect( blockEditorStore );
|
|
131
|
+
|
|
134
132
|
const onMediaInsert = useCallback(
|
|
135
133
|
( previewBlock ) => {
|
|
136
134
|
// Prevent multiple uploads when we're in the process of inserting.
|
|
137
135
|
if ( isInserting ) {
|
|
138
136
|
return;
|
|
139
137
|
}
|
|
138
|
+
|
|
139
|
+
const settings = getSettings();
|
|
140
140
|
const clonedBlock = cloneBlock( previewBlock );
|
|
141
141
|
const { id, url, caption } = clonedBlock.attributes;
|
|
142
|
+
|
|
143
|
+
// User has no permission to upload media.
|
|
144
|
+
if ( ! id && ! settings.mediaUpload ) {
|
|
145
|
+
setShowExternalUploadModal( true );
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
|
|
142
149
|
// Media item already exists in library, so just insert it.
|
|
143
150
|
if ( !! id ) {
|
|
144
151
|
onClick( clonedBlock );
|
|
145
152
|
return;
|
|
146
153
|
}
|
|
154
|
+
|
|
147
155
|
setIsInserting( true );
|
|
148
156
|
// Media item does not exist in library, so try to upload it.
|
|
149
157
|
// Fist fetch the image data. This may fail if the image host
|
|
@@ -154,7 +162,7 @@ export function MediaPreview( { media, onClick, category } ) {
|
|
|
154
162
|
.fetch( url )
|
|
155
163
|
.then( ( response ) => response.blob() )
|
|
156
164
|
.then( ( blob ) => {
|
|
157
|
-
mediaUpload( {
|
|
165
|
+
settings.mediaUpload( {
|
|
158
166
|
filesList: [ blob ],
|
|
159
167
|
additionalData: { caption },
|
|
160
168
|
onFileChange( [ img ] ) {
|
|
@@ -189,10 +197,10 @@ export function MediaPreview( { media, onClick, category } ) {
|
|
|
189
197
|
},
|
|
190
198
|
[
|
|
191
199
|
isInserting,
|
|
200
|
+
getSettings,
|
|
192
201
|
onClick,
|
|
193
|
-
mediaUpload,
|
|
194
|
-
createErrorNotice,
|
|
195
202
|
createSuccessNotice,
|
|
203
|
+
createErrorNotice,
|
|
196
204
|
]
|
|
197
205
|
);
|
|
198
206
|
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import classNames from 'classnames';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
9
|
-
import { __
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
10
5
|
import { useViewportMatch } from '@wordpress/compose';
|
|
11
|
-
import {
|
|
12
|
-
__experimentalItemGroup as ItemGroup,
|
|
13
|
-
__experimentalItem as Item,
|
|
14
|
-
__experimentalHStack as HStack,
|
|
15
|
-
FlexBlock,
|
|
16
|
-
Button,
|
|
17
|
-
} from '@wordpress/components';
|
|
6
|
+
import { Button } from '@wordpress/components';
|
|
18
7
|
import { useCallback, useMemo } from '@wordpress/element';
|
|
19
|
-
import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
|
|
20
8
|
|
|
21
9
|
/**
|
|
22
10
|
* Internal dependencies
|
|
@@ -27,6 +15,8 @@ import MediaUpload from '../../media-upload';
|
|
|
27
15
|
import { useMediaCategories } from './hooks';
|
|
28
16
|
import { getBlockAndPreviewFromMedia } from './utils';
|
|
29
17
|
import MobileTabNavigation from '../mobile-tab-navigation';
|
|
18
|
+
import CategoryTabs from '../category-tabs';
|
|
19
|
+
import InserterNoResults from '../no-results';
|
|
30
20
|
|
|
31
21
|
const ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];
|
|
32
22
|
|
|
@@ -35,6 +25,7 @@ function MediaTab( {
|
|
|
35
25
|
selectedCategory,
|
|
36
26
|
onSelectCategory,
|
|
37
27
|
onInsert,
|
|
28
|
+
children,
|
|
38
29
|
} ) {
|
|
39
30
|
const mediaCategories = useMediaCategories( rootClientId );
|
|
40
31
|
const isMobile = useViewportMatch( 'medium', '<' );
|
|
@@ -49,7 +40,7 @@ function MediaTab( {
|
|
|
49
40
|
},
|
|
50
41
|
[ onInsert ]
|
|
51
42
|
);
|
|
52
|
-
const
|
|
43
|
+
const categories = useMemo(
|
|
53
44
|
() =>
|
|
54
45
|
mediaCategories.map( ( mediaCategory ) => ( {
|
|
55
46
|
...mediaCategory,
|
|
@@ -57,82 +48,52 @@ function MediaTab( {
|
|
|
57
48
|
} ) ),
|
|
58
49
|
[ mediaCategories ]
|
|
59
50
|
);
|
|
51
|
+
|
|
52
|
+
if ( ! categories.length ) {
|
|
53
|
+
return <InserterNoResults />;
|
|
54
|
+
}
|
|
55
|
+
|
|
60
56
|
return (
|
|
61
57
|
<>
|
|
62
58
|
{ ! isMobile && (
|
|
63
59
|
<div className={ `${ baseCssClass }-container` }>
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
60
|
+
<CategoryTabs
|
|
61
|
+
categories={ categories }
|
|
62
|
+
selectedCategory={ selectedCategory }
|
|
63
|
+
onSelectCategory={ onSelectCategory }
|
|
64
|
+
>
|
|
65
|
+
{ children }
|
|
66
|
+
</CategoryTabs>
|
|
67
|
+
<MediaUploadCheck>
|
|
68
|
+
<MediaUpload
|
|
69
|
+
multiple={ false }
|
|
70
|
+
onSelect={ onSelectMedia }
|
|
71
|
+
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
72
|
+
render={ ( { open } ) => (
|
|
73
|
+
<Button
|
|
74
|
+
onClick={ ( event ) => {
|
|
75
|
+
// Safari doesn't emit a focus event on button elements when
|
|
76
|
+
// clicked and we need to manually focus the button here.
|
|
77
|
+
// The reason is that core's Media Library modal explicitly triggers a
|
|
78
|
+
// focus event and therefore a `blur` event is triggered on a different
|
|
79
|
+
// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`
|
|
80
|
+
// attribute making the Inserter dialog to close.
|
|
81
|
+
event.target.focus();
|
|
82
|
+
open();
|
|
83
|
+
} }
|
|
84
|
+
className="block-editor-inserter__media-library-button"
|
|
85
|
+
variant="secondary"
|
|
86
|
+
data-unstable-ignore-focus-outside-for-relatedtarget=".media-modal"
|
|
87
87
|
>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
icon={
|
|
94
|
-
isRTL()
|
|
95
|
-
? chevronLeft
|
|
96
|
-
: chevronRight
|
|
97
|
-
}
|
|
98
|
-
/>
|
|
99
|
-
</HStack>
|
|
100
|
-
</Item>
|
|
101
|
-
) ) }
|
|
102
|
-
<div role="listitem">
|
|
103
|
-
<MediaUploadCheck>
|
|
104
|
-
<MediaUpload
|
|
105
|
-
multiple={ false }
|
|
106
|
-
onSelect={ onSelectMedia }
|
|
107
|
-
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
108
|
-
render={ ( { open } ) => (
|
|
109
|
-
<Button
|
|
110
|
-
onClick={ ( event ) => {
|
|
111
|
-
// Safari doesn't emit a focus event on button elements when
|
|
112
|
-
// clicked and we need to manually focus the button here.
|
|
113
|
-
// The reason is that core's Media Library modal explicitly triggers a
|
|
114
|
-
// focus event and therefore a `blur` event is triggered on a different
|
|
115
|
-
// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`
|
|
116
|
-
// attribute making the Inserter dialog to close.
|
|
117
|
-
event.target.focus();
|
|
118
|
-
open();
|
|
119
|
-
} }
|
|
120
|
-
className="block-editor-inserter__media-library-button"
|
|
121
|
-
variant="secondary"
|
|
122
|
-
data-unstable-ignore-focus-outside-for-relatedtarget=".media-modal"
|
|
123
|
-
>
|
|
124
|
-
{ __( 'Open Media Library' ) }
|
|
125
|
-
</Button>
|
|
126
|
-
) }
|
|
127
|
-
/>
|
|
128
|
-
</MediaUploadCheck>
|
|
129
|
-
</div>
|
|
130
|
-
</ItemGroup>
|
|
131
|
-
</nav>
|
|
88
|
+
{ __( 'Open Media Library' ) }
|
|
89
|
+
</Button>
|
|
90
|
+
) }
|
|
91
|
+
/>
|
|
92
|
+
</MediaUploadCheck>
|
|
132
93
|
</div>
|
|
133
94
|
) }
|
|
134
95
|
{ isMobile && (
|
|
135
|
-
<MobileTabNavigation categories={
|
|
96
|
+
<MobileTabNavigation categories={ categories }>
|
|
136
97
|
{ ( category ) => (
|
|
137
98
|
<MediaCategoryPanel
|
|
138
99
|
onInsert={ onInsert }
|