@wordpress/block-editor 15.11.0 → 15.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/block-breadcrumb/index.cjs +10 -2
- package/build/components/block-breadcrumb/index.cjs.map +2 -2
- package/build/components/block-controls/index.cjs +1 -1
- package/build/components/block-controls/index.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +8 -21
- package/build/components/block-inspector/index.cjs.map +3 -3
- package/build/components/block-list/block.cjs +6 -3
- package/build/components/block-list/block.cjs.map +3 -3
- package/build/components/block-list/index.cjs +26 -18
- package/build/components/block-list/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs +39 -19
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
- package/build/components/block-list/use-in-between-inserter.cjs +4 -4
- package/build/components/block-list/use-in-between-inserter.cjs.map +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.cjs +10 -7
- package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
- package/build/components/block-settings-menu-controls/edit-section-menu-item.cjs +1 -1
- package/build/components/block-settings-menu-controls/edit-section-menu-item.cjs.map +2 -2
- package/build/components/block-settings-menu-controls/index.cjs +11 -16
- package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs +6 -4
- package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +2 -2
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +2 -26
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-variation-transforms/index.cjs +1 -2
- package/build/components/block-variation-transforms/index.cjs.map +2 -2
- package/build/components/block-visibility/index.cjs +7 -9
- package/build/components/block-visibility/index.cjs.map +3 -3
- package/build/components/block-visibility/modal.cjs +18 -103
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +1 -1
- package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
- package/build/components/block-visibility/utils.cjs +5 -1
- package/build/components/block-visibility/utils.cjs.map +2 -2
- package/build/components/block-visibility/viewport-menu-item.cjs +11 -4
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +4 -6
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +121 -0
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +7 -0
- package/build/components/color-palette/with-color-context.cjs +1 -1
- package/build/components/color-palette/with-color-context.cjs.map +2 -2
- package/build/components/color-style-selector/index.cjs +1 -1
- package/build/components/color-style-selector/index.cjs.map +2 -2
- package/build/components/colors/with-colors.cjs +5 -3
- package/build/components/colors/with-colors.cjs.map +2 -2
- package/build/components/colors-gradients/dropdown.cjs +1 -1
- package/build/components/colors-gradients/dropdown.cjs.map +2 -2
- package/build/components/editable-text/index.cjs +5 -1
- package/build/components/editable-text/index.cjs.map +2 -2
- package/build/components/font-sizes/with-font-sizes.cjs +5 -3
- package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
- package/build/components/global-styles/advanced-panel.cjs +26 -13
- package/build/components/global-styles/advanced-panel.cjs.map +2 -2
- package/build/components/global-styles/filters-panel.cjs +1 -1
- package/build/components/global-styles/filters-panel.cjs.map +2 -2
- package/build/components/global-styles/shadow-panel-components.cjs +1 -1
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/gradients/with-gradient.cjs +1 -1
- package/build/components/gradients/with-gradient.cjs.map +2 -2
- package/build/components/inserter/index.cjs +1 -0
- package/build/components/inserter/index.cjs.map +2 -2
- package/build/components/inspector-controls/fill.cjs +12 -2
- package/build/components/inspector-controls/fill.cjs.map +2 -2
- package/build/components/inspector-controls/index.cjs +1 -1
- package/build/components/inspector-controls/index.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/index.cjs +3 -3
- package/build/components/inspector-controls-tabs/index.cjs.map +3 -3
- package/build/components/inspector-controls-tabs/styles-tab.cjs +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +2 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
- package/build/components/list-view/block-select-button.cjs +8 -16
- package/build/components/list-view/block-select-button.cjs.map +2 -2
- package/build/components/list-view/block.cjs +29 -34
- package/build/components/list-view/block.cjs.map +3 -3
- package/build/components/list-view/utils.cjs +3 -1
- package/build/components/list-view/utils.cjs.map +2 -2
- package/build/components/media-replace-flow/index.cjs +2 -2
- package/build/components/media-replace-flow/index.cjs.map +2 -2
- package/build/components/provider/index.cjs +7 -8
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/with-registry-provider.cjs +1 -1
- package/build/components/provider/with-registry-provider.cjs.map +2 -2
- package/build/components/rich-text/index.cjs +1 -1
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/use-block-commands/index.cjs +2 -34
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-block-display-information/index.cjs +1 -1
- package/build/components/use-block-display-information/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +2 -0
- package/build/components/writing-flow/index.cjs.map +2 -2
- package/build/components/writing-flow/use-arrow-nav.cjs +3 -0
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-drag-selection.cjs +2 -1
- package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-preview-mode-nav.cjs +92 -0
- package/build/components/writing-flow/use-preview-mode-nav.cjs.map +7 -0
- package/build/hooks/block-renaming.cjs +1 -1
- package/build/hooks/block-renaming.cjs.map +2 -2
- package/build/hooks/cross-origin-isolation.cjs +1 -1
- package/build/hooks/cross-origin-isolation.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +141 -0
- package/build/hooks/custom-css.cjs.map +7 -0
- package/build/hooks/fit-text.cjs +14 -7
- package/build/hooks/fit-text.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +1 -1
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/index.cjs +4 -2
- package/build/hooks/index.cjs.map +3 -3
- package/build/hooks/layout.cjs +10 -4
- package/build/hooks/layout.cjs.map +2 -2
- package/build/hooks/list-view.cjs +9 -5
- package/build/hooks/list-view.cjs.map +3 -3
- package/build/hooks/utils.cjs +2 -2
- package/build/hooks/utils.cjs.map +2 -2
- package/build/layouts/grid.cjs +12 -1
- package/build/layouts/grid.cjs.map +2 -2
- package/build/store/actions.cjs +5 -0
- package/build/store/actions.cjs.map +2 -2
- package/build/store/defaults.cjs +3 -0
- package/build/store/defaults.cjs.map +2 -2
- package/build/store/private-selectors.cjs +46 -38
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/store/reducer.cjs +5 -7
- package/build/store/reducer.cjs.map +2 -2
- package/build/store/selectors.cjs +15 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/fit-text-utils.cjs +18 -4
- package/build/utils/fit-text-utils.cjs.map +2 -2
- package/build-module/components/block-breadcrumb/index.mjs +10 -2
- package/build-module/components/block-breadcrumb/index.mjs.map +2 -2
- package/build-module/components/block-controls/index.mjs +1 -1
- package/build-module/components/block-controls/index.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +8 -21
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +6 -3
- package/build-module/components/block-list/block.mjs.map +3 -3
- package/build-module/components/block-list/index.mjs +26 -18
- package/build-module/components/block-list/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs +39 -19
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
- package/build-module/components/block-list/use-in-between-inserter.mjs +4 -4
- package/build-module/components/block-list/use-in-between-inserter.mjs.map +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs +10 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
- package/build-module/components/block-settings-menu-controls/edit-section-menu-item.mjs +1 -1
- package/build-module/components/block-settings-menu-controls/edit-section-menu-item.mjs.map +2 -2
- package/build-module/components/block-settings-menu-controls/index.mjs +12 -17
- package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs +6 -4
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +3 -3
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +2 -26
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-variation-transforms/index.mjs +1 -2
- package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
- package/build-module/components/block-visibility/index.mjs +6 -9
- package/build-module/components/block-visibility/index.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +18 -103
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +1 -1
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
- package/build-module/components/block-visibility/utils.mjs +5 -1
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +11 -4
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +4 -6
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +95 -0
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +7 -0
- package/build-module/components/color-palette/with-color-context.mjs +1 -1
- package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
- package/build-module/components/color-style-selector/index.mjs +1 -1
- package/build-module/components/color-style-selector/index.mjs.map +2 -2
- package/build-module/components/colors/with-colors.mjs +5 -3
- package/build-module/components/colors/with-colors.mjs.map +2 -2
- package/build-module/components/colors-gradients/dropdown.mjs +1 -1
- package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
- package/build-module/components/editable-text/index.mjs +5 -1
- package/build-module/components/editable-text/index.mjs.map +2 -2
- package/build-module/components/font-sizes/with-font-sizes.mjs +5 -3
- package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
- package/build-module/components/global-styles/advanced-panel.mjs +22 -13
- package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +1 -1
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/shadow-panel-components.mjs +1 -1
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/gradients/with-gradient.mjs +1 -1
- package/build-module/components/gradients/with-gradient.mjs.map +2 -2
- package/build-module/components/inserter/index.mjs +1 -0
- package/build-module/components/inserter/index.mjs.map +2 -2
- package/build-module/components/inspector-controls/fill.mjs +12 -2
- package/build-module/components/inspector-controls/fill.mjs.map +2 -2
- package/build-module/components/inspector-controls/index.mjs +1 -1
- package/build-module/components/inspector-controls/index.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/index.mjs +3 -3
- package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +2 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +8 -16
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +31 -36
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/list-view/utils.mjs +3 -1
- package/build-module/components/list-view/utils.mjs.map +2 -2
- package/build-module/components/media-replace-flow/index.mjs +2 -2
- package/build-module/components/media-replace-flow/index.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +7 -8
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/with-registry-provider.mjs +1 -1
- package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +1 -1
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +3 -37
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-block-display-information/index.mjs +1 -1
- package/build-module/components/use-block-display-information/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +2 -0
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +3 -0
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-drag-selection.mjs +2 -1
- package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-preview-mode-nav.mjs +67 -0
- package/build-module/components/writing-flow/use-preview-mode-nav.mjs.map +7 -0
- package/build-module/hooks/block-renaming.mjs +1 -1
- package/build-module/hooks/block-renaming.mjs.map +2 -2
- package/build-module/hooks/cross-origin-isolation.mjs +1 -1
- package/build-module/hooks/cross-origin-isolation.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +112 -0
- package/build-module/hooks/custom-css.mjs.map +7 -0
- package/build-module/hooks/fit-text.mjs +14 -7
- package/build-module/hooks/fit-text.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +1 -1
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/index.mjs +4 -2
- package/build-module/hooks/index.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +10 -4
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/list-view.mjs +10 -6
- package/build-module/hooks/list-view.mjs.map +2 -2
- package/build-module/hooks/utils.mjs +2 -2
- package/build-module/hooks/utils.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +12 -1
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/store/actions.mjs +5 -0
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/defaults.mjs +3 -0
- package/build-module/store/defaults.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +43 -41
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/reducer.mjs +5 -7
- package/build-module/store/reducer.mjs.map +2 -2
- package/build-module/store/selectors.mjs +15 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/fit-text-utils.mjs +18 -4
- package/build-module/utils/fit-text-utils.mjs.map +2 -2
- package/build-style/content-rtl.css +10 -0
- package/build-style/content.css +10 -0
- package/build-style/style-rtl.css +3 -0
- package/build-style/style.css +3 -0
- package/package.json +39 -39
- package/src/components/block-breadcrumb/index.js +6 -1
- package/src/components/block-controls/index.js +1 -1
- package/src/components/block-controls/test/index.js +1 -0
- package/src/components/block-edit/test/edit.js +10 -0
- package/src/components/block-inspector/index.js +15 -36
- package/src/components/block-list/block.js +5 -2
- package/src/components/block-list/content.scss +11 -0
- package/src/components/block-list/index.js +25 -17
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +51 -36
- package/src/components/block-list/use-in-between-inserter.js +8 -6
- package/src/components/block-preview/test/index.js +11 -7
- package/src/components/block-settings-menu/block-settings-dropdown.js +11 -6
- package/src/components/block-settings-menu-controls/edit-section-menu-item.js +1 -7
- package/src/components/block-settings-menu-controls/index.js +16 -18
- package/src/components/block-switcher/test/index.js +2 -0
- package/src/components/block-switcher/test/use-transformed.patterns.js +2 -0
- package/src/components/block-switcher/test/utils.js +2 -0
- package/src/components/block-toolbar/block-toolbar-icon.js +6 -10
- package/src/components/block-toolbar/index.js +3 -9
- package/src/components/block-tools/index.js +2 -29
- package/src/components/block-variation-transforms/index.js +1 -4
- package/src/components/block-visibility/index.js +3 -19
- package/src/components/block-visibility/modal.js +16 -14
- package/src/components/block-visibility/test/use-block-visibility.js +27 -25
- package/src/components/block-visibility/test/utils.js +24 -8
- package/src/components/block-visibility/use-block-visibility.js +1 -4
- package/src/components/block-visibility/utils.js +9 -1
- package/src/components/block-visibility/viewport-menu-item.js +11 -5
- package/src/components/block-visibility/viewport-toolbar.js +5 -6
- package/src/components/block-visibility/viewport-visibility-info.js +131 -0
- package/src/components/color-palette/with-color-context.js +1 -1
- package/src/components/color-style-selector/index.js +2 -3
- package/src/components/colors/with-colors.js +23 -20
- package/src/components/colors-gradients/dropdown.js +2 -3
- package/src/components/editable-text/index.js +5 -1
- package/src/components/font-sizes/with-font-sizes.js +13 -10
- package/src/components/global-styles/advanced-panel.js +35 -16
- package/src/components/global-styles/filters-panel.js +2 -3
- package/src/components/global-styles/shadow-panel-components.js +1 -1
- package/src/components/global-styles/style.scss +9 -5
- package/src/components/gradients/with-gradient.js +7 -4
- package/src/components/inner-blocks/test/index.js +2 -0
- package/src/components/inserter/index.js +1 -0
- package/src/components/inserter/stories/index.story.jsx +31 -24
- package/src/components/inspector-controls/fill.js +25 -5
- package/src/components/inspector-controls/index.js +1 -1
- package/src/components/inspector-controls-tabs/index.js +6 -2
- package/src/components/inspector-controls-tabs/styles-tab.js +7 -8
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -4
- package/src/components/link-control/test/index.js +6 -1
- package/src/components/list-view/block-select-button.js +16 -25
- package/src/components/list-view/block.js +38 -43
- package/src/components/list-view/utils.js +4 -2
- package/src/components/media-replace-flow/index.js +3 -3
- package/src/components/media-replace-flow/test/index.js +13 -11
- package/src/components/provider/index.js +11 -10
- package/src/components/provider/test/use-block-sync.js +1 -0
- package/src/components/provider/with-registry-provider.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/use-block-commands/index.js +0 -41
- package/src/components/use-block-display-information/index.js +1 -5
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-arrow-nav.js +5 -0
- package/src/components/writing-flow/use-drag-selection.js +7 -1
- package/src/components/writing-flow/use-preview-mode-nav.js +102 -0
- package/src/hooks/block-renaming.js +5 -2
- package/src/hooks/cross-origin-isolation.js +19 -18
- package/src/hooks/custom-css.js +176 -0
- package/src/hooks/fit-text.js +20 -5
- package/src/hooks/grid-visualizer.js +15 -14
- package/src/hooks/index.js +4 -2
- package/src/hooks/layout.js +55 -43
- package/src/hooks/list-view.js +10 -6
- package/src/hooks/test/align.js +1 -0
- package/src/hooks/test/allowed-blocks.js +8 -0
- package/src/hooks/test/auto-inspector-controls.js +4 -0
- package/src/hooks/test/font-size.js +1 -0
- package/src/hooks/test/metadata.js +4 -0
- package/src/hooks/test/text-align.js +1 -0
- package/src/hooks/utils.js +123 -119
- package/src/layouts/grid.js +19 -3
- package/src/layouts/test/grid.js +1 -1
- package/src/store/actions.js +7 -0
- package/src/store/defaults.js +4 -0
- package/src/store/private-selectors.js +94 -64
- package/src/store/reducer.js +11 -18
- package/src/store/selectors.js +25 -0
- package/src/store/test/actions.js +7 -0
- package/src/store/test/private-selectors.js +116 -119
- package/src/store/test/reducer.js +262 -266
- package/src/store/test/registry-selectors.js +2 -0
- package/src/store/test/selectors.js +19 -0
- package/src/utils/fit-text-utils.js +31 -5
- package/build/components/block-visibility/block-visibility-info.cjs +0 -63
- package/build/components/block-visibility/block-visibility-info.cjs.map +0 -7
- package/build/components/block-visibility/menu-item.cjs +0 -109
- package/build/components/block-visibility/menu-item.cjs.map +0 -7
- package/build/components/block-visibility/toolbar.cjs +0 -92
- package/build/components/block-visibility/toolbar.cjs.map +0 -7
- package/build/components/content-lock/index.cjs +0 -31
- package/build/components/content-lock/index.cjs.map +0 -7
- package/build/components/content-lock/modify-content-lock-menu-item.cjs +0 -70
- package/build/components/content-lock/modify-content-lock-menu-item.cjs.map +0 -7
- package/build/hooks/content-lock-ui.cjs +0 -68
- package/build/hooks/content-lock-ui.cjs.map +0 -7
- package/build-module/components/block-visibility/block-visibility-info.mjs +0 -47
- package/build-module/components/block-visibility/block-visibility-info.mjs.map +0 -7
- package/build-module/components/block-visibility/menu-item.mjs +0 -88
- package/build-module/components/block-visibility/menu-item.mjs.map +0 -7
- package/build-module/components/block-visibility/toolbar.mjs +0 -71
- package/build-module/components/block-visibility/toolbar.mjs.map +0 -7
- package/build-module/components/content-lock/index.mjs +0 -6
- package/build-module/components/content-lock/index.mjs.map +0 -7
- package/build-module/components/content-lock/modify-content-lock-menu-item.mjs +0 -45
- package/build-module/components/content-lock/modify-content-lock-menu-item.mjs.map +0 -7
- package/build-module/hooks/content-lock-ui.mjs +0 -47
- package/build-module/hooks/content-lock-ui.mjs.map +0 -7
- package/src/components/block-visibility/block-visibility-info.js +0 -62
- package/src/components/block-visibility/menu-item.js +0 -96
- package/src/components/block-visibility/toolbar.js +0 -88
- package/src/components/content-lock/index.js +0 -1
- package/src/components/content-lock/modify-content-lock-menu-item.js +0 -67
- package/src/hooks/content-lock-ui.js +0 -76
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// packages/block-editor/src/hooks/content-lock-ui.js
|
|
21
|
-
var content_lock_ui_exports = {};
|
|
22
|
-
__export(content_lock_ui_exports, {
|
|
23
|
-
default: () => content_lock_ui_default
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(content_lock_ui_exports);
|
|
26
|
-
var import_components = require("@wordpress/components");
|
|
27
|
-
var import_data = require("@wordpress/data");
|
|
28
|
-
var import_i18n = require("@wordpress/i18n");
|
|
29
|
-
var import_element = require("@wordpress/element");
|
|
30
|
-
var import_store = require("../store/index.cjs");
|
|
31
|
-
var import_components2 = require("../components/index.cjs");
|
|
32
|
-
var import_lock_unlock = require("../lock-unlock.cjs");
|
|
33
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
-
function ContentLockControlsPure({ clientId }) {
|
|
35
|
-
const { templateLock, isLockedByParent, isEditingContentOnlySection } = (0, import_data.useSelect)(
|
|
36
|
-
(select) => {
|
|
37
|
-
const {
|
|
38
|
-
getContentLockingParent,
|
|
39
|
-
getTemplateLock,
|
|
40
|
-
getEditedContentOnlySection
|
|
41
|
-
} = (0, import_lock_unlock.unlock)(select(import_store.store));
|
|
42
|
-
return {
|
|
43
|
-
templateLock: getTemplateLock(clientId),
|
|
44
|
-
isLockedByParent: !!getContentLockingParent(clientId),
|
|
45
|
-
isEditingContentOnlySection: getEditedContentOnlySection() === clientId
|
|
46
|
-
};
|
|
47
|
-
},
|
|
48
|
-
[clientId]
|
|
49
|
-
);
|
|
50
|
-
const { stopEditingContentOnlySection } = (0, import_lock_unlock.unlock)(
|
|
51
|
-
(0, import_data.useDispatch)(import_store.store)
|
|
52
|
-
);
|
|
53
|
-
const isContentLocked = !isLockedByParent && templateLock === "contentOnly";
|
|
54
|
-
const stopEditingAsBlockCallback = (0, import_element.useCallback)(() => {
|
|
55
|
-
stopEditingContentOnlySection();
|
|
56
|
-
}, [stopEditingContentOnlySection]);
|
|
57
|
-
if (window?.__experimentalContentOnlyPatternInsertion || !isContentLocked && !isEditingContentOnlySection) {
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
return isEditingContentOnlySection && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components2.BlockControls, { group: "other", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarButton, { onClick: stopEditingAsBlockCallback, children: (0, import_i18n.__)("Done") }) });
|
|
61
|
-
}
|
|
62
|
-
var content_lock_ui_default = {
|
|
63
|
-
edit: ContentLockControlsPure,
|
|
64
|
-
hasSupport() {
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=content-lock-ui.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/hooks/content-lock-ui.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls } from '../components';\nimport { unlock } from '../lock-unlock';\n\n// The implementation of content locking is mainly in this file, although the mechanism\n// to stop editing a content only section when an outside block is selected is in the component\n// `StopEditingContentOnlySectionOnOutsideSelect` at block-editor/src/components/block-list/index.js.\n// Besides the components on this file and the file referenced above the implementation\n// also includes artifacts on the store (actions, reducers, and selector).\n\nfunction ContentLockControlsPure( { clientId } ) {\n\tconst { templateLock, isLockedByParent, isEditingContentOnlySection } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetContentLockingParent,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\tgetEditedContentOnlySection,\n\t\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\t\treturn {\n\t\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\t\tisLockedByParent: !! getContentLockingParent( clientId ),\n\t\t\t\t\tisEditingContentOnlySection:\n\t\t\t\t\t\tgetEditedContentOnlySection() === clientId,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst { stopEditingContentOnlySection } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst isContentLocked =\n\t\t! isLockedByParent && templateLock === 'contentOnly';\n\n\tconst stopEditingAsBlockCallback = useCallback( () => {\n\t\tstopEditingContentOnlySection();\n\t}, [ stopEditingContentOnlySection ] );\n\n\t// Hide the Done button when the content only pattern insertion experiment is active.\n\t// This is replaced by an alternative UI in the experiment.\n\tif (\n\t\twindow?.__experimentalContentOnlyPatternInsertion ||\n\t\t( ! isContentLocked && ! isEditingContentOnlySection )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tisEditingContentOnlySection && (\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarButton onClick={ stopEditingAsBlockCallback }>\n\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</BlockControls>\n\t\t)\n\t);\n}\n\nexport default {\n\tedit: ContentLockControlsPure,\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA8B;AAC9B,kBAAuC;AACvC,kBAAmB;AACnB,qBAA4B;AAK5B,mBAA0C;AAC1C,IAAAA,qBAA8B;AAC9B,yBAAuB;AAiDnB;AAzCJ,SAAS,wBAAyB,EAAE,SAAS,GAAI;AAChD,QAAM,EAAE,cAAc,kBAAkB,4BAA4B,QACnE;AAAA,IACC,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,QAAI,2BAAQ,OAAQ,aAAAC,KAAiB,CAAE;AACvC,aAAO;AAAA,QACN,cAAc,gBAAiB,QAAS;AAAA,QACxC,kBAAkB,CAAC,CAAE,wBAAyB,QAAS;AAAA,QACvD,6BACC,4BAA4B,MAAM;AAAA,MACpC;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAED,QAAM,EAAE,8BAA8B,QAAI;AAAA,QACzC,yBAAa,aAAAA,KAAiB;AAAA,EAC/B;AACA,QAAM,kBACL,CAAE,oBAAoB,iBAAiB;AAExC,QAAM,iCAA6B,4BAAa,MAAM;AACrD,kCAA8B;AAAA,EAC/B,GAAG,CAAE,6BAA8B,CAAE;AAIrC,MACC,QAAQ,6CACN,CAAE,mBAAmB,CAAE,6BACxB;AACD,WAAO;AAAA,EACR;AAEA,SACC,+BACC,4CAAC,oCAAc,OAAM,SACpB,sDAAC,mCAAc,SAAU,4BACtB,8BAAI,MAAO,GACd,GACD;AAGH;AAEA,IAAO,0BAAQ;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AACZ,WAAO;AAAA,EACR;AACD;",
|
|
6
|
-
"names": ["import_components", "blockEditorStore"]
|
|
7
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/block-visibility/block-visibility-info.js
|
|
2
|
-
import {
|
|
3
|
-
Icon,
|
|
4
|
-
__experimentalText as Text,
|
|
5
|
-
__experimentalHStack as HStack,
|
|
6
|
-
privateApis as componentsPrivateApis
|
|
7
|
-
} from "@wordpress/components";
|
|
8
|
-
import { useSelect } from "@wordpress/data";
|
|
9
|
-
import { __ } from "@wordpress/i18n";
|
|
10
|
-
import { unseen } from "@wordpress/icons";
|
|
11
|
-
import { unlock } from "../../lock-unlock.mjs";
|
|
12
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
var { Badge } = unlock(componentsPrivateApis);
|
|
15
|
-
function BlockVisibilityInfo({ clientId }) {
|
|
16
|
-
const { isBlockHidden, hasHiddenParent } = useSelect(
|
|
17
|
-
(select) => {
|
|
18
|
-
if (!clientId) {
|
|
19
|
-
return { isBlockHidden: false, hasHiddenParent: false };
|
|
20
|
-
}
|
|
21
|
-
const { isBlockHidden: _isBlockHidden, getBlockParents } = unlock(
|
|
22
|
-
select(blockEditorStore)
|
|
23
|
-
);
|
|
24
|
-
const blockHidden = _isBlockHidden(clientId);
|
|
25
|
-
const parents = getBlockParents(clientId);
|
|
26
|
-
const parentHidden = parents.some(
|
|
27
|
-
(parentId) => _isBlockHidden(parentId)
|
|
28
|
-
);
|
|
29
|
-
return {
|
|
30
|
-
isBlockHidden: blockHidden,
|
|
31
|
-
hasHiddenParent: parentHidden
|
|
32
|
-
};
|
|
33
|
-
},
|
|
34
|
-
[clientId]
|
|
35
|
-
);
|
|
36
|
-
if (!(isBlockHidden || hasHiddenParent)) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
return /* @__PURE__ */ jsx(Badge, { className: "block-editor-block-visibility-info", children: /* @__PURE__ */ jsxs(HStack, { spacing: 2, justify: "start", children: [
|
|
40
|
-
/* @__PURE__ */ jsx(Icon, { icon: unseen }),
|
|
41
|
-
/* @__PURE__ */ jsx(Text, { children: isBlockHidden ? __("Block is hidden") : __("Parent block is hidden") })
|
|
42
|
-
] }) });
|
|
43
|
-
}
|
|
44
|
-
export {
|
|
45
|
-
BlockVisibilityInfo as default
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=block-visibility-info.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/block-visibility-info.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { unseen } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nexport default function BlockVisibilityInfo( { clientId } ) {\n\tconst { isBlockHidden, hasHiddenParent } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn { isBlockHidden: false, hasHiddenParent: false };\n\t\t\t}\n\t\t\tconst { isBlockHidden: _isBlockHidden, getBlockParents } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\n\t\t\tconst blockHidden = _isBlockHidden( clientId );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\tconst parentHidden = parents.some( ( parentId ) =>\n\t\t\t\t_isBlockHidden( parentId )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisBlockHidden: blockHidden,\n\t\t\t\thasHiddenParent: parentHidden,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! ( isBlockHidden || hasHiddenParent ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Badge className=\"block-editor-block-visibility-info\">\n\t\t\t<HStack spacing={ 2 } justify=\"start\">\n\t\t\t\t<Icon icon={ unseen } />\n\t\t\t\t<Text>\n\t\t\t\t\t{ isBlockHidden\n\t\t\t\t\t\t? __( 'Block is hidden' )\n\t\t\t\t\t\t: __( 'Parent block is hidden' ) }\n\t\t\t\t</Text>\n\t\t\t</HStack>\n\t\t</Badge>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA;AAAA,EACC;AAAA,EACA,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,eAAe;AAAA,OACT;AACP,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AACnB,SAAS,cAAc;AAKvB,SAAS,cAAc;AACvB,SAAS,SAAS,wBAAwB;AAkCvC,SACC,KADD;AAhCH,IAAM,EAAE,MAAM,IAAI,OAAQ,qBAAsB;AAEjC,SAAR,oBAAsC,EAAE,SAAS,GAAI;AAC3D,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAAA,IAC1C,CAAE,WAAY;AACb,UAAK,CAAE,UAAW;AACjB,eAAO,EAAE,eAAe,OAAO,iBAAiB,MAAM;AAAA,MACvD;AACA,YAAM,EAAE,eAAe,gBAAgB,gBAAgB,IAAI;AAAA,QAC1D,OAAQ,gBAAiB;AAAA,MAC1B;AAEA,YAAM,cAAc,eAAgB,QAAS;AAC7C,YAAM,UAAU,gBAAiB,QAAS;AAC1C,YAAM,eAAe,QAAQ;AAAA,QAAM,CAAE,aACpC,eAAgB,QAAS;AAAA,MAC1B;AAEA,aAAO;AAAA,QACN,eAAe;AAAA,QACf,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,MAAK,EAAI,iBAAiB,kBAAoB;AAC7C,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,SAAM,WAAU,sCAChB,+BAAC,UAAO,SAAU,GAAI,SAAQ,SAC7B;AAAA,wBAAC,QAAK,MAAO,QAAS;AAAA,IACtB,oBAAC,QACE,0BACC,GAAI,iBAAkB,IACtB,GAAI,wBAAyB,GACjC;AAAA,KACD,GACD;AAEF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/block-visibility/menu-item.js
|
|
2
|
-
import { __, sprintf } from "@wordpress/i18n";
|
|
3
|
-
import { MenuItem } from "@wordpress/components";
|
|
4
|
-
import { seen, unseen } from "@wordpress/icons";
|
|
5
|
-
import { useSelect, useDispatch } from "@wordpress/data";
|
|
6
|
-
import { store as noticesStore } from "@wordpress/notices";
|
|
7
|
-
import { store as keyboardShortcutsStore } from "@wordpress/keyboard-shortcuts";
|
|
8
|
-
import { cleanEmptyObject } from "../../hooks/utils.mjs";
|
|
9
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
10
|
-
import { jsx } from "react/jsx-runtime";
|
|
11
|
-
function BlockVisibilityMenuItem({ clientIds }) {
|
|
12
|
-
const { updateBlockAttributes } = useDispatch(blockEditorStore);
|
|
13
|
-
const { createSuccessNotice } = useDispatch(noticesStore);
|
|
14
|
-
const blocks = useSelect(
|
|
15
|
-
(select) => {
|
|
16
|
-
return select(blockEditorStore).getBlocksByClientId(clientIds);
|
|
17
|
-
},
|
|
18
|
-
[clientIds]
|
|
19
|
-
);
|
|
20
|
-
const listViewShortcut = useSelect((select) => {
|
|
21
|
-
return select(keyboardShortcutsStore).getShortcutRepresentation(
|
|
22
|
-
"core/editor/toggle-list-view"
|
|
23
|
-
);
|
|
24
|
-
}, []);
|
|
25
|
-
const hasHiddenBlock = blocks.some(
|
|
26
|
-
(block) => block.attributes.metadata?.blockVisibility === false
|
|
27
|
-
);
|
|
28
|
-
const toggleBlockVisibility = () => {
|
|
29
|
-
const isHiding = !hasHiddenBlock;
|
|
30
|
-
const attributesByClientId = Object.fromEntries(
|
|
31
|
-
blocks?.map(({ clientId, attributes }) => [
|
|
32
|
-
clientId,
|
|
33
|
-
{
|
|
34
|
-
metadata: cleanEmptyObject({
|
|
35
|
-
...attributes?.metadata,
|
|
36
|
-
blockVisibility: isHiding ? false : void 0
|
|
37
|
-
})
|
|
38
|
-
}
|
|
39
|
-
])
|
|
40
|
-
);
|
|
41
|
-
updateBlockAttributes(clientIds, attributesByClientId, {
|
|
42
|
-
uniqueByBlock: true
|
|
43
|
-
});
|
|
44
|
-
if (isHiding) {
|
|
45
|
-
if (blocks.length > 1) {
|
|
46
|
-
createSuccessNotice(
|
|
47
|
-
sprintf(
|
|
48
|
-
// translators: %s: The shortcut key to access the List View.
|
|
49
|
-
__(
|
|
50
|
-
"Blocks hidden. You can access them via the List View (%s)."
|
|
51
|
-
),
|
|
52
|
-
listViewShortcut
|
|
53
|
-
),
|
|
54
|
-
{
|
|
55
|
-
id: "block-visibility-hidden",
|
|
56
|
-
type: "snackbar"
|
|
57
|
-
}
|
|
58
|
-
);
|
|
59
|
-
} else {
|
|
60
|
-
createSuccessNotice(
|
|
61
|
-
sprintf(
|
|
62
|
-
// translators: %s: The shortcut key to access the List View.
|
|
63
|
-
__(
|
|
64
|
-
"Block hidden. You can access it via the List View (%s)."
|
|
65
|
-
),
|
|
66
|
-
listViewShortcut
|
|
67
|
-
),
|
|
68
|
-
{
|
|
69
|
-
id: "block-visibility-hidden",
|
|
70
|
-
type: "snackbar"
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
return /* @__PURE__ */ jsx(
|
|
77
|
-
MenuItem,
|
|
78
|
-
{
|
|
79
|
-
icon: hasHiddenBlock ? seen : unseen,
|
|
80
|
-
onClick: toggleBlockVisibility,
|
|
81
|
-
children: hasHiddenBlock ? __("Show") : __("Hide")
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
export {
|
|
86
|
-
BlockVisibilityMenuItem as default
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=menu-item.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/menu-item.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { seen, unseen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockVisibilityMenuItem( { clientIds } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst blocks = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlocksByClientId( clientIds );\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst listViewShortcut = useSelect( ( select ) => {\n\t\treturn select( keyboardShortcutsStore ).getShortcutRepresentation(\n\t\t\t'core/editor/toggle-list-view'\n\t\t);\n\t}, [] );\n\n\tconst hasHiddenBlock = blocks.some(\n\t\t( block ) => block.attributes.metadata?.blockVisibility === false\n\t);\n\n\tconst toggleBlockVisibility = () => {\n\t\tconst isHiding = ! hasHiddenBlock;\n\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tblocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\tblockVisibility: isHiding ? false : undefined,\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\t\tupdateBlockAttributes( clientIds, attributesByClientId, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\n\t\tif ( isHiding ) {\n\t\t\tif ( blocks.length > 1 ) {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The shortcut key to access the List View.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Blocks hidden. You can access them via the List View (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlistViewShortcut\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'block-visibility-hidden',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The shortcut key to access the List View.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Block hidden. You can access it via the List View (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlistViewShortcut\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'block-visibility-hidden',\n\t\t\t\t\t\ttype: 'snackbar',\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<MenuItem\n\t\t\ticon={ hasHiddenBlock ? seen : unseen }\n\t\t\tonClick={ toggleBlockVisibility }\n\t\t>\n\t\t\t{ hasHiddenBlock ? __( 'Show' ) : __( 'Hide' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,gBAAgB;AACzB,SAAS,MAAM,cAAc;AAC7B,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,oBAAoB;AACtC,SAAS,SAAS,8BAA8B;AAKhD,SAAS,wBAAwB;AACjC,SAAS,SAAS,wBAAwB;AA0ExC;AAxEa,SAAR,wBAA0C,EAAE,UAAU,GAAI;AAChE,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAChE,QAAM,EAAE,oBAAoB,IAAI,YAAa,YAAa;AAC1D,QAAM,SAAS;AAAA,IACd,CAAE,WAAY;AACb,aAAO,OAAQ,gBAAiB,EAAE,oBAAqB,SAAU;AAAA,IAClE;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,mBAAmB,UAAW,CAAE,WAAY;AACjD,WAAO,OAAQ,sBAAuB,EAAE;AAAA,MACvC;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,iBAAiB,OAAO;AAAA,IAC7B,CAAE,UAAW,MAAM,WAAW,UAAU,oBAAoB;AAAA,EAC7D;AAEA,QAAM,wBAAwB,MAAM;AACnC,UAAM,WAAW,CAAE;AAEnB,UAAM,uBAAuB,OAAO;AAAA,MACnC,QAAQ,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QAC5C;AAAA,QACA;AAAA,UACC,UAAU,iBAAkB;AAAA,YAC3B,GAAG,YAAY;AAAA,YACf,iBAAiB,WAAW,QAAQ;AAAA,UACrC,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AACA,0BAAuB,WAAW,sBAAsB;AAAA,MACvD,eAAe;AAAA,IAChB,CAAE;AAEF,QAAK,UAAW;AACf,UAAK,OAAO,SAAS,GAAI;AACxB;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,YACC,IAAI;AAAA,YACJ,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD,OAAO;AACN;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,YACC,IAAI;AAAA,YACJ,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,iBAAiB,OAAO;AAAA,MAC/B,SAAU;AAAA,MAER,2BAAiB,GAAI,MAAO,IAAI,GAAI,MAAO;AAAA;AAAA,EAC9C;AAEF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/block-visibility/toolbar.js
|
|
2
|
-
import { __ } from "@wordpress/i18n";
|
|
3
|
-
import { ToolbarButton, ToolbarGroup } from "@wordpress/components";
|
|
4
|
-
import { useRef, useEffect } from "@wordpress/element";
|
|
5
|
-
import { seen, unseen } from "@wordpress/icons";
|
|
6
|
-
import { useSelect, useDispatch } from "@wordpress/data";
|
|
7
|
-
import { hasBlockSupport } from "@wordpress/blocks";
|
|
8
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
9
|
-
import { cleanEmptyObject } from "../../hooks/utils.mjs";
|
|
10
|
-
import { Fragment, jsx } from "react/jsx-runtime";
|
|
11
|
-
function BlockVisibilityToolbar({ clientIds }) {
|
|
12
|
-
const { blocks, canToggleBlockVisibility } = useSelect(
|
|
13
|
-
(select) => {
|
|
14
|
-
const { getBlockName, getBlocksByClientId } = select(blockEditorStore);
|
|
15
|
-
const _blocks = getBlocksByClientId(clientIds);
|
|
16
|
-
return {
|
|
17
|
-
blocks: _blocks,
|
|
18
|
-
canToggleBlockVisibility: _blocks.every(
|
|
19
|
-
({ clientId }) => hasBlockSupport(
|
|
20
|
-
getBlockName(clientId),
|
|
21
|
-
"visibility",
|
|
22
|
-
true
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
[clientIds]
|
|
28
|
-
);
|
|
29
|
-
const hasHiddenBlock = blocks.some(
|
|
30
|
-
(block) => block.attributes.metadata?.blockVisibility === false
|
|
31
|
-
);
|
|
32
|
-
const hasBlockVisibilityButtonShownRef = useRef(false);
|
|
33
|
-
const { updateBlockAttributes } = useDispatch(blockEditorStore);
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
if (hasHiddenBlock) {
|
|
36
|
-
hasBlockVisibilityButtonShownRef.current = true;
|
|
37
|
-
}
|
|
38
|
-
}, [hasHiddenBlock]);
|
|
39
|
-
if (!hasHiddenBlock && !hasBlockVisibilityButtonShownRef.current) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
const toggleBlockVisibility = () => {
|
|
43
|
-
const attributesByClientId = Object.fromEntries(
|
|
44
|
-
blocks?.map(({ clientId, attributes }) => [
|
|
45
|
-
clientId,
|
|
46
|
-
{
|
|
47
|
-
metadata: cleanEmptyObject({
|
|
48
|
-
...attributes?.metadata,
|
|
49
|
-
blockVisibility: hasHiddenBlock ? void 0 : false
|
|
50
|
-
})
|
|
51
|
-
}
|
|
52
|
-
])
|
|
53
|
-
);
|
|
54
|
-
updateBlockAttributes(clientIds, attributesByClientId, {
|
|
55
|
-
uniqueByBlock: true
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ToolbarGroup, { children: /* @__PURE__ */ jsx(
|
|
59
|
-
ToolbarButton,
|
|
60
|
-
{
|
|
61
|
-
disabled: !canToggleBlockVisibility,
|
|
62
|
-
icon: hasHiddenBlock ? unseen : seen,
|
|
63
|
-
label: hasHiddenBlock ? __("Hidden") : __("Visible"),
|
|
64
|
-
onClick: toggleBlockVisibility
|
|
65
|
-
}
|
|
66
|
-
) }) });
|
|
67
|
-
}
|
|
68
|
-
export {
|
|
69
|
-
BlockVisibilityToolbar as default
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=toolbar.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/toolbar.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { seen, unseen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockVisibilityToolbar( { clientIds } ) {\n\tconst { blocks, canToggleBlockVisibility } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlocksByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tcanToggleBlockVisibility: _blocks.every( ( { clientId } ) =>\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'visibility',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst hasHiddenBlock = blocks.some(\n\t\t( block ) => block.attributes.metadata?.blockVisibility === false\n\t);\n\n\tconst hasBlockVisibilityButtonShownRef = useRef( false );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\t// If the block visibility button has been shown, we don't want to\n\t// remove it from the toolbar until the toolbar is rendered again\n\t// without it. Removing it beforehand can cause focus loss issues.\n\t// It needs to return focus from whence it came, and to do that,\n\t// we need to leave the button in the toolbar.\n\tuseEffect( () => {\n\t\tif ( hasHiddenBlock ) {\n\t\t\thasBlockVisibilityButtonShownRef.current = true;\n\t\t}\n\t}, [ hasHiddenBlock ] );\n\n\tif ( ! hasHiddenBlock && ! hasBlockVisibilityButtonShownRef.current ) {\n\t\treturn null;\n\t}\n\n\tconst toggleBlockVisibility = () => {\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tblocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\tblockVisibility: hasHiddenBlock ? undefined : false,\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\t\tupdateBlockAttributes( clientIds, attributesByClientId, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled={ ! canToggleBlockVisibility }\n\t\t\t\t\ticon={ hasHiddenBlock ? unseen : seen }\n\t\t\t\t\tlabel={ hasHiddenBlock ? __( 'Hidden' ) : __( 'Visible' ) }\n\t\t\t\t\tonClick={ toggleBlockVisibility }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,eAAe,oBAAoB;AAC5C,SAAS,QAAQ,iBAAiB;AAClC,SAAS,MAAM,cAAc;AAC7B,SAAS,WAAW,mBAAmB;AACvC,SAAS,uBAAuB;AAKhC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,wBAAwB;AA8D/B,mBAEE,WAFF;AA5Da,SAAR,uBAAyC,EAAE,UAAU,GAAI;AAC/D,QAAM,EAAE,QAAQ,yBAAyB,IAAI;AAAA,IAC5C,CAAE,WAAY;AACb,YAAM,EAAE,cAAc,oBAAoB,IACzC,OAAQ,gBAAiB;AAC1B,YAAM,UAAU,oBAAqB,SAAU;AAC/C,aAAO;AAAA,QACN,QAAQ;AAAA,QACR,0BAA0B,QAAQ;AAAA,UAAO,CAAE,EAAE,SAAS,MACrD;AAAA,YACC,aAAc,QAAS;AAAA,YACvB;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,iBAAiB,OAAO;AAAA,IAC7B,CAAE,UAAW,MAAM,WAAW,UAAU,oBAAoB;AAAA,EAC7D;AAEA,QAAM,mCAAmC,OAAQ,KAAM;AACvD,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAOhE,YAAW,MAAM;AAChB,QAAK,gBAAiB;AACrB,uCAAiC,UAAU;AAAA,IAC5C;AAAA,EACD,GAAG,CAAE,cAAe,CAAE;AAEtB,MAAK,CAAE,kBAAkB,CAAE,iCAAiC,SAAU;AACrE,WAAO;AAAA,EACR;AAEA,QAAM,wBAAwB,MAAM;AACnC,UAAM,uBAAuB,OAAO;AAAA,MACnC,QAAQ,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QAC5C;AAAA,QACA;AAAA,UACC,UAAU,iBAAkB;AAAA,YAC3B,GAAG,YAAY;AAAA,YACf,iBAAiB,iBAAiB,SAAY;AAAA,UAC/C,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AACA,0BAAuB,WAAW,sBAAsB;AAAA,MACvD,eAAe;AAAA,IAChB,CAAE;AAAA,EACH;AAEA,SACC,gCACC,8BAAC,gBACA;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,CAAE;AAAA,MACb,MAAO,iBAAiB,SAAS;AAAA,MACjC,OAAQ,iBAAiB,GAAI,QAAS,IAAI,GAAI,SAAU;AAAA,MACxD,SAAU;AAAA;AAAA,EACX,GACD,GACD;AAEF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/content-lock/modify-content-lock-menu-item.js
|
|
2
|
-
import { MenuItem } from "@wordpress/components";
|
|
3
|
-
import { useDispatch, useSelect } from "@wordpress/data";
|
|
4
|
-
import { _x } from "@wordpress/i18n";
|
|
5
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
6
|
-
import { unlock } from "../../lock-unlock.mjs";
|
|
7
|
-
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
function ModifyContentOnlySectionMenuItem({ clientId, onClose }) {
|
|
9
|
-
const { templateLock, isLockedByParent, isEditingContentOnlySection } = useSelect(
|
|
10
|
-
(select) => {
|
|
11
|
-
const {
|
|
12
|
-
getContentLockingParent,
|
|
13
|
-
getTemplateLock,
|
|
14
|
-
getEditedContentOnlySection
|
|
15
|
-
} = unlock(select(blockEditorStore));
|
|
16
|
-
return {
|
|
17
|
-
templateLock: getTemplateLock(clientId),
|
|
18
|
-
isLockedByParent: !!getContentLockingParent(clientId),
|
|
19
|
-
isEditingContentOnlySection: getEditedContentOnlySection() === clientId
|
|
20
|
-
};
|
|
21
|
-
},
|
|
22
|
-
[clientId]
|
|
23
|
-
);
|
|
24
|
-
const blockEditorActions = useDispatch(blockEditorStore);
|
|
25
|
-
const isContentLocked = !isLockedByParent && templateLock === "contentOnly";
|
|
26
|
-
if (window?.__experimentalContentOnlyPatternInsertion || !isContentLocked && !isEditingContentOnlySection) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
const { editContentOnlySection } = unlock(blockEditorActions);
|
|
30
|
-
const showContentOnlyModifyButton = !isEditingContentOnlySection && isContentLocked;
|
|
31
|
-
return showContentOnlyModifyButton && /* @__PURE__ */ jsx(
|
|
32
|
-
MenuItem,
|
|
33
|
-
{
|
|
34
|
-
onClick: () => {
|
|
35
|
-
editContentOnlySection(clientId);
|
|
36
|
-
onClose();
|
|
37
|
-
},
|
|
38
|
-
children: _x("Modify", "Unlock content locked blocks")
|
|
39
|
-
}
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
ModifyContentOnlySectionMenuItem
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=modify-content-lock-menu-item.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/content-lock/modify-content-lock-menu-item.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n// The implementation of content locking is mainly in this file, although the mechanism\n// to stop editing a content only section when an outside block is selected is in the component\n// `StopEditingContentOnlySectionOnOutsideSelect` at block-editor/src/components/block-list/index.js.\n// Besides the components on this file and the file referenced above the implementation\n// also includes artifacts on the store (actions, reducers, and selector).\n\nexport function ModifyContentOnlySectionMenuItem( { clientId, onClose } ) {\n\tconst { templateLock, isLockedByParent, isEditingContentOnlySection } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetContentLockingParent,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\tgetEditedContentOnlySection,\n\t\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\t\treturn {\n\t\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\t\tisLockedByParent: !! getContentLockingParent( clientId ),\n\t\t\t\t\tisEditingContentOnlySection:\n\t\t\t\t\t\tgetEditedContentOnlySection() === clientId,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst blockEditorActions = useDispatch( blockEditorStore );\n\tconst isContentLocked =\n\t\t! isLockedByParent && templateLock === 'contentOnly';\n\n\t// Hide the Modify button when the content only pattern insertion experiment is active.\n\t// This is replaced by an alternative UI in the experiment.\n\tif (\n\t\twindow?.__experimentalContentOnlyPatternInsertion ||\n\t\t( ! isContentLocked && ! isEditingContentOnlySection )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { editContentOnlySection } = unlock( blockEditorActions );\n\tconst showContentOnlyModifyButton =\n\t\t! isEditingContentOnlySection && isContentLocked;\n\n\treturn (\n\t\tshowContentOnlyModifyButton && (\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\teditContentOnlySection( clientId );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ _x( 'Modify', 'Unlock content locked blocks' ) }\n\t\t\t</MenuItem>\n\t\t)\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,gBAAgB;AACzB,SAAS,aAAa,iBAAiB;AACvC,SAAS,UAAU;AAKnB,SAAS,SAAS,wBAAwB;AAC1C,SAAS,cAAc;AA6CpB;AArCI,SAAS,iCAAkC,EAAE,UAAU,QAAQ,GAAI;AACzE,QAAM,EAAE,cAAc,kBAAkB,4BAA4B,IACnE;AAAA,IACC,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,OAAQ,gBAAiB,CAAE;AACvC,aAAO;AAAA,QACN,cAAc,gBAAiB,QAAS;AAAA,QACxC,kBAAkB,CAAC,CAAE,wBAAyB,QAAS;AAAA,QACvD,6BACC,4BAA4B,MAAM;AAAA,MACpC;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACD,QAAM,qBAAqB,YAAa,gBAAiB;AACzD,QAAM,kBACL,CAAE,oBAAoB,iBAAiB;AAIxC,MACC,QAAQ,6CACN,CAAE,mBAAmB,CAAE,6BACxB;AACD,WAAO;AAAA,EACR;AAEA,QAAM,EAAE,uBAAuB,IAAI,OAAQ,kBAAmB;AAC9D,QAAM,8BACL,CAAE,+BAA+B;AAElC,SACC,+BACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU,MAAM;AACf,+BAAwB,QAAS;AACjC,gBAAQ;AAAA,MACT;AAAA,MAEE,aAAI,UAAU,8BAA+B;AAAA;AAAA,EAChD;AAGH;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/hooks/content-lock-ui.js
|
|
2
|
-
import { ToolbarButton } from "@wordpress/components";
|
|
3
|
-
import { useDispatch, useSelect } from "@wordpress/data";
|
|
4
|
-
import { __ } from "@wordpress/i18n";
|
|
5
|
-
import { useCallback } from "@wordpress/element";
|
|
6
|
-
import { store as blockEditorStore } from "../store/index.mjs";
|
|
7
|
-
import { BlockControls } from "../components/index.mjs";
|
|
8
|
-
import { unlock } from "../lock-unlock.mjs";
|
|
9
|
-
import { jsx } from "react/jsx-runtime";
|
|
10
|
-
function ContentLockControlsPure({ clientId }) {
|
|
11
|
-
const { templateLock, isLockedByParent, isEditingContentOnlySection } = useSelect(
|
|
12
|
-
(select) => {
|
|
13
|
-
const {
|
|
14
|
-
getContentLockingParent,
|
|
15
|
-
getTemplateLock,
|
|
16
|
-
getEditedContentOnlySection
|
|
17
|
-
} = unlock(select(blockEditorStore));
|
|
18
|
-
return {
|
|
19
|
-
templateLock: getTemplateLock(clientId),
|
|
20
|
-
isLockedByParent: !!getContentLockingParent(clientId),
|
|
21
|
-
isEditingContentOnlySection: getEditedContentOnlySection() === clientId
|
|
22
|
-
};
|
|
23
|
-
},
|
|
24
|
-
[clientId]
|
|
25
|
-
);
|
|
26
|
-
const { stopEditingContentOnlySection } = unlock(
|
|
27
|
-
useDispatch(blockEditorStore)
|
|
28
|
-
);
|
|
29
|
-
const isContentLocked = !isLockedByParent && templateLock === "contentOnly";
|
|
30
|
-
const stopEditingAsBlockCallback = useCallback(() => {
|
|
31
|
-
stopEditingContentOnlySection();
|
|
32
|
-
}, [stopEditingContentOnlySection]);
|
|
33
|
-
if (window?.__experimentalContentOnlyPatternInsertion || !isContentLocked && !isEditingContentOnlySection) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
return isEditingContentOnlySection && /* @__PURE__ */ jsx(BlockControls, { group: "other", children: /* @__PURE__ */ jsx(ToolbarButton, { onClick: stopEditingAsBlockCallback, children: __("Done") }) });
|
|
37
|
-
}
|
|
38
|
-
var content_lock_ui_default = {
|
|
39
|
-
edit: ContentLockControlsPure,
|
|
40
|
-
hasSupport() {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
export {
|
|
45
|
-
content_lock_ui_default as default
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=content-lock-ui.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/hooks/content-lock-ui.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls } from '../components';\nimport { unlock } from '../lock-unlock';\n\n// The implementation of content locking is mainly in this file, although the mechanism\n// to stop editing a content only section when an outside block is selected is in the component\n// `StopEditingContentOnlySectionOnOutsideSelect` at block-editor/src/components/block-list/index.js.\n// Besides the components on this file and the file referenced above the implementation\n// also includes artifacts on the store (actions, reducers, and selector).\n\nfunction ContentLockControlsPure( { clientId } ) {\n\tconst { templateLock, isLockedByParent, isEditingContentOnlySection } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetContentLockingParent,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\tgetEditedContentOnlySection,\n\t\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\t\treturn {\n\t\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\t\tisLockedByParent: !! getContentLockingParent( clientId ),\n\t\t\t\t\tisEditingContentOnlySection:\n\t\t\t\t\t\tgetEditedContentOnlySection() === clientId,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\tconst { stopEditingContentOnlySection } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tconst isContentLocked =\n\t\t! isLockedByParent && templateLock === 'contentOnly';\n\n\tconst stopEditingAsBlockCallback = useCallback( () => {\n\t\tstopEditingContentOnlySection();\n\t}, [ stopEditingContentOnlySection ] );\n\n\t// Hide the Done button when the content only pattern insertion experiment is active.\n\t// This is replaced by an alternative UI in the experiment.\n\tif (\n\t\twindow?.__experimentalContentOnlyPatternInsertion ||\n\t\t( ! isContentLocked && ! isEditingContentOnlySection )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tisEditingContentOnlySection && (\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarButton onClick={ stopEditingAsBlockCallback }>\n\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</BlockControls>\n\t\t)\n\t);\n}\n\nexport default {\n\tedit: ContentLockControlsPure,\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,qBAAqB;AAC9B,SAAS,aAAa,iBAAiB;AACvC,SAAS,UAAU;AACnB,SAAS,mBAAmB;AAK5B,SAAS,SAAS,wBAAwB;AAC1C,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AAiDnB;AAzCJ,SAAS,wBAAyB,EAAE,SAAS,GAAI;AAChD,QAAM,EAAE,cAAc,kBAAkB,4BAA4B,IACnE;AAAA,IACC,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,OAAQ,gBAAiB,CAAE;AACvC,aAAO;AAAA,QACN,cAAc,gBAAiB,QAAS;AAAA,QACxC,kBAAkB,CAAC,CAAE,wBAAyB,QAAS;AAAA,QACvD,6BACC,4BAA4B,MAAM;AAAA,MACpC;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAED,QAAM,EAAE,8BAA8B,IAAI;AAAA,IACzC,YAAa,gBAAiB;AAAA,EAC/B;AACA,QAAM,kBACL,CAAE,oBAAoB,iBAAiB;AAExC,QAAM,6BAA6B,YAAa,MAAM;AACrD,kCAA8B;AAAA,EAC/B,GAAG,CAAE,6BAA8B,CAAE;AAIrC,MACC,QAAQ,6CACN,CAAE,mBAAmB,CAAE,6BACxB;AACD,WAAO;AAAA,EACR;AAEA,SACC,+BACC,oBAAC,iBAAc,OAAM,SACpB,8BAAC,iBAAc,SAAU,4BACtB,aAAI,MAAO,GACd,GACD;AAGH;AAEA,IAAO,0BAAQ;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AACZ,WAAO;AAAA,EACR;AACD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
Icon,
|
|
6
|
-
__experimentalText as Text,
|
|
7
|
-
__experimentalHStack as HStack,
|
|
8
|
-
privateApis as componentsPrivateApis,
|
|
9
|
-
} from '@wordpress/components';
|
|
10
|
-
import { useSelect } from '@wordpress/data';
|
|
11
|
-
import { __ } from '@wordpress/i18n';
|
|
12
|
-
import { unseen } from '@wordpress/icons';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Internal dependencies
|
|
16
|
-
*/
|
|
17
|
-
import { unlock } from '../../lock-unlock';
|
|
18
|
-
import { store as blockEditorStore } from '../../store';
|
|
19
|
-
|
|
20
|
-
const { Badge } = unlock( componentsPrivateApis );
|
|
21
|
-
|
|
22
|
-
export default function BlockVisibilityInfo( { clientId } ) {
|
|
23
|
-
const { isBlockHidden, hasHiddenParent } = useSelect(
|
|
24
|
-
( select ) => {
|
|
25
|
-
if ( ! clientId ) {
|
|
26
|
-
return { isBlockHidden: false, hasHiddenParent: false };
|
|
27
|
-
}
|
|
28
|
-
const { isBlockHidden: _isBlockHidden, getBlockParents } = unlock(
|
|
29
|
-
select( blockEditorStore )
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
const blockHidden = _isBlockHidden( clientId );
|
|
33
|
-
const parents = getBlockParents( clientId );
|
|
34
|
-
const parentHidden = parents.some( ( parentId ) =>
|
|
35
|
-
_isBlockHidden( parentId )
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
isBlockHidden: blockHidden,
|
|
40
|
-
hasHiddenParent: parentHidden,
|
|
41
|
-
};
|
|
42
|
-
},
|
|
43
|
-
[ clientId ]
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
if ( ! ( isBlockHidden || hasHiddenParent ) ) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
<Badge className="block-editor-block-visibility-info">
|
|
52
|
-
<HStack spacing={ 2 } justify="start">
|
|
53
|
-
<Icon icon={ unseen } />
|
|
54
|
-
<Text>
|
|
55
|
-
{ isBlockHidden
|
|
56
|
-
? __( 'Block is hidden' )
|
|
57
|
-
: __( 'Parent block is hidden' ) }
|
|
58
|
-
</Text>
|
|
59
|
-
</HStack>
|
|
60
|
-
</Badge>
|
|
61
|
-
);
|
|
62
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
5
|
-
import { MenuItem } from '@wordpress/components';
|
|
6
|
-
import { seen, unseen } from '@wordpress/icons';
|
|
7
|
-
import { useSelect, useDispatch } from '@wordpress/data';
|
|
8
|
-
import { store as noticesStore } from '@wordpress/notices';
|
|
9
|
-
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Internal dependencies
|
|
13
|
-
*/
|
|
14
|
-
import { cleanEmptyObject } from '../../hooks/utils';
|
|
15
|
-
import { store as blockEditorStore } from '../../store';
|
|
16
|
-
|
|
17
|
-
export default function BlockVisibilityMenuItem( { clientIds } ) {
|
|
18
|
-
const { updateBlockAttributes } = useDispatch( blockEditorStore );
|
|
19
|
-
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
20
|
-
const blocks = useSelect(
|
|
21
|
-
( select ) => {
|
|
22
|
-
return select( blockEditorStore ).getBlocksByClientId( clientIds );
|
|
23
|
-
},
|
|
24
|
-
[ clientIds ]
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
const listViewShortcut = useSelect( ( select ) => {
|
|
28
|
-
return select( keyboardShortcutsStore ).getShortcutRepresentation(
|
|
29
|
-
'core/editor/toggle-list-view'
|
|
30
|
-
);
|
|
31
|
-
}, [] );
|
|
32
|
-
|
|
33
|
-
const hasHiddenBlock = blocks.some(
|
|
34
|
-
( block ) => block.attributes.metadata?.blockVisibility === false
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
const toggleBlockVisibility = () => {
|
|
38
|
-
const isHiding = ! hasHiddenBlock;
|
|
39
|
-
|
|
40
|
-
const attributesByClientId = Object.fromEntries(
|
|
41
|
-
blocks?.map( ( { clientId, attributes } ) => [
|
|
42
|
-
clientId,
|
|
43
|
-
{
|
|
44
|
-
metadata: cleanEmptyObject( {
|
|
45
|
-
...attributes?.metadata,
|
|
46
|
-
blockVisibility: isHiding ? false : undefined,
|
|
47
|
-
} ),
|
|
48
|
-
},
|
|
49
|
-
] )
|
|
50
|
-
);
|
|
51
|
-
updateBlockAttributes( clientIds, attributesByClientId, {
|
|
52
|
-
uniqueByBlock: true,
|
|
53
|
-
} );
|
|
54
|
-
|
|
55
|
-
if ( isHiding ) {
|
|
56
|
-
if ( blocks.length > 1 ) {
|
|
57
|
-
createSuccessNotice(
|
|
58
|
-
sprintf(
|
|
59
|
-
// translators: %s: The shortcut key to access the List View.
|
|
60
|
-
__(
|
|
61
|
-
'Blocks hidden. You can access them via the List View (%s).'
|
|
62
|
-
),
|
|
63
|
-
listViewShortcut
|
|
64
|
-
),
|
|
65
|
-
{
|
|
66
|
-
id: 'block-visibility-hidden',
|
|
67
|
-
type: 'snackbar',
|
|
68
|
-
}
|
|
69
|
-
);
|
|
70
|
-
} else {
|
|
71
|
-
createSuccessNotice(
|
|
72
|
-
sprintf(
|
|
73
|
-
// translators: %s: The shortcut key to access the List View.
|
|
74
|
-
__(
|
|
75
|
-
'Block hidden. You can access it via the List View (%s).'
|
|
76
|
-
),
|
|
77
|
-
listViewShortcut
|
|
78
|
-
),
|
|
79
|
-
{
|
|
80
|
-
id: 'block-visibility-hidden',
|
|
81
|
-
type: 'snackbar',
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return (
|
|
89
|
-
<MenuItem
|
|
90
|
-
icon={ hasHiddenBlock ? seen : unseen }
|
|
91
|
-
onClick={ toggleBlockVisibility }
|
|
92
|
-
>
|
|
93
|
-
{ hasHiddenBlock ? __( 'Show' ) : __( 'Hide' ) }
|
|
94
|
-
</MenuItem>
|
|
95
|
-
);
|
|
96
|
-
}
|