@wordpress/block-editor 13.3.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +0 -4
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +20 -17
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +5 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +7 -8
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +27 -27
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +2 -1
- package/build/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -11
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -4
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +2 -7
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +8 -1
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +5 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +26 -43
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +78 -7
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +24 -5
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +89 -44
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +1 -1
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +40 -28
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +1 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +1 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +1 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +20 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +2 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/hooks/grid-visualizer.js +5 -8
- package/build/hooks/grid-visualizer.js.map +1 -1
- package/build/hooks/layout-child.js +9 -2
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +3 -7
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +81 -50
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/layouts/constrained.js +6 -2
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +2 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +0 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +2 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +20 -17
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +5 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +7 -8
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +28 -28
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +2 -1
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +4 -12
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -4
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -6
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +8 -1
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +5 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +27 -44
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +76 -7
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +24 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +92 -46
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +1 -1
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +41 -29
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +1 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +1 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +20 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +3 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +2 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +5 -8
- package/build-module/hooks/grid-visualizer.js.map +1 -1
- package/build-module/hooks/layout-child.js +9 -2
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +3 -7
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +81 -51
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/layouts/constrained.js +6 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +2 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +0 -3
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/content-rtl.css +6 -6
- package/build-style/content.css +6 -6
- package/build-style/style-rtl.css +167 -103
- package/build-style/style.css +167 -103
- package/build-types/components/block-context/index.d.ts +2 -2
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +31 -31
- package/src/components/alignment-control/ui.js +2 -2
- package/src/components/block-alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/ui.native.js +1 -1
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-patterns-paging/style.scss +0 -23
- package/src/components/block-removal-warning-modal/index.js +10 -2
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
- package/src/components/block-switcher/preview-block-popover.js +20 -14
- package/src/components/block-switcher/style.scss +8 -17
- package/src/components/block-toolbar/shuffle.js +8 -1
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/block-tools/use-show-block-tools.js +12 -9
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +43 -33
- package/src/components/block-tools/zoom-out-popover.js +1 -0
- package/src/components/block-tools/zoom-out-toolbar.js +1 -1
- package/src/components/date-format-picker/index.js +2 -11
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/font-appearance-control/index.js +1 -5
- package/src/components/global-styles/background-panel.js +21 -1
- package/src/components/global-styles/hooks.js +5 -1
- package/src/components/global-styles/style.scss +12 -0
- package/src/components/global-styles/test/typography-utils.js +325 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +36 -44
- package/src/components/global-styles/typography-utils.js +103 -7
- package/src/components/global-styles/use-global-styles-output.js +22 -2
- package/src/components/grid/grid-item-movers.js +139 -69
- package/src/components/grid/grid-visualizer.js +1 -1
- package/src/components/grid/style.scss +114 -0
- package/src/components/grid/use-grid-layout-sync.js +66 -27
- package/src/components/iframe/content.scss +1 -1
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +4 -1
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +1 -1
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/style.scss +57 -43
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/list-view/block-select-button.js +3 -13
- package/src/components/list-view/block.js +10 -3
- package/src/components/list-view/style.scss +2 -1
- package/src/components/list-view/utils.js +13 -2
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -1
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/grid-visualizer.js +5 -7
- package/src/hooks/layout-child.js +12 -3
- package/src/hooks/position.js +3 -13
- package/src/hooks/use-bindings-attributes.js +89 -59
- package/src/layouts/constrained.js +10 -2
- package/src/layouts/grid.js +2 -0
- package/src/private-apis.js +0 -6
- package/src/store/actions.js +15 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
import { store as blocksStore } from '@wordpress/blocks';
|
|
5
5
|
import { createHigherOrderComponent } from '@wordpress/compose';
|
|
6
6
|
import { useRegistry, useSelect } from '@wordpress/data';
|
|
7
|
-
import { useCallback, useMemo } from '@wordpress/element';
|
|
7
|
+
import { useCallback, useMemo, useContext } from '@wordpress/element';
|
|
8
8
|
import { addFilter } from '@wordpress/hooks';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
13
|
import { unlock } from '../lock-unlock';
|
|
14
|
+
import BlockContext from '../components/block-context';
|
|
14
15
|
|
|
15
16
|
/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */
|
|
16
17
|
/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */
|
|
@@ -84,100 +85,129 @@ export function canBindAttribute(blockName, attributeName) {
|
|
|
84
85
|
}
|
|
85
86
|
export const withBlockBindingSupport = createHigherOrderComponent(BlockEdit => props => {
|
|
86
87
|
const registry = useRegistry();
|
|
88
|
+
const blockContext = useContext(BlockContext);
|
|
87
89
|
const sources = useSelect(select => unlock(select(blocksStore)).getAllBlockBindingsSources());
|
|
88
90
|
const {
|
|
89
91
|
name,
|
|
90
|
-
clientId
|
|
91
|
-
context
|
|
92
|
+
clientId
|
|
92
93
|
} = props;
|
|
93
94
|
const hasParentPattern = !!props.context['pattern/overrides'];
|
|
94
95
|
const hasPatternOverridesDefaultBinding = props.attributes.metadata?.bindings?.[DEFAULT_ATTRIBUTE]?.source === 'core/pattern-overrides';
|
|
95
|
-
const
|
|
96
|
+
const blockBindings = useMemo(() => replacePatternOverrideDefaultBindings(name, props.attributes.metadata?.bindings), [props.attributes.metadata?.bindings, name]);
|
|
96
97
|
|
|
97
98
|
// While this hook doesn't directly call any selectors, `useSelect` is
|
|
98
99
|
// used purposely here to ensure `boundAttributes` is updated whenever
|
|
99
100
|
// there are attribute updates.
|
|
100
101
|
// `source.getValues` may also call a selector via `registry.select`.
|
|
101
102
|
const boundAttributes = useSelect(() => {
|
|
102
|
-
if (!
|
|
103
|
+
if (!blockBindings) {
|
|
103
104
|
return;
|
|
104
105
|
}
|
|
105
106
|
const attributes = {};
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
const blockBindingsBySource = new Map();
|
|
108
|
+
for (const [attributeName, binding] of Object.entries(blockBindings)) {
|
|
109
|
+
const {
|
|
110
|
+
source: sourceName,
|
|
111
|
+
args: sourceArgs
|
|
112
|
+
} = binding;
|
|
113
|
+
const source = sources[sourceName];
|
|
114
|
+
if (!source?.getValues || !canBindAttribute(name, attributeName)) {
|
|
109
115
|
continue;
|
|
110
116
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
blockBindingsBySource.set(source, {
|
|
118
|
+
...blockBindingsBySource.get(source),
|
|
119
|
+
[attributeName]: {
|
|
120
|
+
args: sourceArgs
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
if (blockBindingsBySource.size) {
|
|
125
|
+
for (const [source, bindings] of blockBindingsBySource) {
|
|
126
|
+
// Populate context.
|
|
127
|
+
const context = {};
|
|
128
|
+
if (source.usesContext?.length) {
|
|
129
|
+
for (const key of source.usesContext) {
|
|
130
|
+
context[key] = blockContext[key];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Get values in batch if the source supports it.
|
|
135
|
+
const values = source.getValues({
|
|
136
|
+
registry,
|
|
137
|
+
context,
|
|
138
|
+
clientId,
|
|
139
|
+
bindings
|
|
140
|
+
});
|
|
141
|
+
for (const [attributeName, value] of Object.entries(values)) {
|
|
142
|
+
// Use placeholder when value is undefined.
|
|
143
|
+
if (value === undefined) {
|
|
144
|
+
if (attributeName === 'url') {
|
|
145
|
+
attributes[attributeName] = null;
|
|
146
|
+
} else {
|
|
147
|
+
attributes[attributeName] = source.getPlaceholder?.({
|
|
148
|
+
registry,
|
|
149
|
+
context,
|
|
150
|
+
clientId,
|
|
151
|
+
attributeName,
|
|
152
|
+
args: bindings[attributeName].args
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
} else {
|
|
156
|
+
attributes[attributeName] = value;
|
|
157
|
+
}
|
|
124
158
|
}
|
|
125
159
|
}
|
|
126
160
|
}
|
|
127
161
|
return attributes;
|
|
128
|
-
}, [
|
|
162
|
+
}, [blockBindings, name, clientId, blockContext, registry, sources]);
|
|
129
163
|
const {
|
|
130
164
|
setAttributes
|
|
131
165
|
} = props;
|
|
132
166
|
const _setAttributes = useCallback(nextAttributes => {
|
|
133
167
|
registry.batch(() => {
|
|
134
|
-
if (!
|
|
168
|
+
if (!blockBindings) {
|
|
135
169
|
setAttributes(nextAttributes);
|
|
136
170
|
return;
|
|
137
171
|
}
|
|
138
172
|
const keptAttributes = {
|
|
139
173
|
...nextAttributes
|
|
140
174
|
};
|
|
141
|
-
const
|
|
175
|
+
const blockBindingsBySource = new Map();
|
|
142
176
|
|
|
143
177
|
// Loop only over the updated attributes to avoid modifying the bound ones that haven't changed.
|
|
144
178
|
for (const [attributeName, newValue] of Object.entries(keptAttributes)) {
|
|
145
|
-
if (!
|
|
179
|
+
if (!blockBindings[attributeName] || !canBindAttribute(name, attributeName)) {
|
|
146
180
|
continue;
|
|
147
181
|
}
|
|
148
|
-
const binding =
|
|
182
|
+
const binding = blockBindings[attributeName];
|
|
149
183
|
const source = sources[binding?.source];
|
|
150
|
-
if (!source?.
|
|
184
|
+
if (!source?.setValues) {
|
|
151
185
|
continue;
|
|
152
186
|
}
|
|
153
|
-
|
|
154
|
-
...
|
|
155
|
-
[attributeName]:
|
|
187
|
+
blockBindingsBySource.set(source, {
|
|
188
|
+
...blockBindingsBySource.get(source),
|
|
189
|
+
[attributeName]: {
|
|
190
|
+
args: binding.args,
|
|
191
|
+
newValue
|
|
192
|
+
}
|
|
156
193
|
});
|
|
157
194
|
delete keptAttributes[attributeName];
|
|
158
195
|
}
|
|
159
|
-
if (
|
|
160
|
-
for (const [source,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
attributes
|
|
167
|
-
});
|
|
168
|
-
} else {
|
|
169
|
-
for (const [attributeName, value] of Object.entries(attributes)) {
|
|
170
|
-
const binding = bindings[attributeName];
|
|
171
|
-
source.setValue({
|
|
172
|
-
registry,
|
|
173
|
-
context,
|
|
174
|
-
clientId,
|
|
175
|
-
attributeName,
|
|
176
|
-
args: binding.args,
|
|
177
|
-
value
|
|
178
|
-
});
|
|
196
|
+
if (blockBindingsBySource.size) {
|
|
197
|
+
for (const [source, bindings] of blockBindingsBySource) {
|
|
198
|
+
// Populate context.
|
|
199
|
+
const context = {};
|
|
200
|
+
if (source.usesContext?.length) {
|
|
201
|
+
for (const key of source.usesContext) {
|
|
202
|
+
context[key] = blockContext[key];
|
|
179
203
|
}
|
|
180
204
|
}
|
|
205
|
+
source.setValues({
|
|
206
|
+
registry,
|
|
207
|
+
context,
|
|
208
|
+
clientId,
|
|
209
|
+
bindings
|
|
210
|
+
});
|
|
181
211
|
}
|
|
182
212
|
}
|
|
183
213
|
if (
|
|
@@ -192,7 +222,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(BlockEdit => p
|
|
|
192
222
|
setAttributes(keptAttributes);
|
|
193
223
|
}
|
|
194
224
|
});
|
|
195
|
-
}, [registry,
|
|
225
|
+
}, [registry, blockBindings, name, clientId, blockContext, setAttributes, sources, hasPatternOverridesDefaultBinding, hasParentPattern]);
|
|
196
226
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
197
227
|
children: /*#__PURE__*/_jsx(BlockEdit, {
|
|
198
228
|
...props,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","blocksStore","createHigherOrderComponent","useRegistry","useSelect","useCallback","useMemo","addFilter","unlock","jsx","_jsx","Fragment","_Fragment","BLOCK_BINDINGS_ALLOWED_BLOCKS","DEFAULT_ATTRIBUTE","replacePatternOverrideDefaultBindings","blockName","bindings","source","supportedAttributes","bindingsWithDefaults","attributeName","bindingSource","canBindBlock","canBindAttribute","includes","withBlockBindingSupport","BlockEdit","props","registry","sources","select","getAllBlockBindingsSources","name","clientId","context","hasParentPattern","hasPatternOverridesDefaultBinding","attributes","metadata","boundAttributes","boundAttribute","Object","entries","getValue","args","undefined","getPlaceholder","setAttributes","_setAttributes","nextAttributes","batch","keptAttributes","updatesBySource","Map","newValue","binding","setValue","setValues","set","get","size","value","keys","length","caption","href","children","shimAttributeSource","settings","edit"],"sources":["@wordpress/block-editor/src/hooks/use-bindings-attributes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\n/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */\n/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */\n\n/**\n * Given a binding of block attributes, returns a higher order component that\n * overrides its `attributes` and `setAttributes` props to sync any changes needed.\n *\n * @return {WPHigherOrderComponent} Higher-order component.\n */\n\nconst BLOCK_BINDINGS_ALLOWED_BLOCKS = {\n\t'core/paragraph': [ 'content' ],\n\t'core/heading': [ 'content' ],\n\t'core/image': [ 'id', 'url', 'title', 'alt' ],\n\t'core/button': [ 'url', 'text', 'linkTarget', 'rel' ],\n};\n\nconst DEFAULT_ATTRIBUTE = '__default';\n\n/**\n * Returns the bindings with the `__default` binding for pattern overrides\n * replaced with the full-set of supported attributes. e.g.:\n *\n * bindings passed in: `{ __default: { source: 'core/pattern-overrides' } }`\n * bindings returned: `{ content: { source: 'core/pattern-overrides' } }`\n *\n * @param {string} blockName The block name (e.g. 'core/paragraph').\n * @param {Object} bindings A block's bindings from the metadata attribute.\n *\n * @return {Object} The bindings with default replaced for pattern overrides.\n */\nfunction replacePatternOverrideDefaultBindings( blockName, bindings ) {\n\t// The `__default` binding currently only works for pattern overrides.\n\tif (\n\t\tbindings?.[ DEFAULT_ATTRIBUTE ]?.source === 'core/pattern-overrides'\n\t) {\n\t\tconst supportedAttributes = BLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ];\n\t\tconst bindingsWithDefaults = {};\n\t\tfor ( const attributeName of supportedAttributes ) {\n\t\t\t// If the block has mixed binding sources, retain any non pattern override bindings.\n\t\t\tconst bindingSource = bindings[ attributeName ]\n\t\t\t\t? bindings[ attributeName ]\n\t\t\t\t: { source: 'core/pattern-overrides' };\n\t\t\tbindingsWithDefaults[ attributeName ] = bindingSource;\n\t\t}\n\n\t\treturn bindingsWithDefaults;\n\t}\n\n\treturn bindings;\n}\n\n/**\n * Based on the given block name,\n * check if it is possible to bind the block.\n *\n * @param {string} blockName - The block name.\n * @return {boolean} Whether it is possible to bind the block to sources.\n */\nexport function canBindBlock( blockName ) {\n\treturn blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS;\n}\n\n/**\n * Based on the given block name and attribute name,\n * check if it is possible to bind the block attribute.\n *\n * @param {string} blockName - The block name.\n * @param {string} attributeName - The attribute name.\n * @return {boolean} Whether it is possible to bind the block attribute.\n */\nexport function canBindAttribute( blockName, attributeName ) {\n\treturn (\n\t\tcanBindBlock( blockName ) &&\n\t\tBLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ].includes( attributeName )\n\t);\n}\n\nexport const withBlockBindingSupport = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst registry = useRegistry();\n\t\tconst sources = useSelect( ( select ) =>\n\t\t\tunlock( select( blocksStore ) ).getAllBlockBindingsSources()\n\t\t);\n\t\tconst { name, clientId, context } = props;\n\t\tconst hasParentPattern = !! props.context[ 'pattern/overrides' ];\n\t\tconst hasPatternOverridesDefaultBinding =\n\t\t\tprops.attributes.metadata?.bindings?.[ DEFAULT_ATTRIBUTE ]\n\t\t\t\t?.source === 'core/pattern-overrides';\n\t\tconst bindings = useMemo(\n\t\t\t() =>\n\t\t\t\treplacePatternOverrideDefaultBindings(\n\t\t\t\t\tname,\n\t\t\t\t\tprops.attributes.metadata?.bindings\n\t\t\t\t),\n\t\t\t[ props.attributes.metadata?.bindings, name ]\n\t\t);\n\n\t\t// While this hook doesn't directly call any selectors, `useSelect` is\n\t\t// used purposely here to ensure `boundAttributes` is updated whenever\n\t\t// there are attribute updates.\n\t\t// `source.getValues` may also call a selector via `registry.select`.\n\t\tconst boundAttributes = useSelect( () => {\n\t\t\tif ( ! bindings ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst attributes = {};\n\n\t\t\tfor ( const [ attributeName, boundAttribute ] of Object.entries(\n\t\t\t\tbindings\n\t\t\t) ) {\n\t\t\t\tconst source = sources[ boundAttribute.source ];\n\t\t\t\tif (\n\t\t\t\t\t! source?.getValue ||\n\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst args = {\n\t\t\t\t\tregistry,\n\t\t\t\t\tcontext,\n\t\t\t\t\tclientId,\n\t\t\t\t\tattributeName,\n\t\t\t\t\targs: boundAttribute.args,\n\t\t\t\t};\n\n\t\t\t\tattributes[ attributeName ] = source.getValue( args );\n\n\t\t\t\tif ( attributes[ attributeName ] === undefined ) {\n\t\t\t\t\tif ( attributeName === 'url' ) {\n\t\t\t\t\t\tattributes[ attributeName ] = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tattributes[ attributeName ] =\n\t\t\t\t\t\t\tsource.getPlaceholder?.( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn attributes;\n\t\t}, [ bindings, name, clientId, context, registry, sources ] );\n\n\t\tconst { setAttributes } = props;\n\n\t\tconst _setAttributes = useCallback(\n\t\t\t( nextAttributes ) => {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tif ( ! bindings ) {\n\t\t\t\t\t\tsetAttributes( nextAttributes );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst keptAttributes = { ...nextAttributes };\n\t\t\t\t\tconst updatesBySource = new Map();\n\n\t\t\t\t\t// Loop only over the updated attributes to avoid modifying the bound ones that haven't changed.\n\t\t\t\t\tfor ( const [ attributeName, newValue ] of Object.entries(\n\t\t\t\t\t\tkeptAttributes\n\t\t\t\t\t) ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! bindings[ attributeName ] ||\n\t\t\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst binding = bindings[ attributeName ];\n\t\t\t\t\t\tconst source = sources[ binding?.source ];\n\t\t\t\t\t\tif ( ! source?.setValue && ! source?.setValues ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tupdatesBySource.set( source, {\n\t\t\t\t\t\t\t...updatesBySource.get( source ),\n\t\t\t\t\t\t\t[ attributeName ]: newValue,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tdelete keptAttributes[ attributeName ];\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( updatesBySource.size ) {\n\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t] of updatesBySource ) {\n\t\t\t\t\t\t\tif ( source.setValues ) {\n\t\t\t\t\t\t\t\tsource.setValues( {\n\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t] of Object.entries( attributes ) ) {\n\t\t\t\t\t\t\t\t\tconst binding = bindings[ attributeName ];\n\t\t\t\t\t\t\t\t\tsource.setValue( {\n\t\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\t\targs: binding.args,\n\t\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Don't update non-connected attributes if the block is using pattern overrides\n\t\t\t\t\t\t// and the editing is happening while overriding the pattern (not editing the original).\n\t\t\t\t\t\t! (\n\t\t\t\t\t\t\thasPatternOverridesDefaultBinding &&\n\t\t\t\t\t\t\thasParentPattern\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\tObject.keys( keptAttributes ).length\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Don't update caption and href until they are supported.\n\t\t\t\t\t\tif ( hasPatternOverridesDefaultBinding ) {\n\t\t\t\t\t\t\tdelete keptAttributes?.caption;\n\t\t\t\t\t\t\tdelete keptAttributes?.href;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetAttributes( keptAttributes );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\t[\n\t\t\t\tregistry,\n\t\t\t\tbindings,\n\t\t\t\tname,\n\t\t\t\tclientId,\n\t\t\t\tcontext,\n\t\t\t\tsetAttributes,\n\t\t\t\tsources,\n\t\t\t\thasPatternOverridesDefaultBinding,\n\t\t\t\thasParentPattern,\n\t\t\t]\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tattributes={ { ...props.attributes, ...boundAttributes } }\n\t\t\t\t\tsetAttributes={ _setAttributes }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n\t'withBlockBindingSupport'\n);\n\n/**\n * Filters a registered block's settings to enhance a block's `edit` component\n * to upgrade bound attributes.\n *\n * @param {WPBlockSettings} settings - Registered block settings.\n * @param {string} name - Block name.\n * @return {WPBlockSettings} Filtered block settings.\n */\nfunction shimAttributeSource( settings, name ) {\n\tif ( ! canBindBlock( name ) ) {\n\t\treturn settings;\n\t}\n\n\treturn {\n\t\t...settings,\n\t\tedit: withBlockBindingSupport( settings.edit ),\n\t};\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/custom-sources-backwards-compatibility/shim-attribute-source',\n\tshimAttributeSource\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["store","blocksStore","createHigherOrderComponent","useRegistry","useSelect","useCallback","useMemo","useContext","addFilter","unlock","BlockContext","jsx","_jsx","Fragment","_Fragment","BLOCK_BINDINGS_ALLOWED_BLOCKS","DEFAULT_ATTRIBUTE","replacePatternOverrideDefaultBindings","blockName","bindings","source","supportedAttributes","bindingsWithDefaults","attributeName","bindingSource","canBindBlock","canBindAttribute","includes","withBlockBindingSupport","BlockEdit","props","registry","blockContext","sources","select","getAllBlockBindingsSources","name","clientId","hasParentPattern","context","hasPatternOverridesDefaultBinding","attributes","metadata","blockBindings","boundAttributes","blockBindingsBySource","Map","binding","Object","entries","sourceName","args","sourceArgs","getValues","set","get","size","usesContext","length","key","values","value","undefined","getPlaceholder","setAttributes","_setAttributes","nextAttributes","batch","keptAttributes","newValue","setValues","keys","caption","href","children","shimAttributeSource","settings","edit"],"sources":["@wordpress/block-editor/src/hooks/use-bindings-attributes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useRegistry, useSelect } from '@wordpress/data';\nimport { useCallback, useMemo, useContext } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport BlockContext from '../components/block-context';\n\n/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */\n/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */\n\n/**\n * Given a binding of block attributes, returns a higher order component that\n * overrides its `attributes` and `setAttributes` props to sync any changes needed.\n *\n * @return {WPHigherOrderComponent} Higher-order component.\n */\n\nconst BLOCK_BINDINGS_ALLOWED_BLOCKS = {\n\t'core/paragraph': [ 'content' ],\n\t'core/heading': [ 'content' ],\n\t'core/image': [ 'id', 'url', 'title', 'alt' ],\n\t'core/button': [ 'url', 'text', 'linkTarget', 'rel' ],\n};\n\nconst DEFAULT_ATTRIBUTE = '__default';\n\n/**\n * Returns the bindings with the `__default` binding for pattern overrides\n * replaced with the full-set of supported attributes. e.g.:\n *\n * bindings passed in: `{ __default: { source: 'core/pattern-overrides' } }`\n * bindings returned: `{ content: { source: 'core/pattern-overrides' } }`\n *\n * @param {string} blockName The block name (e.g. 'core/paragraph').\n * @param {Object} bindings A block's bindings from the metadata attribute.\n *\n * @return {Object} The bindings with default replaced for pattern overrides.\n */\nfunction replacePatternOverrideDefaultBindings( blockName, bindings ) {\n\t// The `__default` binding currently only works for pattern overrides.\n\tif (\n\t\tbindings?.[ DEFAULT_ATTRIBUTE ]?.source === 'core/pattern-overrides'\n\t) {\n\t\tconst supportedAttributes = BLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ];\n\t\tconst bindingsWithDefaults = {};\n\t\tfor ( const attributeName of supportedAttributes ) {\n\t\t\t// If the block has mixed binding sources, retain any non pattern override bindings.\n\t\t\tconst bindingSource = bindings[ attributeName ]\n\t\t\t\t? bindings[ attributeName ]\n\t\t\t\t: { source: 'core/pattern-overrides' };\n\t\t\tbindingsWithDefaults[ attributeName ] = bindingSource;\n\t\t}\n\n\t\treturn bindingsWithDefaults;\n\t}\n\n\treturn bindings;\n}\n\n/**\n * Based on the given block name,\n * check if it is possible to bind the block.\n *\n * @param {string} blockName - The block name.\n * @return {boolean} Whether it is possible to bind the block to sources.\n */\nexport function canBindBlock( blockName ) {\n\treturn blockName in BLOCK_BINDINGS_ALLOWED_BLOCKS;\n}\n\n/**\n * Based on the given block name and attribute name,\n * check if it is possible to bind the block attribute.\n *\n * @param {string} blockName - The block name.\n * @param {string} attributeName - The attribute name.\n * @return {boolean} Whether it is possible to bind the block attribute.\n */\nexport function canBindAttribute( blockName, attributeName ) {\n\treturn (\n\t\tcanBindBlock( blockName ) &&\n\t\tBLOCK_BINDINGS_ALLOWED_BLOCKS[ blockName ].includes( attributeName )\n\t);\n}\n\nexport const withBlockBindingSupport = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst registry = useRegistry();\n\t\tconst blockContext = useContext( BlockContext );\n\t\tconst sources = useSelect( ( select ) =>\n\t\t\tunlock( select( blocksStore ) ).getAllBlockBindingsSources()\n\t\t);\n\t\tconst { name, clientId } = props;\n\t\tconst hasParentPattern = !! props.context[ 'pattern/overrides' ];\n\t\tconst hasPatternOverridesDefaultBinding =\n\t\t\tprops.attributes.metadata?.bindings?.[ DEFAULT_ATTRIBUTE ]\n\t\t\t\t?.source === 'core/pattern-overrides';\n\t\tconst blockBindings = useMemo(\n\t\t\t() =>\n\t\t\t\treplacePatternOverrideDefaultBindings(\n\t\t\t\t\tname,\n\t\t\t\t\tprops.attributes.metadata?.bindings\n\t\t\t\t),\n\t\t\t[ props.attributes.metadata?.bindings, name ]\n\t\t);\n\n\t\t// While this hook doesn't directly call any selectors, `useSelect` is\n\t\t// used purposely here to ensure `boundAttributes` is updated whenever\n\t\t// there are attribute updates.\n\t\t// `source.getValues` may also call a selector via `registry.select`.\n\t\tconst boundAttributes = useSelect( () => {\n\t\t\tif ( ! blockBindings ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst attributes = {};\n\n\t\t\tconst blockBindingsBySource = new Map();\n\n\t\t\tfor ( const [ attributeName, binding ] of Object.entries(\n\t\t\t\tblockBindings\n\t\t\t) ) {\n\t\t\t\tconst { source: sourceName, args: sourceArgs } = binding;\n\t\t\t\tconst source = sources[ sourceName ];\n\t\t\t\tif (\n\t\t\t\t\t! source?.getValues ||\n\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tblockBindingsBySource.set( source, {\n\t\t\t\t\t...blockBindingsBySource.get( source ),\n\t\t\t\t\t[ attributeName ]: {\n\t\t\t\t\t\targs: sourceArgs,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( blockBindingsBySource.size ) {\n\t\t\t\tfor ( const [ source, bindings ] of blockBindingsBySource ) {\n\t\t\t\t\t// Populate context.\n\t\t\t\t\tconst context = {};\n\n\t\t\t\t\tif ( source.usesContext?.length ) {\n\t\t\t\t\t\tfor ( const key of source.usesContext ) {\n\t\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get values in batch if the source supports it.\n\t\t\t\t\tconst values = source.getValues( {\n\t\t\t\t\t\tregistry,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tbindings,\n\t\t\t\t\t} );\n\t\t\t\t\tfor ( const [ attributeName, value ] of Object.entries(\n\t\t\t\t\t\tvalues\n\t\t\t\t\t) ) {\n\t\t\t\t\t\t// Use placeholder when value is undefined.\n\t\t\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\t\t\tif ( attributeName === 'url' ) {\n\t\t\t\t\t\t\t\tattributes[ attributeName ] = null;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tattributes[ attributeName ] =\n\t\t\t\t\t\t\t\t\tsource.getPlaceholder?.( {\n\t\t\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\t\tattributeName,\n\t\t\t\t\t\t\t\t\t\targs: bindings[ attributeName ].args,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattributes[ attributeName ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn attributes;\n\t\t}, [ blockBindings, name, clientId, blockContext, registry, sources ] );\n\n\t\tconst { setAttributes } = props;\n\n\t\tconst _setAttributes = useCallback(\n\t\t\t( nextAttributes ) => {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tif ( ! blockBindings ) {\n\t\t\t\t\t\tsetAttributes( nextAttributes );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst keptAttributes = { ...nextAttributes };\n\t\t\t\t\tconst blockBindingsBySource = new Map();\n\n\t\t\t\t\t// Loop only over the updated attributes to avoid modifying the bound ones that haven't changed.\n\t\t\t\t\tfor ( const [ attributeName, newValue ] of Object.entries(\n\t\t\t\t\t\tkeptAttributes\n\t\t\t\t\t) ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! blockBindings[ attributeName ] ||\n\t\t\t\t\t\t\t! canBindAttribute( name, attributeName )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst binding = blockBindings[ attributeName ];\n\t\t\t\t\t\tconst source = sources[ binding?.source ];\n\t\t\t\t\t\tif ( ! source?.setValues ) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblockBindingsBySource.set( source, {\n\t\t\t\t\t\t\t...blockBindingsBySource.get( source ),\n\t\t\t\t\t\t\t[ attributeName ]: {\n\t\t\t\t\t\t\t\targs: binding.args,\n\t\t\t\t\t\t\t\tnewValue,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tdelete keptAttributes[ attributeName ];\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( blockBindingsBySource.size ) {\n\t\t\t\t\t\tfor ( const [\n\t\t\t\t\t\t\tsource,\n\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t] of blockBindingsBySource ) {\n\t\t\t\t\t\t\t// Populate context.\n\t\t\t\t\t\t\tconst context = {};\n\n\t\t\t\t\t\t\tif ( source.usesContext?.length ) {\n\t\t\t\t\t\t\t\tfor ( const key of source.usesContext ) {\n\t\t\t\t\t\t\t\t\tcontext[ key ] = blockContext[ key ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsource.setValues( {\n\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t\tcontext,\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Don't update non-connected attributes if the block is using pattern overrides\n\t\t\t\t\t\t// and the editing is happening while overriding the pattern (not editing the original).\n\t\t\t\t\t\t! (\n\t\t\t\t\t\t\thasPatternOverridesDefaultBinding &&\n\t\t\t\t\t\t\thasParentPattern\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\tObject.keys( keptAttributes ).length\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Don't update caption and href until they are supported.\n\t\t\t\t\t\tif ( hasPatternOverridesDefaultBinding ) {\n\t\t\t\t\t\t\tdelete keptAttributes?.caption;\n\t\t\t\t\t\t\tdelete keptAttributes?.href;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetAttributes( keptAttributes );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t},\n\t\t\t[\n\t\t\t\tregistry,\n\t\t\t\tblockBindings,\n\t\t\t\tname,\n\t\t\t\tclientId,\n\t\t\t\tblockContext,\n\t\t\t\tsetAttributes,\n\t\t\t\tsources,\n\t\t\t\thasPatternOverridesDefaultBinding,\n\t\t\t\thasParentPattern,\n\t\t\t]\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tattributes={ { ...props.attributes, ...boundAttributes } }\n\t\t\t\t\tsetAttributes={ _setAttributes }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t},\n\t'withBlockBindingSupport'\n);\n\n/**\n * Filters a registered block's settings to enhance a block's `edit` component\n * to upgrade bound attributes.\n *\n * @param {WPBlockSettings} settings - Registered block settings.\n * @param {string} name - Block name.\n * @return {WPBlockSettings} Filtered block settings.\n */\nfunction shimAttributeSource( settings, name ) {\n\tif ( ! canBindBlock( name ) ) {\n\t\treturn settings;\n\t}\n\n\treturn {\n\t\t...settings,\n\t\tedit: withBlockBindingSupport( settings.edit ),\n\t};\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/custom-sources-backwards-compatibility/shim-attribute-source',\n\tshimAttributeSource\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -199,15 +199,19 @@ export default {
|
|
|
199
199
|
const paddingValues = getCSSRules(style);
|
|
200
200
|
paddingValues.forEach(rule => {
|
|
201
201
|
if (rule.key === 'paddingRight') {
|
|
202
|
+
// Add unit if 0, to avoid calc(0 * -1) which is invalid.
|
|
203
|
+
const paddingRightValue = rule.value === '0' ? '0px' : rule.value;
|
|
202
204
|
output += `
|
|
203
205
|
${appendSelectors(selector, '> .alignfull')} {
|
|
204
|
-
margin-right: calc(${
|
|
206
|
+
margin-right: calc(${paddingRightValue} * -1);
|
|
205
207
|
}
|
|
206
208
|
`;
|
|
207
209
|
} else if (rule.key === 'paddingLeft') {
|
|
210
|
+
// Add unit if 0, to avoid calc(0 * -1) which is invalid.
|
|
211
|
+
const paddingLeftValue = rule.value === '0' ? '0px' : rule.value;
|
|
208
212
|
output += `
|
|
209
213
|
${appendSelectors(selector, '> .alignfull')} {
|
|
210
|
-
margin-left: calc(${
|
|
214
|
+
margin-left: calc(${paddingLeftValue} * -1);
|
|
211
215
|
}
|
|
212
216
|
`;
|
|
213
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalUseCustomUnits","useCustomUnits","__experimentalUnitControl","UnitControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOptionIcon","ToggleGroupControlOptionIcon","__","Icon","positionCenter","stretchWide","justifyLeft","justifyCenter","justifyRight","getCSSRules","useSettings","appendSelectors","getBlockGapCSS","getAlignmentsInfo","getGapCSSValue","BlockControls","JustifyContentControl","shouldSkipSerialization","LAYOUT_DEFINITIONS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","name","label","inspectorControls","DefaultLayoutInspectorControls","layout","onChange","layoutBlockSupport","wideSize","contentSize","justifyContent","allowJustification","allowCustomContentAndWideSize","onJustificationChange","value","justificationOptions","icon","availableUnits","units","children","className","labelPosition","__unstableInputWidth","nextWidth","parseFloat","__nextHasNoMarginBottom","map","toolBarControls","DefaultLayoutToolbarControls","group","__experimentalShareWithChildBlocks","DefaultLayoutJustifyContentControl","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","blockGapStyleValue","spacing","blockGap","blockGapValue","top","marginLeft","marginRight","output","padding","paddingValues","forEach","rule","key","getOrientation","getAlignments","alignmentInfo","alignments","undefined","includes","unshift","alignment","info","wide","none","POPOVER_PROPS","placement","allowedControls","popoverProps"],"sources":["@wordpress/block-editor/src/layouts/constrained.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIcon,\n\tpositionCenter,\n\tstretchWide,\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n} from '@wordpress/icons';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { BlockControls, JustifyContentControl } from '../components';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nexport default {\n\tname: 'constrained',\n\tlabel: __( 'Constrained' ),\n\tinspectorControls: function DefaultLayoutInspectorControls( {\n\t\tlayout,\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { wideSize, contentSize, justifyContent = 'center' } = layout;\n\t\tconst {\n\t\t\tallowJustification = true,\n\t\t\tallowCustomContentAndWideSize = true,\n\t\t} = layoutBlockSupport;\n\t\tconst onJustificationChange = ( value ) => {\n\t\t\tonChange( {\n\t\t\t\t...layout,\n\t\t\t\tjustifyContent: value,\n\t\t\t} );\n\t\t};\n\t\tconst justificationOptions = [\n\t\t\t{\n\t\t\t\tvalue: 'left',\n\t\t\t\ticon: justifyLeft,\n\t\t\t\tlabel: __( 'Justify items left' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'center',\n\t\t\t\ticon: justifyCenter,\n\t\t\t\tlabel: __( 'Justify items center' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'right',\n\t\t\t\ticon: justifyRight,\n\t\t\t\tlabel: __( 'Justify items right' ),\n\t\t\t},\n\t\t];\n\t\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\t\tconst units = useCustomUnits( {\n\t\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t\t} );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ allowCustomContentAndWideSize && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls\">\n\t\t\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\t\tvalue={ contentSize || wideSize || '' }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\tcontentSize: nextWidth,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\t\tvalue={ wideSize || contentSize || '' }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\twideSize: nextWidth,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<p className=\"block-editor-hooks__layout-controls-helptext\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Customize the width for all elements that are assigned to the center or wide columns.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ justificationOptions.map(\n\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tconst { allowJustification = true } = layoutBlockSupport;\n\n\t\tif ( ! allowJustification ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<DefaultLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\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 { contentSize, wideSize, justifyContent } = layout;\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tconst marginLeft =\n\t\t\tjustifyContent === 'left' ? '0 !important' : 'auto !important';\n\t\tconst marginRight =\n\t\t\tjustifyContent === 'right' ? '0 !important' : 'auto !important';\n\n\t\tlet output =\n\t\t\t!! contentSize || !! wideSize\n\t\t\t\t? `\n\t\t\t\t\t${ appendSelectors(\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t\t) } {\n\t\t\t\t\t\tmax-width: ${ contentSize ?? wideSize };\n\t\t\t\t\t\tmargin-left: ${ marginLeft };\n\t\t\t\t\t\tmargin-right: ${ marginRight };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignwide' ) } {\n\t\t\t\t\t\tmax-width: ${ wideSize ?? contentSize };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t`\n\t\t\t\t: '';\n\n\t\tif ( justifyContent === 'left' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-left: ${ marginLeft }; }`;\n\t\t} else if ( justifyContent === 'right' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-right: ${ marginRight }; }`;\n\t\t}\n\n\t\t// If there is custom padding, add negative margins for alignfull blocks.\n\t\tif ( style?.spacing?.padding ) {\n\t\t\t// The style object might be storing a preset so we need to make sure we get a usable value.\n\t\t\tconst paddingValues = getCSSRules( style );\n\t\t\tpaddingValues.forEach( ( rule ) => {\n\t\t\t\tif ( rule.key === 'paddingRight' ) {\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-right: calc(${ rule.value } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t} else if ( rule.key === 'paddingLeft' ) {\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-left: calc(${ rule.value } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\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'constrained',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\t\tconst { contentSize, wideSize } = layout;\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\tif ( contentSize ) {\n\t\t\talignments.unshift( { name: 'full' } );\n\t\t}\n\n\t\tif ( wideSize ) {\n\t\t\talignments.unshift( { name: 'wide', info: alignmentInfo.wide } );\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction DefaultLayoutJustifyContentControl( { layout, onChange } ) {\n\tconst { justifyContent = 'center' } = 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\n\treturn (\n\t\t<JustifyContentControl\n\t\t\tallowedControls={ allowedControls }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__experimentalUseCustomUnits","useCustomUnits","__experimentalUnitControl","UnitControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOptionIcon","ToggleGroupControlOptionIcon","__","Icon","positionCenter","stretchWide","justifyLeft","justifyCenter","justifyRight","getCSSRules","useSettings","appendSelectors","getBlockGapCSS","getAlignmentsInfo","getGapCSSValue","BlockControls","JustifyContentControl","shouldSkipSerialization","LAYOUT_DEFINITIONS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","name","label","inspectorControls","DefaultLayoutInspectorControls","layout","onChange","layoutBlockSupport","wideSize","contentSize","justifyContent","allowJustification","allowCustomContentAndWideSize","onJustificationChange","value","justificationOptions","icon","availableUnits","units","children","className","labelPosition","__unstableInputWidth","nextWidth","parseFloat","__nextHasNoMarginBottom","map","toolBarControls","DefaultLayoutToolbarControls","group","__experimentalShareWithChildBlocks","DefaultLayoutJustifyContentControl","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","blockGapStyleValue","spacing","blockGap","blockGapValue","top","marginLeft","marginRight","output","padding","paddingValues","forEach","rule","key","paddingRightValue","paddingLeftValue","getOrientation","getAlignments","alignmentInfo","alignments","undefined","includes","unshift","alignment","info","wide","none","POPOVER_PROPS","placement","allowedControls","popoverProps"],"sources":["@wordpress/block-editor/src/layouts/constrained.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIcon,\n\tpositionCenter,\n\tstretchWide,\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n} from '@wordpress/icons';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { BlockControls, JustifyContentControl } from '../components';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nexport default {\n\tname: 'constrained',\n\tlabel: __( 'Constrained' ),\n\tinspectorControls: function DefaultLayoutInspectorControls( {\n\t\tlayout,\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { wideSize, contentSize, justifyContent = 'center' } = layout;\n\t\tconst {\n\t\t\tallowJustification = true,\n\t\t\tallowCustomContentAndWideSize = true,\n\t\t} = layoutBlockSupport;\n\t\tconst onJustificationChange = ( value ) => {\n\t\t\tonChange( {\n\t\t\t\t...layout,\n\t\t\t\tjustifyContent: value,\n\t\t\t} );\n\t\t};\n\t\tconst justificationOptions = [\n\t\t\t{\n\t\t\t\tvalue: 'left',\n\t\t\t\ticon: justifyLeft,\n\t\t\t\tlabel: __( 'Justify items left' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'center',\n\t\t\t\ticon: justifyCenter,\n\t\t\t\tlabel: __( 'Justify items center' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'right',\n\t\t\t\ticon: justifyRight,\n\t\t\t\tlabel: __( 'Justify items right' ),\n\t\t\t},\n\t\t];\n\t\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\t\tconst units = useCustomUnits( {\n\t\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t\t} );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ allowCustomContentAndWideSize && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls\">\n\t\t\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\t\tvalue={ contentSize || wideSize || '' }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\tcontentSize: nextWidth,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\t\tvalue={ wideSize || contentSize || '' }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\t\twideSize: nextWidth,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<p className=\"block-editor-hooks__layout-controls-helptext\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Customize the width for all elements that are assigned to the center or wide columns.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ justificationOptions.map(\n\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport,\n\t} ) {\n\t\tconst { allowJustification = true } = layoutBlockSupport;\n\n\t\tif ( ! allowJustification ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<BlockControls group=\"block\" __experimentalShareWithChildBlocks>\n\t\t\t\t<DefaultLayoutJustifyContentControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\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 { contentSize, wideSize, justifyContent } = layout;\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tconst marginLeft =\n\t\t\tjustifyContent === 'left' ? '0 !important' : 'auto !important';\n\t\tconst marginRight =\n\t\t\tjustifyContent === 'right' ? '0 !important' : 'auto !important';\n\n\t\tlet output =\n\t\t\t!! contentSize || !! wideSize\n\t\t\t\t? `\n\t\t\t\t\t${ appendSelectors(\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t\t) } {\n\t\t\t\t\t\tmax-width: ${ contentSize ?? wideSize };\n\t\t\t\t\t\tmargin-left: ${ marginLeft };\n\t\t\t\t\t\tmargin-right: ${ marginRight };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignwide' ) } {\n\t\t\t\t\t\tmax-width: ${ wideSize ?? contentSize };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t`\n\t\t\t\t: '';\n\n\t\tif ( justifyContent === 'left' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-left: ${ marginLeft }; }`;\n\t\t} else if ( justifyContent === 'right' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-right: ${ marginRight }; }`;\n\t\t}\n\n\t\t// If there is custom padding, add negative margins for alignfull blocks.\n\t\tif ( style?.spacing?.padding ) {\n\t\t\t// The style object might be storing a preset so we need to make sure we get a usable value.\n\t\t\tconst paddingValues = getCSSRules( style );\n\t\t\tpaddingValues.forEach( ( rule ) => {\n\t\t\t\tif ( rule.key === 'paddingRight' ) {\n\t\t\t\t\t// Add unit if 0, to avoid calc(0 * -1) which is invalid.\n\t\t\t\t\tconst paddingRightValue =\n\t\t\t\t\t\trule.value === '0' ? '0px' : rule.value;\n\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-right: calc(${ paddingRightValue } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t} else if ( rule.key === 'paddingLeft' ) {\n\t\t\t\t\t// Add unit if 0, to avoid calc(0 * -1) which is invalid.\n\t\t\t\t\tconst paddingLeftValue =\n\t\t\t\t\t\trule.value === '0' ? '0px' : rule.value;\n\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-left: calc(${ paddingLeftValue } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\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'constrained',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\t\tconst { contentSize, wideSize } = layout;\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\tif ( contentSize ) {\n\t\t\talignments.unshift( { name: 'full' } );\n\t\t}\n\n\t\tif ( wideSize ) {\n\t\t\talignments.unshift( { name: 'wide', info: alignmentInfo.wide } );\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n\nconst POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\nfunction DefaultLayoutJustifyContentControl( { layout, onChange } ) {\n\tconst { justifyContent = 'center' } = 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\n\treturn (\n\t\t<JustifyContentControl\n\t\t\tallowedControls={ allowedControls }\n\t\t\tvalue={ justifyContent }\n\t\t\tonChange={ onJustificationChange }\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -221,6 +221,7 @@ function GridLayoutMinimumWidthControl({
|
|
|
221
221
|
}), /*#__PURE__*/_jsx(FlexItem, {
|
|
222
222
|
isBlock: true,
|
|
223
223
|
children: /*#__PURE__*/_jsx(RangeControl, {
|
|
224
|
+
__nextHasNoMarginBottom: true,
|
|
224
225
|
onChange: handleSliderChange,
|
|
225
226
|
value: quantity || 0,
|
|
226
227
|
min: 0,
|
|
@@ -297,6 +298,7 @@ function GridLayoutColumnsAndRowsControl({
|
|
|
297
298
|
min: 0,
|
|
298
299
|
label: __('Rows')
|
|
299
300
|
}) : /*#__PURE__*/_jsx(RangeControl, {
|
|
301
|
+
__nextHasNoMarginBottom: true,
|
|
300
302
|
value: columnCount !== null && columnCount !== void 0 ? columnCount : 0,
|
|
301
303
|
onChange: value => onChange({
|
|
302
304
|
...layout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","BaseControl","Flex","FlexItem","RangeControl","__experimentalNumberControl","NumberControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useState","appendSelectors","getBlockGapCSS","getGapCSSValue","shouldSkipSerialization","LAYOUT_DEFINITIONS","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","RANGE_CONTROL_MAX_VALUES","px","vw","vh","em","rem","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","units","value","label","default","name","inspectorControls","GridLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowSizingOnChildren","showColumnsControl","window","__experimentalEnableGridInteractivity","columnCount","showMinWidthControl","children","GridLayoutTypeControl","GridLayoutColumnsAndRowsControl","GridLayoutMinimumWidthControl","toolBarControls","GridLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","minimumColumnWidth","rowCount","process","env","NODE_ENV","Error","blockGapValue","spacing","blockGap","undefined","output","rules","maxValue","push","length","join","getOrientation","getAlignments","isManualPlacement","defaultValue","quantity","unit","handleSliderChange","next","handleUnitChange","newUnit","newValue","includes","toFixed","Math","round","VisualLabel","as","gap","isBlock","size","onUnitChange","min","hideLabelFromVision","max","withInputField","defaultColumnCount","defaultNewColumnCount","newColumnCount","parseInt","newRowCount","tempColumnCount","setTempColumnCount","tempRowCount","setTempRowCount","tempMinimumColumnWidth","setTempMinimumColumnWidth","gridPlacement","onChangeType","helpText","__nextHasNoMarginBottom","help"],"sources":["@wordpress/block-editor/src/layouts/grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tBaseControl,\n\tFlex,\n\tFlexItem,\n\tRangeControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nconst RANGE_CONTROL_MAX_VALUES = {\n\tpx: 600,\n\t'%': 100,\n\tvw: 100,\n\tvh: 100,\n\tem: 38,\n\trem: 38,\n\tsvw: 100,\n\tlvw: 100,\n\tdvw: 100,\n\tsvh: 100,\n\tlvh: 100,\n\tdvh: 100,\n\tvi: 100,\n\tsvi: 100,\n\tlvi: 100,\n\tdvi: 100,\n\tvb: 100,\n\tsvb: 100,\n\tlvb: 100,\n\tdvb: 100,\n\tvmin: 100,\n\tsvmin: 100,\n\tlvmin: 100,\n\tdvmin: 100,\n\tvmax: 100,\n\tsvmax: 100,\n\tlvmax: 100,\n\tdvmax: 100,\n};\n\nconst units = [\n\t{ value: 'px', label: 'px', default: 0 },\n\t{ value: 'rem', label: 'rem', default: 0 },\n\t{ value: 'em', label: 'em', default: 0 },\n];\n\nexport default {\n\tname: 'grid',\n\tlabel: __( 'Grid' ),\n\tinspectorControls: function GridLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowSizingOnChildren = false } = layoutBlockSupport;\n\n\t\t// In the experiment we want to also show column control in Auto mode, and\n\t\t// the minimum width control in Manual mode.\n\t\tconst showColumnsControl =\n\t\t\twindow.__experimentalEnableGridInteractivity || layout?.columnCount;\n\t\tconst showMinWidthControl =\n\t\t\twindow.__experimentalEnableGridInteractivity ||\n\t\t\t! layout?.columnCount;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<GridLayoutTypeControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t<GridLayoutColumnsAndRowsControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ showMinWidthControl && (\n\t\t\t\t\t<GridLayoutMinimumWidthControl\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</>\n\t\t);\n\t},\n\ttoolBarControls: function GridLayoutToolbarControls() {\n\t\treturn null;\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 {\n\t\t\tminimumColumnWidth = null,\n\t\t\tcolumnCount = null,\n\t\t\trowCount = null,\n\t\t} = layout;\n\n\t\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t\t// write code that stores a string attribute instead of a number.\n\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\tif (\n\t\t\t\tminimumColumnWidth &&\n\t\t\t\ttypeof minimumColumnWidth !== 'string'\n\t\t\t) {\n\t\t\t\tthrow new Error( 'minimumColumnWidth must be a string' );\n\t\t\t}\n\t\t\tif ( columnCount && typeof columnCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'columnCount must be a number' );\n\t\t\t}\n\t\t\tif ( rowCount && typeof rowCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'rowCount must be a number' );\n\t\t\t}\n\t\t}\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\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( minimumColumnWidth && columnCount > 0 ) {\n\t\t\tconst maxValue = `max(${ minimumColumnWidth }, ( 100% - (${\n\t\t\t\tblockGapValue || '1.2rem'\n\t\t\t}*${ columnCount - 1 }) ) / ${ columnCount })`;\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(${ maxValue }, 1fr))`,\n\t\t\t\t`container-type: inline-size`\n\t\t\t);\n\t\t\tif ( rowCount ) {\n\t\t\t\trules.push(\n\t\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( columnCount ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`\n\t\t\t);\n\t\t\tif ( rowCount ) {\n\t\t\t\trules.push(\n\t\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(min(${\n\t\t\t\t\tminimumColumnWidth || '12rem'\n\t\t\t\t}, 100%), 1fr))`,\n\t\t\t\t'container-type: inline-size'\n\t\t\t);\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\t// Reason to disable: the extra line breaks added by prettier mess with the unit tests.\n\t\t\t// eslint-disable-next-line prettier/prettier\n\t\t\toutput = `${ appendSelectors( selector ) } { ${ rules.join(\n\t\t\t\t'; '\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'grid',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'horizontal';\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\n// Enables setting minimum width of grid items.\nfunction GridLayoutMinimumWidthControl( { layout, onChange } ) {\n\tconst { minimumColumnWidth, columnCount, isManualPlacement } = layout;\n\tconst defaultValue = isManualPlacement || columnCount ? null : '12rem';\n\tconst value = minimumColumnWidth || defaultValue;\n\tconst [ quantity, unit = 'rem' ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: [ next, unit ].join( '' ),\n\t\t} );\n\t};\n\n\t// Mostly copied from HeightControl.\n\tconst handleUnitChange = ( newUnit ) => {\n\t\t// Attempt to smooth over differences between currentUnit and newUnit.\n\t\t// This should slightly improve the experience of switching between unit types.\n\t\tlet newValue;\n\n\t\tif ( [ 'em', 'rem' ].includes( newUnit ) && unit === 'px' ) {\n\t\t\t// Convert pixel value to an approximate of the new unit, assuming a root size of 16px.\n\t\t\tnewValue = ( quantity / 16 ).toFixed( 2 ) + newUnit;\n\t\t} else if ( [ 'em', 'rem' ].includes( unit ) && newUnit === 'px' ) {\n\t\t\t// Convert to pixel value assuming a root size of 16px.\n\t\t\tnewValue = Math.round( quantity * 16 ) + newUnit;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<fieldset>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Minimum column width' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Flex gap={ 4 }>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\tminimumColumnWidth:\n\t\t\t\t\t\t\t\t\tnewValue === '' ? undefined : newValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\tvalue={ quantity || 0 }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</fieldset>\n\t);\n}\n\n// Enables setting number of grid columns\nfunction GridLayoutColumnsAndRowsControl( {\n\tlayout,\n\tonChange,\n\tallowSizingOnChildren,\n} ) {\n\t// If the grid interactivity experiment is enabled, allow unsetting the column count.\n\tconst defaultColumnCount = window.__experimentalEnableGridInteractivity\n\t\t? undefined\n\t\t: 3;\n\tconst {\n\t\tcolumnCount = defaultColumnCount,\n\t\trowCount,\n\t\tisManualPlacement,\n\t} = layout;\n\n\treturn (\n\t\t<>\n\t\t\t<fieldset>\n\t\t\t\t{ ( ! window.__experimentalEnableGridInteractivity ||\n\t\t\t\t\t! isManualPlacement ) && (\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Columns' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t) }\n\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t// Allow unsetting the column count when in auto mode.\n\t\t\t\t\t\t\t\t\tconst defaultNewColumnCount =\n\t\t\t\t\t\t\t\t\t\tisManualPlacement ? 1 : undefined;\n\t\t\t\t\t\t\t\t\tconst newColumnCount =\n\t\t\t\t\t\t\t\t\t\tvalue === ''\n\t\t\t\t\t\t\t\t\t\t\t? defaultNewColumnCount\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount: newColumnCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// Don't allow unsetting the column count.\n\t\t\t\t\t\t\t\t\tconst newColumnCount =\n\t\t\t\t\t\t\t\t\t\tvalue === ''\n\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount: newColumnCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t! window.__experimentalEnableGridInteractivity ||\n\t\t\t\t\t\t\t\t! isManualPlacement\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t{ window.__experimentalEnableGridInteractivity &&\n\t\t\t\t\t\tallowSizingOnChildren &&\n\t\t\t\t\t\tisManualPlacement ? (\n\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t// Don't allow unsetting the row count.\n\t\t\t\t\t\t\t\t\tconst newRowCount =\n\t\t\t\t\t\t\t\t\t\tvalue === ''\n\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\trowCount: newRowCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tvalue={ rowCount }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tvalue={ columnCount ?? 0 }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\thideLabelFromVision\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</fieldset>\n\t\t</>\n\t);\n}\n\n// Enables switching between grid types\nfunction GridLayoutTypeControl( { layout, onChange } ) {\n\tconst { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =\n\t\tlayout;\n\n\t/**\n\t * When switching, temporarily save any custom values set on the\n\t * previous type so we can switch back without loss.\n\t */\n\tconst [ tempColumnCount, setTempColumnCount ] = useState(\n\t\tcolumnCount || 3\n\t);\n\tconst [ tempRowCount, setTempRowCount ] = useState( rowCount );\n\tconst [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(\n\t\tminimumColumnWidth || '12rem'\n\t);\n\n\tconst gridPlacement =\n\t\tisManualPlacement ||\n\t\t( !! columnCount && ! window.__experimentalEnableGridInteractivity )\n\t\t\t? 'manual'\n\t\t\t: 'auto';\n\n\tconst onChangeType = ( value ) => {\n\t\tif ( value === 'manual' ) {\n\t\t\tsetTempMinimumColumnWidth( minimumColumnWidth || '12rem' );\n\t\t} else {\n\t\t\tsetTempColumnCount( columnCount || 3 );\n\t\t\tsetTempRowCount( rowCount );\n\t\t}\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tcolumnCount: value === 'manual' ? tempColumnCount : null,\n\t\t\trowCount:\n\t\t\t\tvalue === 'manual' &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t? tempRowCount\n\t\t\t\t\t: undefined,\n\t\t\tisManualPlacement:\n\t\t\t\tvalue === 'manual' &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t? true\n\t\t\t\t\t: undefined,\n\t\t\tminimumColumnWidth:\n\t\t\t\tvalue === 'auto' ? tempMinimumColumnWidth : null,\n\t\t} );\n\t};\n\n\tconst helpText =\n\t\tgridPlacement === 'manual'\n\t\t\t? __(\n\t\t\t\t\t'Grid items can be manually placed in any position on the grid.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'Grid items are placed automatically depending on their order.'\n\t\t\t );\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Grid item position' ) }\n\t\t\tvalue={ gridPlacement }\n\t\t\tonChange={ onChangeType }\n\t\t\tisBlock\n\t\t\thelp={\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t? helpText\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"auto\"\n\t\t\t\tvalue=\"auto\"\n\t\t\t\tlabel={ __( 'Auto' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"manual\"\n\t\t\t\tvalue=\"manual\"\n\t\t\t\tlabel={ __( 'Manual' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AAEpC,SACCC,WAAW,EACXC,IAAI,EACJC,QAAQ,EACRC,YAAY,EACZC,2BAA2B,IAAIC,aAAa,EAC5CC,gCAAgC,IAAIC,kBAAkB,EACtDC,sCAAsC,IAAIC,wBAAwB,EAClEC,yBAAyB,IAAIC,WAAW,EACxCC,8CAA8C,IAAIC,gCAAgC,QAC5E,uBAAuB;AAC9B,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,SAASC,eAAe,EAAEC,cAAc,QAAQ,SAAS;AACzD,SAASC,cAAc,QAAQ,cAAc;AAC7C,SAASC,uBAAuB,QAAQ,gBAAgB;AACxD,SAASC,kBAAkB,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEnD,MAAMC,wBAAwB,GAAG;EAChCC,EAAE,EAAE,GAAG;EACP,GAAG,EAAE,GAAG;EACRC,EAAE,EAAE,GAAG;EACPC,EAAE,EAAE,GAAG;EACPC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE,EAAE;EACPC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,EAAE,EAAE,GAAG;EACPC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,EAAE,EAAE,GAAG;EACPC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,GAAG,EAAE,GAAG;EACRC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,IAAI,EAAE,GAAG;EACTC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE;AACR,CAAC;AAED,MAAMC,KAAK,GAAG,CACb;EAAEC,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAE,CAAC,EACxC;EAAEF,KAAK,EAAE,KAAK;EAAEC,KAAK,EAAE,KAAK;EAAEC,OAAO,EAAE;AAAE,CAAC,EAC1C;EAAEF,KAAK,EAAE,IAAI;EAAEC,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAE,CAAC,CACxC;AAED,eAAe;EACdC,IAAI,EAAE,MAAM;EACZF,KAAK,EAAEzD,EAAE,CAAE,MAAO,CAAC;EACnB4D,iBAAiB,EAAE,SAASC,2BAA2BA,CAAE;IACxDC,MAAM,GAAG,CAAC,CAAC;IACXC,QAAQ;IACRC,kBAAkB,GAAG,CAAC;EACvB,CAAC,EAAG;IACH,MAAM;MAAEC,qBAAqB,GAAG;IAAM,CAAC,GAAGD,kBAAkB;;IAE5D;IACA;IACA,MAAME,kBAAkB,GACvBC,MAAM,CAACC,qCAAqC,IAAIN,MAAM,EAAEO,WAAW;IACpE,MAAMC,mBAAmB,GACxBH,MAAM,CAACC,qCAAqC,IAC5C,CAAEN,MAAM,EAAEO,WAAW;IACtB,oBACC3C,KAAA,CAAAF,SAAA;MAAA+C,QAAA,gBACCjD,IAAA,CAACkD,qBAAqB;QACrBV,MAAM,EAAGA,MAAQ;QACjBC,QAAQ,EAAGA;MAAU,CACrB,CAAC,EACAG,kBAAkB,iBACnB5C,IAAA,CAACmD,+BAA+B;QAC/BX,MAAM,EAAGA,MAAQ;QACjBC,QAAQ,EAAGA,QAAU;QACrBE,qBAAqB,EAAGA;MAAuB,CAC/C,CACD,EACCK,mBAAmB,iBACpBhD,IAAA,CAACoD,6BAA6B;QAC7BZ,MAAM,EAAGA,MAAQ;QACjBC,QAAQ,EAAGA;MAAU,CACrB,CACD;IAAA,CACA,CAAC;EAEL,CAAC;EACDY,eAAe,EAAE,SAASC,yBAAyBA,CAAA,EAAG;IACrD,OAAO,IAAI;EACZ,CAAC;EACDC,cAAc,EAAE,SAASA,cAAcA,CAAE;IACxCC,QAAQ;IACRhB,MAAM;IACNiB,KAAK;IACLC,SAAS;IACTC,kBAAkB;IAClBC,iBAAiB,GAAG9D;EACrB,CAAC,EAAG;IACH,MAAM;MACL+D,kBAAkB,GAAG,IAAI;MACzBd,WAAW,GAAG,IAAI;MAClBe,QAAQ,GAAG;IACZ,CAAC,GAAGtB,MAAM;;IAEV;IACA;IACA,IAAKuB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAG;MAC7C,IACCJ,kBAAkB,IAClB,OAAOA,kBAAkB,KAAK,QAAQ,EACrC;QACD,MAAM,IAAIK,KAAK,CAAE,qCAAsC,CAAC;MACzD;MACA,IAAKnB,WAAW,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAG;QACrD,MAAM,IAAImB,KAAK,CAAE,8BAA+B,CAAC;MAClD;MACA,IAAKJ,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAG;QAC/C,MAAM,IAAII,KAAK,CAAE,2BAA4B,CAAC;MAC/C;IACD;;IAEA;IACA;IACA,MAAMC,aAAa,GAClBV,KAAK,EAAEW,OAAO,EAAEC,QAAQ,IACxB,CAAExE,uBAAuB,CAAE6D,SAAS,EAAE,SAAS,EAAE,UAAW,CAAC,GAC1D9D,cAAc,CAAE6D,KAAK,EAAEW,OAAO,EAAEC,QAAQ,EAAE,OAAQ,CAAC,GACnDC,SAAS;IAEb,IAAIC,MAAM,GAAG,EAAE;IACf,MAAMC,KAAK,GAAG,EAAE;IAEhB,IAAKX,kBAAkB,IAAId,WAAW,GAAG,CAAC,EAAG;MAC5C,MAAM0B,QAAQ,GAAI,OAAOZ,kBAAoB,eAC5CM,aAAa,IAAI,QACjB,IAAIpB,WAAW,GAAG,CAAG,SAASA,WAAa,GAAE;MAC9CyB,KAAK,CAACE,IAAI,CACR,mDAAmDD,QAAU,SAAQ,EACrE,6BACF,CAAC;MACD,IAAKX,QAAQ,EAAG;QACfU,KAAK,CAACE,IAAI,CACR,8BAA8BZ,QAAU,uBAC1C,CAAC;MACF;IACD,CAAC,MAAM,IAAKf,WAAW,EAAG;MACzByB,KAAK,CAACE,IAAI,CACR,iCAAiC3B,WAAa,mBAChD,CAAC;MACD,IAAKe,QAAQ,EAAG;QACfU,KAAK,CAACE,IAAI,CACR,8BAA8BZ,QAAU,uBAC1C,CAAC;MACF;IACD,CAAC,MAAM;MACNU,KAAK,CAACE,IAAI,CACR,uDACAb,kBAAkB,IAAI,OACtB,gBAAe,EAChB,6BACD,CAAC;IACF;IAEA,IAAKW,KAAK,CAACG,MAAM,EAAG;MACnB;MACA;MACAJ,MAAM,GAAI,GAAG7E,eAAe,CAAE8D,QAAS,CAAG,MAAMgB,KAAK,CAACI,IAAI,CACzD,IACD,CAAG,KAAI;IACR;;IAEA;IACA,IAAKjB,kBAAkB,IAAIQ,aAAa,EAAG;MAC1CI,MAAM,IAAI5E,cAAc,CACvB6D,QAAQ,EACRI,iBAAiB,EACjB,MAAM,EACNO,aACD,CAAC;IACF;IACA,OAAOI,MAAM;EACd,CAAC;EACDM,cAAcA,CAAA,EAAG;IAChB,OAAO,YAAY;EACpB,CAAC;EACDC,aAAaA,CAAA,EAAG;IACf,OAAO,EAAE;EACV;AACD,CAAC;;AAED;AACA,SAAS1B,6BAA6BA,CAAE;EAAEZ,MAAM;EAAEC;AAAS,CAAC,EAAG;EAC9D,MAAM;IAAEoB,kBAAkB;IAAEd,WAAW;IAAEgC;EAAkB,CAAC,GAAGvC,MAAM;EACrE,MAAMwC,YAAY,GAAGD,iBAAiB,IAAIhC,WAAW,GAAG,IAAI,GAAG,OAAO;EACtE,MAAMb,KAAK,GAAG2B,kBAAkB,IAAImB,YAAY;EAChD,MAAM,CAAEC,QAAQ,EAAEC,IAAI,GAAG,KAAK,CAAE,GAC/B1F,gCAAgC,CAAE0C,KAAM,CAAC;EAE1C,MAAMiD,kBAAkB,GAAKC,IAAI,IAAM;IACtC3C,QAAQ,CAAE;MACT,GAAGD,MAAM;MACTqB,kBAAkB,EAAE,CAAEuB,IAAI,EAAEF,IAAI,CAAE,CAACN,IAAI,CAAE,EAAG;IAC7C,CAAE,CAAC;EACJ,CAAC;;EAED;EACA,MAAMS,gBAAgB,GAAKC,OAAO,IAAM;IACvC;IACA;IACA,IAAIC,QAAQ;IAEZ,IAAK,CAAE,IAAI,EAAE,KAAK,CAAE,CAACC,QAAQ,CAAEF,OAAQ,CAAC,IAAIJ,IAAI,KAAK,IAAI,EAAG;MAC3D;MACAK,QAAQ,GAAG,CAAEN,QAAQ,GAAG,EAAE,EAAGQ,OAAO,CAAE,CAAE,CAAC,GAAGH,OAAO;IACpD,CAAC,MAAM,IAAK,CAAE,IAAI,EAAE,KAAK,CAAE,CAACE,QAAQ,CAAEN,IAAK,CAAC,IAAII,OAAO,KAAK,IAAI,EAAG;MAClE;MACAC,QAAQ,GAAGG,IAAI,CAACC,KAAK,CAAEV,QAAQ,GAAG,EAAG,CAAC,GAAGK,OAAO;IACjD;IAEA7C,QAAQ,CAAE;MACT,GAAGD,MAAM;MACTqB,kBAAkB,EAAE0B;IACrB,CAAE,CAAC;EACJ,CAAC;EAED,oBACCnF,KAAA;IAAA6C,QAAA,gBACCjD,IAAA,CAACrB,WAAW,CAACiH,WAAW;MAACC,EAAE,EAAC,QAAQ;MAAA5C,QAAA,EACjCvE,EAAE,CAAE,sBAAuB;IAAC,CACN,CAAC,eAC1B0B,KAAA,CAACxB,IAAI;MAACkH,GAAG,EAAG,CAAG;MAAA7C,QAAA,gBACdjD,IAAA,CAACnB,QAAQ;QAACkH,OAAO;QAAA9C,QAAA,eAChBjD,IAAA,CAACV,WAAW;UACX0G,IAAI,EAAC,kBAAkB;UACvBvD,QAAQ,EAAK8C,QAAQ,IAAM;YAC1B9C,QAAQ,CAAE;cACT,GAAGD,MAAM;cACTqB,kBAAkB,EACjB0B,QAAQ,KAAK,EAAE,GAAGjB,SAAS,GAAGiB;YAChC,CAAE,CAAC;UACJ,CAAG;UACHU,YAAY,EAAGZ,gBAAkB;UACjCnD,KAAK,EAAGA,KAAO;UACfD,KAAK,EAAGA,KAAO;UACfiE,GAAG,EAAG,CAAG;UACT/D,KAAK,EAAGzD,EAAE,CAAE,sBAAuB,CAAG;UACtCyH,mBAAmB;QAAA,CACnB;MAAC,CACO,CAAC,eACXnG,IAAA,CAACnB,QAAQ;QAACkH,OAAO;QAAA9C,QAAA,eAChBjD,IAAA,CAAClB,YAAY;UACZ2D,QAAQ,EAAG0C,kBAAoB;UAC/BjD,KAAK,EAAG+C,QAAQ,IAAI,CAAG;UACvBiB,GAAG,EAAG,CAAG;UACTE,GAAG,EAAG/F,wBAAwB,CAAE6E,IAAI,CAAE,IAAI,GAAK;UAC/CmB,cAAc,EAAG,KAAO;UACxBlE,KAAK,EAAGzD,EAAE,CAAE,sBAAuB,CAAG;UACtCyH,mBAAmB;QAAA,CACnB;MAAC,CACO,CAAC;IAAA,CACN,CAAC;EAAA,CACE,CAAC;AAEb;;AAEA;AACA,SAAShD,+BAA+BA,CAAE;EACzCX,MAAM;EACNC,QAAQ;EACRE;AACD,CAAC,EAAG;EACH;EACA,MAAM2D,kBAAkB,GAAGzD,MAAM,CAACC,qCAAqC,GACpEwB,SAAS,GACT,CAAC;EACJ,MAAM;IACLvB,WAAW,GAAGuD,kBAAkB;IAChCxC,QAAQ;IACRiB;EACD,CAAC,GAAGvC,MAAM;EAEV,oBACCxC,IAAA,CAAAE,SAAA;IAAA+C,QAAA,eACC7C,KAAA;MAAA6C,QAAA,GACG,CAAE,CAAEJ,MAAM,CAACC,qCAAqC,IACjD,CAAEiC,iBAAiB,kBACnB/E,IAAA,CAACrB,WAAW,CAACiH,WAAW;QAACC,EAAE,EAAC,QAAQ;QAAA5C,QAAA,EACjCvE,EAAE,CAAE,SAAU;MAAC,CACO,CACzB,eACD0B,KAAA,CAACxB,IAAI;QAACkH,GAAG,EAAG,CAAG;QAAA7C,QAAA,gBACdjD,IAAA,CAACnB,QAAQ;UAACkH,OAAO;UAAA9C,QAAA,eAChBjD,IAAA,CAAChB,aAAa;YACbgH,IAAI,EAAC,kBAAkB;YACvBvD,QAAQ,EAAKP,KAAK,IAAM;cACvB,IACCW,MAAM,CAACC,qCAAqC,EAC3C;gBACD;gBACA,MAAMyD,qBAAqB,GAC1BxB,iBAAiB,GAAG,CAAC,GAAGT,SAAS;gBAClC,MAAMkC,cAAc,GACnBtE,KAAK,KAAK,EAAE,GACTqE,qBAAqB,GACrBE,QAAQ,CAAEvE,KAAK,EAAE,EAAG,CAAC;gBACzBO,QAAQ,CAAE;kBACT,GAAGD,MAAM;kBACTO,WAAW,EAAEyD;gBACd,CAAE,CAAC;cACJ,CAAC,MAAM;gBACN;gBACA,MAAMA,cAAc,GACnBtE,KAAK,KAAK,EAAE,GACT,CAAC,GACDuE,QAAQ,CAAEvE,KAAK,EAAE,EAAG,CAAC;gBACzBO,QAAQ,CAAE;kBACT,GAAGD,MAAM;kBACTO,WAAW,EAAEyD;gBACd,CAAE,CAAC;cACJ;YACD,CAAG;YACHtE,KAAK,EAAGa,WAAa;YACrBmD,GAAG,EAAG,CAAG;YACT/D,KAAK,EAAGzD,EAAE,CAAE,SAAU,CAAG;YACzByH,mBAAmB,EAClB,CAAEtD,MAAM,CAACC,qCAAqC,IAC9C,CAAEiC;UACF,CACD;QAAC,CACO,CAAC,eAEX/E,IAAA,CAACnB,QAAQ;UAACkH,OAAO;UAAA9C,QAAA,EACdJ,MAAM,CAACC,qCAAqC,IAC9CH,qBAAqB,IACrBoC,iBAAiB,gBAChB/E,IAAA,CAAChB,aAAa;YACbgH,IAAI,EAAC,kBAAkB;YACvBvD,QAAQ,EAAKP,KAAK,IAAM;cACvB;cACA,MAAMwE,WAAW,GAChBxE,KAAK,KAAK,EAAE,GACT,CAAC,GACDuE,QAAQ,CAAEvE,KAAK,EAAE,EAAG,CAAC;cACzBO,QAAQ,CAAE;gBACT,GAAGD,MAAM;gBACTsB,QAAQ,EAAE4C;cACX,CAAE,CAAC;YACJ,CAAG;YACHxE,KAAK,EAAG4B,QAAU;YAClBoC,GAAG,EAAG,CAAG;YACT/D,KAAK,EAAGzD,EAAE,CAAE,MAAO;UAAG,CACtB,CAAC,gBAEFsB,IAAA,CAAClB,YAAY;YACZoD,KAAK,EAAGa,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,CAAG;YAC1BN,QAAQ,EAAKP,KAAK,IACjBO,QAAQ,CAAE;cACT,GAAGD,MAAM;cACTO,WAAW,EAAEb;YACd,CAAE,CACF;YACDgE,GAAG,EAAG,CAAG;YACTE,GAAG,EAAG,EAAI;YACVC,cAAc,EAAG,KAAO;YACxBlE,KAAK,EAAGzD,EAAE,CAAE,SAAU,CAAG;YACzByH,mBAAmB;UAAA,CACnB;QACD,CACQ,CAAC;MAAA,CACN,CAAC;IAAA,CACE;EAAC,CACV,CAAC;AAEL;;AAEA;AACA,SAASjD,qBAAqBA,CAAE;EAAEV,MAAM;EAAEC;AAAS,CAAC,EAAG;EACtD,MAAM;IAAEM,WAAW;IAAEe,QAAQ;IAAED,kBAAkB;IAAEkB;EAAkB,CAAC,GACrEvC,MAAM;;EAEP;AACD;AACA;AACA;EACC,MAAM,CAAEmE,eAAe,EAAEC,kBAAkB,CAAE,GAAGnH,QAAQ,CACvDsD,WAAW,IAAI,CAChB,CAAC;EACD,MAAM,CAAE8D,YAAY,EAAEC,eAAe,CAAE,GAAGrH,QAAQ,CAAEqE,QAAS,CAAC;EAC9D,MAAM,CAAEiD,sBAAsB,EAAEC,yBAAyB,CAAE,GAAGvH,QAAQ,CACrEoE,kBAAkB,IAAI,OACvB,CAAC;EAED,MAAMoD,aAAa,GAClBlC,iBAAiB,IACf,CAAC,CAAEhC,WAAW,IAAI,CAAEF,MAAM,CAACC,qCAAuC,GACjE,QAAQ,GACR,MAAM;EAEV,MAAMoE,YAAY,GAAKhF,KAAK,IAAM;IACjC,IAAKA,KAAK,KAAK,QAAQ,EAAG;MACzB8E,yBAAyB,CAAEnD,kBAAkB,IAAI,OAAQ,CAAC;IAC3D,CAAC,MAAM;MACN+C,kBAAkB,CAAE7D,WAAW,IAAI,CAAE,CAAC;MACtC+D,eAAe,CAAEhD,QAAS,CAAC;IAC5B;IACArB,QAAQ,CAAE;MACT,GAAGD,MAAM;MACTO,WAAW,EAAEb,KAAK,KAAK,QAAQ,GAAGyE,eAAe,GAAG,IAAI;MACxD7C,QAAQ,EACP5B,KAAK,KAAK,QAAQ,IAClBW,MAAM,CAACC,qCAAqC,GACzC+D,YAAY,GACZvC,SAAS;MACbS,iBAAiB,EAChB7C,KAAK,KAAK,QAAQ,IAClBW,MAAM,CAACC,qCAAqC,GACzC,IAAI,GACJwB,SAAS;MACbT,kBAAkB,EACjB3B,KAAK,KAAK,MAAM,GAAG6E,sBAAsB,GAAG;IAC9C,CAAE,CAAC;EACJ,CAAC;EAED,MAAMI,QAAQ,GACbF,aAAa,KAAK,QAAQ,GACvBvI,EAAE,CACF,gEACA,CAAC,GACDA,EAAE,CACF,+DACA,CAAC;EAEL,oBACC0B,KAAA,CAAClB,kBAAkB;IAClBkI,uBAAuB;IACvBjF,KAAK,EAAGzD,EAAE,CAAE,oBAAqB,CAAG;IACpCwD,KAAK,EAAG+E,aAAe;IACvBxE,QAAQ,EAAGyE,YAAc;IACzBnB,OAAO;IACPsB,IAAI,EACHxE,MAAM,CAACC,qCAAqC,GACzCqE,QAAQ,GACR7C,SACH;IAAArB,QAAA,gBAEDjD,IAAA,CAACZ,wBAAwB;MAExB8C,KAAK,EAAC,MAAM;MACZC,KAAK,EAAGzD,EAAE,CAAE,MAAO;IAAG,GAFlB,MAGJ,CAAC,eACFsB,IAAA,CAACZ,wBAAwB;MAExB8C,KAAK,EAAC,QAAQ;MACdC,KAAK,EAAGzD,EAAE,CAAE,QAAS;IAAG,GAFpB,QAGJ,CAAC;EAAA,CACiB,CAAC;AAEvB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","BaseControl","Flex","FlexItem","RangeControl","__experimentalNumberControl","NumberControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalParseQuantityAndUnitFromRawValue","parseQuantityAndUnitFromRawValue","useState","appendSelectors","getBlockGapCSS","getGapCSSValue","shouldSkipSerialization","LAYOUT_DEFINITIONS","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","RANGE_CONTROL_MAX_VALUES","px","vw","vh","em","rem","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","units","value","label","default","name","inspectorControls","GridLayoutInspectorControls","layout","onChange","layoutBlockSupport","allowSizingOnChildren","showColumnsControl","window","__experimentalEnableGridInteractivity","columnCount","showMinWidthControl","children","GridLayoutTypeControl","GridLayoutColumnsAndRowsControl","GridLayoutMinimumWidthControl","toolBarControls","GridLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","minimumColumnWidth","rowCount","process","env","NODE_ENV","Error","blockGapValue","spacing","blockGap","undefined","output","rules","maxValue","push","length","join","getOrientation","getAlignments","isManualPlacement","defaultValue","quantity","unit","handleSliderChange","next","handleUnitChange","newUnit","newValue","includes","toFixed","Math","round","VisualLabel","as","gap","isBlock","size","onUnitChange","min","hideLabelFromVision","__nextHasNoMarginBottom","max","withInputField","defaultColumnCount","defaultNewColumnCount","newColumnCount","parseInt","newRowCount","tempColumnCount","setTempColumnCount","tempRowCount","setTempRowCount","tempMinimumColumnWidth","setTempMinimumColumnWidth","gridPlacement","onChangeType","helpText","help"],"sources":["@wordpress/block-editor/src/layouts/grid.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tBaseControl,\n\tFlex,\n\tFlexItem,\n\tRangeControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { appendSelectors, getBlockGapCSS } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nconst RANGE_CONTROL_MAX_VALUES = {\n\tpx: 600,\n\t'%': 100,\n\tvw: 100,\n\tvh: 100,\n\tem: 38,\n\trem: 38,\n\tsvw: 100,\n\tlvw: 100,\n\tdvw: 100,\n\tsvh: 100,\n\tlvh: 100,\n\tdvh: 100,\n\tvi: 100,\n\tsvi: 100,\n\tlvi: 100,\n\tdvi: 100,\n\tvb: 100,\n\tsvb: 100,\n\tlvb: 100,\n\tdvb: 100,\n\tvmin: 100,\n\tsvmin: 100,\n\tlvmin: 100,\n\tdvmin: 100,\n\tvmax: 100,\n\tsvmax: 100,\n\tlvmax: 100,\n\tdvmax: 100,\n};\n\nconst units = [\n\t{ value: 'px', label: 'px', default: 0 },\n\t{ value: 'rem', label: 'rem', default: 0 },\n\t{ value: 'em', label: 'em', default: 0 },\n];\n\nexport default {\n\tname: 'grid',\n\tlabel: __( 'Grid' ),\n\tinspectorControls: function GridLayoutInspectorControls( {\n\t\tlayout = {},\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { allowSizingOnChildren = false } = layoutBlockSupport;\n\n\t\t// In the experiment we want to also show column control in Auto mode, and\n\t\t// the minimum width control in Manual mode.\n\t\tconst showColumnsControl =\n\t\t\twindow.__experimentalEnableGridInteractivity || layout?.columnCount;\n\t\tconst showMinWidthControl =\n\t\t\twindow.__experimentalEnableGridInteractivity ||\n\t\t\t! layout?.columnCount;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<GridLayoutTypeControl\n\t\t\t\t\tlayout={ layout }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t{ showColumnsControl && (\n\t\t\t\t\t<GridLayoutColumnsAndRowsControl\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tallowSizingOnChildren={ allowSizingOnChildren }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ showMinWidthControl && (\n\t\t\t\t\t<GridLayoutMinimumWidthControl\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</>\n\t\t);\n\t},\n\ttoolBarControls: function GridLayoutToolbarControls() {\n\t\treturn null;\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 {\n\t\t\tminimumColumnWidth = null,\n\t\t\tcolumnCount = null,\n\t\t\trowCount = null,\n\t\t} = layout;\n\n\t\t// Check that the grid layout attributes are of the correct type, so that we don't accidentally\n\t\t// write code that stores a string attribute instead of a number.\n\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\tif (\n\t\t\t\tminimumColumnWidth &&\n\t\t\t\ttypeof minimumColumnWidth !== 'string'\n\t\t\t) {\n\t\t\t\tthrow new Error( 'minimumColumnWidth must be a string' );\n\t\t\t}\n\t\t\tif ( columnCount && typeof columnCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'columnCount must be a number' );\n\t\t\t}\n\t\t\tif ( rowCount && typeof rowCount !== 'number' ) {\n\t\t\t\tthrow new Error( 'rowCount must be a number' );\n\t\t\t}\n\t\t}\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\n\t\tlet output = '';\n\t\tconst rules = [];\n\n\t\tif ( minimumColumnWidth && columnCount > 0 ) {\n\t\t\tconst maxValue = `max(${ minimumColumnWidth }, ( 100% - (${\n\t\t\t\tblockGapValue || '1.2rem'\n\t\t\t}*${ columnCount - 1 }) ) / ${ columnCount })`;\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(${ maxValue }, 1fr))`,\n\t\t\t\t`container-type: inline-size`\n\t\t\t);\n\t\t\tif ( rowCount ) {\n\t\t\t\trules.push(\n\t\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( columnCount ) {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(${ columnCount }, minmax(0, 1fr))`\n\t\t\t);\n\t\t\tif ( rowCount ) {\n\t\t\t\trules.push(\n\t\t\t\t\t`grid-template-rows: repeat(${ rowCount }, minmax(1rem, auto))`\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\trules.push(\n\t\t\t\t`grid-template-columns: repeat(auto-fill, minmax(min(${\n\t\t\t\t\tminimumColumnWidth || '12rem'\n\t\t\t\t}, 100%), 1fr))`,\n\t\t\t\t'container-type: inline-size'\n\t\t\t);\n\t\t}\n\n\t\tif ( rules.length ) {\n\t\t\t// Reason to disable: the extra line breaks added by prettier mess with the unit tests.\n\t\t\t// eslint-disable-next-line prettier/prettier\n\t\t\toutput = `${ appendSelectors( selector ) } { ${ rules.join(\n\t\t\t\t'; '\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'grid',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'horizontal';\n\t},\n\tgetAlignments() {\n\t\treturn [];\n\t},\n};\n\n// Enables setting minimum width of grid items.\nfunction GridLayoutMinimumWidthControl( { layout, onChange } ) {\n\tconst { minimumColumnWidth, columnCount, isManualPlacement } = layout;\n\tconst defaultValue = isManualPlacement || columnCount ? null : '12rem';\n\tconst value = minimumColumnWidth || defaultValue;\n\tconst [ quantity, unit = 'rem' ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: [ next, unit ].join( '' ),\n\t\t} );\n\t};\n\n\t// Mostly copied from HeightControl.\n\tconst handleUnitChange = ( newUnit ) => {\n\t\t// Attempt to smooth over differences between currentUnit and newUnit.\n\t\t// This should slightly improve the experience of switching between unit types.\n\t\tlet newValue;\n\n\t\tif ( [ 'em', 'rem' ].includes( newUnit ) && unit === 'px' ) {\n\t\t\t// Convert pixel value to an approximate of the new unit, assuming a root size of 16px.\n\t\t\tnewValue = ( quantity / 16 ).toFixed( 2 ) + newUnit;\n\t\t} else if ( [ 'em', 'rem' ].includes( unit ) && newUnit === 'px' ) {\n\t\t\t// Convert to pixel value assuming a root size of 16px.\n\t\t\tnewValue = Math.round( quantity * 16 ) + newUnit;\n\t\t}\n\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tminimumColumnWidth: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<fieldset>\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Minimum column width' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Flex gap={ 4 }>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\tminimumColumnWidth:\n\t\t\t\t\t\t\t\t\tnewValue === '' ? undefined : newValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\tvalue={ quantity || 0 }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ RANGE_CONTROL_MAX_VALUES[ unit ] || 600 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tlabel={ __( 'Minimum column width' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</fieldset>\n\t);\n}\n\n// Enables setting number of grid columns\nfunction GridLayoutColumnsAndRowsControl( {\n\tlayout,\n\tonChange,\n\tallowSizingOnChildren,\n} ) {\n\t// If the grid interactivity experiment is enabled, allow unsetting the column count.\n\tconst defaultColumnCount = window.__experimentalEnableGridInteractivity\n\t\t? undefined\n\t\t: 3;\n\tconst {\n\t\tcolumnCount = defaultColumnCount,\n\t\trowCount,\n\t\tisManualPlacement,\n\t} = layout;\n\n\treturn (\n\t\t<>\n\t\t\t<fieldset>\n\t\t\t\t{ ( ! window.__experimentalEnableGridInteractivity ||\n\t\t\t\t\t! isManualPlacement ) && (\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Columns' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t) }\n\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t// Allow unsetting the column count when in auto mode.\n\t\t\t\t\t\t\t\t\tconst defaultNewColumnCount =\n\t\t\t\t\t\t\t\t\t\tisManualPlacement ? 1 : undefined;\n\t\t\t\t\t\t\t\t\tconst newColumnCount =\n\t\t\t\t\t\t\t\t\t\tvalue === ''\n\t\t\t\t\t\t\t\t\t\t\t? defaultNewColumnCount\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount: newColumnCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// Don't allow unsetting the column count.\n\t\t\t\t\t\t\t\t\tconst newColumnCount =\n\t\t\t\t\t\t\t\t\t\tvalue === ''\n\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount: newColumnCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ columnCount }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thideLabelFromVision={\n\t\t\t\t\t\t\t\t! window.__experimentalEnableGridInteractivity ||\n\t\t\t\t\t\t\t\t! isManualPlacement\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t{ window.__experimentalEnableGridInteractivity &&\n\t\t\t\t\t\tallowSizingOnChildren &&\n\t\t\t\t\t\tisManualPlacement ? (\n\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t// Don't allow unsetting the row count.\n\t\t\t\t\t\t\t\t\tconst newRowCount =\n\t\t\t\t\t\t\t\t\t\tvalue === ''\n\t\t\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( value, 10 );\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\trowCount: newRowCount,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tvalue={ rowCount }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tlabel={ __( 'Rows' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tvalue={ columnCount ?? 0 }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\t\tcolumnCount: value,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\tmax={ 16 }\n\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\thideLabelFromVision\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</fieldset>\n\t\t</>\n\t);\n}\n\n// Enables switching between grid types\nfunction GridLayoutTypeControl( { layout, onChange } ) {\n\tconst { columnCount, rowCount, minimumColumnWidth, isManualPlacement } =\n\t\tlayout;\n\n\t/**\n\t * When switching, temporarily save any custom values set on the\n\t * previous type so we can switch back without loss.\n\t */\n\tconst [ tempColumnCount, setTempColumnCount ] = useState(\n\t\tcolumnCount || 3\n\t);\n\tconst [ tempRowCount, setTempRowCount ] = useState( rowCount );\n\tconst [ tempMinimumColumnWidth, setTempMinimumColumnWidth ] = useState(\n\t\tminimumColumnWidth || '12rem'\n\t);\n\n\tconst gridPlacement =\n\t\tisManualPlacement ||\n\t\t( !! columnCount && ! window.__experimentalEnableGridInteractivity )\n\t\t\t? 'manual'\n\t\t\t: 'auto';\n\n\tconst onChangeType = ( value ) => {\n\t\tif ( value === 'manual' ) {\n\t\t\tsetTempMinimumColumnWidth( minimumColumnWidth || '12rem' );\n\t\t} else {\n\t\t\tsetTempColumnCount( columnCount || 3 );\n\t\t\tsetTempRowCount( rowCount );\n\t\t}\n\t\tonChange( {\n\t\t\t...layout,\n\t\t\tcolumnCount: value === 'manual' ? tempColumnCount : null,\n\t\t\trowCount:\n\t\t\t\tvalue === 'manual' &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t? tempRowCount\n\t\t\t\t\t: undefined,\n\t\t\tisManualPlacement:\n\t\t\t\tvalue === 'manual' &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t? true\n\t\t\t\t\t: undefined,\n\t\t\tminimumColumnWidth:\n\t\t\t\tvalue === 'auto' ? tempMinimumColumnWidth : null,\n\t\t} );\n\t};\n\n\tconst helpText =\n\t\tgridPlacement === 'manual'\n\t\t\t? __(\n\t\t\t\t\t'Grid items can be manually placed in any position on the grid.'\n\t\t\t )\n\t\t\t: __(\n\t\t\t\t\t'Grid items are placed automatically depending on their order.'\n\t\t\t );\n\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Grid item position' ) }\n\t\t\tvalue={ gridPlacement }\n\t\t\tonChange={ onChangeType }\n\t\t\tisBlock\n\t\t\thelp={\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t\t\t? helpText\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"auto\"\n\t\t\t\tvalue=\"auto\"\n\t\t\t\tlabel={ __( 'Auto' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tkey=\"manual\"\n\t\t\t\tvalue=\"manual\"\n\t\t\t\tlabel={ __( 'Manual' ) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,6 @@ import { setBackgroundStyleDefaults, useLayoutClasses, useLayoutStyles, __unstab
|
|
|
20
20
|
import DimensionsTool from './components/dimensions-tool';
|
|
21
21
|
import ResolutionTool from './components/resolution-tool';
|
|
22
22
|
import TextAlignmentControl from './components/text-alignment-control';
|
|
23
|
-
import { default as ReusableBlocksRenameHint, useReusableBlocksRenameHint } from './components/inserter/reusable-block-rename-hint';
|
|
24
23
|
import { usesContextKey } from './components/rich-text/format-edit';
|
|
25
24
|
import { ExperimentalBlockCanvas } from './components/block-canvas';
|
|
26
25
|
import { getDuotoneFilter } from './components/duotone/utils';
|
|
@@ -65,8 +64,6 @@ lock(privateApis, {
|
|
|
65
64
|
ResolutionTool,
|
|
66
65
|
TabbedSidebar,
|
|
67
66
|
TextAlignmentControl,
|
|
68
|
-
ReusableBlocksRenameHint,
|
|
69
|
-
useReusableBlocksRenameHint,
|
|
70
67
|
usesContextKey,
|
|
71
68
|
useFlashEditableBlocks,
|
|
72
69
|
globalStylesDataKey,
|