@wordpress/block-editor 12.3.4 → 12.5.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 +4 -0
- package/README.md +4 -0
- package/build/components/block-heading-level-dropdown/heading-level-icon.js +10 -2
- package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js +4 -3
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +8 -5
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +18 -25
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +7 -11
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/global-styles/color-panel.js +1 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +2 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +34 -2
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/index.js +19 -1
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +2 -21
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +62 -0
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build/components/inserter/reusable-blocks-tab.js +5 -1
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/tabs.native.js +1 -1
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +9 -1
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/link-control/constants.js +1 -1
- package/build/components/link-control/constants.js.map +1 -1
- package/build/components/link-control/search-create-button.js +5 -21
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-item.js +13 -30
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/list-view/appender.js +2 -6
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/provider/index.js +5 -2
- package/build/components/provider/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +10 -27
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-mode-control/index.js +70 -0
- package/build/components/writing-mode-control/index.js.map +1 -0
- package/build/hooks/behaviors.js +25 -20
- package/build/hooks/behaviors.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 +4 -2
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +3 -0
- package/build/private-apis.js.map +1 -1
- package/build/private-apis.native.js +3 -0
- package/build/private-apis.native.js.map +1 -1
- package/build/store/actions.js +195 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +10 -1
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +46 -40
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +3 -3
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -8
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +6 -4
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +9 -2
- package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js +4 -3
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +7 -5
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +19 -23
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +8 -11
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +1 -1
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +2 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +33 -2
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/index.js +6 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +2 -21
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +48 -0
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build-module/components/inserter/reusable-blocks-tab.js +4 -1
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +1 -1
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +9 -2
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/link-control/constants.js +1 -1
- package/build-module/components/link-control/constants.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +7 -20
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-item.js +14 -28
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +3 -3
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/list-view/appender.js +2 -6
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/provider/index.js +5 -2
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +8 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +57 -0
- package/build-module/components/writing-mode-control/index.js.map +1 -0
- package/build-module/hooks/behaviors.js +26 -20
- package/build-module/hooks/behaviors.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 +4 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +2 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/private-apis.native.js +2 -0
- package/build-module/private-apis.native.js.map +1 -1
- package/build-module/store/actions.js +191 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +10 -1
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +45 -36
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +2 -2
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +22 -8
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +6 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +88 -81
- package/build-style/style.css +88 -81
- package/package.json +31 -31
- package/src/components/block-draggable/style.scss +1 -0
- package/src/components/block-heading-level-dropdown/heading-level-icon.js +6 -1
- package/src/components/block-heading-level-dropdown/index.native.js +8 -4
- package/src/components/block-inspector/style.scss +2 -1
- package/src/components/block-parent-selector/index.js +13 -8
- package/src/components/block-removal-warning-modal/index.js +16 -27
- package/src/components/block-tools/block-contextual-toolbar.js +5 -11
- package/src/components/block-tools/style.scss +69 -26
- package/src/components/font-family/README.md +71 -0
- package/src/components/global-styles/color-panel.js +1 -1
- package/src/components/global-styles/hooks.js +2 -0
- package/src/components/global-styles/typography-panel.js +40 -0
- package/src/components/index.js +6 -0
- package/src/components/inserter/media-tab/hooks.js +2 -22
- package/src/components/inserter/reusable-block-rename-hint.js +52 -0
- package/src/components/inserter/reusable-blocks-tab.js +4 -0
- package/src/components/inserter/reusable-blocks-tab.native.js +2 -2
- package/src/components/inserter/style.scss +28 -0
- package/src/components/inserter/tabs.native.js +5 -1
- package/src/components/inserter-draggable-blocks/index.js +13 -2
- package/src/components/link-control/constants.js +1 -1
- package/src/components/link-control/search-create-button.js +8 -26
- package/src/components/link-control/search-item.js +21 -43
- package/src/components/link-control/search-results.js +48 -46
- package/src/components/link-control/style.scss +18 -68
- package/src/components/link-control/test/index.js +6 -7
- package/src/components/list-view/appender.js +5 -6
- package/src/components/panel-color-settings/README.md +98 -0
- package/src/components/provider/index.js +9 -2
- package/src/components/recursion-provider/README.md +101 -0
- package/src/components/writing-flow/use-tab-nav.js +10 -33
- package/src/components/writing-mode-control/index.js +68 -0
- package/src/components/writing-mode-control/style.scss +18 -0
- package/src/hooks/behaviors.js +25 -16
- package/src/hooks/supports.js +7 -0
- package/src/hooks/typography.js +2 -0
- package/src/hooks/utils.js +3 -0
- package/src/private-apis.js +2 -0
- package/src/private-apis.native.js +2 -0
- package/src/store/actions.js +194 -1
- package/src/store/index.js +10 -0
- package/src/store/private-actions.js +39 -39
- package/src/store/private-selectors.js +2 -2
- package/src/store/reducer.js +22 -8
- package/src/store/selectors.js +9 -6
- package/src/store/test/actions.js +111 -0
- package/src/store/test/private-actions.js +56 -0
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = HeadingLevelIcon;
|
|
7
7
|
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
8
10
|
var _icons = require("@wordpress/icons");
|
|
9
11
|
|
|
12
|
+
var _components = require("@wordpress/components");
|
|
13
|
+
|
|
10
14
|
/**
|
|
11
15
|
* WordPress dependencies
|
|
12
16
|
*/
|
|
@@ -40,8 +44,12 @@ const LEVEL_TO_PATH = {
|
|
|
40
44
|
function HeadingLevelIcon({
|
|
41
45
|
level
|
|
42
46
|
}) {
|
|
43
|
-
|
|
47
|
+
if (LEVEL_TO_PATH[level]) {
|
|
48
|
+
return (0, _element.createElement)(_components.Icon, {
|
|
49
|
+
icon: LEVEL_TO_PATH[level]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
44
52
|
|
|
45
|
-
return
|
|
53
|
+
return null;
|
|
46
54
|
}
|
|
47
55
|
//# sourceMappingURL=heading-level-icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/heading-level-icon.js"],"names":["LEVEL_TO_PATH","paragraph","headingLevel1","headingLevel2","headingLevel3","headingLevel4","headingLevel5","headingLevel6","HeadingLevelIcon","level"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/heading-level-icon.js"],"names":["LEVEL_TO_PATH","paragraph","headingLevel1","headingLevel2","headingLevel3","headingLevel4","headingLevel5","headingLevel6","HeadingLevelIcon","level"],"mappings":";;;;;;;;;AAGA;;AASA;;AAZA;AACA;AACA;;AAYA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAMA,aAAa,GAAG;AACrB,KAAGC,gBADkB;AAErB,KAAGC,oBAFkB;AAGrB,KAAGC,oBAHkB;AAIrB,KAAGC,oBAJkB;AAKrB,KAAGC,oBALkB;AAMrB,KAAGC,oBANkB;AAOrB,KAAGC;AAPkB,CAAtB;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASC,gBAAT,CAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAAuC;AACrD,MAAKT,aAAa,CAAES,KAAF,CAAlB,EAA8B;AAC7B,WAAO,4BAAC,gBAAD;AAAM,MAAA,IAAI,EAAGT,aAAa,CAAES,KAAF;AAA1B,MAAP;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\theadingLevel1,\n\theadingLevel2,\n\theadingLevel3,\n\theadingLevel4,\n\theadingLevel5,\n\theadingLevel6,\n\tparagraph,\n} from '@wordpress/icons';\nimport { Icon } from '@wordpress/components';\n\n/** @typedef {import('@wordpress/element').WPComponent} WPComponent */\n\n/**\n * HeadingLevelIcon props.\n *\n * @typedef WPHeadingLevelIconProps\n *\n * @property {number} level The heading level to show an icon for.\n */\n\nconst LEVEL_TO_PATH = {\n\t0: paragraph,\n\t1: headingLevel1,\n\t2: headingLevel2,\n\t3: headingLevel3,\n\t4: headingLevel4,\n\t5: headingLevel5,\n\t6: headingLevel6,\n};\n\n/**\n * Heading level icon.\n *\n * @param {WPHeadingLevelIconProps} props Component props.\n *\n * @return {?WPComponent} The icon.\n */\nexport default function HeadingLevelIcon( { level } ) {\n\tif ( LEVEL_TO_PATH[ level ] ) {\n\t\treturn <Icon icon={ LEVEL_TO_PATH[ level ] } />;\n\t}\n\n\treturn null;\n}\n"]}
|
|
@@ -44,7 +44,8 @@ const HEADING_LEVELS = [1, 2, 3, 4, 5, 6];
|
|
|
44
44
|
*/
|
|
45
45
|
|
|
46
46
|
function HeadingLevelDropdown({
|
|
47
|
-
|
|
47
|
+
options = HEADING_LEVELS,
|
|
48
|
+
value,
|
|
48
49
|
onChange
|
|
49
50
|
}) {
|
|
50
51
|
const createLevelControl = (targetLevel, currentLevel, onChangeCallback) => {
|
|
@@ -63,9 +64,9 @@ function HeadingLevelDropdown({
|
|
|
63
64
|
|
|
64
65
|
return (0, _element.createElement)(_components.DropdownMenu, {
|
|
65
66
|
icon: (0, _element.createElement)(_headingLevelIcon.default, {
|
|
66
|
-
level:
|
|
67
|
+
level: value
|
|
67
68
|
}),
|
|
68
|
-
controls:
|
|
69
|
+
controls: options.map(index => createLevelControl(index, value, onChange)),
|
|
69
70
|
label: (0, _i18n.__)('Change level')
|
|
70
71
|
});
|
|
71
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/index.native.js"],"names":["HEADING_LEVELS","HeadingLevelDropdown","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-heading-level-dropdown/index.native.js"],"names":["HEADING_LEVELS","HeadingLevelDropdown","options","value","onChange","createLevelControl","targetLevel","currentLevel","onChangeCallback","isActive","icon","title","onClick","map","index"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AATA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,cAAc,GAAG,CAAE,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,CAAvB;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASC,oBAAT,CAA+B;AAC7CC,EAAAA,OAAO,GAAGF,cADmC;AAE7CG,EAAAA,KAF6C;AAG7CC,EAAAA;AAH6C,CAA/B,EAIX;AACH,QAAMC,kBAAkB,GAAG,CAC1BC,WAD0B,EAE1BC,YAF0B,EAG1BC,gBAH0B,KAItB;AACJ,UAAMC,QAAQ,GAAGH,WAAW,KAAKC,YAAjC;AACA,WAAO;AACNG,MAAAA,IAAI,EACH,4BAAC,yBAAD;AACC,QAAA,KAAK,EAAGJ,WADT;AAEC,QAAA,SAAS,EAAGG;AAFb,QAFK;AAON;AACAE,MAAAA,KAAK,EAAE,mBAAS,cAAI,YAAJ,CAAT,EAA6BL,WAA7B,CARD;AASNG,MAAAA,QATM;AAUNG,MAAAA,OAAO,EAAE,MAAMJ,gBAAgB,CAAEF,WAAF;AAVzB,KAAP;AAYA,GAlBD;;AAoBA,SACC,4BAAC,wBAAD;AACC,IAAA,IAAI,EAAG,4BAAC,yBAAD;AAAkB,MAAA,KAAK,EAAGH;AAA1B,MADR;AAEC,IAAA,QAAQ,EAAGD,OAAO,CAACW,GAAR,CAAeC,KAAF,IACvBT,kBAAkB,CAAES,KAAF,EAASX,KAAT,EAAgBC,QAAhB,CADR,CAFZ;AAKC,IAAA,KAAK,EAAG,cAAI,cAAJ;AALT,IADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { DropdownMenu } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelIcon from './heading-level-icon';\n\nconst HEADING_LEVELS = [ 1, 2, 3, 4, 5, 6 ];\n\n/** @typedef {import('@wordpress/element').WPComponent} WPComponent */\n\n/**\n * HeadingLevelDropdown props.\n *\n * @typedef WPHeadingLevelDropdownProps\n *\n * @property {number} selectedLevel The chosen heading level.\n * @property {(newValue:number)=>any} onChange Callback to run when\n * toolbar value is changed.\n */\n\n/**\n * Dropdown for selecting a heading level (1 through 6).\n *\n * @param {WPHeadingLevelDropdownProps} props Component props.\n *\n * @return {WPComponent} The toolbar.\n */\nexport default function HeadingLevelDropdown( {\n\toptions = HEADING_LEVELS,\n\tvalue,\n\tonChange,\n} ) {\n\tconst createLevelControl = (\n\t\ttargetLevel,\n\t\tcurrentLevel,\n\t\tonChangeCallback\n\t) => {\n\t\tconst isActive = targetLevel === currentLevel;\n\t\treturn {\n\t\t\ticon: (\n\t\t\t\t<HeadingLevelIcon\n\t\t\t\t\tlevel={ targetLevel }\n\t\t\t\t\tisPressed={ isActive }\n\t\t\t\t/>\n\t\t\t),\n\t\t\t// translators: %s: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\ttitle: sprintf( __( 'Heading %d' ), targetLevel ),\n\t\t\tisActive,\n\t\t\tonClick: () => onChangeCallback( targetLevel ),\n\t\t};\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ <HeadingLevelIcon level={ value } /> }\n\t\t\tcontrols={ options.map( ( index ) =>\n\t\t\t\tcreateLevelControl( index, value, onChange )\n\t\t\t) }\n\t\t\tlabel={ __( 'Change level' ) }\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -25,6 +25,8 @@ var _utils = require("../block-toolbar/utils");
|
|
|
25
25
|
|
|
26
26
|
var _store = require("../../store");
|
|
27
27
|
|
|
28
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
29
|
+
|
|
28
30
|
/**
|
|
29
31
|
* WordPress dependencies
|
|
30
32
|
*/
|
|
@@ -46,15 +48,16 @@ function BlockParentSelector() {
|
|
|
46
48
|
} = (0, _data.useDispatch)(_store.store);
|
|
47
49
|
const {
|
|
48
50
|
firstParentClientId,
|
|
49
|
-
|
|
51
|
+
isVisible,
|
|
50
52
|
isDistractionFree
|
|
51
53
|
} = (0, _data.useSelect)(select => {
|
|
52
54
|
const {
|
|
53
55
|
getBlockName,
|
|
54
56
|
getBlockParents,
|
|
55
57
|
getSelectedBlockClientId,
|
|
56
|
-
getSettings
|
|
57
|
-
|
|
58
|
+
getSettings,
|
|
59
|
+
getBlockEditingMode
|
|
60
|
+
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
58
61
|
const {
|
|
59
62
|
hasBlockSupport
|
|
60
63
|
} = select(_blocks.store);
|
|
@@ -68,7 +71,7 @@ function BlockParentSelector() {
|
|
|
68
71
|
const settings = getSettings();
|
|
69
72
|
return {
|
|
70
73
|
firstParentClientId: _firstParentClientId,
|
|
71
|
-
|
|
74
|
+
isVisible: _firstParentClientId && getBlockEditingMode(_firstParentClientId) === 'default' && hasBlockSupport(_parentBlockType, '__experimentalParentSelector', true),
|
|
72
75
|
isDistractionFree: settings.isDistractionFree
|
|
73
76
|
};
|
|
74
77
|
}, []);
|
|
@@ -91,7 +94,7 @@ function BlockParentSelector() {
|
|
|
91
94
|
|
|
92
95
|
});
|
|
93
96
|
|
|
94
|
-
if (
|
|
97
|
+
if (!isVisible) {
|
|
95
98
|
return null;
|
|
96
99
|
}
|
|
97
100
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-parent-selector/index.js"],"names":["BlockParentSelector","selectBlock","toggleBlockHighlight","blockEditorStore","firstParentClientId","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-parent-selector/index.js"],"names":["BlockParentSelector","selectBlock","toggleBlockHighlight","blockEditorStore","firstParentClientId","isVisible","isDistractionFree","select","getBlockName","getBlockParents","getSelectedBlockClientId","getSettings","getBlockEditingMode","hasBlockSupport","blocksStore","selectedBlockClientId","parents","_firstParentClientId","length","parentBlockName","_parentBlockType","settings","blockInformation","nodeRef","gestures","showMoversGestures","ref","onChange","isFocused","title","icon"],"mappings":";;;;;;;;;AAOA;;AAJA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAOA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,mBAAT,GAA+B;AAC7C,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MACL,uBAAaC,YAAb,CADD;AAEA,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA,SAAvB;AAAkCC,IAAAA;AAAlC,MAAwD,qBAC3DC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,eAFK;AAGLC,MAAAA,wBAHK;AAILC,MAAAA,WAJK;AAKLC,MAAAA;AALK,QAMF,wBAAQL,MAAM,CAAEJ,YAAF,CAAd,CANJ;AAOA,UAAM;AAAEU,MAAAA;AAAF,QAAsBN,MAAM,CAAEO,aAAF,CAAlC;AACA,UAAMC,qBAAqB,GAAGL,wBAAwB,EAAtD;AACA,UAAMM,OAAO,GAAGP,eAAe,CAAEM,qBAAF,CAA/B;AACA,UAAME,oBAAoB,GAAGD,OAAO,CAAEA,OAAO,CAACE,MAAR,GAAiB,CAAnB,CAApC;AACA,UAAMC,eAAe,GAAGX,YAAY,CAAES,oBAAF,CAApC;;AACA,UAAMG,gBAAgB,GAAG,0BAAcD,eAAd,CAAzB;;AACA,UAAME,QAAQ,GAAGV,WAAW,EAA5B;AACA,WAAO;AACNP,MAAAA,mBAAmB,EAAEa,oBADf;AAENZ,MAAAA,SAAS,EACRY,oBAAoB,IACpBL,mBAAmB,CAAEK,oBAAF,CAAnB,KAAgD,SADhD,IAEAJ,eAAe,CACdO,gBADc,EAEd,8BAFc,EAGd,IAHc,CALV;AAUNd,MAAAA,iBAAiB,EAAEe,QAAQ,CAACf;AAVtB,KAAP;AAYA,GA5B4D,EA6B7D,EA7B6D,CAA9D;AA+BA,QAAMgB,gBAAgB,GAAG,yCAA4BlB,mBAA5B,CAAzB,CAlC6C,CAoC7C;AACA;;AACA,QAAMmB,OAAO,GAAG,sBAAhB;AACA,QAAM;AAAEC,IAAAA,QAAQ,EAAEC;AAAZ,MAAmC,kCAAuB;AAC/DC,IAAAA,GAAG,EAAEH,OAD0D;;AAE/DI,IAAAA,QAAQ,CAAEC,SAAF,EAAc;AACrB,UAAKA,SAAS,IAAItB,iBAAlB,EAAsC;AACrC;AACA;;AACDJ,MAAAA,oBAAoB,CAAEE,mBAAF,EAAuBwB,SAAvB,CAApB;AACA;;AAP8D,GAAvB,CAAzC;;AAUA,MAAK,CAAEvB,SAAP,EAAmB;AAClB,WAAO,IAAP;AACA;;AAED,SACC;AACC,IAAA,SAAS,EAAC,oCADX;AAEC,IAAA,GAAG,EAAGD,mBAFP;AAGC,IAAA,GAAG,EAAGmB,OAHP;AAAA,OAIME;AAJN,KAMC,4BAAC,yBAAD;AACC,IAAA,SAAS,EAAC,4CADX;AAEC,IAAA,OAAO,EAAG,MAAMxB,WAAW,CAAEG,mBAAF,CAF5B;AAGC,IAAA,KAAK,EAAG;AACP;AACA,kBAAI,WAAJ,CAFO,EAGPkB,gBAAgB,EAAEO,KAHX,CAHT;AAQC,IAAA,WAAW,MARZ;AASC,IAAA,IAAI,EAAG,4BAAC,kBAAD;AAAW,MAAA,IAAI,EAAGP,gBAAgB,EAAEQ;AAApC;AATR,IAND,CADD;AAoBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport BlockIcon from '../block-icon';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Block parent selector component, displaying the hierarchy of the\n * current block selection as a single icon to \"go up\" a level.\n *\n * @return {WPComponent} Parent block selector.\n */\nexport default function BlockParentSelector() {\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { firstParentClientId, isVisible, isDistractionFree } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { hasBlockSupport } = select( blocksStore );\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\t\t\tconst _parentBlockType = getBlockType( parentBlockName );\n\t\t\tconst settings = getSettings();\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\tgetBlockEditingMode( _firstParentClientId ) === 'default' &&\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\t_parentBlockType,\n\t\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t),\n\t\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst nodeRef = useRef();\n\tconst { gestures: showMoversGestures } = useShowMoversGestures( {\n\t\tref: nodeRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && isDistractionFree ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-block-parent-selector\"\n\t\t\tkey={ firstParentClientId }\n\t\t\tref={ nodeRef }\n\t\t\t{ ...showMoversGestures }\n\t\t>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"block-editor-block-parent-selector__button\"\n\t\t\t\tonClick={ () => selectBlock( firstParentClientId ) }\n\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t__( 'Select %s' ),\n\t\t\t\t\tblockInformation?.title\n\t\t\t\t) }\n\t\t\t\tshowTooltip\n\t\t\t\ticon={ <BlockIcon icon={ blockInformation?.icon } /> }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BlockRemovalWarningModal = BlockRemovalWarningModal;
|
|
7
|
-
exports.blockTypePromptMessages = void 0;
|
|
8
7
|
|
|
9
8
|
var _element = require("@wordpress/element");
|
|
10
9
|
|
|
@@ -25,36 +24,27 @@ var _lockUnlock = require("../../lock-unlock");
|
|
|
25
24
|
/**
|
|
26
25
|
* Internal dependencies
|
|
27
26
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// they intended to remove such block(s).
|
|
32
|
-
//
|
|
33
|
-
// @see https://github.com/WordPress/gutenberg/pull/51145
|
|
34
|
-
const blockTypePromptMessages = {
|
|
35
|
-
'core/query': (0, _i18n.__)('Query Loop displays a list of posts or pages.'),
|
|
36
|
-
'core/post-content': (0, _i18n.__)('Post Content displays the content of a post or page.')
|
|
37
|
-
};
|
|
38
|
-
exports.blockTypePromptMessages = blockTypePromptMessages;
|
|
39
|
-
|
|
40
|
-
function BlockRemovalWarningModal() {
|
|
27
|
+
function BlockRemovalWarningModal({
|
|
28
|
+
rules
|
|
29
|
+
}) {
|
|
41
30
|
const {
|
|
42
31
|
clientIds,
|
|
43
32
|
selectPrevious,
|
|
44
33
|
blockNamesForPrompt
|
|
45
34
|
} = (0, _data.useSelect)(select => (0, _lockUnlock.unlock)(select(_store.store)).getRemovalPromptData());
|
|
46
35
|
const {
|
|
47
|
-
|
|
48
|
-
|
|
36
|
+
clearBlockRemovalPrompt,
|
|
37
|
+
setBlockRemovalRules,
|
|
49
38
|
privateRemoveBlocks
|
|
50
|
-
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store)); //
|
|
39
|
+
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store)); // Load block removal rules, simultaneously signalling that the block
|
|
40
|
+
// removal prompt is in place.
|
|
51
41
|
|
|
52
42
|
(0, _element.useEffect)(() => {
|
|
53
|
-
|
|
43
|
+
setBlockRemovalRules(rules);
|
|
54
44
|
return () => {
|
|
55
|
-
|
|
45
|
+
setBlockRemovalRules();
|
|
56
46
|
};
|
|
57
|
-
}, [
|
|
47
|
+
}, [rules, setBlockRemovalRules]);
|
|
58
48
|
|
|
59
49
|
if (!blockNamesForPrompt) {
|
|
60
50
|
return;
|
|
@@ -64,24 +54,27 @@ function BlockRemovalWarningModal() {
|
|
|
64
54
|
privateRemoveBlocks(clientIds, selectPrevious,
|
|
65
55
|
/* force */
|
|
66
56
|
true);
|
|
67
|
-
|
|
57
|
+
clearBlockRemovalPrompt();
|
|
68
58
|
};
|
|
69
59
|
|
|
70
60
|
return (0, _element.createElement)(_components.Modal, {
|
|
71
61
|
title: (0, _i18n.__)('Are you sure?'),
|
|
72
|
-
onRequestClose:
|
|
73
|
-
|
|
62
|
+
onRequestClose: clearBlockRemovalPrompt,
|
|
63
|
+
style: {
|
|
64
|
+
maxWidth: '40rem'
|
|
65
|
+
}
|
|
66
|
+
}, blockNamesForPrompt.length === 1 ? (0, _element.createElement)("p", null, rules[blockNamesForPrompt[0]]) : (0, _element.createElement)("ul", {
|
|
74
67
|
style: {
|
|
75
68
|
listStyleType: 'disc',
|
|
76
69
|
paddingLeft: '1rem'
|
|
77
70
|
}
|
|
78
71
|
}, blockNamesForPrompt.map(name => (0, _element.createElement)("li", {
|
|
79
72
|
key: name
|
|
80
|
-
},
|
|
73
|
+
}, rules[name]))), (0, _element.createElement)("p", null, blockNamesForPrompt.length > 1 ? (0, _i18n.__)('Removing these blocks is not advised.') : (0, _i18n.__)('Removing this block is not advised.')), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
81
74
|
justify: "right"
|
|
82
75
|
}, (0, _element.createElement)(_components.Button, {
|
|
83
76
|
variant: "tertiary",
|
|
84
|
-
onClick:
|
|
77
|
+
onClick: clearBlockRemovalPrompt
|
|
85
78
|
}, (0, _i18n.__)('Cancel')), (0, _element.createElement)(_components.Button, {
|
|
86
79
|
variant: "primary",
|
|
87
80
|
onClick: onConfirmRemoval
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-removal-warning-modal/index.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-removal-warning-modal/index.js"],"names":["BlockRemovalWarningModal","rules","clientIds","selectPrevious","blockNamesForPrompt","select","blockEditorStore","getRemovalPromptData","clearBlockRemovalPrompt","setBlockRemovalRules","privateRemoveBlocks","onConfirmRemoval","maxWidth","length","listStyleType","paddingLeft","map","name"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAKA;;AACA;;AAhBA;AACA;AACA;;AAUA;AACA;AACA;AAIO,SAASA,wBAAT,CAAmC;AAAEC,EAAAA;AAAF,CAAnC,EAA+C;AACrD,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,cAAb;AAA6BC,IAAAA;AAA7B,MAAqD,qBACxDC,MAAF,IACC,wBAAQA,MAAM,CAAEC,YAAF,CAAd,EAAqCC,oBAArC,EAFyD,CAA3D;AAKA,QAAM;AACLC,IAAAA,uBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA;AAHK,MAIF,wBAAQ,uBAAaJ,YAAb,CAAR,CAJJ,CANqD,CAYrD;AACA;;AACA,0BAAW,MAAM;AAChBG,IAAAA,oBAAoB,CAAER,KAAF,CAApB;AACA,WAAO,MAAM;AACZQ,MAAAA,oBAAoB;AACpB,KAFD;AAGA,GALD,EAKG,CAAER,KAAF,EAASQ,oBAAT,CALH;;AAOA,MAAK,CAAEL,mBAAP,EAA6B;AAC5B;AACA;;AAED,QAAMO,gBAAgB,GAAG,MAAM;AAC9BD,IAAAA,mBAAmB,CAAER,SAAF,EAAaC,cAAb;AAA6B;AAAY,QAAzC,CAAnB;AACAK,IAAAA,uBAAuB;AACvB,GAHD;;AAKA,SACC,4BAAC,iBAAD;AACC,IAAA,KAAK,EAAG,cAAI,eAAJ,CADT;AAEC,IAAA,cAAc,EAAGA,uBAFlB;AAGC,IAAA,KAAK,EAAG;AACPI,MAAAA,QAAQ,EAAE;AADH;AAHT,KAOGR,mBAAmB,CAACS,MAApB,KAA+B,CAA/B,GACD,uCAAKZ,KAAK,CAAEG,mBAAmB,CAAE,CAAF,CAArB,CAAV,CADC,GAGD;AAAI,IAAA,KAAK,EAAG;AAAEU,MAAAA,aAAa,EAAE,MAAjB;AAAyBC,MAAAA,WAAW,EAAE;AAAtC;AAAZ,KACGX,mBAAmB,CAACY,GAApB,CAA2BC,IAAF,IAC1B;AAAI,IAAA,GAAG,EAAGA;AAAV,KAAmBhB,KAAK,CAAEgB,IAAF,CAAxB,CADC,CADH,CAVF,EAgBC,uCACGb,mBAAmB,CAACS,MAApB,GAA6B,CAA7B,GACC,cAAI,uCAAJ,CADD,GAEC,cAAI,qCAAJ,CAHJ,CAhBD,EAqBC,4BAAC,gCAAD;AAAQ,IAAA,OAAO,EAAC;AAAhB,KACC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,UAAhB;AAA2B,IAAA,OAAO,EAAGL;AAArC,KACG,cAAI,QAAJ,CADH,CADD,EAIC,4BAAC,kBAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,OAAO,EAAGG;AAApC,KACG,cAAI,QAAJ,CADH,CAJD,CArBD,CADD;AAgCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tModal,\n\tButton,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport function BlockRemovalWarningModal( { rules } ) {\n\tconst { clientIds, selectPrevious, blockNamesForPrompt } = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getRemovalPromptData()\n\t);\n\n\tconst {\n\t\tclearBlockRemovalPrompt,\n\t\tsetBlockRemovalRules,\n\t\tprivateRemoveBlocks,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\t// Load block removal rules, simultaneously signalling that the block\n\t// removal prompt is in place.\n\tuseEffect( () => {\n\t\tsetBlockRemovalRules( rules );\n\t\treturn () => {\n\t\t\tsetBlockRemovalRules();\n\t\t};\n\t}, [ rules, setBlockRemovalRules ] );\n\n\tif ( ! blockNamesForPrompt ) {\n\t\treturn;\n\t}\n\n\tconst onConfirmRemoval = () => {\n\t\tprivateRemoveBlocks( clientIds, selectPrevious, /* force */ true );\n\t\tclearBlockRemovalPrompt();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Are you sure?' ) }\n\t\t\tonRequestClose={ clearBlockRemovalPrompt }\n\t\t\tstyle={ {\n\t\t\t\tmaxWidth: '40rem',\n\t\t\t} }\n\t\t>\n\t\t\t{ blockNamesForPrompt.length === 1 ? (\n\t\t\t\t<p>{ rules[ blockNamesForPrompt[ 0 ] ] }</p>\n\t\t\t) : (\n\t\t\t\t<ul style={ { listStyleType: 'disc', paddingLeft: '1rem' } }>\n\t\t\t\t\t{ blockNamesForPrompt.map( ( name ) => (\n\t\t\t\t\t\t<li key={ name }>{ rules[ name ] }</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t\t<p>\n\t\t\t\t{ blockNamesForPrompt.length > 1\n\t\t\t\t\t? __( 'Removing these blocks is not advised.' )\n\t\t\t\t\t: __( 'Removing this block is not advised.' ) }\n\t\t\t</p>\n\t\t\t<HStack justify=\"right\">\n\t\t\t\t<Button variant=\"tertiary\" onClick={ clearBlockRemovalPrompt }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button variant=\"primary\" onClick={ onConfirmRemoval }>\n\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
@@ -29,8 +29,6 @@ var _blockToolbar = _interopRequireDefault(require("../block-toolbar"));
|
|
|
29
29
|
|
|
30
30
|
var _store = require("../../store");
|
|
31
31
|
|
|
32
|
-
var _blockIcon = _interopRequireDefault(require("../block-icon"));
|
|
33
|
-
|
|
34
32
|
var _lockUnlock = require("../../lock-unlock");
|
|
35
33
|
|
|
36
34
|
/**
|
|
@@ -78,7 +76,7 @@ function BlockContextualToolbar({
|
|
|
78
76
|
selectedBlockClientId: _selectedBlockClientId,
|
|
79
77
|
blockType: _selectedBlockClientId && getBlockType(getBlockName(_selectedBlockClientId)),
|
|
80
78
|
hasParents: parents.length,
|
|
81
|
-
showParentSelector: parentBlockType && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && getBlockEditingMode(_selectedBlockClientId) === 'default'
|
|
79
|
+
showParentSelector: parentBlockType && getBlockEditingMode(firstParentClientId) === 'default' && (0, _blocks.hasBlockSupport)(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && getBlockEditingMode(_selectedBlockClientId) === 'default'
|
|
82
80
|
};
|
|
83
81
|
}, []);
|
|
84
82
|
(0, _element.useEffect)(() => {
|
|
@@ -102,22 +100,20 @@ function BlockContextualToolbar({
|
|
|
102
100
|
,
|
|
103
101
|
"aria-label": (0, _i18n.__)('Block tools'),
|
|
104
102
|
...props
|
|
105
|
-
},
|
|
103
|
+
}, !isCollapsed && (0, _element.createElement)(_blockToolbar.default, {
|
|
104
|
+
hideDragHandle: isFixed
|
|
105
|
+
}), isFixed && isLargeViewport && blockType && (0, _element.createElement)(_components.ToolbarGroup, {
|
|
106
106
|
className: isCollapsed ? 'block-editor-block-toolbar__group-expand-fixed-toolbar' : 'block-editor-block-toolbar__group-collapse-fixed-toolbar'
|
|
107
107
|
}, (0, _element.createElement)(_components.ToolbarItem, {
|
|
108
108
|
as: _components.ToolbarButton,
|
|
109
109
|
ref: toolbarButtonRef,
|
|
110
|
-
icon: isCollapsed ?
|
|
111
|
-
icon: blockType.icon
|
|
112
|
-
}) : _icons.levelUp,
|
|
110
|
+
icon: isCollapsed ? _icons.next : _icons.previous,
|
|
113
111
|
onClick: () => {
|
|
114
112
|
setIsCollapsed(collapsed => !collapsed);
|
|
115
113
|
toolbarButtonRef.current.focus();
|
|
116
114
|
},
|
|
117
|
-
label: isCollapsed ? (0, _i18n.__)('Show block tools') : (0, _i18n.__)('
|
|
118
|
-
}))
|
|
119
|
-
hideDragHandle: isFixed
|
|
120
|
-
}));
|
|
115
|
+
label: isCollapsed ? (0, _i18n.__)('Show block tools') : (0, _i18n.__)('Hide block tools')
|
|
116
|
+
})));
|
|
121
117
|
}
|
|
122
118
|
|
|
123
119
|
var _default = BlockContextualToolbar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"names":["BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","toolbarButtonRef","isLargeViewport","blockType","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","getBlockType","blocksStore","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","classes","ToolbarButton","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"names":["BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","toolbarButtonRef","isLargeViewport","blockType","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","getBlockType","blocksStore","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","classes","ToolbarButton","next","previous","collapsed","current","focus"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { next, previous } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst toolbarButtonRef = useRef();\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { blockType, hasParents, showParentSelector, selectedBlockClientId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\t\treturn {\n\t\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\t\tblockType:\n\t\t\t\t\t_selectedBlockClientId &&\n\t\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\t\thasParents: parents.length,\n\t\t\t\tshowParentSelector:\n\t\t\t\t\tparentBlockType &&\n\t\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tparentBlockType,\n\t\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) &&\n\t\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\t\tgetBlockEditingMode( _selectedBlockClientId ) === 'default',\n\t\t\t};\n\t\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tif (\n\t\tblockType &&\n\t\t! hasBlockSupport( blockType, '__experimentalToolbar', true )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ ToolbarButton }\n\t\t\t\t\t\tref={ toolbarButtonRef }\n\t\t\t\t\t\ticon={ isCollapsed ? next : previous }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsCollapsed( ( collapsed ) => ! collapsed );\n\t\t\t\t\t\t\ttoolbarButtonRef.current.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t\t? __( 'Show block tools' )\n\t\t\t\t\t\t\t\t: __( 'Hide block tools' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"]}
|
|
@@ -46,7 +46,7 @@ function useHasColorPanel(settings) {
|
|
|
46
46
|
const hasBackgroundPanel = useHasBackgroundPanel(settings);
|
|
47
47
|
const hasLinkPanel = useHasLinkPanel(settings);
|
|
48
48
|
const hasHeadingPanel = useHasHeadingPanel(settings);
|
|
49
|
-
const hasButtonPanel =
|
|
49
|
+
const hasButtonPanel = useHasButtonPanel(settings);
|
|
50
50
|
const hasCaptionPanel = useHasCaptionPanel(settings);
|
|
51
51
|
return hasTextPanel || hasBackgroundPanel || hasLinkPanel || hasHeadingPanel || hasButtonPanel || hasCaptionPanel;
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/color-panel.js"],"names":["useHasColorPanel","settings","hasTextPanel","useHasTextPanel","hasBackgroundPanel","useHasBackgroundPanel","hasLinkPanel","useHasLinkPanel","hasHeadingPanel","useHasHeadingPanel","hasButtonPanel","hasCaptionPanel","useHasCaptionPanel","colors","color","text","length","custom","link","caption","gradients","heading","customGradient","useHasButtonPanel","button","background","ColorToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","LabeledColorIndicators","indicators","label","map","indicator","index","ColorPanelTab","isGradient","inheritedValue","userValue","setValue","colorGradientControlSettings","undefined","ColorPanelDropdown","hasValue","resetValue","isShownByDefault","tabs","tabConfigs","key","tabLabel","name","title","onToggle","isOpen","toggleProps","onClick","className","tab","selectedTab","find","t","ColorPanel","as","Wrapper","defaultControls","areCustomSolidsEnabled","areCustomGradientsEnabled","hasSolidColors","hasGradientColors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","slug","encodeGradientValue","gradientValue","allGradients","originGradients","gradientObject","gradient","showTextPanel","textColor","userTextColor","hasTextColor","setTextColor","newColor","resetTextColor","showBackgroundPanel","backgroundColor","userBackgroundColor","userGradient","hasBackground","setBackgroundColor","newValue","setGradient","newGradient","resetBackground","showLinkPanel","linkColor","elements","userLinkColor","setLinkColor","hoverLinkColor","userHoverLinkColor","setHoverLinkColor","hasLink","resetLink","showPanel","previousValue","reduce","acc","element","items","filter","Boolean","forEach","elementBackgroundColor","elementGradient","elementTextColor","elementBackgroundUserColor","elementGradientUserColor","elementTextUserColor","hasElement","resetElement","setElementTextColor","newTextColor","setElementBackgroundColor","newBackgroundColor","setElementGradient","supportsTextColor","supportsBackground","push","item","disableCustomColors","disableCustomGradients"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tTabPanel,\n\tColorIndicator,\n\tFlex,\n\tFlexItem,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from '../colors-gradients/control';\nimport { useColorsPerOrigin, useGradientsPerOrigin } from './hooks';\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasColorPanel( settings ) {\n\tconst hasTextPanel = useHasTextPanel( settings );\n\tconst hasBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst hasLinkPanel = useHasLinkPanel( settings );\n\tconst hasHeadingPanel = useHasHeadingPanel( settings );\n\tconst hasButtonPanel = useHasHeadingPanel( settings );\n\tconst hasCaptionPanel = useHasCaptionPanel( settings );\n\n\treturn (\n\t\thasTextPanel ||\n\t\thasBackgroundPanel ||\n\t\thasLinkPanel ||\n\t\thasHeadingPanel ||\n\t\thasButtonPanel ||\n\t\thasCaptionPanel\n\t);\n}\n\nexport function useHasTextPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.text &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasLinkPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.link &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasCaptionPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.caption &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasHeadingPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.heading &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasButtonPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.button &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasBackgroundPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.background &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nfunction ColorToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Color' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper\n\t\t\tclassName=\"color-block-support-panel\"\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t>\n\t\t\t<div className=\"color-block-support-panel__inner-wrapper\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\ttext: true,\n\tbackground: true,\n\tlink: true,\n\theading: true,\n\tbutton: true,\n\tcaption: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n};\n\nconst LabeledColorIndicators = ( { indicators, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t{ indicators.map( ( indicator, index ) => (\n\t\t\t\t<Flex key={ index } expanded={ false }>\n\t\t\t\t\t<ColorIndicator colorValue={ indicator } />\n\t\t\t\t</Flex>\n\t\t\t) ) }\n\t\t</ZStack>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\nfunction ColorPanelTab( {\n\tisGradient,\n\tinheritedValue,\n\tuserValue,\n\tsetValue,\n\tcolorGradientControlSettings,\n} ) {\n\treturn (\n\t\t<ColorGradientControl\n\t\t\t{ ...colorGradientControlSettings }\n\t\t\tshowTitle={ false }\n\t\t\tenableAlpha\n\t\t\t__experimentalIsRenderedInSidebar\n\t\t\tcolorValue={ isGradient ? undefined : inheritedValue }\n\t\t\tgradientValue={ isGradient ? inheritedValue : undefined }\n\t\t\tonColorChange={ isGradient ? undefined : setValue }\n\t\t\tonGradientChange={ isGradient ? setValue : undefined }\n\t\t\tclearable={ inheritedValue === userValue }\n\t\t\theadingLevel={ 3 }\n\t\t/>\n\t);\n}\n\nfunction ColorPanelDropdown( {\n\tlabel,\n\thasValue,\n\tresetValue,\n\tisShownByDefault,\n\tindicators,\n\ttabs,\n\tcolorGradientControlSettings,\n\tpanelId,\n} ) {\n\tconst tabConfigs = tabs.map( ( { key, label: tabLabel } ) => {\n\t\treturn {\n\t\t\tname: key,\n\t\t\ttitle: tabLabel,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\thasValue={ hasValue }\n\t\t\tlabel={ label }\n\t\t\tonDeselect={ resetValue }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t'aria-label': sprintf(\n\t\t\t\t\t\t\t/* translators: %s is the type of color property, e.g., \"background\" */\n\t\t\t\t\t\t\t__( 'Color %s styles' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t<LabeledColorIndicators\n\t\t\t\t\t\t\t\tindicators={ indicators }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\trenderContent={ () => (\n\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t{ tabs.length === 1 && (\n\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t{ ...tabs[ 0 ] }\n\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ tabs.length > 1 && (\n\t\t\t\t\t\t\t\t<TabPanel tabs={ tabConfigs }>\n\t\t\t\t\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\t\t\t\t\tconst selectedTab = tabs.find(\n\t\t\t\t\t\t\t\t\t\t\t( t ) => t.key === tab.name\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\tif ( ! selectedTab ) {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...selectedTab }\n\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\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} }\n\t\t\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nexport default function ColorPanel( {\n\tas: Wrapper = ColorToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tchildren,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\tconst areCustomSolidsEnabled = settings?.color?.custom;\n\tconst areCustomGradientsEnabled = settings?.color?.customGradient;\n\tconst hasSolidColors = colors.length > 0 || areCustomSolidsEnabled;\n\tconst hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled;\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst encodeGradientValue = ( gradientValue ) => {\n\t\tconst allGradients = gradients.flatMap(\n\t\t\t( { gradients: originGradients } ) => originGradients\n\t\t);\n\t\tconst gradientObject = allGradients.find(\n\t\t\t( { gradient } ) => gradient === gradientValue\n\t\t);\n\t\treturn gradientObject\n\t\t\t? 'var:preset|gradient|' + gradientObject.slug\n\t\t\t: gradientValue;\n\t};\n\n\t// Text Color\n\tconst showTextPanel = useHasTextPanel( settings );\n\tconst textColor = decodeValue( inheritedValue?.color?.text );\n\tconst userTextColor = decodeValue( value?.color?.text );\n\tconst hasTextColor = () => !! userTextColor;\n\tconst setTextColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst resetTextColor = () => setTextColor( undefined );\n\n\t// BackgroundColor\n\tconst showBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst backgroundColor = decodeValue( inheritedValue?.color?.background );\n\tconst userBackgroundColor = decodeValue( value?.color?.background );\n\tconst gradient = decodeValue( inheritedValue?.color?.gradient );\n\tconst userGradient = decodeValue( value?.color?.gradient );\n\tconst hasBackground = () => !! userBackgroundColor || !! userGradient;\n\tconst setBackgroundColor = ( newColor ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tencodeColorValue( newColor )\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst setGradient = ( newGradient ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'gradient' ],\n\t\t\tencodeGradientValue( newGradient )\n\t\t);\n\t\tnewValue.color.background = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst resetBackground = () => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\n\t// Links\n\tconst showLinkPanel = useHasLinkPanel( settings );\n\tconst linkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.color?.text\n\t);\n\tconst userLinkColor = decodeValue( value?.elements?.link?.color?.text );\n\tconst setLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hoverLinkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst userHoverLinkColor = decodeValue(\n\t\tvalue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst setHoverLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLink = () => !! userLinkColor || !! userHoverLinkColor;\n\tconst resetLink = () => {\n\t\tlet newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue = setImmutably(\n\t\t\tnewValue,\n\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tonChange( newValue );\n\t};\n\n\t// Elements\n\tconst elements = [\n\t\t{\n\t\t\tname: 'caption',\n\t\t\tlabel: __( 'Captions' ),\n\t\t\tshowPanel: useHasCaptionPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'button',\n\t\t\tlabel: __( 'Button' ),\n\t\t\tshowPanel: useHasButtonPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'heading',\n\t\t\tlabel: __( 'Heading' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h1',\n\t\t\tlabel: __( 'H1' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h2',\n\t\t\tlabel: __( 'H2' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h3',\n\t\t\tlabel: __( 'H3' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h4',\n\t\t\tlabel: __( 'H4' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h5',\n\t\t\tlabel: __( 'H5' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h6',\n\t\t\tlabel: __( 'H6' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t];\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...previousValue?.elements,\n\t\t\t\tlink: {\n\t\t\t\t\t...previousValue?.elements?.link,\n\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t':hover': {\n\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...elements.reduce( ( acc, element ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ element.name ]: {\n\t\t\t\t\t\t\t...previousValue?.elements?.[ element.name ],\n\t\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst items = [\n\t\tshowTextPanel && {\n\t\t\tkey: 'text',\n\t\t\tlabel: __( 'Text' ),\n\t\t\thasValue: hasTextColor,\n\t\t\tresetValue: resetTextColor,\n\t\t\tisShownByDefault: defaultControls.text,\n\t\t\tindicators: [ textColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'text',\n\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\tinheritedValue: textColor,\n\t\t\t\t\tsetValue: setTextColor,\n\t\t\t\t\tuserValue: userTextColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tshowBackgroundPanel && {\n\t\t\tkey: 'background',\n\t\t\tlabel: __( 'Background' ),\n\t\t\thasValue: hasBackground,\n\t\t\tresetValue: resetBackground,\n\t\t\tisShownByDefault: defaultControls.background,\n\t\t\tindicators: [ gradient ?? backgroundColor ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors && {\n\t\t\t\t\tkey: 'background',\n\t\t\t\t\tlabel: __( 'Solid' ),\n\t\t\t\t\tinheritedValue: backgroundColor,\n\t\t\t\t\tsetValue: setBackgroundColor,\n\t\t\t\t\tuserValue: userBackgroundColor,\n\t\t\t\t},\n\t\t\t\thasGradientColors && {\n\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\tinheritedValue: gradient,\n\t\t\t\t\tsetValue: setGradient,\n\t\t\t\t\tuserValue: userGradient,\n\t\t\t\t\tisGradient: true,\n\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t},\n\t\tshowLinkPanel && {\n\t\t\tkey: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\thasValue: hasLink,\n\t\t\tresetValue: resetLink,\n\t\t\tisShownByDefault: defaultControls.link,\n\t\t\tindicators: [ linkColor, hoverLinkColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'link',\n\t\t\t\t\tlabel: __( 'Default' ),\n\t\t\t\t\tinheritedValue: linkColor,\n\t\t\t\t\tsetValue: setLinkColor,\n\t\t\t\t\tuserValue: userLinkColor,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: 'hover',\n\t\t\t\t\tlabel: __( 'Hover' ),\n\t\t\t\t\tinheritedValue: hoverLinkColor,\n\t\t\t\t\tsetValue: setHoverLinkColor,\n\t\t\t\t\tuserValue: userHoverLinkColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t].filter( Boolean );\n\n\telements.forEach( ( { name, label, showPanel } ) => {\n\t\tif ( ! showPanel ) return;\n\n\t\tconst elementBackgroundColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradient = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst elementBackgroundUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradientUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst hasElement = () =>\n\t\t\t!! (\n\t\t\t\telementTextUserColor ||\n\t\t\t\telementBackgroundUserColor ||\n\t\t\t\telementGradientUserColor\n\t\t\t);\n\t\tconst resetElement = () => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tundefined\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tnewValue.elements[ name ].color.text = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\n\t\tconst setElementTextColor = ( newTextColor ) => {\n\t\t\tonChange(\n\t\t\t\tsetImmutably(\n\t\t\t\t\tvalue,\n\t\t\t\t\t[ 'elements', name, 'color', 'text' ],\n\t\t\t\t\tencodeColorValue( newTextColor )\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tconst setElementBackgroundColor = ( newBackgroundColor ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tencodeColorValue( newBackgroundColor )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst setElementGradient = ( newGradient ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'gradient' ],\n\t\t\t\tencodeGradientValue( newGradient )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.background = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst supportsTextColor = true;\n\t\t// Background color is not supported for `caption`\n\t\t// as there isn't yet a way to set padding for the element.\n\t\tconst supportsBackground = name !== 'caption';\n\n\t\titems.push( {\n\t\t\tkey: name,\n\t\t\tlabel,\n\t\t\thasValue: hasElement,\n\t\t\tresetValue: resetElement,\n\t\t\tisShownByDefault: defaultControls[ name ],\n\t\t\tindicators:\n\t\t\t\tsupportsTextColor && supportsBackground\n\t\t\t\t\t? [\n\t\t\t\t\t\t\telementTextColor,\n\t\t\t\t\t\t\telementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\tsupportsTextColor\n\t\t\t\t\t\t\t\t? elementTextColor\n\t\t\t\t\t\t\t\t: elementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsTextColor && {\n\t\t\t\t\t\tkey: 'text',\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tinheritedValue: elementTextColor,\n\t\t\t\t\t\tsetValue: setElementTextColor,\n\t\t\t\t\t\tuserValue: elementTextUserColor,\n\t\t\t\t\t},\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'background',\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tinheritedValue: elementBackgroundColor,\n\t\t\t\t\t\tsetValue: setElementBackgroundColor,\n\t\t\t\t\t\tuserValue: elementBackgroundUserColor,\n\t\t\t\t\t},\n\t\t\t\thasGradientColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\t\tinheritedValue: elementGradient,\n\t\t\t\t\t\tsetValue: setElementGradient,\n\t\t\t\t\t\tuserValue: elementGradientUserColor,\n\t\t\t\t\t\tisGradient: true,\n\t\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ items.map( ( item ) => (\n\t\t\t\t<ColorPanelDropdown\n\t\t\t\t\tkey={ item.key }\n\t\t\t\t\t{ ...item }\n\t\t\t\t\tcolorGradientControlSettings={ {\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tdisableCustomColors: ! areCustomSolidsEnabled,\n\t\t\t\t\t\tgradients,\n\t\t\t\t\t\tdisableCustomGradients: ! areCustomGradientsEnabled,\n\t\t\t\t\t} }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ children }\n\t\t</Wrapper>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/color-panel.js"],"names":["useHasColorPanel","settings","hasTextPanel","useHasTextPanel","hasBackgroundPanel","useHasBackgroundPanel","hasLinkPanel","useHasLinkPanel","hasHeadingPanel","useHasHeadingPanel","hasButtonPanel","useHasButtonPanel","hasCaptionPanel","useHasCaptionPanel","colors","color","text","length","custom","link","caption","gradients","heading","customGradient","button","background","ColorToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","DEFAULT_CONTROLS","popoverProps","placement","offset","shift","LabeledColorIndicators","indicators","label","map","indicator","index","ColorPanelTab","isGradient","inheritedValue","userValue","setValue","colorGradientControlSettings","undefined","ColorPanelDropdown","hasValue","resetValue","isShownByDefault","tabs","tabConfigs","key","tabLabel","name","title","onToggle","isOpen","toggleProps","onClick","className","tab","selectedTab","find","t","ColorPanel","as","Wrapper","defaultControls","areCustomSolidsEnabled","areCustomGradientsEnabled","hasSolidColors","hasGradientColors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","slug","encodeGradientValue","gradientValue","allGradients","originGradients","gradientObject","gradient","showTextPanel","textColor","userTextColor","hasTextColor","setTextColor","newColor","resetTextColor","showBackgroundPanel","backgroundColor","userBackgroundColor","userGradient","hasBackground","setBackgroundColor","newValue","setGradient","newGradient","resetBackground","showLinkPanel","linkColor","elements","userLinkColor","setLinkColor","hoverLinkColor","userHoverLinkColor","setHoverLinkColor","hasLink","resetLink","showPanel","previousValue","reduce","acc","element","items","filter","Boolean","forEach","elementBackgroundColor","elementGradient","elementTextColor","elementBackgroundUserColor","elementGradientUserColor","elementTextUserColor","hasElement","resetElement","setElementTextColor","newTextColor","setElementBackgroundColor","newBackgroundColor","setElementGradient","supportsTextColor","supportsBackground","push","item","disableCustomColors","disableCustomGradients"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tTabPanel,\n\tColorIndicator,\n\tFlex,\n\tFlexItem,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from '../colors-gradients/control';\nimport { useColorsPerOrigin, useGradientsPerOrigin } from './hooks';\nimport { getValueFromVariable } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nexport function useHasColorPanel( settings ) {\n\tconst hasTextPanel = useHasTextPanel( settings );\n\tconst hasBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst hasLinkPanel = useHasLinkPanel( settings );\n\tconst hasHeadingPanel = useHasHeadingPanel( settings );\n\tconst hasButtonPanel = useHasButtonPanel( settings );\n\tconst hasCaptionPanel = useHasCaptionPanel( settings );\n\n\treturn (\n\t\thasTextPanel ||\n\t\thasBackgroundPanel ||\n\t\thasLinkPanel ||\n\t\thasHeadingPanel ||\n\t\thasButtonPanel ||\n\t\thasCaptionPanel\n\t);\n}\n\nexport function useHasTextPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.text &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasLinkPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.link &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasCaptionPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.caption &&\n\t\t( colors?.length > 0 || settings?.color?.custom )\n\t);\n}\n\nexport function useHasHeadingPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.heading &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasButtonPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.button &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nexport function useHasBackgroundPanel( settings ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\treturn (\n\t\tsettings?.color?.background &&\n\t\t( colors?.length > 0 ||\n\t\t\tsettings?.color?.custom ||\n\t\t\tgradients?.length > 0 ||\n\t\t\tsettings?.color?.customGradient )\n\t);\n}\n\nfunction ColorToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Color' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper\n\t\t\tclassName=\"color-block-support-panel\"\n\t\t\t__experimentalFirstVisibleItemClass=\"first\"\n\t\t\t__experimentalLastVisibleItemClass=\"last\"\n\t\t>\n\t\t\t<div className=\"color-block-support-panel__inner-wrapper\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\ttext: true,\n\tbackground: true,\n\tlink: true,\n\theading: true,\n\tbutton: true,\n\tcaption: true,\n};\n\nconst popoverProps = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n};\n\nconst LabeledColorIndicators = ( { indicators, label } ) => (\n\t<HStack justify=\"flex-start\">\n\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t{ indicators.map( ( indicator, index ) => (\n\t\t\t\t<Flex key={ index } expanded={ false }>\n\t\t\t\t\t<ColorIndicator colorValue={ indicator } />\n\t\t\t\t</Flex>\n\t\t\t) ) }\n\t\t</ZStack>\n\t\t<FlexItem\n\t\t\tclassName=\"block-editor-panel-color-gradient-settings__color-name\"\n\t\t\ttitle={ label }\n\t\t>\n\t\t\t{ label }\n\t\t</FlexItem>\n\t</HStack>\n);\n\nfunction ColorPanelTab( {\n\tisGradient,\n\tinheritedValue,\n\tuserValue,\n\tsetValue,\n\tcolorGradientControlSettings,\n} ) {\n\treturn (\n\t\t<ColorGradientControl\n\t\t\t{ ...colorGradientControlSettings }\n\t\t\tshowTitle={ false }\n\t\t\tenableAlpha\n\t\t\t__experimentalIsRenderedInSidebar\n\t\t\tcolorValue={ isGradient ? undefined : inheritedValue }\n\t\t\tgradientValue={ isGradient ? inheritedValue : undefined }\n\t\t\tonColorChange={ isGradient ? undefined : setValue }\n\t\t\tonGradientChange={ isGradient ? setValue : undefined }\n\t\t\tclearable={ inheritedValue === userValue }\n\t\t\theadingLevel={ 3 }\n\t\t/>\n\t);\n}\n\nfunction ColorPanelDropdown( {\n\tlabel,\n\thasValue,\n\tresetValue,\n\tisShownByDefault,\n\tindicators,\n\ttabs,\n\tcolorGradientControlSettings,\n\tpanelId,\n} ) {\n\tconst tabConfigs = tabs.map( ( { key, label: tabLabel } ) => {\n\t\treturn {\n\t\t\tname: key,\n\t\t\ttitle: tabLabel,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__item\"\n\t\t\thasValue={ hasValue }\n\t\t\tlabel={ label }\n\t\t\tonDeselect={ resetValue }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tclassName=\"block-editor-tools-panel-color-gradient-settings__dropdown\"\n\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\t\tconst toggleProps = {\n\t\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'block-editor-panel-color-gradient-settings__dropdown',\n\t\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t\t'aria-label': sprintf(\n\t\t\t\t\t\t\t/* translators: %s is the type of color property, e.g., \"background\" */\n\t\t\t\t\t\t\t__( 'Color %s styles' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button { ...toggleProps }>\n\t\t\t\t\t\t\t<LabeledColorIndicators\n\t\t\t\t\t\t\t\tindicators={ indicators }\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\trenderContent={ () => (\n\t\t\t\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t\t\t\t<div className=\"block-editor-panel-color-gradient-settings__dropdown-content\">\n\t\t\t\t\t\t\t{ tabs.length === 1 && (\n\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t{ ...tabs[ 0 ] }\n\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ tabs.length > 1 && (\n\t\t\t\t\t\t\t\t<TabPanel tabs={ tabConfigs }>\n\t\t\t\t\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\t\t\t\t\tconst selectedTab = tabs.find(\n\t\t\t\t\t\t\t\t\t\t\t( t ) => t.key === tab.name\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\tif ( ! selectedTab ) {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ColorPanelTab\n\t\t\t\t\t\t\t\t\t\t\t\t{ ...selectedTab }\n\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings={\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorGradientControlSettings\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\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} }\n\t\t\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</DropdownContentWrapper>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nexport default function ColorPanel( {\n\tas: Wrapper = ColorToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tchildren,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst gradients = useGradientsPerOrigin( settings );\n\tconst areCustomSolidsEnabled = settings?.color?.custom;\n\tconst areCustomGradientsEnabled = settings?.color?.customGradient;\n\tconst hasSolidColors = colors.length > 0 || areCustomSolidsEnabled;\n\tconst hasGradientColors = gradients.length > 0 || areCustomGradientsEnabled;\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst encodeGradientValue = ( gradientValue ) => {\n\t\tconst allGradients = gradients.flatMap(\n\t\t\t( { gradients: originGradients } ) => originGradients\n\t\t);\n\t\tconst gradientObject = allGradients.find(\n\t\t\t( { gradient } ) => gradient === gradientValue\n\t\t);\n\t\treturn gradientObject\n\t\t\t? 'var:preset|gradient|' + gradientObject.slug\n\t\t\t: gradientValue;\n\t};\n\n\t// Text Color\n\tconst showTextPanel = useHasTextPanel( settings );\n\tconst textColor = decodeValue( inheritedValue?.color?.text );\n\tconst userTextColor = decodeValue( value?.color?.text );\n\tconst hasTextColor = () => !! userTextColor;\n\tconst setTextColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst resetTextColor = () => setTextColor( undefined );\n\n\t// BackgroundColor\n\tconst showBackgroundPanel = useHasBackgroundPanel( settings );\n\tconst backgroundColor = decodeValue( inheritedValue?.color?.background );\n\tconst userBackgroundColor = decodeValue( value?.color?.background );\n\tconst gradient = decodeValue( inheritedValue?.color?.gradient );\n\tconst userGradient = decodeValue( value?.color?.gradient );\n\tconst hasBackground = () => !! userBackgroundColor || !! userGradient;\n\tconst setBackgroundColor = ( newColor ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tencodeColorValue( newColor )\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst setGradient = ( newGradient ) => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'gradient' ],\n\t\t\tencodeGradientValue( newGradient )\n\t\t);\n\t\tnewValue.color.background = undefined;\n\t\tonChange( newValue );\n\t};\n\tconst resetBackground = () => {\n\t\tconst newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'color', 'background' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue.color.gradient = undefined;\n\t\tonChange( newValue );\n\t};\n\n\t// Links\n\tconst showLinkPanel = useHasLinkPanel( settings );\n\tconst linkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.color?.text\n\t);\n\tconst userLinkColor = decodeValue( value?.elements?.link?.color?.text );\n\tconst setLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hoverLinkColor = decodeValue(\n\t\tinheritedValue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst userHoverLinkColor = decodeValue(\n\t\tvalue?.elements?.link?.[ ':hover' ]?.color?.text\n\t);\n\tconst setHoverLinkColor = ( newColor ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\t\tencodeColorValue( newColor )\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLink = () => !! userLinkColor || !! userHoverLinkColor;\n\tconst resetLink = () => {\n\t\tlet newValue = setImmutably(\n\t\t\tvalue,\n\t\t\t[ 'elements', 'link', ':hover', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tnewValue = setImmutably(\n\t\t\tnewValue,\n\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\tundefined\n\t\t);\n\t\tonChange( newValue );\n\t};\n\n\t// Elements\n\tconst elements = [\n\t\t{\n\t\t\tname: 'caption',\n\t\t\tlabel: __( 'Captions' ),\n\t\t\tshowPanel: useHasCaptionPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'button',\n\t\t\tlabel: __( 'Button' ),\n\t\t\tshowPanel: useHasButtonPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'heading',\n\t\t\tlabel: __( 'Heading' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h1',\n\t\t\tlabel: __( 'H1' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h2',\n\t\t\tlabel: __( 'H2' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h3',\n\t\t\tlabel: __( 'H3' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h4',\n\t\t\tlabel: __( 'H4' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h5',\n\t\t\tlabel: __( 'H5' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t\t{\n\t\t\tname: 'h6',\n\t\t\tlabel: __( 'H6' ),\n\t\t\tshowPanel: useHasHeadingPanel( settings ),\n\t\t},\n\t];\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...previousValue?.elements,\n\t\t\t\tlink: {\n\t\t\t\t\t...previousValue?.elements?.link,\n\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t':hover': {\n\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...elements.reduce( ( acc, element ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ element.name ]: {\n\t\t\t\t\t\t\t...previousValue?.elements?.[ element.name ],\n\t\t\t\t\t\t\tcolor: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}, {} ),\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst items = [\n\t\tshowTextPanel && {\n\t\t\tkey: 'text',\n\t\t\tlabel: __( 'Text' ),\n\t\t\thasValue: hasTextColor,\n\t\t\tresetValue: resetTextColor,\n\t\t\tisShownByDefault: defaultControls.text,\n\t\t\tindicators: [ textColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'text',\n\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\tinheritedValue: textColor,\n\t\t\t\t\tsetValue: setTextColor,\n\t\t\t\t\tuserValue: userTextColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tshowBackgroundPanel && {\n\t\t\tkey: 'background',\n\t\t\tlabel: __( 'Background' ),\n\t\t\thasValue: hasBackground,\n\t\t\tresetValue: resetBackground,\n\t\t\tisShownByDefault: defaultControls.background,\n\t\t\tindicators: [ gradient ?? backgroundColor ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors && {\n\t\t\t\t\tkey: 'background',\n\t\t\t\t\tlabel: __( 'Solid' ),\n\t\t\t\t\tinheritedValue: backgroundColor,\n\t\t\t\t\tsetValue: setBackgroundColor,\n\t\t\t\t\tuserValue: userBackgroundColor,\n\t\t\t\t},\n\t\t\t\thasGradientColors && {\n\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\tinheritedValue: gradient,\n\t\t\t\t\tsetValue: setGradient,\n\t\t\t\t\tuserValue: userGradient,\n\t\t\t\t\tisGradient: true,\n\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t},\n\t\tshowLinkPanel && {\n\t\t\tkey: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\thasValue: hasLink,\n\t\t\tresetValue: resetLink,\n\t\t\tisShownByDefault: defaultControls.link,\n\t\t\tindicators: [ linkColor, hoverLinkColor ],\n\t\t\ttabs: [\n\t\t\t\t{\n\t\t\t\t\tkey: 'link',\n\t\t\t\t\tlabel: __( 'Default' ),\n\t\t\t\t\tinheritedValue: linkColor,\n\t\t\t\t\tsetValue: setLinkColor,\n\t\t\t\t\tuserValue: userLinkColor,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkey: 'hover',\n\t\t\t\t\tlabel: __( 'Hover' ),\n\t\t\t\t\tinheritedValue: hoverLinkColor,\n\t\t\t\t\tsetValue: setHoverLinkColor,\n\t\t\t\t\tuserValue: userHoverLinkColor,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t].filter( Boolean );\n\n\telements.forEach( ( { name, label, showPanel } ) => {\n\t\tif ( ! showPanel ) return;\n\n\t\tconst elementBackgroundColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradient = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextColor = decodeValue(\n\t\t\tinheritedValue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst elementBackgroundUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.background\n\t\t);\n\t\tconst elementGradientUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.gradient\n\t\t);\n\t\tconst elementTextUserColor = decodeValue(\n\t\t\tvalue?.elements?.[ name ]?.color?.text\n\t\t);\n\t\tconst hasElement = () =>\n\t\t\t!! (\n\t\t\t\telementTextUserColor ||\n\t\t\t\telementBackgroundUserColor ||\n\t\t\t\telementGradientUserColor\n\t\t\t);\n\t\tconst resetElement = () => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tundefined\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tnewValue.elements[ name ].color.text = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\n\t\tconst setElementTextColor = ( newTextColor ) => {\n\t\t\tonChange(\n\t\t\t\tsetImmutably(\n\t\t\t\t\tvalue,\n\t\t\t\t\t[ 'elements', name, 'color', 'text' ],\n\t\t\t\t\tencodeColorValue( newTextColor )\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tconst setElementBackgroundColor = ( newBackgroundColor ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'background' ],\n\t\t\t\tencodeColorValue( newBackgroundColor )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.gradient = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst setElementGradient = ( newGradient ) => {\n\t\t\tconst newValue = setImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'elements', name, 'color', 'gradient' ],\n\t\t\t\tencodeGradientValue( newGradient )\n\t\t\t);\n\t\t\tnewValue.elements[ name ].color.background = undefined;\n\t\t\tonChange( newValue );\n\t\t};\n\t\tconst supportsTextColor = true;\n\t\t// Background color is not supported for `caption`\n\t\t// as there isn't yet a way to set padding for the element.\n\t\tconst supportsBackground = name !== 'caption';\n\n\t\titems.push( {\n\t\t\tkey: name,\n\t\t\tlabel,\n\t\t\thasValue: hasElement,\n\t\t\tresetValue: resetElement,\n\t\t\tisShownByDefault: defaultControls[ name ],\n\t\t\tindicators:\n\t\t\t\tsupportsTextColor && supportsBackground\n\t\t\t\t\t? [\n\t\t\t\t\t\t\telementTextColor,\n\t\t\t\t\t\t\telementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ]\n\t\t\t\t\t: [\n\t\t\t\t\t\t\tsupportsTextColor\n\t\t\t\t\t\t\t\t? elementTextColor\n\t\t\t\t\t\t\t\t: elementGradient ?? elementBackgroundColor,\n\t\t\t\t\t ],\n\t\t\ttabs: [\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsTextColor && {\n\t\t\t\t\t\tkey: 'text',\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tinheritedValue: elementTextColor,\n\t\t\t\t\t\tsetValue: setElementTextColor,\n\t\t\t\t\t\tuserValue: elementTextUserColor,\n\t\t\t\t\t},\n\t\t\t\thasSolidColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'background',\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tinheritedValue: elementBackgroundColor,\n\t\t\t\t\t\tsetValue: setElementBackgroundColor,\n\t\t\t\t\t\tuserValue: elementBackgroundUserColor,\n\t\t\t\t\t},\n\t\t\t\thasGradientColors &&\n\t\t\t\t\tsupportsBackground && {\n\t\t\t\t\t\tkey: 'gradient',\n\t\t\t\t\t\tlabel: __( 'Gradient' ),\n\t\t\t\t\t\tinheritedValue: elementGradient,\n\t\t\t\t\t\tsetValue: setElementGradient,\n\t\t\t\t\t\tuserValue: elementGradientUserColor,\n\t\t\t\t\t\tisGradient: true,\n\t\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ items.map( ( item ) => (\n\t\t\t\t<ColorPanelDropdown\n\t\t\t\t\tkey={ item.key }\n\t\t\t\t\t{ ...item }\n\t\t\t\t\tcolorGradientControlSettings={ {\n\t\t\t\t\t\tcolors,\n\t\t\t\t\t\tdisableCustomColors: ! areCustomSolidsEnabled,\n\t\t\t\t\t\tgradients,\n\t\t\t\t\t\tdisableCustomGradients: ! areCustomGradientsEnabled,\n\t\t\t\t\t} }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ children }\n\t\t</Wrapper>\n\t);\n}\n"]}
|