@wordpress/block-editor 13.2.0 → 13.4.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 +0 -5
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +12 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +0 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +5 -7
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +20 -17
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +4 -12
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +20 -17
- package/build/components/block-switcher/preview-block-popover.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 +7 -58
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/index.js +14 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +9 -8
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +58 -0
- package/build/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build/components/block-tools/zoom-out-toolbar.js +138 -0
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build/components/button-block-appender/index.js +3 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +26 -18
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -4
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/index.js +6 -4
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +22 -62
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +185 -116
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +2 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +45 -24
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +121 -0
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +47 -13
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +17 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +90 -48
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +2 -2
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +117 -37
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +60 -41
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +1 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +20 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +2 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +19 -23
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +66 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -0
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +3 -0
- package/build/components/url-popover/index.js.map +1 -1
- package/build/hooks/background.js +26 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +11 -17
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +169 -4
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/duotone.js +16 -11
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +62 -0
- package/build/hooks/grid-visualizer.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +47 -23
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +4 -15
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +96 -55
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/utils.js +2 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +50 -4
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +92 -51
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +6 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +0 -3
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/format-font-style.js +45 -0
- package/build/utils/format-font-style.js.map +1 -0
- package/build/utils/format-font-weight.js +68 -0
- package/build/utils/format-font-weight.js.map +1 -0
- package/build/utils/get-editor-region.js +34 -0
- package/build/utils/get-editor-region.js.map +1 -0
- package/build/utils/get-font-styles-and-weights.js +167 -0
- package/build/utils/get-font-styles-and-weights.js.map +1 -0
- package/build/utils/pasting.js +5 -13
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +12 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +0 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +5 -7
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +20 -17
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +2 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +5 -13
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +20 -17
- package/build-module/components/block-switcher/preview-block-popover.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 +10 -61
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/index.js +14 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +9 -8
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +49 -0
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build-module/components/button-block-appender/index.js +3 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +27 -19
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -2
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -4
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +6 -4
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +24 -62
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +188 -119
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +3 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +13 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +3 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +47 -26
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +117 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +47 -13
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +15 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +93 -50
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +2 -2
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +118 -38
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +61 -42
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +20 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +3 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +2 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +19 -23
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +60 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -0
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +3 -0
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/hooks/background.js +26 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +11 -17
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +168 -4
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/duotone.js +16 -11
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +61 -0
- package/build-module/hooks/grid-visualizer.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +47 -23
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -15
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +96 -56
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/utils.js +2 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +50 -4
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +92 -51
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +8 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +0 -3
- package/build-module/store/defaults.native.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/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/format-font-style.js +39 -0
- package/build-module/utils/format-font-style.js.map +1 -0
- package/build-module/utils/format-font-weight.js +62 -0
- package/build-module/utils/format-font-weight.js.map +1 -0
- package/build-module/utils/get-editor-region.js +28 -0
- package/build-module/utils/get-editor-region.js.map +1 -0
- package/build-module/utils/get-font-styles-and-weights.js +160 -0
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
- package/build-module/utils/pasting.js +5 -13
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +356 -181
- package/build-style/style.css +356 -181
- package/build-types/components/block-context/index.d.ts +2 -2
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/alignment-control/ui.js +2 -2
- package/src/components/block-alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/ui.native.js +1 -1
- package/src/components/block-breadcrumb/index.js +16 -1
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-lock/toolbar.js +0 -1
- package/src/components/block-mover/button.js +1 -1
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/src/components/block-patterns-paging/index.js +8 -11
- package/src/components/block-patterns-paging/style.scss +0 -5
- package/src/components/block-quick-navigation/index.js +21 -28
- package/src/components/block-removal-warning-modal/index.js +10 -2
- package/src/components/block-rename/modal.js +2 -8
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
- package/src/components/block-switcher/preview-block-popover.js +20 -14
- package/src/components/block-switcher/style.scss +8 -17
- package/src/components/block-switcher/test/index.js +6 -6
- package/src/components/block-toolbar/shuffle.js +9 -1
- package/src/components/block-toolbar/style.scss +1 -11
- package/src/components/block-tools/block-selection-button.js +11 -83
- package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
- package/src/components/block-tools/index.js +21 -1
- package/src/components/block-tools/style.scss +23 -0
- package/src/components/block-tools/use-show-block-tools.js +21 -10
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
- package/src/components/block-tools/zoom-out-popover.js +50 -0
- package/src/components/block-tools/zoom-out-toolbar.js +140 -0
- package/src/components/button-block-appender/index.js +2 -1
- package/src/components/child-layout-control/index.js +41 -23
- package/src/components/date-format-picker/index.js +2 -2
- package/src/components/date-format-picker/style.scss +0 -9
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/dimensions-tool/index.js +97 -89
- package/src/components/font-appearance-control/index.js +24 -82
- package/src/components/font-appearance-control/style.scss +3 -5
- package/src/components/global-styles/background-panel.js +266 -167
- package/src/components/global-styles/border-panel.js +3 -2
- package/src/components/global-styles/color-panel.js +3 -2
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/filters-panel.js +3 -2
- package/src/components/global-styles/hooks.js +14 -1
- package/src/components/global-styles/image-settings-panel.js +3 -2
- package/src/components/global-styles/style.scss +116 -19
- package/src/components/global-styles/test/typography-utils.js +594 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +56 -27
- package/src/components/global-styles/typography-utils.js +159 -0
- package/src/components/global-styles/use-global-styles-output.js +45 -10
- package/src/components/global-styles/utils.js +17 -6
- package/src/components/grid/grid-item-movers.js +140 -86
- package/src/components/grid/grid-item-resizer.js +3 -2
- package/src/components/grid/grid-visualizer.js +172 -55
- package/src/components/grid/style.scss +157 -8
- package/src/components/grid/use-grid-layout-sync.js +88 -46
- package/src/components/iframe/content.scss +2 -1
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +47 -13
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +58 -92
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/list-view/block-select-button.js +3 -13
- package/src/components/list-view/block.js +10 -3
- package/src/components/list-view/style.scss +2 -1
- package/src/components/list-view/utils.js +13 -2
- package/src/components/media-placeholder/index.js +22 -32
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
- package/src/components/tabbed-sidebar/README.md +76 -0
- package/src/components/tabbed-sidebar/index.js +70 -0
- package/src/components/tabbed-sidebar/style.scss +53 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/index.js +3 -0
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/background.js +25 -10
- package/src/hooks/block-hooks.js +9 -16
- package/src/hooks/block-style-variation.js +202 -3
- package/src/hooks/duotone.js +16 -12
- package/src/hooks/grid-visualizer.js +62 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +64 -39
- package/src/hooks/position.js +3 -20
- package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
- package/src/hooks/use-bindings-attributes.js +107 -63
- package/src/hooks/utils.js +2 -0
- package/src/layouts/constrained.js +53 -4
- package/src/layouts/grid.js +148 -51
- package/src/private-apis.js +12 -7
- package/src/store/actions.js +15 -0
- package/src/store/defaults.js +0 -2
- package/src/store/defaults.native.js +0 -3
- package/src/store/private-keys.js +1 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/src/style.scss +1 -1
- package/src/utils/format-font-style.js +40 -0
- package/src/utils/format-font-weight.js +63 -0
- package/src/utils/get-editor-region.js +31 -0
- package/src/utils/get-font-styles-and-weights.js +191 -0
- package/src/utils/pasting.js +5 -12
- package/src/utils/test/format-font-style.js +34 -0
- package/src/utils/test/format-font-weight.js +66 -0
- package/src/utils/test/get-font-styles-and-weights.js +513 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
- package/src/hooks/position.scss +0 -18
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.formatFontStyle = formatFontStyle;
|
|
7
|
+
var _i18n = require("@wordpress/i18n");
|
|
8
|
+
/**
|
|
9
|
+
* WordPress dependencies
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Formats font styles to human readable names.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} fontStyle font style string
|
|
16
|
+
* @return {Object} new object with formatted font style
|
|
17
|
+
*/
|
|
18
|
+
function formatFontStyle(fontStyle) {
|
|
19
|
+
if (!fontStyle) {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
if (typeof fontStyle === 'object') {
|
|
23
|
+
return fontStyle;
|
|
24
|
+
}
|
|
25
|
+
let name;
|
|
26
|
+
switch (fontStyle) {
|
|
27
|
+
case 'normal':
|
|
28
|
+
name = (0, _i18n._x)('Regular', 'font style');
|
|
29
|
+
break;
|
|
30
|
+
case 'italic':
|
|
31
|
+
name = (0, _i18n._x)('Italic', 'font style');
|
|
32
|
+
break;
|
|
33
|
+
case 'oblique':
|
|
34
|
+
name = (0, _i18n._x)('Oblique', 'font style');
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
name = fontStyle;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
name,
|
|
42
|
+
value: fontStyle
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=format-font-style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18n","require","formatFontStyle","fontStyle","name","_x","value"],"sources":["@wordpress/block-editor/src/utils/format-font-style.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Formats font styles to human readable names.\n *\n * @param {string} fontStyle font style string\n * @return {Object} new object with formatted font style\n */\nexport function formatFontStyle( fontStyle ) {\n\tif ( ! fontStyle ) {\n\t\treturn {};\n\t}\n\n\tif ( typeof fontStyle === 'object' ) {\n\t\treturn fontStyle;\n\t}\n\n\tlet name;\n\n\tswitch ( fontStyle ) {\n\t\tcase 'normal':\n\t\t\tname = _x( 'Regular', 'font style' );\n\t\t\tbreak;\n\t\tcase 'italic':\n\t\t\tname = _x( 'Italic', 'font style' );\n\t\t\tbreak;\n\t\tcase 'oblique':\n\t\t\tname = _x( 'Oblique', 'font style' );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tname = fontStyle;\n\t\t\tbreak;\n\t}\n\n\treturn { name, value: fontStyle };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAEC,SAAS,EAAG;EAC5C,IAAK,CAAEA,SAAS,EAAG;IAClB,OAAO,CAAC,CAAC;EACV;EAEA,IAAK,OAAOA,SAAS,KAAK,QAAQ,EAAG;IACpC,OAAOA,SAAS;EACjB;EAEA,IAAIC,IAAI;EAER,QAASD,SAAS;IACjB,KAAK,QAAQ;MACZC,IAAI,GAAG,IAAAC,QAAE,EAAE,SAAS,EAAE,YAAa,CAAC;MACpC;IACD,KAAK,QAAQ;MACZD,IAAI,GAAG,IAAAC,QAAE,EAAE,QAAQ,EAAE,YAAa,CAAC;MACnC;IACD,KAAK,SAAS;MACbD,IAAI,GAAG,IAAAC,QAAE,EAAE,SAAS,EAAE,YAAa,CAAC;MACpC;IAED;MACCD,IAAI,GAAGD,SAAS;MAChB;EACF;EAEA,OAAO;IAAEC,IAAI;IAAEE,KAAK,EAAEH;EAAU,CAAC;AAClC","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.formatFontWeight = formatFontWeight;
|
|
7
|
+
var _i18n = require("@wordpress/i18n");
|
|
8
|
+
/**
|
|
9
|
+
* WordPress dependencies
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Formats font weights to human readable names.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} fontWeight font weight string
|
|
16
|
+
* @return {Object} new object with formatted font weight
|
|
17
|
+
*/
|
|
18
|
+
function formatFontWeight(fontWeight) {
|
|
19
|
+
if (!fontWeight) {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
if (typeof fontWeight === 'object') {
|
|
23
|
+
return fontWeight;
|
|
24
|
+
}
|
|
25
|
+
let name;
|
|
26
|
+
switch (fontWeight) {
|
|
27
|
+
case 'normal':
|
|
28
|
+
case '400':
|
|
29
|
+
name = (0, _i18n._x)('Regular', 'font weight');
|
|
30
|
+
break;
|
|
31
|
+
case 'bold':
|
|
32
|
+
case '700':
|
|
33
|
+
name = (0, _i18n._x)('Bold', 'font weight');
|
|
34
|
+
break;
|
|
35
|
+
case '100':
|
|
36
|
+
name = (0, _i18n._x)('Thin', 'font weight');
|
|
37
|
+
break;
|
|
38
|
+
case '200':
|
|
39
|
+
name = (0, _i18n._x)('Extra Light', 'font weight');
|
|
40
|
+
break;
|
|
41
|
+
case '300':
|
|
42
|
+
name = (0, _i18n._x)('Light', 'font weight');
|
|
43
|
+
break;
|
|
44
|
+
case '500':
|
|
45
|
+
name = (0, _i18n._x)('Medium', 'font weight');
|
|
46
|
+
break;
|
|
47
|
+
case '600':
|
|
48
|
+
name = (0, _i18n._x)('Semi Bold', 'font weight');
|
|
49
|
+
break;
|
|
50
|
+
case '800':
|
|
51
|
+
name = (0, _i18n._x)('Extra Bold', 'font weight');
|
|
52
|
+
break;
|
|
53
|
+
case '900':
|
|
54
|
+
name = (0, _i18n._x)('Black', 'font weight');
|
|
55
|
+
break;
|
|
56
|
+
case '1000':
|
|
57
|
+
name = (0, _i18n._x)('Extra Black', 'font weight');
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
name = fontWeight;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
name,
|
|
65
|
+
value: fontWeight
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=format-font-weight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18n","require","formatFontWeight","fontWeight","name","_x","value"],"sources":["@wordpress/block-editor/src/utils/format-font-weight.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Formats font weights to human readable names.\n *\n * @param {string} fontWeight font weight string\n * @return {Object} new object with formatted font weight\n */\nexport function formatFontWeight( fontWeight ) {\n\tif ( ! fontWeight ) {\n\t\treturn {};\n\t}\n\n\tif ( typeof fontWeight === 'object' ) {\n\t\treturn fontWeight;\n\t}\n\n\tlet name;\n\n\tswitch ( fontWeight ) {\n\t\tcase 'normal':\n\t\tcase '400':\n\t\t\tname = _x( 'Regular', 'font weight' );\n\t\t\tbreak;\n\t\tcase 'bold':\n\t\tcase '700':\n\t\t\tname = _x( 'Bold', 'font weight' );\n\t\t\tbreak;\n\t\tcase '100':\n\t\t\tname = _x( 'Thin', 'font weight' );\n\t\t\tbreak;\n\t\tcase '200':\n\t\t\tname = _x( 'Extra Light', 'font weight' );\n\t\t\tbreak;\n\t\tcase '300':\n\t\t\tname = _x( 'Light', 'font weight' );\n\t\t\tbreak;\n\t\tcase '500':\n\t\t\tname = _x( 'Medium', 'font weight' );\n\t\t\tbreak;\n\t\tcase '600':\n\t\t\tname = _x( 'Semi Bold', 'font weight' );\n\t\t\tbreak;\n\t\tcase '800':\n\t\t\tname = _x( 'Extra Bold', 'font weight' );\n\t\t\tbreak;\n\t\tcase '900':\n\t\t\tname = _x( 'Black', 'font weight' );\n\t\t\tbreak;\n\t\tcase '1000':\n\t\t\tname = _x( 'Extra Black', 'font weight' );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tname = fontWeight;\n\t\t\tbreak;\n\t}\n\n\treturn { name, value: fontWeight };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAAEC,UAAU,EAAG;EAC9C,IAAK,CAAEA,UAAU,EAAG;IACnB,OAAO,CAAC,CAAC;EACV;EAEA,IAAK,OAAOA,UAAU,KAAK,QAAQ,EAAG;IACrC,OAAOA,UAAU;EAClB;EAEA,IAAIC,IAAI;EAER,QAASD,UAAU;IAClB,KAAK,QAAQ;IACb,KAAK,KAAK;MACTC,IAAI,GAAG,IAAAC,QAAE,EAAE,SAAS,EAAE,aAAc,CAAC;MACrC;IACD,KAAK,MAAM;IACX,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,MAAM,EAAE,aAAc,CAAC;MAClC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,MAAM,EAAE,aAAc,CAAC;MAClC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,aAAa,EAAE,aAAc,CAAC;MACzC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,OAAO,EAAE,aAAc,CAAC;MACnC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,QAAQ,EAAE,aAAc,CAAC;MACpC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,WAAW,EAAE,aAAc,CAAC;MACvC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,YAAY,EAAE,aAAc,CAAC;MACxC;IACD,KAAK,KAAK;MACTD,IAAI,GAAG,IAAAC,QAAE,EAAE,OAAO,EAAE,aAAc,CAAC;MACnC;IACD,KAAK,MAAM;MACVD,IAAI,GAAG,IAAAC,QAAE,EAAE,aAAa,EAAE,aAAc,CAAC;MACzC;IAED;MACCD,IAAI,GAAGD,UAAU;MACjB;EACF;EAEA,OAAO;IAAEC,IAAI;IAAEE,KAAK,EAAEH;EAAW,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getEditorRegion;
|
|
7
|
+
/**
|
|
8
|
+
* Gets the editor region for a given editor canvas element or
|
|
9
|
+
* returns the passed element if no region is found
|
|
10
|
+
*
|
|
11
|
+
* @param { Object } editor The editor canvas element.
|
|
12
|
+
* @return { Object } The editor region or given editor element
|
|
13
|
+
*/
|
|
14
|
+
function getEditorRegion(editor) {
|
|
15
|
+
var _Array$from$find, _editorCanvas$closest;
|
|
16
|
+
if (!editor) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// If there are multiple editors, we need to find the iframe that contains our contentRef to make sure
|
|
21
|
+
// we're focusing the region that contains this editor.
|
|
22
|
+
const editorCanvas = (_Array$from$find = Array.from(document.querySelectorAll('iframe[name="editor-canvas"]').values()).find(iframe => {
|
|
23
|
+
// Find the iframe that contains our contentRef
|
|
24
|
+
const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
|
|
25
|
+
return iframeDocument === editor.ownerDocument;
|
|
26
|
+
})) !== null && _Array$from$find !== void 0 ? _Array$from$find : editor;
|
|
27
|
+
|
|
28
|
+
// The region is provivided by the editor, not the block-editor.
|
|
29
|
+
// We should send focus to the region if one is available to reuse the
|
|
30
|
+
// same interface for navigating landmarks. If no region is available,
|
|
31
|
+
// use the canvas instead.
|
|
32
|
+
return (_editorCanvas$closest = editorCanvas?.closest('[role="region"]')) !== null && _editorCanvas$closest !== void 0 ? _editorCanvas$closest : editorCanvas;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=get-editor-region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getEditorRegion","editor","_Array$from$find","_editorCanvas$closest","editorCanvas","Array","from","document","querySelectorAll","values","find","iframe","iframeDocument","contentDocument","contentWindow","ownerDocument","closest"],"sources":["@wordpress/block-editor/src/utils/get-editor-region.js"],"sourcesContent":["/**\n * Gets the editor region for a given editor canvas element or\n * returns the passed element if no region is found\n *\n * @param { Object } editor The editor canvas element.\n * @return { Object } The editor region or given editor element\n */\nexport default function getEditorRegion( editor ) {\n\tif ( ! editor ) {\n\t\treturn null;\n\t}\n\n\t// If there are multiple editors, we need to find the iframe that contains our contentRef to make sure\n\t// we're focusing the region that contains this editor.\n\tconst editorCanvas =\n\t\tArray.from(\n\t\t\tdocument.querySelectorAll( 'iframe[name=\"editor-canvas\"]' ).values()\n\t\t).find( ( iframe ) => {\n\t\t\t// Find the iframe that contains our contentRef\n\t\t\tconst iframeDocument =\n\t\t\t\tiframe.contentDocument || iframe.contentWindow.document;\n\n\t\t\treturn iframeDocument === editor.ownerDocument;\n\t\t} ) ?? editor;\n\n\t// The region is provivided by the editor, not the block-editor.\n\t// We should send focus to the region if one is available to reuse the\n\t// same interface for navigating landmarks. If no region is available,\n\t// use the canvas instead.\n\treturn editorCanvas?.closest( '[role=\"region\"]' ) ?? editorCanvas;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,eAAeA,CAAEC,MAAM,EAAG;EAAA,IAAAC,gBAAA,EAAAC,qBAAA;EACjD,IAAK,CAAEF,MAAM,EAAG;IACf,OAAO,IAAI;EACZ;;EAEA;EACA;EACA,MAAMG,YAAY,IAAAF,gBAAA,GACjBG,KAAK,CAACC,IAAI,CACTC,QAAQ,CAACC,gBAAgB,CAAE,8BAA+B,CAAC,CAACC,MAAM,CAAC,CACpE,CAAC,CAACC,IAAI,CAAIC,MAAM,IAAM;IACrB;IACA,MAAMC,cAAc,GACnBD,MAAM,CAACE,eAAe,IAAIF,MAAM,CAACG,aAAa,CAACP,QAAQ;IAExD,OAAOK,cAAc,KAAKX,MAAM,CAACc,aAAa;EAC/C,CAAE,CAAC,cAAAb,gBAAA,cAAAA,gBAAA,GAAID,MAAM;;EAEd;EACA;EACA;EACA;EACA,QAAAE,qBAAA,GAAOC,YAAY,EAAEY,OAAO,CAAE,iBAAkB,CAAC,cAAAb,qBAAA,cAAAA,qBAAA,GAAIC,YAAY;AAClE","ignoreList":[]}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getFontStylesAndWeights = getFontStylesAndWeights;
|
|
7
|
+
var _i18n = require("@wordpress/i18n");
|
|
8
|
+
var _formatFontStyle = require("./format-font-style");
|
|
9
|
+
var _formatFontWeight = require("./format-font-weight");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const FONT_STYLES = [{
|
|
19
|
+
name: (0, _i18n._x)('Regular', 'font style'),
|
|
20
|
+
value: 'normal'
|
|
21
|
+
}, {
|
|
22
|
+
name: (0, _i18n._x)('Italic', 'font style'),
|
|
23
|
+
value: 'italic'
|
|
24
|
+
}];
|
|
25
|
+
const FONT_WEIGHTS = [{
|
|
26
|
+
name: (0, _i18n._x)('Thin', 'font weight'),
|
|
27
|
+
value: '100'
|
|
28
|
+
}, {
|
|
29
|
+
name: (0, _i18n._x)('Extra Light', 'font weight'),
|
|
30
|
+
value: '200'
|
|
31
|
+
}, {
|
|
32
|
+
name: (0, _i18n._x)('Light', 'font weight'),
|
|
33
|
+
value: '300'
|
|
34
|
+
}, {
|
|
35
|
+
name: (0, _i18n._x)('Regular', 'font weight'),
|
|
36
|
+
value: '400'
|
|
37
|
+
}, {
|
|
38
|
+
name: (0, _i18n._x)('Medium', 'font weight'),
|
|
39
|
+
value: '500'
|
|
40
|
+
}, {
|
|
41
|
+
name: (0, _i18n._x)('Semi Bold', 'font weight'),
|
|
42
|
+
value: '600'
|
|
43
|
+
}, {
|
|
44
|
+
name: (0, _i18n._x)('Bold', 'font weight'),
|
|
45
|
+
value: '700'
|
|
46
|
+
}, {
|
|
47
|
+
name: (0, _i18n._x)('Extra Bold', 'font weight'),
|
|
48
|
+
value: '800'
|
|
49
|
+
}, {
|
|
50
|
+
name: (0, _i18n._x)('Black', 'font weight'),
|
|
51
|
+
value: '900'
|
|
52
|
+
}, {
|
|
53
|
+
name: (0, _i18n._x)('Extra Black', 'font weight'),
|
|
54
|
+
value: '1000'
|
|
55
|
+
}];
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Builds a list of font style and weight options based on font family faces.
|
|
59
|
+
* Defaults to the standard font styles and weights if no font family faces are provided.
|
|
60
|
+
*
|
|
61
|
+
* @param {Array} fontFamilyFaces font family faces array
|
|
62
|
+
* @return {Object} new object with combined and separated font style and weight properties
|
|
63
|
+
*/
|
|
64
|
+
function getFontStylesAndWeights(fontFamilyFaces) {
|
|
65
|
+
let fontStyles = [];
|
|
66
|
+
let fontWeights = [];
|
|
67
|
+
const combinedStyleAndWeightOptions = [];
|
|
68
|
+
const isSystemFont = !fontFamilyFaces || fontFamilyFaces?.length === 0;
|
|
69
|
+
let isVariableFont = false;
|
|
70
|
+
fontFamilyFaces?.forEach(face => {
|
|
71
|
+
// Check for variable font by looking for a space in the font weight value. e.g. "100 900"
|
|
72
|
+
if (/\s/.test(face.fontWeight.trim())) {
|
|
73
|
+
isVariableFont = true;
|
|
74
|
+
|
|
75
|
+
// Find font weight start and end values.
|
|
76
|
+
let [startValue, endValue] = face.fontWeight.split(' ');
|
|
77
|
+
startValue = parseInt(startValue.slice(0, 1));
|
|
78
|
+
if (endValue === '1000') {
|
|
79
|
+
endValue = 10;
|
|
80
|
+
} else {
|
|
81
|
+
endValue = parseInt(endValue.slice(0, 1));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Create font weight options for available variable weights.
|
|
85
|
+
for (let i = startValue; i <= endValue; i++) {
|
|
86
|
+
const fontWeightValue = `${i.toString()}00`;
|
|
87
|
+
if (!fontWeights.some(weight => weight.value === fontWeightValue)) {
|
|
88
|
+
fontWeights.push((0, _formatFontWeight.formatFontWeight)(fontWeightValue));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Format font style and weight values.
|
|
94
|
+
const fontWeight = (0, _formatFontWeight.formatFontWeight)(face.fontWeight);
|
|
95
|
+
const fontStyle = (0, _formatFontStyle.formatFontStyle)(face.fontStyle);
|
|
96
|
+
|
|
97
|
+
// Create font style and font weight lists without duplicates.
|
|
98
|
+
if (fontStyle) {
|
|
99
|
+
if (!fontStyles.some(style => style.value === fontStyle.value)) {
|
|
100
|
+
fontStyles.push(fontStyle);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (fontWeight) {
|
|
104
|
+
if (!fontWeights.some(weight => weight.value === fontWeight.value)) {
|
|
105
|
+
if (!isVariableFont) {
|
|
106
|
+
fontWeights.push(fontWeight);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// If there is no font weight of 600 or above, then include faux bold as an option.
|
|
113
|
+
if (!fontWeights.some(weight => weight.value >= '600')) {
|
|
114
|
+
fontWeights.push({
|
|
115
|
+
name: (0, _i18n._x)('Bold', 'font weight'),
|
|
116
|
+
value: '700'
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// If there is no italic font style, then include faux italic as an option.
|
|
121
|
+
if (!fontStyles.some(style => style.value === 'italic')) {
|
|
122
|
+
fontStyles.push({
|
|
123
|
+
name: (0, _i18n._x)('Italic', 'font style'),
|
|
124
|
+
value: 'italic'
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Use default font styles and weights for system fonts.
|
|
129
|
+
if (isSystemFont) {
|
|
130
|
+
fontStyles = FONT_STYLES;
|
|
131
|
+
fontWeights = FONT_WEIGHTS;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Use default styles and weights if there are no available styles or weights from the provided font faces.
|
|
135
|
+
fontStyles = fontStyles.length === 0 ? FONT_STYLES : fontStyles;
|
|
136
|
+
fontWeights = fontWeights.length === 0 ? FONT_WEIGHTS : fontWeights;
|
|
137
|
+
|
|
138
|
+
// Generate combined font style and weight options for available fonts.
|
|
139
|
+
fontStyles.forEach(({
|
|
140
|
+
name: styleName,
|
|
141
|
+
value: styleValue
|
|
142
|
+
}) => {
|
|
143
|
+
fontWeights.forEach(({
|
|
144
|
+
name: weightName,
|
|
145
|
+
value: weightValue
|
|
146
|
+
}) => {
|
|
147
|
+
const optionName = styleValue === 'normal' ? weightName : (0, _i18n.sprintf)( /* translators: 1: Font weight name. 2: Font style name. */
|
|
148
|
+
(0, _i18n.__)('%1$s %2$s'), weightName, styleName);
|
|
149
|
+
combinedStyleAndWeightOptions.push({
|
|
150
|
+
key: `${styleValue}-${weightValue}`,
|
|
151
|
+
name: optionName,
|
|
152
|
+
style: {
|
|
153
|
+
fontStyle: styleValue,
|
|
154
|
+
fontWeight: weightValue
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
fontStyles,
|
|
161
|
+
fontWeights,
|
|
162
|
+
combinedStyleAndWeightOptions,
|
|
163
|
+
isSystemFont,
|
|
164
|
+
isVariableFont
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=get-font-styles-and-weights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18n","require","_formatFontStyle","_formatFontWeight","FONT_STYLES","name","_x","value","FONT_WEIGHTS","getFontStylesAndWeights","fontFamilyFaces","fontStyles","fontWeights","combinedStyleAndWeightOptions","isSystemFont","length","isVariableFont","forEach","face","test","fontWeight","trim","startValue","endValue","split","parseInt","slice","i","fontWeightValue","toString","some","weight","push","formatFontWeight","fontStyle","formatFontStyle","style","styleName","styleValue","weightName","weightValue","optionName","sprintf","__","key"],"sources":["@wordpress/block-editor/src/utils/get-font-styles-and-weights.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { formatFontStyle } from './format-font-style';\nimport { formatFontWeight } from './format-font-weight';\n\nconst FONT_STYLES = [\n\t{\n\t\tname: _x( 'Regular', 'font style' ),\n\t\tvalue: 'normal',\n\t},\n\t{\n\t\tname: _x( 'Italic', 'font style' ),\n\t\tvalue: 'italic',\n\t},\n];\n\nconst FONT_WEIGHTS = [\n\t{\n\t\tname: _x( 'Thin', 'font weight' ),\n\t\tvalue: '100',\n\t},\n\t{\n\t\tname: _x( 'Extra Light', 'font weight' ),\n\t\tvalue: '200',\n\t},\n\t{\n\t\tname: _x( 'Light', 'font weight' ),\n\t\tvalue: '300',\n\t},\n\t{\n\t\tname: _x( 'Regular', 'font weight' ),\n\t\tvalue: '400',\n\t},\n\t{\n\t\tname: _x( 'Medium', 'font weight' ),\n\t\tvalue: '500',\n\t},\n\t{\n\t\tname: _x( 'Semi Bold', 'font weight' ),\n\t\tvalue: '600',\n\t},\n\t{\n\t\tname: _x( 'Bold', 'font weight' ),\n\t\tvalue: '700',\n\t},\n\t{\n\t\tname: _x( 'Extra Bold', 'font weight' ),\n\t\tvalue: '800',\n\t},\n\t{\n\t\tname: _x( 'Black', 'font weight' ),\n\t\tvalue: '900',\n\t},\n\t{\n\t\tname: _x( 'Extra Black', 'font weight' ),\n\t\tvalue: '1000',\n\t},\n];\n\n/**\n * Builds a list of font style and weight options based on font family faces.\n * Defaults to the standard font styles and weights if no font family faces are provided.\n *\n * @param {Array} fontFamilyFaces font family faces array\n * @return {Object} new object with combined and separated font style and weight properties\n */\nexport function getFontStylesAndWeights( fontFamilyFaces ) {\n\tlet fontStyles = [];\n\tlet fontWeights = [];\n\tconst combinedStyleAndWeightOptions = [];\n\tconst isSystemFont = ! fontFamilyFaces || fontFamilyFaces?.length === 0;\n\tlet isVariableFont = false;\n\n\tfontFamilyFaces?.forEach( ( face ) => {\n\t\t// Check for variable font by looking for a space in the font weight value. e.g. \"100 900\"\n\t\tif ( /\\s/.test( face.fontWeight.trim() ) ) {\n\t\t\tisVariableFont = true;\n\n\t\t\t// Find font weight start and end values.\n\t\t\tlet [ startValue, endValue ] = face.fontWeight.split( ' ' );\n\t\t\tstartValue = parseInt( startValue.slice( 0, 1 ) );\n\t\t\tif ( endValue === '1000' ) {\n\t\t\t\tendValue = 10;\n\t\t\t} else {\n\t\t\t\tendValue = parseInt( endValue.slice( 0, 1 ) );\n\t\t\t}\n\n\t\t\t// Create font weight options for available variable weights.\n\t\t\tfor ( let i = startValue; i <= endValue; i++ ) {\n\t\t\t\tconst fontWeightValue = `${ i.toString() }00`;\n\t\t\t\tif (\n\t\t\t\t\t! fontWeights.some(\n\t\t\t\t\t\t( weight ) => weight.value === fontWeightValue\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tfontWeights.push( formatFontWeight( fontWeightValue ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Format font style and weight values.\n\t\tconst fontWeight = formatFontWeight( face.fontWeight );\n\t\tconst fontStyle = formatFontStyle( face.fontStyle );\n\n\t\t// Create font style and font weight lists without duplicates.\n\t\tif ( fontStyle ) {\n\t\t\tif (\n\t\t\t\t! fontStyles.some(\n\t\t\t\t\t( style ) => style.value === fontStyle.value\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tfontStyles.push( fontStyle );\n\t\t\t}\n\t\t}\n\t\tif ( fontWeight ) {\n\t\t\tif (\n\t\t\t\t! fontWeights.some(\n\t\t\t\t\t( weight ) => weight.value === fontWeight.value\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif ( ! isVariableFont ) {\n\t\t\t\t\tfontWeights.push( fontWeight );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\n\t// If there is no font weight of 600 or above, then include faux bold as an option.\n\tif ( ! fontWeights.some( ( weight ) => weight.value >= '600' ) ) {\n\t\tfontWeights.push( {\n\t\t\tname: _x( 'Bold', 'font weight' ),\n\t\t\tvalue: '700',\n\t\t} );\n\t}\n\n\t// If there is no italic font style, then include faux italic as an option.\n\tif ( ! fontStyles.some( ( style ) => style.value === 'italic' ) ) {\n\t\tfontStyles.push( {\n\t\t\tname: _x( 'Italic', 'font style' ),\n\t\t\tvalue: 'italic',\n\t\t} );\n\t}\n\n\t// Use default font styles and weights for system fonts.\n\tif ( isSystemFont ) {\n\t\tfontStyles = FONT_STYLES;\n\t\tfontWeights = FONT_WEIGHTS;\n\t}\n\n\t// Use default styles and weights if there are no available styles or weights from the provided font faces.\n\tfontStyles = fontStyles.length === 0 ? FONT_STYLES : fontStyles;\n\tfontWeights = fontWeights.length === 0 ? FONT_WEIGHTS : fontWeights;\n\n\t// Generate combined font style and weight options for available fonts.\n\tfontStyles.forEach( ( { name: styleName, value: styleValue } ) => {\n\t\tfontWeights.forEach( ( { name: weightName, value: weightValue } ) => {\n\t\t\tconst optionName =\n\t\t\t\tstyleValue === 'normal'\n\t\t\t\t\t? weightName\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Font weight name. 2: Font style name. */\n\t\t\t\t\t\t\t__( '%1$s %2$s' ),\n\t\t\t\t\t\t\tweightName,\n\t\t\t\t\t\t\tstyleName\n\t\t\t\t\t );\n\n\t\t\tcombinedStyleAndWeightOptions.push( {\n\t\t\t\tkey: `${ styleValue }-${ weightValue }`,\n\t\t\t\tname: optionName,\n\t\t\t\tstyle: {\n\t\t\t\t\tfontStyle: styleValue,\n\t\t\t\t\tfontWeight: weightValue,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t} );\n\n\treturn {\n\t\tfontStyles,\n\t\tfontWeights,\n\t\tcombinedStyleAndWeightOptions,\n\t\tisSystemFont,\n\t\tisVariableFont,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/utils/pasting.js
CHANGED
|
@@ -55,22 +55,14 @@ function getPasteEventData({
|
|
|
55
55
|
}) {
|
|
56
56
|
let plainText = '';
|
|
57
57
|
let html = '';
|
|
58
|
-
|
|
59
|
-
// IE11 only supports `Text` as an argument for `getData` and will
|
|
60
|
-
// otherwise throw an invalid argument error, so we try the standard
|
|
61
|
-
// arguments first, then fallback to `Text` if they fail.
|
|
62
58
|
try {
|
|
63
59
|
plainText = clipboardData.getData('text/plain');
|
|
64
60
|
html = clipboardData.getData('text/html');
|
|
65
|
-
} catch (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// don't support clipboardData at all, so allow default
|
|
71
|
-
// behaviour.
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
61
|
+
} catch (error) {
|
|
62
|
+
// Some browsers like UC Browser paste plain text by default and
|
|
63
|
+
// don't support clipboardData at all, so allow default
|
|
64
|
+
// behaviour.
|
|
65
|
+
return;
|
|
74
66
|
}
|
|
75
67
|
|
|
76
68
|
// Remove Windows-specific metadata appended within copied HTML text.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dom","require","removeWindowsFragments","html","startStr","startIdx","indexOf","substring","length","endStr","endIdx","removeCharsetMetaTag","metaTag","startsWith","slice","getPasteEventData","clipboardData","plainText","getData","
|
|
1
|
+
{"version":3,"names":["_dom","require","removeWindowsFragments","html","startStr","startIdx","indexOf","substring","length","endStr","endIdx","removeCharsetMetaTag","metaTag","startsWith","slice","getPasteEventData","clipboardData","plainText","getData","error","files","getFilesFromDataTransfer","shouldDismissPastedFiles","type","IMAGE_TAG","match","IMG_WITH_LOCAL_SRC"],"sources":["@wordpress/block-editor/src/utils/pasting.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getFilesFromDataTransfer } from '@wordpress/dom';\n\n/**\n * Normalizes a given string of HTML to remove the Windows-specific \"Fragment\"\n * comments and any preceding and trailing content.\n *\n * @param {string} html the html to be normalized\n * @return {string} the normalized html\n */\nfunction removeWindowsFragments( html ) {\n\tconst startStr = '<!--StartFragment-->';\n\tconst startIdx = html.indexOf( startStr );\n\tif ( startIdx > -1 ) {\n\t\thtml = html.substring( startIdx + startStr.length );\n\t} else {\n\t\t// No point looking for EndFragment\n\t\treturn html;\n\t}\n\n\tconst endStr = '<!--EndFragment-->';\n\tconst endIdx = html.indexOf( endStr );\n\tif ( endIdx > -1 ) {\n\t\thtml = html.substring( 0, endIdx );\n\t}\n\n\treturn html;\n}\n\n/**\n * Removes the charset meta tag inserted by Chromium.\n * See:\n * - https://github.com/WordPress/gutenberg/issues/33585\n * - https://bugs.chromium.org/p/chromium/issues/detail?id=1264616#c4\n *\n * @param {string} html the html to be stripped of the meta tag.\n * @return {string} the cleaned html\n */\nfunction removeCharsetMetaTag( html ) {\n\tconst metaTag = `<meta charset='utf-8'>`;\n\n\tif ( html.startsWith( metaTag ) ) {\n\t\treturn html.slice( metaTag.length );\n\t}\n\n\treturn html;\n}\n\nexport function getPasteEventData( { clipboardData } ) {\n\tlet plainText = '';\n\tlet html = '';\n\n\ttry {\n\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\thtml = clipboardData.getData( 'text/html' );\n\t} catch ( error ) {\n\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t// don't support clipboardData at all, so allow default\n\t\t// behaviour.\n\t\treturn;\n\t}\n\n\t// Remove Windows-specific metadata appended within copied HTML text.\n\thtml = removeWindowsFragments( html );\n\n\t// Strip meta tag.\n\thtml = removeCharsetMetaTag( html );\n\n\tconst files = getFilesFromDataTransfer( clipboardData );\n\n\tif ( files.length && ! shouldDismissPastedFiles( files, html ) ) {\n\t\treturn { files };\n\t}\n\n\treturn { html, plainText, files: [] };\n}\n\n/**\n * Given a collection of DataTransfer files and HTML and plain text strings,\n * determine whether the files are to be dismissed in favor of the HTML.\n *\n * Certain office-type programs, like Microsoft Word or Apple Numbers,\n * will, upon copy, generate a screenshot of the content being copied and\n * attach it to the clipboard alongside the actual rich text that the user\n * sought to copy. In those cases, we should let Gutenberg handle the rich text\n * content and not the screenshot, since this allows Gutenberg to insert\n * meaningful blocks, like paragraphs, lists or even tables.\n *\n * @param {File[]} files File objects obtained from a paste event\n * @param {string} html HTML content obtained from a paste event\n * @return {boolean} True if the files should be dismissed\n */\nexport function shouldDismissPastedFiles( files, html /*, plainText */ ) {\n\t// The question is only relevant when there is actual HTML content and when\n\t// there is exactly one image file.\n\tif (\n\t\thtml &&\n\t\tfiles?.length === 1 &&\n\t\tfiles[ 0 ].type.indexOf( 'image/' ) === 0\n\t) {\n\t\t// A single <img> tag found in the HTML source suggests that the\n\t\t// content being pasted revolves around an image. Sometimes there are\n\t\t// other elements found, like <figure>, but we assume that the user's\n\t\t// intention is to paste the actual image file.\n\t\tconst IMAGE_TAG = /<\\s*img\\b/gi;\n\t\tif ( html.match( IMAGE_TAG )?.length !== 1 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Even when there is exactly one <img> tag in the HTML payload, we\n\t\t// choose to weed out local images, i.e. those whose source starts with\n\t\t// \"file://\". These payloads occur in specific configurations, such as\n\t\t// when copying an entire document from Microsoft Word, that contains\n\t\t// text and exactly one image, and pasting that content using Google\n\t\t// Chrome.\n\t\tconst IMG_WITH_LOCAL_SRC = /<\\s*img\\b[^>]*\\bsrc=\"file:\\/\\//i;\n\t\tif ( html.match( IMG_WITH_LOCAL_SRC ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,sBAAsBA,CAAEC,IAAI,EAAG;EACvC,MAAMC,QAAQ,GAAG,sBAAsB;EACvC,MAAMC,QAAQ,GAAGF,IAAI,CAACG,OAAO,CAAEF,QAAS,CAAC;EACzC,IAAKC,QAAQ,GAAG,CAAC,CAAC,EAAG;IACpBF,IAAI,GAAGA,IAAI,CAACI,SAAS,CAAEF,QAAQ,GAAGD,QAAQ,CAACI,MAAO,CAAC;EACpD,CAAC,MAAM;IACN;IACA,OAAOL,IAAI;EACZ;EAEA,MAAMM,MAAM,GAAG,oBAAoB;EACnC,MAAMC,MAAM,GAAGP,IAAI,CAACG,OAAO,CAAEG,MAAO,CAAC;EACrC,IAAKC,MAAM,GAAG,CAAC,CAAC,EAAG;IAClBP,IAAI,GAAGA,IAAI,CAACI,SAAS,CAAE,CAAC,EAAEG,MAAO,CAAC;EACnC;EAEA,OAAOP,IAAI;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,oBAAoBA,CAAER,IAAI,EAAG;EACrC,MAAMS,OAAO,GAAI,wBAAuB;EAExC,IAAKT,IAAI,CAACU,UAAU,CAAED,OAAQ,CAAC,EAAG;IACjC,OAAOT,IAAI,CAACW,KAAK,CAAEF,OAAO,CAACJ,MAAO,CAAC;EACpC;EAEA,OAAOL,IAAI;AACZ;AAEO,SAASY,iBAAiBA,CAAE;EAAEC;AAAc,CAAC,EAAG;EACtD,IAAIC,SAAS,GAAG,EAAE;EAClB,IAAId,IAAI,GAAG,EAAE;EAEb,IAAI;IACHc,SAAS,GAAGD,aAAa,CAACE,OAAO,CAAE,YAAa,CAAC;IACjDf,IAAI,GAAGa,aAAa,CAACE,OAAO,CAAE,WAAY,CAAC;EAC5C,CAAC,CAAC,OAAQC,KAAK,EAAG;IACjB;IACA;IACA;IACA;EACD;;EAEA;EACAhB,IAAI,GAAGD,sBAAsB,CAAEC,IAAK,CAAC;;EAErC;EACAA,IAAI,GAAGQ,oBAAoB,CAAER,IAAK,CAAC;EAEnC,MAAMiB,KAAK,GAAG,IAAAC,6BAAwB,EAAEL,aAAc,CAAC;EAEvD,IAAKI,KAAK,CAACZ,MAAM,IAAI,CAAEc,wBAAwB,CAAEF,KAAK,EAAEjB,IAAK,CAAC,EAAG;IAChE,OAAO;MAAEiB;IAAM,CAAC;EACjB;EAEA,OAAO;IAAEjB,IAAI;IAAEc,SAAS;IAAEG,KAAK,EAAE;EAAG,CAAC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,wBAAwBA,CAAEF,KAAK,EAAEjB,IAAI,CAAC,kBAAmB;EACxE;EACA;EACA,IACCA,IAAI,IACJiB,KAAK,EAAEZ,MAAM,KAAK,CAAC,IACnBY,KAAK,CAAE,CAAC,CAAE,CAACG,IAAI,CAACjB,OAAO,CAAE,QAAS,CAAC,KAAK,CAAC,EACxC;IACD;IACA;IACA;IACA;IACA,MAAMkB,SAAS,GAAG,aAAa;IAC/B,IAAKrB,IAAI,CAACsB,KAAK,CAAED,SAAU,CAAC,EAAEhB,MAAM,KAAK,CAAC,EAAG;MAC5C,OAAO,IAAI;IACZ;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMkB,kBAAkB,GAAG,iCAAiC;IAC5D,IAAKvB,IAAI,CAACsB,KAAK,CAAEC,kBAAmB,CAAC,EAAG;MACvC,OAAO,IAAI;IACZ;EACD;EAEA,OAAO,KAAK;AACb","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ function AlignmentUI({
|
|
|
26
26
|
onChange,
|
|
27
27
|
alignmentControls = DEFAULT_ALIGNMENT_CONTROLS,
|
|
28
28
|
label = __('Align text'),
|
|
29
|
-
|
|
29
|
+
description = __('Change text alignment'),
|
|
30
30
|
isCollapsed = true,
|
|
31
31
|
isToolbar
|
|
32
32
|
}) {
|
|
@@ -45,7 +45,7 @@ function AlignmentUI({
|
|
|
45
45
|
isCollapsed
|
|
46
46
|
} : {
|
|
47
47
|
toggleProps: {
|
|
48
|
-
|
|
48
|
+
description
|
|
49
49
|
},
|
|
50
50
|
popoverProps: POPOVER_PROPS
|
|
51
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","isRTL","ToolbarDropdownMenu","ToolbarGroup","alignLeft","alignRight","alignCenter","jsx","_jsx","DEFAULT_ALIGNMENT_CONTROLS","icon","title","align","POPOVER_PROPS","placement","AlignmentUI","value","onChange","alignmentControls","label","
|
|
1
|
+
{"version":3,"names":["__","isRTL","ToolbarDropdownMenu","ToolbarGroup","alignLeft","alignRight","alignCenter","jsx","_jsx","DEFAULT_ALIGNMENT_CONTROLS","icon","title","align","POPOVER_PROPS","placement","AlignmentUI","value","onChange","alignmentControls","label","description","isCollapsed","isToolbar","applyOrUnset","undefined","activeAlignment","find","control","setIcon","UIComponent","extraProps","toggleProps","popoverProps","controls","map","isActive","role","onClick"],"sources":["@wordpress/block-editor/src/components/alignment-control/ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { ToolbarDropdownMenu, ToolbarGroup } from '@wordpress/components';\nimport { alignLeft, alignRight, alignCenter } from '@wordpress/icons';\n\nconst DEFAULT_ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align text left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align text center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align text right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction AlignmentUI( {\n\tvalue,\n\tonChange,\n\talignmentControls = DEFAULT_ALIGNMENT_CONTROLS,\n\tlabel = __( 'Align text' ),\n\tdescription = __( 'Change text alignment' ),\n\tisCollapsed = true,\n\tisToolbar,\n} ) {\n\tfunction applyOrUnset( align ) {\n\t\treturn () => onChange( value === align ? undefined : align );\n\t}\n\n\tconst activeAlignment = alignmentControls.find(\n\t\t( control ) => control.align === value\n\t);\n\n\tfunction setIcon() {\n\t\tif ( activeAlignment ) {\n\t\t\treturn activeAlignment.icon;\n\t\t}\n\t\treturn isRTL() ? alignRight : alignLeft;\n\t}\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst extraProps = isToolbar\n\t\t? { isCollapsed }\n\t\t: {\n\t\t\t\ttoggleProps: {\n\t\t\t\t\tdescription,\n\t\t\t\t},\n\t\t\t\tpopoverProps: POPOVER_PROPS,\n\t\t };\n\n\treturn (\n\t\t<UIComponent\n\t\t\ticon={ setIcon() }\n\t\t\tlabel={ label }\n\t\t\tcontrols={ alignmentControls.map( ( control ) => {\n\t\t\t\tconst { align } = control;\n\t\t\t\tconst isActive = value === align;\n\n\t\t\t\treturn {\n\t\t\t\t\t...control,\n\t\t\t\t\tisActive,\n\t\t\t\t\trole: isCollapsed ? 'menuitemradio' : undefined,\n\t\t\t\t\tonClick: applyOrUnset( align ),\n\t\t\t\t};\n\t\t\t} ) }\n\t\t\t{ ...extraProps }\n\t\t/>\n\t);\n}\n\nexport default AlignmentUI;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SAASC,mBAAmB,EAAEC,YAAY,QAAQ,uBAAuB;AACzE,SAASC,SAAS,EAAEC,UAAU,EAAEC,WAAW,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtE,MAAMC,0BAA0B,GAAG,CAClC;EACCC,IAAI,EAAEN,SAAS;EACfO,KAAK,EAAEX,EAAE,CAAE,iBAAkB,CAAC;EAC9BY,KAAK,EAAE;AACR,CAAC,EACD;EACCF,IAAI,EAAEJ,WAAW;EACjBK,KAAK,EAAEX,EAAE,CAAE,mBAAoB,CAAC;EAChCY,KAAK,EAAE;AACR,CAAC,EACD;EACCF,IAAI,EAAEL,UAAU;EAChBM,KAAK,EAAEX,EAAE,CAAE,kBAAmB,CAAC;EAC/BY,KAAK,EAAE;AACR,CAAC,CACD;AAED,MAAMC,aAAa,GAAG;EACrBC,SAAS,EAAE;AACZ,CAAC;AAED,SAASC,WAAWA,CAAE;EACrBC,KAAK;EACLC,QAAQ;EACRC,iBAAiB,GAAGT,0BAA0B;EAC9CU,KAAK,GAAGnB,EAAE,CAAE,YAAa,CAAC;EAC1BoB,WAAW,GAAGpB,EAAE,CAAE,uBAAwB,CAAC;EAC3CqB,WAAW,GAAG,IAAI;EAClBC;AACD,CAAC,EAAG;EACH,SAASC,YAAYA,CAAEX,KAAK,EAAG;IAC9B,OAAO,MAAMK,QAAQ,CAAED,KAAK,KAAKJ,KAAK,GAAGY,SAAS,GAAGZ,KAAM,CAAC;EAC7D;EAEA,MAAMa,eAAe,GAAGP,iBAAiB,CAACQ,IAAI,CAC3CC,OAAO,IAAMA,OAAO,CAACf,KAAK,KAAKI,KAClC,CAAC;EAED,SAASY,OAAOA,CAAA,EAAG;IAClB,IAAKH,eAAe,EAAG;MACtB,OAAOA,eAAe,CAACf,IAAI;IAC5B;IACA,OAAOT,KAAK,CAAC,CAAC,GAAGI,UAAU,GAAGD,SAAS;EACxC;EAEA,MAAMyB,WAAW,GAAGP,SAAS,GAAGnB,YAAY,GAAGD,mBAAmB;EAClE,MAAM4B,UAAU,GAAGR,SAAS,GACzB;IAAED;EAAY,CAAC,GACf;IACAU,WAAW,EAAE;MACZX;IACD,CAAC;IACDY,YAAY,EAAEnB;EACd,CAAC;EAEJ,oBACCL,IAAA,CAACqB,WAAW;IACXnB,IAAI,EAAGkB,OAAO,CAAC,CAAG;IAClBT,KAAK,EAAGA,KAAO;IACfc,QAAQ,EAAGf,iBAAiB,CAACgB,GAAG,CAAIP,OAAO,IAAM;MAChD,MAAM;QAAEf;MAAM,CAAC,GAAGe,OAAO;MACzB,MAAMQ,QAAQ,GAAGnB,KAAK,KAAKJ,KAAK;MAEhC,OAAO;QACN,GAAGe,OAAO;QACVQ,QAAQ;QACRC,IAAI,EAAEf,WAAW,GAAG,eAAe,GAAGG,SAAS;QAC/Ca,OAAO,EAAEd,YAAY,CAAEX,KAAM;MAC9B,CAAC;IACF,CAAE,CAAG;IAAA,GACAkB;EAAU,CACf,CAAC;AAEJ;AAEA,eAAef,WAAW","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","__","ToolbarDropdownMenu","ToolbarGroup","MenuGroup","MenuItem","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","DEFAULT_CONTROL","jsx","_jsx","Fragment","_Fragment","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","UIComponent","commonProps","icon","label","extraProps","map","name","controlName","isActive","role","onClick","toggleProps","
|
|
1
|
+
{"version":3,"names":["clsx","__","ToolbarDropdownMenu","ToolbarGroup","MenuGroup","MenuItem","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","DEFAULT_CONTROL","jsx","_jsx","Fragment","_Fragment","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","UIComponent","commonProps","icon","label","extraProps","map","name","controlName","isActive","role","onClick","toggleProps","description","children","onClose","className","info","title","isSelected","iconPosition"],"sources":["@wordpress/block-editor/src/components/block-alignment-control/ui.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\nimport { BLOCK_ALIGNMENTS_CONTROLS, DEFAULT_CONTROL } from './constants';\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst UIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst commonProps = {\n\t\ticon: activeAlignmentControl\n\t\t\t? activeAlignmentControl.icon\n\t\t\t: defaultAlignmentControl.icon,\n\t\tlabel: __( 'Align' ),\n\t};\n\tconst extraProps = isToolbar\n\t\t? {\n\t\t\t\tisCollapsed,\n\t\t\t\tcontrols: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ controlName ],\n\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\tvalue === controlName ||\n\t\t\t\t\t\t\t( ! value && controlName === 'none' ),\n\t\t\t\t\t\trole: isCollapsed ? 'menuitemradio' : undefined,\n\t\t\t\t\t\tonClick: () => onChangeAlignment( controlName ),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t }\n\t\t: {\n\t\t\t\ttoggleProps: { description: __( 'Change alignment' ) },\n\t\t\t\tchildren: ( { onClose } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup className=\"block-editor-block-alignment-control__menu-group\">\n\t\t\t\t\t\t\t\t{ enabledControls.map(\n\t\t\t\t\t\t\t\t\t( { name: controlName, info } ) => {\n\t\t\t\t\t\t\t\t\t\tconst { icon, title } =\n\t\t\t\t\t\t\t\t\t\t\tBLOCK_ALIGNMENTS_CONTROLS[\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t// If no value is provided, mark as selected the `none` option.\n\t\t\t\t\t\t\t\t\t\tconst isSelected =\n\t\t\t\t\t\t\t\t\t\t\tcontrolName === value ||\n\t\t\t\t\t\t\t\t\t\t\t( ! value &&\n\t\t\t\t\t\t\t\t\t\t\t\tcontrolName === 'none' );\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ controlName }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active': isSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrolName\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\t\tinfo={ info }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t };\n\n\treturn <UIComponent { ...commonProps } { ...extraProps } />;\n}\n\nexport default BlockAlignmentUI;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","ToolbarDropdownMenu","ToolbarGroup","BottomSheetSelectControl","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","DEFAULT_CONTROL","POPOVER_PROPS","jsx","_jsx","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","isBottomSheetControl","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","toolbarUIComponent","UIComponent","commonProps","label","extraProps","options","map","name","controlName","control","title","icon","isActive","onClick","popoverProps","toggleProps","
|
|
1
|
+
{"version":3,"names":["__","ToolbarDropdownMenu","ToolbarGroup","BottomSheetSelectControl","useAvailableAlignments","BLOCK_ALIGNMENTS_CONTROLS","DEFAULT_CONTROL","POPOVER_PROPS","jsx","_jsx","BlockAlignmentUI","value","onChange","controls","isToolbar","isCollapsed","isBottomSheetControl","enabledControls","hasEnabledControls","length","onChangeAlignment","align","includes","undefined","activeAlignmentControl","defaultAlignmentControl","toolbarUIComponent","UIComponent","commonProps","label","extraProps","options","map","name","controlName","control","title","icon","isActive","onClick","popoverProps","toggleProps","description"],"sources":["@wordpress/block-editor/src/components/block-alignment-control/ui.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tBottomSheetSelectControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useAvailableAlignments from './use-available-alignments';\nimport {\n\tBLOCK_ALIGNMENTS_CONTROLS,\n\tDEFAULT_CONTROL,\n\tPOPOVER_PROPS,\n} from './constants';\n\nfunction BlockAlignmentUI( {\n\tvalue,\n\tonChange,\n\tcontrols,\n\tisToolbar,\n\tisCollapsed = true,\n\tisBottomSheetControl = false,\n} ) {\n\tconst enabledControls = useAvailableAlignments( controls );\n\tconst hasEnabledControls = !! enabledControls.length;\n\n\tif ( ! hasEnabledControls ) {\n\t\treturn null;\n\t}\n\n\tfunction onChangeAlignment( align ) {\n\t\tonChange( [ value, 'none' ].includes( align ) ? undefined : align );\n\t}\n\n\tconst activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[ value ];\n\tconst defaultAlignmentControl =\n\t\tBLOCK_ALIGNMENTS_CONTROLS[ DEFAULT_CONTROL ];\n\n\tconst toolbarUIComponent = isToolbar ? ToolbarGroup : ToolbarDropdownMenu;\n\tconst UIComponent = isBottomSheetControl\n\t\t? BottomSheetSelectControl\n\t\t: toolbarUIComponent;\n\n\tconst commonProps = {\n\t\tlabel: __( 'Align' ),\n\t};\n\tconst extraProps = isBottomSheetControl\n\t\t? {\n\t\t\t\toptions: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\tconst control = BLOCK_ALIGNMENTS_CONTROLS[ controlName ];\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: controlName,\n\t\t\t\t\t\tlabel: control.title,\n\t\t\t\t\t\ticon: control.icon,\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t\tvalue: activeAlignmentControl ? value : 'none',\n\t\t\t\tonChange: ( align ) => onChangeAlignment( align ),\n\t\t }\n\t\t: {\n\t\t\t\ticon: activeAlignmentControl\n\t\t\t\t\t? activeAlignmentControl.icon\n\t\t\t\t\t: defaultAlignmentControl.icon,\n\t\t\t\tisCollapsed: isToolbar ? isCollapsed : undefined,\n\t\t\t\tcontrols: enabledControls.map( ( { name: controlName } ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...BLOCK_ALIGNMENTS_CONTROLS[ controlName ],\n\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\tvalue === controlName ||\n\t\t\t\t\t\t\t( ! value && controlName === 'none' ),\n\t\t\t\t\t\tonClick: () => onChangeAlignment( controlName ),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t\tpopoverProps: POPOVER_PROPS,\n\t\t\t\ttoggleProps: { description: __( 'Change alignment' ) },\n\t\t };\n\n\treturn <UIComponent { ...commonProps } { ...extraProps } />;\n}\n\nexport default BlockAlignmentUI;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,mBAAmB,EACnBC,YAAY,EACZC,wBAAwB,QAClB,uBAAuB;;AAE9B;AACA;AACA;AACA,OAAOC,sBAAsB,MAAM,4BAA4B;AAC/D,SACCC,yBAAyB,EACzBC,eAAe,EACfC,aAAa,QACP,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErB,SAASC,gBAAgBA,CAAE;EAC1BC,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACRC,SAAS;EACTC,WAAW,GAAG,IAAI;EAClBC,oBAAoB,GAAG;AACxB,CAAC,EAAG;EACH,MAAMC,eAAe,GAAGb,sBAAsB,CAAES,QAAS,CAAC;EAC1D,MAAMK,kBAAkB,GAAG,CAAC,CAAED,eAAe,CAACE,MAAM;EAEpD,IAAK,CAAED,kBAAkB,EAAG;IAC3B,OAAO,IAAI;EACZ;EAEA,SAASE,iBAAiBA,CAAEC,KAAK,EAAG;IACnCT,QAAQ,CAAE,CAAED,KAAK,EAAE,MAAM,CAAE,CAACW,QAAQ,CAAED,KAAM,CAAC,GAAGE,SAAS,GAAGF,KAAM,CAAC;EACpE;EAEA,MAAMG,sBAAsB,GAAGnB,yBAAyB,CAAEM,KAAK,CAAE;EACjE,MAAMc,uBAAuB,GAC5BpB,yBAAyB,CAAEC,eAAe,CAAE;EAE7C,MAAMoB,kBAAkB,GAAGZ,SAAS,GAAGZ,YAAY,GAAGD,mBAAmB;EACzE,MAAM0B,WAAW,GAAGX,oBAAoB,GACrCb,wBAAwB,GACxBuB,kBAAkB;EAErB,MAAME,WAAW,GAAG;IACnBC,KAAK,EAAE7B,EAAE,CAAE,OAAQ;EACpB,CAAC;EACD,MAAM8B,UAAU,GAAGd,oBAAoB,GACpC;IACAe,OAAO,EAAEd,eAAe,CAACe,GAAG,CAAE,CAAE;MAAEC,IAAI,EAAEC;IAAY,CAAC,KAAM;MAC1D,MAAMC,OAAO,GAAG9B,yBAAyB,CAAE6B,WAAW,CAAE;MACxD,OAAO;QACNvB,KAAK,EAAEuB,WAAW;QAClBL,KAAK,EAAEM,OAAO,CAACC,KAAK;QACpBC,IAAI,EAAEF,OAAO,CAACE;MACf,CAAC;IACF,CAAE,CAAC;IACH1B,KAAK,EAAEa,sBAAsB,GAAGb,KAAK,GAAG,MAAM;IAC9CC,QAAQ,EAAIS,KAAK,IAAMD,iBAAiB,CAAEC,KAAM;EAChD,CAAC,GACD;IACAgB,IAAI,EAAEb,sBAAsB,GACzBA,sBAAsB,CAACa,IAAI,GAC3BZ,uBAAuB,CAACY,IAAI;IAC/BtB,WAAW,EAAED,SAAS,GAAGC,WAAW,GAAGQ,SAAS;IAChDV,QAAQ,EAAEI,eAAe,CAACe,GAAG,CAAE,CAAE;MAAEC,IAAI,EAAEC;IAAY,CAAC,KAAM;MAC3D,OAAO;QACN,GAAG7B,yBAAyB,CAAE6B,WAAW,CAAE;QAC3CI,QAAQ,EACP3B,KAAK,KAAKuB,WAAW,IACnB,CAAEvB,KAAK,IAAIuB,WAAW,KAAK,MAAQ;QACtCK,OAAO,EAAEA,CAAA,KAAMnB,iBAAiB,CAAEc,WAAY;MAC/C,CAAC;IACF,CAAE,CAAC;IACHM,YAAY,EAAEjC,aAAa;IAC3BkC,WAAW,EAAE;MAAEC,WAAW,EAAE1C,EAAE,CAAE,kBAAmB;IAAE;EACrD,CAAC;EAEJ,oBAAOS,IAAA,CAACkB,WAAW;IAAA,GAAMC,WAAW;IAAA,GAAQE;EAAU,CAAI,CAAC;AAC5D;AAEA,eAAepB,gBAAgB","ignoreList":[]}
|
|
@@ -12,6 +12,8 @@ import { chevronRightSmall, Icon } from '@wordpress/icons';
|
|
|
12
12
|
import BlockTitle from '../block-title';
|
|
13
13
|
import { store as blockEditorStore } from '../../store';
|
|
14
14
|
import { unlock } from '../../lock-unlock';
|
|
15
|
+
import { __unstableUseBlockRef as useBlockRef } from '../block-list/use-block-props/use-block-refs';
|
|
16
|
+
import getEditorRegion from '../../utils/get-editor-region';
|
|
15
17
|
|
|
16
18
|
/**
|
|
17
19
|
* Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.
|
|
@@ -48,6 +50,10 @@ function BlockBreadcrumb({
|
|
|
48
50
|
}, []);
|
|
49
51
|
const rootLabel = rootLabelText || __('Document');
|
|
50
52
|
|
|
53
|
+
// We don't care about this specific ref, but this is a way
|
|
54
|
+
// to get a ref within the editor canvas so we can focus it later.
|
|
55
|
+
const blockRef = useBlockRef(clientId);
|
|
56
|
+
|
|
51
57
|
/*
|
|
52
58
|
* Disable reason: The `list` ARIA role is redundant but
|
|
53
59
|
* Safari+VoiceOver won't announce the list otherwise.
|
|
@@ -63,7 +69,12 @@ function BlockBreadcrumb({
|
|
|
63
69
|
children: [hasSelection && /*#__PURE__*/_jsx(Button, {
|
|
64
70
|
className: "block-editor-block-breadcrumb__button",
|
|
65
71
|
variant: "tertiary",
|
|
66
|
-
onClick:
|
|
72
|
+
onClick: () => {
|
|
73
|
+
// Find the block editor wrapper for the selected block
|
|
74
|
+
const blockEditor = blockRef.current?.closest('.editor-styles-wrapper');
|
|
75
|
+
clearSelectedBlock();
|
|
76
|
+
getEditorRegion(blockEditor)?.focus();
|
|
77
|
+
},
|
|
67
78
|
children: rootLabel
|
|
68
79
|
}), !hasSelection && rootLabel, !!clientId && /*#__PURE__*/_jsx(Icon, {
|
|
69
80
|
icon: chevronRightSmall,
|