@wordpress/block-editor 14.3.4 → 14.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +4 -0
- package/build/autocompleters/link.js +2 -1
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-actions/index.js +1 -13
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-inspector/index.js +56 -75
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +5 -19
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +5 -8
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +5 -3
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/zoom-out-separator.js +14 -6
- package/build/components/block-list/zoom-out-separator.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +2 -4
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js +13 -10
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +11 -13
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +2 -4
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -6
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +17 -14
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +16 -19
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build/components/block-tools/index.js +8 -11
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +1 -4
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +2 -4
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -4
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -4
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -4
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/global-styles/border-panel.js +1 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +3 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -4
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +24 -29
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/inner-blocks/index.js +1 -9
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +24 -5
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +35 -13
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +2 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +5 -5
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +11 -8
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +4 -8
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/link-control/index.js +5 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +2 -4
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -25
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -4
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +12 -24
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +2 -4
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/tool-selector/index.js +13 -12
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +14 -16
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +2 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +0 -61
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +2 -25
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/duotone.js +4 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout-child.js +3 -1
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +3 -2
- package/build/hooks/position.js.map +1 -1
- package/build/layouts/flex.js +6 -38
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +13 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +15 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +104 -7
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -26
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +127 -56
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +4 -3
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +2 -0
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -1
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-actions/index.js +1 -13
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +57 -76
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -19
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +5 -8
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +5 -3
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list/zoom-out-separator.js +14 -6
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +2 -4
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +13 -10
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +11 -13
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +2 -4
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +17 -14
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +17 -20
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build-module/components/block-tools/index.js +8 -11
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +1 -4
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +2 -4
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -4
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +1 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +2 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +1 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +25 -30
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +1 -9
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +35 -13
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -2
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +4 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +12 -9
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +4 -8
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/link-control/index.js +5 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +2 -4
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -25
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -5
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +12 -24
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +2 -4
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +13 -12
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +15 -17
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +2 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -62
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout-child.js +4 -1
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/layouts/flex.js +7 -39
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +12 -12
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +14 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +98 -7
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +21 -25
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +129 -58
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -2
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +2 -0
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-style/content-rtl.css +14 -56
- package/build-style/content.css +14 -56
- package/build-style/default-editor-styles-rtl.css +10 -1
- package/build-style/default-editor-styles.css +10 -1
- package/build-style/style-rtl.css +51 -149
- package/build-style/style.css +51 -149
- package/package.json +32 -32
- package/src/autocompleters/link.js +2 -1
- package/src/components/block-actions/index.js +1 -13
- package/src/components/block-draggable/style.scss +2 -2
- package/src/components/block-inspector/index.js +79 -95
- package/src/components/block-inspector/style.scss +2 -0
- package/src/components/block-list/block.js +7 -28
- package/src/components/block-list/content.scss +1 -61
- package/src/components/block-list/index.js +21 -29
- package/src/components/block-list/use-block-props/index.js +3 -10
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -2
- package/src/components/block-list/zoom-out-separator.js +24 -8
- package/src/components/block-navigation/dropdown.js +1 -2
- package/src/components/block-parent-selector/index.js +13 -10
- package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
- package/src/components/block-patterns-paging/index.js +8 -7
- package/src/components/block-patterns-paging/style.scss +10 -27
- package/src/components/block-quick-navigation/index.js +1 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
- package/src/components/block-settings-menu-controls/index.js +0 -15
- package/src/components/block-switcher/index.js +37 -30
- package/src/components/block-toolbar/index.js +22 -34
- package/src/components/block-toolbar/style.scss +10 -1
- package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
- package/src/components/block-tools/index.js +7 -16
- package/src/components/block-tools/insertion-point.js +1 -4
- package/src/components/block-tools/style.scss +3 -88
- package/src/components/block-tools/use-show-block-tools.js +2 -12
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
- package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
- package/src/components/block-tools/zoom-out-toolbar.js +2 -13
- package/src/components/block-variation-picker/index.js +1 -2
- package/src/components/block-variation-transforms/index.js +2 -2
- package/src/components/button-block-appender/content.scss +0 -5
- package/src/components/button-block-appender/index.js +1 -2
- package/src/components/colors-gradients/dropdown.js +1 -5
- package/src/components/font-family/README.md +5 -1
- package/src/components/global-styles/border-panel.js +1 -1
- package/src/components/global-styles/color-panel.js +1 -5
- package/src/components/global-styles/dimensions-panel.js +1 -1
- package/src/components/global-styles/filters-panel.js +1 -2
- package/src/components/global-styles/shadow-panel-components.js +28 -33
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/inner-blocks/index.js +1 -16
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/inserter/hooks/use-block-types-state.js +34 -14
- package/src/components/inserter/hooks/use-insertion-point.js +35 -13
- package/src/components/inserter/hooks/use-patterns-state.js +46 -9
- package/src/components/inserter/media-tab/media-preview.js +38 -12
- package/src/components/inserter/menu.js +2 -2
- package/src/components/inserter/mobile-tab-navigation.js +10 -13
- package/src/components/inserter/quick-inserter.js +5 -4
- package/src/components/inserter/style.scss +0 -28
- package/src/components/inspector-controls-tabs/index.js +21 -20
- package/src/components/inspector-controls-tabs/style.scss +2 -6
- package/src/components/inspector-popover-header/index.js +2 -4
- package/src/components/inspector-popover-header/style.scss +0 -13
- package/src/components/link-control/index.js +2 -5
- package/src/components/link-control/settings-drawer.js +1 -2
- package/src/components/list-view/block-contents.js +1 -28
- package/src/components/list-view/block-select-button.js +2 -5
- package/src/components/list-view/style.scss +18 -14
- package/src/components/media-placeholder/index.js +6 -12
- package/src/components/skip-to-selected-block/index.js +1 -2
- package/src/components/skip-to-selected-block/style.scss +0 -9
- package/src/components/tool-selector/index.js +14 -9
- package/src/components/tool-selector/style.scss +5 -0
- package/src/components/url-input/button.js +16 -12
- package/src/components/url-input/index.js +1 -2
- package/src/components/url-input/style.scss +0 -6
- package/src/components/use-block-commands/index.js +0 -58
- package/src/components/writing-flow/use-tab-nav.js +4 -36
- package/src/content.scss +0 -1
- package/src/hooks/duotone.js +4 -1
- package/src/hooks/layout-child.js +4 -1
- package/src/hooks/position.js +4 -1
- package/src/layouts/flex.js +10 -53
- package/src/store/actions.js +14 -13
- package/src/store/private-actions.js +14 -0
- package/src/store/private-selectors.js +120 -16
- package/src/store/reducer.js +22 -28
- package/src/store/selectors.js +203 -114
- package/src/store/test/private-actions.js +15 -0
- package/src/store/test/private-selectors.js +34 -0
- package/src/store/test/reducer.js +40 -4
- package/src/store/test/selectors.js +183 -20
- package/src/store/utils.js +4 -2
- package/src/utils/block-bindings.js +2 -0
- package/build/components/block-controls/use-has-block-controls.js +0 -43
- package/build/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build/components/block-tools/block-selection-button.js +0 -259
- package/build/components/block-tools/block-selection-button.js.map +0 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build/components/inserter/tabs.js +0 -78
- package/build/components/inserter/tabs.js.map +0 -1
- package/build-module/components/block-controls/use-has-block-controls.js +0 -34
- package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build-module/components/block-tools/block-selection-button.js +0 -254
- package/build-module/components/block-tools/block-selection-button.js.map +0 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build-module/components/inserter/tabs.js +0 -72
- package/build-module/components/inserter/tabs.js.map +0 -1
- package/src/components/block-controls/use-has-block-controls.js +0 -35
- package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
- package/src/components/block-tools/block-selection-button.js +0 -302
- package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
- package/src/components/inner-blocks/content.scss +0 -13
- package/src/components/inserter/tabs.js +0 -78
- package/src/components/inserter/test/block-types-tab.native.js +0 -67
|
@@ -20,6 +20,8 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
20
20
|
* Internal dependencies
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
+
// Used for generating the instance ID
|
|
24
|
+
const LAYOUT_CHILD_BLOCK_PROPS_REFERENCE = {};
|
|
23
25
|
function useBlockPropsChildLayoutStyles({
|
|
24
26
|
style
|
|
25
27
|
}) {
|
|
@@ -41,7 +43,7 @@ function useBlockPropsChildLayoutStyles({
|
|
|
41
43
|
columnCount,
|
|
42
44
|
minimumColumnWidth
|
|
43
45
|
} = parentLayout;
|
|
44
|
-
const id = (0, _compose.useInstanceId)(
|
|
46
|
+
const id = (0, _compose.useInstanceId)(LAYOUT_CHILD_BLOCK_PROPS_REFERENCE);
|
|
45
47
|
const selector = `.wp-container-content-${id}`;
|
|
46
48
|
|
|
47
49
|
// Check that the grid layout attributes are of the correct type, so that we don't accidentally
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_compose","require","_data","_element","_store","_utils","_layout","_grid","_jsxRuntime","useBlockPropsChildLayoutStyles","style","_style$layout","shouldRenderChildLayoutStyles","useSelect","select","blockEditorStore","getSettings","disableLayoutStyles","layout","selfStretch","flexSize","columnStart","rowStart","columnSpan","rowSpan","parentLayout","useLayout","columnCount","minimumColumnWidth","id","useInstanceId","selector","process","env","NODE_ENV","Error","css","parentColumnValue","parseFloat","isNaN","parentColumnUnit","replace","includes","numColsToBreakAt","defaultGapValue","containerQueryValue","minimumContainerQueryValue","gridColumnValue","Math","max","useStyleOverride","className","ChildLayoutControlsPure","clientId","setAttributes","type","parentLayoutType","allowSizingOnChildren","isManualPlacement","rootClientId","getBlockRootClientId","resizerBounds","setResizerBounds","useState","updateLayout","jsxs","Fragment","children","jsx","GridVisualizer","contentRef","GridItemResizer","bounds","onChange","window","__experimentalEnableGridInteractivity","GridItemMovers","gridClientId","blockClientId","_default","exports","default","useBlockProps","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/layout-child.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useStyleOverride } from './utils';\nimport { useLayout } from '../components/block-list/layout';\nimport {\n\tGridVisualizer,\n\tGridItemResizer,\n\tGridItemMovers,\n} from '../components/grid';\n\nfunction useBlockPropsChildLayoutStyles( { style } ) {\n\tconst shouldRenderChildLayoutStyles = useSelect( ( select ) => {\n\t\treturn ! select( blockEditorStore ).getSettings().disableLayoutStyles;\n\t} );\n\tconst layout = style?.layout ?? {};\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = layout;\n\tconst parentLayout = useLayout() || {};\n\tconst { columnCount, minimumColumnWidth } = parentLayout;\n\tconst id = useInstanceId( useBlockPropsChildLayoutStyles );\n\tconst selector = `.wp-container-content-${ id }`;\n\n\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t// write code that stores a string attribute instead of a number.\n\tif ( process.env.NODE_ENV === 'development' ) {\n\t\tif ( columnStart && typeof columnStart !== 'number' ) {\n\t\t\tthrow new Error( 'columnStart must be a number' );\n\t\t}\n\t\tif ( rowStart && typeof rowStart !== 'number' ) {\n\t\t\tthrow new Error( 'rowStart must be a number' );\n\t\t}\n\t\tif ( columnSpan && typeof columnSpan !== 'number' ) {\n\t\t\tthrow new Error( 'columnSpan must be a number' );\n\t\t}\n\t\tif ( rowSpan && typeof rowSpan !== 'number' ) {\n\t\t\tthrow new Error( 'rowSpan must be a number' );\n\t\t}\n\t}\n\n\tlet css = '';\n\tif ( shouldRenderChildLayoutStyles ) {\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t} else if ( columnStart && columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart } / span ${ columnSpan };\n\t\t\t}`;\n\t\t} else if ( columnStart ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart };\n\t\t\t}`;\n\t\t} else if ( columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: span ${ columnSpan };\n\t\t\t}`;\n\t\t}\n\t\tif ( rowStart && rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart } / span ${ rowSpan };\n\t\t\t}`;\n\t\t} else if ( rowStart ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart };\n\t\t\t}`;\n\t\t} else if ( rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: span ${ rowSpan };\n\t\t\t}`;\n\t\t}\n\t\t/**\n\t\t * If minimumColumnWidth is set on the parent, or if no\n\t\t * columnCount is set, the grid is responsive so a\n\t\t * container query is needed for the span to resize.\n\t\t */\n\t\tif (\n\t\t\t( columnSpan || columnStart ) &&\n\t\t\t( minimumColumnWidth || ! columnCount )\n\t\t) {\n\t\t\tlet parentColumnValue = parseFloat( minimumColumnWidth );\n\t\t\t/**\n\t\t\t * 12rem is the default minimumColumnWidth value.\n\t\t\t * If parentColumnValue is not a number, default to 12.\n\t\t\t */\n\t\t\tif ( isNaN( parentColumnValue ) ) {\n\t\t\t\tparentColumnValue = 12;\n\t\t\t}\n\n\t\t\tlet parentColumnUnit = minimumColumnWidth?.replace(\n\t\t\t\tparentColumnValue,\n\t\t\t\t''\n\t\t\t);\n\t\t\t/**\n\t\t\t * Check that parent column unit is either 'px', 'rem' or 'em'.\n\t\t\t * If not, default to 'rem'.\n\t\t\t */\n\t\t\tif ( ! [ 'px', 'rem', 'em' ].includes( parentColumnUnit ) ) {\n\t\t\t\tparentColumnUnit = 'rem';\n\t\t\t}\n\n\t\t\tlet numColsToBreakAt = 2;\n\n\t\t\tif ( columnSpan && columnStart ) {\n\t\t\t\tnumColsToBreakAt = columnSpan + columnStart - 1;\n\t\t\t} else if ( columnSpan ) {\n\t\t\t\tnumColsToBreakAt = columnSpan;\n\t\t\t} else {\n\t\t\t\tnumColsToBreakAt = columnStart;\n\t\t\t}\n\n\t\t\tconst defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;\n\t\t\tconst containerQueryValue =\n\t\t\t\tnumColsToBreakAt * parentColumnValue +\n\t\t\t\t( numColsToBreakAt - 1 ) * defaultGapValue;\n\t\t\t// For blocks that only span one column, we want to remove any rowStart values as\n\t\t\t// the container reduces in size, so that blocks are still arranged in markup order.\n\t\t\tconst minimumContainerQueryValue =\n\t\t\t\tparentColumnValue * 2 + defaultGapValue - 1;\n\t\t\t// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.\n\t\t\tconst gridColumnValue =\n\t\t\t\tcolumnSpan && columnSpan > 1 ? '1/-1' : 'auto';\n\n\t\t\tcss += `@container (max-width: ${ Math.max(\n\t\t\t\tcontainerQueryValue,\n\t\t\t\tminimumContainerQueryValue\n\t\t\t) }${ parentColumnUnit }) {\n\t\t\t\t${ selector } {\n\t\t\t\t\tgrid-column: ${ gridColumnValue };\n\t\t\t\t\tgrid-row: auto;\n\t\t\t\t}\n\t\t\t}`;\n\t\t}\n\t}\n\n\tuseStyleOverride( { css } );\n\n\t// Only attach a container class if there is generated CSS to be attached.\n\tif ( ! css ) {\n\t\treturn;\n\t}\n\n\t// Attach a `wp-container-content` id-based classname.\n\treturn { className: `wp-container-content-${ id }` };\n}\n\nfunction ChildLayoutControlsPure( { clientId, style, setAttributes } ) {\n\tconst parentLayout = useLayout() || {};\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t\tisManualPlacement,\n\t} = parentLayout;\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Use useState() instead of useRef() so that GridItemResizer updates when ref is set.\n\tconst [ resizerBounds, setResizerBounds ] = useState();\n\n\tif ( parentLayoutType !== 'grid' ) {\n\t\treturn null;\n\t}\n\n\tfunction updateLayout( layout ) {\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\tlayout: {\n\t\t\t\t\t...style?.layout,\n\t\t\t\t\t...layout,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<GridVisualizer\n\t\t\t\tclientId={ rootClientId }\n\t\t\t\tcontentRef={ setResizerBounds }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t{ allowSizingOnChildren && (\n\t\t\t\t<GridItemResizer\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t// Don't allow resizing beyond the grid visualizer.\n\t\t\t\t\tbounds={ resizerBounds }\n\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridItemMovers\n\t\t\t\t\t\tlayout={ style?.layout }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\t\tgridClientId={ rootClientId }\n\t\t\t\t\t\tblockClientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tuseBlockProps: useBlockPropsChildLayoutStyles,\n\tedit: ChildLayoutControlsPure,\n\tattributeKeys: [ 'style' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_compose","require","_data","_element","_store","_utils","_layout","_grid","_jsxRuntime","LAYOUT_CHILD_BLOCK_PROPS_REFERENCE","useBlockPropsChildLayoutStyles","style","_style$layout","shouldRenderChildLayoutStyles","useSelect","select","blockEditorStore","getSettings","disableLayoutStyles","layout","selfStretch","flexSize","columnStart","rowStart","columnSpan","rowSpan","parentLayout","useLayout","columnCount","minimumColumnWidth","id","useInstanceId","selector","process","env","NODE_ENV","Error","css","parentColumnValue","parseFloat","isNaN","parentColumnUnit","replace","includes","numColsToBreakAt","defaultGapValue","containerQueryValue","minimumContainerQueryValue","gridColumnValue","Math","max","useStyleOverride","className","ChildLayoutControlsPure","clientId","setAttributes","type","parentLayoutType","allowSizingOnChildren","isManualPlacement","rootClientId","getBlockRootClientId","resizerBounds","setResizerBounds","useState","updateLayout","jsxs","Fragment","children","jsx","GridVisualizer","contentRef","GridItemResizer","bounds","onChange","window","__experimentalEnableGridInteractivity","GridItemMovers","gridClientId","blockClientId","_default","exports","default","useBlockProps","edit","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/layout-child.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useStyleOverride } from './utils';\nimport { useLayout } from '../components/block-list/layout';\nimport {\n\tGridVisualizer,\n\tGridItemResizer,\n\tGridItemMovers,\n} from '../components/grid';\n\n// Used for generating the instance ID\nconst LAYOUT_CHILD_BLOCK_PROPS_REFERENCE = {};\n\nfunction useBlockPropsChildLayoutStyles( { style } ) {\n\tconst shouldRenderChildLayoutStyles = useSelect( ( select ) => {\n\t\treturn ! select( blockEditorStore ).getSettings().disableLayoutStyles;\n\t} );\n\tconst layout = style?.layout ?? {};\n\tconst {\n\t\tselfStretch,\n\t\tflexSize,\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = layout;\n\tconst parentLayout = useLayout() || {};\n\tconst { columnCount, minimumColumnWidth } = parentLayout;\n\tconst id = useInstanceId( LAYOUT_CHILD_BLOCK_PROPS_REFERENCE );\n\tconst selector = `.wp-container-content-${ id }`;\n\n\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t// write code that stores a string attribute instead of a number.\n\tif ( process.env.NODE_ENV === 'development' ) {\n\t\tif ( columnStart && typeof columnStart !== 'number' ) {\n\t\t\tthrow new Error( 'columnStart must be a number' );\n\t\t}\n\t\tif ( rowStart && typeof rowStart !== 'number' ) {\n\t\t\tthrow new Error( 'rowStart must be a number' );\n\t\t}\n\t\tif ( columnSpan && typeof columnSpan !== 'number' ) {\n\t\t\tthrow new Error( 'columnSpan must be a number' );\n\t\t}\n\t\tif ( rowSpan && typeof rowSpan !== 'number' ) {\n\t\t\tthrow new Error( 'rowSpan must be a number' );\n\t\t}\n\t}\n\n\tlet css = '';\n\tif ( shouldRenderChildLayoutStyles ) {\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t} else if ( columnStart && columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart } / span ${ columnSpan };\n\t\t\t}`;\n\t\t} else if ( columnStart ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: ${ columnStart };\n\t\t\t}`;\n\t\t} else if ( columnSpan ) {\n\t\t\tcss = `${ selector } {\n\t\t\t\tgrid-column: span ${ columnSpan };\n\t\t\t}`;\n\t\t}\n\t\tif ( rowStart && rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart } / span ${ rowSpan };\n\t\t\t}`;\n\t\t} else if ( rowStart ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: ${ rowStart };\n\t\t\t}`;\n\t\t} else if ( rowSpan ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tgrid-row: span ${ rowSpan };\n\t\t\t}`;\n\t\t}\n\t\t/**\n\t\t * If minimumColumnWidth is set on the parent, or if no\n\t\t * columnCount is set, the grid is responsive so a\n\t\t * container query is needed for the span to resize.\n\t\t */\n\t\tif (\n\t\t\t( columnSpan || columnStart ) &&\n\t\t\t( minimumColumnWidth || ! columnCount )\n\t\t) {\n\t\t\tlet parentColumnValue = parseFloat( minimumColumnWidth );\n\t\t\t/**\n\t\t\t * 12rem is the default minimumColumnWidth value.\n\t\t\t * If parentColumnValue is not a number, default to 12.\n\t\t\t */\n\t\t\tif ( isNaN( parentColumnValue ) ) {\n\t\t\t\tparentColumnValue = 12;\n\t\t\t}\n\n\t\t\tlet parentColumnUnit = minimumColumnWidth?.replace(\n\t\t\t\tparentColumnValue,\n\t\t\t\t''\n\t\t\t);\n\t\t\t/**\n\t\t\t * Check that parent column unit is either 'px', 'rem' or 'em'.\n\t\t\t * If not, default to 'rem'.\n\t\t\t */\n\t\t\tif ( ! [ 'px', 'rem', 'em' ].includes( parentColumnUnit ) ) {\n\t\t\t\tparentColumnUnit = 'rem';\n\t\t\t}\n\n\t\t\tlet numColsToBreakAt = 2;\n\n\t\t\tif ( columnSpan && columnStart ) {\n\t\t\t\tnumColsToBreakAt = columnSpan + columnStart - 1;\n\t\t\t} else if ( columnSpan ) {\n\t\t\t\tnumColsToBreakAt = columnSpan;\n\t\t\t} else {\n\t\t\t\tnumColsToBreakAt = columnStart;\n\t\t\t}\n\n\t\t\tconst defaultGapValue = parentColumnUnit === 'px' ? 24 : 1.5;\n\t\t\tconst containerQueryValue =\n\t\t\t\tnumColsToBreakAt * parentColumnValue +\n\t\t\t\t( numColsToBreakAt - 1 ) * defaultGapValue;\n\t\t\t// For blocks that only span one column, we want to remove any rowStart values as\n\t\t\t// the container reduces in size, so that blocks are still arranged in markup order.\n\t\t\tconst minimumContainerQueryValue =\n\t\t\t\tparentColumnValue * 2 + defaultGapValue - 1;\n\t\t\t// If a span is set we want to preserve it as long as possible, otherwise we just reset the value.\n\t\t\tconst gridColumnValue =\n\t\t\t\tcolumnSpan && columnSpan > 1 ? '1/-1' : 'auto';\n\n\t\t\tcss += `@container (max-width: ${ Math.max(\n\t\t\t\tcontainerQueryValue,\n\t\t\t\tminimumContainerQueryValue\n\t\t\t) }${ parentColumnUnit }) {\n\t\t\t\t${ selector } {\n\t\t\t\t\tgrid-column: ${ gridColumnValue };\n\t\t\t\t\tgrid-row: auto;\n\t\t\t\t}\n\t\t\t}`;\n\t\t}\n\t}\n\n\tuseStyleOverride( { css } );\n\n\t// Only attach a container class if there is generated CSS to be attached.\n\tif ( ! css ) {\n\t\treturn;\n\t}\n\n\t// Attach a `wp-container-content` id-based classname.\n\treturn { className: `wp-container-content-${ id }` };\n}\n\nfunction ChildLayoutControlsPure( { clientId, style, setAttributes } ) {\n\tconst parentLayout = useLayout() || {};\n\tconst {\n\t\ttype: parentLayoutType = 'default',\n\t\tallowSizingOnChildren = false,\n\t\tisManualPlacement,\n\t} = parentLayout;\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Use useState() instead of useRef() so that GridItemResizer updates when ref is set.\n\tconst [ resizerBounds, setResizerBounds ] = useState();\n\n\tif ( parentLayoutType !== 'grid' ) {\n\t\treturn null;\n\t}\n\n\tfunction updateLayout( layout ) {\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\tlayout: {\n\t\t\t\t\t...style?.layout,\n\t\t\t\t\t...layout,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<GridVisualizer\n\t\t\t\tclientId={ rootClientId }\n\t\t\t\tcontentRef={ setResizerBounds }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t{ allowSizingOnChildren && (\n\t\t\t\t<GridItemResizer\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t// Don't allow resizing beyond the grid visualizer.\n\t\t\t\t\tbounds={ resizerBounds }\n\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity && (\n\t\t\t\t\t<GridItemMovers\n\t\t\t\t\t\tlayout={ style?.layout }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tonChange={ updateLayout }\n\t\t\t\t\t\tgridClientId={ rootClientId }\n\t\t\t\t\t\tblockClientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default {\n\tuseBlockProps: useBlockPropsChildLayoutStyles,\n\tedit: ChildLayoutControlsPure,\n\tattributeKeys: [ 'style' ],\n\thasSupport() {\n\t\treturn true;\n\t},\n};\n"],"mappings":"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","ignoreList":[]}
|
package/build/hooks/position.js
CHANGED
|
@@ -301,7 +301,8 @@ var _default = exports.default = {
|
|
|
301
301
|
hasSupport(name) {
|
|
302
302
|
return (0, _blocks.hasBlockSupport)(name, POSITION_SUPPORT_KEY);
|
|
303
303
|
}
|
|
304
|
-
};
|
|
304
|
+
}; // Used for generating the instance ID
|
|
305
|
+
const POSITION_BLOCK_PROPS_REFERENCE = {};
|
|
305
306
|
function useBlockProps({
|
|
306
307
|
name,
|
|
307
308
|
style
|
|
@@ -311,7 +312,7 @@ function useBlockProps({
|
|
|
311
312
|
name
|
|
312
313
|
});
|
|
313
314
|
const allowPositionStyles = hasPositionBlockSupport && !isPositionDisabled;
|
|
314
|
-
const id = (0, _compose.useInstanceId)(
|
|
315
|
+
const id = (0, _compose.useInstanceId)(POSITION_BLOCK_PROPS_REFERENCE);
|
|
315
316
|
|
|
316
317
|
// Higher specificity to override defaults in editor UI.
|
|
317
318
|
const positionSelector = `.wp-container-${id}.wp-container-${id}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_blocks","_components","_compose","_data","_element","_useSettings","_inspectorControls","_useBlockDisplayInformation","_utils","_store","_jsxRuntime","POSITION_SUPPORT_KEY","DEFAULT_OPTION","key","value","name","__","STICKY_OPTION","_x","hint","FIXED_OPTION","POSITION_SIDES","VALID_POSITION_TYPES","getPositionCSS","selector","style","output","type","positionType","position","includes","forEach","side","undefined","hasStickyPositionSupport","blockType","support","getBlockSupport","sticky","hasFixedPositionSupport","fixed","hasPositionSupport","hasPositionValue","props","attributes","hasStickyOrFixedPositionValue","resetPosition","setAttributes","cleanEmptyObject","top","right","bottom","left","useIsPositionDisabled","blockName","allowFixed","allowSticky","useSettings","isDisabled","PositionPanelPure","clientId","firstParentClientId","useSelect","select","getBlockParents","blockEditorStore","parents","length","blockInformation","useBlockDisplayInformation","stickyHelpText","sprintf","title","options","useMemo","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","Platform","web","jsx","default","group","children","BaseControl","__nextHasNoMarginBottom","help","CustomSelectControl","__next40pxDefaultSize","label","hideLabelFromVision","describedBy","onChange","selectedItem","size","native","_default","exports","edit","Edit","isPositionDisabled","useBlockProps","attributeKeys","hasSupport","hasBlockSupport","hasPositionBlockSupport","allowPositionStyles","id","useInstanceId","positionSelector","css","className","clsx","useStyleOverride"],"sources":["@wordpress/block-editor/src/hooks/position.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { BaseControl, CustomSelectControl } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport useBlockDisplayInformation from '../components/use-block-display-information';\nimport { cleanEmptyObject, useStyleOverride } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nconst POSITION_SUPPORT_KEY = 'position';\n\nconst DEFAULT_OPTION = {\n\tkey: 'default',\n\tvalue: '',\n\tname: __( 'Default' ),\n};\n\nconst STICKY_OPTION = {\n\tkey: 'sticky',\n\tvalue: 'sticky',\n\tname: _x( 'Sticky', 'Name for the value of the CSS position property' ),\n\thint: __(\n\t\t'The block will stick to the top of the window instead of scrolling.'\n\t),\n};\n\nconst FIXED_OPTION = {\n\tkey: 'fixed',\n\tvalue: 'fixed',\n\tname: _x( 'Fixed', 'Name for the value of the CSS position property' ),\n\thint: __( 'The block will not move when the page is scrolled.' ),\n};\n\nconst POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nconst VALID_POSITION_TYPES = [ 'sticky', 'fixed' ];\n\n/**\n * Get calculated position CSS.\n *\n * @param {Object} props Component props.\n * @param {string} props.selector Selector to use.\n * @param {Object} props.style Style object.\n * @return {string} The generated CSS rules.\n */\nexport function getPositionCSS( { selector, style } ) {\n\tlet output = '';\n\n\tconst { type: positionType } = style?.position || {};\n\n\tif ( ! VALID_POSITION_TYPES.includes( positionType ) ) {\n\t\treturn output;\n\t}\n\n\toutput += `${ selector } {`;\n\toutput += `position: ${ positionType };`;\n\n\tPOSITION_SIDES.forEach( ( side ) => {\n\t\tif ( style?.position?.[ side ] !== undefined ) {\n\t\t\toutput += `${ side }: ${ style.position[ side ] };`;\n\t\t}\n\t} );\n\n\tif ( positionType === 'sticky' || positionType === 'fixed' ) {\n\t\t// TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json.\n\t\toutput += `z-index: 10`;\n\t}\n\toutput += `}`;\n\n\treturn output;\n}\n\n/**\n * Determines if there is sticky position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasStickyPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.sticky );\n}\n\n/**\n * Determines if there is fixed position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasFixedPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.fixed );\n}\n\n/**\n * Determines if there is position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! support;\n}\n\n/**\n * Checks if there is a current value in the position block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a position value set.\n */\nexport function hasPositionValue( props ) {\n\treturn props.attributes.style?.position?.type !== undefined;\n}\n\n/**\n * Checks if the block is currently set to a sticky or fixed position.\n * This check is helpful for determining how to position block toolbars or other elements.\n *\n * @param {Object} attributes Block attributes.\n * @return {boolean} Whether or not the block is set to a sticky or fixed position.\n */\nexport function hasStickyOrFixedPositionValue( attributes ) {\n\tconst positionType = attributes?.style?.position?.type;\n\treturn positionType === 'sticky' || positionType === 'fixed';\n}\n\n/**\n * Resets the position block support attributes. This can be used when disabling\n * the position support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetPosition( { attributes = {}, setAttributes } ) {\n\tconst { style = {} } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: undefined,\n\t\t\t\ttop: undefined,\n\t\t\t\tright: undefined,\n\t\t\t\tbottom: undefined,\n\t\t\t\tleft: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if position settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether padding setting is disabled.\n */\nexport function useIsPositionDisabled( { name: blockName } = {} ) {\n\tconst [ allowFixed, allowSticky ] = useSettings(\n\t\t'position.fixed',\n\t\t'position.sticky'\n\t);\n\tconst isDisabled = ! allowFixed && ! allowSticky;\n\n\treturn ! hasPositionSupport( blockName ) || isDisabled;\n}\n\n/*\n * Position controls rendered in an inspector control panel.\n *\n * @param {Object} props\n *\n * @return {Element} Position panel.\n */\nexport function PositionPanelPure( {\n\tstyle = {},\n\tclientId,\n\tname: blockName,\n\tsetAttributes,\n} ) {\n\tconst allowFixed = hasFixedPositionSupport( blockName );\n\tconst allowSticky = hasStickyPositionSupport( blockName );\n\tconst value = style?.position?.type;\n\n\tconst { firstParentClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\treturn { firstParentClientId: parents[ parents.length - 1 ] };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\tconst stickyHelpText =\n\t\tallowSticky && value === STICKY_OPTION.value && blockInformation\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %s: the name of the parent block. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The block will stick to the scrollable area of the parent %s block.'\n\t\t\t\t\t),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: null;\n\n\tconst options = useMemo( () => {\n\t\tconst availableOptions = [ DEFAULT_OPTION ];\n\t\t// Display options if they are allowed, or if a block already has a valid value set.\n\t\t// This allows for a block to be switched off from a position type that is not allowed.\n\t\tif ( allowSticky || value === STICKY_OPTION.value ) {\n\t\t\tavailableOptions.push( STICKY_OPTION );\n\t\t}\n\t\tif ( allowFixed || value === FIXED_OPTION.value ) {\n\t\t\tavailableOptions.push( FIXED_OPTION );\n\t\t}\n\t\treturn availableOptions;\n\t}, [ allowFixed, allowSticky, value ] );\n\n\tconst onChangeType = ( next ) => {\n\t\t// For now, use a hard-coded `0px` value for the position.\n\t\t// `0px` is preferred over `0` as it can be used in `calc()` functions.\n\t\t// In the future, it could be useful to allow for an offset value.\n\t\tconst placementValue = '0px';\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: next,\n\t\t\t\ttop:\n\t\t\t\t\tnext === 'sticky' || next === 'fixed'\n\t\t\t\t\t\t? placementValue\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst selectedOption = value\n\t\t? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION\n\t\t: DEFAULT_OPTION;\n\n\t// Only display position controls if there is at least one option to choose from.\n\treturn Platform.select( {\n\t\tweb:\n\t\t\toptions.length > 1 ? (\n\t\t\t\t<InspectorControls group=\"position\">\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\thelp={ stickyHelpText }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Currently selected position.\n\t\t\t\t\t\t\t\t__( 'Currently selected position: %s' ),\n\t\t\t\t\t\t\t\tselectedOption.name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ selectedOption }\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChangeType( selectedItem.value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</InspectorControls>\n\t\t\t) : null,\n\t\tnative: null,\n\t} );\n}\n\nexport default {\n\tedit: function Edit( props ) {\n\t\tconst isPositionDisabled = useIsPositionDisabled( props );\n\t\tif ( isPositionDisabled ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn <PositionPanelPure { ...props } />;\n\t},\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, POSITION_SUPPORT_KEY );\n\t},\n};\n\nfunction useBlockProps( { name, style } ) {\n\tconst hasPositionBlockSupport = hasBlockSupport(\n\t\tname,\n\t\tPOSITION_SUPPORT_KEY\n\t);\n\tconst isPositionDisabled = useIsPositionDisabled( { name } );\n\tconst allowPositionStyles = hasPositionBlockSupport && ! isPositionDisabled;\n\n\tconst id = useInstanceId( useBlockProps );\n\n\t// Higher specificity to override defaults in editor UI.\n\tconst positionSelector = `.wp-container-${ id }.wp-container-${ id }`;\n\n\t// Get CSS string for the current position values.\n\tlet css;\n\tif ( allowPositionStyles ) {\n\t\tcss =\n\t\t\tgetPositionCSS( {\n\t\t\t\tselector: positionSelector,\n\t\t\t\tstyle,\n\t\t\t} ) || '';\n\t}\n\n\t// Attach a `wp-container-` id-based class name.\n\tconst className = clsx( {\n\t\t[ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t[ `is-position-${ style?.position?.type }` ]:\n\t\t\tallowPositionStyles && !! css && !! style?.position?.type,\n\t} );\n\n\tuseStyleOverride( { css } );\n\n\treturn { className };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_blocks","_components","_compose","_data","_element","_useSettings","_inspectorControls","_useBlockDisplayInformation","_utils","_store","_jsxRuntime","POSITION_SUPPORT_KEY","DEFAULT_OPTION","key","value","name","__","STICKY_OPTION","_x","hint","FIXED_OPTION","POSITION_SIDES","VALID_POSITION_TYPES","getPositionCSS","selector","style","output","type","positionType","position","includes","forEach","side","undefined","hasStickyPositionSupport","blockType","support","getBlockSupport","sticky","hasFixedPositionSupport","fixed","hasPositionSupport","hasPositionValue","props","attributes","hasStickyOrFixedPositionValue","resetPosition","setAttributes","cleanEmptyObject","top","right","bottom","left","useIsPositionDisabled","blockName","allowFixed","allowSticky","useSettings","isDisabled","PositionPanelPure","clientId","firstParentClientId","useSelect","select","getBlockParents","blockEditorStore","parents","length","blockInformation","useBlockDisplayInformation","stickyHelpText","sprintf","title","options","useMemo","availableOptions","push","onChangeType","next","placementValue","newStyle","selectedOption","find","option","Platform","web","jsx","default","group","children","BaseControl","__nextHasNoMarginBottom","help","CustomSelectControl","__next40pxDefaultSize","label","hideLabelFromVision","describedBy","onChange","selectedItem","size","native","_default","exports","edit","Edit","isPositionDisabled","useBlockProps","attributeKeys","hasSupport","hasBlockSupport","POSITION_BLOCK_PROPS_REFERENCE","hasPositionBlockSupport","allowPositionStyles","id","useInstanceId","positionSelector","css","className","clsx","useStyleOverride"],"sources":["@wordpress/block-editor/src/hooks/position.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { BaseControl, CustomSelectControl } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport useBlockDisplayInformation from '../components/use-block-display-information';\nimport { cleanEmptyObject, useStyleOverride } from './utils';\nimport { store as blockEditorStore } from '../store';\n\nconst POSITION_SUPPORT_KEY = 'position';\n\nconst DEFAULT_OPTION = {\n\tkey: 'default',\n\tvalue: '',\n\tname: __( 'Default' ),\n};\n\nconst STICKY_OPTION = {\n\tkey: 'sticky',\n\tvalue: 'sticky',\n\tname: _x( 'Sticky', 'Name for the value of the CSS position property' ),\n\thint: __(\n\t\t'The block will stick to the top of the window instead of scrolling.'\n\t),\n};\n\nconst FIXED_OPTION = {\n\tkey: 'fixed',\n\tvalue: 'fixed',\n\tname: _x( 'Fixed', 'Name for the value of the CSS position property' ),\n\thint: __( 'The block will not move when the page is scrolled.' ),\n};\n\nconst POSITION_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nconst VALID_POSITION_TYPES = [ 'sticky', 'fixed' ];\n\n/**\n * Get calculated position CSS.\n *\n * @param {Object} props Component props.\n * @param {string} props.selector Selector to use.\n * @param {Object} props.style Style object.\n * @return {string} The generated CSS rules.\n */\nexport function getPositionCSS( { selector, style } ) {\n\tlet output = '';\n\n\tconst { type: positionType } = style?.position || {};\n\n\tif ( ! VALID_POSITION_TYPES.includes( positionType ) ) {\n\t\treturn output;\n\t}\n\n\toutput += `${ selector } {`;\n\toutput += `position: ${ positionType };`;\n\n\tPOSITION_SIDES.forEach( ( side ) => {\n\t\tif ( style?.position?.[ side ] !== undefined ) {\n\t\t\toutput += `${ side }: ${ style.position[ side ] };`;\n\t\t}\n\t} );\n\n\tif ( positionType === 'sticky' || positionType === 'fixed' ) {\n\t\t// TODO: Replace hard-coded z-index value with a z-index preset approach in theme.json.\n\t\toutput += `z-index: 10`;\n\t}\n\toutput += `}`;\n\n\treturn output;\n}\n\n/**\n * Determines if there is sticky position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasStickyPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.sticky );\n}\n\n/**\n * Determines if there is fixed position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasFixedPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! ( true === support || support?.fixed );\n}\n\n/**\n * Determines if there is position support.\n *\n * @param {string|Object} blockType Block name or Block Type object.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasPositionSupport( blockType ) {\n\tconst support = getBlockSupport( blockType, POSITION_SUPPORT_KEY );\n\treturn !! support;\n}\n\n/**\n * Checks if there is a current value in the position block support attributes.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a position value set.\n */\nexport function hasPositionValue( props ) {\n\treturn props.attributes.style?.position?.type !== undefined;\n}\n\n/**\n * Checks if the block is currently set to a sticky or fixed position.\n * This check is helpful for determining how to position block toolbars or other elements.\n *\n * @param {Object} attributes Block attributes.\n * @return {boolean} Whether or not the block is set to a sticky or fixed position.\n */\nexport function hasStickyOrFixedPositionValue( attributes ) {\n\tconst positionType = attributes?.style?.position?.type;\n\treturn positionType === 'sticky' || positionType === 'fixed';\n}\n\n/**\n * Resets the position block support attributes. This can be used when disabling\n * the position support controls for a block via a `ToolsPanel`.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetPosition( { attributes = {}, setAttributes } ) {\n\tconst { style = {} } = attributes;\n\n\tsetAttributes( {\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: undefined,\n\t\t\t\ttop: undefined,\n\t\t\t\tright: undefined,\n\t\t\t\tbottom: undefined,\n\t\t\t\tleft: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if position settings have been disabled.\n *\n * @param {string} name The name of the block.\n *\n * @return {boolean} Whether padding setting is disabled.\n */\nexport function useIsPositionDisabled( { name: blockName } = {} ) {\n\tconst [ allowFixed, allowSticky ] = useSettings(\n\t\t'position.fixed',\n\t\t'position.sticky'\n\t);\n\tconst isDisabled = ! allowFixed && ! allowSticky;\n\n\treturn ! hasPositionSupport( blockName ) || isDisabled;\n}\n\n/*\n * Position controls rendered in an inspector control panel.\n *\n * @param {Object} props\n *\n * @return {Element} Position panel.\n */\nexport function PositionPanelPure( {\n\tstyle = {},\n\tclientId,\n\tname: blockName,\n\tsetAttributes,\n} ) {\n\tconst allowFixed = hasFixedPositionSupport( blockName );\n\tconst allowSticky = hasStickyPositionSupport( blockName );\n\tconst value = style?.position?.type;\n\n\tconst { firstParentClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParents } = select( blockEditorStore );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\treturn { firstParentClientId: parents[ parents.length - 1 ] };\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\tconst stickyHelpText =\n\t\tallowSticky && value === STICKY_OPTION.value && blockInformation\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %s: the name of the parent block. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'The block will stick to the scrollable area of the parent %s block.'\n\t\t\t\t\t),\n\t\t\t\t\tblockInformation.title\n\t\t\t )\n\t\t\t: null;\n\n\tconst options = useMemo( () => {\n\t\tconst availableOptions = [ DEFAULT_OPTION ];\n\t\t// Display options if they are allowed, or if a block already has a valid value set.\n\t\t// This allows for a block to be switched off from a position type that is not allowed.\n\t\tif ( allowSticky || value === STICKY_OPTION.value ) {\n\t\t\tavailableOptions.push( STICKY_OPTION );\n\t\t}\n\t\tif ( allowFixed || value === FIXED_OPTION.value ) {\n\t\t\tavailableOptions.push( FIXED_OPTION );\n\t\t}\n\t\treturn availableOptions;\n\t}, [ allowFixed, allowSticky, value ] );\n\n\tconst onChangeType = ( next ) => {\n\t\t// For now, use a hard-coded `0px` value for the position.\n\t\t// `0px` is preferred over `0` as it can be used in `calc()` functions.\n\t\t// In the future, it could be useful to allow for an offset value.\n\t\tconst placementValue = '0px';\n\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tposition: {\n\t\t\t\t...style?.position,\n\t\t\t\ttype: next,\n\t\t\t\ttop:\n\t\t\t\t\tnext === 'sticky' || next === 'fixed'\n\t\t\t\t\t\t? placementValue\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tconst selectedOption = value\n\t\t? options.find( ( option ) => option.value === value ) || DEFAULT_OPTION\n\t\t: DEFAULT_OPTION;\n\n\t// Only display position controls if there is at least one option to choose from.\n\treturn Platform.select( {\n\t\tweb:\n\t\t\toptions.length > 1 ? (\n\t\t\t\t<InspectorControls group=\"position\">\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\thelp={ stickyHelpText }\n\t\t\t\t\t>\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Currently selected position.\n\t\t\t\t\t\t\t\t__( 'Currently selected position: %s' ),\n\t\t\t\t\t\t\t\tselectedOption.name\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ selectedOption }\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChangeType( selectedItem.value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</InspectorControls>\n\t\t\t) : null,\n\t\tnative: null,\n\t} );\n}\n\nexport default {\n\tedit: function Edit( props ) {\n\t\tconst isPositionDisabled = useIsPositionDisabled( props );\n\t\tif ( isPositionDisabled ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn <PositionPanelPure { ...props } />;\n\t},\n\tuseBlockProps,\n\tattributeKeys: [ 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBlockSupport( name, POSITION_SUPPORT_KEY );\n\t},\n};\n\n// Used for generating the instance ID\nconst POSITION_BLOCK_PROPS_REFERENCE = {};\n\nfunction useBlockProps( { name, style } ) {\n\tconst hasPositionBlockSupport = hasBlockSupport(\n\t\tname,\n\t\tPOSITION_SUPPORT_KEY\n\t);\n\tconst isPositionDisabled = useIsPositionDisabled( { name } );\n\tconst allowPositionStyles = hasPositionBlockSupport && ! isPositionDisabled;\n\n\tconst id = useInstanceId( POSITION_BLOCK_PROPS_REFERENCE );\n\n\t// Higher specificity to override defaults in editor UI.\n\tconst positionSelector = `.wp-container-${ id }.wp-container-${ id }`;\n\n\t// Get CSS string for the current position values.\n\tlet css;\n\tif ( allowPositionStyles ) {\n\t\tcss =\n\t\t\tgetPositionCSS( {\n\t\t\t\tselector: positionSelector,\n\t\t\t\tstyle,\n\t\t\t} ) || '';\n\t}\n\n\t// Attach a `wp-container-` id-based class name.\n\tconst className = clsx( {\n\t\t[ `wp-container-${ id }` ]: allowPositionStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t[ `is-position-${ style?.position?.type }` ]:\n\t\t\tallowPositionStyles && !! css && !! style?.position?.type,\n\t} );\n\n\tuseStyleOverride( { css } );\n\n\treturn { className };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/layouts/flex.js
CHANGED
|
@@ -94,8 +94,7 @@ var _default = exports.default = {
|
|
|
94
94
|
isToolbar: true
|
|
95
95
|
}), allowVerticalAlignment && /*#__PURE__*/(0, _jsxRuntime.jsx)(FlexLayoutVerticalAlignmentControl, {
|
|
96
96
|
layout: layout,
|
|
97
|
-
onChange: onChange
|
|
98
|
-
isToolbar: true
|
|
97
|
+
onChange: onChange
|
|
99
98
|
})]
|
|
100
99
|
});
|
|
101
100
|
},
|
|
@@ -161,8 +160,7 @@ var _default = exports.default = {
|
|
|
161
160
|
};
|
|
162
161
|
function FlexLayoutVerticalAlignmentControl({
|
|
163
162
|
layout,
|
|
164
|
-
onChange
|
|
165
|
-
isToolbar = false
|
|
163
|
+
onChange
|
|
166
164
|
}) {
|
|
167
165
|
const {
|
|
168
166
|
orientation = 'horizontal'
|
|
@@ -177,40 +175,10 @@ function FlexLayoutVerticalAlignmentControl({
|
|
|
177
175
|
verticalAlignment: value
|
|
178
176
|
});
|
|
179
177
|
};
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between']
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
const verticalAlignmentOptions = [{
|
|
188
|
-
value: 'flex-start',
|
|
189
|
-
label: (0, _i18n.__)('Align items top')
|
|
190
|
-
}, {
|
|
191
|
-
value: 'center',
|
|
192
|
-
label: (0, _i18n.__)('Align items center')
|
|
193
|
-
}, {
|
|
194
|
-
value: 'flex-end',
|
|
195
|
-
label: (0, _i18n.__)('Align items bottom')
|
|
196
|
-
}];
|
|
197
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("fieldset", {
|
|
198
|
-
className: "block-editor-hooks__flex-layout-vertical-alignment-control",
|
|
199
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("legend", {
|
|
200
|
-
children: (0, _i18n.__)('Vertical alignment')
|
|
201
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
202
|
-
children: verticalAlignmentOptions.map((value, icon, label) => {
|
|
203
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
|
|
204
|
-
// TODO: Switch to `true` (40px size) if possible
|
|
205
|
-
, {
|
|
206
|
-
__next40pxDefaultSize: false,
|
|
207
|
-
label: label,
|
|
208
|
-
icon: icon,
|
|
209
|
-
isPressed: verticalAlignment === value,
|
|
210
|
-
onClick: () => onVerticalAlignmentChange(value)
|
|
211
|
-
}, value);
|
|
212
|
-
})
|
|
213
|
-
})]
|
|
178
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components2.BlockVerticalAlignmentControl, {
|
|
179
|
+
onChange: onVerticalAlignmentChange,
|
|
180
|
+
value: verticalAlignment,
|
|
181
|
+
controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between']
|
|
214
182
|
});
|
|
215
183
|
}
|
|
216
184
|
const POPOVER_PROPS = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_icons","_components","_utils","_gap","_components2","_utils2","_definitions","_jsxRuntime","justifyContentMap","left","right","center","alignItemsMap","stretch","verticalAlignmentMap","top","bottom","flexWrapOptions","_default","exports","default","name","label","__","inspectorControls","FlexLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowOrientation","jsxs","Fragment","children","Flex","jsx","FlexItem","FlexLayoutJustifyContentControl","OrientationControl","FlexWrapControl","toolBarControls","FlexLayoutToolbarControls","allowSwitching","allowVerticalAlignment","BlockControls","group","__experimentalShareWithChildBlocks","isToolbar","FlexLayoutVerticalAlignmentControl","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","LAYOUT_DEFINITIONS","orientation","blockGapValue","spacing","blockGap","shouldSkipSerialization","getGapCSSValue","undefined","justifyContent","flexWrap","includes","verticalAlignment","alignItems","output","rules","push","length","appendSelectors","join","getBlockGapCSS","getOrientation","getAlignments","defaultVerticalAlignment","onVerticalAlignmentChange","value","BlockVerticalAlignmentControl","controls","verticalAlignmentOptions","className","map","icon","Button","__next40pxDefaultSize","isPressed","onClick","POPOVER_PROPS","placement","onJustificationChange","allowedControls","JustifyContentControl","popoverProps","justificationOptions","justifyLeft","justifyCenter","justifyRight","justifySpaceBetween","justifyStretch","__experimentalToggleGroupControl","__nextHasNoMarginBottom","__experimentalToggleGroupControlOptionIcon","ToggleControl","checked","newVerticalAlignment","newJustification","arrowRight","arrowDown"],"sources":["@wordpress/block-editor/src/layouts/flex.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n\tjustifySpaceBetween,\n\tjustifyStretch,\n\tarrowRight,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tButton,\n\tToggleControl,\n\tFlex,\n\tFlexItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport {\n\tBlockControls,\n\tJustifyContentControl,\n\tBlockVerticalAlignmentControl,\n} from '../components';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\n// Used with the default, horizontal flex orientation.\nconst justifyContentMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\t'space-between': 'space-between',\n};\n\n// Used with the vertical (column) flex orientation.\nconst alignItemsMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\tstretch: 'stretch',\n};\n\nconst verticalAlignmentMap = {\n\ttop: 'flex-start',\n\tcenter: 'center',\n\tbottom: 'flex-end',\n\tstretch: 'stretch',\n\t'space-between': 'space-between',\n};\n\nconst flexWrapOptions = [ 'wrap', 'nowrap' ];\n\nexport default {\n\tname: 'flex',\n\tlabel: __( 'Flex' ),\n\tinspectorControls: function FlexLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowOrientation = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t{ allowOrientation && (\n\t\t\t\t\t\t\t<OrientationControl\n\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t\t<FlexWrapControl layout={ layout } onChange={ onChange } />\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function FlexLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tif ( layoutBlockSupport?.allowSwitching ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { allowVerticalAlignment = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tisToolbar\n\t\t\t\t/>\n\t\t\t\t{ allowVerticalAlignment && (\n\t\t\t\t\t<FlexLayoutVerticalAlignmentControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisToolbar\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t);\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\n\t\t// If a block's block.json skips serialization for spacing or spacing.blockGap,\n\t\t// don't apply the user-defined value to the styles.\n\t\tconst blockGapValue =\n\t\t\tstyle?.spacing?.blockGap &&\n\t\t\t! shouldSkipSerialization( blockName, 'spacing', 'blockGap' )\n\t\t\t\t? getGapCSSValue( style?.spacing?.blockGap, '0.5em' )\n\t\t\t\t: undefined;\n\t\tconst justifyContent = justifyContentMap[ layout.justifyContent ];\n\t\tconst flexWrap = flexWrapOptions.includes( layout.flexWrap )\n\t\t\t? layout.flexWrap\n\t\t\t: 'wrap';\n\t\tconst verticalAlignment =\n\t\t\tverticalAlignmentMap[ layout.verticalAlignment ];\n\t\tconst alignItems =\n\t\t\talignItemsMap[ layout.justifyContent ] || alignItemsMap.left;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( flexWrap && flexWrap !== 'wrap' ) {\n\t\t\trules.push( `flex-wrap: ${ flexWrap }` );\n\t\t}\n\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `align-items: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( justifyContent ) {\n\t\t\t\trules.push( `justify-content: ${ justifyContent }` );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `justify-content: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\trules.push( 'flex-direction: column' );\n\t\t\trules.push( `align-items: ${ alignItems }` );\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\toutput = `${ appendSelectors( selector ) } {\n\t\t\t\t${ rules.join( '; ' ) };\n\t\t\t}`;\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'flex',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation( layout ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\t\treturn orientation;\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\nfunction FlexLayoutVerticalAlignmentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { orientation = 'horizontal' } = layout;\n\n\tconst defaultVerticalAlignment =\n\t\torientation === 'horizontal'\n\t\t\t? verticalAlignmentMap.center\n\t\t\t: verticalAlignmentMap.top;\n\n\tconst { verticalAlignment = defaultVerticalAlignment } = layout;\n\n\tconst onVerticalAlignmentChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tverticalAlignment: value,\n\t\t} );\n\t};\n\tif ( isToolbar ) {\n\t\treturn (\n\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\tcontrols={\n\t\t\t\t\torientation === 'horizontal'\n\t\t\t\t\t\t? [ 'top', 'center', 'bottom', 'stretch' ]\n\t\t\t\t\t\t: [ 'top', 'center', 'bottom', 'space-between' ]\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst verticalAlignmentOptions = [\n\t\t{\n\t\t\tvalue: 'flex-start',\n\t\t\tlabel: __( 'Align items top' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\tlabel: __( 'Align items center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'flex-end',\n\t\t\tlabel: __( 'Align items bottom' ),\n\t\t},\n\t];\n\n\treturn (\n\t\t<fieldset className=\"block-editor-hooks__flex-layout-vertical-alignment-control\">\n\t\t\t<legend>{ __( 'Vertical alignment' ) }</legend>\n\t\t\t<div>\n\t\t\t\t{ verticalAlignmentOptions.map( ( value, icon, label ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tisPressed={ verticalAlignment === value }\n\t\t\t\t\t\t\tonClick={ () => onVerticalAlignmentChange( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction FlexLayoutJustifyContentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { justifyContent = 'left', orientation = 'horizontal' } = layout;\n\tconst onJustificationChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tjustifyContent: value,\n\t\t} );\n\t};\n\tconst allowedControls = [ 'left', 'center', 'right' ];\n\tif ( orientation === 'horizontal' ) {\n\t\tallowedControls.push( 'space-between' );\n\t} else {\n\t\tallowedControls.push( 'stretch' );\n\t}\n\tif ( isToolbar ) {\n\t\treturn (\n\t\t\t<JustifyContentControl\n\t\t\t\tallowedControls={ allowedControls }\n\t\t\t\tvalue={ justifyContent }\n\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst justificationOptions = [\n\t\t{\n\t\t\tvalue: 'left',\n\t\t\ticon: justifyLeft,\n\t\t\tlabel: __( 'Justify items left' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\ticon: justifyCenter,\n\t\t\tlabel: __( 'Justify items center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'right',\n\t\t\ticon: justifyRight,\n\t\t\tlabel: __( 'Justify items right' ),\n\t\t},\n\t];\n\tif ( orientation === 'horizontal' ) {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'space-between',\n\t\t\ticon: justifySpaceBetween,\n\t\t\tlabel: __( 'Space between items' ),\n\t\t} );\n\t} else {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'stretch',\n\t\t\ticon: justifyStretch,\n\t\t\tlabel: __( 'Stretch items' ),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Justification' ) }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tclassName=\"block-editor-hooks__flex-layout-justification-controls\"\n\t\t>\n\t\t\t{ justificationOptions.map( ( { value, icon, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction FlexWrapControl( { layout, onChange } ) {\n\tconst { flexWrap = 'wrap' } = layout;\n\treturn (\n\t\t<ToggleControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Allow to wrap to multiple lines' ) }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tflexWrap: value ? 'wrap' : 'nowrap',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tchecked={ flexWrap === 'wrap' }\n\t\t/>\n\t);\n}\n\nfunction OrientationControl( { layout, onChange } ) {\n\tconst {\n\t\torientation = 'horizontal',\n\t\tverticalAlignment,\n\t\tjustifyContent,\n\t} = layout;\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"block-editor-hooks__flex-layout-orientation-controls\"\n\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\tvalue={ orientation }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\t// Make sure the vertical alignment and justification are compatible with the new orientation.\n\t\t\t\tlet newVerticalAlignment = verticalAlignment;\n\t\t\t\tlet newJustification = justifyContent;\n\t\t\t\tif ( value === 'horizontal' ) {\n\t\t\t\t\tif ( verticalAlignment === 'space-between' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'center';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'stretch' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( verticalAlignment === 'stretch' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'top';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'space-between' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn onChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\torientation: value,\n\t\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t\t\tjustifyContent: newJustification,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowRight }\n\t\t\t\tvalue=\"horizontal\"\n\t\t\t\tlabel={ __( 'Horizontal' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowDown }\n\t\t\t\tvalue=\"vertical\"\n\t\t\t\tlabel={ __( 'Vertical' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_icons","_components","_utils","_gap","_components2","_utils2","_definitions","_jsxRuntime","justifyContentMap","left","right","center","alignItemsMap","stretch","verticalAlignmentMap","top","bottom","flexWrapOptions","_default","exports","default","name","label","__","inspectorControls","FlexLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowOrientation","jsxs","Fragment","children","Flex","jsx","FlexItem","FlexLayoutJustifyContentControl","OrientationControl","FlexWrapControl","toolBarControls","FlexLayoutToolbarControls","allowSwitching","allowVerticalAlignment","BlockControls","group","__experimentalShareWithChildBlocks","isToolbar","FlexLayoutVerticalAlignmentControl","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","LAYOUT_DEFINITIONS","orientation","blockGapValue","spacing","blockGap","shouldSkipSerialization","getGapCSSValue","undefined","justifyContent","flexWrap","includes","verticalAlignment","alignItems","output","rules","push","length","appendSelectors","join","getBlockGapCSS","getOrientation","getAlignments","defaultVerticalAlignment","onVerticalAlignmentChange","value","BlockVerticalAlignmentControl","controls","POPOVER_PROPS","placement","onJustificationChange","allowedControls","JustifyContentControl","popoverProps","justificationOptions","icon","justifyLeft","justifyCenter","justifyRight","justifySpaceBetween","justifyStretch","__experimentalToggleGroupControl","__next40pxDefaultSize","__nextHasNoMarginBottom","className","map","__experimentalToggleGroupControlOptionIcon","ToggleControl","checked","newVerticalAlignment","newJustification","arrowRight","arrowDown"],"sources":["@wordpress/block-editor/src/layouts/flex.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n\tjustifySpaceBetween,\n\tjustifyStretch,\n\tarrowRight,\n\tarrowDown,\n} from '@wordpress/icons';\nimport {\n\tToggleControl,\n\tFlex,\n\tFlexItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport {\n\tBlockControls,\n\tJustifyContentControl,\n\tBlockVerticalAlignmentControl,\n} from '../components';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\n// Used with the default, horizontal flex orientation.\nconst justifyContentMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\t'space-between': 'space-between',\n};\n\n// Used with the vertical (column) flex orientation.\nconst alignItemsMap = {\n\tleft: 'flex-start',\n\tright: 'flex-end',\n\tcenter: 'center',\n\tstretch: 'stretch',\n};\n\nconst verticalAlignmentMap = {\n\ttop: 'flex-start',\n\tcenter: 'center',\n\tbottom: 'flex-end',\n\tstretch: 'stretch',\n\t'space-between': 'space-between',\n};\n\nconst flexWrapOptions = [ 'wrap', 'nowrap' ];\n\nexport default {\n\tname: 'flex',\n\tlabel: __( 'Flex' ),\n\tinspectorControls: function FlexLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowOrientation = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t{ allowOrientation && (\n\t\t\t\t\t\t\t<OrientationControl\n\t\t\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t\t<FlexWrapControl layout={ layout } onChange={ onChange } />\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function FlexLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tif ( layoutBlockSupport?.allowSwitching ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { allowVerticalAlignment = true } = layoutBlockSupport;\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<FlexLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tisToolbar\n\t\t\t\t/>\n\t\t\t\t{ allowVerticalAlignment && (\n\t\t\t\t\t<FlexLayoutVerticalAlignmentControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t);\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout,\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\n\t\t// If a block's block.json skips serialization for spacing or spacing.blockGap,\n\t\t// don't apply the user-defined value to the styles.\n\t\tconst blockGapValue =\n\t\t\tstyle?.spacing?.blockGap &&\n\t\t\t! shouldSkipSerialization( blockName, 'spacing', 'blockGap' )\n\t\t\t\t? getGapCSSValue( style?.spacing?.blockGap, '0.5em' )\n\t\t\t\t: undefined;\n\t\tconst justifyContent = justifyContentMap[ layout.justifyContent ];\n\t\tconst flexWrap = flexWrapOptions.includes( layout.flexWrap )\n\t\t\t? layout.flexWrap\n\t\t\t: 'wrap';\n\t\tconst verticalAlignment =\n\t\t\tverticalAlignmentMap[ layout.verticalAlignment ];\n\t\tconst alignItems =\n\t\t\talignItemsMap[ layout.justifyContent ] || alignItemsMap.left;\n\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( flexWrap && flexWrap !== 'wrap' ) {\n\t\t\trules.push( `flex-wrap: ${ flexWrap }` );\n\t\t}\n\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `align-items: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\tif ( justifyContent ) {\n\t\t\t\trules.push( `justify-content: ${ justifyContent }` );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( verticalAlignment ) {\n\t\t\t\trules.push( `justify-content: ${ verticalAlignment }` );\n\t\t\t}\n\t\t\trules.push( 'flex-direction: column' );\n\t\t\trules.push( `align-items: ${ alignItems }` );\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\toutput = `${ appendSelectors( selector ) } {\n\t\t\t\t${ rules.join( '; ' ) };\n\t\t\t}`;\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'flex',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation( layout ) {\n\t\tconst { orientation = 'horizontal' } = layout;\n\t\treturn orientation;\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\nfunction FlexLayoutVerticalAlignmentControl( { layout, onChange } ) {\n\tconst { orientation = 'horizontal' } = layout;\n\n\tconst defaultVerticalAlignment =\n\t\torientation === 'horizontal'\n\t\t\t? verticalAlignmentMap.center\n\t\t\t: verticalAlignmentMap.top;\n\n\tconst { verticalAlignment = defaultVerticalAlignment } = layout;\n\n\tconst onVerticalAlignmentChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tverticalAlignment: value,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<BlockVerticalAlignmentControl\n\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\tvalue={ verticalAlignment }\n\t\t\tcontrols={\n\t\t\t\torientation === 'horizontal'\n\t\t\t\t\t? [ 'top', 'center', 'bottom', 'stretch' ]\n\t\t\t\t\t: [ 'top', 'center', 'bottom', 'space-between' ]\n\t\t\t}\n\t\t/>\n\t);\n}\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction FlexLayoutJustifyContentControl( {\n\tlayout,\n\tonChange,\n\tisToolbar = false,\n} ) {\n\tconst { justifyContent = 'left', orientation = 'horizontal' } = layout;\n\tconst onJustificationChange = ( value ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tjustifyContent: value,\n\t\t} );\n\t};\n\tconst allowedControls = [ 'left', 'center', 'right' ];\n\tif ( orientation === 'horizontal' ) {\n\t\tallowedControls.push( 'space-between' );\n\t} else {\n\t\tallowedControls.push( 'stretch' );\n\t}\n\tif ( isToolbar ) {\n\t\treturn (\n\t\t\t<JustifyContentControl\n\t\t\t\tallowedControls={ allowedControls }\n\t\t\t\tvalue={ justifyContent }\n\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst justificationOptions = [\n\t\t{\n\t\t\tvalue: 'left',\n\t\t\ticon: justifyLeft,\n\t\t\tlabel: __( 'Justify items left' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'center',\n\t\t\ticon: justifyCenter,\n\t\t\tlabel: __( 'Justify items center' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'right',\n\t\t\ticon: justifyRight,\n\t\t\tlabel: __( 'Justify items right' ),\n\t\t},\n\t];\n\tif ( orientation === 'horizontal' ) {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'space-between',\n\t\t\ticon: justifySpaceBetween,\n\t\t\tlabel: __( 'Space between items' ),\n\t\t} );\n\t} else {\n\t\tjustificationOptions.push( {\n\t\t\tvalue: 'stretch',\n\t\t\ticon: justifyStretch,\n\t\t\tlabel: __( 'Stretch items' ),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Justification' ) }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tclassName=\"block-editor-hooks__flex-layout-justification-controls\"\n\t\t>\n\t\t\t{ justificationOptions.map( ( { value, icon, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nfunction FlexWrapControl( { layout, onChange } ) {\n\tconst { flexWrap = 'wrap' } = layout;\n\treturn (\n\t\t<ToggleControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Allow to wrap to multiple lines' ) }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\tflexWrap: value ? 'wrap' : 'nowrap',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tchecked={ flexWrap === 'wrap' }\n\t\t/>\n\t);\n}\n\nfunction OrientationControl( { layout, onChange } ) {\n\tconst {\n\t\torientation = 'horizontal',\n\t\tverticalAlignment,\n\t\tjustifyContent,\n\t} = layout;\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName=\"block-editor-hooks__flex-layout-orientation-controls\"\n\t\t\tlabel={ __( 'Orientation' ) }\n\t\t\tvalue={ orientation }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\t// Make sure the vertical alignment and justification are compatible with the new orientation.\n\t\t\t\tlet newVerticalAlignment = verticalAlignment;\n\t\t\t\tlet newJustification = justifyContent;\n\t\t\t\tif ( value === 'horizontal' ) {\n\t\t\t\t\tif ( verticalAlignment === 'space-between' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'center';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'stretch' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif ( verticalAlignment === 'stretch' ) {\n\t\t\t\t\t\tnewVerticalAlignment = 'top';\n\t\t\t\t\t}\n\t\t\t\t\tif ( justifyContent === 'space-between' ) {\n\t\t\t\t\t\tnewJustification = 'left';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn onChange( {\n\t\t\t\t\t...layout,\n\t\t\t\t\torientation: value,\n\t\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t\t\tjustifyContent: newJustification,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowRight }\n\t\t\t\tvalue=\"horizontal\"\n\t\t\t\tlabel={ __( 'Horizontal' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\ticon={ arrowDown }\n\t\t\t\tvalue=\"vertical\"\n\t\t\t\tlabel={ __( 'Vertical' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/store/actions.js
CHANGED
|
@@ -35,7 +35,7 @@ exports.selectBlock = selectBlock;
|
|
|
35
35
|
exports.selectPreviousBlock = exports.selectNextBlock = void 0;
|
|
36
36
|
exports.selectionChange = selectionChange;
|
|
37
37
|
exports.setBlockEditingMode = setBlockEditingMode;
|
|
38
|
-
exports.setBlockMovingClientId =
|
|
38
|
+
exports.setBlockMovingClientId = setBlockMovingClientId;
|
|
39
39
|
exports.setBlockVisibility = setBlockVisibility;
|
|
40
40
|
exports.setHasControlledInnerBlocks = setHasControlledInnerBlocks;
|
|
41
41
|
exports.setNavigationMode = void 0;
|
|
@@ -1521,22 +1521,22 @@ const __unstableSetEditorMode = mode => ({
|
|
|
1521
1521
|
};
|
|
1522
1522
|
|
|
1523
1523
|
/**
|
|
1524
|
-
*
|
|
1524
|
+
* Set the block moving client ID.
|
|
1525
|
+
*
|
|
1526
|
+
* @deprecated
|
|
1525
1527
|
*
|
|
1526
|
-
* @
|
|
1528
|
+
* @return {Object} Action object.
|
|
1527
1529
|
*/
|
|
1528
1530
|
exports.__unstableSetEditorMode = __unstableSetEditorMode;
|
|
1529
|
-
|
|
1530
|
-
dispatch
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
type: 'SET_BLOCK_MOVING_MODE',
|
|
1534
|
-
hasBlockMovingClientId
|
|
1531
|
+
function setBlockMovingClientId() {
|
|
1532
|
+
(0, _deprecated.default)('wp.data.dispatch( "core/block-editor" ).setBlockMovingClientId', {
|
|
1533
|
+
since: '6.7',
|
|
1534
|
+
hint: 'Block moving mode feature has been removed'
|
|
1535
1535
|
});
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
}
|
|
1539
|
-
}
|
|
1536
|
+
return {
|
|
1537
|
+
type: 'DO_NOTHING'
|
|
1538
|
+
};
|
|
1539
|
+
}
|
|
1540
1540
|
|
|
1541
1541
|
/**
|
|
1542
1542
|
* Action that duplicates a list of blocks.
|
|
@@ -1544,7 +1544,6 @@ const setBlockMovingClientId = (hasBlockMovingClientId = null) => ({
|
|
|
1544
1544
|
* @param {string[]} clientIds
|
|
1545
1545
|
* @param {boolean} updateSelection
|
|
1546
1546
|
*/
|
|
1547
|
-
exports.setBlockMovingClientId = setBlockMovingClientId;
|
|
1548
1547
|
const duplicateBlocks = (clientIds, updateSelection = true) => ({
|
|
1549
1548
|
select,
|
|
1550
1549
|
dispatch
|