@wordpress/block-editor 10.5.0 → 11.0.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 +10 -0
- package/build/autocompleters/block.js +2 -6
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js +2 -0
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-card/index.js +51 -3
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +46 -39
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +4 -3
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js +4 -7
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-inspector/index.js +35 -33
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-context.native.js +5 -8
- package/build/components/block-list/block-list-context.native.js.map +1 -1
- package/build/components/block-list/block.js +55 -24
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +61 -28
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +12 -4
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +3 -2
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +33 -11
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +9 -3
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +5 -9
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-toolbar/index.js +5 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +8 -49
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-variation-picker/index.js +1 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/height-control/index.js +115 -0
- package/build/components/height-control/index.js.map +1 -0
- package/build/components/iframe/index.js +11 -8
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +2 -0
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +1 -0
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +20 -6
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +25 -46
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +3 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-debounced-input.js +27 -0
- package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
- package/build/components/inserter/index.js +8 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +3 -4
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +103 -0
- package/build/components/inserter/media-tab/hooks.js.map +1 -0
- package/build/components/inserter/media-tab/index.js +32 -0
- package/build/components/inserter/media-tab/index.js.map +1 -0
- package/build/components/inserter/media-tab/media-list.js +100 -0
- package/build/components/inserter/media-tab/media-list.js.map +1 -0
- package/build/components/inserter/media-tab/media-panel.js +96 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -0
- package/build/components/inserter/media-tab/media-tab.js +120 -0
- package/build/components/inserter/media-tab/media-tab.js.map +1 -0
- package/build/components/inserter/media-tab/utils.js +54 -0
- package/build/components/inserter/media-tab/utils.js.map +1 -0
- package/build/components/inserter/menu.js +35 -12
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +70 -0
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
- package/build/components/inserter/quick-inserter.js +1 -0
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +3 -1
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +16 -2
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-list-item/index.js +4 -1
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
- package/build/components/inspector-controls-tabs/index.js +71 -0
- package/build/components/inspector-controls-tabs/index.js.map +1 -0
- package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
- package/build/components/inspector-controls-tabs/utils.js +37 -0
- package/build/components/inspector-controls-tabs/utils.js.map +1 -0
- package/build/components/link-control/index.js +1 -0
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +0 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/use-internal-input-value.js +3 -3
- package/build/components/link-control/use-internal-input-value.js.map +1 -1
- package/build/components/list-view/block.js +5 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +13 -12
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/media-upload/index.native.js +2 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +104 -0
- package/build/components/off-canvas-editor/appender.js.map +1 -0
- package/build/components/off-canvas-editor/block-edit-button.js +50 -0
- package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
- package/build/components/off-canvas-editor/block.js +36 -4
- package/build/components/off-canvas-editor/block.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +3 -5
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +20 -11
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/leaf.js +1 -1
- package/build/components/off-canvas-editor/leaf.js.map +1 -1
- package/build/components/off-canvas-editor/link-ui.js +185 -0
- package/build/components/off-canvas-editor/link-ui.js.map +1 -0
- package/build/components/off-canvas-editor/update-attributes.js +108 -0
- package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
- package/build/components/rich-text/format-toolbar/index.js +8 -4
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +3 -3
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +0 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-insert-replacement-text.js +43 -0
- package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/use-undo-automatic-change.js +9 -1
- package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
- package/build/components/rich-text/utils.js +1 -19
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +4 -2
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/url-input/index.js +46 -43
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +8 -4
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-setting/index.js +9 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/child-layout.js +209 -0
- package/build/hooks/child-layout.js.map +1 -0
- package/build/hooks/content-lock-ui.js +1 -1
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/dimensions.js +25 -7
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/layout.js +57 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/min-height.js +4 -10
- package/build/hooks/min-height.js.map +1 -1
- package/build/store/reducer.js +393 -270
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +57 -47
- package/build/store/selectors.js.map +1 -1
- package/build/utils/sorting.js +63 -0
- package/build/utils/sorting.js.map +1 -0
- package/build-module/autocompleters/block.js +2 -6
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -0
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-card/index.js +45 -3
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +40 -31
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +4 -2
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js +4 -6
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +32 -30
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-context.native.js +5 -8
- package/build-module/components/block-list/block-list-context.native.js.map +1 -1
- package/build-module/components/block-list/block.js +55 -25
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +61 -28
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +13 -6
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +3 -2
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +35 -13
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +9 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +5 -8
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +6 -2
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +8 -49
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +1 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/height-control/index.js +103 -0
- package/build-module/components/height-control/index.js.map +1 -0
- package/build-module/components/iframe/index.js +11 -8
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -0
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +1 -0
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +22 -8
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +27 -49
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +3 -2
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
- package/build-module/components/inserter/index.js +8 -3
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +3 -5
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +89 -0
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
- package/build-module/components/inserter/media-tab/index.js +4 -0
- package/build-module/components/inserter/media-tab/index.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-list.js +86 -0
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js +77 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-tab.js +100 -0
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
- package/build-module/components/inserter/media-tab/utils.js +45 -0
- package/build-module/components/inserter/media-tab/utils.js.map +1 -0
- package/build-module/components/inserter/menu.js +33 -12
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
- package/build-module/components/inserter/quick-inserter.js +1 -0
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +3 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +15 -2
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +5 -2
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/index.js +56 -0
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/utils.js +26 -0
- package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
- package/build-module/components/link-control/index.js +1 -0
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +0 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/use-internal-input-value.js +3 -3
- package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
- package/build-module/components/list-view/block.js +5 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +12 -11
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +2 -4
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +89 -0
- package/build-module/components/off-canvas-editor/appender.js.map +1 -0
- package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
- package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
- package/build-module/components/off-canvas-editor/block.js +36 -6
- package/build-module/components/off-canvas-editor/block.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +3 -4
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +20 -12
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/leaf.js +1 -1
- package/build-module/components/off-canvas-editor/leaf.js.map +1 -1
- package/build-module/components/off-canvas-editor/link-ui.js +165 -0
- package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
- package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
- package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar/index.js +6 -2
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +2 -3
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +0 -2
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
- package/build-module/components/rich-text/utils.js +1 -16
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +3 -2
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +46 -43
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +9 -5
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +8 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/child-layout.js +189 -0
- package/build-module/hooks/child-layout.js.map +1 -0
- package/build-module/hooks/content-lock-ui.js +1 -1
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/dimensions.js +25 -8
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/layout.js +55 -0
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/min-height.js +3 -9
- package/build-module/hooks/min-height.js.map +1 -1
- package/build-module/store/reducer.js +391 -271
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +54 -47
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/sorting.js +56 -0
- package/build-module/utils/sorting.js.map +1 -0
- package/build-style/content-rtl.css +701 -0
- package/build-style/content.css +701 -0
- package/build-style/default-editor-styles-rtl.css +14 -0
- package/build-style/default-editor-styles.css +14 -0
- package/build-style/style-rtl.css +286 -662
- package/build-style/style.css +286 -662
- package/package.json +32 -30
- package/src/autocompleters/block.js +2 -6
- package/src/autocompleters/link.js +2 -0
- package/src/components/alignment-control/test/index.js +4 -1
- package/src/components/block-alignment-control/test/index.js +4 -1
- package/src/components/block-card/index.js +46 -2
- package/src/components/block-card/style.scss +4 -0
- package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
- package/src/components/block-draggable/content.scss +20 -0
- package/src/components/block-draggable/index.native.js +54 -40
- package/src/components/block-draggable/style.scss +0 -21
- package/src/components/block-draggable/test/helpers.native.js +7 -9
- package/src/components/block-draggable/test/index.native.js +35 -45
- package/src/components/block-edit/edit.js +5 -2
- package/src/components/block-edit/edit.native.js +5 -6
- package/src/components/block-inspector/index.js +96 -81
- package/src/components/block-inspector/style.scss +9 -1
- package/src/components/block-list/block-list-context.native.js +5 -8
- package/src/components/block-list/block.js +74 -23
- package/src/components/block-list/block.native.js +78 -23
- package/src/components/block-list/{style.scss → content.scss} +1 -15
- package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +24 -6
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -2
- package/src/components/block-pattern-setup/index.js +2 -1
- package/src/components/block-patterns-list/index.js +47 -24
- package/src/components/block-preview/README.md +15 -10
- package/src/components/block-preview/auto.js +7 -1
- package/src/components/block-preview/content.scss +4 -0
- package/src/components/block-preview/index.js +7 -12
- package/src/components/block-preview/style.scss +0 -7
- package/src/components/block-preview/test/index.js +18 -35
- package/src/components/block-selection-clearer/test/index.js +12 -12
- package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
- package/src/components/block-switcher/test/index.js +4 -0
- package/src/components/block-toolbar/index.js +12 -5
- package/src/components/block-toolbar/style.scss +10 -0
- package/src/components/block-tools/insertion-point.js +3 -47
- package/src/components/block-tools/style.scss +12 -5
- package/src/components/block-variation-picker/index.js +1 -4
- package/src/components/block-vertical-alignment-control/test/index.js +4 -1
- package/src/components/default-block-appender/{style.scss → content.scss} +0 -0
- package/src/components/height-control/index.js +123 -0
- package/src/components/height-control/stories/index.js +21 -0
- package/src/components/height-control/style.scss +5 -0
- package/src/components/iframe/index.js +25 -18
- package/src/components/image-editor/use-save-image.js +2 -0
- package/src/components/image-editor/zoom-dropdown.js +1 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
- package/src/components/inner-blocks/index.js +23 -6
- package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
- package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/src/components/inserter/block-patterns-tab.js +28 -71
- package/src/components/inserter/block-types-tab.js +3 -2
- package/src/components/inserter/hooks/use-debounced-input.js +17 -0
- package/src/components/inserter/index.js +10 -2
- package/src/components/inserter/index.native.js +1 -1
- package/src/components/inserter/media-tab/hooks.js +88 -0
- package/src/components/inserter/media-tab/index.js +3 -0
- package/src/components/inserter/media-tab/media-list.js +93 -0
- package/src/components/inserter/media-tab/media-panel.js +83 -0
- package/src/components/inserter/media-tab/media-tab.js +135 -0
- package/src/components/inserter/media-tab/utils.js +37 -0
- package/src/components/inserter/menu.js +55 -13
- package/src/components/inserter/mobile-tab-navigation.js +85 -0
- package/src/components/inserter/quick-inserter.js +1 -0
- package/src/components/inserter/search-results.js +3 -2
- package/src/components/inserter/stories/index.js +1 -1
- package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
- package/src/components/inserter/style.scss +176 -11
- package/src/components/inserter/tabs.js +12 -1
- package/src/components/inserter-list-item/index.js +11 -1
- package/src/components/inserter-list-item/style.scss +26 -0
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
- package/src/components/inspector-controls-tabs/index.js +62 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
- package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
- package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
- package/src/components/inspector-controls-tabs/utils.js +28 -0
- package/src/components/line-height-control/test/index.js +5 -5
- package/src/components/link-control/README.md +1 -1
- package/src/components/link-control/index.js +1 -0
- package/src/components/link-control/search-input.js +0 -1
- package/src/components/link-control/test/index.js +188 -401
- package/src/components/link-control/use-internal-input-value.js +3 -3
- package/src/components/list-view/block.js +3 -0
- package/src/components/list-view/branch.js +10 -8
- package/src/components/list-view/style.scss +20 -9
- package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
- package/src/components/media-replace-flow/test/index.js +37 -9
- package/src/components/media-upload/test/index.native.js +2 -0
- package/src/components/off-canvas-editor/appender.js +93 -0
- package/src/components/off-canvas-editor/block-edit-button.js +27 -0
- package/src/components/off-canvas-editor/block.js +88 -22
- package/src/components/off-canvas-editor/branch.js +3 -5
- package/src/components/off-canvas-editor/index.js +59 -33
- package/src/components/off-canvas-editor/leaf.js +5 -1
- package/src/components/off-canvas-editor/link-ui.js +166 -0
- package/src/components/off-canvas-editor/style.scss +17 -388
- package/src/components/off-canvas-editor/update-attributes.js +99 -0
- package/src/components/plain-text/{style.scss → content.scss} +0 -0
- package/src/components/recursion-provider/test/index.js +27 -29
- package/src/components/rich-text/content.scss +42 -0
- package/src/components/rich-text/format-toolbar/index.js +6 -4
- package/src/components/rich-text/index.js +2 -2
- package/src/components/rich-text/index.native.js +0 -2
- package/src/components/rich-text/style.scss +0 -43
- package/src/components/rich-text/use-insert-replacement-text.js +31 -0
- package/src/components/rich-text/use-undo-automatic-change.js +7 -1
- package/src/components/rich-text/utils.js +2 -21
- package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
- package/src/components/ungroup-button/index.native.js +6 -2
- package/src/components/url-input/index.js +57 -73
- package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
- package/src/components/url-popover/test/index.js +21 -9
- package/src/components/use-block-display-information/index.js +14 -5
- package/src/components/use-setting/index.js +13 -1
- package/src/components/use-setting/test/index.js +99 -0
- package/src/content.scss +10 -0
- package/src/hooks/child-layout.js +190 -0
- package/src/hooks/content-lock-ui.js +1 -1
- package/src/hooks/dimensions.js +45 -7
- package/src/hooks/layout.js +60 -0
- package/src/hooks/min-height.js +2 -19
- package/src/store/reducer.js +459 -423
- package/src/store/selectors.js +56 -57
- package/src/store/test/performance.js +71 -0
- package/src/store/test/reducer.js +623 -491
- package/src/store/test/selectors.js +1820 -1306
- package/src/style.scss +4 -7
- package/src/utils/sorting.js +54 -0
- package/src/utils/test/sorting.js +49 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-preview/live.js +0 -30
- package/build/components/block-preview/live.js.map +0 -1
- package/build-module/components/block-preview/live.js +0 -20
- package/build-module/components/block-preview/live.js.map +0 -1
- package/src/components/block-preview/live.js +0 -19
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* WordPress dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl } from '@wordpress/components';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
import { useEffect } from '@wordpress/element';
|
|
9
|
+
/**
|
|
10
|
+
* Internal dependencies
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import useSetting from '../components/use-setting';
|
|
14
|
+
|
|
15
|
+
function helpText(selfStretch, parentLayout) {
|
|
16
|
+
const {
|
|
17
|
+
orientation = 'horizontal'
|
|
18
|
+
} = parentLayout;
|
|
19
|
+
|
|
20
|
+
if (selfStretch === 'fill') {
|
|
21
|
+
return __('Stretch to fill available space.');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (selfStretch === 'fixed') {
|
|
25
|
+
if (orientation === 'horizontal') {
|
|
26
|
+
return __('Specify a fixed width.');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return __('Specify a fixed height.');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return __('Fit contents.');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Inspector controls containing the child layout related configuration.
|
|
36
|
+
*
|
|
37
|
+
* @param {Object} props Block props.
|
|
38
|
+
* @param {Object} props.attributes Block attributes.
|
|
39
|
+
* @param {Object} props.setAttributes Function to set block attributes.
|
|
40
|
+
* @param {Object} props.__unstableParentLayout
|
|
41
|
+
*
|
|
42
|
+
* @return {WPElement} child layout edit element.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
export function ChildLayoutEdit(_ref) {
|
|
47
|
+
let {
|
|
48
|
+
attributes,
|
|
49
|
+
setAttributes,
|
|
50
|
+
__unstableParentLayout: parentLayout
|
|
51
|
+
} = _ref;
|
|
52
|
+
const {
|
|
53
|
+
style = {}
|
|
54
|
+
} = attributes;
|
|
55
|
+
const {
|
|
56
|
+
layout: childLayout = {}
|
|
57
|
+
} = style;
|
|
58
|
+
const {
|
|
59
|
+
selfStretch,
|
|
60
|
+
flexSize
|
|
61
|
+
} = childLayout;
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (selfStretch === 'fixed' && !flexSize) {
|
|
64
|
+
setAttributes({
|
|
65
|
+
style: { ...style,
|
|
66
|
+
layout: { ...childLayout,
|
|
67
|
+
selfStretch: 'fit'
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}, []);
|
|
73
|
+
return createElement(Fragment, null, createElement(ToggleGroupControl, {
|
|
74
|
+
size: '__unstable-large',
|
|
75
|
+
label: childLayoutOrientation(parentLayout),
|
|
76
|
+
value: selfStretch || 'fit',
|
|
77
|
+
help: helpText(selfStretch, parentLayout),
|
|
78
|
+
onChange: value => {
|
|
79
|
+
const newFlexSize = value !== 'fixed' ? null : flexSize;
|
|
80
|
+
setAttributes({
|
|
81
|
+
style: { ...style,
|
|
82
|
+
layout: { ...childLayout,
|
|
83
|
+
selfStretch: value,
|
|
84
|
+
flexSize: newFlexSize
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
isBlock: true
|
|
90
|
+
}, createElement(ToggleGroupControlOption, {
|
|
91
|
+
key: 'fit',
|
|
92
|
+
value: 'fit',
|
|
93
|
+
label: __('Fit')
|
|
94
|
+
}), createElement(ToggleGroupControlOption, {
|
|
95
|
+
key: 'fill',
|
|
96
|
+
value: 'fill',
|
|
97
|
+
label: __('Fill')
|
|
98
|
+
}), createElement(ToggleGroupControlOption, {
|
|
99
|
+
key: 'fixed',
|
|
100
|
+
value: 'fixed',
|
|
101
|
+
label: __('Fixed')
|
|
102
|
+
})), selfStretch === 'fixed' && createElement(UnitControl, {
|
|
103
|
+
size: '__unstable-large',
|
|
104
|
+
onChange: value => {
|
|
105
|
+
setAttributes({
|
|
106
|
+
style: { ...style,
|
|
107
|
+
layout: { ...childLayout,
|
|
108
|
+
flexSize: value
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
value: flexSize
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Determines if there is child layout support.
|
|
118
|
+
*
|
|
119
|
+
* @param {Object} props Block Props object.
|
|
120
|
+
* @param {Object} props.__unstableParentLayout Parent layout.
|
|
121
|
+
*
|
|
122
|
+
* @return {boolean} Whether there is support.
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
export function hasChildLayoutSupport(_ref2) {
|
|
126
|
+
let {
|
|
127
|
+
__unstableParentLayout: parentLayout = {}
|
|
128
|
+
} = _ref2;
|
|
129
|
+
const {
|
|
130
|
+
type: parentLayoutType = 'default',
|
|
131
|
+
allowSizingOnChildren = false
|
|
132
|
+
} = parentLayout;
|
|
133
|
+
const support = parentLayoutType === 'flex' && allowSizingOnChildren;
|
|
134
|
+
return support;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Checks if there is a current value in the child layout attributes.
|
|
138
|
+
*
|
|
139
|
+
* @param {Object} props Block props.
|
|
140
|
+
* @return {boolean} Whether or not the block has a child layout value set.
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
export function hasChildLayoutValue(props) {
|
|
144
|
+
var _props$attributes$sty;
|
|
145
|
+
|
|
146
|
+
return ((_props$attributes$sty = props.attributes.style) === null || _props$attributes$sty === void 0 ? void 0 : _props$attributes$sty.layout) !== undefined;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Resets the child layout attribute. This can be used when disabling
|
|
150
|
+
* child layout controls for a block via a progressive discovery panel.
|
|
151
|
+
*
|
|
152
|
+
* @param {Object} props Block props.
|
|
153
|
+
* @param {Object} props.attributes Block attributes.
|
|
154
|
+
* @param {Object} props.setAttributes Function to set block attributes.
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
export function resetChildLayout(_ref3) {
|
|
158
|
+
let {
|
|
159
|
+
attributes = {},
|
|
160
|
+
setAttributes
|
|
161
|
+
} = _ref3;
|
|
162
|
+
const {
|
|
163
|
+
style
|
|
164
|
+
} = attributes;
|
|
165
|
+
setAttributes({
|
|
166
|
+
style: { ...style,
|
|
167
|
+
layout: undefined
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Custom hook that checks if child layout settings have been disabled.
|
|
173
|
+
*
|
|
174
|
+
* @param {Object} props Block props.
|
|
175
|
+
*
|
|
176
|
+
* @return {boolean} Whether the child layout setting is disabled.
|
|
177
|
+
*/
|
|
178
|
+
|
|
179
|
+
export function useIsChildLayoutDisabled(props) {
|
|
180
|
+
const isDisabled = !useSetting('layout');
|
|
181
|
+
return !hasChildLayoutSupport(props) || isDisabled;
|
|
182
|
+
}
|
|
183
|
+
export function childLayoutOrientation(parentLayout) {
|
|
184
|
+
const {
|
|
185
|
+
orientation = 'horizontal'
|
|
186
|
+
} = parentLayout;
|
|
187
|
+
return orientation === 'horizontal' ? __('Width') : __('Height');
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=child-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/child-layout.js"],"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__","useEffect","useSetting","helpText","selfStretch","parentLayout","orientation","ChildLayoutEdit","attributes","setAttributes","__unstableParentLayout","style","layout","childLayout","flexSize","childLayoutOrientation","value","newFlexSize","hasChildLayoutSupport","type","parentLayoutType","allowSizingOnChildren","support","hasChildLayoutValue","props","undefined","resetChildLayout","useIsChildLayoutDisabled","isDisabled"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../components/use-setting';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn __( 'Specify a fixed width.' );\n\t\t}\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Inspector controls containing the child layout related configuration.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block attributes.\n * @param {Object} props.setAttributes Function to set block attributes.\n * @param {Object} props.__unstableParentLayout\n *\n * @return {WPElement} child layout edit element.\n */\nexport function ChildLayoutEdit( {\n\tattributes,\n\tsetAttributes,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst { style = {} } = attributes;\n\tconst { layout: childLayout = {} } = style;\n\tconst { selfStretch, flexSize } = childLayout;\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...style,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...childLayout,\n\t\t\t\t\t\tselfStretch: 'fit',\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<ToggleGroupControl\n\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t...childLayout,\n\t\t\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock={ true }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fit' }\n\t\t\t\t\tvalue={ 'fit' }\n\t\t\t\t\tlabel={ __( 'Fit' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fill' }\n\t\t\t\t\tvalue={ 'fill' }\n\t\t\t\t\tlabel={ __( 'Fill' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fixed' }\n\t\t\t\t\tvalue={ 'fixed' }\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t...childLayout,\n\t\t\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determines if there is child layout support.\n *\n * @param {Object} props Block Props object.\n * @param {Object} props.__unstableParentLayout Parent layout.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasChildLayoutSupport( {\n\t__unstableParentLayout: parentLayout = {},\n} ) {\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t} = parentLayout;\n\tconst support = parentLayoutType === 'flex' && allowSizingOnChildren;\n\n\treturn support;\n}\n\n/**\n * Checks if there is a current value in the child layout attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a child layout value set.\n */\nexport function hasChildLayoutValue( props ) {\n\treturn props.attributes.style?.layout !== undefined;\n}\n\n/**\n * Resets the child layout attribute. This can be used when disabling\n * child layout controls for a block via a progressive discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block attributes.\n * @param {Object} props.setAttributes Function to set block attributes.\n */\nexport function resetChildLayout( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: {\n\t\t\t...style,\n\t\t\tlayout: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Custom hook that checks if child layout settings have been disabled.\n *\n * @param {Object} props Block props.\n *\n * @return {boolean} Whether the child layout setting is disabled.\n */\nexport function useIsChildLayoutDisabled( props ) {\n\tconst isDisabled = ! useSetting( 'layout' );\n\n\treturn ! hasChildLayoutSupport( props ) || isDisabled;\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n"]}
|
|
@@ -131,5 +131,5 @@ export const withBlockControls = createHigherOrderComponent(BlockEdit => props =
|
|
|
131
131
|
className: classnames(props.className, isEditingAsBlocks && 'is-content-locked-editing-as-blocks')
|
|
132
132
|
})));
|
|
133
133
|
}, 'withToolbarControls');
|
|
134
|
-
addFilter('editor.BlockEdit', 'core/
|
|
134
|
+
addFilter('editor.BlockEdit', 'core/content-lock-ui/with-block-controls', withBlockControls);
|
|
135
135
|
//# sourceMappingURL=content-lock-ui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/content-lock-ui.js"],"names":["ToolbarButton","MenuItem","createHigherOrderComponent","useDispatch","useSelect","addFilter","__","useEffect","useRef","useCallback","store","blockEditorStore","BlockControls","BlockSettingsMenuControls","classnames","StopEditingAsBlocksOnOutsideSelect","clientId","stopEditingAsBlock","isBlockOrDescendantSelected","select","isBlockSelected","hasSelectedInnerBlock","withBlockControls","BlockEdit","props","getBlockListSettings","getSettings","focusModeToRevert","templateLock","isLockedByParent","isEditingAsBlocks","__unstableGetContentLockingParent","getTemplateLock","__unstableGetTemporarilyEditingAsBlocks","updateSettings","updateBlockListSettings","__unstableSetTemporarilyEditingAsBlocks","isContentLocked","__unstableMarkNextChangeAsNotPersistent","updateBlockAttributes","focusMode","current","isSelected","onClose","undefined","className"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/content-lock-ui.js"],"names":["ToolbarButton","MenuItem","createHigherOrderComponent","useDispatch","useSelect","addFilter","__","useEffect","useRef","useCallback","store","blockEditorStore","BlockControls","BlockSettingsMenuControls","classnames","StopEditingAsBlocksOnOutsideSelect","clientId","stopEditingAsBlock","isBlockOrDescendantSelected","select","isBlockSelected","hasSelectedInnerBlock","withBlockControls","BlockEdit","props","getBlockListSettings","getSettings","focusModeToRevert","templateLock","isLockedByParent","isEditingAsBlocks","__unstableGetContentLockingParent","getTemplateLock","__unstableGetTemporarilyEditingAsBlocks","updateSettings","updateBlockListSettings","__unstableSetTemporarilyEditingAsBlocks","isContentLocked","__unstableMarkNextChangeAsNotPersistent","updateBlockAttributes","focusMode","current","isSelected","onClose","undefined","className"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarButton, MenuItem } from '@wordpress/components';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { BlockControls, BlockSettingsMenuControls } from '../components';\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nfunction StopEditingAsBlocksOnOutsideSelect( {\n\tclientId,\n\tstopEditingAsBlock,\n} ) {\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlock();\n\t\t}\n\t}, [ isBlockOrDescendantSelected ] );\n\treturn null;\n}\n\nexport const withBlockControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { getBlockListSettings, getSettings } =\n\t\t\tuseSelect( blockEditorStore );\n\t\tconst focusModeToRevert = useRef();\n\t\tconst { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__unstableGetContentLockingParent,\n\t\t\t\t\tgetTemplateLock,\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\ttemplateLock: getTemplateLock( props.clientId ),\n\t\t\t\t\tisLockedByParent: !! __unstableGetContentLockingParent(\n\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t),\n\t\t\t\t\tisEditingAsBlocks:\n\t\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() ===\n\t\t\t\t\t\tprops.clientId,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ props.clientId ]\n\t\t);\n\n\t\tconst {\n\t\t\tupdateSettings,\n\t\t\tupdateBlockListSettings,\n\t\t\t__unstableSetTemporarilyEditingAsBlocks,\n\t\t} = useDispatch( blockEditorStore );\n\t\tconst isContentLocked =\n\t\t\t! isLockedByParent && templateLock === 'contentOnly';\n\t\tconst {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tupdateBlockAttributes,\n\t\t} = useDispatch( blockEditorStore );\n\n\t\tconst stopEditingAsBlock = useCallback( () => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( props.clientId, {\n\t\t\t\ttemplateLock: 'contentOnly',\n\t\t\t} );\n\t\t\tupdateBlockListSettings( props.clientId, {\n\t\t\t\t...getBlockListSettings( props.clientId ),\n\t\t\t\ttemplateLock: 'contentOnly',\n\t\t\t} );\n\t\t\tupdateSettings( { focusMode: focusModeToRevert.current } );\n\t\t\t__unstableSetTemporarilyEditingAsBlocks();\n\t\t}, [\n\t\t\tprops.clientId,\n\t\t\tfocusModeToRevert,\n\t\t\tupdateSettings,\n\t\t\tupdateBlockListSettings,\n\t\t\tgetBlockListSettings,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableSetTemporarilyEditingAsBlocks,\n\t\t] );\n\n\t\tif ( ! isContentLocked && ! isEditingAsBlocks ) {\n\t\t\treturn <BlockEdit { ...props } />;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ isEditingAsBlocks && ! isContentLocked && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\t\t\tstopEditingAsBlock={ stopEditingAsBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tstopEditingAsBlock();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ ! isEditingAsBlocks && isContentLocked && props.isSelected && (\n\t\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\t\tupdateBlockAttributes( props.clientId, {\n\t\t\t\t\t\t\t\t\t\ttemplateLock: undefined,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tupdateBlockListSettings( props.clientId, {\n\t\t\t\t\t\t\t\t\t\t...getBlockListSettings(\n\t\t\t\t\t\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\ttemplateLock: false,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tfocusModeToRevert.current =\n\t\t\t\t\t\t\t\t\t\tgetSettings().focusMode;\n\t\t\t\t\t\t\t\t\tupdateSettings( { focusMode: true } );\n\t\t\t\t\t\t\t\t\t__unstableSetTemporarilyEditingAsBlocks(\n\t\t\t\t\t\t\t\t\t\tprops.clientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Modify' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockSettingsMenuControls>\n\t\t\t\t) }\n\t\t\t\t<BlockEdit\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\tisEditingAsBlocks &&\n\t\t\t\t\t\t\t'is-content-locked-editing-as-blocks'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n\t'withToolbarControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/content-lock-ui/with-block-controls',\n\twithBlockControls\n);\n"]}
|
|
@@ -9,7 +9,7 @@ import classnames from 'classnames';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
|
|
12
|
+
import { __experimentalToolsPanelItem as ToolsPanelItem, __experimentalVStack as VStack } from '@wordpress/components';
|
|
13
13
|
import { Platform, useState } from '@wordpress/element';
|
|
14
14
|
import { __ } from '@wordpress/i18n';
|
|
15
15
|
import { getBlockSupport } from '@wordpress/blocks';
|
|
@@ -23,6 +23,7 @@ import { GapEdit, hasGapSupport, hasGapValue, resetGap, useIsGapDisabled } from
|
|
|
23
23
|
import { MarginEdit, MarginVisualizer, hasMarginSupport, hasMarginValue, resetMargin, useIsMarginDisabled } from './margin';
|
|
24
24
|
import { MinHeightEdit, hasMinHeightSupport, hasMinHeightValue, resetMinHeight, useIsMinHeightDisabled } from './min-height';
|
|
25
25
|
import { PaddingEdit, PaddingVisualizer, hasPaddingSupport, hasPaddingValue, resetPadding, useIsPaddingDisabled } from './padding';
|
|
26
|
+
import { ChildLayoutEdit, hasChildLayoutSupport, hasChildLayoutValue, resetChildLayout, useIsChildLayoutDisabled, childLayoutOrientation } from './child-layout';
|
|
26
27
|
import useSetting from '../components/use-setting';
|
|
27
28
|
import { store as blockEditorStore } from '../store';
|
|
28
29
|
export const DIMENSIONS_SUPPORT_KEY = 'dimensions';
|
|
@@ -69,8 +70,9 @@ export function DimensionsPanel(props) {
|
|
|
69
70
|
const isPaddingDisabled = useIsPaddingDisabled(props);
|
|
70
71
|
const isMarginDisabled = useIsMarginDisabled(props);
|
|
71
72
|
const isMinHeightDisabled = useIsMinHeightDisabled(props);
|
|
73
|
+
const isChildLayoutDisabled = useIsChildLayoutDisabled(props);
|
|
72
74
|
const isDisabled = useIsDimensionsDisabled(props);
|
|
73
|
-
const isSupported = hasDimensionsSupport(props
|
|
75
|
+
const isSupported = hasDimensionsSupport(props);
|
|
74
76
|
const spacingSizes = useSetting('spacing.spacingSizes');
|
|
75
77
|
const paddingMouseOver = useVisualizerMouseOver();
|
|
76
78
|
const marginMouseOver = useVisualizerMouseOver();
|
|
@@ -97,6 +99,9 @@ export function DimensionsPanel(props) {
|
|
|
97
99
|
const spacingClassnames = classnames({
|
|
98
100
|
'tools-panel-item-spacing': spacingSizes && spacingSizes.length > 0
|
|
99
101
|
});
|
|
102
|
+
const {
|
|
103
|
+
__unstableParentLayout: parentLayout
|
|
104
|
+
} = props;
|
|
100
105
|
return createElement(Fragment, null, createElement(InspectorControls, {
|
|
101
106
|
__experimentalGroup: "dimensions"
|
|
102
107
|
}, !isPaddingDisabled && createElement(ToolsPanelItem, {
|
|
@@ -130,14 +135,22 @@ export function DimensionsPanel(props) {
|
|
|
130
135
|
isShownByDefault: defaultSpacingControls === null || defaultSpacingControls === void 0 ? void 0 : defaultSpacingControls.blockGap,
|
|
131
136
|
panelId: props.clientId
|
|
132
137
|
}, createElement(GapEdit, props)), !isMinHeightDisabled && createElement(ToolsPanelItem, {
|
|
133
|
-
className: "single-column",
|
|
134
138
|
hasValue: () => hasMinHeightValue(props),
|
|
135
139
|
label: __('Min. height'),
|
|
136
140
|
onDeselect: () => resetMinHeight(props),
|
|
137
141
|
resetAllFilter: createResetAllFilter('minHeight', 'dimensions'),
|
|
138
142
|
isShownByDefault: defaultDimensionsControls === null || defaultDimensionsControls === void 0 ? void 0 : defaultDimensionsControls.minHeight,
|
|
139
143
|
panelId: props.clientId
|
|
140
|
-
}, createElement(MinHeightEdit, props))
|
|
144
|
+
}, createElement(MinHeightEdit, props)), !isChildLayoutDisabled && createElement(VStack, {
|
|
145
|
+
as: ToolsPanelItem,
|
|
146
|
+
spacing: 2,
|
|
147
|
+
hasValue: () => hasChildLayoutValue(props),
|
|
148
|
+
label: childLayoutOrientation(parentLayout),
|
|
149
|
+
onDeselect: () => resetChildLayout(props),
|
|
150
|
+
resetAllFilter: createResetAllFilter('selfStretch', 'layout'),
|
|
151
|
+
isShownByDefault: false,
|
|
152
|
+
panelId: props.clientId
|
|
153
|
+
}, createElement(ChildLayoutEdit, props))), !isPaddingDisabled && createElement(PaddingVisualizer, _extends({
|
|
141
154
|
forceShow: paddingMouseOver.isMouseOver
|
|
142
155
|
}, props)), !isMarginDisabled && createElement(MarginVisualizer, _extends({
|
|
143
156
|
forceShow: marginMouseOver.isMouseOver
|
|
@@ -146,17 +159,20 @@ export function DimensionsPanel(props) {
|
|
|
146
159
|
/**
|
|
147
160
|
* Determine whether there is dimensions related block support.
|
|
148
161
|
*
|
|
149
|
-
* @param {
|
|
162
|
+
* @param {Object} props Block props.
|
|
150
163
|
*
|
|
151
164
|
* @return {boolean} Whether there is support.
|
|
152
165
|
*/
|
|
153
166
|
|
|
154
|
-
export function hasDimensionsSupport(
|
|
167
|
+
export function hasDimensionsSupport(props) {
|
|
155
168
|
if (Platform.OS !== 'web') {
|
|
156
169
|
return false;
|
|
157
170
|
}
|
|
158
171
|
|
|
159
|
-
|
|
172
|
+
const {
|
|
173
|
+
name: blockName
|
|
174
|
+
} = props;
|
|
175
|
+
return hasGapSupport(blockName) || hasMinHeightSupport(blockName) || hasPaddingSupport(blockName) || hasMarginSupport(blockName) || hasChildLayoutSupport(props);
|
|
160
176
|
}
|
|
161
177
|
/**
|
|
162
178
|
* Determines whether dimensions support has been disabled.
|
|
@@ -172,7 +188,8 @@ const useIsDimensionsDisabled = function () {
|
|
|
172
188
|
const minHeightDisabled = useIsMinHeightDisabled(props);
|
|
173
189
|
const paddingDisabled = useIsPaddingDisabled(props);
|
|
174
190
|
const marginDisabled = useIsMarginDisabled(props);
|
|
175
|
-
|
|
191
|
+
const childLayoutDisabled = useIsChildLayoutDisabled(props);
|
|
192
|
+
return gapDisabled && minHeightDisabled && paddingDisabled && marginDisabled && childLayoutDisabled;
|
|
176
193
|
};
|
|
177
194
|
/**
|
|
178
195
|
* Custom hook to retrieve which padding/margin/blockGap is supported
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"names":["classnames","__experimentalToolsPanelItem","ToolsPanelItem","Platform","useState","__","getBlockSupport","useDispatch","InspectorControls","GapEdit","hasGapSupport","hasGapValue","resetGap","useIsGapDisabled","MarginEdit","MarginVisualizer","hasMarginSupport","hasMarginValue","resetMargin","useIsMarginDisabled","MinHeightEdit","hasMinHeightSupport","hasMinHeightValue","resetMinHeight","useIsMinHeightDisabled","PaddingEdit","PaddingVisualizer","hasPaddingSupport","hasPaddingValue","resetPadding","useIsPaddingDisabled","useSetting","store","blockEditorStore","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizerMouseOver","isMouseOver","setIsMouseOver","__experimentalHideBlockInterface","hideBlockInterface","__experimentalShowBlockInterface","showBlockInterface","onMouseOver","e","stopPropagation","onMouseOut","DimensionsPanel","props","isGapDisabled","isPaddingDisabled","isMarginDisabled","isMinHeightDisabled","isDisabled","useIsDimensionsDisabled","isSupported","hasDimensionsSupport","name","spacingSizes","paddingMouseOver","marginMouseOver","defaultDimensionsControls","defaultSpacingControls","createResetAllFilter","attribute","featureSet","newAttributes","style","undefined","spacingClassnames","length","padding","clientId","margin","blockGap","minHeight","blockName","OS","gapDisabled","minHeightDisabled","paddingDisabled","marginDisabled","useCustomSides","feature","support","Array","isArray","sides","useIsDimensionsSupportValid","some","side","includes","console","warn"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';\nimport { Platform, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tGapEdit,\n\thasGapSupport,\n\thasGapValue,\n\tresetGap,\n\tuseIsGapDisabled,\n} from './gap';\nimport {\n\tMarginEdit,\n\tMarginVisualizer,\n\thasMarginSupport,\n\thasMarginValue,\n\tresetMargin,\n\tuseIsMarginDisabled,\n} from './margin';\nimport {\n\tMinHeightEdit,\n\thasMinHeightSupport,\n\thasMinHeightValue,\n\tresetMinHeight,\n\tuseIsMinHeightDisabled,\n} from './min-height';\nimport {\n\tPaddingEdit,\n\tPaddingVisualizer,\n\thasPaddingSupport,\n\thasPaddingValue,\n\tresetPadding,\n\tuseIsPaddingDisabled,\n} from './padding';\nimport useSetting from '../components/use-setting';\nimport { store as blockEditorStore } from '../store';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizerMouseOver() {\n\tconst [ isMouseOver, setIsMouseOver ] = useState( false );\n\tconst {\n\t\t__experimentalHideBlockInterface: hideBlockInterface,\n\t\t__experimentalShowBlockInterface: showBlockInterface,\n\t} = useDispatch( blockEditorStore );\n\tconst onMouseOver = ( e ) => {\n\t\te.stopPropagation();\n\t\thideBlockInterface();\n\t\tsetIsMouseOver( true );\n\t};\n\tconst onMouseOut = ( e ) => {\n\t\te.stopPropagation();\n\t\tshowBlockInterface();\n\t\tsetIsMouseOver( false );\n\t};\n\treturn { isMouseOver, onMouseOver, onMouseOut };\n}\n\n/**\n * Inspector controls for dimensions support.\n *\n * @param {Object} props Block props.\n *\n * @return {WPElement} Inspector controls for dimensions and spacing support features.\n */\nexport function DimensionsPanel( props ) {\n\tconst isGapDisabled = useIsGapDisabled( props );\n\tconst isPaddingDisabled = useIsPaddingDisabled( props );\n\tconst isMarginDisabled = useIsMarginDisabled( props );\n\tconst isMinHeightDisabled = useIsMinHeightDisabled( props );\n\tconst isDisabled = useIsDimensionsDisabled( props );\n\tconst isSupported = hasDimensionsSupport( props.name );\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\tconst paddingMouseOver = useVisualizerMouseOver();\n\tconst marginMouseOver = useVisualizerMouseOver();\n\n\tif ( isDisabled || ! isSupported ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( props.name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst defaultSpacingControls = getBlockSupport( props.name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter =\n\t\t( attribute, featureSet ) => ( newAttributes ) => ( {\n\t\t\t...newAttributes,\n\t\t\tstyle: {\n\t\t\t\t...newAttributes.style,\n\t\t\t\t[ featureSet ]: {\n\t\t\t\t\t...newAttributes.style?.[ featureSet ],\n\t\t\t\t\t[ attribute ]: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\tconst spacingClassnames = classnames( {\n\t\t'tools-panel-item-spacing': spacingSizes && spacingSizes.length > 0,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t{ ! isPaddingDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName={ spacingClassnames }\n\t\t\t\t\t\thasValue={ () => hasPaddingValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\tonDeselect={ () => resetPadding( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'padding',\n\t\t\t\t\t\t\t'spacing'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.padding }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PaddingEdit\n\t\t\t\t\t\t\tonMouseOver={ paddingMouseOver.onMouseOver }\n\t\t\t\t\t\t\tonMouseOut={ paddingMouseOver.onMouseOut }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isMarginDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName={ spacingClassnames }\n\t\t\t\t\t\thasValue={ () => hasMarginValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tonDeselect={ () => resetMargin( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'margin',\n\t\t\t\t\t\t\t'spacing'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.margin }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MarginEdit\n\t\t\t\t\t\t\tonMouseOver={ marginMouseOver.onMouseOver }\n\t\t\t\t\t\t\tonMouseOut={ marginMouseOver.onMouseOut }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isGapDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName={ spacingClassnames }\n\t\t\t\t\t\thasValue={ () => hasGapValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\tonDeselect={ () => resetGap( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'blockGap',\n\t\t\t\t\t\t\t'spacing'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.blockGap }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GapEdit { ...props } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isMinHeightDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\t\thasValue={ () => hasMinHeightValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tonDeselect={ () => resetMinHeight( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'minHeight',\n\t\t\t\t\t\t\t'dimensions'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\t\tdefaultDimensionsControls?.minHeight\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MinHeightEdit { ...props } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ ! isPaddingDisabled && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ paddingMouseOver.isMouseOver }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isMarginDisabled && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ marginMouseOver.isMouseOver }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determine whether there is dimensions related block support.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\thasGapSupport( blockName ) ||\n\t\thasMinHeightSupport( blockName ) ||\n\t\thasPaddingSupport( blockName ) ||\n\t\thasMarginSupport( blockName )\n\t);\n}\n\n/**\n * Determines whether dimensions support has been disabled.\n *\n * @param {Object} props Block properties.\n *\n * @return {boolean} If spacing support is completely disabled.\n */\nconst useIsDimensionsDisabled = ( props = {} ) => {\n\tconst gapDisabled = useIsGapDisabled( props );\n\tconst minHeightDisabled = useIsMinHeightDisabled( props );\n\tconst paddingDisabled = useIsPaddingDisabled( props );\n\tconst marginDisabled = useIsMarginDisabled( props );\n\n\treturn (\n\t\tgapDisabled && minHeightDisabled && paddingDisabled && marginDisabled\n\t);\n};\n\n/**\n * Custom hook to retrieve which padding/margin/blockGap is supported\n * e.g. top, right, bottom or left.\n *\n * Sides are opted into by default. It is only if a specific side is set to\n * false that it is omitted.\n *\n * @param {string} blockName Block name.\n * @param {string} feature The feature custom sides relate to e.g. padding or margins.\n *\n * @return {?string[]} Strings representing the custom sides available.\n */\nexport function useCustomSides( blockName, feature ) {\n\tconst support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );\n\n\t// Skip when setting is boolean as theme isn't setting arbitrary sides.\n\tif ( ! support || typeof support[ feature ] === 'boolean' ) {\n\t\treturn;\n\t}\n\n\t// Return if the setting is an array of sides (e.g. `[ 'top', 'bottom' ]`).\n\tif ( Array.isArray( support[ feature ] ) ) {\n\t\treturn support[ feature ];\n\t}\n\n\t// Finally, attempt to return `.sides` if the setting is an object.\n\tif ( support[ feature ]?.sides ) {\n\t\treturn support[ feature ].sides;\n\t}\n}\n\n/**\n * Custom hook to determine whether the sides configured in the\n * block support are valid. A dimension property cannot declare\n * support for a mix of axial and individual sides.\n *\n * @param {string} blockName Block name.\n * @param {string} feature The feature custom sides relate to e.g. padding or margins.\n *\n * @return {boolean} If the feature has a valid configuration of sides.\n */\nexport function useIsDimensionsSupportValid( blockName, feature ) {\n\tconst sides = useCustomSides( blockName, feature );\n\n\tif (\n\t\tsides &&\n\t\tsides.some( ( side ) => ALL_SIDES.includes( side ) ) &&\n\t\tsides.some( ( side ) => AXIAL_SIDES.includes( side ) )\n\t) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t`The ${ feature } support for the \"${ blockName }\" block can not be configured to support both axial and arbitrary sides.`\n\t\t);\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"names":["classnames","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalVStack","VStack","Platform","useState","__","getBlockSupport","useDispatch","InspectorControls","GapEdit","hasGapSupport","hasGapValue","resetGap","useIsGapDisabled","MarginEdit","MarginVisualizer","hasMarginSupport","hasMarginValue","resetMargin","useIsMarginDisabled","MinHeightEdit","hasMinHeightSupport","hasMinHeightValue","resetMinHeight","useIsMinHeightDisabled","PaddingEdit","PaddingVisualizer","hasPaddingSupport","hasPaddingValue","resetPadding","useIsPaddingDisabled","ChildLayoutEdit","hasChildLayoutSupport","hasChildLayoutValue","resetChildLayout","useIsChildLayoutDisabled","childLayoutOrientation","useSetting","store","blockEditorStore","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizerMouseOver","isMouseOver","setIsMouseOver","__experimentalHideBlockInterface","hideBlockInterface","__experimentalShowBlockInterface","showBlockInterface","onMouseOver","e","stopPropagation","onMouseOut","DimensionsPanel","props","isGapDisabled","isPaddingDisabled","isMarginDisabled","isMinHeightDisabled","isChildLayoutDisabled","isDisabled","useIsDimensionsDisabled","isSupported","hasDimensionsSupport","spacingSizes","paddingMouseOver","marginMouseOver","defaultDimensionsControls","name","defaultSpacingControls","createResetAllFilter","attribute","featureSet","newAttributes","style","undefined","spacingClassnames","length","__unstableParentLayout","parentLayout","padding","clientId","margin","blockGap","minHeight","OS","blockName","gapDisabled","minHeightDisabled","paddingDisabled","marginDisabled","childLayoutDisabled","useCustomSides","feature","support","Array","isArray","sides","useIsDimensionsSupportValid","some","side","includes","console","warn"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { Platform, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tGapEdit,\n\thasGapSupport,\n\thasGapValue,\n\tresetGap,\n\tuseIsGapDisabled,\n} from './gap';\nimport {\n\tMarginEdit,\n\tMarginVisualizer,\n\thasMarginSupport,\n\thasMarginValue,\n\tresetMargin,\n\tuseIsMarginDisabled,\n} from './margin';\nimport {\n\tMinHeightEdit,\n\thasMinHeightSupport,\n\thasMinHeightValue,\n\tresetMinHeight,\n\tuseIsMinHeightDisabled,\n} from './min-height';\nimport {\n\tPaddingEdit,\n\tPaddingVisualizer,\n\thasPaddingSupport,\n\thasPaddingValue,\n\tresetPadding,\n\tuseIsPaddingDisabled,\n} from './padding';\nimport {\n\tChildLayoutEdit,\n\thasChildLayoutSupport,\n\thasChildLayoutValue,\n\tresetChildLayout,\n\tuseIsChildLayoutDisabled,\n\tchildLayoutOrientation,\n} from './child-layout';\nimport useSetting from '../components/use-setting';\nimport { store as blockEditorStore } from '../store';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizerMouseOver() {\n\tconst [ isMouseOver, setIsMouseOver ] = useState( false );\n\tconst {\n\t\t__experimentalHideBlockInterface: hideBlockInterface,\n\t\t__experimentalShowBlockInterface: showBlockInterface,\n\t} = useDispatch( blockEditorStore );\n\tconst onMouseOver = ( e ) => {\n\t\te.stopPropagation();\n\t\thideBlockInterface();\n\t\tsetIsMouseOver( true );\n\t};\n\tconst onMouseOut = ( e ) => {\n\t\te.stopPropagation();\n\t\tshowBlockInterface();\n\t\tsetIsMouseOver( false );\n\t};\n\treturn { isMouseOver, onMouseOver, onMouseOut };\n}\n\n/**\n * Inspector controls for dimensions support.\n *\n * @param {Object} props Block props.\n *\n * @return {WPElement} Inspector controls for dimensions and spacing support features.\n */\nexport function DimensionsPanel( props ) {\n\tconst isGapDisabled = useIsGapDisabled( props );\n\tconst isPaddingDisabled = useIsPaddingDisabled( props );\n\tconst isMarginDisabled = useIsMarginDisabled( props );\n\tconst isMinHeightDisabled = useIsMinHeightDisabled( props );\n\tconst isChildLayoutDisabled = useIsChildLayoutDisabled( props );\n\tconst isDisabled = useIsDimensionsDisabled( props );\n\tconst isSupported = hasDimensionsSupport( props );\n\tconst spacingSizes = useSetting( 'spacing.spacingSizes' );\n\tconst paddingMouseOver = useVisualizerMouseOver();\n\tconst marginMouseOver = useVisualizerMouseOver();\n\n\tif ( isDisabled || ! isSupported ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( props.name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst defaultSpacingControls = getBlockSupport( props.name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst createResetAllFilter =\n\t\t( attribute, featureSet ) => ( newAttributes ) => ( {\n\t\t\t...newAttributes,\n\t\t\tstyle: {\n\t\t\t\t...newAttributes.style,\n\t\t\t\t[ featureSet ]: {\n\t\t\t\t\t...newAttributes.style?.[ featureSet ],\n\t\t\t\t\t[ attribute ]: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\tconst spacingClassnames = classnames( {\n\t\t'tools-panel-item-spacing': spacingSizes && spacingSizes.length > 0,\n\t} );\n\n\tconst { __unstableParentLayout: parentLayout } = props;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls __experimentalGroup=\"dimensions\">\n\t\t\t\t{ ! isPaddingDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName={ spacingClassnames }\n\t\t\t\t\t\thasValue={ () => hasPaddingValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\tonDeselect={ () => resetPadding( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'padding',\n\t\t\t\t\t\t\t'spacing'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.padding }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PaddingEdit\n\t\t\t\t\t\t\tonMouseOver={ paddingMouseOver.onMouseOver }\n\t\t\t\t\t\t\tonMouseOut={ paddingMouseOver.onMouseOut }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isMarginDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName={ spacingClassnames }\n\t\t\t\t\t\thasValue={ () => hasMarginValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tonDeselect={ () => resetMargin( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'margin',\n\t\t\t\t\t\t\t'spacing'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.margin }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MarginEdit\n\t\t\t\t\t\t\tonMouseOver={ marginMouseOver.onMouseOver }\n\t\t\t\t\t\t\tonMouseOut={ marginMouseOver.onMouseOut }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isGapDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tclassName={ spacingClassnames }\n\t\t\t\t\t\thasValue={ () => hasGapValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\tonDeselect={ () => resetGap( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'blockGap',\n\t\t\t\t\t\t\t'spacing'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ defaultSpacingControls?.blockGap }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<GapEdit { ...props } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isMinHeightDisabled && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => hasMinHeightValue( props ) }\n\t\t\t\t\t\tlabel={ __( 'Min. height' ) }\n\t\t\t\t\t\tonDeselect={ () => resetMinHeight( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'minHeight',\n\t\t\t\t\t\t\t'dimensions'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={\n\t\t\t\t\t\t\tdefaultDimensionsControls?.minHeight\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MinHeightEdit { ...props } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isChildLayoutDisabled && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\thasValue={ () => hasChildLayoutValue( props ) }\n\t\t\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\t\t\tonDeselect={ () => resetChildLayout( props ) }\n\t\t\t\t\t\tresetAllFilter={ createResetAllFilter(\n\t\t\t\t\t\t\t'selfStretch',\n\t\t\t\t\t\t\t'layout'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\t\tpanelId={ props.clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ChildLayoutEdit { ...props } />\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ ! isPaddingDisabled && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ paddingMouseOver.isMouseOver }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! isMarginDisabled && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ marginMouseOver.isMouseOver }\n\t\t\t\t\t{ ...props }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determine whether there is dimensions related block support.\n *\n * @param {Object} props Block props.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( props ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst { name: blockName } = props;\n\n\treturn (\n\t\thasGapSupport( blockName ) ||\n\t\thasMinHeightSupport( blockName ) ||\n\t\thasPaddingSupport( blockName ) ||\n\t\thasMarginSupport( blockName ) ||\n\t\thasChildLayoutSupport( props )\n\t);\n}\n\n/**\n * Determines whether dimensions support has been disabled.\n *\n * @param {Object} props Block properties.\n *\n * @return {boolean} If spacing support is completely disabled.\n */\nconst useIsDimensionsDisabled = ( props = {} ) => {\n\tconst gapDisabled = useIsGapDisabled( props );\n\tconst minHeightDisabled = useIsMinHeightDisabled( props );\n\tconst paddingDisabled = useIsPaddingDisabled( props );\n\tconst marginDisabled = useIsMarginDisabled( props );\n\tconst childLayoutDisabled = useIsChildLayoutDisabled( props );\n\n\treturn (\n\t\tgapDisabled &&\n\t\tminHeightDisabled &&\n\t\tpaddingDisabled &&\n\t\tmarginDisabled &&\n\t\tchildLayoutDisabled\n\t);\n};\n\n/**\n * Custom hook to retrieve which padding/margin/blockGap is supported\n * e.g. top, right, bottom or left.\n *\n * Sides are opted into by default. It is only if a specific side is set to\n * false that it is omitted.\n *\n * @param {string} blockName Block name.\n * @param {string} feature The feature custom sides relate to e.g. padding or margins.\n *\n * @return {?string[]} Strings representing the custom sides available.\n */\nexport function useCustomSides( blockName, feature ) {\n\tconst support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );\n\n\t// Skip when setting is boolean as theme isn't setting arbitrary sides.\n\tif ( ! support || typeof support[ feature ] === 'boolean' ) {\n\t\treturn;\n\t}\n\n\t// Return if the setting is an array of sides (e.g. `[ 'top', 'bottom' ]`).\n\tif ( Array.isArray( support[ feature ] ) ) {\n\t\treturn support[ feature ];\n\t}\n\n\t// Finally, attempt to return `.sides` if the setting is an object.\n\tif ( support[ feature ]?.sides ) {\n\t\treturn support[ feature ].sides;\n\t}\n}\n\n/**\n * Custom hook to determine whether the sides configured in the\n * block support are valid. A dimension property cannot declare\n * support for a mix of axial and individual sides.\n *\n * @param {string} blockName Block name.\n * @param {string} feature The feature custom sides relate to e.g. padding or margins.\n *\n * @return {boolean} If the feature has a valid configuration of sides.\n */\nexport function useIsDimensionsSupportValid( blockName, feature ) {\n\tconst sides = useCustomSides( blockName, feature );\n\n\tif (\n\t\tsides &&\n\t\tsides.some( ( side ) => ALL_SIDES.includes( side ) ) &&\n\t\tsides.some( ( side ) => AXIAL_SIDES.includes( side ) )\n\t) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t`The ${ feature } support for the \"${ blockName }\" block can not be configured to support both axial and arbitrary sides.`\n\t\t);\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n"]}
|
|
@@ -356,7 +356,62 @@ export const withLayoutStyles = createHigherOrderComponent(BlockListBlock => pro
|
|
|
356
356
|
__unstableLayoutClassNames: layoutClassNames
|
|
357
357
|
})));
|
|
358
358
|
});
|
|
359
|
+
/**
|
|
360
|
+
* Override the default block element to add the child layout styles.
|
|
361
|
+
*
|
|
362
|
+
* @param {Function} BlockListBlock Original component.
|
|
363
|
+
*
|
|
364
|
+
* @return {Function} Wrapped component.
|
|
365
|
+
*/
|
|
366
|
+
|
|
367
|
+
export const withChildLayoutStyles = createHigherOrderComponent(BlockListBlock => props => {
|
|
368
|
+
const {
|
|
369
|
+
attributes
|
|
370
|
+
} = props;
|
|
371
|
+
const {
|
|
372
|
+
style: {
|
|
373
|
+
layout = {}
|
|
374
|
+
} = {}
|
|
375
|
+
} = attributes;
|
|
376
|
+
const {
|
|
377
|
+
selfStretch,
|
|
378
|
+
flexSize
|
|
379
|
+
} = layout;
|
|
380
|
+
const hasChildLayout = selfStretch || flexSize;
|
|
381
|
+
const disableLayoutStyles = useSelect(select => {
|
|
382
|
+
const {
|
|
383
|
+
getSettings
|
|
384
|
+
} = select(blockEditorStore);
|
|
385
|
+
return !!getSettings().disableLayoutStyles;
|
|
386
|
+
});
|
|
387
|
+
const shouldRenderChildLayoutStyles = hasChildLayout && !disableLayoutStyles;
|
|
388
|
+
const element = useContext(BlockList.__unstableElementContext);
|
|
389
|
+
const id = useInstanceId(BlockListBlock);
|
|
390
|
+
const selector = `.wp-container-content-${id}`;
|
|
391
|
+
let css = '';
|
|
392
|
+
|
|
393
|
+
if (selfStretch === 'fixed' && flexSize) {
|
|
394
|
+
css += `${selector} {
|
|
395
|
+
flex-basis: ${flexSize};
|
|
396
|
+
box-sizing: border-box;
|
|
397
|
+
}`;
|
|
398
|
+
} else if (selfStretch === 'fill') {
|
|
399
|
+
css += `${selector} {
|
|
400
|
+
flex-grow: 1;
|
|
401
|
+
}`;
|
|
402
|
+
} // Attach a `wp-container-content` id-based classname.
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
const className = classnames(props === null || props === void 0 ? void 0 : props.className, {
|
|
406
|
+
[`wp-container-content-${id}`]: shouldRenderChildLayoutStyles && !!css // Only attach a container class if there is generated CSS to be attached.
|
|
407
|
+
|
|
408
|
+
});
|
|
409
|
+
return createElement(Fragment, null, shouldRenderChildLayoutStyles && element && !!css && createPortal(createElement("style", null, css), element), createElement(BlockListBlock, _extends({}, props, {
|
|
410
|
+
className: className
|
|
411
|
+
})));
|
|
412
|
+
});
|
|
359
413
|
addFilter('blocks.registerBlockType', 'core/layout/addAttribute', addAttribute);
|
|
360
414
|
addFilter('editor.BlockListBlock', 'core/editor/layout/with-layout-styles', withLayoutStyles);
|
|
415
|
+
addFilter('editor.BlockListBlock', 'core/editor/layout/with-child-layout-styles', withChildLayoutStyles);
|
|
361
416
|
addFilter('editor.BlockEdit', 'core/editor/layout/with-inspector-controls', withInspectorControls);
|
|
362
417
|
//# sourceMappingURL=layout.js.map
|