@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_dom","_components","_icons","_index","_interopRequireDefault","_jsxRuntime","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","showLightboxSetting","lightboxEnabled","onSetLightbox","resetLightbox","isOpen","setIsOpen","useState","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","useRef","wrapperRef","useEffect","current","nextFocusTarget","focus","focusable","find","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","lightbox","enabled","preventDefault","onLinkRemove","linkDestinations","title","__","icon","image","page","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","jsxs","__experimentalVStack","spacing","children","jsx","ToggleControl","__nextHasNoMarginBottom","label","onChange","checked","TextControl","linkEditorValue","hideLightboxPanel","showLinkEditor","urlLabel","PopoverChildren","className","Icon","fullscreen","Button","linkOff","onClick","size","default","LinkEditor","onChangeInputValue","onSubmit","Fragment","LinkViewer","onEditLinkClick","ToolbarButton","linkIcon","ref","isActive","anchor","onClose","renderSettings","additionalControls","NavigableMenu","map","link","MenuItem","iconPosition","info","offset","exports","__experimentalImageURLInputUI"],"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport {\n\tToolbarButton,\n\tNavigableMenu,\n\tButton,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tlink as linkIcon,\n\timage,\n\tpage,\n\tfullscreen,\n\tlinkOff,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n\tshowLightboxSetting,\n\tlightboxEnabled,\n\tonSetLightbox,\n\tresetLightbox,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = () => {\n\t\tsetIsOpen( true );\n\t};\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\tconst wrapperRef = useRef();\n\n\tuseEffect( () => {\n\t\tif ( ! wrapperRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextFocusTarget =\n\t\t\tfocus.focusable.find( wrapperRef.current )[ 0 ] ||\n\t\t\twrapperRef.current;\n\t\tnextFocusTarget.focus();\n\t}, [ isEditingLink, url, lightboxEnabled ] );\n\n\tconst startEditLink = () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t};\n\n\tconst stopEditLink = () => {\n\t\tsetIsEditingLink( false );\n\t};\n\n\tconst closeLinkUI = () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t};\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t};\n\n\tconst onSubmitLinkChange = () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: urlInput,\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t\tlightbox: { enabled: false },\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t};\n\n\tconst onLinkRemove = () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t};\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Link to image file' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon: image,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Link to attachment page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: page,\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<VStack spacing=\"3\">\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link CSS class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</VStack>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\tconst hideLightboxPanel =\n\t\t! lightboxEnabled || ( lightboxEnabled && ! showLightboxSetting );\n\tconst showLinkEditor = ! linkEditorValue && hideLightboxPanel;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\tconst PopoverChildren = () => {\n\t\tif (\n\t\t\tlightboxEnabled &&\n\t\t\tshowLightboxSetting &&\n\t\t\t! url &&\n\t\t\t! isEditingLink\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<div className=\"block-editor-url-popover__expand-on-click\">\n\t\t\t\t\t<Icon icon={ fullscreen } />\n\t\t\t\t\t<div className=\"text\">\n\t\t\t\t\t\t<p>{ __( 'Expand on click' ) }</p>\n\t\t\t\t\t\t<p className=\"description\">\n\t\t\t\t\t\t\t{ __( 'Scales the image with a lightbox effect' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Disable expand on click' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSetLightbox( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ( ! url || isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( url && ! isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonLinkRemove();\n\t\t\t\t\t\t\tresetLightbox();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\tisActive={\n\t\t\t\t\t!! url || ( lightboxEnabled && showLightboxSetting )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tref={ wrapperRef }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={\n\t\t\t\t\t\thideLightboxPanel ? () => advancedOptions : null\n\t\t\t\t\t}\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\tshowLinkEditor && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ getLinkDestinations().map( ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t{ showLightboxSetting && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey=\"expand-on-click\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__expand-on-click\"\n\t\t\t\t\t\t\t\t\t\ticon={ fullscreen }\n\t\t\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Scale the image with a lightbox effect.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonChangeUrl( {\n\t\t\t\t\t\t\t\t\t\t\t\tlinkDestination:\n\t\t\t\t\t\t\t\t\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t\t\t\t\t\t\t\t\t\thref: '',\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\tonSetLightbox( true );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ __( 'Expand on click' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t>\n\t\t\t\t\t{ PopoverChildren() }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_dom","_components","_icons","_index","_interopRequireDefault","_jsxRuntime","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","NEW_TAB_REL","ImageURLInputUI","linkDestination","onChangeUrl","url","mediaType","mediaUrl","mediaLink","linkTarget","linkClass","rel","showLightboxSetting","lightboxEnabled","onSetLightbox","resetLightbox","isOpen","setIsOpen","useState","popoverAnchor","setPopoverAnchor","openLinkUI","isEditingLink","setIsEditingLink","urlInput","setUrlInput","autocompleteRef","useRef","wrapperRef","useEffect","current","nextFocusTarget","focus","focusable","find","startEditLink","stopEditLink","closeLinkUI","getUpdatedLinkTargetSettings","value","newLinkTarget","undefined","updatedRel","rels","split","forEach","relVal","includes","push","join","filter","length","onFocusOutside","event","autocompleteElement","contains","target","onSubmitLinkChange","selectedDestination","getLinkDestinations","destination","href","lightbox","enabled","preventDefault","onLinkRemove","linkDestinations","title","__","icon","image","page","onSetHref","linkDestinationInput","onSetNewTab","updatedLinkTarget","onSetLinkRel","onSetLinkClass","advancedOptions","jsxs","__experimentalVStack","spacing","children","jsx","ToggleControl","__nextHasNoMarginBottom","label","onChange","checked","TextControl","linkEditorValue","hideLightboxPanel","showLinkEditor","urlLabel","PopoverChildren","className","Icon","fullscreen","Button","linkOff","onClick","size","default","LinkEditor","onChangeInputValue","onSubmit","Fragment","LinkViewer","onEditLinkClick","ToolbarButton","linkIcon","ref","isActive","anchor","onClose","renderSettings","additionalControls","NavigableMenu","map","link","MenuItem","iconPosition","info","offset","exports","__experimentalImageURLInputUI"],"sources":["@wordpress/block-editor/src/components/url-popover/image-url-input-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport {\n\tToolbarButton,\n\tNavigableMenu,\n\tButton,\n\tMenuItem,\n\tToggleControl,\n\tTextControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tlink as linkIcon,\n\timage,\n\tpage,\n\tfullscreen,\n\tlinkOff,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLPopover from './index';\n\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\n\nconst ImageURLInputUI = ( {\n\tlinkDestination,\n\tonChangeUrl,\n\turl,\n\tmediaType = 'image',\n\tmediaUrl,\n\tmediaLink,\n\tlinkTarget,\n\tlinkClass,\n\trel,\n\tshowLightboxSetting,\n\tlightboxEnabled,\n\tonSetLightbox,\n\tresetLightbox,\n} ) => {\n\tconst [ isOpen, setIsOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst openLinkUI = () => {\n\t\tsetIsOpen( true );\n\t};\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState( false );\n\tconst [ urlInput, setUrlInput ] = useState( null );\n\n\tconst autocompleteRef = useRef( null );\n\tconst wrapperRef = useRef();\n\n\tuseEffect( () => {\n\t\tif ( ! wrapperRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tconst nextFocusTarget =\n\t\t\tfocus.focusable.find( wrapperRef.current )[ 0 ] ||\n\t\t\twrapperRef.current;\n\t\tnextFocusTarget.focus();\n\t}, [ isEditingLink, url, lightboxEnabled ] );\n\n\tconst startEditLink = () => {\n\t\tif (\n\t\t\tlinkDestination === LINK_DESTINATION_MEDIA ||\n\t\t\tlinkDestination === LINK_DESTINATION_ATTACHMENT\n\t\t) {\n\t\t\tsetUrlInput( '' );\n\t\t}\n\t\tsetIsEditingLink( true );\n\t};\n\n\tconst stopEditLink = () => {\n\t\tsetIsEditingLink( false );\n\t};\n\n\tconst closeLinkUI = () => {\n\t\tsetUrlInput( null );\n\t\tstopEditLink();\n\t\tsetIsOpen( false );\n\t};\n\n\tconst getUpdatedLinkTargetSettings = ( value ) => {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel;\n\t\tif ( newLinkTarget ) {\n\t\t\tconst rels = ( rel ?? '' ).split( ' ' );\n\t\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\t\tif ( ! rels.includes( relVal ) ) {\n\t\t\t\t\trels.push( relVal );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tupdatedRel = rels.join( ' ' );\n\t\t} else {\n\t\t\tconst rels = ( rel ?? '' )\n\t\t\t\t.split( ' ' )\n\t\t\t\t.filter(\n\t\t\t\t\t( relVal ) => NEW_TAB_REL.includes( relVal ) === false\n\t\t\t\t);\n\t\t\tupdatedRel = rels.length ? rels.join( ' ' ) : undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t};\n\t};\n\n\tconst onFocusOutside = () => {\n\t\treturn ( event ) => {\n\t\t\t// The autocomplete suggestions list renders in a separate popover (in a portal),\n\t\t\t// so onFocusOutside fails to detect that a click on a suggestion occurred in the\n\t\t\t// LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n\t\t\t// return to avoid the popover being closed.\n\t\t\tconst autocompleteElement = autocompleteRef.current;\n\t\t\tif (\n\t\t\t\tautocompleteElement &&\n\t\t\t\tautocompleteElement.contains( event.target )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsOpen( false );\n\t\t\tsetUrlInput( null );\n\t\t\tstopEditLink();\n\t\t};\n\t};\n\n\tconst onSubmitLinkChange = () => {\n\t\treturn ( event ) => {\n\t\t\tif ( urlInput ) {\n\t\t\t\t// It is possible the entered URL actually matches a named link destination.\n\t\t\t\t// This check will ensure our link destination is correct.\n\t\t\t\tconst selectedDestination =\n\t\t\t\t\tgetLinkDestinations().find(\n\t\t\t\t\t\t( destination ) => destination.url === urlInput\n\t\t\t\t\t)?.linkDestination || LINK_DESTINATION_CUSTOM;\n\n\t\t\t\tonChangeUrl( {\n\t\t\t\t\thref: urlInput,\n\t\t\t\t\tlinkDestination: selectedDestination,\n\t\t\t\t\tlightbox: { enabled: false },\n\t\t\t\t} );\n\t\t\t}\n\t\t\tstopEditLink();\n\t\t\tsetUrlInput( null );\n\t\t\tevent.preventDefault();\n\t\t};\n\t};\n\n\tconst onLinkRemove = () => {\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\thref: '',\n\t\t} );\n\t};\n\n\tconst getLinkDestinations = () => {\n\t\tconst linkDestinations = [\n\t\t\t{\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t\ttitle: __( 'Link to image file' ),\n\t\t\t\turl: mediaType === 'image' ? mediaUrl : undefined,\n\t\t\t\ticon: image,\n\t\t\t},\n\t\t];\n\t\tif ( mediaType === 'image' && mediaLink ) {\n\t\t\tlinkDestinations.push( {\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t\ttitle: __( 'Link to attachment page' ),\n\t\t\t\turl: mediaType === 'image' ? mediaLink : undefined,\n\t\t\t\ticon: page,\n\t\t\t} );\n\t\t}\n\t\treturn linkDestinations;\n\t};\n\n\tconst onSetHref = ( value ) => {\n\t\tconst linkDestinations = getLinkDestinations();\n\t\tlet linkDestinationInput;\n\t\tif ( ! value ) {\n\t\t\tlinkDestinationInput = LINK_DESTINATION_NONE;\n\t\t} else {\n\t\t\tlinkDestinationInput = (\n\t\t\t\tlinkDestinations.find( ( destination ) => {\n\t\t\t\t\treturn destination.url === value;\n\t\t\t\t} ) || { linkDestination: LINK_DESTINATION_CUSTOM }\n\t\t\t).linkDestination;\n\t\t}\n\t\tonChangeUrl( {\n\t\t\tlinkDestination: linkDestinationInput,\n\t\t\thref: value,\n\t\t} );\n\t};\n\n\tconst onSetNewTab = ( value ) => {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings( value );\n\t\tonChangeUrl( updatedLinkTarget );\n\t};\n\n\tconst onSetLinkRel = ( value ) => {\n\t\tonChangeUrl( { rel: value } );\n\t};\n\n\tconst onSetLinkClass = ( value ) => {\n\t\tonChangeUrl( { linkClass: value } );\n\t};\n\n\tconst advancedOptions = (\n\t\t<VStack spacing=\"3\">\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonChange={ onSetNewTab }\n\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\tvalue={ rel ?? '' }\n\t\t\t\tonChange={ onSetLinkRel }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link CSS class' ) }\n\t\t\t\tvalue={ linkClass || '' }\n\t\t\t\tonChange={ onSetLinkClass }\n\t\t\t/>\n\t\t</VStack>\n\t);\n\n\tconst linkEditorValue = urlInput !== null ? urlInput : url;\n\tconst hideLightboxPanel =\n\t\t! lightboxEnabled || ( lightboxEnabled && ! showLightboxSetting );\n\tconst showLinkEditor = ! linkEditorValue && hideLightboxPanel;\n\n\tconst urlLabel = (\n\t\tgetLinkDestinations().find(\n\t\t\t( destination ) => destination.linkDestination === linkDestination\n\t\t) || {}\n\t).title;\n\n\tconst PopoverChildren = () => {\n\t\tif (\n\t\t\tlightboxEnabled &&\n\t\t\tshowLightboxSetting &&\n\t\t\t! url &&\n\t\t\t! isEditingLink\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<div className=\"block-editor-url-popover__expand-on-click\">\n\t\t\t\t\t<Icon icon={ fullscreen } />\n\t\t\t\t\t<div className=\"text\">\n\t\t\t\t\t\t<p>{ __( 'Expand on click' ) }</p>\n\t\t\t\t\t\t<p className=\"description\">\n\t\t\t\t\t\t\t{ __( 'Scales the image with a lightbox effect' ) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Disable expand on click' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonSetLightbox?.( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ( ! url || isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<URLPopover.LinkEditor\n\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\tvalue={ linkEditorValue }\n\t\t\t\t\tonChangeInputValue={ setUrlInput }\n\t\t\t\t\tonSubmit={ onSubmitLinkChange() }\n\t\t\t\t\tautocompleteRef={ autocompleteRef }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else if ( url && ! isEditingLink ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<URLPopover.LinkViewer\n\t\t\t\t\t\tclassName=\"block-editor-format-toolbar__link-container-content\"\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tonEditLinkClick={ startEditLink }\n\t\t\t\t\t\turlLabel={ urlLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Remove link' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonLinkRemove();\n\t\t\t\t\t\t\tresetLightbox?.();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ linkIcon }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tonClick={ openLinkUI }\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\tisActive={\n\t\t\t\t\t!! url || ( lightboxEnabled && showLightboxSetting )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isOpen && (\n\t\t\t\t<URLPopover\n\t\t\t\t\tref={ wrapperRef }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonFocusOutside={ onFocusOutside() }\n\t\t\t\t\tonClose={ closeLinkUI }\n\t\t\t\t\trenderSettings={\n\t\t\t\t\t\thideLightboxPanel ? () => advancedOptions : null\n\t\t\t\t\t}\n\t\t\t\t\tadditionalControls={\n\t\t\t\t\t\tshowLinkEditor && (\n\t\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t\t{ getLinkDestinations().map( ( link ) => (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ link.linkDestination }\n\t\t\t\t\t\t\t\t\t\ticon={ link.icon }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonSetHref( link.url );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ link.title }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t{ showLightboxSetting && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tkey=\"expand-on-click\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__expand-on-click\"\n\t\t\t\t\t\t\t\t\t\ticon={ fullscreen }\n\t\t\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Scale the image with a lightbox effect.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetUrlInput( null );\n\t\t\t\t\t\t\t\t\t\t\tonChangeUrl( {\n\t\t\t\t\t\t\t\t\t\t\t\tlinkDestination:\n\t\t\t\t\t\t\t\t\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t\t\t\t\t\t\t\t\t\thref: '',\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\tonSetLightbox?.( true );\n\t\t\t\t\t\t\t\t\t\t\tstopEditLink();\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\t\t{ __( 'Expand on click' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t>\n\t\t\t\t\t{ PopoverChildren() }\n\t\t\t\t</URLPopover>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport { ImageURLInputUI as __experimentalImageURLInputUI };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -63,6 +63,9 @@ const URLPopover = (0, _element.forwardRef)(({
|
|
|
63
63
|
};
|
|
64
64
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Popover, {
|
|
65
65
|
ref: ref,
|
|
66
|
+
role: "dialog",
|
|
67
|
+
"aria-modal": "true",
|
|
68
|
+
"aria-label": (0, _i18n.__)('Edit URL'),
|
|
66
69
|
className: "block-editor-url-popover",
|
|
67
70
|
focusOnMount: focusOnMount,
|
|
68
71
|
placement: computedPlacement,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_components","_icons","_deprecated","_interopRequireDefault","_linkViewer","_linkEditor","_lockUnlock","_jsxRuntime","__experimentalPopoverLegacyPositionToPlacement","unlock","componentsPrivateApis","DEFAULT_PLACEMENT","URLPopover","forwardRef","additionalControls","children","renderSettings","placement","focusOnMount","position","popoverProps","ref","undefined","deprecated","since","alternative","computedPlacement","isSettingsExpanded","setIsSettingsExpanded","useState","showSettings","toggleSettingsVisibility","jsxs","Popover","className","shift","variant","jsx","Button","icon","chevronDown","label","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_components","_icons","_deprecated","_interopRequireDefault","_linkViewer","_linkEditor","_lockUnlock","_jsxRuntime","__experimentalPopoverLegacyPositionToPlacement","unlock","componentsPrivateApis","DEFAULT_PLACEMENT","URLPopover","forwardRef","additionalControls","children","renderSettings","placement","focusOnMount","position","popoverProps","ref","undefined","deprecated","since","alternative","computedPlacement","isSettingsExpanded","setIsSettingsExpanded","useState","showSettings","toggleSettingsVisibility","jsxs","Popover","role","__","className","shift","variant","jsx","Button","icon","chevronDown","label","onClick","size","LinkEditor","LinkViewer","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/url-popover/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPopover,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport LinkViewer from './link-viewer';\nimport LinkEditor from './link-editor';\nimport { unlock } from '../../lock-unlock';\n\nconst { __experimentalPopoverLegacyPositionToPlacement } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst DEFAULT_PLACEMENT = 'bottom';\n\nconst URLPopover = forwardRef(\n\t(\n\t\t{\n\t\t\tadditionalControls,\n\t\t\tchildren,\n\t\t\trenderSettings,\n\t\t\t// The DEFAULT_PLACEMENT value is assigned inside the function's body\n\t\t\tplacement,\n\t\t\tfocusOnMount = 'firstElement',\n\t\t\t// Deprecated\n\t\t\tposition,\n\t\t\t// Rest\n\t\t\t...popoverProps\n\t\t},\n\t\tref\n\t) => {\n\t\tif ( position !== undefined ) {\n\t\t\tdeprecated( '`position` prop in wp.blockEditor.URLPopover', {\n\t\t\t\tsince: '6.2',\n\t\t\t\talternative: '`placement` prop',\n\t\t\t} );\n\t\t}\n\n\t\t// Compute popover's placement:\n\t\t// - give priority to `placement` prop, if defined\n\t\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t\t// - finally, fallback to the DEFAULT_PLACEMENT.\n\t\tlet computedPlacement;\n\t\tif ( placement !== undefined ) {\n\t\t\tcomputedPlacement = placement;\n\t\t} else if ( position !== undefined ) {\n\t\t\tcomputedPlacement =\n\t\t\t\t__experimentalPopoverLegacyPositionToPlacement( position );\n\t\t}\n\t\tcomputedPlacement = computedPlacement || DEFAULT_PLACEMENT;\n\n\t\tconst [ isSettingsExpanded, setIsSettingsExpanded ] = useState( false );\n\n\t\tconst showSettings = !! renderSettings && isSettingsExpanded;\n\n\t\tconst toggleSettingsVisibility = () => {\n\t\t\tsetIsSettingsExpanded( ! isSettingsExpanded );\n\t\t};\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tref={ ref }\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\taria-label={ __( 'Edit URL' ) }\n\t\t\t\tclassName=\"block-editor-url-popover\"\n\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\tplacement={ computedPlacement }\n\t\t\t\tshift\n\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-popover__input-container\">\n\t\t\t\t\t<div className=\"block-editor-url-popover__row\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t{ !! renderSettings && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"block-editor-url-popover__settings-toggle\"\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ __( 'Link settings' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleSettingsVisibility }\n\t\t\t\t\t\t\t\taria-expanded={ isSettingsExpanded }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{ showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__settings\">\n\t\t\t\t\t\t{ renderSettings() }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ additionalControls && ! showSettings && (\n\t\t\t\t\t<div className=\"block-editor-url-popover__additional-controls\">\n\t\t\t\t\t\t{ additionalControls }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</Popover>\n\t\t);\n\t}\n);\n\nURLPopover.LinkEditor = LinkEditor;\n\nURLPopover.LinkViewer = LinkViewer;\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-popover/README.md\n */\nexport default URLPopover;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@ var _inspectorControls = _interopRequireDefault(require("../components/inspector
|
|
|
17
17
|
var _utils = require("./utils");
|
|
18
18
|
var _store = require("../store");
|
|
19
19
|
var _backgroundPanel = _interopRequireWildcard(require("../components/global-styles/background-panel"));
|
|
20
|
+
var _privateKeys = require("../store/private-keys");
|
|
20
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -127,11 +128,31 @@ function BackgroundImagePanel({
|
|
|
127
128
|
setAttributes,
|
|
128
129
|
settings
|
|
129
130
|
}) {
|
|
130
|
-
const
|
|
131
|
+
const {
|
|
132
|
+
style,
|
|
133
|
+
inheritedValue,
|
|
134
|
+
_links
|
|
135
|
+
} = (0, _data.useSelect)(select => {
|
|
136
|
+
const {
|
|
137
|
+
getBlockAttributes,
|
|
138
|
+
getSettings
|
|
139
|
+
} = select(_store.store);
|
|
140
|
+
const _settings = getSettings();
|
|
141
|
+
return {
|
|
142
|
+
style: getBlockAttributes(clientId)?.style,
|
|
143
|
+
_links: _settings[_privateKeys.globalStylesLinksDataKey],
|
|
144
|
+
/*
|
|
145
|
+
* @TODO 1. Pass inherited value down to all block style controls,
|
|
146
|
+
* See: packages/block-editor/src/hooks/style.js
|
|
147
|
+
* @TODO 2. Add support for block style variations,
|
|
148
|
+
* See implementation: packages/block-editor/src/hooks/block-style-variation.js
|
|
149
|
+
*/
|
|
150
|
+
inheritedValue: _settings[_privateKeys.globalStylesDataKey]?.blocks?.[name]
|
|
151
|
+
};
|
|
152
|
+
}, [clientId, name]);
|
|
131
153
|
if (!(0, _backgroundPanel.useHasBackgroundPanel)(settings) || !hasBackgroundSupport(name, 'backgroundImage')) {
|
|
132
154
|
return null;
|
|
133
155
|
}
|
|
134
|
-
const defaultControls = (0, _blocks.getBlockSupport)(name, [BACKGROUND_SUPPORT_KEY, '__experimentalDefaultControls']);
|
|
135
156
|
const onChange = newStyle => {
|
|
136
157
|
setAttributes({
|
|
137
158
|
style: (0, _utils.cleanEmptyObject)(newStyle)
|
|
@@ -145,13 +166,14 @@ function BackgroundImagePanel({
|
|
|
145
166
|
}
|
|
146
167
|
};
|
|
147
168
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_backgroundPanel.default, {
|
|
169
|
+
inheritedValue: inheritedValue,
|
|
148
170
|
as: BackgroundInspectorControl,
|
|
149
171
|
panelId: clientId,
|
|
150
|
-
defaultControls: defaultControls,
|
|
151
172
|
defaultValues: BACKGROUND_DEFAULT_VALUES,
|
|
152
173
|
settings: updatedSettings,
|
|
153
174
|
onChange: onChange,
|
|
154
|
-
value: style
|
|
175
|
+
value: style,
|
|
176
|
+
themeFileURIs: _links?.['wp:theme-file']
|
|
155
177
|
});
|
|
156
178
|
}
|
|
157
179
|
var _default = exports.default = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_data","_element","_inspectorControls","_interopRequireDefault","_utils","_store","_backgroundPanel","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BACKGROUND_SUPPORT_KEY","exports","BACKGROUND_DEFAULT_VALUES","backgroundSize","hasBackgroundSupport","blockName","feature","support","getBlockSupport","backgroundImage","backgroundRepeat","setBackgroundStyleDefaults","backgroundStyle","backgroundStylesWithDefaults","url","backgroundPosition","useBlockProps","name","style","background","backgroundStyles","getBackgroundImageClasses","hasBackgroundImageValue","BackgroundInspectorControl","children","resetAllFilter","useCallback","attributes","undefined","jsx","group","BackgroundImagePanel","clientId","setAttributes","settings","useSelect","select","blockEditorStore","getBlockAttributes","useHasBackgroundPanel","defaultControls","onChange","newStyle","cleanEmptyObject","updatedSettings","as","panelId","defaultValues","value","_default","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/background.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport { cleanEmptyObject } from './utils';\nimport { store as blockEditorStore } from '../store';\nimport {\n\tdefault as StylesBackgroundPanel,\n\tuseHasBackgroundPanel,\n\thasBackgroundImageValue,\n} from '../components/global-styles/background-panel';\n\nexport const BACKGROUND_SUPPORT_KEY = 'background';\n\n// Initial control values where no block style is set.\nconst BACKGROUND_DEFAULT_VALUES = {\n\tbackgroundSize: 'cover',\n};\n\n/**\n * Determine whether there is block support for background.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Background image feature to check for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBackgroundSupport( blockName, feature = 'any' ) {\n\tconst support = getBlockSupport( blockName, BACKGROUND_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn (\n\t\t\t!! support?.backgroundImage ||\n\t\t\t!! support?.backgroundSize ||\n\t\t\t!! support?.backgroundRepeat\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\nexport function setBackgroundStyleDefaults( backgroundStyle ) {\n\tif ( ! backgroundStyle ) {\n\t\treturn;\n\t}\n\n\tconst backgroundImage = backgroundStyle?.backgroundImage;\n\tlet backgroundStylesWithDefaults;\n\n\t// Set block background defaults.\n\tif ( !! backgroundImage?.url ) {\n\t\tif ( ! backgroundStyle?.backgroundSize ) {\n\t\t\tbackgroundStylesWithDefaults = {\n\t\t\t\tbackgroundSize: 'cover',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t'contain' === backgroundStyle?.backgroundSize &&\n\t\t\t! backgroundStyle?.backgroundPosition\n\t\t) {\n\t\t\tbackgroundStylesWithDefaults = {\n\t\t\t\tbackgroundPosition: 'center',\n\t\t\t};\n\t\t}\n\t}\n\n\treturn backgroundStylesWithDefaults;\n}\n\nfunction useBlockProps( { name, style } ) {\n\tif (\n\t\t! hasBackgroundSupport( name ) ||\n\t\t! style?.background?.backgroundImage\n\t) {\n\t\treturn;\n\t}\n\n\tconst backgroundStyles = setBackgroundStyleDefaults( style?.background );\n\n\tif ( ! backgroundStyles ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\tstyle: {\n\t\t\t...backgroundStyles,\n\t\t},\n\t};\n}\n\n/**\n * Generates a CSS class name if an background image is set.\n *\n * @param {Object} style A block's style attribute.\n *\n * @return {string} CSS class name.\n */\nexport function getBackgroundImageClasses( style ) {\n\treturn hasBackgroundImageValue( style ) ? 'has-background' : '';\n}\n\nfunction BackgroundInspectorControl( { children } ) {\n\tconst resetAllFilter = useCallback( ( attributes ) => {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tstyle: {\n\t\t\t\t...attributes.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\treturn (\n\t\t<InspectorControls group=\"background\" resetAllFilter={ resetAllFilter }>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BackgroundImagePanel( {\n\tclientId,\n\tname,\n\tsetAttributes,\n\tsettings,\n} ) {\n\tconst style = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\n\tif (\n\t\t! useHasBackgroundPanel( settings ) ||\n\t\t! hasBackgroundSupport( name, 'backgroundImage' )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = getBlockSupport( name, [\n\t\tBACKGROUND_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst updatedSettings = {\n\t\t...settings,\n\t\tbackground: {\n\t\t\t...settings.background,\n\t\t\tbackgroundSize:\n\t\t\t\tsettings?.background?.backgroundSize &&\n\t\t\t\thasBackgroundSupport( name, 'backgroundSize' ),\n\t\t},\n\t};\n\n\treturn (\n\t\t<StylesBackgroundPanel\n\t\t\tas={ BackgroundInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tdefaultControls={ defaultControls }\n\t\t\tdefaultValues={ BACKGROUND_DEFAULT_VALUES }\n\t\t\tsettings={ updatedSettings }\n\t\t\tonChange={ onChange }\n\t\t\tvalue={ style }\n\t\t/>\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport: hasBackgroundSupport,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_blocks","require","_data","_element","_inspectorControls","_interopRequireDefault","_utils","_store","_backgroundPanel","_interopRequireWildcard","_privateKeys","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","BACKGROUND_SUPPORT_KEY","exports","BACKGROUND_DEFAULT_VALUES","backgroundSize","hasBackgroundSupport","blockName","feature","support","getBlockSupport","backgroundImage","backgroundRepeat","setBackgroundStyleDefaults","backgroundStyle","backgroundStylesWithDefaults","url","backgroundPosition","useBlockProps","name","style","background","backgroundStyles","getBackgroundImageClasses","hasBackgroundImageValue","BackgroundInspectorControl","children","resetAllFilter","useCallback","attributes","undefined","jsx","group","BackgroundImagePanel","clientId","setAttributes","settings","inheritedValue","_links","useSelect","select","getBlockAttributes","getSettings","blockEditorStore","_settings","globalStylesLinksDataKey","globalStylesDataKey","blocks","useHasBackgroundPanel","onChange","newStyle","cleanEmptyObject","updatedSettings","as","panelId","defaultValues","value","themeFileURIs","_default","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/background.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport { cleanEmptyObject } from './utils';\nimport { store as blockEditorStore } from '../store';\nimport {\n\tdefault as StylesBackgroundPanel,\n\tuseHasBackgroundPanel,\n\thasBackgroundImageValue,\n} from '../components/global-styles/background-panel';\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../store/private-keys';\n\nexport const BACKGROUND_SUPPORT_KEY = 'background';\n\n// Initial control values where no block style is set.\nconst BACKGROUND_DEFAULT_VALUES = {\n\tbackgroundSize: 'cover',\n};\n\n/**\n * Determine whether there is block support for background.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Background image feature to check for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBackgroundSupport( blockName, feature = 'any' ) {\n\tconst support = getBlockSupport( blockName, BACKGROUND_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn (\n\t\t\t!! support?.backgroundImage ||\n\t\t\t!! support?.backgroundSize ||\n\t\t\t!! support?.backgroundRepeat\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\nexport function setBackgroundStyleDefaults( backgroundStyle ) {\n\tif ( ! backgroundStyle ) {\n\t\treturn;\n\t}\n\n\tconst backgroundImage = backgroundStyle?.backgroundImage;\n\tlet backgroundStylesWithDefaults;\n\n\t// Set block background defaults.\n\tif ( !! backgroundImage?.url ) {\n\t\tif ( ! backgroundStyle?.backgroundSize ) {\n\t\t\tbackgroundStylesWithDefaults = {\n\t\t\t\tbackgroundSize: 'cover',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\t'contain' === backgroundStyle?.backgroundSize &&\n\t\t\t! backgroundStyle?.backgroundPosition\n\t\t) {\n\t\t\tbackgroundStylesWithDefaults = {\n\t\t\t\tbackgroundPosition: 'center',\n\t\t\t};\n\t\t}\n\t}\n\n\treturn backgroundStylesWithDefaults;\n}\n\nfunction useBlockProps( { name, style } ) {\n\tif (\n\t\t! hasBackgroundSupport( name ) ||\n\t\t! style?.background?.backgroundImage\n\t) {\n\t\treturn;\n\t}\n\n\tconst backgroundStyles = setBackgroundStyleDefaults( style?.background );\n\n\tif ( ! backgroundStyles ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\tstyle: {\n\t\t\t...backgroundStyles,\n\t\t},\n\t};\n}\n\n/**\n * Generates a CSS class name if an background image is set.\n *\n * @param {Object} style A block's style attribute.\n *\n * @return {string} CSS class name.\n */\nexport function getBackgroundImageClasses( style ) {\n\treturn hasBackgroundImageValue( style ) ? 'has-background' : '';\n}\n\nfunction BackgroundInspectorControl( { children } ) {\n\tconst resetAllFilter = useCallback( ( attributes ) => {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tstyle: {\n\t\t\t\t...attributes.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\treturn (\n\t\t<InspectorControls group=\"background\" resetAllFilter={ resetAllFilter }>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BackgroundImagePanel( {\n\tclientId,\n\tname,\n\tsetAttributes,\n\tsettings,\n} ) {\n\tconst { style, inheritedValue, _links } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst _settings = getSettings();\n\t\t\treturn {\n\t\t\t\tstyle: getBlockAttributes( clientId )?.style,\n\t\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t\t\t/*\n\t\t\t\t * @TODO 1. Pass inherited value down to all block style controls,\n\t\t\t\t * See: packages/block-editor/src/hooks/style.js\n\t\t\t\t * @TODO 2. Add support for block style variations,\n\t\t\t\t * See implementation: packages/block-editor/src/hooks/block-style-variation.js\n\t\t\t\t */\n\t\t\t\tinheritedValue:\n\t\t\t\t\t_settings[ globalStylesDataKey ]?.blocks?.[ name ],\n\t\t\t};\n\t\t},\n\t\t[ clientId, name ]\n\t);\n\n\tif (\n\t\t! useHasBackgroundPanel( settings ) ||\n\t\t! hasBackgroundSupport( name, 'backgroundImage' )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst updatedSettings = {\n\t\t...settings,\n\t\tbackground: {\n\t\t\t...settings.background,\n\t\t\tbackgroundSize:\n\t\t\t\tsettings?.background?.backgroundSize &&\n\t\t\t\thasBackgroundSupport( name, 'backgroundSize' ),\n\t\t},\n\t};\n\n\treturn (\n\t\t<StylesBackgroundPanel\n\t\t\tinheritedValue={ inheritedValue }\n\t\t\tas={ BackgroundInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tdefaultValues={ BACKGROUND_DEFAULT_VALUES }\n\t\t\tsettings={ updatedSettings }\n\t\t\tonChange={ onChange }\n\t\t\tvalue={ style }\n\t\t\tthemeFileURIs={ _links?.[ 'wp:theme-file' ] }\n\t\t/>\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport: hasBackgroundSupport,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,27 +38,13 @@ function BlockHooksControlPure({
|
|
|
38
38
|
name: blockName,
|
|
39
39
|
blockHooks
|
|
40
40
|
}) => blockHooks && name in blockHooks || ignoredHookedBlocks.includes(blockName)), [blockTypes, name, ignoredHookedBlocks]);
|
|
41
|
-
const {
|
|
42
|
-
blockIndex,
|
|
43
|
-
rootClientId,
|
|
44
|
-
innerBlocksLength
|
|
45
|
-
} = (0, _data.useSelect)(select => {
|
|
46
|
-
const {
|
|
47
|
-
getBlocks,
|
|
48
|
-
getBlockIndex,
|
|
49
|
-
getBlockRootClientId
|
|
50
|
-
} = select(_store.store);
|
|
51
|
-
return {
|
|
52
|
-
blockIndex: getBlockIndex(clientId),
|
|
53
|
-
innerBlocksLength: getBlocks(clientId)?.length,
|
|
54
|
-
rootClientId: getBlockRootClientId(clientId)
|
|
55
|
-
};
|
|
56
|
-
}, [clientId]);
|
|
57
41
|
const hookedBlockClientIds = (0, _data.useSelect)(select => {
|
|
58
42
|
const {
|
|
59
43
|
getBlocks,
|
|
44
|
+
getBlockRootClientId,
|
|
60
45
|
getGlobalBlockCount
|
|
61
46
|
} = select(_store.store);
|
|
47
|
+
const rootClientId = getBlockRootClientId(clientId);
|
|
62
48
|
const _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce((clientIds, block) => {
|
|
63
49
|
// If the block doesn't exist anywhere in the block tree,
|
|
64
50
|
// we know that we have to set the toggle to disabled.
|
|
@@ -108,7 +94,12 @@ function BlockHooksControlPure({
|
|
|
108
94
|
return _hookedBlockClientIds;
|
|
109
95
|
}
|
|
110
96
|
return EMPTY_OBJECT;
|
|
111
|
-
}, [hookedBlocksForCurrentBlock, name, clientId
|
|
97
|
+
}, [hookedBlocksForCurrentBlock, name, clientId]);
|
|
98
|
+
const {
|
|
99
|
+
getBlockIndex,
|
|
100
|
+
getBlockCount,
|
|
101
|
+
getBlockRootClientId
|
|
102
|
+
} = (0, _data.useSelect)(_store.store);
|
|
112
103
|
const {
|
|
113
104
|
insertBlock,
|
|
114
105
|
removeBlock
|
|
@@ -127,6 +118,9 @@ function BlockHooksControlPure({
|
|
|
127
118
|
return groups;
|
|
128
119
|
}, {});
|
|
129
120
|
const insertBlockIntoDesignatedLocation = (block, relativePosition) => {
|
|
121
|
+
const blockIndex = getBlockIndex(clientId);
|
|
122
|
+
const innerBlocksLength = getBlockCount(clientId);
|
|
123
|
+
const rootClientId = getBlockRootClientId(clientId);
|
|
130
124
|
switch (relativePosition) {
|
|
131
125
|
case 'before':
|
|
132
126
|
case 'after':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_components","_blocks","_data","_components2","_store","_jsxRuntime","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","metadata","ignoredHookedBlocks","blockTypes","useSelect","select","blocksStore","getBlockTypes","hookedBlocksForCurrentBlock","useMemo","filter","blockName","blockHooks","includes","blockIndex","rootClientId","innerBlocksLength","getBlocks","getBlockIndex","getBlockRootClientId","blockEditorStore","length","hookedBlockClientIds","getGlobalBlockCount","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","undefined","hookedBlock","find","candidate","Object","values","insertBlock","removeBlock","useDispatch","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","jsx","InspectorControls","children","jsxs","PanelBody","className","title","__","initialOpen","keys","map","vendor","Fragment","checked","ToggleControl","label","__experimentalHStack","justify","BlockIcon","icon","onChange","createBlock","_default","exports","default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\tPanelBody,\n\tToggleControl,\n} from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { BlockIcon, InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( {\n\tname,\n\tclientId,\n\tmetadata: { ignoredHookedBlocks = [] } = {},\n} ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\t// A hooked block added via a filter will not be exposed through a block\n\t// type's `blockHooks` property; however, if the containing layout has been\n\t// modified, it will be present in the anchor block's `ignoredHookedBlocks`\n\t// metadata.\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { name: blockName, blockHooks } ) =>\n\t\t\t\t\t( blockHooks && name in blockHooks ) ||\n\t\t\t\t\tignoredHookedBlocks.includes( blockName )\n\t\t\t),\n\t\t[ blockTypes, name, ignoredHookedBlocks ]\n\t);\n\n\tconst { blockIndex, rootClientId, innerBlocksLength } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockIndex, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblockIndex: getBlockIndex( clientId ),\n\t\t\t\tinnerBlocksLength: getBlocks( clientId )?.length,\n\t\t\t\trootClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(\n\t\t\t\t( clientIds, block ) => {\n\t\t\t\t\t// If the block doesn't exist anywhere in the block tree,\n\t\t\t\t\t// we know that we have to set the toggle to disabled.\n\t\t\t\t\tif ( getGlobalBlockCount( block.name ) === 0 ) {\n\t\t\t\t\t\treturn clientIds;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relativePosition = block?.blockHooks?.[ name ];\n\t\t\t\t\tlet candidates;\n\n\t\t\t\t\tswitch ( relativePosition ) {\n\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t// Any of the current block's siblings (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked block (inserted `before` or `after` the current one), as the block\n\t\t\t\t\t\t\t// might've been automatically inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( rootClientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'first_child':\n\t\t\t\t\t\tcase 'last_child':\n\t\t\t\t\t\t\t// Any of the current block's child blocks (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked first or last child block, as the block might've been automatically\n\t\t\t\t\t\t\t// inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( clientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\t// If we haven't found a blockHooks field with a relative position for the hooked\n\t\t\t\t\t\t\t// block, it means that it was added by a filter. In this case, we look for the block\n\t\t\t\t\t\t\t// both among the current block's siblings and its children.\n\t\t\t\t\t\t\tcandidates = [\n\t\t\t\t\t\t\t\t...getBlocks( rootClientId ),\n\t\t\t\t\t\t\t\t...getBlocks( clientId ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hookedBlock = candidates?.find(\n\t\t\t\t\t\t( candidate ) => candidate.name === block.name\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the block exists in the designated location, we consider it hooked\n\t\t\t\t\t// and show the toggle as enabled.\n\t\t\t\t\tif ( hookedBlock ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...clientIds,\n\t\t\t\t\t\t\t[ block.name ]: hookedBlock.clientId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// If no hooked block was found in any of its designated locations,\n\t\t\t\t\t// we set the toggle to disabled.\n\t\t\t\t\treturn clientIds;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tif ( Object.values( _hookedBlockClientIds ).length > 0 ) {\n\t\t\t\treturn _hookedBlockClientIds;\n\t\t\t}\n\n\t\t\treturn EMPTY_OBJECT;\n\t\t},\n\t\t[ hookedBlocksForCurrentBlock, name, clientId, rootClientId ]\n\t);\n\n\tconst { insertBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\tif ( ! hookedBlocksForCurrentBlock.length ) {\n\t\treturn null;\n\t}\n\n\t// Group by block namespace (i.e. prefix before the slash).\n\tconst groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce(\n\t\t( groups, block ) => {\n\t\t\tconst [ namespace ] = block.name.split( '/' );\n\t\t\tif ( ! groups[ namespace ] ) {\n\t\t\t\tgroups[ namespace ] = [];\n\t\t\t}\n\t\t\tgroups[ namespace ].push( block );\n\t\t\treturn groups;\n\t\t},\n\t\t{}\n\t);\n\n\tconst insertBlockIntoDesignatedLocation = ( block, relativePosition ) => {\n\t\tswitch ( relativePosition ) {\n\t\t\tcase 'before':\n\t\t\tcase 'after':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\trelativePosition === 'after' ? blockIndex + 1 : blockIndex,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'first_child':\n\t\t\tcase 'last_child':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t// TODO: It'd be great if insertBlock() would accept negative indices for insertion.\n\t\t\t\t\trelativePosition === 'first_child' ? 0 : innerBlocksLength,\n\t\t\t\t\tclientId, // Insert as a child of the current block.\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase undefined:\n\t\t\t\t// If we do not know the relative position, it is because the block was\n\t\t\t\t// added via a filter. In this case, we default to inserting it after the\n\t\t\t\t// current block.\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\tclassName=\"block-editor-hooks__block-hooks\"\n\t\t\t\ttitle={ __( 'Plugins' ) }\n\t\t\t\tinitialOpen\n\t\t\t>\n\t\t\t\t<p className=\"block-editor-hooks__block-hooks-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Manage the inclusion of blocks added automatically by plugins.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Fragment key={ vendor }>\n\t\t\t\t\t\t\t<h3>{ vendor }</h3>\n\t\t\t\t\t\t\t{ groupedHookedBlocks[ vendor ].map( ( block ) => {\n\t\t\t\t\t\t\t\tconst checked =\n\t\t\t\t\t\t\t\t\tblock.name in hookedBlockClientIds;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\t\t\t\t\tkey={ block.title }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ block.icon }\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\t<span>{ block.title }</span>\n\t\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! checked ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Create and insert block.\n\t\t\t\t\t\t\t\t\t\t\t\tconst relativePosition =\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.blockHooks[ name ];\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlockIntoDesignatedLocation(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock( block.name ),\n\t\t\t\t\t\t\t\t\t\t\t\t\trelativePosition\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\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Remove block.\n\t\t\t\t\t\t\t\t\t\t\tremoveBlock(\n\t\t\t\t\t\t\t\t\t\t\t\thookedBlockClientIds[\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.name\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\tfalse\n\t\t\t\t\t\t\t\t\t\t\t);\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} ) }\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockHooksControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_components","_blocks","_data","_components2","_store","_jsxRuntime","EMPTY_OBJECT","BlockHooksControlPure","name","clientId","metadata","ignoredHookedBlocks","blockTypes","useSelect","select","blocksStore","getBlockTypes","hookedBlocksForCurrentBlock","useMemo","filter","blockName","blockHooks","includes","hookedBlockClientIds","getBlocks","getBlockRootClientId","getGlobalBlockCount","blockEditorStore","rootClientId","_hookedBlockClientIds","reduce","clientIds","block","relativePosition","candidates","undefined","hookedBlock","find","candidate","Object","values","length","getBlockIndex","getBlockCount","insertBlock","removeBlock","useDispatch","groupedHookedBlocks","groups","namespace","split","push","insertBlockIntoDesignatedLocation","blockIndex","innerBlocksLength","jsx","InspectorControls","children","jsxs","PanelBody","className","title","__","initialOpen","keys","map","vendor","Fragment","checked","ToggleControl","label","__experimentalHStack","justify","BlockIcon","icon","onChange","createBlock","_default","exports","default","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/block-hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalHStack as HStack,\n\tPanelBody,\n\tToggleControl,\n} from '@wordpress/components';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { BlockIcon, InspectorControls } from '../components';\nimport { store as blockEditorStore } from '../store';\n\nconst EMPTY_OBJECT = {};\n\nfunction BlockHooksControlPure( {\n\tname,\n\tclientId,\n\tmetadata: { ignoredHookedBlocks = [] } = {},\n} ) {\n\tconst blockTypes = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\n\t// A hooked block added via a filter will not be exposed through a block\n\t// type's `blockHooks` property; however, if the containing layout has been\n\t// modified, it will be present in the anchor block's `ignoredHookedBlocks`\n\t// metadata.\n\tconst hookedBlocksForCurrentBlock = useMemo(\n\t\t() =>\n\t\t\tblockTypes?.filter(\n\t\t\t\t( { name: blockName, blockHooks } ) =>\n\t\t\t\t\t( blockHooks && name in blockHooks ) ||\n\t\t\t\t\tignoredHookedBlocks.includes( blockName )\n\t\t\t),\n\t\t[ blockTypes, name, ignoredHookedBlocks ]\n\t);\n\n\tconst hookedBlockClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks, getBlockRootClientId, getGlobalBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst _hookedBlockClientIds = hookedBlocksForCurrentBlock.reduce(\n\t\t\t\t( clientIds, block ) => {\n\t\t\t\t\t// If the block doesn't exist anywhere in the block tree,\n\t\t\t\t\t// we know that we have to set the toggle to disabled.\n\t\t\t\t\tif ( getGlobalBlockCount( block.name ) === 0 ) {\n\t\t\t\t\t\treturn clientIds;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst relativePosition = block?.blockHooks?.[ name ];\n\t\t\t\t\tlet candidates;\n\n\t\t\t\t\tswitch ( relativePosition ) {\n\t\t\t\t\t\tcase 'before':\n\t\t\t\t\t\tcase 'after':\n\t\t\t\t\t\t\t// Any of the current block's siblings (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked block (inserted `before` or `after` the current one), as the block\n\t\t\t\t\t\t\t// might've been automatically inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( rootClientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'first_child':\n\t\t\t\t\t\tcase 'last_child':\n\t\t\t\t\t\t\t// Any of the current block's child blocks (with the right block type) qualifies\n\t\t\t\t\t\t\t// as a hooked first or last child block, as the block might've been automatically\n\t\t\t\t\t\t\t// inserted and then moved around a bit by the user.\n\t\t\t\t\t\t\tcandidates = getBlocks( clientId );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase undefined:\n\t\t\t\t\t\t\t// If we haven't found a blockHooks field with a relative position for the hooked\n\t\t\t\t\t\t\t// block, it means that it was added by a filter. In this case, we look for the block\n\t\t\t\t\t\t\t// both among the current block's siblings and its children.\n\t\t\t\t\t\t\tcandidates = [\n\t\t\t\t\t\t\t\t...getBlocks( rootClientId ),\n\t\t\t\t\t\t\t\t...getBlocks( clientId ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst hookedBlock = candidates?.find(\n\t\t\t\t\t\t( candidate ) => candidate.name === block.name\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the block exists in the designated location, we consider it hooked\n\t\t\t\t\t// and show the toggle as enabled.\n\t\t\t\t\tif ( hookedBlock ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...clientIds,\n\t\t\t\t\t\t\t[ block.name ]: hookedBlock.clientId,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// If no hooked block was found in any of its designated locations,\n\t\t\t\t\t// we set the toggle to disabled.\n\t\t\t\t\treturn clientIds;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tif ( Object.values( _hookedBlockClientIds ).length > 0 ) {\n\t\t\t\treturn _hookedBlockClientIds;\n\t\t\t}\n\n\t\t\treturn EMPTY_OBJECT;\n\t\t},\n\t\t[ hookedBlocksForCurrentBlock, name, clientId ]\n\t);\n\n\tconst { getBlockIndex, getBlockCount, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\tconst { insertBlock, removeBlock } = useDispatch( blockEditorStore );\n\n\tif ( ! hookedBlocksForCurrentBlock.length ) {\n\t\treturn null;\n\t}\n\n\t// Group by block namespace (i.e. prefix before the slash).\n\tconst groupedHookedBlocks = hookedBlocksForCurrentBlock.reduce(\n\t\t( groups, block ) => {\n\t\t\tconst [ namespace ] = block.name.split( '/' );\n\t\t\tif ( ! groups[ namespace ] ) {\n\t\t\t\tgroups[ namespace ] = [];\n\t\t\t}\n\t\t\tgroups[ namespace ].push( block );\n\t\t\treturn groups;\n\t\t},\n\t\t{}\n\t);\n\n\tconst insertBlockIntoDesignatedLocation = ( block, relativePosition ) => {\n\t\tconst blockIndex = getBlockIndex( clientId );\n\t\tconst innerBlocksLength = getBlockCount( clientId );\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\tswitch ( relativePosition ) {\n\t\t\tcase 'before':\n\t\t\tcase 'after':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\trelativePosition === 'after' ? blockIndex + 1 : blockIndex,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'first_child':\n\t\t\tcase 'last_child':\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\t// TODO: It'd be great if insertBlock() would accept negative indices for insertion.\n\t\t\t\t\trelativePosition === 'first_child' ? 0 : innerBlocksLength,\n\t\t\t\t\tclientId, // Insert as a child of the current block.\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase undefined:\n\t\t\t\t// If we do not know the relative position, it is because the block was\n\t\t\t\t// added via a filter. In this case, we default to inserting it after the\n\t\t\t\t// current block.\n\t\t\t\tinsertBlock(\n\t\t\t\t\tblock,\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\trootClientId, // Insert as a child of the current block's parent\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody\n\t\t\t\tclassName=\"block-editor-hooks__block-hooks\"\n\t\t\t\ttitle={ __( 'Plugins' ) }\n\t\t\t\tinitialOpen\n\t\t\t>\n\t\t\t\t<p className=\"block-editor-hooks__block-hooks-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Manage the inclusion of blocks added automatically by plugins.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ Object.keys( groupedHookedBlocks ).map( ( vendor ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Fragment key={ vendor }>\n\t\t\t\t\t\t\t<h3>{ vendor }</h3>\n\t\t\t\t\t\t\t{ groupedHookedBlocks[ vendor ].map( ( block ) => {\n\t\t\t\t\t\t\t\tconst checked =\n\t\t\t\t\t\t\t\t\tblock.name in hookedBlockClientIds;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ checked }\n\t\t\t\t\t\t\t\t\t\tkey={ block.title }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ block.icon }\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\t<span>{ block.title }</span>\n\t\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tif ( ! checked ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Create and insert block.\n\t\t\t\t\t\t\t\t\t\t\t\tconst relativePosition =\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.blockHooks[ name ];\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlockIntoDesignatedLocation(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock( block.name ),\n\t\t\t\t\t\t\t\t\t\t\t\t\trelativePosition\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\treturn;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Remove block.\n\t\t\t\t\t\t\t\t\t\t\tremoveBlock(\n\t\t\t\t\t\t\t\t\t\t\t\thookedBlockClientIds[\n\t\t\t\t\t\t\t\t\t\t\t\t\tblock.name\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\tfalse\n\t\t\t\t\t\t\t\t\t\t\t);\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} ) }\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default {\n\tedit: BlockHooksControlPure,\n\tattributeKeys: [ 'metadata' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,14 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.__unstableBlockStyleVariationOverridesWithConfig = __unstableBlockStyleVariationOverridesWithConfig;
|
|
6
7
|
exports.default = void 0;
|
|
8
|
+
exports.getVariationStylesWithRefValues = getVariationStylesWithRefValues;
|
|
7
9
|
var _blocks = require("@wordpress/blocks");
|
|
8
10
|
var _data = require("@wordpress/data");
|
|
9
11
|
var _element = require("@wordpress/element");
|
|
10
12
|
var _globalStyles = require("../components/global-styles");
|
|
11
13
|
var _utils = require("./utils");
|
|
14
|
+
var _object = require("../utils/object");
|
|
12
15
|
var _store = require("../store");
|
|
13
16
|
var _privateKeys = require("../store/private-keys");
|
|
17
|
+
var _lockUnlock = require("../lock-unlock");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
19
|
/**
|
|
15
20
|
* WordPress dependencies
|
|
16
21
|
*/
|
|
@@ -57,6 +62,163 @@ function getVariationNameFromClass(className, registeredStyles = []) {
|
|
|
57
62
|
}
|
|
58
63
|
return null;
|
|
59
64
|
}
|
|
65
|
+
|
|
66
|
+
// A helper component to apply a style override using the useStyleOverride hook.
|
|
67
|
+
function OverrideStyles({
|
|
68
|
+
override
|
|
69
|
+
}) {
|
|
70
|
+
(0, _utils.useStyleOverride)(override);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* This component is used to generate new block style variation overrides
|
|
75
|
+
* based on an incoming theme config. If a matching style is found in the config,
|
|
76
|
+
* a new override is created and returned. The overrides can be used in conjunction with
|
|
77
|
+
* useStyleOverride to apply the new styles to the editor. Its use is
|
|
78
|
+
* subject to change.
|
|
79
|
+
*
|
|
80
|
+
* @param {Object} props Props.
|
|
81
|
+
* @param {Object} props.config A global styles object, containing settings and styles.
|
|
82
|
+
* @return {JSX.Element|undefined} An array of new block variation overrides.
|
|
83
|
+
*/
|
|
84
|
+
function __unstableBlockStyleVariationOverridesWithConfig({
|
|
85
|
+
config
|
|
86
|
+
}) {
|
|
87
|
+
const {
|
|
88
|
+
getBlockStyles,
|
|
89
|
+
overrides
|
|
90
|
+
} = (0, _data.useSelect)(select => ({
|
|
91
|
+
getBlockStyles: select(_blocks.store).getBlockStyles,
|
|
92
|
+
overrides: (0, _lockUnlock.unlock)(select(_store.store)).getStyleOverrides()
|
|
93
|
+
}), []);
|
|
94
|
+
const {
|
|
95
|
+
getBlockName
|
|
96
|
+
} = (0, _data.useSelect)(_store.store);
|
|
97
|
+
const overridesWithConfig = (0, _element.useMemo)(() => {
|
|
98
|
+
if (!overrides?.length) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const newOverrides = [];
|
|
102
|
+
const overriddenClientIds = [];
|
|
103
|
+
for (const [, override] of overrides) {
|
|
104
|
+
if (override?.variation && override?.clientId &&
|
|
105
|
+
/*
|
|
106
|
+
* Because this component overwrites existing style overrides,
|
|
107
|
+
* filter out any overrides that are already present in the store.
|
|
108
|
+
*/
|
|
109
|
+
!overriddenClientIds.includes(override.clientId)) {
|
|
110
|
+
const blockName = getBlockName(override.clientId);
|
|
111
|
+
const configStyles = config?.styles?.blocks?.[blockName]?.variations?.[override.variation];
|
|
112
|
+
if (configStyles) {
|
|
113
|
+
const variationConfig = {
|
|
114
|
+
settings: config?.settings,
|
|
115
|
+
// The variation style data is all that is needed to generate
|
|
116
|
+
// the styles for the current application to a block. The variation
|
|
117
|
+
// name is updated to match the instance specific class name.
|
|
118
|
+
styles: {
|
|
119
|
+
blocks: {
|
|
120
|
+
[blockName]: {
|
|
121
|
+
variations: {
|
|
122
|
+
[`${override.variation}-${override.clientId}`]: configStyles
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const blockSelectors = (0, _globalStyles.getBlockSelectors)((0, _blocks.getBlockTypes)(), getBlockStyles, override.clientId);
|
|
129
|
+
const hasBlockGapSupport = false;
|
|
130
|
+
const hasFallbackGapSupport = true;
|
|
131
|
+
const disableLayoutStyles = true;
|
|
132
|
+
const disableRootPadding = true;
|
|
133
|
+
const variationStyles = (0, _globalStyles.toStyles)(variationConfig, blockSelectors, hasBlockGapSupport, hasFallbackGapSupport, disableLayoutStyles, disableRootPadding, {
|
|
134
|
+
blockGap: false,
|
|
135
|
+
blockStyles: true,
|
|
136
|
+
layoutStyles: false,
|
|
137
|
+
marginReset: false,
|
|
138
|
+
presets: false,
|
|
139
|
+
rootPadding: false,
|
|
140
|
+
variationStyles: true
|
|
141
|
+
});
|
|
142
|
+
newOverrides.push({
|
|
143
|
+
id: `${override.variation}-${override.clientId}`,
|
|
144
|
+
css: variationStyles,
|
|
145
|
+
__unstableType: 'variation',
|
|
146
|
+
variation: override.variation,
|
|
147
|
+
// The clientId will be stored with the override and used to ensure
|
|
148
|
+
// the order of overrides matches the order of blocks so that the
|
|
149
|
+
// correct CSS cascade is maintained.
|
|
150
|
+
clientId: override.clientId
|
|
151
|
+
});
|
|
152
|
+
overriddenClientIds.push(override.clientId);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return newOverrides;
|
|
157
|
+
}, [config, overrides, getBlockStyles, getBlockName]);
|
|
158
|
+
if (!overridesWithConfig || !overridesWithConfig.length) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
162
|
+
children: overridesWithConfig.map(override => /*#__PURE__*/(0, _jsxRuntime.jsx)(OverrideStyles, {
|
|
163
|
+
override: override
|
|
164
|
+
}, override.id))
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Retrieves any variation styles data and resolves any referenced values.
|
|
170
|
+
*
|
|
171
|
+
* @param {Object} globalStyles A complete global styles object, containing settings and styles.
|
|
172
|
+
* @param {string} name The name of the desired block type.
|
|
173
|
+
* @param {variation} variation The of the block style variation to retrieve data for.
|
|
174
|
+
*
|
|
175
|
+
* @return {Object|undefined} The global styles data for the specified variation.
|
|
176
|
+
*/
|
|
177
|
+
function getVariationStylesWithRefValues(globalStyles, name, variation) {
|
|
178
|
+
if (!globalStyles?.styles?.blocks?.[name]?.variations?.[variation]) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Helper to recursively look for `ref` values to resolve.
|
|
183
|
+
const replaceRefs = variationStyles => {
|
|
184
|
+
Object.keys(variationStyles).forEach(key => {
|
|
185
|
+
const value = variationStyles[key];
|
|
186
|
+
|
|
187
|
+
// Only process objects.
|
|
188
|
+
if (typeof value === 'object' && value !== null) {
|
|
189
|
+
// Process `ref` value if present.
|
|
190
|
+
if (value.ref !== undefined) {
|
|
191
|
+
if (typeof value.ref !== 'string' || value.ref.trim() === '') {
|
|
192
|
+
// Remove invalid ref.
|
|
193
|
+
delete variationStyles[key];
|
|
194
|
+
} else {
|
|
195
|
+
// Resolve `ref` value.
|
|
196
|
+
const refValue = (0, _object.getValueFromObjectPath)(globalStyles, value.ref);
|
|
197
|
+
if (refValue) {
|
|
198
|
+
variationStyles[key] = refValue;
|
|
199
|
+
} else {
|
|
200
|
+
delete variationStyles[key];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
// Recursively resolve `ref` values in nested objects.
|
|
205
|
+
replaceRefs(value);
|
|
206
|
+
|
|
207
|
+
// After recursion, if value is empty due to explicitly
|
|
208
|
+
// `undefined` ref value, remove it.
|
|
209
|
+
if (Object.keys(value).length === 0) {
|
|
210
|
+
delete variationStyles[key];
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
// Deep clone variation node to avoid mutating it within global styles and losing refs.
|
|
218
|
+
const styles = JSON.parse(JSON.stringify(globalStyles.styles.blocks[name].variations[variation]));
|
|
219
|
+
replaceRefs(styles);
|
|
220
|
+
return styles;
|
|
221
|
+
}
|
|
60
222
|
function useBlockStyleVariation(name, variation, clientId) {
|
|
61
223
|
// Prefer global styles data in GlobalStylesContext, which are available
|
|
62
224
|
// if in the site editor. Otherwise fall back to whatever is in the
|
|
@@ -75,11 +237,13 @@ function useBlockStyleVariation(name, variation, clientId) {
|
|
|
75
237
|
};
|
|
76
238
|
}, []);
|
|
77
239
|
return (0, _element.useMemo)(() => {
|
|
78
|
-
var _mergedConfig$styles, _mergedConfig$
|
|
79
|
-
const
|
|
80
|
-
const variationStyles = styles?.blocks?.[name]?.variations?.[variation];
|
|
81
|
-
return {
|
|
240
|
+
var _mergedConfig$setting, _mergedConfig$styles, _mergedConfig$setting2;
|
|
241
|
+
const variationStyles = getVariationStylesWithRefValues({
|
|
82
242
|
settings: (_mergedConfig$setting = mergedConfig?.settings) !== null && _mergedConfig$setting !== void 0 ? _mergedConfig$setting : globalSettings,
|
|
243
|
+
styles: (_mergedConfig$styles = mergedConfig?.styles) !== null && _mergedConfig$styles !== void 0 ? _mergedConfig$styles : globalStyles
|
|
244
|
+
}, name, variation);
|
|
245
|
+
return {
|
|
246
|
+
settings: (_mergedConfig$setting2 = mergedConfig?.settings) !== null && _mergedConfig$setting2 !== void 0 ? _mergedConfig$setting2 : globalSettings,
|
|
83
247
|
// The variation style data is all that is needed to generate
|
|
84
248
|
// the styles for the current application to a block. The variation
|
|
85
249
|
// name is updated to match the instance specific class name.
|
|
@@ -141,6 +305,7 @@ function useBlockProps({
|
|
|
141
305
|
id: `variation-${clientId}`,
|
|
142
306
|
css: variationStyles,
|
|
143
307
|
__unstableType: 'variation',
|
|
308
|
+
variation,
|
|
144
309
|
// The clientId will be stored with the override and used to ensure
|
|
145
310
|
// the order of overrides matches the order of blocks so that the
|
|
146
311
|
// correct CSS cascade is maintained.
|