@wordpress/block-editor 14.0.0 → 14.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +10 -24
- package/build/autocompleters/block.js +1 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +2 -2
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +8 -2
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-canvas/index.js +8 -1
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-compare/block-view.js +4 -1
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-draggable/index.js +4 -4
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build/components/block-edit/multiple-usage-warning.js +8 -2
- package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build/components/block-inspector/index.js +27 -9
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +6 -3
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block.js +5 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +7 -3
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +46 -0
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build/components/block-list/use-in-between-inserter.js +11 -4
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/toolbar.js +3 -3
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +4 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +4 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +1 -4
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +11 -14
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +12 -3
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-popover/index.js +2 -15
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +4 -1
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +22 -17
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +12 -11
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +6 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +8 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +10 -6
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -1
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +4 -5
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +3 -4
- package/build/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +14 -5
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +4 -1
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +4 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/index.js +1 -0
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +14 -3
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +4 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/content-lock/index.js +13 -0
- package/build/components/content-lock/index.js.map +1 -0
- package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
- package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -0
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/editor-styles/index.js +4 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +3 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +118 -50
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +8 -5
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js +1 -1
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +34 -37
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +4 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +3 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -7
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -6
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +13 -7
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +17 -6
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +11 -29
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +2 -2
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +20 -5
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/height-control/index.js +1 -0
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +8 -6
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +11 -7
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +8 -8
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +7 -25
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +8 -12
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +4 -1
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +3 -3
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +1 -4
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +8 -2
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +4 -1
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/menu.js +14 -13
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +8 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-list-item/index.js +4 -4
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/index.js +3 -7
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +4 -1
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +4 -1
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +8 -2
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +7 -4
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +3 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +19 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +4 -1
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-select-button.js +4 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +36 -10
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +8 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +12 -12
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +19 -19
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/index.js +38 -30
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +5 -5
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -1
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +13 -8
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +13 -8
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +13 -8
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +4 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +12 -3
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +4 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -0
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +12 -2
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +4 -1
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-event-redirect.js +66 -0
- package/build/components/writing-flow/use-event-redirect.js.map +1 -0
- package/build/components/writing-flow/use-input.js +31 -1
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +14 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +20 -6
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +4 -4
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-flow/utils.js +27 -0
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/components/writing-mode-control/index.js +13 -8
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/background.js +19 -23
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +64 -103
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/content-lock-ui.js +8 -26
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/duotone.js +0 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout.js +4 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +3 -3
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/style.js +1 -5
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +19 -20
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-zoom-out.js +7 -7
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/layouts/constrained.js +42 -41
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +6 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +3 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/layouts/utils.js +1 -7
- package/build/layouts/utils.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +2 -7
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +1 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/private-selectors.js +39 -11
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +2 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +19 -43
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +48 -0
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +117 -0
- package/build/utils/block-bindings.js.map +1 -0
- package/build/utils/dom.js +101 -0
- package/build/utils/dom.js.map +1 -1
- package/build/utils/get-font-styles-and-weights.js +4 -4
- package/build/utils/get-font-styles-and-weights.js.map +1 -1
- package/build/utils/transform-styles/index.js +120 -16
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/autocompleters/block.js +1 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +8 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-canvas/index.js +9 -1
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +4 -1
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-draggable/index.js +4 -4
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build-module/components/block-edit/multiple-usage-warning.js +8 -2
- package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build-module/components/block-inspector/index.js +27 -9
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +6 -3
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +7 -3
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +40 -0
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build-module/components/block-list/use-in-between-inserter.js +11 -4
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +3 -3
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +4 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +1 -4
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +11 -14
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +12 -3
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -15
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +4 -1
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +4 -0
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +22 -17
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +12 -11
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +6 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +8 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +14 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -1
- 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 +4 -5
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +3 -4
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +15 -6
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +4 -1
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +4 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +1 -0
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +15 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +4 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/content-lock/index.js +2 -0
- package/build-module/components/content-lock/index.js.map +1 -0
- package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
- package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -0
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +4 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +3 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +121 -53
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +7 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js +2 -2
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +36 -39
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +4 -1
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -6
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +13 -7
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +17 -6
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +5 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +11 -28
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +3 -3
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +20 -5
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/height-control/index.js +1 -0
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +8 -6
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +12 -8
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +7 -6
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +6 -23
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +8 -12
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +3 -3
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +1 -4
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +8 -2
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +4 -1
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -13
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +9 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +4 -4
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +3 -7
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +4 -1
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +4 -1
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +8 -2
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +7 -4
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +3 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +19 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +4 -1
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +4 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +36 -10
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +8 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +12 -12
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +19 -19
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/index.js +39 -31
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +5 -5
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -1
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -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 +13 -8
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +13 -8
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +13 -8
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +4 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +12 -3
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +2 -0
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +12 -2
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-event-redirect.js +60 -0
- package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +31 -1
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +14 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +16 -2
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +4 -4
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-flow/utils.js +26 -0
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +13 -8
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/background.js +19 -23
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +66 -105
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +10 -30
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/duotone.js +0 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout.js +4 -1
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +3 -3
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/style.js +1 -5
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +19 -20
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +7 -7
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/layouts/constrained.js +44 -43
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +6 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +3 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/layouts/utils.js +1 -7
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +2 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/private-selectors.js +36 -12
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +2 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +22 -46
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +46 -0
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +110 -0
- package/build-module/utils/block-bindings.js.map +1 -0
- package/build-module/utils/dom.js +99 -0
- package/build-module/utils/dom.js.map +1 -1
- package/build-module/utils/get-font-styles-and-weights.js +4 -4
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +120 -16
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +9 -25
- package/build-style/content.css +9 -25
- package/build-style/default-editor-styles-rtl.css +2 -2
- package/build-style/default-editor-styles.css +2 -2
- package/build-style/style-rtl.css +53 -76
- package/build-style/style.css +53 -76
- package/build-types/utils/dom.d.ts +25 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +34 -32
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-alignment-matrix-control/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +4 -0
- package/src/components/block-breadcrumb/style.scss +1 -1
- package/src/components/block-canvas/index.js +9 -1
- package/src/components/block-compare/block-view.js +7 -1
- package/src/components/block-draggable/content.scss +1 -1
- package/src/components/block-draggable/index.js +4 -4
- package/src/components/block-draggable/style.scss +1 -1
- package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/src/components/block-edit/multiple-usage-warning.js +4 -0
- package/src/components/block-inspector/index.js +22 -6
- package/src/components/block-list/block-invalid-warning.js +4 -2
- package/src/components/block-list/block.js +6 -2
- package/src/components/block-list/content.scss +7 -16
- package/src/components/block-list/use-block-props/index.js +5 -2
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +44 -0
- package/src/components/block-list/use-in-between-inserter.js +17 -5
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-lock/toolbar.js +3 -3
- package/src/components/block-mover/button.js +2 -0
- package/src/components/block-mover/index.js +2 -0
- package/src/components/block-mover/style.scss +1 -1
- package/src/components/block-navigation/dropdown.js +2 -0
- package/src/components/block-pattern-setup/index.js +3 -7
- package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
- package/src/components/block-pattern-setup/style.scss +2 -2
- package/src/components/block-patterns-list/index.js +15 -13
- package/src/components/block-patterns-list/style.scss +2 -2
- package/src/components/block-patterns-paging/index.js +6 -0
- package/src/components/block-popover/index.js +7 -28
- package/src/components/block-popover/style.scss +1 -1
- package/src/components/block-quick-navigation/index.js +2 -0
- package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
- package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
- package/src/components/block-settings-menu-controls/index.js +7 -1
- package/src/components/block-switcher/index.js +26 -20
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -7
- package/src/components/block-switcher/style.scss +5 -6
- package/src/components/block-toolbar/index.js +17 -8
- package/src/components/block-toolbar/shuffle.js +9 -7
- package/src/components/block-tools/block-selection-button.js +4 -0
- package/src/components/block-tools/block-toolbar-popover.js +10 -6
- package/src/components/block-tools/insertion-point.js +11 -0
- package/src/components/block-tools/style.scss +4 -5
- package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/src/components/block-tools/use-show-block-tools.js +4 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +5 -2
- package/src/components/block-tools/zoom-out-popover.js +3 -7
- package/src/components/block-tools/zoom-out-toolbar.js +20 -6
- package/src/components/block-variation-picker/README.md +2 -2
- package/src/components/block-variation-picker/index.js +6 -1
- package/src/components/block-variation-transforms/index.js +2 -0
- package/src/components/block-variation-transforms/style.scss +2 -2
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/style.scss +0 -10
- package/src/components/button-block-appender/content.scss +0 -1
- package/src/components/button-block-appender/index.js +14 -3
- package/src/components/color-palette/test/control.js +15 -2
- package/src/components/colors-gradients/dropdown.js +5 -1
- package/src/components/colors-gradients/style.scss +4 -4
- package/src/components/content-lock/index.js +1 -0
- package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/date-format-picker/index.js +2 -0
- package/src/components/default-block-appender/content.scss +0 -1
- package/src/components/editor-styles/index.js +4 -3
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-family/README.md +11 -2
- package/src/components/font-family/index.js +3 -0
- package/src/components/global-styles/background-panel.js +135 -64
- package/src/components/global-styles/color-panel.js +8 -4
- package/src/components/global-styles/color-panel.native.js +2 -2
- package/src/components/global-styles/dimensions-panel.js +40 -40
- package/src/components/global-styles/filters-panel.js +5 -1
- package/src/components/global-styles/get-global-styles-changes.js +4 -1
- package/src/components/global-styles/hooks.js +0 -5
- package/src/components/global-styles/index.js +0 -1
- package/src/components/global-styles/shadow-panel-components.js +12 -8
- package/src/components/global-styles/style.scss +16 -6
- package/src/components/global-styles/test/typography-utils.js +96 -5
- package/src/components/global-styles/test/use-global-styles-output.js +20 -4
- package/src/components/global-styles/test/utils.js +10 -0
- package/src/components/global-styles/typography-utils.js +22 -6
- package/src/components/global-styles/use-global-styles-output.js +5 -6
- package/src/components/global-styles/utils.js +11 -35
- package/src/components/grid/grid-item-movers.js +3 -3
- package/src/components/grid/grid-visualizer.js +22 -7
- package/src/components/grid/style.scss +1 -1
- package/src/components/height-control/index.js +1 -0
- package/src/components/iframe/index.js +8 -6
- package/src/components/image-editor/zoom-dropdown.js +17 -9
- package/src/components/inner-blocks/button-block-appender.js +5 -7
- package/src/components/inner-blocks/default-block-appender.js +4 -23
- package/src/components/inner-blocks/index.js +11 -10
- package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
- package/src/components/inserter/block-patterns-tab/index.js +2 -0
- package/src/components/inserter/media-tab/hooks.js +3 -3
- package/src/components/inserter/media-tab/media-list.js +1 -4
- package/src/components/inserter/media-tab/media-preview.js +12 -2
- package/src/components/inserter/media-tab/media-tab.js +2 -0
- package/src/components/inserter/menu.js +13 -22
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +7 -9
- package/src/components/inserter-list-item/index.js +4 -4
- package/src/components/inserter-list-item/style.scss +2 -3
- package/src/components/inserter-listbox/index.js +2 -8
- package/src/components/inserter-listbox/item.js +9 -1
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/index.js +2 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
- package/src/components/inspector-popover-header/index.js +4 -0
- package/src/components/letter-spacing-control/README.md +8 -1
- package/src/components/letter-spacing-control/index.js +7 -4
- package/src/components/line-height-control/README.md +7 -0
- package/src/components/line-height-control/index.js +3 -0
- package/src/components/link-control/index.js +17 -8
- package/src/components/link-control/settings-drawer.js +2 -0
- package/src/components/link-control/style.scss +2 -4
- package/src/components/list-view/block-select-button.js +2 -0
- package/src/components/list-view/style.scss +14 -16
- package/src/components/media-placeholder/index.js +26 -7
- package/src/components/media-replace-flow/index.js +12 -1
- package/src/components/media-upload/README.md +2 -0
- package/src/components/media-upload/index.native.js +2 -0
- package/src/components/multi-selection-inspector/index.js +8 -9
- package/src/components/provider/use-block-sync.js +20 -20
- package/src/components/responsive-block-control/README.md +3 -26
- package/src/components/responsive-block-control/test/index.js +1 -0
- package/src/components/rich-text/content.scss +1 -1
- package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
- package/src/components/rich-text/index.js +54 -41
- package/src/components/rich-text/style.scss +1 -1
- package/src/components/rich-text/use-mark-persistent.js +5 -5
- package/src/components/skip-to-selected-block/index.js +2 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
- package/src/components/spacing-sizes-control/style.scss +17 -16
- package/src/components/text-alignment-control/index.js +20 -8
- package/src/components/text-decoration-control/index.js +20 -8
- package/src/components/text-decoration-control/stories/index.story.js +0 -4
- package/src/components/text-transform-control/index.js +20 -8
- package/src/components/text-transform-control/stories/index.story.js +0 -4
- package/src/components/tool-selector/index.js +2 -0
- package/src/components/url-input/button.js +6 -0
- package/src/components/url-input/index.js +2 -0
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +2 -0
- package/src/components/url-popover/stories/index.story.js +7 -1
- package/src/components/use-block-drop-zone/index.js +21 -3
- package/src/components/warning/content.scss +3 -10
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-arrow-nav.js +9 -2
- package/src/components/writing-flow/use-event-redirect.js +72 -0
- package/src/components/writing-flow/use-input.js +36 -1
- package/src/components/writing-flow/use-select-all.js +18 -1
- package/src/components/writing-flow/use-selection-observer.js +23 -3
- package/src/components/writing-flow/use-tab-nav.js +4 -4
- package/src/components/writing-flow/utils.js +30 -0
- package/src/components/writing-mode-control/index.js +20 -8
- package/src/hooks/background.js +21 -27
- package/src/hooks/block-bindings.js +64 -122
- package/src/hooks/block-bindings.scss +2 -10
- package/src/hooks/content-lock-ui.js +11 -36
- package/src/hooks/duotone.js +0 -4
- package/src/hooks/layout.js +2 -0
- package/src/hooks/layout.scss +3 -11
- package/src/hooks/spacing-visualizer.js +3 -3
- package/src/hooks/style.js +1 -4
- package/src/hooks/test/background.js +60 -0
- package/src/hooks/use-bindings-attributes.js +23 -24
- package/src/hooks/use-zoom-out.js +7 -7
- package/src/layouts/constrained.js +51 -47
- package/src/layouts/flex.js +4 -0
- package/src/layouts/grid.js +3 -0
- package/src/layouts/test/grid.js +2 -2
- package/src/layouts/test/utils.js +6 -8
- package/src/layouts/utils.js +1 -9
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +4 -6
- package/src/store/private-actions.js +1 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +44 -7
- package/src/store/reducer.js +2 -0
- package/src/store/selectors.js +32 -51
- package/src/store/test/private-selectors.js +89 -0
- package/src/store/utils.js +50 -0
- package/src/style.scss +0 -1
- package/src/utils/block-bindings.js +97 -0
- package/src/utils/dom.js +117 -0
- package/src/utils/get-font-styles-and-weights.js +12 -4
- package/src/utils/test/get-font-styles-and-weights.js +148 -0
- package/src/utils/test/transform-styles.js +284 -26
- package/src/utils/transform-styles/index.js +132 -21
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/global-styles/theme-file-uri-utils.js +0 -21
- package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build/components/inner-blocks/with-client-id.js +0 -28
- package/build/components/inner-blocks/with-client-id.js.map +0 -1
- package/build/components/segmented-text-control/index.js +0 -63
- package/build/components/segmented-text-control/index.js.map +0 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build-module/components/inner-blocks/with-client-id.js +0 -21
- package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
- package/build-module/components/segmented-text-control/index.js +0 -58
- package/build-module/components/segmented-text-control/index.js.map +0 -1
- package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
- package/src/components/global-styles/theme-file-uri-utils.js +0 -18
- package/src/components/inner-blocks/with-client-id.js +0 -19
- package/src/components/segmented-text-control/index.js +0 -63
- package/src/components/segmented-text-control/style.scss +0 -15
- package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","useRef","useSelect","store","blockEditorStore","unlock","useMediaResults","category","query","mediaList","setMediaList","isLoading","setIsLoading","
|
|
1
|
+
{"version":3,"names":["useEffect","useState","useRef","useSelect","store","blockEditorStore","unlock","useMediaResults","category","query","mediaList","setMediaList","isLoading","setIsLoading","lastRequestRef","key","JSON","stringify","name","current","_media","fetch","Object","values","useMediaCategories","rootClientId","categories","setCategories","inserterMediaCategories","select","getInserterMediaCategories","canInsertImage","canInsertVideo","canInsertAudio","canInsertBlockType","_categories","categoriesHaveMedia","Map","Promise","all","map","isExternalResource","results","per_page","e","length","canInsertMediaType","image","video","audio","forEach","mediaType","get","push"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\n/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */\n\n/**\n * Fetches media items based on the provided category.\n * Each media category is responsible for providing a `fetch` function.\n *\n * @param {Object} category The media category to fetch results for.\n * @param {InserterMediaRequest} query The query args to use for the request.\n * @return {InserterMediaItem[]} The media results.\n */\nexport function useMediaResults( category, query = {} ) {\n\tconst [ mediaList, setMediaList ] = useState();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\t// We need to keep track of the last request made because\n\t// multiple request can be fired without knowing the order\n\t// of resolution, and we need to ensure we are showing\n\t// the results of the last request.\n\t// In the future we could use AbortController to cancel previous\n\t// requests, but we don't for now as it involves adding support\n\t// for this to `core-data` package.\n\tconst lastRequestRef = useRef();\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst key = JSON.stringify( {\n\t\t\t\tcategory: category.name,\n\t\t\t\t...query,\n\t\t\t} );\n\t\t\tlastRequestRef.current = key;\n\t\t\tsetIsLoading( true );\n\t\t\tsetMediaList( [] ); // Empty the previous results.\n\t\t\tconst _media = await category.fetch?.( query );\n\t\t\tif ( key === lastRequestRef.current ) {\n\t\t\t\tsetMediaList( _media );\n\t\t\t\tsetIsLoading( false );\n\t\t\t}\n\t\t} )();\n\t}, [ category.name, ...Object.values( query ) ] );\n\treturn { mediaList, isLoading };\n}\n\nexport function useMediaCategories( rootClientId ) {\n\tconst [ categories, setCategories ] = useState( [] );\n\n\tconst inserterMediaCategories = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getInserterMediaCategories(),\n\t\t[]\n\t);\n\tconst { canInsertImage, canInsertVideo, canInsertAudio } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanInsertImage: canInsertBlockType(\n\t\t\t\t\t'core/image',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanInsertVideo: canInsertBlockType(\n\t\t\t\t\t'core/video',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanInsertAudio: canInsertBlockType(\n\t\t\t\t\t'core/audio',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tconst _categories = [];\n\t\t\t// If `inserterMediaCategories` is not defined in\n\t\t\t// block editor settings, do not show any media categories.\n\t\t\tif ( ! inserterMediaCategories ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Loop through categories to check if they have at least one media item.\n\t\t\tconst categoriesHaveMedia = new Map(\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tinserterMediaCategories.map( async ( category ) => {\n\t\t\t\t\t\t// Some sources are external and we don't need to make a request.\n\t\t\t\t\t\tif ( category.isExternalResource ) {\n\t\t\t\t\t\t\treturn [ category.name, true ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet results = [];\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresults = await category.fetch( {\n\t\t\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t// If the request fails, we shallow the error and just don't show\n\t\t\t\t\t\t\t// the category, in order to not break the media tab.\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ category.name, !! results.length ];\n\t\t\t\t\t} )\n\t\t\t\t)\n\t\t\t);\n\t\t\t// We need to filter out categories that don't have any media items or\n\t\t\t// whose corresponding block type is not allowed to be inserted, based\n\t\t\t// on the category's `mediaType`.\n\t\t\tconst canInsertMediaType = {\n\t\t\t\timage: canInsertImage,\n\t\t\t\tvideo: canInsertVideo,\n\t\t\t\taudio: canInsertAudio,\n\t\t\t};\n\t\t\tinserterMediaCategories.forEach( ( category ) => {\n\t\t\t\tif (\n\t\t\t\t\tcanInsertMediaType[ category.mediaType ] &&\n\t\t\t\t\tcategoriesHaveMedia.get( category.name )\n\t\t\t\t) {\n\t\t\t\t\t_categories.push( category );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( !! _categories.length ) {\n\t\t\t\tsetCategories( _categories );\n\t\t\t}\n\t\t} )();\n\t}, [\n\t\tcanInsertImage,\n\t\tcanInsertVideo,\n\t\tcanInsertAudio,\n\t\tinserterMediaCategories,\n\t] );\n\treturn categories;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,8 +11,7 @@ import { MediaPreview } from './media-preview';
|
|
|
11
11
|
import { unlock } from '../../../lock-unlock';
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
const {
|
|
14
|
-
CompositeV2: Composite
|
|
15
|
-
useCompositeStoreV2: useCompositeStore
|
|
14
|
+
CompositeV2: Composite
|
|
16
15
|
} = unlock(componentsPrivateApis);
|
|
17
16
|
function MediaList({
|
|
18
17
|
mediaList,
|
|
@@ -20,9 +19,7 @@ function MediaList({
|
|
|
20
19
|
onClick,
|
|
21
20
|
label = __('Media List')
|
|
22
21
|
}) {
|
|
23
|
-
const compositeStore = useCompositeStore();
|
|
24
22
|
return /*#__PURE__*/_jsx(Composite, {
|
|
25
|
-
store: compositeStore,
|
|
26
23
|
role: "listbox",
|
|
27
24
|
className: "block-editor-inserter__media-list",
|
|
28
25
|
"aria-label": label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["privateApis","componentsPrivateApis","__","MediaPreview","unlock","jsx","_jsx","CompositeV2","Composite","
|
|
1
|
+
{"version":3,"names":["privateApis","componentsPrivateApis","__","MediaPreview","unlock","jsx","_jsx","CompositeV2","Composite","MediaList","mediaList","category","onClick","label","role","className","children","map","media","index","id","sourceId"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { MediaPreview } from './media-preview';\nimport { unlock } from '../../../lock-unlock';\n\nconst { CompositeV2: Composite } = unlock( componentsPrivateApis );\n\nfunction MediaList( {\n\tmediaList,\n\tcategory,\n\tonClick,\n\tlabel = __( 'Media List' ),\n} ) {\n\treturn (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-inserter__media-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ mediaList.map( ( media, index ) => (\n\t\t\t\t<MediaPreview\n\t\t\t\t\tkey={ media.id || media.sourceId || index }\n\t\t\t\t\tmedia={ media }\n\t\t\t\t\tcategory={ category }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nexport default MediaList;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;AAC5E,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE9C,MAAM;EAAEC,WAAW,EAAEC;AAAU,CAAC,GAAGJ,MAAM,CAAEH,qBAAsB,CAAC;AAElE,SAASQ,SAASA,CAAE;EACnBC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,KAAK,GAAGX,EAAE,CAAE,YAAa;AAC1B,CAAC,EAAG;EACH,oBACCI,IAAA,CAACE,SAAS;IACTM,IAAI,EAAC,SAAS;IACdC,SAAS,EAAC,mCAAmC;IAC7C,cAAaF,KAAO;IAAAG,QAAA,EAElBN,SAAS,CAACO,GAAG,CAAE,CAAEC,KAAK,EAAEC,KAAK,kBAC9Bb,IAAA,CAACH,YAAY;MAEZe,KAAK,EAAGA,KAAO;MACfP,QAAQ,EAAGA,QAAU;MACrBC,OAAO,EAAGA;IAAS,GAHbM,KAAK,CAACE,EAAE,IAAIF,KAAK,CAACG,QAAQ,IAAIF,KAIpC,CACA;EAAC,CACO,CAAC;AAEd;AAEA,eAAeV,SAAS","ignoreList":[]}
|
|
@@ -77,13 +77,19 @@ function InsertExternalImageModal({
|
|
|
77
77
|
justify: "flex-end",
|
|
78
78
|
expanded: false,
|
|
79
79
|
children: [/*#__PURE__*/_jsx(FlexItem, {
|
|
80
|
-
children: /*#__PURE__*/_jsx(Button
|
|
80
|
+
children: /*#__PURE__*/_jsx(Button
|
|
81
|
+
// TODO: Switch to `true` (40px size) if possible
|
|
82
|
+
, {
|
|
83
|
+
__next40pxDefaultSize: false,
|
|
81
84
|
variant: "tertiary",
|
|
82
85
|
onClick: onClose,
|
|
83
86
|
children: __('Cancel')
|
|
84
87
|
})
|
|
85
88
|
}), /*#__PURE__*/_jsx(FlexItem, {
|
|
86
|
-
children: /*#__PURE__*/_jsx(Button
|
|
89
|
+
children: /*#__PURE__*/_jsx(Button
|
|
90
|
+
// TODO: Switch to `true` (40px size) if possible
|
|
91
|
+
, {
|
|
92
|
+
__next40pxDefaultSize: false,
|
|
87
93
|
variant: "primary",
|
|
88
94
|
onClick: onSubmit,
|
|
89
95
|
children: __('Insert')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","Tooltip","DropdownMenu","MenuGroup","MenuItem","Spinner","Modal","Flex","FlexItem","Button","privateApis","componentsPrivateApis","__experimentalVStack","VStack","__","sprintf","useMemo","useCallback","useState","cloneBlock","moreVertical","external","useSelect","useDispatch","store","noticesStore","isBlobURL","InserterDraggableBlocks","getBlockAndPreviewFromMedia","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","CompositeItemV2","CompositeItem","MediaPreviewOptions","category","media","getReportUrl","reportUrl","label","popoverProps","icon","children","onClick","window","open","focus","mediaType","InsertExternalImageModal","onClose","onSubmit","title","onRequestClose","spacing","justify","expanded","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","createErrorNotice","createSuccessNotice","getSettings","onMediaInsert","previewBlock","settings","clonedBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","filesList","additionalData","onFileChange","img","type","allowedTypes","onError","message","catch","rendered","truncatedTitle","length","omission","slice","onMouseEnter","onMouseLeave","isEnabled","blocks","draggable","onDragStart","onDragEnd","text","render","role"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MAXIMUM_TITLE_LENGTH = 25;\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nconst { CompositeItemV2: CompositeItem } = unlock( componentsPrivateApis );\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"primary\" onClick={ onSubmit }>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tlet truncatedTitle;\n\tif ( title.length > MAXIMUM_TITLE_LENGTH ) {\n\t\tconst omission = '...';\n\t\ttruncatedTitle =\n\t\t\ttitle.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;\n\t}\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ truncatedTitle || title }>\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","Tooltip","DropdownMenu","MenuGroup","MenuItem","Spinner","Modal","Flex","FlexItem","Button","privateApis","componentsPrivateApis","__experimentalVStack","VStack","__","sprintf","useMemo","useCallback","useState","cloneBlock","moreVertical","external","useSelect","useDispatch","store","noticesStore","isBlobURL","InserterDraggableBlocks","getBlockAndPreviewFromMedia","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","CompositeItemV2","CompositeItem","MediaPreviewOptions","category","media","getReportUrl","reportUrl","label","popoverProps","icon","children","onClick","window","open","focus","mediaType","InsertExternalImageModal","onClose","onSubmit","title","onRequestClose","spacing","justify","expanded","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","createErrorNotice","createSuccessNotice","getSettings","onMediaInsert","previewBlock","settings","clonedBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","filesList","additionalData","onFileChange","img","type","allowedTypes","onError","message","catch","rendered","truncatedTitle","length","omission","slice","onMouseEnter","onMouseLeave","isEnabled","blocks","draggable","onDragStart","onDragEnd","text","render","role"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MAXIMUM_TITLE_LENGTH = 25;\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nconst { CompositeItemV2: CompositeItem } = unlock( componentsPrivateApis );\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tlet truncatedTitle;\n\tif ( title.length > MAXIMUM_TITLE_LENGTH ) {\n\t\tconst omission = '...';\n\t\ttruncatedTitle =\n\t\t\ttitle.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;\n\t}\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ truncatedTitle || title }>\n\t\t\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</CompositeItem>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,7 +60,10 @@ function MediaTab({
|
|
|
60
60
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
61
61
|
render: ({
|
|
62
62
|
open
|
|
63
|
-
}) => /*#__PURE__*/_jsx(Button
|
|
63
|
+
}) => /*#__PURE__*/_jsx(Button
|
|
64
|
+
// TODO: Switch to `true` (40px size) if possible
|
|
65
|
+
, {
|
|
66
|
+
__next40pxDefaultSize: false,
|
|
64
67
|
onClick: event => {
|
|
65
68
|
// Safari doesn't emit a focus event on button elements when
|
|
66
69
|
// clicked and we need to manually focus the button here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useViewportMatch","Button","useCallback","useMemo","MediaCategoryPanel","MediaUploadCheck","MediaUpload","useMediaCategories","getBlockAndPreviewFromMedia","MobileTabNavigation","CategoryTabs","InserterNoResults","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","children","mediaCategories","isMobile","baseCssClass","onSelectMedia","media","url","block","type","categories","map","mediaCategory","label","labels","name","length","className","multiple","onSelect","allowedTypes","render","open","onClick","event","target","focus","variant","category"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Button } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { MediaCategoryPanel } from './media-panel';\nimport MediaUploadCheck from '../../media-upload/check';\nimport MediaUpload from '../../media-upload';\nimport { useMediaCategories } from './hooks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport MobileTabNavigation from '../mobile-tab-navigation';\nimport CategoryTabs from '../category-tabs';\nimport InserterNoResults from '../no-results';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\n\tchildren,\n} ) {\n\tconst mediaCategories = useMediaCategories( rootClientId );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst baseCssClass = 'block-editor-inserter__media-tabs';\n\tconst onSelectMedia = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media?.url ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [ block ] = getBlockAndPreviewFromMedia( media, media.type );\n\t\t\tonInsert( block );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\tconst categories = useMemo(\n\t\t() =>\n\t\t\tmediaCategories.map( ( mediaCategory ) => ( {\n\t\t\t\t...mediaCategory,\n\t\t\t\tlabel: mediaCategory.labels.name,\n\t\t\t} ) ),\n\t\t[ mediaCategories ]\n\t);\n\n\tif ( ! categories.length ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<CategoryTabs\n\t\t\t\t\t\tcategories={ categories }\n\t\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\t\tonSelectCategory={ onSelectCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</CategoryTabs>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t// Safari doesn't emit a focus event on button elements when\n\t\t\t\t\t\t\t\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\t\t\t\t\t\t\t// The reason is that core's Media Library modal explicitly triggers a\n\t\t\t\t\t\t\t\t\t\t// focus event and therefore a `blur` event is triggered on a different\n\t\t\t\t\t\t\t\t\t\t// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`\n\t\t\t\t\t\t\t\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tdata-unstable-ignore-focus-outside-for-relatedtarget=\".media-modal\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default MediaTab;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,WAAW,EAAEC,OAAO,QAAQ,oBAAoB;;AAEzD;AACA;AACA;AACA,SAASC,kBAAkB,QAAQ,eAAe;AAClD,OAAOC,gBAAgB,MAAM,0BAA0B;AACvD,OAAOC,WAAW,MAAM,oBAAoB;AAC5C,SAASC,kBAAkB,QAAQ,SAAS;AAC5C,SAASC,2BAA2B,QAAQ,SAAS;AACrD,OAAOC,mBAAmB,MAAM,0BAA0B;AAC1D,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,iBAAiB,MAAM,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAE9C,MAAMC,mBAAmB,GAAG,CAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAE;AAEzD,SAASC,QAAQA,CAAE;EAClBC,YAAY;EACZC,gBAAgB;EAChBC,gBAAgB;EAChBC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAMC,eAAe,GAAGlB,kBAAkB,CAAEa,YAAa,CAAC;EAC1D,MAAMM,QAAQ,GAAG1B,gBAAgB,CAAE,QAAQ,EAAE,GAAI,CAAC;EAClD,MAAM2B,YAAY,GAAG,mCAAmC;EACxD,MAAMC,aAAa,GAAG1B,WAAW,CAC9B2B,KAAK,IAAM;IACZ,IAAK,CAAEA,KAAK,EAAEC,GAAG,EAAG;MACnB;IACD;IACA,MAAM,CAAEC,KAAK,CAAE,GAAGvB,2BAA2B,CAAEqB,KAAK,EAAEA,KAAK,CAACG,IAAK,CAAC;IAClET,QAAQ,CAAEQ,KAAM,CAAC;EAClB,CAAC,EACD,CAAER,QAAQ,CACX,CAAC;EACD,MAAMU,UAAU,GAAG9B,OAAO,CACzB,MACCsB,eAAe,CAACS,GAAG,CAAIC,aAAa,KAAQ;IAC3C,GAAGA,aAAa;IAChBC,KAAK,EAAED,aAAa,CAACE,MAAM,CAACC;EAC7B,CAAC,CAAG,CAAC,EACN,CAAEb,eAAe,CAClB,CAAC;EAED,IAAK,CAAEQ,UAAU,CAACM,MAAM,EAAG;IAC1B,oBAAO1B,IAAA,CAACF,iBAAiB,IAAE,CAAC;EAC7B;EAEA,oBACCI,KAAA,CAAAE,SAAA;IAAAO,QAAA,GACG,CAAEE,QAAQ,iBACXX,KAAA;MAAKyB,SAAS,EAAI,GAAGb,YAAc,YAAa;MAAAH,QAAA,gBAC/CX,IAAA,CAACH,YAAY;QACZuB,UAAU,EAAGA,UAAY;QACzBZ,gBAAgB,EAAGA,gBAAkB;QACrCC,gBAAgB,EAAGA,gBAAkB;QAAAE,QAAA,EAEnCA;MAAQ,CACG,CAAC,eACfX,IAAA,CAACR,gBAAgB;QAAAmB,QAAA,eAChBX,IAAA,CAACP,WAAW;UACXmC,QAAQ,EAAG,KAAO;UAClBC,QAAQ,EAAGd,aAAe;UAC1Be,YAAY,EAAGzB,mBAAqB;UACpC0B,MAAM,EAAGA,CAAE;YAAEC;UAAK,CAAC,kBAClBhC,IAAA,CAACZ,
|
|
1
|
+
{"version":3,"names":["__","useViewportMatch","Button","useCallback","useMemo","MediaCategoryPanel","MediaUploadCheck","MediaUpload","useMediaCategories","getBlockAndPreviewFromMedia","MobileTabNavigation","CategoryTabs","InserterNoResults","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MediaTab","rootClientId","selectedCategory","onSelectCategory","onInsert","children","mediaCategories","isMobile","baseCssClass","onSelectMedia","media","url","block","type","categories","map","mediaCategory","label","labels","name","length","className","multiple","onSelect","allowedTypes","render","open","__next40pxDefaultSize","onClick","event","target","focus","variant","category"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-tab.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { Button } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { MediaCategoryPanel } from './media-panel';\nimport MediaUploadCheck from '../../media-upload/check';\nimport MediaUpload from '../../media-upload';\nimport { useMediaCategories } from './hooks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport MobileTabNavigation from '../mobile-tab-navigation';\nimport CategoryTabs from '../category-tabs';\nimport InserterNoResults from '../no-results';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video', 'audio' ];\n\nfunction MediaTab( {\n\trootClientId,\n\tselectedCategory,\n\tonSelectCategory,\n\tonInsert,\n\tchildren,\n} ) {\n\tconst mediaCategories = useMediaCategories( rootClientId );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tconst baseCssClass = 'block-editor-inserter__media-tabs';\n\tconst onSelectMedia = useCallback(\n\t\t( media ) => {\n\t\t\tif ( ! media?.url ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [ block ] = getBlockAndPreviewFromMedia( media, media.type );\n\t\t\tonInsert( block );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\tconst categories = useMemo(\n\t\t() =>\n\t\t\tmediaCategories.map( ( mediaCategory ) => ( {\n\t\t\t\t...mediaCategory,\n\t\t\t\tlabel: mediaCategory.labels.name,\n\t\t\t} ) ),\n\t\t[ mediaCategories ]\n\t);\n\n\tif ( ! categories.length ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isMobile && (\n\t\t\t\t<div className={ `${ baseCssClass }-container` }>\n\t\t\t\t\t<CategoryTabs\n\t\t\t\t\t\tcategories={ categories }\n\t\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\t\tonSelectCategory={ onSelectCategory }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</CategoryTabs>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tmultiple={ false }\n\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t// Safari doesn't emit a focus event on button elements when\n\t\t\t\t\t\t\t\t\t\t// clicked and we need to manually focus the button here.\n\t\t\t\t\t\t\t\t\t\t// The reason is that core's Media Library modal explicitly triggers a\n\t\t\t\t\t\t\t\t\t\t// focus event and therefore a `blur` event is triggered on a different\n\t\t\t\t\t\t\t\t\t\t// element, which doesn't contain the `data-unstable-ignore-focus-outside-for-relatedtarget`\n\t\t\t\t\t\t\t\t\t\t// attribute making the Inserter dialog to close.\n\t\t\t\t\t\t\t\t\t\tevent.target.focus();\n\t\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-library-button\"\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tdata-unstable-ignore-focus-outside-for-relatedtarget=\".media-modal\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isMobile && (\n\t\t\t\t<MobileTabNavigation categories={ categories }>\n\t\t\t\t\t{ ( category ) => (\n\t\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</MobileTabNavigation>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default MediaTab;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,7 +25,6 @@ import InserterSearchResults from './search-results';
|
|
|
25
25
|
import useInsertionPoint from './hooks/use-insertion-point';
|
|
26
26
|
import { store as blockEditorStore } from '../../store';
|
|
27
27
|
import TabbedSidebar from '../tabbed-sidebar';
|
|
28
|
-
import { useZoomOut } from '../../hooks/use-zoom-out';
|
|
29
28
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
30
29
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
31
30
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -51,7 +50,15 @@ function InserterMenu({
|
|
|
51
50
|
const [selectedPatternCategory, setSelectedPatternCategory] = useState(__experimentalInitialCategory);
|
|
52
51
|
const [patternFilter, setPatternFilter] = useState('all');
|
|
53
52
|
const [selectedMediaCategory, setSelectedMediaCategory] = useState(null);
|
|
54
|
-
|
|
53
|
+
function getInitialTab() {
|
|
54
|
+
if (__experimentalInitialTab) {
|
|
55
|
+
return __experimentalInitialTab;
|
|
56
|
+
}
|
|
57
|
+
if (isZoomOutMode) {
|
|
58
|
+
return 'patterns';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const [selectedTab, setSelectedTab] = useState(getInitialTab());
|
|
55
62
|
const [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint] = useInsertionPoint({
|
|
56
63
|
rootClientId,
|
|
57
64
|
clientId,
|
|
@@ -66,13 +73,14 @@ function InserterMenu({
|
|
|
66
73
|
|
|
67
74
|
// Check for focus loss due to filtering blocks by selected block type
|
|
68
75
|
window.requestAnimationFrame(() => {
|
|
69
|
-
if (!shouldFocusBlock && !blockTypesTabRef?.
|
|
76
|
+
if (!shouldFocusBlock && !blockTypesTabRef.current?.contains(ref.current.ownerDocument.activeElement)) {
|
|
70
77
|
// There has been a focus loss, so focus the first button in the block types tab
|
|
71
|
-
blockTypesTabRef?.
|
|
78
|
+
blockTypesTabRef.current?.querySelector('button').focus();
|
|
72
79
|
}
|
|
73
80
|
});
|
|
74
81
|
}, [onInsertBlocks, onSelect, shouldFocusBlock]);
|
|
75
82
|
const onInsertPattern = useCallback((blocks, patternName) => {
|
|
83
|
+
onToggleInsertionPoint(false);
|
|
76
84
|
onInsertBlocks(blocks, {
|
|
77
85
|
patternName
|
|
78
86
|
});
|
|
@@ -82,9 +90,6 @@ function InserterMenu({
|
|
|
82
90
|
onToggleInsertionPoint(item);
|
|
83
91
|
setHoveredItem(item);
|
|
84
92
|
}, [onToggleInsertionPoint, setHoveredItem]);
|
|
85
|
-
const onHoverPattern = useCallback(item => {
|
|
86
|
-
onToggleInsertionPoint(!!item);
|
|
87
|
-
}, [onToggleInsertionPoint]);
|
|
88
93
|
const onClickPatternCategory = useCallback((patternCategory, filter) => {
|
|
89
94
|
setSelectedPatternCategory(patternCategory);
|
|
90
95
|
setPatternFilter(filter);
|
|
@@ -92,8 +97,6 @@ function InserterMenu({
|
|
|
92
97
|
}, [setSelectedPatternCategory, onPatternCategorySelection]);
|
|
93
98
|
const showPatternPanel = selectedTab === 'patterns' && !delayedFilterValue && !!selectedPatternCategory;
|
|
94
99
|
const showMediaPanel = selectedTab === 'media' && !!selectedMediaCategory;
|
|
95
|
-
const showZoomOut = showPatternPanel && !!window.__experimentalEnableZoomedOutPatternsTab;
|
|
96
|
-
useZoomOut(showZoomOut);
|
|
97
100
|
const inserterSearch = useMemo(() => {
|
|
98
101
|
if (selectedTab === 'media') {
|
|
99
102
|
return null;
|
|
@@ -115,7 +118,6 @@ function InserterMenu({
|
|
|
115
118
|
filterValue: delayedFilterValue,
|
|
116
119
|
onSelect: onSelect,
|
|
117
120
|
onHover: onHover,
|
|
118
|
-
onHoverPattern: onHoverPattern,
|
|
119
121
|
rootClientId: rootClientId,
|
|
120
122
|
clientId: clientId,
|
|
121
123
|
isAppender: isAppender,
|
|
@@ -125,7 +127,7 @@ function InserterMenu({
|
|
|
125
127
|
prioritizePatterns: selectedTab === 'patterns'
|
|
126
128
|
})]
|
|
127
129
|
});
|
|
128
|
-
}, [selectedTab, hoveredItem, setHoveredItem, setFilterValue, filterValue, delayedFilterValue, onSelect, onHover,
|
|
130
|
+
}, [selectedTab, hoveredItem, setHoveredItem, setFilterValue, filterValue, delayedFilterValue, onSelect, onHover, shouldFocusBlock, clientId, rootClientId, __experimentalInsertionIndex, isAppender]);
|
|
129
131
|
const blocksTab = useMemo(() => {
|
|
130
132
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
131
133
|
children: [/*#__PURE__*/_jsx("div", {
|
|
@@ -155,13 +157,12 @@ function InserterMenu({
|
|
|
155
157
|
children: showPatternPanel && /*#__PURE__*/_jsx(PatternCategoryPreviews, {
|
|
156
158
|
rootClientId: destinationRootClientId,
|
|
157
159
|
onInsert: onInsertPattern,
|
|
158
|
-
onHover: onHoverPattern,
|
|
159
160
|
category: selectedPatternCategory,
|
|
160
161
|
patternFilter: patternFilter,
|
|
161
162
|
showTitlesAsTooltip: true
|
|
162
163
|
})
|
|
163
164
|
});
|
|
164
|
-
}, [destinationRootClientId,
|
|
165
|
+
}, [destinationRootClientId, onInsertPattern, onClickPatternCategory, patternFilter, selectedPatternCategory, showPatternPanel]);
|
|
165
166
|
const mediaTab = useMemo(() => {
|
|
166
167
|
return /*#__PURE__*/_jsx(MediaTab, {
|
|
167
168
|
rootClientId: destinationRootClientId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","forwardRef","useState","useCallback","useMemo","useRef","useLayoutEffect","VisuallyHidden","SearchControl","Popover","__","useDebouncedInput","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTab","PatternCategoryPreviews","MediaTab","MediaCategoryPanel","InserterSearchResults","useInsertionPoint","store","blockEditorStore","TabbedSidebar","useZoomOut","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","onPatternCategorySelection","onClose","__experimentalInitialTab","__experimentalInitialCategory","ref","isZoomOutMode","select","__unstableGetEditorMode","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","blockTypesTabRef","onInsert","blocks","meta","shouldForceFocusBlock","_rootClientId","window","requestAnimationFrame","current","contains","ownerDocument","activeElement","querySelector","focus","onInsertPattern","patternName","onHover","item","onHoverPattern","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","showZoomOut","__experimentalEnableZoomedOutPatternsTab","inserterSearch","children","__nextHasNoMarginBottom","className","onChange","value","label","placeholder","showBlockDirectory","prioritizePatterns","blocksTab","as","patternsTab","onSelectCategory","selectedCategory","category","showTitlesAsTooltip","mediaTab","handleSetSelectedTab","tabsRef","closeButtonLabel","tabs","name","title","panel","placement","offset","focusOnMount","animate","PrivateInserterMenu","PublicInserterMenu","props"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviews } from './block-patterns-tab/pattern-category-previews';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport TabbedSidebar from '../tabbed-sidebar';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\tonPatternCategorySelection,\n\t\tonClose,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t},\n\tref\n) {\n\tconst isZoomOutMode = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\t__experimentalInitialCategory\n\t);\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst [ selectedTab, setSelectedTab ] = useState(\n\t\t__experimentalInitialTab\n\t);\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst blockTypesTabRef = useRef();\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock, _rootClientId ) => {\n\t\t\tonInsertBlocks(\n\t\t\t\tblocks,\n\t\t\t\tmeta,\n\t\t\t\tshouldForceFocusBlock,\n\t\t\t\t_rootClientId\n\t\t\t);\n\t\t\tonSelect( blocks );\n\n\t\t\t// Check for focus loss due to filtering blocks by selected block type\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tif (\n\t\t\t\t\t! shouldFocusBlock &&\n\t\t\t\t\t! blockTypesTabRef?.current.contains(\n\t\t\t\t\t\tref.current.ownerDocument.activeElement\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// There has been a focus loss, so focus the first button in the block types tab\n\t\t\t\t\tblockTypesTabRef?.current.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[ onInsertBlocks, onSelect, shouldFocusBlock ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onHoverPattern = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( !! item );\n\t\t},\n\t\t[ onToggleInsertionPoint ]\n\t);\n\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tonPatternCategorySelection?.();\n\t\t},\n\t\t[ setSelectedPatternCategory, onPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\t!! selectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;\n\n\tconst showZoomOut =\n\t\tshowPatternPanel && !! window.__experimentalEnableZoomedOutPatternsTab;\n\n\tuseZoomOut( showZoomOut );\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tonHoverPattern={ onHoverPattern }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tonHoverPattern,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo( () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\tref={ blockTypesTabRef }\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tonHover,\n\t\tshowMostUsedBlocks,\n\t\tshowInserterHelpPanel,\n\t] );\n\n\tconst patternsTab = useMemo( () => {\n\t\treturn (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviews\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tonHover={ onHoverPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonHoverPattern,\n\t\tonInsertPattern,\n\t\tonClickPatternCategory,\n\t\tpatternFilter,\n\t\tselectedPatternCategory,\n\t\tshowPatternPanel,\n\t] );\n\n\tconst mediaTab = useMemo( () => {\n\t\treturn (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tselectedMediaCategory,\n\t\tsetSelectedMediaCategory,\n\t\tshowMediaPanel,\n\t] );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t\t'is-zoom-out': isZoomOutMode,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<TabbedSidebar\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tselectedTab={ selectedTab }\n\t\t\t\t\tcloseButtonLabel={ __( 'Close block inserter' ) }\n\t\t\t\t\ttabs={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'blocks',\n\t\t\t\t\t\t\ttitle: __( 'Blocks' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'blocks' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tblocksTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'patterns',\n\t\t\t\t\t\t\ttitle: __( 'Patterns' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'patterns' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tpatternsTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'media',\n\t\t\t\t\t\t\ttitle: __( 'Media' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ mediaTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const PrivateInserterMenu = forwardRef( InserterMenu );\n\nfunction PublicInserterMenu( props, ref ) {\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ NOOP }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterMenu );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","forwardRef","useState","useCallback","useMemo","useRef","useLayoutEffect","VisuallyHidden","SearchControl","Popover","__","useDebouncedInput","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTab","PatternCategoryPreviews","MediaTab","MediaCategoryPanel","InserterSearchResults","useInsertionPoint","store","blockEditorStore","TabbedSidebar","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","onPatternCategorySelection","onClose","__experimentalInitialTab","__experimentalInitialCategory","ref","isZoomOutMode","select","__unstableGetEditorMode","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","getInitialTab","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","blockTypesTabRef","onInsert","blocks","meta","shouldForceFocusBlock","_rootClientId","window","requestAnimationFrame","current","contains","ownerDocument","activeElement","querySelector","focus","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","children","__nextHasNoMarginBottom","className","onChange","value","label","placeholder","showBlockDirectory","prioritizePatterns","blocksTab","as","patternsTab","onSelectCategory","selectedCategory","category","showTitlesAsTooltip","mediaTab","handleSetSelectedTab","tabsRef","closeButtonLabel","tabs","name","title","panel","placement","offset","focusOnMount","animate","PrivateInserterMenu","PublicInserterMenu","props"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviews } from './block-patterns-tab/pattern-category-previews';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport TabbedSidebar from '../tabbed-sidebar';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\tonPatternCategorySelection,\n\t\tonClose,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t},\n\tref\n) {\n\tconst isZoomOutMode = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\t__experimentalInitialCategory\n\t);\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tfunction getInitialTab() {\n\t\tif ( __experimentalInitialTab ) {\n\t\t\treturn __experimentalInitialTab;\n\t\t}\n\n\t\tif ( isZoomOutMode ) {\n\t\t\treturn 'patterns';\n\t\t}\n\t}\n\tconst [ selectedTab, setSelectedTab ] = useState( getInitialTab() );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst blockTypesTabRef = useRef();\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock, _rootClientId ) => {\n\t\t\tonInsertBlocks(\n\t\t\t\tblocks,\n\t\t\t\tmeta,\n\t\t\t\tshouldForceFocusBlock,\n\t\t\t\t_rootClientId\n\t\t\t);\n\t\t\tonSelect( blocks );\n\n\t\t\t// Check for focus loss due to filtering blocks by selected block type\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tif (\n\t\t\t\t\t! shouldFocusBlock &&\n\t\t\t\t\t! blockTypesTabRef.current?.contains(\n\t\t\t\t\t\tref.current.ownerDocument.activeElement\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// There has been a focus loss, so focus the first button in the block types tab\n\t\t\t\t\tblockTypesTabRef.current?.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[ onInsertBlocks, onSelect, shouldFocusBlock ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonToggleInsertionPoint( false );\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tonPatternCategorySelection?.();\n\t\t},\n\t\t[ setSelectedPatternCategory, onPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\t!! selectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo( () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\tref={ blockTypesTabRef }\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tonHover,\n\t\tshowMostUsedBlocks,\n\t\tshowInserterHelpPanel,\n\t] );\n\n\tconst patternsTab = useMemo( () => {\n\t\treturn (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviews\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsertPattern,\n\t\tonClickPatternCategory,\n\t\tpatternFilter,\n\t\tselectedPatternCategory,\n\t\tshowPatternPanel,\n\t] );\n\n\tconst mediaTab = useMemo( () => {\n\t\treturn (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tselectedMediaCategory,\n\t\tsetSelectedMediaCategory,\n\t\tshowMediaPanel,\n\t] );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t\t'is-zoom-out': isZoomOutMode,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<TabbedSidebar\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tselectedTab={ selectedTab }\n\t\t\t\t\tcloseButtonLabel={ __( 'Close block inserter' ) }\n\t\t\t\t\ttabs={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'blocks',\n\t\t\t\t\t\t\ttitle: __( 'Blocks' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'blocks' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tblocksTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'patterns',\n\t\t\t\t\t\t\ttitle: __( 'Patterns' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'patterns' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tpatternsTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'media',\n\t\t\t\t\t\t\ttitle: __( 'Media' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ mediaTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const PrivateInserterMenu = forwardRef( InserterMenu );\n\nfunction PublicInserterMenu( props, ref ) {\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ NOOP }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterMenu );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ import clsx from 'clsx';
|
|
|
9
9
|
import { useState, useEffect } from '@wordpress/element';
|
|
10
10
|
import { __ } from '@wordpress/i18n';
|
|
11
11
|
import { Button, SearchControl } from '@wordpress/components';
|
|
12
|
-
import { useSelect } from '@wordpress/data';
|
|
12
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
@@ -68,6 +68,9 @@ export default function QuickInserter({
|
|
|
68
68
|
setInserterIsOpened(false);
|
|
69
69
|
}
|
|
70
70
|
}, [setInserterIsOpened]);
|
|
71
|
+
const {
|
|
72
|
+
showInsertionPoint
|
|
73
|
+
} = useDispatch(blockEditorStore);
|
|
71
74
|
|
|
72
75
|
// When clicking Browse All select the appropriate block so as
|
|
73
76
|
// the insertion point can work as expected.
|
|
@@ -78,6 +81,7 @@ export default function QuickInserter({
|
|
|
78
81
|
filterValue,
|
|
79
82
|
onSelect
|
|
80
83
|
});
|
|
84
|
+
showInsertionPoint(rootClientId, insertionIndex);
|
|
81
85
|
};
|
|
82
86
|
let maxBlockPatterns = 0;
|
|
83
87
|
if (showPatterns) {
|
|
@@ -112,7 +116,10 @@ export default function QuickInserter({
|
|
|
112
116
|
selectBlockOnInsert: selectBlockOnInsert,
|
|
113
117
|
isQuick: true
|
|
114
118
|
})
|
|
115
|
-
}), setInserterIsOpened && /*#__PURE__*/_jsx(Button
|
|
119
|
+
}), setInserterIsOpened && /*#__PURE__*/_jsx(Button
|
|
120
|
+
// TODO: Switch to `true` (40px size) if possible
|
|
121
|
+
, {
|
|
122
|
+
__next40pxDefaultSize: false,
|
|
116
123
|
className: "block-editor-inserter__quick-inserter-expand",
|
|
117
124
|
onClick: onBrowseAll,
|
|
118
125
|
"aria-label": __('Browse all. This will open the main inserter panel in the editor toolbar.'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","className","children","__nextHasNoMarginBottom","value","onChange","label","placeholder","maxBlockTypes","isDraggable","isQuick","onClick"],"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\thasSearch = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\ttrue\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\thasSearch &&\n\t\t( ( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\t\tblockTypes.length > SEARCH_THRESHOLD );\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( {\n\t\t\trootClientId,\n\t\t\tinsertionIndex,\n\t\t\tfilterValue,\n\t\t\tonSelect,\n\t\t} );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t\tisQuick\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,MAAM,EAAEC,aAAa,QAAQ,uBAAuB;AAC7D,SAASC,SAAS,QAAQ,iBAAiB;;
|
|
1
|
+
{"version":3,"names":["clsx","useState","useEffect","__","Button","SearchControl","useDispatch","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","showInsertionPoint","onBrowseAll","maxBlockPatterns","className","children","__nextHasNoMarginBottom","value","onChange","label","placeholder","maxBlockTypes","isDraggable","isQuick","__next40pxDefaultSize","onClick"],"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\thasSearch = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\ttrue\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\thasSearch &&\n\t\t( ( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\t\tblockTypes.length > SEARCH_THRESHOLD );\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\tconst { showInsertionPoint } = useDispatch( blockEditorStore );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( {\n\t\t\trootClientId,\n\t\t\tinsertionIndex,\n\t\t\tfilterValue,\n\t\t\tonSelect,\n\t\t} );\n\t\tshowInsertionPoint( rootClientId, insertionIndex );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t\tisQuick\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,7 +28,7 @@ function InserterListItem({
|
|
|
28
28
|
isDraggable,
|
|
29
29
|
...props
|
|
30
30
|
}) {
|
|
31
|
-
const
|
|
31
|
+
const isDraggingRef = useRef(false);
|
|
32
32
|
const itemIconStyle = item.icon ? {
|
|
33
33
|
backgroundColor: item.icon.background,
|
|
34
34
|
color: item.icon.foreground
|
|
@@ -49,14 +49,14 @@ function InserterListItem({
|
|
|
49
49
|
}),
|
|
50
50
|
draggable: draggable,
|
|
51
51
|
onDragStart: event => {
|
|
52
|
-
|
|
52
|
+
isDraggingRef.current = true;
|
|
53
53
|
if (onDragStart) {
|
|
54
54
|
onHover(null);
|
|
55
55
|
onDragStart(event);
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
onDragEnd: event => {
|
|
59
|
-
|
|
59
|
+
isDraggingRef.current = false;
|
|
60
60
|
if (onDragEnd) {
|
|
61
61
|
onDragEnd(event);
|
|
62
62
|
}
|
|
@@ -81,7 +81,7 @@ function InserterListItem({
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
onMouseEnter: () => {
|
|
84
|
-
if (
|
|
84
|
+
if (isDraggingRef.current) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
87
|
onHover(item);
|