@wordpress/block-editor 11.5.0 → 11.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/block-list/block-invalid-warning.js +63 -80
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js +1 -0
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/global-styles/border-panel.js +306 -0
- package/build/components/global-styles/border-panel.js.map +1 -0
- package/build/components/global-styles/hooks.js +57 -3
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +20 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +62 -15
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +20 -13
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/inserter/index.js +29 -17
- package/build/components/inserter/index.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/quick-inserter.js +4 -2
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +10 -3
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +1 -1
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/link-control/index.js +1 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-item.js +5 -2
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +1 -2
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +28 -3
- package/build/components/off-canvas-editor/appender.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +5 -3
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +9 -7
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/link-ui.js +0 -1
- package/build/components/off-canvas-editor/link-ui.js.map +1 -1
- package/build/components/provider/use-block-sync.js +17 -3
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +0 -3
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/hooks/border.js +91 -240
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/custom-class-name.js +4 -4
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-class-name.native.js +3 -4
- package/build/hooks/custom-class-name.native.js.map +1 -1
- package/build/hooks/layout.js +19 -22
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/supports.js +7 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.js +2 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +27 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +6 -2
- package/build/layouts/constrained.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +10 -8
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +19 -3
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +15 -9
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +66 -78
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +1 -1
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js +1 -0
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -3
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +291 -0
- package/build-module/components/global-styles/border-panel.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +54 -3
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +2 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +62 -16
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +20 -13
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/inserter/index.js +28 -16
- package/build-module/components/inserter/index.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/quick-inserter.js +4 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +10 -3
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +1 -1
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-item.js +4 -2
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +1 -2
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +28 -4
- package/build-module/components/off-canvas-editor/appender.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +5 -3
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +9 -7
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/link-ui.js +0 -1
- package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +17 -3
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +0 -3
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/hooks/border.js +93 -240
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +4 -4
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-class-name.native.js +3 -4
- package/build-module/hooks/custom-class-name.native.js.map +1 -1
- package/build-module/hooks/layout.js +19 -22
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/supports.js +7 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.js +2 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +27 -1
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +6 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +10 -8
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +17 -3
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +15 -9
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +6 -6
- package/build-style/style.css +6 -6
- package/package.json +31 -31
- package/src/components/block-inspector/style.scss +3 -0
- package/src/components/block-list/block-invalid-warning.js +72 -64
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +20 -2
- package/src/components/block-preview/test/index.js +0 -2
- package/src/components/block-settings-menu-controls/index.js +2 -1
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-switcher/block-transformations-menu.native.js +1 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +16 -14
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +48 -38
- package/src/components/global-styles/border-panel.js +285 -0
- package/src/components/global-styles/hooks.js +74 -1
- package/src/components/global-styles/index.js +2 -0
- package/src/components/global-styles/test/use-global-styles-output.js +1 -1
- package/src/components/global-styles/typography-panel.js +48 -1
- package/src/components/global-styles/use-global-styles-output.js +13 -13
- package/src/components/inserter/index.js +30 -11
- package/src/components/inserter/menu.js +0 -1
- package/src/components/inserter/quick-inserter.js +2 -0
- package/src/components/inserter/search-results.js +7 -1
- package/src/components/inserter/style.scss +3 -0
- package/src/components/inserter/tabs.js +1 -9
- package/src/components/link-control/index.js +1 -1
- package/src/components/link-control/search-item.js +3 -1
- package/src/components/link-control/style.scss +0 -4
- package/src/components/link-control/test/index.js +0 -2
- package/src/components/list-view/use-block-selection.js +0 -2
- package/src/components/off-canvas-editor/appender.js +31 -5
- package/src/components/off-canvas-editor/branch.js +3 -1
- package/src/components/off-canvas-editor/index.js +7 -7
- package/src/components/off-canvas-editor/link-ui.js +0 -1
- package/src/components/provider/use-block-sync.js +21 -4
- package/src/components/rich-text/format-toolbar-container.js +1 -7
- package/src/components/url-popover/test/index.js +0 -2
- package/src/hooks/border.js +94 -225
- package/src/hooks/custom-class-name.js +4 -4
- package/src/hooks/custom-class-name.native.js +3 -4
- package/src/hooks/layout.js +19 -16
- package/src/hooks/supports.js +6 -0
- package/src/hooks/test/style.js +2 -1
- package/src/hooks/test/use-typography-props.js +2 -0
- package/src/hooks/typography.js +2 -0
- package/src/hooks/utils.js +36 -0
- package/src/layouts/constrained.js +23 -17
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +10 -8
- package/src/store/selectors.js +20 -3
- package/src/utils/parse-css-unit-to-px.js +14 -9
- package/src/utils/test/parse-css-unit-to-px.js +1 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/hooks/border-radius.js +0 -100
- package/build/hooks/border-radius.js.map +0 -1
- package/build-module/hooks/border-radius.js +0 -84
- package/build-module/hooks/border-radius.js.map +0 -1
- package/src/hooks/border-radius.js +0 -70
|
@@ -9,8 +9,7 @@ import classnames from 'classnames';
|
|
|
9
9
|
import { addFilter } from '@wordpress/hooks';
|
|
10
10
|
import { hasBlockSupport } from '@wordpress/blocks';
|
|
11
11
|
/**
|
|
12
|
-
* Filters registered block settings, extending attributes
|
|
13
|
-
* of the first node.
|
|
12
|
+
* Filters registered block settings, extending attributes to include `className`.
|
|
14
13
|
*
|
|
15
14
|
* @param {Object} settings Original block settings.
|
|
16
15
|
*
|
|
@@ -30,8 +29,8 @@ export function addAttribute(settings) {
|
|
|
30
29
|
return settings;
|
|
31
30
|
}
|
|
32
31
|
/**
|
|
33
|
-
* Override props assigned to save component to inject
|
|
34
|
-
* supports
|
|
32
|
+
* Override props assigned to save component to inject the className, if block
|
|
33
|
+
* supports customClassName. This is only applied if the block's save result is an
|
|
35
34
|
* element and not a markup string.
|
|
36
35
|
*
|
|
37
36
|
* @param {Object} extraProps Additional props applied to save element.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/custom-class-name.native.js"],"names":["classnames","addFilter","hasBlockSupport","addAttribute","settings","attributes","className","type","addSaveProps","extraProps","blockType"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/custom-class-name.native.js"],"names":["classnames","addFilter","hasBlockSupport","addAttribute","settings","attributes","className","type","addSaveProps","extraProps","blockType"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,YAAT,CAAuBC,QAAvB,EAAkC;AACxC,MAAKF,eAAe,CAAEE,QAAF,EAAY,iBAAZ,EAA+B,IAA/B,CAApB,EAA4D;AAC3D;AACAA,IAAAA,QAAQ,CAACC,UAAT,GAAsB,EACrB,GAAGD,QAAQ,CAACC,UADS;AAErBC,MAAAA,SAAS,EAAE;AACVC,QAAAA,IAAI,EAAE;AADI;AAFU,KAAtB;AAMA;;AAED,SAAOH,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASI,YAAT,CAAuBC,UAAvB,EAAmCC,SAAnC,EAA8CL,UAA9C,EAA2D;AACjE,MACCH,eAAe,CAAEQ,SAAF,EAAa,iBAAb,EAAgC,IAAhC,CAAf,IACAL,UAAU,CAACC,SAFZ,EAGE;AACDG,IAAAA,UAAU,CAACH,SAAX,GAAuBN,UAAU,CAChCS,UAAU,CAACH,SADqB,EAEhCD,UAAU,CAACC,SAFqB,CAAjC;AAIA;;AAED,SAAOG,UAAP;AACA;AAEDR,SAAS,CACR,0BADQ,EAER,kCAFQ,EAGRE,YAHQ,CAAT;AAKAF,SAAS,CACR,kCADQ,EAER,mCAFQ,EAGRO,YAHQ,CAAT","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Filters registered block settings, extending attributes to include `className`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( hasBlockSupport( settings, 'customClassName', true ) ) {\n\t\t// Gracefully handle if settings.attributes is undefined.\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tclassName: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject the className, if block\n * supports customClassName. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( extraProps, blockType, attributes ) {\n\tif (\n\t\thasBlockSupport( blockType, 'customClassName', true ) &&\n\t\tattributes.className\n\t) {\n\t\textraProps.className = classnames(\n\t\t\textraProps.className,\n\t\t\tattributes.className\n\t\t);\n\t}\n\n\treturn extraProps;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/custom-class-name/attribute',\n\taddAttribute\n);\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/custom-class-name/save-props',\n\taddSaveProps\n);\n"]}
|
|
@@ -31,7 +31,8 @@ const layoutBlockSupportKey = '__experimentalLayout';
|
|
|
31
31
|
/**
|
|
32
32
|
* Generates the utility classnames for the given block's layout attributes.
|
|
33
33
|
*
|
|
34
|
-
* @param { Object }
|
|
34
|
+
* @param { Object } blockAttributes Block attributes.
|
|
35
|
+
* @param { string } blockName Block name.
|
|
35
36
|
*
|
|
36
37
|
* @return { Array } Array of CSS classname strings.
|
|
37
38
|
*/
|
|
@@ -39,7 +40,8 @@ const layoutBlockSupportKey = '__experimentalLayout';
|
|
|
39
40
|
export function useLayoutClasses() {
|
|
40
41
|
var _globalLayoutSettings, _globalLayoutSettings2;
|
|
41
42
|
|
|
42
|
-
let
|
|
43
|
+
let blockAttributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
44
|
+
let blockName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
43
45
|
const rootPaddingAlignment = useSelect(select => {
|
|
44
46
|
var _getSettings$__experi;
|
|
45
47
|
|
|
@@ -49,16 +51,12 @@ export function useLayoutClasses() {
|
|
|
49
51
|
return (_getSettings$__experi = getSettings().__experimentalFeatures) === null || _getSettings$__experi === void 0 ? void 0 : _getSettings$__experi.useRootPaddingAwareAlignments;
|
|
50
52
|
}, []);
|
|
51
53
|
const globalLayoutSettings = useSetting('layout') || {};
|
|
52
|
-
const {
|
|
53
|
-
attributes = {},
|
|
54
|
-
name
|
|
55
|
-
} = block;
|
|
56
54
|
const {
|
|
57
55
|
layout
|
|
58
|
-
} =
|
|
56
|
+
} = blockAttributes;
|
|
59
57
|
const {
|
|
60
58
|
default: defaultBlockLayout
|
|
61
|
-
} = getBlockSupport(
|
|
59
|
+
} = getBlockSupport(blockName, layoutBlockSupportKey) || {};
|
|
62
60
|
const usedLayout = layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize || layout !== null && layout !== void 0 && layout.wideSize ? { ...layout,
|
|
63
61
|
type: 'constrained'
|
|
64
62
|
} : layout || defaultBlockLayout || {};
|
|
@@ -67,7 +65,9 @@ export function useLayoutClasses() {
|
|
|
67
65
|
if (globalLayoutSettings !== null && globalLayoutSettings !== void 0 && (_globalLayoutSettings = globalLayoutSettings.definitions) !== null && _globalLayoutSettings !== void 0 && (_globalLayoutSettings2 = _globalLayoutSettings[(usedLayout === null || usedLayout === void 0 ? void 0 : usedLayout.type) || 'default']) !== null && _globalLayoutSettings2 !== void 0 && _globalLayoutSettings2.className) {
|
|
68
66
|
var _globalLayoutSettings3, _globalLayoutSettings4;
|
|
69
67
|
|
|
70
|
-
|
|
68
|
+
const baseClassName = globalLayoutSettings === null || globalLayoutSettings === void 0 ? void 0 : (_globalLayoutSettings3 = globalLayoutSettings.definitions) === null || _globalLayoutSettings3 === void 0 ? void 0 : (_globalLayoutSettings4 = _globalLayoutSettings3[(usedLayout === null || usedLayout === void 0 ? void 0 : usedLayout.type) || 'default']) === null || _globalLayoutSettings4 === void 0 ? void 0 : _globalLayoutSettings4.className;
|
|
69
|
+
const compoundClassName = `wp-block-${blockName.split('/').pop()}-${baseClassName}`;
|
|
70
|
+
layoutClassnames.push(baseClassName, compoundClassName);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
if ((usedLayout !== null && usedLayout !== void 0 && usedLayout.inherit || usedLayout !== null && usedLayout !== void 0 && usedLayout.contentSize || (usedLayout === null || usedLayout === void 0 ? void 0 : usedLayout.type) === 'constrained') && rootPaddingAlignment) {
|
|
@@ -91,8 +91,9 @@ export function useLayoutClasses() {
|
|
|
91
91
|
/**
|
|
92
92
|
* Generates a CSS rule with the given block's layout styles.
|
|
93
93
|
*
|
|
94
|
-
* @param { Object }
|
|
95
|
-
* @param { string }
|
|
94
|
+
* @param { Object } blockAttributes Block attributes.
|
|
95
|
+
* @param { string } blockName Block name.
|
|
96
|
+
* @param { string } selector A selector to use in generating the CSS rule.
|
|
96
97
|
*
|
|
97
98
|
* @return { string } CSS rule.
|
|
98
99
|
*/
|
|
@@ -100,16 +101,13 @@ export function useLayoutClasses() {
|
|
|
100
101
|
export function useLayoutStyles() {
|
|
101
102
|
var _fullLayoutType$getLa;
|
|
102
103
|
|
|
103
|
-
let
|
|
104
|
-
let
|
|
105
|
-
|
|
106
|
-
attributes = {},
|
|
107
|
-
name
|
|
108
|
-
} = block;
|
|
104
|
+
let blockAttributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
105
|
+
let blockName = arguments.length > 1 ? arguments[1] : undefined;
|
|
106
|
+
let selector = arguments.length > 2 ? arguments[2] : undefined;
|
|
109
107
|
const {
|
|
110
108
|
layout = {},
|
|
111
109
|
style = {}
|
|
112
|
-
} =
|
|
110
|
+
} = blockAttributes; // Update type for blocks using legacy layouts.
|
|
113
111
|
|
|
114
112
|
const usedLayout = layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize || layout !== null && layout !== void 0 && layout.wideSize ? { ...layout,
|
|
115
113
|
type: 'constrained'
|
|
@@ -119,7 +117,7 @@ export function useLayoutStyles() {
|
|
|
119
117
|
const blockGapSupport = useSetting('spacing.blockGap');
|
|
120
118
|
const hasBlockGapSupport = blockGapSupport !== null;
|
|
121
119
|
const css = fullLayoutType === null || fullLayoutType === void 0 ? void 0 : (_fullLayoutType$getLa = fullLayoutType.getLayoutStyle) === null || _fullLayoutType$getLa === void 0 ? void 0 : _fullLayoutType$getLa.call(fullLayoutType, {
|
|
122
|
-
blockName
|
|
120
|
+
blockName,
|
|
123
121
|
selector,
|
|
124
122
|
layout,
|
|
125
123
|
layoutDefinitions: globalLayoutSettings === null || globalLayoutSettings === void 0 ? void 0 : globalLayoutSettings.definitions,
|
|
@@ -304,8 +302,7 @@ export const withInspectorControls = createHigherOrderComponent(BlockEdit => pro
|
|
|
304
302
|
export const withLayoutStyles = createHigherOrderComponent(BlockListBlock => props => {
|
|
305
303
|
const {
|
|
306
304
|
name,
|
|
307
|
-
attributes
|
|
308
|
-
block
|
|
305
|
+
attributes
|
|
309
306
|
} = props;
|
|
310
307
|
const hasLayoutBlockSupport = hasBlockSupport(name, layoutBlockSupportKey);
|
|
311
308
|
const disableLayoutStyles = useSelect(select => {
|
|
@@ -327,7 +324,7 @@ export const withLayoutStyles = createHigherOrderComponent(BlockListBlock => pro
|
|
|
327
324
|
const usedLayout = layout !== null && layout !== void 0 && layout.inherit || layout !== null && layout !== void 0 && layout.contentSize || layout !== null && layout !== void 0 && layout.wideSize ? { ...layout,
|
|
328
325
|
type: 'constrained'
|
|
329
326
|
} : layout || defaultBlockLayout || {};
|
|
330
|
-
const layoutClasses = hasLayoutBlockSupport ? useLayoutClasses(
|
|
327
|
+
const layoutClasses = hasLayoutBlockSupport ? useLayoutClasses(attributes, name) : null; // Higher specificity to override defaults from theme.json.
|
|
331
328
|
|
|
332
329
|
const selector = `.wp-container-${id}.wp-container-${id}`;
|
|
333
330
|
const blockGapSupport = useSetting('spacing.blockGap');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/layout.js"],"names":["classnames","kebabCase","createHigherOrderComponent","useInstanceId","addFilter","getBlockSupport","hasBlockSupport","useSelect","Button","ButtonGroup","ToggleControl","PanelBody","__","useContext","createPortal","store","blockEditorStore","InspectorControls","useSetting","LayoutStyle","BlockList","getLayoutType","getLayoutTypes","layoutBlockSupportKey","useLayoutClasses","block","rootPaddingAlignment","select","getSettings","__experimentalFeatures","useRootPaddingAwareAlignments","globalLayoutSettings","attributes","name","layout","default","defaultBlockLayout","usedLayout","inherit","contentSize","wideSize","type","layoutClassnames","definitions","className","push","orientation","justifyContent","flexWrap","useLayoutStyles","selector","style","fullLayoutType","blockGapSupport","hasBlockGapSupport","css","getLayoutStyle","blockName","layoutDefinitions","LayoutPanel","clientId","setAttributes","defaultThemeLayout","themeSupportsLayout","isContentLocked","__unstableGetContentLockingParent","supportsLayout","layoutBlockSupport","allowSwitching","allowEditing","allowInheriting","showInheritToggle","layoutType","constrainedType","displayControlsForLegacyLayouts","hasContentSizeOrLegacySettings","onChangeType","newType","onChangeLayout","newLayout","LayoutTypeSwitcher","onChange","map","label","addAttribute","settings","withInspectorControls","BlockEdit","props","supportLayout","withLayoutStyles","BlockListBlock","hasLayoutBlockSupport","disableLayoutStyles","shouldRenderLayoutStyles","id","element","__unstableElementContext","layoutClasses","layoutClassNames","withChildLayoutStyles","selfStretch","flexSize","hasChildLayout","shouldRenderChildLayoutStyles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tButtonGroup,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { InspectorControls } from '../components';\nimport useSetting from '../components/use-setting';\nimport { LayoutStyle } from '../components/block-list/layout';\nimport BlockList from '../components/block-list';\nimport { getLayoutType, getLayoutTypes } from '../layouts';\n\nconst layoutBlockSupportKey = '__experimentalLayout';\n\n/**\n * Generates the utility classnames for the given block's layout attributes.\n *\n * @param { Object } block Block object.\n *\n * @return { Array } Array of CSS classname strings.\n */\nexport function useLayoutClasses( block = {} ) {\n\tconst rootPaddingAlignment = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalFeatures\n\t\t\t?.useRootPaddingAwareAlignments;\n\t}, [] );\n\tconst globalLayoutSettings = useSetting( 'layout' ) || {};\n\n\tconst { attributes = {}, name } = block;\n\tconst { layout } = attributes;\n\n\tconst { default: defaultBlockLayout } =\n\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\tconst usedLayout =\n\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t: layout || defaultBlockLayout || {};\n\n\tconst layoutClassnames = [];\n\n\tif (\n\t\tglobalLayoutSettings?.definitions?.[ usedLayout?.type || 'default' ]\n\t\t\t?.className\n\t) {\n\t\tlayoutClassnames.push(\n\t\t\tglobalLayoutSettings?.definitions?.[ usedLayout?.type || 'default' ]\n\t\t\t\t?.className\n\t\t);\n\t}\n\n\tif (\n\t\t( usedLayout?.inherit ||\n\t\t\tusedLayout?.contentSize ||\n\t\t\tusedLayout?.type === 'constrained' ) &&\n\t\trootPaddingAlignment\n\t) {\n\t\tlayoutClassnames.push( 'has-global-padding' );\n\t}\n\n\tif ( usedLayout?.orientation ) {\n\t\tlayoutClassnames.push( `is-${ kebabCase( usedLayout.orientation ) }` );\n\t}\n\n\tif ( usedLayout?.justifyContent ) {\n\t\tlayoutClassnames.push(\n\t\t\t`is-content-justification-${ kebabCase(\n\t\t\t\tusedLayout.justifyContent\n\t\t\t) }`\n\t\t);\n\t}\n\n\tif ( usedLayout?.flexWrap && usedLayout.flexWrap === 'nowrap' ) {\n\t\tlayoutClassnames.push( 'is-nowrap' );\n\t}\n\n\treturn layoutClassnames;\n}\n\n/**\n * Generates a CSS rule with the given block's layout styles.\n *\n * @param { Object } block Block object.\n * @param { string } selector A selector to use in generating the CSS rule.\n *\n * @return { string } CSS rule.\n */\nexport function useLayoutStyles( block = {}, selector ) {\n\tconst { attributes = {}, name } = block;\n\tconst { layout = {}, style = {} } = attributes;\n\t// Update type for blocks using legacy layouts.\n\tconst usedLayout =\n\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t: layout || {};\n\tconst fullLayoutType = getLayoutType( usedLayout?.type || 'default' );\n\tconst globalLayoutSettings = useSetting( 'layout' ) || {};\n\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGapSupport !== null;\n\tconst css = fullLayoutType?.getLayoutStyle?.( {\n\t\tblockName: name,\n\t\tselector,\n\t\tlayout,\n\t\tlayoutDefinitions: globalLayoutSettings?.definitions,\n\t\tstyle,\n\t\thasBlockGapSupport,\n\t} );\n\treturn css;\n}\n\nfunction LayoutPanel( {\n\tclientId,\n\tsetAttributes,\n\tattributes,\n\tname: blockName,\n} ) {\n\tconst { layout } = attributes;\n\tconst defaultThemeLayout = useSetting( 'layout' );\n\tconst { themeSupportsLayout, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().supportsLayout,\n\t\t\t\tisContentLocked: __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst layoutBlockSupport = getBlockSupport(\n\t\tblockName,\n\t\tlayoutBlockSupportKey,\n\t\t{}\n\t);\n\tconst {\n\t\tallowSwitching,\n\t\tallowEditing = true,\n\t\tallowInheriting = true,\n\t\tdefault: defaultBlockLayout,\n\t} = layoutBlockSupport;\n\n\tif ( ! allowEditing ) {\n\t\treturn null;\n\t}\n\n\t// Only show the inherit toggle if it's supported,\n\t// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),\n\t// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.\n\tconst showInheritToggle = !! (\n\t\tallowInheriting &&\n\t\t!! defaultThemeLayout &&\n\t\t( ! layout?.type ||\n\t\t\tlayout?.type === 'default' ||\n\t\t\tlayout?.type === 'constrained' ||\n\t\t\tlayout?.inherit )\n\t);\n\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst {\n\t\tinherit = false,\n\t\ttype = 'default',\n\t\tcontentSize = null,\n\t} = usedLayout;\n\t/**\n\t * `themeSupportsLayout` is only relevant to the `default/flow` or\n\t * `constrained` layouts and it should not be taken into account when other\n\t * `layout` types are used.\n\t */\n\tif (\n\t\t( type === 'default' || type === 'constrained' ) &&\n\t\t! themeSupportsLayout\n\t) {\n\t\treturn null;\n\t}\n\tconst layoutType = getLayoutType( type );\n\tconst constrainedType = getLayoutType( 'constrained' );\n\tconst displayControlsForLegacyLayouts =\n\t\t! usedLayout.type && ( contentSize || inherit );\n\tconst hasContentSizeOrLegacySettings = !! inherit || !! contentSize;\n\n\tconst onChangeType = ( newType ) =>\n\t\tsetAttributes( { layout: { type: newType } } );\n\tconst onChangeLayout = ( newLayout ) =>\n\t\tsetAttributes( { layout: newLayout } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Layout' ) }>\n\t\t\t\t\t{ showInheritToggle && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__toggle-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Inner blocks use content width' ) }\n\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t\t\t\t\tlayoutType?.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t'constrained' ||\n\t\t\t\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'constrained',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks use content width with options for full and wide widths.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks will fill the width of this container. Toggle to constrain.'\n\t\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\t{ ! inherit && allowSwitching && (\n\t\t\t\t\t\t<LayoutTypeSwitcher\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\tonChange={ onChangeType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ layoutType && layoutType.name !== 'default' && (\n\t\t\t\t\t\t<layoutType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ constrainedType && displayControlsForLegacyLayouts && (\n\t\t\t\t\t\t<constrainedType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! inherit && ! isContentLocked && layoutType && (\n\t\t\t\t<layoutType.toolBarControls\n\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction LayoutTypeSwitcher( { type, onChange } ) {\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t{ getLayoutTypes().map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tisPressed={ type === name }\n\t\t\t\t\t\tonClick={ () => onChange( name ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ButtonGroup>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include `layout`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( 'type' in ( settings.attributes?.layout ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, layoutBlockSupportKey ) ) {\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include layout controls\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst supportLayout = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\n\t\treturn [\n\t\t\tsupportLayout && <LayoutPanel key=\"layout\" { ...props } />,\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes, block } = props;\n\t\tconst hasLayoutBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderLayoutStyles =\n\t\t\thasLayoutBlockSupport && ! disableLayoutStyles;\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst defaultThemeLayout = useSetting( 'layout' ) || {};\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst { layout } = attributes;\n\t\tconst { default: defaultBlockLayout } =\n\t\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\t\tconst usedLayout =\n\t\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t\t: layout || defaultBlockLayout || {};\n\t\tconst layoutClasses = hasLayoutBlockSupport\n\t\t\t? useLayoutClasses( block )\n\t\t\t: null;\n\t\t// Higher specificity to override defaults from theme.json.\n\t\tconst selector = `.wp-container-${ id }.wp-container-${ id }`;\n\t\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\t\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\t\t// Get CSS string for the current layout type.\n\t\t// The CSS and `style` element is only output if it is not empty.\n\t\tlet css;\n\t\tif ( shouldRenderLayoutStyles ) {\n\t\t\tconst fullLayoutType = getLayoutType(\n\t\t\t\tusedLayout?.type || 'default'\n\t\t\t);\n\t\t\tcss = fullLayoutType?.getLayoutStyle?.( {\n\t\t\t\tblockName: name,\n\t\t\t\tselector,\n\t\t\t\tlayout: usedLayout,\n\t\t\t\tlayoutDefinitions: defaultThemeLayout?.definitions,\n\t\t\t\tstyle: attributes?.style,\n\t\t\t\thasBlockGapSupport,\n\t\t\t} );\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.\n\t\tconst layoutClassNames = classnames(\n\t\t\t{\n\t\t\t\t[ `wp-container-${ id }` ]: shouldRenderLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t},\n\t\t\tlayoutClasses\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\t\tselector={ selector }\n\t\t\t\t\t\t\tcss={ css }\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tstyle={ attributes?.style }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock\n\t\t\t\t\t{ ...props }\n\t\t\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n);\n\n/**\n * Override the default block element to add the child layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withChildLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { attributes } = props;\n\t\tconst { style: { layout = {} } = {} } = attributes;\n\t\tconst { selfStretch, flexSize } = layout;\n\t\tconst hasChildLayout = selfStretch || flexSize;\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderChildLayoutStyles =\n\t\t\thasChildLayout && ! disableLayoutStyles;\n\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst selector = `.wp-container-content-${ id }`;\n\n\t\tlet css = '';\n\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t}\n\n\t\t// Attach a `wp-container-content` id-based classname.\n\t\tconst className = classnames( props?.className, {\n\t\t\t[ `wp-container-content-${ id }` ]:\n\t\t\t\tshouldRenderChildLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t} );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderChildLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal( <style>{ css }</style>, element ) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/layout/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-layout-styles',\n\twithLayoutStyles\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-child-layout-styles',\n\twithChildLayoutStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/layout/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/layout.js"],"names":["classnames","kebabCase","createHigherOrderComponent","useInstanceId","addFilter","getBlockSupport","hasBlockSupport","useSelect","Button","ButtonGroup","ToggleControl","PanelBody","__","useContext","createPortal","store","blockEditorStore","InspectorControls","useSetting","LayoutStyle","BlockList","getLayoutType","getLayoutTypes","layoutBlockSupportKey","useLayoutClasses","blockAttributes","blockName","rootPaddingAlignment","select","getSettings","__experimentalFeatures","useRootPaddingAwareAlignments","globalLayoutSettings","layout","default","defaultBlockLayout","usedLayout","inherit","contentSize","wideSize","type","layoutClassnames","definitions","className","baseClassName","compoundClassName","split","pop","push","orientation","justifyContent","flexWrap","useLayoutStyles","selector","style","fullLayoutType","blockGapSupport","hasBlockGapSupport","css","getLayoutStyle","layoutDefinitions","LayoutPanel","clientId","setAttributes","attributes","name","defaultThemeLayout","themeSupportsLayout","isContentLocked","__unstableGetContentLockingParent","supportsLayout","layoutBlockSupport","allowSwitching","allowEditing","allowInheriting","showInheritToggle","layoutType","constrainedType","displayControlsForLegacyLayouts","hasContentSizeOrLegacySettings","onChangeType","newType","onChangeLayout","newLayout","LayoutTypeSwitcher","onChange","map","label","addAttribute","settings","withInspectorControls","BlockEdit","props","supportLayout","withLayoutStyles","BlockListBlock","hasLayoutBlockSupport","disableLayoutStyles","shouldRenderLayoutStyles","id","element","__unstableElementContext","layoutClasses","layoutClassNames","withChildLayoutStyles","selfStretch","flexSize","hasChildLayout","shouldRenderChildLayoutStyles"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,SAAT,QAA0B,QAA1B;AAEA;AACA;AACA;;AACA,SAASC,0BAAT,EAAqCC,aAArC,QAA0D,oBAA1D;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,mBAAjD;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SACCC,MADD,EAECC,WAFD,EAGCC,aAHD,EAICC,SAJD,QAKO,uBALP;AAMA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,oBAAzC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,UAA1C;AACA,SAASC,iBAAT,QAAkC,eAAlC;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AACA,SAASC,WAAT,QAA4B,iCAA5B;AACA,OAAOC,SAAP,MAAsB,0BAAtB;AACA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,YAA9C;AAEA,MAAMC,qBAAqB,GAAG,sBAA9B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,gBAAT,GAAkE;AAAA;;AAAA,MAAvCC,eAAuC,uEAArB,EAAqB;AAAA,MAAjBC,SAAiB,uEAAL,EAAK;AACxE,QAAMC,oBAAoB,GAAGpB,SAAS,CAAIqB,MAAF,IAAc;AAAA;;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEZ,gBAAF,CAA9B;AACA,oCAAOa,WAAW,GAAGC,sBAArB,0DAAO,sBACJC,6BADH;AAEA,GAJqC,EAInC,EAJmC,CAAtC;AAKA,QAAMC,oBAAoB,GAAGd,UAAU,CAAE,QAAF,CAAV,IAA0B,EAAvD;AAEA,QAAM;AAAEe,IAAAA;AAAF,MAAaR,eAAnB;AAEA,QAAM;AAAES,IAAAA,OAAO,EAAEC;AAAX,MACL9B,eAAe,CAAEqB,SAAF,EAAaH,qBAAb,CAAf,IAAuD,EADxD;AAEA,QAAMa,UAAU,GACfH,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEI,OAAR,IAAmBJ,MAAnB,aAAmBA,MAAnB,eAAmBA,MAAM,CAAEK,WAA3B,IAA0CL,MAA1C,aAA0CA,MAA1C,eAA0CA,MAAM,CAAEM,QAAlD,GACG,EAAE,GAAGN,MAAL;AAAaO,IAAAA,IAAI,EAAE;AAAnB,GADH,GAEGP,MAAM,IAAIE,kBAAV,IAAgC,EAHpC;AAKA,QAAMM,gBAAgB,GAAG,EAAzB;;AAEA,MACCT,oBADD,aACCA,oBADD,wCACCA,oBAAoB,CAAEU,WADvB,4EACC,sBAAqC,CAAAN,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,KAAoB,SAAzD,CADD,mDACC,uBACGG,SAFJ,EAGE;AAAA;;AACD,UAAMC,aAAa,GAClBZ,oBADkB,aAClBA,oBADkB,iDAClBA,oBAAoB,CAAEU,WADJ,qFAClB,uBAAqC,CAAAN,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,KAAoB,SAAzD,CADkB,2DAClB,uBACGG,SAFJ;AAGA,UAAME,iBAAiB,GAAI,YAAYnB,SAAS,CAC9CoB,KADqC,CAC9B,GAD8B,EAErCC,GAFqC,EAE9B,IAAIH,aAAe,EAF5B;AAGAH,IAAAA,gBAAgB,CAACO,IAAjB,CAAuBJ,aAAvB,EAAsCC,iBAAtC;AACA;;AAED,MACC,CAAET,UAAU,SAAV,IAAAA,UAAU,WAAV,IAAAA,UAAU,CAAEC,OAAZ,IACDD,UADC,aACDA,UADC,eACDA,UAAU,CAAEE,WADX,IAED,CAAAF,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,MAAqB,aAFtB,KAGAb,oBAJD,EAKE;AACDc,IAAAA,gBAAgB,CAACO,IAAjB,CAAuB,oBAAvB;AACA;;AAED,MAAKZ,UAAL,aAAKA,UAAL,eAAKA,UAAU,CAAEa,WAAjB,EAA+B;AAC9BR,IAAAA,gBAAgB,CAACO,IAAjB,CAAwB,MAAM/C,SAAS,CAAEmC,UAAU,CAACa,WAAb,CAA4B,EAAnE;AACA;;AAED,MAAKb,UAAL,aAAKA,UAAL,eAAKA,UAAU,CAAEc,cAAjB,EAAkC;AACjCT,IAAAA,gBAAgB,CAACO,IAAjB,CACE,4BAA4B/C,SAAS,CACrCmC,UAAU,CAACc,cAD0B,CAEnC,EAHJ;AAKA;;AAED,MAAKd,UAAU,SAAV,IAAAA,UAAU,WAAV,IAAAA,UAAU,CAAEe,QAAZ,IAAwBf,UAAU,CAACe,QAAX,KAAwB,QAArD,EAAgE;AAC/DV,IAAAA,gBAAgB,CAACO,IAAjB,CAAuB,WAAvB;AACA;;AAED,SAAOP,gBAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,eAAT,GAAsE;AAAA;;AAAA,MAA5C3B,eAA4C,uEAA1B,EAA0B;AAAA,MAAtBC,SAAsB;AAAA,MAAX2B,QAAW;AAC5E,QAAM;AAAEpB,IAAAA,MAAM,GAAG,EAAX;AAAeqB,IAAAA,KAAK,GAAG;AAAvB,MAA8B7B,eAApC,CAD4E,CAE5E;;AACA,QAAMW,UAAU,GACfH,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEI,OAAR,IAAmBJ,MAAnB,aAAmBA,MAAnB,eAAmBA,MAAM,CAAEK,WAA3B,IAA0CL,MAA1C,aAA0CA,MAA1C,eAA0CA,MAAM,CAAEM,QAAlD,GACG,EAAE,GAAGN,MAAL;AAAaO,IAAAA,IAAI,EAAE;AAAnB,GADH,GAEGP,MAAM,IAAI,EAHd;AAIA,QAAMsB,cAAc,GAAGlC,aAAa,CAAE,CAAAe,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,KAAoB,SAAtB,CAApC;AACA,QAAMR,oBAAoB,GAAGd,UAAU,CAAE,QAAF,CAAV,IAA0B,EAAvD;AACA,QAAMsC,eAAe,GAAGtC,UAAU,CAAE,kBAAF,CAAlC;AACA,QAAMuC,kBAAkB,GAAGD,eAAe,KAAK,IAA/C;AACA,QAAME,GAAG,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,cAAnB,0DAAG,2BAAAJ,cAAc,EAAoB;AAC7C7B,IAAAA,SAD6C;AAE7C2B,IAAAA,QAF6C;AAG7CpB,IAAAA,MAH6C;AAI7C2B,IAAAA,iBAAiB,EAAE5B,oBAAF,aAAEA,oBAAF,uBAAEA,oBAAoB,CAAEU,WAJI;AAK7CY,IAAAA,KAL6C;AAM7CG,IAAAA;AAN6C,GAApB,CAA1B;AAQA,SAAOC,GAAP;AACA;;AAED,SAASG,WAAT,OAKI;AAAA,MALkB;AACrBC,IAAAA,QADqB;AAErBC,IAAAA,aAFqB;AAGrBC,IAAAA,UAHqB;AAIrBC,IAAAA,IAAI,EAAEvC;AAJe,GAKlB;AACH,QAAM;AAAEO,IAAAA;AAAF,MAAa+B,UAAnB;AACA,QAAME,kBAAkB,GAAGhD,UAAU,CAAE,QAAF,CAArC;AACA,QAAM;AAAEiD,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAA2C7D,SAAS,CACvDqB,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,WAAF;AAAewC,MAAAA;AAAf,QACLzC,MAAM,CAAEZ,gBAAF,CADP;AAEA,WAAO;AACNmD,MAAAA,mBAAmB,EAAEtC,WAAW,GAAGyC,cAD7B;AAENF,MAAAA,eAAe,EAAEC,iCAAiC,CAAEP,QAAF;AAF5C,KAAP;AAIA,GARwD,EASzD,CAAEA,QAAF,CATyD,CAA1D;AAYA,QAAMS,kBAAkB,GAAGlE,eAAe,CACzCqB,SADyC,EAEzCH,qBAFyC,EAGzC,EAHyC,CAA1C;AAKA,QAAM;AACLiD,IAAAA,cADK;AAELC,IAAAA,YAAY,GAAG,IAFV;AAGLC,IAAAA,eAAe,GAAG,IAHb;AAILxC,IAAAA,OAAO,EAAEC;AAJJ,MAKFoC,kBALJ;;AAOA,MAAK,CAAEE,YAAP,EAAsB;AACrB,WAAO,IAAP;AACA,GA7BE,CA+BH;AACA;AACA;;;AACA,QAAME,iBAAiB,GAAG,CAAC,EAC1BD,eAAe,IACf,CAAC,CAAER,kBADH,KAEE,EAAEjC,MAAF,aAAEA,MAAF,eAAEA,MAAM,CAAEO,IAAV,KACD,CAAAP,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEO,IAAR,MAAiB,SADhB,IAED,CAAAP,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEO,IAAR,MAAiB,aAFhB,IAGDP,MAHC,aAGDA,MAHC,eAGDA,MAAM,CAAEI,OALT,CAD0B,CAA3B;AASA,QAAMD,UAAU,GAAGH,MAAM,IAAIE,kBAAV,IAAgC,EAAnD;AACA,QAAM;AACLE,IAAAA,OAAO,GAAG,KADL;AAELG,IAAAA,IAAI,GAAG,SAFF;AAGLF,IAAAA,WAAW,GAAG;AAHT,MAIFF,UAJJ;AAKA;AACD;AACA;AACA;AACA;;AACC,MACC,CAAEI,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,aAAjC,KACA,CAAE2B,mBAFH,EAGE;AACD,WAAO,IAAP;AACA;;AACD,QAAMS,UAAU,GAAGvD,aAAa,CAAEmB,IAAF,CAAhC;AACA,QAAMqC,eAAe,GAAGxD,aAAa,CAAE,aAAF,CAArC;AACA,QAAMyD,+BAA+B,GACpC,CAAE1C,UAAU,CAACI,IAAb,KAAuBF,WAAW,IAAID,OAAtC,CADD;AAEA,QAAM0C,8BAA8B,GAAG,CAAC,CAAE1C,OAAH,IAAc,CAAC,CAAEC,WAAxD;;AAEA,QAAM0C,YAAY,GAAKC,OAAF,IACpBlB,aAAa,CAAE;AAAE9B,IAAAA,MAAM,EAAE;AAAEO,MAAAA,IAAI,EAAEyC;AAAR;AAAV,GAAF,CADd;;AAEA,QAAMC,cAAc,GAAKC,SAAF,IACtBpB,aAAa,CAAE;AAAE9B,IAAAA,MAAM,EAAEkD;AAAV,GAAF,CADd;;AAGA,SACC,8BACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGvE,EAAE,CAAE,QAAF;AAArB,KACG+D,iBAAiB,IAClB,8BACC,cAAC,aAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,SAAS,EAAC,oCAFX;AAGC,IAAA,KAAK,EAAG/D,EAAE,CAAE,gCAAF,CAHX;AAIC,IAAA,OAAO,EACN,CAAAgE,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEX,IAAZ,MAAqB,aAArB,IACAc,8BANF;AAQC,IAAA,QAAQ,EAAG,MACVhB,aAAa,CAAE;AACd9B,MAAAA,MAAM,EAAE;AACPO,QAAAA,IAAI,EACH,CAAAoC,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEX,IAAZ,MACC,aADD,IAEAc,8BAFA,GAGG,SAHH,GAIG;AANG;AADM,KAAF,CATf;AAoBC,IAAA,IAAI,EACH,CAAAH,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEX,IAAZ,MAAqB,aAArB,IACAc,8BADA,GAEGnE,EAAE,CACF,wEADE,CAFL,GAKGA,EAAE,CACF,2EADE;AA1BP,IADD,CAFF,EAqCG,CAAEyB,OAAF,IAAamC,cAAb,IACD,cAAC,kBAAD;AACC,IAAA,IAAI,EAAGhC,IADR;AAEC,IAAA,QAAQ,EAAGwC;AAFZ,IAtCF,EA4CGJ,UAAU,IAAIA,UAAU,CAACX,IAAX,KAAoB,SAAlC,IACD,cAAC,UAAD,CAAY,iBAAZ;AACC,IAAA,MAAM,EAAG7B,UADV;AAEC,IAAA,QAAQ,EAAG8C,cAFZ;AAGC,IAAA,kBAAkB,EAAGX;AAHtB,IA7CF,EAmDGM,eAAe,IAAIC,+BAAnB,IACD,cAAC,eAAD,CAAiB,iBAAjB;AACC,IAAA,MAAM,EAAG1C,UADV;AAEC,IAAA,QAAQ,EAAG8C,cAFZ;AAGC,IAAA,kBAAkB,EAAGX;AAHtB,IApDF,CADD,CADD,EA8DG,CAAElC,OAAF,IAAa,CAAE+B,eAAf,IAAkCQ,UAAlC,IACD,cAAC,UAAD,CAAY,eAAZ;AACC,IAAA,MAAM,EAAGxC,UADV;AAEC,IAAA,QAAQ,EAAG8C,cAFZ;AAGC,IAAA,kBAAkB,EAAGX;AAHtB,IA/DF,CADD;AAwEA;;AAED,SAASa,kBAAT,QAAkD;AAAA,MAArB;AAAE5C,IAAAA,IAAF;AAAQ6C,IAAAA;AAAR,GAAqB;AACjD,SACC,cAAC,WAAD,QACG/D,cAAc,GAAGgE,GAAjB,CAAsB,SAAuB;AAAA,QAArB;AAAErB,MAAAA,IAAF;AAAQsB,MAAAA;AAAR,KAAqB;AAC9C,WACC,cAAC,MAAD;AACC,MAAA,GAAG,EAAGtB,IADP;AAEC,MAAA,SAAS,EAAGzB,IAAI,KAAKyB,IAFtB;AAGC,MAAA,OAAO,EAAG,MAAMoB,QAAQ,CAAEpB,IAAF;AAHzB,OAKGsB,KALH,CADD;AASA,GAVC,CADH,CADD;AAeA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASC,YAAT,CAAuBC,QAAvB,EAAkC;AAAA;;AACxC,MAAK,4DAAYA,QAAQ,CAACzB,UAArB,yDAAY,qBAAqB/B,MAAjC,yEAA2C,EAA3C,CAAL,EAAuD;AACtD,WAAOwD,QAAP;AACA;;AACD,MAAKnF,eAAe,CAAEmF,QAAF,EAAYlE,qBAAZ,CAApB,EAA0D;AACzDkE,IAAAA,QAAQ,CAACzB,UAAT,GAAsB,EACrB,GAAGyB,QAAQ,CAACzB,UADS;AAErB/B,MAAAA,MAAM,EAAE;AACPO,QAAAA,IAAI,EAAE;AADC;AAFa,KAAtB;AAMA;;AAED,SAAOiD,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,qBAAqB,GAAGxF,0BAA0B,CAC5DyF,SAAF,IAAmBC,KAAF,IAAa;AAC7B,QAAM;AAAE3B,IAAAA,IAAI,EAAEvC;AAAR,MAAsBkE,KAA5B;AACA,QAAMC,aAAa,GAAGvF,eAAe,CACpCoB,SADoC,EAEpCH,qBAFoC,CAArC;AAKA,SAAO,CACNsE,aAAa,IAAI,cAAC,WAAD;AAAa,IAAA,GAAG,EAAC;AAAjB,KAA+BD,KAA/B,EADX,EAEN,cAAC,SAAD;AAAW,IAAA,GAAG,EAAC;AAAf,KAA2BA,KAA3B,EAFM,CAAP;AAIA,CAZ6D,EAa9D,uBAb8D,CAAxD;AAgBP;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAME,gBAAgB,GAAG5F,0BAA0B,CACvD6F,cAAF,IAAwBH,KAAF,IAAa;AAClC,QAAM;AAAE3B,IAAAA,IAAF;AAAQD,IAAAA;AAAR,MAAuB4B,KAA7B;AACA,QAAMI,qBAAqB,GAAG1F,eAAe,CAC5C2D,IAD4C,EAE5C1C,qBAF4C,CAA7C;AAIA,QAAM0E,mBAAmB,GAAG1F,SAAS,CAAIqB,MAAF,IAAc;AACpD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEZ,gBAAF,CAA9B;AACA,WAAO,CAAC,CAAEa,WAAW,GAAGoE,mBAAxB;AACA,GAHoC,CAArC;AAIA,QAAMC,wBAAwB,GAC7BF,qBAAqB,IAAI,CAAEC,mBAD5B;AAEA,QAAME,EAAE,GAAGhG,aAAa,CAAE4F,cAAF,CAAxB;AACA,QAAM7B,kBAAkB,GAAGhD,UAAU,CAAE,QAAF,CAAV,IAA0B,EAArD;AACA,QAAMkF,OAAO,GAAGvF,UAAU,CAAEO,SAAS,CAACiF,wBAAZ,CAA1B;AACA,QAAM;AAAEpE,IAAAA;AAAF,MAAa+B,UAAnB;AACA,QAAM;AAAE9B,IAAAA,OAAO,EAAEC;AAAX,MACL9B,eAAe,CAAE4D,IAAF,EAAQ1C,qBAAR,CAAf,IAAkD,EADnD;AAEA,QAAMa,UAAU,GACfH,MAAM,SAAN,IAAAA,MAAM,WAAN,IAAAA,MAAM,CAAEI,OAAR,IAAmBJ,MAAnB,aAAmBA,MAAnB,eAAmBA,MAAM,CAAEK,WAA3B,IAA0CL,MAA1C,aAA0CA,MAA1C,eAA0CA,MAAM,CAAEM,QAAlD,GACG,EAAE,GAAGN,MAAL;AAAaO,IAAAA,IAAI,EAAE;AAAnB,GADH,GAEGP,MAAM,IAAIE,kBAAV,IAAgC,EAHpC;AAIA,QAAMmE,aAAa,GAAGN,qBAAqB,GACxCxE,gBAAgB,CAAEwC,UAAF,EAAcC,IAAd,CADwB,GAExC,IAFH,CAtBkC,CAyBlC;;AACA,QAAMZ,QAAQ,GAAI,iBAAiB8C,EAAI,iBAAiBA,EAAI,EAA5D;AACA,QAAM3C,eAAe,GAAGtC,UAAU,CAAE,kBAAF,CAAlC;AACA,QAAMuC,kBAAkB,GAAGD,eAAe,KAAK,IAA/C,CA5BkC,CA8BlC;AACA;;AACA,MAAIE,GAAJ;;AACA,MAAKwC,wBAAL,EAAgC;AAAA;;AAC/B,UAAM3C,cAAc,GAAGlC,aAAa,CACnC,CAAAe,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEI,IAAZ,KAAoB,SADe,CAApC;AAGAkB,IAAAA,GAAG,GAAGH,cAAH,aAAGA,cAAH,iDAAGA,cAAc,CAAEI,cAAnB,2DAAG,4BAAAJ,cAAc,EAAoB;AACvC7B,MAAAA,SAAS,EAAEuC,IAD4B;AAEvCZ,MAAAA,QAFuC;AAGvCpB,MAAAA,MAAM,EAAEG,UAH+B;AAIvCwB,MAAAA,iBAAiB,EAAEM,kBAAF,aAAEA,kBAAF,uBAAEA,kBAAkB,CAAExB,WAJA;AAKvCY,MAAAA,KAAK,EAAEU,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEV,KALoB;AAMvCG,MAAAA;AANuC,KAApB,CAApB;AAQA,GA7CiC,CA+ClC;;;AACA,QAAM8C,gBAAgB,GAAGvG,UAAU,CAClC;AACC,KAAG,gBAAgBmG,EAAI,EAAvB,GAA4BD,wBAAwB,IAAI,CAAC,CAAExC,GAD5D,CACiE;;AADjE,GADkC,EAIlC4C,aAJkC,CAAnC;AAOA,SACC,8BACGJ,wBAAwB,IACzBE,OADC,IAED,CAAC,CAAE1C,GAFF,IAGD5C,YAAY,CACX,cAAC,WAAD;AACC,IAAA,SAAS,EAAGmD,IADb;AAEC,IAAA,QAAQ,EAAGZ,QAFZ;AAGC,IAAA,GAAG,EAAGK,GAHP;AAIC,IAAA,MAAM,EAAGtB,UAJV;AAKC,IAAA,KAAK,EAAG4B,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEV;AALrB,IADW,EAQX8C,OARW,CAJd,EAcC,cAAC,cAAD,eACMR,KADN;AAEC,IAAA,0BAA0B,EAAGW;AAF9B,KAdD,CADD;AAqBA,CA7EwD,CAAnD;AAgFP;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,qBAAqB,GAAGtG,0BAA0B,CAC5D6F,cAAF,IAAwBH,KAAF,IAAa;AAClC,QAAM;AAAE5B,IAAAA;AAAF,MAAiB4B,KAAvB;AACA,QAAM;AAAEtC,IAAAA,KAAK,EAAE;AAAErB,MAAAA,MAAM,GAAG;AAAX,QAAkB;AAA3B,MAAkC+B,UAAxC;AACA,QAAM;AAAEyC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAA4BzE,MAAlC;AACA,QAAM0E,cAAc,GAAGF,WAAW,IAAIC,QAAtC;AACA,QAAMT,mBAAmB,GAAG1F,SAAS,CAAIqB,MAAF,IAAc;AACpD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEZ,gBAAF,CAA9B;AACA,WAAO,CAAC,CAAEa,WAAW,GAAGoE,mBAAxB;AACA,GAHoC,CAArC;AAIA,QAAMW,6BAA6B,GAClCD,cAAc,IAAI,CAAEV,mBADrB;AAGA,QAAMG,OAAO,GAAGvF,UAAU,CAAEO,SAAS,CAACiF,wBAAZ,CAA1B;AACA,QAAMF,EAAE,GAAGhG,aAAa,CAAE4F,cAAF,CAAxB;AACA,QAAM1C,QAAQ,GAAI,yBAAyB8C,EAAI,EAA/C;AAEA,MAAIzC,GAAG,GAAG,EAAV;;AAEA,MAAK+C,WAAW,KAAK,OAAhB,IAA2BC,QAAhC,EAA2C;AAC1ChD,IAAAA,GAAG,IAAK,GAAGL,QAAU;AACxB,kBAAmBqD,QAAU;AAC7B;AACA,KAHG;AAIA,GALD,MAKO,IAAKD,WAAW,KAAK,MAArB,EAA8B;AACpC/C,IAAAA,GAAG,IAAK,GAAGL,QAAU;AACxB;AACA,KAFG;AAGA,GA3BiC,CA6BlC;;;AACA,QAAMV,SAAS,GAAG3C,UAAU,CAAE4F,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEjD,SAAT,EAAoB;AAC/C,KAAG,wBAAwBwD,EAAI,EAA/B,GACCS,6BAA6B,IAAI,CAAC,CAAElD,GAFU,CAEL;;AAFK,GAApB,CAA5B;AAKA,SACC,8BACGkD,6BAA6B,IAC9BR,OADC,IAED,CAAC,CAAE1C,GAFF,IAGD5C,YAAY,CAAE,6BAAS4C,GAAT,CAAF,EAA0B0C,OAA1B,CAJd,EAKC,cAAC,cAAD,eAAqBR,KAArB;AAA6B,IAAA,SAAS,EAAGjD;AAAzC,KALD,CADD;AASA,CA7C6D,CAAxD;AAgDPvC,SAAS,CACR,0BADQ,EAER,0BAFQ,EAGRoF,YAHQ,CAAT;AAKApF,SAAS,CACR,uBADQ,EAER,uCAFQ,EAGR0F,gBAHQ,CAAT;AAKA1F,SAAS,CACR,uBADQ,EAER,6CAFQ,EAGRoG,qBAHQ,CAAT;AAKApG,SAAS,CACR,kBADQ,EAER,4CAFQ,EAGRsF,qBAHQ,CAAT","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tButtonGroup,\n\tToggleControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext, createPortal } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { InspectorControls } from '../components';\nimport useSetting from '../components/use-setting';\nimport { LayoutStyle } from '../components/block-list/layout';\nimport BlockList from '../components/block-list';\nimport { getLayoutType, getLayoutTypes } from '../layouts';\n\nconst layoutBlockSupportKey = '__experimentalLayout';\n\n/**\n * Generates the utility classnames for the given block's layout attributes.\n *\n * @param { Object } blockAttributes Block attributes.\n * @param { string } blockName Block name.\n *\n * @return { Array } Array of CSS classname strings.\n */\nexport function useLayoutClasses( blockAttributes = {}, blockName = '' ) {\n\tconst rootPaddingAlignment = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalFeatures\n\t\t\t?.useRootPaddingAwareAlignments;\n\t}, [] );\n\tconst globalLayoutSettings = useSetting( 'layout' ) || {};\n\n\tconst { layout } = blockAttributes;\n\n\tconst { default: defaultBlockLayout } =\n\t\tgetBlockSupport( blockName, layoutBlockSupportKey ) || {};\n\tconst usedLayout =\n\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t: layout || defaultBlockLayout || {};\n\n\tconst layoutClassnames = [];\n\n\tif (\n\t\tglobalLayoutSettings?.definitions?.[ usedLayout?.type || 'default' ]\n\t\t\t?.className\n\t) {\n\t\tconst baseClassName =\n\t\t\tglobalLayoutSettings?.definitions?.[ usedLayout?.type || 'default' ]\n\t\t\t\t?.className;\n\t\tconst compoundClassName = `wp-block-${ blockName\n\t\t\t.split( '/' )\n\t\t\t.pop() }-${ baseClassName }`;\n\t\tlayoutClassnames.push( baseClassName, compoundClassName );\n\t}\n\n\tif (\n\t\t( usedLayout?.inherit ||\n\t\t\tusedLayout?.contentSize ||\n\t\t\tusedLayout?.type === 'constrained' ) &&\n\t\trootPaddingAlignment\n\t) {\n\t\tlayoutClassnames.push( 'has-global-padding' );\n\t}\n\n\tif ( usedLayout?.orientation ) {\n\t\tlayoutClassnames.push( `is-${ kebabCase( usedLayout.orientation ) }` );\n\t}\n\n\tif ( usedLayout?.justifyContent ) {\n\t\tlayoutClassnames.push(\n\t\t\t`is-content-justification-${ kebabCase(\n\t\t\t\tusedLayout.justifyContent\n\t\t\t) }`\n\t\t);\n\t}\n\n\tif ( usedLayout?.flexWrap && usedLayout.flexWrap === 'nowrap' ) {\n\t\tlayoutClassnames.push( 'is-nowrap' );\n\t}\n\n\treturn layoutClassnames;\n}\n\n/**\n * Generates a CSS rule with the given block's layout styles.\n *\n * @param { Object } blockAttributes Block attributes.\n * @param { string } blockName Block name.\n * @param { string } selector A selector to use in generating the CSS rule.\n *\n * @return { string } CSS rule.\n */\nexport function useLayoutStyles( blockAttributes = {}, blockName, selector ) {\n\tconst { layout = {}, style = {} } = blockAttributes;\n\t// Update type for blocks using legacy layouts.\n\tconst usedLayout =\n\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t: layout || {};\n\tconst fullLayoutType = getLayoutType( usedLayout?.type || 'default' );\n\tconst globalLayoutSettings = useSetting( 'layout' ) || {};\n\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGapSupport !== null;\n\tconst css = fullLayoutType?.getLayoutStyle?.( {\n\t\tblockName,\n\t\tselector,\n\t\tlayout,\n\t\tlayoutDefinitions: globalLayoutSettings?.definitions,\n\t\tstyle,\n\t\thasBlockGapSupport,\n\t} );\n\treturn css;\n}\n\nfunction LayoutPanel( {\n\tclientId,\n\tsetAttributes,\n\tattributes,\n\tname: blockName,\n} ) {\n\tconst { layout } = attributes;\n\tconst defaultThemeLayout = useSetting( 'layout' );\n\tconst { themeSupportsLayout, isContentLocked } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetContentLockingParent } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().supportsLayout,\n\t\t\t\tisContentLocked: __unstableGetContentLockingParent( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst layoutBlockSupport = getBlockSupport(\n\t\tblockName,\n\t\tlayoutBlockSupportKey,\n\t\t{}\n\t);\n\tconst {\n\t\tallowSwitching,\n\t\tallowEditing = true,\n\t\tallowInheriting = true,\n\t\tdefault: defaultBlockLayout,\n\t} = layoutBlockSupport;\n\n\tif ( ! allowEditing ) {\n\t\treturn null;\n\t}\n\n\t// Only show the inherit toggle if it's supported,\n\t// a default theme layout is set (e.g. one that provides `contentSize` and/or `wideSize` values),\n\t// and either the default / flow or the constrained layout type is in use, as the toggle switches from one to the other.\n\tconst showInheritToggle = !! (\n\t\tallowInheriting &&\n\t\t!! defaultThemeLayout &&\n\t\t( ! layout?.type ||\n\t\t\tlayout?.type === 'default' ||\n\t\t\tlayout?.type === 'constrained' ||\n\t\t\tlayout?.inherit )\n\t);\n\n\tconst usedLayout = layout || defaultBlockLayout || {};\n\tconst {\n\t\tinherit = false,\n\t\ttype = 'default',\n\t\tcontentSize = null,\n\t} = usedLayout;\n\t/**\n\t * `themeSupportsLayout` is only relevant to the `default/flow` or\n\t * `constrained` layouts and it should not be taken into account when other\n\t * `layout` types are used.\n\t */\n\tif (\n\t\t( type === 'default' || type === 'constrained' ) &&\n\t\t! themeSupportsLayout\n\t) {\n\t\treturn null;\n\t}\n\tconst layoutType = getLayoutType( type );\n\tconst constrainedType = getLayoutType( 'constrained' );\n\tconst displayControlsForLegacyLayouts =\n\t\t! usedLayout.type && ( contentSize || inherit );\n\tconst hasContentSizeOrLegacySettings = !! inherit || !! contentSize;\n\n\tconst onChangeType = ( newType ) =>\n\t\tsetAttributes( { layout: { type: newType } } );\n\tconst onChangeLayout = ( newLayout ) =>\n\t\tsetAttributes( { layout: newLayout } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Layout' ) }>\n\t\t\t\t\t{ showInheritToggle && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-hooks__toggle-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Inner blocks use content width' ) }\n\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t\t\t\t\tlayoutType?.name ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t'constrained' ||\n\t\t\t\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'default'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: 'constrained',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlayoutType?.name === 'constrained' ||\n\t\t\t\t\t\t\t\t\thasContentSizeOrLegacySettings\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks use content width with options for full and wide widths.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Nested blocks will fill the width of this container. Toggle to constrain.'\n\t\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\t{ ! inherit && allowSwitching && (\n\t\t\t\t\t\t<LayoutTypeSwitcher\n\t\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\t\tonChange={ onChangeType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ layoutType && layoutType.name !== 'default' && (\n\t\t\t\t\t\t<layoutType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ constrainedType && displayControlsForLegacyLayouts && (\n\t\t\t\t\t\t<constrainedType.inspectorControls\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! inherit && ! isContentLocked && layoutType && (\n\t\t\t\t<layoutType.toolBarControls\n\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\tonChange={ onChangeLayout }\n\t\t\t\t\tlayoutBlockSupport={ layoutBlockSupport }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction LayoutTypeSwitcher( { type, onChange } ) {\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t{ getLayoutTypes().map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tisPressed={ type === name }\n\t\t\t\t\t\tonClick={ () => onChange( name ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ButtonGroup>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include `layout`.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addAttribute( settings ) {\n\tif ( 'type' in ( settings.attributes?.layout ?? {} ) ) {\n\t\treturn settings;\n\t}\n\tif ( hasBlockSupport( settings, layoutBlockSupportKey ) ) {\n\t\tsettings.attributes = {\n\t\t\t...settings.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override the default edit UI to include layout controls\n *\n * @param {Function} BlockEdit Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withInspectorControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { name: blockName } = props;\n\t\tconst supportLayout = hasBlockSupport(\n\t\t\tblockName,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\n\t\treturn [\n\t\t\tsupportLayout && <LayoutPanel key=\"layout\" { ...props } />,\n\t\t\t<BlockEdit key=\"edit\" { ...props } />,\n\t\t];\n\t},\n\t'withInspectorControls'\n);\n\n/**\n * Override the default block element to add the layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst hasLayoutBlockSupport = hasBlockSupport(\n\t\t\tname,\n\t\t\tlayoutBlockSupportKey\n\t\t);\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderLayoutStyles =\n\t\t\thasLayoutBlockSupport && ! disableLayoutStyles;\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst defaultThemeLayout = useSetting( 'layout' ) || {};\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst { layout } = attributes;\n\t\tconst { default: defaultBlockLayout } =\n\t\t\tgetBlockSupport( name, layoutBlockSupportKey ) || {};\n\t\tconst usedLayout =\n\t\t\tlayout?.inherit || layout?.contentSize || layout?.wideSize\n\t\t\t\t? { ...layout, type: 'constrained' }\n\t\t\t\t: layout || defaultBlockLayout || {};\n\t\tconst layoutClasses = hasLayoutBlockSupport\n\t\t\t? useLayoutClasses( attributes, name )\n\t\t\t: null;\n\t\t// Higher specificity to override defaults from theme.json.\n\t\tconst selector = `.wp-container-${ id }.wp-container-${ id }`;\n\t\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\t\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\t\t// Get CSS string for the current layout type.\n\t\t// The CSS and `style` element is only output if it is not empty.\n\t\tlet css;\n\t\tif ( shouldRenderLayoutStyles ) {\n\t\t\tconst fullLayoutType = getLayoutType(\n\t\t\t\tusedLayout?.type || 'default'\n\t\t\t);\n\t\t\tcss = fullLayoutType?.getLayoutStyle?.( {\n\t\t\t\tblockName: name,\n\t\t\t\tselector,\n\t\t\t\tlayout: usedLayout,\n\t\t\t\tlayoutDefinitions: defaultThemeLayout?.definitions,\n\t\t\t\tstyle: attributes?.style,\n\t\t\t\thasBlockGapSupport,\n\t\t\t} );\n\t\t}\n\n\t\t// Attach a `wp-container-` id-based class name as well as a layout class name such as `is-layout-flex`.\n\t\tconst layoutClassNames = classnames(\n\t\t\t{\n\t\t\t\t[ `wp-container-${ id }` ]: shouldRenderLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t\t},\n\t\t\tlayoutClasses\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<LayoutStyle\n\t\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t\t\tselector={ selector }\n\t\t\t\t\t\t\tcss={ css }\n\t\t\t\t\t\t\tlayout={ usedLayout }\n\t\t\t\t\t\t\tstyle={ attributes?.style }\n\t\t\t\t\t\t/>,\n\t\t\t\t\t\telement\n\t\t\t\t\t) }\n\t\t\t\t<BlockListBlock\n\t\t\t\t\t{ ...props }\n\t\t\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n);\n\n/**\n * Override the default block element to add the child layout styles.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withChildLayoutStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { attributes } = props;\n\t\tconst { style: { layout = {} } = {} } = attributes;\n\t\tconst { selfStretch, flexSize } = layout;\n\t\tconst hasChildLayout = selfStretch || flexSize;\n\t\tconst disableLayoutStyles = useSelect( ( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\treturn !! getSettings().disableLayoutStyles;\n\t\t} );\n\t\tconst shouldRenderChildLayoutStyles =\n\t\t\thasChildLayout && ! disableLayoutStyles;\n\n\t\tconst element = useContext( BlockList.__unstableElementContext );\n\t\tconst id = useInstanceId( BlockListBlock );\n\t\tconst selector = `.wp-container-content-${ id }`;\n\n\t\tlet css = '';\n\n\t\tif ( selfStretch === 'fixed' && flexSize ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tflex-basis: ${ flexSize };\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}`;\n\t\t} else if ( selfStretch === 'fill' ) {\n\t\t\tcss += `${ selector } {\n\t\t\t\tflex-grow: 1;\n\t\t\t}`;\n\t\t}\n\n\t\t// Attach a `wp-container-content` id-based classname.\n\t\tconst className = classnames( props?.className, {\n\t\t\t[ `wp-container-content-${ id }` ]:\n\t\t\t\tshouldRenderChildLayoutStyles && !! css, // Only attach a container class if there is generated CSS to be attached.\n\t\t} );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ shouldRenderChildLayoutStyles &&\n\t\t\t\t\telement &&\n\t\t\t\t\t!! css &&\n\t\t\t\t\tcreatePortal( <style>{ css }</style>, element ) }\n\t\t\t\t<BlockListBlock { ...props } className={ className } />\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/layout/addAttribute',\n\taddAttribute\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-layout-styles',\n\twithLayoutStyles\n);\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/editor/layout/with-child-layout-styles',\n\twithChildLayoutStyles\n);\naddFilter(\n\t'editor.BlockEdit',\n\t'core/editor/layout/with-inspector-controls',\n\twithInspectorControls\n);\n"]}
|
|
@@ -21,6 +21,12 @@ const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';
|
|
24
|
+
/**
|
|
25
|
+
* Key within block settings' supports array indicating support for text
|
|
26
|
+
* columns e.g. settings found in `block.json`.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
const TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';
|
|
24
30
|
/**
|
|
25
31
|
* Key within block settings' supports array indicating support for text
|
|
26
32
|
* decorations e.g. settings found in `block.json`.
|
|
@@ -40,7 +46,7 @@ const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';
|
|
|
40
46
|
|
|
41
47
|
const LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';
|
|
42
48
|
const LAYOUT_SUPPORT_KEY = '__experimentalLayout';
|
|
43
|
-
const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY, FONT_STYLE_SUPPORT_KEY, FONT_WEIGHT_SUPPORT_KEY, FONT_FAMILY_SUPPORT_KEY, TEXT_DECORATION_SUPPORT_KEY, TEXT_TRANSFORM_SUPPORT_KEY, LETTER_SPACING_SUPPORT_KEY];
|
|
49
|
+
const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY, FONT_STYLE_SUPPORT_KEY, FONT_WEIGHT_SUPPORT_KEY, FONT_FAMILY_SUPPORT_KEY, TEXT_COLUMNS_SUPPORT_KEY, TEXT_DECORATION_SUPPORT_KEY, TEXT_TRANSFORM_SUPPORT_KEY, LETTER_SPACING_SUPPORT_KEY];
|
|
44
50
|
const SPACING_SUPPORT_KEY = 'spacing';
|
|
45
51
|
const styleSupportKeys = [...TYPOGRAPHY_SUPPORT_KEYS, BORDER_SUPPORT_KEY, COLOR_SUPPORT_KEY, SPACING_SUPPORT_KEY];
|
|
46
52
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/supports.js"],"names":["getBlockSupport","hasBlockSupport","Platform","ALIGN_SUPPORT_KEY","ALIGN_WIDE_SUPPORT_KEY","BORDER_SUPPORT_KEY","COLOR_SUPPORT_KEY","CUSTOM_CLASS_NAME_SUPPORT_KEY","FONT_FAMILY_SUPPORT_KEY","FONT_SIZE_SUPPORT_KEY","LINE_HEIGHT_SUPPORT_KEY","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","TEXT_DECORATION_SUPPORT_KEY","TEXT_TRANSFORM_SUPPORT_KEY","LETTER_SPACING_SUPPORT_KEY","LAYOUT_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","SPACING_SUPPORT_KEY","styleSupportKeys","hasAlignSupport","nameOrType","getAlignSupport","hasAlignWideSupport","getAlignWideSupport","hasBorderSupport","feature","OS","support","color","radius","width","style","getBorderSupport","hasColorSupport","colorSupport","link","gradient","background","text","hasLinkColorSupport","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","getColorSupport","hasCustomClassNameSupport","getCustomClassNameSupport","hasFontFamilySupport","getFontFamilySupport","hasFontSizeSupport","getFontSizeSupport","hasLayoutSupport","getLayoutSupport","hasStyleSupport","some","key"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { Platform } from '@wordpress/element';\n\nconst ALIGN_SUPPORT_KEY = 'align';\nconst ALIGN_WIDE_SUPPORT_KEY = 'alignWide';\nconst BORDER_SUPPORT_KEY = '__experimentalBorder';\nconst COLOR_SUPPORT_KEY = 'color';\nconst CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName';\nconst FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\nconst FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';\nconst LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight';\n/**\n * Key within block settings' support array indicating support for font style.\n */\nconst FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\n/**\n * Key within block settings' support array indicating support for font weight.\n */\nconst FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\n/**\n * Key within block settings' supports array indicating support for text\n * decorations e.g. settings found in `block.json`.\n */\nconst TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';\n/**\n * Key within block settings' supports array indicating support for text\n * transforms e.g. settings found in `block.json`.\n */\nconst TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';\n/**\n * Key within block settings' supports array indicating support for letter-spacing\n * e.g. settings found in `block.json`.\n */\nconst LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';\nconst LAYOUT_SUPPORT_KEY = '__experimentalLayout';\nconst TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\nconst SPACING_SUPPORT_KEY = 'spacing';\nconst styleSupportKeys = [\n\t...TYPOGRAPHY_SUPPORT_KEYS,\n\tBORDER_SUPPORT_KEY,\n\tCOLOR_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n];\n\n/**\n * Returns true if the block defines support for align.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for align wide.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignWideSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align wide, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignWideSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( nameOrType, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( nameOrType, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Get block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getBorderSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ BORDER_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\n/**\n * Returns true if the block defines support for link color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLinkColorSupport = ( nameOrType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\n/**\n * Returns true if the block defines support for gradient color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasGradientSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasBackgroundColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasTextColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Get block support for color properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Color feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getColorSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ COLOR_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for custom class name.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasCustomClassNameSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns the block support value for custom class name, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getCustomClassNameSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns true if the block defines support for font family.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontFamilySupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font family, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontFamilySupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for font size.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontSizeSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font size, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontSizeSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for layout.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLayoutSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns the block support value for layout, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getLayoutSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for style.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasStyleSupport = ( nameOrType ) =>\n\tstyleSupportKeys.some( ( key ) => hasBlockSupport( nameOrType, key ) );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/supports.js"],"names":["getBlockSupport","hasBlockSupport","Platform","ALIGN_SUPPORT_KEY","ALIGN_WIDE_SUPPORT_KEY","BORDER_SUPPORT_KEY","COLOR_SUPPORT_KEY","CUSTOM_CLASS_NAME_SUPPORT_KEY","FONT_FAMILY_SUPPORT_KEY","FONT_SIZE_SUPPORT_KEY","LINE_HEIGHT_SUPPORT_KEY","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","TEXT_COLUMNS_SUPPORT_KEY","TEXT_DECORATION_SUPPORT_KEY","TEXT_TRANSFORM_SUPPORT_KEY","LETTER_SPACING_SUPPORT_KEY","LAYOUT_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","SPACING_SUPPORT_KEY","styleSupportKeys","hasAlignSupport","nameOrType","getAlignSupport","hasAlignWideSupport","getAlignWideSupport","hasBorderSupport","feature","OS","support","color","radius","width","style","getBorderSupport","hasColorSupport","colorSupport","link","gradient","background","text","hasLinkColorSupport","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","getColorSupport","hasCustomClassNameSupport","getCustomClassNameSupport","hasFontFamilySupport","getFontFamilySupport","hasFontSizeSupport","getFontSizeSupport","hasLayoutSupport","getLayoutSupport","hasStyleSupport","some","key"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { Platform } from '@wordpress/element';\n\nconst ALIGN_SUPPORT_KEY = 'align';\nconst ALIGN_WIDE_SUPPORT_KEY = 'alignWide';\nconst BORDER_SUPPORT_KEY = '__experimentalBorder';\nconst COLOR_SUPPORT_KEY = 'color';\nconst CUSTOM_CLASS_NAME_SUPPORT_KEY = 'customClassName';\nconst FONT_FAMILY_SUPPORT_KEY = 'typography.__experimentalFontFamily';\nconst FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';\nconst LINE_HEIGHT_SUPPORT_KEY = 'typography.lineHeight';\n/**\n * Key within block settings' support array indicating support for font style.\n */\nconst FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\n/**\n * Key within block settings' support array indicating support for font weight.\n */\nconst FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\n/**\n * Key within block settings' supports array indicating support for text\n * columns e.g. settings found in `block.json`.\n */\nconst TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';\n/**\n * Key within block settings' supports array indicating support for text\n * decorations e.g. settings found in `block.json`.\n */\nconst TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';\n/**\n * Key within block settings' supports array indicating support for text\n * transforms e.g. settings found in `block.json`.\n */\nconst TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';\n/**\n * Key within block settings' supports array indicating support for letter-spacing\n * e.g. settings found in `block.json`.\n */\nconst LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';\nconst LAYOUT_SUPPORT_KEY = '__experimentalLayout';\nconst TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_COLUMNS_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\nconst SPACING_SUPPORT_KEY = 'spacing';\nconst styleSupportKeys = [\n\t...TYPOGRAPHY_SUPPORT_KEYS,\n\tBORDER_SUPPORT_KEY,\n\tCOLOR_SUPPORT_KEY,\n\tSPACING_SUPPORT_KEY,\n];\n\n/**\n * Returns true if the block defines support for align.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for align wide.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasAlignWideSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for align wide, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getAlignWideSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, ALIGN_WIDE_SUPPORT_KEY );\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( nameOrType, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( nameOrType, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Get block support for border properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Border feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getBorderSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ BORDER_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\n/**\n * Returns true if the block defines support for link color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLinkColorSupport = ( nameOrType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\n/**\n * Returns true if the block defines support for gradient color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasGradientSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasBackgroundColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\n/**\n * Returns true if the block defines support for background color.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasTextColorSupport = ( nameOrType ) => {\n\tconst colorSupport = getBlockSupport( nameOrType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Get block support for color properties.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @param {string} feature Color feature to get.\n *\n * @return {unknown} The block support.\n */\nexport const getColorSupport = ( nameOrType, feature ) =>\n\tgetBlockSupport( nameOrType, [ COLOR_SUPPORT_KEY, feature ] );\n\n/**\n * Returns true if the block defines support for custom class name.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasCustomClassNameSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns the block support value for custom class name, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getCustomClassNameSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, CUSTOM_CLASS_NAME_SUPPORT_KEY, true );\n\n/**\n * Returns true if the block defines support for font family.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontFamilySupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font family, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontFamilySupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_FAMILY_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for font size.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasFontSizeSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns the block support value for font size, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getFontSizeSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, FONT_SIZE_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for layout.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasLayoutSupport = ( nameOrType ) =>\n\thasBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns the block support value for layout, if defined.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {unknown} The block support value.\n */\nexport const getLayoutSupport = ( nameOrType ) =>\n\tgetBlockSupport( nameOrType, LAYOUT_SUPPORT_KEY );\n\n/**\n * Returns true if the block defines support for style.\n *\n * @param {string|Object} nameOrType Block name or type object.\n * @return {boolean} Whether the block supports the feature.\n */\nexport const hasStyleSupport = ( nameOrType ) =>\n\tstyleSupportKeys.some( ( key ) => hasBlockSupport( nameOrType, key ) );\n"]}
|
|
@@ -26,10 +26,11 @@ function omit(object, keys) {
|
|
|
26
26
|
const LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';
|
|
27
27
|
const TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';
|
|
28
28
|
const TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';
|
|
29
|
+
const TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';
|
|
29
30
|
const FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';
|
|
30
31
|
const FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';
|
|
31
32
|
export const TYPOGRAPHY_SUPPORT_KEY = 'typography';
|
|
32
|
-
export const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY, FONT_STYLE_SUPPORT_KEY, FONT_WEIGHT_SUPPORT_KEY, FONT_FAMILY_SUPPORT_KEY, TEXT_DECORATION_SUPPORT_KEY, TEXT_TRANSFORM_SUPPORT_KEY, LETTER_SPACING_SUPPORT_KEY];
|
|
33
|
+
export const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY, FONT_STYLE_SUPPORT_KEY, FONT_WEIGHT_SUPPORT_KEY, FONT_FAMILY_SUPPORT_KEY, TEXT_COLUMNS_SUPPORT_KEY, TEXT_DECORATION_SUPPORT_KEY, TEXT_TRANSFORM_SUPPORT_KEY, LETTER_SPACING_SUPPORT_KEY];
|
|
33
34
|
|
|
34
35
|
function styleToAttributes(style) {
|
|
35
36
|
var _style$typography, _style$typography2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.js"],"names":["getBlockSupport","hasBlockSupport","useMemo","useCallback","InspectorControls","default","StylesTypographyPanel","useHasTypographyPanel","LINE_HEIGHT_SUPPORT_KEY","FONT_FAMILY_SUPPORT_KEY","FONT_SIZE_SUPPORT_KEY","cleanEmptyObject","useBlockSettings","omit","object","keys","Object","fromEntries","entries","filter","key","includes","LETTER_SPACING_SUPPORT_KEY","TEXT_TRANSFORM_SUPPORT_KEY","TEXT_DECORATION_SUPPORT_KEY","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","styleToAttributes","style","updatedStyle","fontSizeValue","typography","fontSize","fontFamilyValue","fontFamily","fontSizeSlug","startsWith","substring","length","undefined","fontFamilySlug","attributesToStyle","attributes","TypographyInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","TypographyPanel","clientId","name","setAttributes","__unstableParentLayout","settings","isEnabled","value","onChange","newStyle","defaultControls","hasTypographySupport","blockName","some"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,EAA0BC,eAA1B,QAAiD,mBAAjD;AACA,SAASC,OAAT,EAAkBC,WAAlB,QAAqC,oBAArC;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AACA,SACCC,OAAO,IAAIC,qBADZ,EAECC,qBAFD,QAGO,8CAHP;AAKA,SAASC,uBAAT,QAAwC,eAAxC;AACA,SAASC,uBAAT,QAAwC,eAAxC;AACA,SAASC,qBAAT,QAAsC,aAAtC;AACA,SAASC,gBAAT,EAA2BC,gBAA3B,QAAmD,SAAnD;;AAEA,SAASC,IAAT,CAAeC,MAAf,EAAuBC,IAAvB,EAA8B;AAC7B,SAAOC,MAAM,CAACC,WAAP,CACND,MAAM,CAACE,OAAP,CAAgBJ,MAAhB,EAAyBK,MAAzB,CAAiC;AAAA,QAAE,CAAEC,GAAF,CAAF;AAAA,WAAe,CAAEL,IAAI,CAACM,QAAL,CAAeD,GAAf,CAAjB;AAAA,GAAjC,CADM,CAAP;AAGA;;AAED,MAAME,0BAA0B,GAAG,wCAAnC;AACA,MAAMC,0BAA0B,GAAG,wCAAnC;AACA,MAAMC,2BAA2B,GAAG,yCAApC;AACA,MAAMC,sBAAsB,GAAG,oCAA/B;AACA,MAAMC,uBAAuB,GAAG,qCAAhC;AACA,OAAO,MAAMC,sBAAsB,GAAG,YAA/B;AACP,OAAO,MAAMC,uBAAuB,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.js"],"names":["getBlockSupport","hasBlockSupport","useMemo","useCallback","InspectorControls","default","StylesTypographyPanel","useHasTypographyPanel","LINE_HEIGHT_SUPPORT_KEY","FONT_FAMILY_SUPPORT_KEY","FONT_SIZE_SUPPORT_KEY","cleanEmptyObject","useBlockSettings","omit","object","keys","Object","fromEntries","entries","filter","key","includes","LETTER_SPACING_SUPPORT_KEY","TEXT_TRANSFORM_SUPPORT_KEY","TEXT_DECORATION_SUPPORT_KEY","TEXT_COLUMNS_SUPPORT_KEY","FONT_STYLE_SUPPORT_KEY","FONT_WEIGHT_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","styleToAttributes","style","updatedStyle","fontSizeValue","typography","fontSize","fontFamilyValue","fontFamily","fontSizeSlug","startsWith","substring","length","undefined","fontFamilySlug","attributesToStyle","attributes","TypographyInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","TypographyPanel","clientId","name","setAttributes","__unstableParentLayout","settings","isEnabled","value","onChange","newStyle","defaultControls","hasTypographySupport","blockName","some"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tdefault as StylesTypographyPanel,\n\tuseHasTypographyPanel,\n} from '../components/global-styles/typography-panel';\n\nimport { LINE_HEIGHT_SUPPORT_KEY } from './line-height';\nimport { FONT_FAMILY_SUPPORT_KEY } from './font-family';\nimport { FONT_SIZE_SUPPORT_KEY } from './font-size';\nimport { cleanEmptyObject, useBlockSettings } from './utils';\n\nfunction omit( object, keys ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( object ).filter( ( [ key ] ) => ! keys.includes( key ) )\n\t);\n}\n\nconst LETTER_SPACING_SUPPORT_KEY = 'typography.__experimentalLetterSpacing';\nconst TEXT_TRANSFORM_SUPPORT_KEY = 'typography.__experimentalTextTransform';\nconst TEXT_DECORATION_SUPPORT_KEY = 'typography.__experimentalTextDecoration';\nconst TEXT_COLUMNS_SUPPORT_KEY = 'typography.textColumns';\nconst FONT_STYLE_SUPPORT_KEY = 'typography.__experimentalFontStyle';\nconst FONT_WEIGHT_SUPPORT_KEY = 'typography.__experimentalFontWeight';\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n\tFONT_STYLE_SUPPORT_KEY,\n\tFONT_WEIGHT_SUPPORT_KEY,\n\tFONT_FAMILY_SUPPORT_KEY,\n\tTEXT_COLUMNS_SUPPORT_KEY,\n\tTEXT_DECORATION_SUPPORT_KEY,\n\tTEXT_TRANSFORM_SUPPORT_KEY,\n\tLETTER_SPACING_SUPPORT_KEY,\n];\n\nfunction styleToAttributes( style ) {\n\tconst updatedStyle = { ...omit( style, [ 'fontFamily' ] ) };\n\tconst fontSizeValue = style?.typography?.fontSize;\n\tconst fontFamilyValue = style?.typography?.fontFamily;\n\tconst fontSizeSlug = fontSizeValue?.startsWith( 'var:preset|font-size|' )\n\t\t? fontSizeValue.substring( 'var:preset|font-size|'.length )\n\t\t: undefined;\n\tconst fontFamilySlug = fontFamilyValue?.startsWith(\n\t\t'var:preset|font-family|'\n\t)\n\t\t? fontFamilyValue.substring( 'var:preset|font-family|'.length )\n\t\t: undefined;\n\tupdatedStyle.typography = {\n\t\t...omit( updatedStyle.typography, [ 'fontFamily' ] ),\n\t\tfontSize: fontSizeSlug ? undefined : fontSizeValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tfontFamily: fontFamilySlug,\n\t\tfontSize: fontSizeSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\treturn {\n\t\t...attributes.style,\n\t\ttypography: {\n\t\t\t...attributes.style?.typography,\n\t\t\tfontFamily: attributes.fontFamily\n\t\t\t\t? 'var:preset|font-family|' + attributes.fontFamily\n\t\t\t\t: undefined,\n\t\t\tfontSize: attributes.fontSize\n\t\t\t\t? 'var:preset|font-size|' + attributes.fontSize\n\t\t\t\t: attributes.style?.typography?.fontSize,\n\t\t},\n\t};\n}\n\nfunction TypographyInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"typography\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function TypographyPanel( {\n\tclientId,\n\tname,\n\tattributes,\n\tsetAttributes,\n\t__unstableParentLayout,\n} ) {\n\tconst settings = useBlockSettings( name, __unstableParentLayout );\n\tconst isEnabled = useHasTypographyPanel( settings );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( {\n\t\t\tstyle: attributes.style,\n\t\t\tfontFamily: attributes.fontFamily,\n\t\t\tfontSize: attributes.fontSize,\n\t\t} );\n\t}, [ attributes.style, attributes.fontSize, attributes.fontFamily ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = getBlockSupport( name, [\n\t\tTYPOGRAPHY_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\treturn (\n\t\t<StylesTypographyPanel\n\t\t\tas={ TypographyInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tname={ name }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\nexport const hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n"]}
|
|
@@ -190,6 +190,7 @@ export function useBlockSettings(name, parentLayout) {
|
|
|
190
190
|
const fontStyle = useSetting('typography.fontStyle');
|
|
191
191
|
const fontWeight = useSetting('typography.fontWeight');
|
|
192
192
|
const lineHeight = useSetting('typography.lineHeight');
|
|
193
|
+
const textColumns = useSetting('typography.textColumns');
|
|
193
194
|
const textDecoration = useSetting('typography.textDecoration');
|
|
194
195
|
const textTransform = useSetting('typography.textTransform');
|
|
195
196
|
const letterSpacing = useSetting('typography.letterSpacing');
|
|
@@ -200,8 +201,26 @@ export function useBlockSettings(name, parentLayout) {
|
|
|
200
201
|
const units = useSetting('spacing.units');
|
|
201
202
|
const minHeight = useSetting('dimensions.minHeight');
|
|
202
203
|
const layout = useSetting('layout');
|
|
204
|
+
const borderColor = useSetting('border.color');
|
|
205
|
+
const borderRadius = useSetting('border.radius');
|
|
206
|
+
const borderStyle = useSetting('border.style');
|
|
207
|
+
const borderWidth = useSetting('border.width');
|
|
208
|
+
const customColorsEnabled = useSetting('color.custom');
|
|
209
|
+
const customColors = useSetting('color.palette.custom');
|
|
210
|
+
const themeColors = useSetting('color.palette.theme');
|
|
211
|
+
const defaultColors = useSetting('color.palette.default');
|
|
212
|
+
const defaultPalette = useSetting('color.defaultPalette');
|
|
203
213
|
const rawSettings = useMemo(() => {
|
|
204
214
|
return {
|
|
215
|
+
color: {
|
|
216
|
+
palette: {
|
|
217
|
+
custom: customColors,
|
|
218
|
+
theme: themeColors,
|
|
219
|
+
default: defaultColors
|
|
220
|
+
},
|
|
221
|
+
defaultPalette,
|
|
222
|
+
custom: customColorsEnabled
|
|
223
|
+
},
|
|
205
224
|
typography: {
|
|
206
225
|
fontFamilies: {
|
|
207
226
|
custom: fontFamilies
|
|
@@ -213,6 +232,7 @@ export function useBlockSettings(name, parentLayout) {
|
|
|
213
232
|
fontStyle,
|
|
214
233
|
fontWeight,
|
|
215
234
|
lineHeight,
|
|
235
|
+
textColumns,
|
|
216
236
|
textDecoration,
|
|
217
237
|
textTransform,
|
|
218
238
|
letterSpacing
|
|
@@ -226,13 +246,19 @@ export function useBlockSettings(name, parentLayout) {
|
|
|
226
246
|
blockGap,
|
|
227
247
|
units
|
|
228
248
|
},
|
|
249
|
+
border: {
|
|
250
|
+
color: borderColor,
|
|
251
|
+
radius: borderRadius,
|
|
252
|
+
style: borderStyle,
|
|
253
|
+
width: borderWidth
|
|
254
|
+
},
|
|
229
255
|
dimensions: {
|
|
230
256
|
minHeight
|
|
231
257
|
},
|
|
232
258
|
layout,
|
|
233
259
|
parentLayout
|
|
234
260
|
};
|
|
235
|
-
}, [fontFamilies, fontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textDecoration, textTransform, letterSpacing, padding, margin, blockGap, spacingSizes, units, minHeight, layout, parentLayout]);
|
|
261
|
+
}, [fontFamilies, fontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, textTransform, letterSpacing, padding, margin, blockGap, spacingSizes, units, minHeight, layout, parentLayout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, themeColors, defaultColors, defaultPalette]);
|
|
236
262
|
return useSettingsForBlockElement(rawSettings, name);
|
|
237
263
|
}
|
|
238
264
|
//# sourceMappingURL=utils.js.map
|