@wordpress/edit-site 4.8.0 → 4.9.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-template/add-custom-template-modal.js +185 -0
  3. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -0
  4. package/build/components/add-new-template/new-template.js +79 -14
  5. package/build/components/add-new-template/new-template.js.map +1 -1
  6. package/build/components/add-new-template/utils.js +139 -0
  7. package/build/components/add-new-template/utils.js.map +1 -0
  8. package/build/components/global-styles/context-menu.js +6 -3
  9. package/build/components/global-styles/context-menu.js.map +1 -1
  10. package/build/components/global-styles/hooks.js +1 -1
  11. package/build/components/global-styles/hooks.js.map +1 -1
  12. package/build/components/global-styles/palette.js +2 -1
  13. package/build/components/global-styles/palette.js.map +1 -1
  14. package/build/components/global-styles/screen-block-list.js +4 -1
  15. package/build/components/global-styles/screen-block-list.js.map +1 -1
  16. package/build/components/global-styles/screen-button-color.js +80 -0
  17. package/build/components/global-styles/screen-button-color.js.map +1 -0
  18. package/build/components/global-styles/screen-colors.js +47 -7
  19. package/build/components/global-styles/screen-colors.js.map +1 -1
  20. package/build/components/global-styles/screen-root.js +4 -2
  21. package/build/components/global-styles/screen-root.js.map +1 -1
  22. package/build/components/global-styles/screen-typography-element.js +4 -0
  23. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  24. package/build/components/global-styles/screen-typography.js +9 -1
  25. package/build/components/global-styles/screen-typography.js.map +1 -1
  26. package/build/components/global-styles/ui.js +11 -0
  27. package/build/components/global-styles/ui.js.map +1 -1
  28. package/build/components/global-styles/use-global-styles-output.js +40 -9
  29. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  30. package/build/components/global-styles/utils.js +3 -1
  31. package/build/components/global-styles/utils.js.map +1 -1
  32. package/build/components/header/index.js +28 -10
  33. package/build/components/header/index.js.map +1 -1
  34. package/build/components/header/more-menu/site-export.js +4 -1
  35. package/build/components/header/more-menu/site-export.js.map +1 -1
  36. package/build/components/header/undo-redo/redo.js +13 -4
  37. package/build/components/header/undo-redo/redo.js.map +1 -1
  38. package/build/components/header/undo-redo/undo.js +13 -4
  39. package/build/components/header/undo-redo/undo.js.map +1 -1
  40. package/build/components/keyboard-shortcut-help-modal/config.js +17 -0
  41. package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  42. package/build/components/sidebar/template-card/index.js +19 -7
  43. package/build/components/sidebar/template-card/index.js.map +1 -1
  44. package/build/components/sidebar/template-card/template-actions.js +64 -0
  45. package/build/components/sidebar/template-card/template-actions.js.map +1 -0
  46. package/build-module/components/add-new-template/add-custom-template-modal.js +170 -0
  47. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -0
  48. package/build-module/components/add-new-template/new-template.js +79 -17
  49. package/build-module/components/add-new-template/new-template.js.map +1 -1
  50. package/build-module/components/add-new-template/utils.js +119 -0
  51. package/build-module/components/add-new-template/utils.js.map +1 -0
  52. package/build-module/components/global-styles/context-menu.js +6 -3
  53. package/build-module/components/global-styles/context-menu.js.map +1 -1
  54. package/build-module/components/global-styles/hooks.js +1 -1
  55. package/build-module/components/global-styles/hooks.js.map +1 -1
  56. package/build-module/components/global-styles/palette.js +2 -1
  57. package/build-module/components/global-styles/palette.js.map +1 -1
  58. package/build-module/components/global-styles/screen-block-list.js +4 -1
  59. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  60. package/build-module/components/global-styles/screen-button-color.js +67 -0
  61. package/build-module/components/global-styles/screen-button-color.js.map +1 -0
  62. package/build-module/components/global-styles/screen-colors.js +48 -8
  63. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  64. package/build-module/components/global-styles/screen-root.js +4 -2
  65. package/build-module/components/global-styles/screen-root.js.map +1 -1
  66. package/build-module/components/global-styles/screen-typography-element.js +4 -0
  67. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  68. package/build-module/components/global-styles/screen-typography.js +10 -2
  69. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  70. package/build-module/components/global-styles/ui.js +10 -0
  71. package/build-module/components/global-styles/ui.js.map +1 -1
  72. package/build-module/components/global-styles/use-global-styles-output.js +39 -9
  73. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  74. package/build-module/components/global-styles/utils.js +3 -1
  75. package/build-module/components/global-styles/utils.js.map +1 -1
  76. package/build-module/components/header/index.js +29 -11
  77. package/build-module/components/header/index.js.map +1 -1
  78. package/build-module/components/header/more-menu/site-export.js +4 -1
  79. package/build-module/components/header/more-menu/site-export.js.map +1 -1
  80. package/build-module/components/header/undo-redo/redo.js +9 -3
  81. package/build-module/components/header/undo-redo/redo.js.map +1 -1
  82. package/build-module/components/header/undo-redo/undo.js +9 -3
  83. package/build-module/components/header/undo-redo/undo.js.map +1 -1
  84. package/build-module/components/keyboard-shortcut-help-modal/config.js +17 -0
  85. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +1 -1
  86. package/build-module/components/sidebar/template-card/index.js +18 -7
  87. package/build-module/components/sidebar/template-card/index.js.map +1 -1
  88. package/build-module/components/sidebar/template-card/template-actions.js +49 -0
  89. package/build-module/components/sidebar/template-card/template-actions.js.map +1 -0
  90. package/build-style/style-rtl.css +167 -16
  91. package/build-style/style.css +167 -16
  92. package/package.json +29 -29
  93. package/src/components/add-new-template/add-custom-template-modal.js +231 -0
  94. package/src/components/add-new-template/new-template.js +124 -47
  95. package/src/components/add-new-template/style.scss +116 -0
  96. package/src/components/add-new-template/utils.js +125 -0
  97. package/src/components/global-styles/context-menu.js +3 -0
  98. package/src/components/global-styles/hooks.js +1 -0
  99. package/src/components/global-styles/palette.js +4 -1
  100. package/src/components/global-styles/screen-block-list.js +10 -1
  101. package/src/components/global-styles/screen-button-color.js +102 -0
  102. package/src/components/global-styles/screen-colors.js +49 -4
  103. package/src/components/global-styles/screen-root.js +8 -2
  104. package/src/components/global-styles/screen-typography-element.js +4 -0
  105. package/src/components/global-styles/screen-typography.js +17 -2
  106. package/src/components/global-styles/style.scss +10 -0
  107. package/src/components/global-styles/test/use-global-styles-output.js +82 -16
  108. package/src/components/global-styles/ui.js +13 -0
  109. package/src/components/global-styles/use-global-styles-output.js +43 -4
  110. package/src/components/global-styles/utils.js +3 -0
  111. package/src/components/header/index.js +36 -10
  112. package/src/components/header/more-menu/site-export.js +3 -0
  113. package/src/components/header/style.scss +53 -5
  114. package/src/components/header/undo-redo/redo.js +6 -1
  115. package/src/components/header/undo-redo/undo.js +6 -1
  116. package/src/components/keyboard-shortcut-help-modal/config.js +12 -0
  117. package/src/components/sidebar/template-card/index.js +15 -6
  118. package/src/components/sidebar/template-card/style.scss +49 -35
  119. package/src/components/sidebar/template-card/template-actions.js +43 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/use-global-styles-output.js"],"names":["first","forEach","get","isEmpty","isString","kebabCase","pickBy","reduce","set","startsWith","__EXPERIMENTAL_STYLE_PROPERTY","STYLE_PROPERTY","__EXPERIMENTAL_ELEMENTS","ELEMENTS","getBlockTypes","useEffect","useState","useContext","getCSSRules","__unstablePresetDuotoneFilter","PresetDuotoneFilter","PRESET_METADATA","ROOT_BLOCK_SELECTOR","GlobalStylesContext","useSetting","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","getStylesDeclarations","blockStyles","output","properties","useEngine","pathToValue","styleValue","entries","entry","name","prop","cssProperty","extraRules","rule","getNodesWithStyles","tree","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","includes","elements","blocks","node","blockName","duotoneSelector","elementName","sel","getNodesWithSettings","settings","pickPresets","presets","custom","blockCustom","toCustomProperties","ruleset","customProps","toStyles","hasBlockGapSupport","nodesWithStyles","nodesWithSettings","duotoneStyles","duotoneDeclarations","toSvgFilters","getBlockSelectors","blockTypes","blockType","supports","__experimentalSelector","color","__experimentalDuotone","useGlobalStylesOutput","stylesheets","setStylesheets","setSettings","svgFilters","setSvgFilters","merged","mergedConfig","blockGap","customProperties","globalStyles","filters","css","isGlobalStyles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tfirst,\n\tforEach,\n\tget,\n\tisEmpty,\n\tisString,\n\tkebabCase,\n\tpickBy,\n\treduce,\n\tset,\n\tstartsWith,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tgetBlockTypes,\n} from '@wordpress/blocks';\nimport { useEffect, useState, useContext } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\nimport { __unstablePresetDuotoneFilter as PresetDuotoneFilter } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR } from './utils';\nimport { GlobalStylesContext } from './context';\nimport { useSetting } from './hooks';\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\tif ( startsWith( uncompiledValue, VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n *\n * @return {Array} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tif ( valueKey ) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tvalueFunc &&\n\t\t\t\t\t\t\ttypeof valueFunc === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ valueFunc( value ) }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\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\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction getPresetsSvgFilters( blockPresets = {} ) {\n\treturn PRESET_METADATA.filter(\n\t\t// Duotone are the only type of filters for now.\n\t\t( metadata ) => metadata.path.at( -1 ) === 'duotone'\n\t).flatMap( ( metadata ) => {\n\t\tconst presetByOrigin = get( blockPresets, metadata.path, {} );\n\t\treturn [ 'default', 'theme' ]\n\t\t\t.filter( ( origin ) => presetByOrigin[ origin ] )\n\t\t\t.flatMap( ( origin ) =>\n\t\t\t\tpresetByOrigin[ origin ].map( ( preset ) => (\n\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t/>\n\t\t\t\t) )\n\t\t\t);\n\t} );\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @return {Array} An array of style declarations.\n */\nfunction getStylesDeclarations( blockStyles = {} ) {\n\tconst output = reduce(\n\t\tSTYLE_PROPERTY,\n\t\t( declarations, { value, properties, useEngine }, key ) => {\n\t\t\tconst pathToValue = value;\n\t\t\tif ( first( pathToValue ) === 'elements' || useEngine ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\tif ( !! properties && ! isString( styleValue ) ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n\n\t// The goal is to move everything to server side generated engine styles\n\t// This is temporary as we absorb more and more styles into the engine.\n\tconst extraRules = getCSSRules( blockStyles );\n\textraRules.forEach( ( rule ) => {\n\t\tconst cssProperty = rule.key.startsWith( '--' )\n\t\t\t? rule.key\n\t\t\t: kebabCase( rule.key );\n\t\toutput.push( `${ cssProperty }: ${ compileStyleValue( rule.value ) }` );\n\t} );\n\n\treturn output;\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tpickBy( treeToPickFrom, ( value, key ) =>\n\t\t\t[ 'border', 'color', 'spacing', 'typography', 'filter' ].includes(\n\t\t\t\tkey\n\t\t\t)\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\tforEach( tree.styles?.elements, ( value, key ) => {\n\t\tif ( !! value && !! ELEMENTS[ key ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: value,\n\t\t\t\tselector: ELEMENTS[ key ],\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tforEach( tree.styles?.blocks, ( node, blockName ) => {\n\t\tconst blockStyles = pickStyleKeys( node );\n\t\tif ( !! blockStyles && !! blockSelectors?.[ blockName ]?.selector ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: blockStyles,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t\tduotoneSelector: blockSelectors[ blockName ].duotoneSelector,\n\t\t\t} );\n\t\t}\n\n\t\tforEach( node?.elements, ( value, elementName ) => {\n\t\t\tif (\n\t\t\t\t!! value &&\n\t\t\t\t!! blockSelectors?.[ blockName ] &&\n\t\t\t\t!! ELEMENTS?.[ elementName ]\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tstyles: value,\n\t\t\t\t\tselector: blockSelectors[ blockName ].selector\n\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t.map( ( sel ) => sel + ' ' + ELEMENTS[ elementName ] )\n\t\t\t\t\t\t.join( ',' ),\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( ! isEmpty( presets ) || !! custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tforEach( tree.settings?.blocks, ( node, blockName ) => {\n\t\tconst blockPresets = pickPresets( node );\n\t\tconst blockCustom = node.custom;\n\t\tif ( ! isEmpty( blockPresets ) || !! blockCustom ) {\n\t\t\tnodes.push( {\n\t\t\t\tpresets: blockPresets,\n\t\t\t\tcustom: blockCustom,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = ( tree, blockSelectors, hasBlockGapSupport ) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\n\t/*\n\t * Reset default browser margin on the root body element.\n\t * This is set on the root selector **before** generating the ruleset\n\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t * `margin` in its `spacing` declaration for the `body` element then these\n\t * user-generated values take precedence in the CSS cascade.\n\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t */\n\tlet ruleset = 'body {margin: 0;}';\n\tnodesWithStyles.forEach( ( { selector, duotoneSelector, styles } ) => {\n\t\tconst duotoneStyles = {};\n\t\tif ( styles?.filter ) {\n\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\tdelete styles.filter;\n\t\t}\n\n\t\t// Process duotone styles (they use color.__experimentalDuotone selector).\n\t\tif ( duotoneSelector ) {\n\t\t\tconst duotoneDeclarations = getStylesDeclarations( duotoneStyles );\n\t\t\tif ( duotoneDeclarations.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\truleset =\n\t\t\t\truleset +\n\t\t\t\t`${ duotoneSelector }{${ duotoneDeclarations.join( ';' ) };}`;\n\t\t}\n\n\t\t// Process the remaning block styles (they use either normal block class or __experimentalSelector).\n\t\tconst declarations = getStylesDeclarations( styles );\n\t\tif ( declarations.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t} );\n\n\t/* Add alignment / layout styles */\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\n\tif ( hasBlockGapSupport ) {\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > * + * { margin-block-start: var( --wp--style--block-gap ); }';\n\t}\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport function toSvgFilters( tree, blockSelectors ) {\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\treturn nodesWithSettings.flatMap( ( { presets } ) => {\n\t\treturn getPresetsSvgFilters( presets );\n\t} );\n}\n\nconst getBlockSelectors = ( blockTypes ) => {\n\tconst result = {};\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst selector =\n\t\t\tblockType?.supports?.__experimentalSelector ??\n\t\t\t'.wp-block-' + name.replace( 'core/', '' ).replace( '/', '-' );\n\t\tconst duotoneSelector =\n\t\t\tblockType?.supports?.color?.__experimentalDuotone ?? null;\n\t\tresult[ name ] = {\n\t\t\tname,\n\t\t\tselector,\n\t\t\tduotoneSelector,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\nexport function useGlobalStylesOutput() {\n\tconst [ stylesheets, setStylesheets ] = useState( [] );\n\tconst [ settings, setSettings ] = useState( {} );\n\tconst [ svgFilters, setSvgFilters ] = useState( {} );\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst [ blockGap ] = useSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGap !== null;\n\n\tuseEffect( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockSelectors = getBlockSelectors( getBlockTypes() );\n\t\tconst customProperties = toCustomProperties(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors\n\t\t);\n\t\tconst globalStyles = toStyles(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport\n\t\t);\n\t\tconst filters = toSvgFilters( mergedConfig, blockSelectors );\n\t\tsetStylesheets( [\n\t\t\t{\n\t\t\t\tcss: customProperties,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcss: globalStyles,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t] );\n\t\tsetSettings( mergedConfig.settings );\n\t\tsetSvgFilters( filters );\n\t}, [ mergedConfig ] );\n\n\treturn [ stylesheets, settings, svgFilters, hasBlockGapSupport ];\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/use-global-styles-output.js"],"names":["first","forEach","get","isEmpty","isString","kebabCase","pickBy","reduce","set","startsWith","__EXPERIMENTAL_STYLE_PROPERTY","STYLE_PROPERTY","__EXPERIMENTAL_ELEMENTS","ELEMENTS","getBlockTypes","useEffect","useState","useContext","getCSSRules","__unstablePresetDuotoneFilter","PresetDuotoneFilter","PRESET_METADATA","ROOT_BLOCK_SELECTOR","GlobalStylesContext","useSetting","compileStyleValue","uncompiledValue","VARIABLE_REFERENCE_PREFIX","VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE","VARIABLE_PATH_SEPARATOR_TOKEN_STYLE","variable","slice","length","split","join","getPresetsDeclarations","blockPresets","declarations","path","valueKey","valueFunc","cssVarInfix","presetByOrigin","origin","value","push","slug","getPresetsClasses","blockSelector","classes","classSuffix","propertyName","classSelectorToUse","selectorToUse","map","selector","getPresetsSvgFilters","filter","metadata","at","flatMap","preset","flattenTree","input","prefix","token","result","Object","keys","key","newKey","replace","newLeaf","newPrefix","getStylesDeclarations","blockStyles","output","properties","useEngine","pathToValue","styleValue","entries","entry","name","prop","cssProperty","extraRules","rule","getNodesWithStyles","tree","blockSelectors","nodes","styles","pickStyleKeys","treeToPickFrom","includes","elements","blocks","node","blockName","duotoneSelector","elementName","sel","elementSelectors","elementSelector","getNodesWithSettings","settings","pickPresets","presets","custom","blockCustom","toCustomProperties","ruleset","customProps","toStyles","hasBlockGapSupport","nodesWithStyles","nodesWithSettings","duotoneStyles","duotoneDeclarations","psuedoSelectorStyles","pseudoKey","pseudoRule","pseudoDeclarations","_selector","psuedoRule","toSvgFilters","getBlockSelectors","blockTypes","blockType","supports","__experimentalSelector","color","__experimentalDuotone","useGlobalStylesOutput","stylesheets","setStylesheets","setSettings","svgFilters","setSvgFilters","merged","mergedConfig","blockGap","customProperties","globalStyles","filters","css","isGlobalStyles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tfirst,\n\tforEach,\n\tget,\n\tisEmpty,\n\tisString,\n\tkebabCase,\n\tpickBy,\n\treduce,\n\tset,\n\tstartsWith,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n\t__EXPERIMENTAL_ELEMENTS as ELEMENTS,\n\tgetBlockTypes,\n} from '@wordpress/blocks';\nimport { useEffect, useState, useContext } from '@wordpress/element';\nimport { getCSSRules } from '@wordpress/style-engine';\nimport { __unstablePresetDuotoneFilter as PresetDuotoneFilter } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { PRESET_METADATA, ROOT_BLOCK_SELECTOR } from './utils';\nimport { GlobalStylesContext } from './context';\nimport { useSetting } from './hooks';\n\nfunction compileStyleValue( uncompiledValue ) {\n\tconst VARIABLE_REFERENCE_PREFIX = 'var:';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\n\tconst VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\tif ( startsWith( uncompiledValue, VARIABLE_REFERENCE_PREFIX ) ) {\n\t\tconst variable = uncompiledValue\n\t\t\t.slice( VARIABLE_REFERENCE_PREFIX.length )\n\t\t\t.split( VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE )\n\t\t\t.join( VARIABLE_PATH_SEPARATOR_TOKEN_STYLE );\n\t\treturn `var(--wp--${ variable })`;\n\t}\n\treturn uncompiledValue;\n}\n\n/**\n * Transform given preset tree into a set of style declarations.\n *\n * @param {Object} blockPresets\n *\n * @return {Array} An array of style declarations.\n */\nfunction getPresetsDeclarations( blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, valueKey, valueFunc, cssVarInfix } ) => {\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( value ) => {\n\t\t\t\t\t\tif ( valueKey ) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ value[ valueKey ] }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tvalueFunc &&\n\t\t\t\t\t\t\ttypeof valueFunc === 'function'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t\t\t`--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\t\tvalue.slug\n\t\t\t\t\t\t\t\t) }: ${ valueFunc( value ) }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Transform given preset tree into a set of preset class declarations.\n *\n * @param {string} blockSelector\n * @param {Object} blockPresets\n * @return {string} CSS declarations for the preset classes.\n */\nfunction getPresetsClasses( blockSelector, blockPresets = {} ) {\n\treturn reduce(\n\t\tPRESET_METADATA,\n\t\t( declarations, { path, cssVarInfix, classes } ) => {\n\t\t\tif ( ! classes ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst presetByOrigin = get( blockPresets, path, [] );\n\t\t\t[ 'default', 'theme', 'custom' ].forEach( ( origin ) => {\n\t\t\t\tif ( presetByOrigin[ origin ] ) {\n\t\t\t\t\tpresetByOrigin[ origin ].forEach( ( { slug } ) => {\n\t\t\t\t\t\tclasses.forEach( ( { classSuffix, propertyName } ) => {\n\t\t\t\t\t\t\tconst classSelectorToUse = `.has-${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) }-${ classSuffix }`;\n\t\t\t\t\t\t\tconst selectorToUse = blockSelector\n\t\t\t\t\t\t\t\t.split( ',' ) // Selector can be \"h1, h2, h3\"\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( selector ) =>\n\t\t\t\t\t\t\t\t\t\t`${ selector }${ classSelectorToUse }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' );\n\t\t\t\t\t\t\tconst value = `var(--wp--preset--${ cssVarInfix }--${ kebabCase(\n\t\t\t\t\t\t\t\tslug\n\t\t\t\t\t\t\t) })`;\n\t\t\t\t\t\t\tdeclarations += `${ selectorToUse }{${ propertyName }: ${ value } !important;}`;\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\treturn declarations;\n\t\t},\n\t\t''\n\t);\n}\n\nfunction getPresetsSvgFilters( blockPresets = {} ) {\n\treturn PRESET_METADATA.filter(\n\t\t// Duotone are the only type of filters for now.\n\t\t( metadata ) => metadata.path.at( -1 ) === 'duotone'\n\t).flatMap( ( metadata ) => {\n\t\tconst presetByOrigin = get( blockPresets, metadata.path, {} );\n\t\treturn [ 'default', 'theme' ]\n\t\t\t.filter( ( origin ) => presetByOrigin[ origin ] )\n\t\t\t.flatMap( ( origin ) =>\n\t\t\t\tpresetByOrigin[ origin ].map( ( preset ) => (\n\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t/>\n\t\t\t\t) )\n\t\t\t);\n\t} );\n}\n\nfunction flattenTree( input = {}, prefix, token ) {\n\tlet result = [];\n\tObject.keys( input ).forEach( ( key ) => {\n\t\tconst newKey = prefix + kebabCase( key.replace( '/', '-' ) );\n\t\tconst newLeaf = input[ key ];\n\n\t\tif ( newLeaf instanceof Object ) {\n\t\t\tconst newPrefix = newKey + token;\n\t\t\tresult = [ ...result, ...flattenTree( newLeaf, newPrefix, token ) ];\n\t\t} else {\n\t\t\tresult.push( `${ newKey }: ${ newLeaf }` );\n\t\t}\n\t} );\n\treturn result;\n}\n\n/**\n * Transform given style tree into a set of style declarations.\n *\n * @param {Object} blockStyles Block styles.\n *\n * @return {Array} An array of style declarations.\n */\nfunction getStylesDeclarations( blockStyles = {} ) {\n\tconst output = reduce(\n\t\tSTYLE_PROPERTY,\n\t\t( declarations, { value, properties, useEngine }, key ) => {\n\t\t\tconst pathToValue = value;\n\t\t\tif ( first( pathToValue ) === 'elements' || useEngine ) {\n\t\t\t\treturn declarations;\n\t\t\t}\n\n\t\t\tconst styleValue = get( blockStyles, pathToValue );\n\n\t\t\tif ( !! properties && ! isString( styleValue ) ) {\n\t\t\t\tObject.entries( properties ).forEach( ( entry ) => {\n\t\t\t\t\tconst [ name, prop ] = entry;\n\n\t\t\t\t\tif ( ! get( styleValue, [ prop ], false ) ) {\n\t\t\t\t\t\t// Do not create a declaration\n\t\t\t\t\t\t// for sub-properties that don't have any value.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst cssProperty = kebabCase( name );\n\t\t\t\t\tdeclarations.push(\n\t\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\t\tget( styleValue, [ prop ] )\n\t\t\t\t\t\t) }`\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t} else if ( get( blockStyles, pathToValue, false ) ) {\n\t\t\t\tconst cssProperty = key.startsWith( '--' )\n\t\t\t\t\t? key\n\t\t\t\t\t: kebabCase( key );\n\t\t\t\tdeclarations.push(\n\t\t\t\t\t`${ cssProperty }: ${ compileStyleValue(\n\t\t\t\t\t\tget( blockStyles, pathToValue )\n\t\t\t\t\t) }`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn declarations;\n\t\t},\n\t\t[]\n\t);\n\n\t// The goal is to move everything to server side generated engine styles\n\t// This is temporary as we absorb more and more styles into the engine.\n\tconst extraRules = getCSSRules( blockStyles );\n\textraRules.forEach( ( rule ) => {\n\t\tconst cssProperty = rule.key.startsWith( '--' )\n\t\t\t? rule.key\n\t\t\t: kebabCase( rule.key );\n\t\toutput.push( `${ cssProperty }: ${ compileStyleValue( rule.value ) }` );\n\t} );\n\n\treturn output;\n}\n\nexport const getNodesWithStyles = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.styles ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickStyleKeys = ( treeToPickFrom ) =>\n\t\tpickBy( treeToPickFrom, ( value, key ) =>\n\t\t\t[ 'border', 'color', 'spacing', 'typography', 'filter' ].includes(\n\t\t\t\tkey\n\t\t\t)\n\t\t);\n\n\t// Top-level.\n\tconst styles = pickStyleKeys( tree.styles );\n\tif ( !! styles ) {\n\t\tnodes.push( {\n\t\t\tstyles,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\tforEach( tree.styles?.elements, ( value, key ) => {\n\t\tif ( !! value && !! ELEMENTS[ key ] ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: value,\n\t\t\t\tselector: ELEMENTS[ key ],\n\t\t\t} );\n\t\t}\n\t} );\n\n\t// Iterate over blocks: they can have styles & elements.\n\tforEach( tree.styles?.blocks, ( node, blockName ) => {\n\t\tconst blockStyles = pickStyleKeys( node );\n\t\tif ( !! blockStyles && !! blockSelectors?.[ blockName ]?.selector ) {\n\t\t\tnodes.push( {\n\t\t\t\tstyles: blockStyles,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t\tduotoneSelector: blockSelectors[ blockName ].duotoneSelector,\n\t\t\t} );\n\t\t}\n\n\t\tforEach( node?.elements, ( value, elementName ) => {\n\t\t\tif (\n\t\t\t\t!! value &&\n\t\t\t\t!! blockSelectors?.[ blockName ] &&\n\t\t\t\t!! ELEMENTS?.[ elementName ]\n\t\t\t) {\n\t\t\t\tnodes.push( {\n\t\t\t\t\tstyles: value,\n\t\t\t\t\tselector: blockSelectors[ blockName ].selector\n\t\t\t\t\t\t.split( ',' )\n\t\t\t\t\t\t.map( ( sel ) => {\n\t\t\t\t\t\t\tconst elementSelectors =\n\t\t\t\t\t\t\t\tELEMENTS[ elementName ].split( ',' );\n\t\t\t\t\t\t\treturn elementSelectors.map(\n\t\t\t\t\t\t\t\t( elementSelector ) =>\n\t\t\t\t\t\t\t\t\tsel + ' ' + elementSelector\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.join( ',' ),\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t} );\n\n\treturn nodes;\n};\n\nexport const getNodesWithSettings = ( tree, blockSelectors ) => {\n\tconst nodes = [];\n\n\tif ( ! tree?.settings ) {\n\t\treturn nodes;\n\t}\n\n\tconst pickPresets = ( treeToPickFrom ) => {\n\t\tconst presets = {};\n\t\tPRESET_METADATA.forEach( ( { path } ) => {\n\t\t\tconst value = get( treeToPickFrom, path, false );\n\t\t\tif ( value !== false ) {\n\t\t\t\tset( presets, path, value );\n\t\t\t}\n\t\t} );\n\t\treturn presets;\n\t};\n\n\t// Top-level.\n\tconst presets = pickPresets( tree.settings );\n\tconst custom = tree.settings?.custom;\n\tif ( ! isEmpty( presets ) || !! custom ) {\n\t\tnodes.push( {\n\t\t\tpresets,\n\t\t\tcustom,\n\t\t\tselector: ROOT_BLOCK_SELECTOR,\n\t\t} );\n\t}\n\n\t// Blocks.\n\tforEach( tree.settings?.blocks, ( node, blockName ) => {\n\t\tconst blockPresets = pickPresets( node );\n\t\tconst blockCustom = node.custom;\n\t\tif ( ! isEmpty( blockPresets ) || !! blockCustom ) {\n\t\t\tnodes.push( {\n\t\t\t\tpresets: blockPresets,\n\t\t\t\tcustom: blockCustom,\n\t\t\t\tselector: blockSelectors[ blockName ].selector,\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn nodes;\n};\n\nexport const toCustomProperties = ( tree, blockSelectors ) => {\n\tconst settings = getNodesWithSettings( tree, blockSelectors );\n\n\tlet ruleset = '';\n\tsettings.forEach( ( { presets, custom, selector } ) => {\n\t\tconst declarations = getPresetsDeclarations( presets );\n\t\tconst customProps = flattenTree( custom, '--wp--custom--', '--' );\n\t\tif ( customProps.length > 0 ) {\n\t\t\tdeclarations.push( ...customProps );\n\t\t}\n\n\t\tif ( declarations.length > 0 ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport const toStyles = ( tree, blockSelectors, hasBlockGapSupport ) => {\n\tconst nodesWithStyles = getNodesWithStyles( tree, blockSelectors );\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\n\t/*\n\t * Reset default browser margin on the root body element.\n\t * This is set on the root selector **before** generating the ruleset\n\t * from the `theme.json`. This is to ensure that if the `theme.json` declares\n\t * `margin` in its `spacing` declaration for the `body` element then these\n\t * user-generated values take precedence in the CSS cascade.\n\t * @link https://github.com/WordPress/gutenberg/issues/36147.\n\t */\n\tlet ruleset = 'body {margin: 0;}';\n\tnodesWithStyles.forEach( ( { selector, duotoneSelector, styles } ) => {\n\t\tconst duotoneStyles = {};\n\t\tif ( styles?.filter ) {\n\t\t\tduotoneStyles.filter = styles.filter;\n\t\t\tdelete styles.filter;\n\t\t}\n\n\t\t// Process duotone styles (they use color.__experimentalDuotone selector).\n\t\tif ( duotoneSelector ) {\n\t\t\tconst duotoneDeclarations = getStylesDeclarations( duotoneStyles );\n\t\t\tif ( duotoneDeclarations.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\truleset =\n\t\t\t\truleset +\n\t\t\t\t`${ duotoneSelector }{${ duotoneDeclarations.join( ';' ) };}`;\n\t\t}\n\n\t\t// Process the remaning block styles (they use either normal block class or __experimentalSelector).\n\t\tconst declarations = getStylesDeclarations( styles );\n\t\tif ( declarations?.length ) {\n\t\t\truleset = ruleset + `${ selector }{${ declarations.join( ';' ) };}`;\n\t\t}\n\n\t\t// Check for pseudo selector in `styles` and handle separately.\n\t\tconst psuedoSelectorStyles = Object.entries( styles ).filter(\n\t\t\t( [ key ] ) => key.startsWith( ':' )\n\t\t);\n\n\t\tif ( psuedoSelectorStyles?.length ) {\n\t\t\tpsuedoSelectorStyles.forEach( ( [ pseudoKey, pseudoRule ] ) => {\n\t\t\t\tconst pseudoDeclarations = getStylesDeclarations( pseudoRule );\n\n\t\t\t\tif ( ! pseudoDeclarations?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// `selector` maybe provided in a form\n\t\t\t\t// where block level selectors have sub element\n\t\t\t\t// selectors appended to them as a comma seperated\n\t\t\t\t// string.\n\t\t\t\t// e.g. `h1 a,h2 a,h3 a,h4 a,h5 a,h6 a`;\n\t\t\t\t// Split and append pseudo selector to create\n\t\t\t\t// the proper rules to target the elements.\n\t\t\t\tconst _selector = selector\n\t\t\t\t\t.split( ',' )\n\t\t\t\t\t.map( ( sel ) => sel + pseudoKey )\n\t\t\t\t\t.join( ',' );\n\n\t\t\t\tconst psuedoRule = `${ _selector }{${ pseudoDeclarations.join(\n\t\t\t\t\t';'\n\t\t\t\t) };}`;\n\n\t\t\t\truleset = ruleset + psuedoRule;\n\t\t\t} );\n\t\t}\n\t} );\n\n\t/* Add alignment / layout styles */\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .alignright { float: right; margin-left: 2em; }';\n\truleset =\n\t\truleset +\n\t\t'.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }';\n\n\tif ( hasBlockGapSupport ) {\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }';\n\t\truleset =\n\t\t\truleset +\n\t\t\t'.wp-site-blocks > * + * { margin-block-start: var( --wp--style--block-gap ); }';\n\t}\n\n\tnodesWithSettings.forEach( ( { selector, presets } ) => {\n\t\tif ( ROOT_BLOCK_SELECTOR === selector ) {\n\t\t\t// Do not add extra specificity for top-level classes.\n\t\t\tselector = '';\n\t\t}\n\n\t\tconst classes = getPresetsClasses( selector, presets );\n\t\tif ( ! isEmpty( classes ) ) {\n\t\t\truleset = ruleset + classes;\n\t\t}\n\t} );\n\n\treturn ruleset;\n};\n\nexport function toSvgFilters( tree, blockSelectors ) {\n\tconst nodesWithSettings = getNodesWithSettings( tree, blockSelectors );\n\treturn nodesWithSettings.flatMap( ( { presets } ) => {\n\t\treturn getPresetsSvgFilters( presets );\n\t} );\n}\n\nconst getBlockSelectors = ( blockTypes ) => {\n\tconst result = {};\n\tblockTypes.forEach( ( blockType ) => {\n\t\tconst name = blockType.name;\n\t\tconst selector =\n\t\t\tblockType?.supports?.__experimentalSelector ??\n\t\t\t'.wp-block-' + name.replace( 'core/', '' ).replace( '/', '-' );\n\t\tconst duotoneSelector =\n\t\t\tblockType?.supports?.color?.__experimentalDuotone ?? null;\n\t\tresult[ name ] = {\n\t\t\tname,\n\t\t\tselector,\n\t\t\tduotoneSelector,\n\t\t};\n\t} );\n\n\treturn result;\n};\n\nexport function useGlobalStylesOutput() {\n\tconst [ stylesheets, setStylesheets ] = useState( [] );\n\tconst [ settings, setSettings ] = useState( {} );\n\tconst [ svgFilters, setSvgFilters ] = useState( {} );\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\tconst [ blockGap ] = useSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGap !== null;\n\n\tuseEffect( () => {\n\t\tif ( ! mergedConfig?.styles || ! mergedConfig?.settings ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockSelectors = getBlockSelectors( getBlockTypes() );\n\t\tconst customProperties = toCustomProperties(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors\n\t\t);\n\t\tconst globalStyles = toStyles(\n\t\t\tmergedConfig,\n\t\t\tblockSelectors,\n\t\t\thasBlockGapSupport\n\t\t);\n\t\tconst filters = toSvgFilters( mergedConfig, blockSelectors );\n\t\tsetStylesheets( [\n\t\t\t{\n\t\t\t\tcss: customProperties,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tcss: globalStyles,\n\t\t\t\tisGlobalStyles: true,\n\t\t\t},\n\t\t] );\n\t\tsetSettings( mergedConfig.settings );\n\t\tsetSvgFilters( filters );\n\t}, [ mergedConfig ] );\n\n\treturn [ stylesheets, settings, svgFilters, hasBlockGapSupport ];\n}\n"]}
@@ -6,7 +6,7 @@ import { get, find, isString } from 'lodash';
6
6
 
7
7
  export const ROOT_BLOCK_NAME = 'root';
8
8
  export const ROOT_BLOCK_SELECTOR = 'body';
9
- export const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'];
9
+ export const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'buttonColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'];
10
10
  export const PRESET_METADATA = [{
11
11
  path: ['color', 'palette'],
12
12
  valueKey: 'color',
@@ -60,6 +60,8 @@ const STYLE_PATH_TO_CSS_VAR_INFIX = {
60
60
  'color.background': 'color',
61
61
  'color.text': 'color',
62
62
  'elements.link.color.text': 'color',
63
+ 'elements.button.color.text': 'color',
64
+ 'elements.button.backgroundColor': 'background-color',
63
65
  'color.gradient': 'gradient',
64
66
  'typography.fontSize': 'font-size',
65
67
  'typography.fontFamily': 'font-family'
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/utils.js"],"names":["get","find","isString","ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","valueFunc","slug","STYLE_PATH_TO_CSS_VAR_INFIX","findInPresetsBy","features","blockName","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","preset","highestPresetObjectWithSameSlug","undefined","getPresetVariableFromValue","variableStylePath","presetPropertyValue","metadata","getValueFromPresetVariable","variable","presetType","result","getValueFromVariable","getValueFromCustomVariable","USER_VALUE_PREFIX","THEME_VALUE_PREFIX","THEME_VALUE_SUFFIX","parsedVar","startsWith","slice","length","split","endsWith","type"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, find, isString } from 'lodash';\n\n/* Supporting data. */\nexport const ROOT_BLOCK_NAME = 'root';\nexport const ROOT_BLOCK_SELECTOR = 'body';\nexport const ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n];\n\nexport const PRESET_METADATA = [\n\t{\n\t\tpath: [ 'color', 'palette' ],\n\t\tvalueKey: 'color',\n\t\tcssVarInfix: 'color',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'color', propertyName: 'color' },\n\t\t\t{\n\t\t\t\tclassSuffix: 'background-color',\n\t\t\t\tpropertyName: 'background-color',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclassSuffix: 'border-color',\n\t\t\t\tpropertyName: 'border-color',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'gradients' ],\n\t\tvalueKey: 'gradient',\n\t\tcssVarInfix: 'gradient',\n\t\tclasses: [\n\t\t\t{\n\t\t\t\tclassSuffix: 'gradient-background',\n\t\t\t\tpropertyName: 'background',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'duotone' ],\n\t\tcssVarInfix: 'duotone',\n\t\tvalueFunc: ( { slug } ) => `url( '#wp-duotone-${ slug }' )`,\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'font-size',\n\t\tclasses: [ { classSuffix: 'font-size', propertyName: 'font-size' } ],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontFamilies' ],\n\t\tvalueKey: 'fontFamily',\n\t\tcssVarInfix: 'font-family',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'font-family', propertyName: 'font-family' },\n\t\t],\n\t},\n];\n\nconst STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'elements.link.color.text': 'color',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\nfunction findInPresetsBy(\n\tfeatures,\n\tblockName,\n\tpresetPath,\n\tpresetProperty,\n\tpresetValueValue\n) {\n\t// Block presets take priority above root level presets.\n\tconst orderedPresetsByOrigin = [\n\t\tget( features, [ 'blocks', blockName, ...presetPath ] ),\n\t\tget( features, presetPath ),\n\t];\n\n\tfor ( const presetByOrigin of orderedPresetsByOrigin ) {\n\t\tif ( presetByOrigin ) {\n\t\t\t// Preset origins ordered by priority.\n\t\t\tconst origins = [ 'custom', 'theme', 'default' ];\n\t\t\tfor ( const origin of origins ) {\n\t\t\t\tconst presets = presetByOrigin[ origin ];\n\t\t\t\tif ( presets ) {\n\t\t\t\t\tconst presetObject = find(\n\t\t\t\t\t\tpresets,\n\t\t\t\t\t\t( preset ) =>\n\t\t\t\t\t\t\tpreset[ presetProperty ] === presetValueValue\n\t\t\t\t\t);\n\t\t\t\t\tif ( presetObject ) {\n\t\t\t\t\t\tif ( presetProperty === 'slug' ) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.\n\t\t\t\t\t\tconst highestPresetObjectWithSameSlug = findInPresetsBy(\n\t\t\t\t\t\t\tfeatures,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpresetPath,\n\t\t\t\t\t\t\t'slug',\n\t\t\t\t\t\t\tpresetObject.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thighestPresetObjectWithSameSlug[\n\t\t\t\t\t\t\t\tpresetProperty\n\t\t\t\t\t\t\t] === presetObject[ presetProperty ]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function getPresetVariableFromValue(\n\tfeatures,\n\tblockName,\n\tvariableStylePath,\n\tpresetPropertyValue\n) {\n\tif ( ! presetPropertyValue ) {\n\t\treturn presetPropertyValue;\n\t}\n\n\tconst cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[ variableStylePath ];\n\n\tconst metadata = find( PRESET_METADATA, [ 'cssVarInfix', cssVarInfix ] );\n\n\tif ( ! metadata ) {\n\t\t// The property doesn't have preset data\n\t\t// so the value should be returned as it is.\n\t\treturn presetPropertyValue;\n\t}\n\tconst { valueKey, path } = metadata;\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures,\n\t\tblockName,\n\t\tpath,\n\t\tvalueKey,\n\t\tpresetPropertyValue\n\t);\n\n\tif ( ! presetObject ) {\n\t\t// Value wasn't found in the presets,\n\t\t// so it must be a custom value.\n\t\treturn presetPropertyValue;\n\t}\n\n\treturn `var:preset|${ cssVarInfix }|${ presetObject.slug }`;\n}\n\nfunction getValueFromPresetVariable(\n\tfeatures,\n\tblockName,\n\tvariable,\n\t[ presetType, slug ]\n) {\n\tconst metadata = find( PRESET_METADATA, [ 'cssVarInfix', presetType ] );\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures,\n\t\tblockName,\n\t\tmetadata.path,\n\t\t'slug',\n\t\tslug\n\t);\n\n\tif ( presetObject ) {\n\t\tconst { valueKey } = metadata;\n\t\tconst result = presetObject[ valueKey ];\n\t\treturn getValueFromVariable( features, blockName, result );\n\t}\n\n\treturn variable;\n}\n\nfunction getValueFromCustomVariable( features, blockName, variable, path ) {\n\tconst result =\n\t\tget( features, [ 'blocks', blockName, 'custom', ...path ] ) ??\n\t\tget( features, [ 'custom', ...path ] );\n\tif ( ! result ) {\n\t\treturn variable;\n\t}\n\t// A variable may reference another variable so we need recursion until we find the value.\n\treturn getValueFromVariable( features, blockName, result );\n}\n\nexport function getValueFromVariable( features, blockName, variable ) {\n\tif ( ! variable || ! isString( variable ) ) {\n\t\treturn variable;\n\t}\n\tconst USER_VALUE_PREFIX = 'var:';\n\tconst THEME_VALUE_PREFIX = 'var(--wp--';\n\tconst THEME_VALUE_SUFFIX = ')';\n\n\tlet parsedVar;\n\n\tif ( variable.startsWith( USER_VALUE_PREFIX ) ) {\n\t\tparsedVar = variable.slice( USER_VALUE_PREFIX.length ).split( '|' );\n\t} else if (\n\t\tvariable.startsWith( THEME_VALUE_PREFIX ) &&\n\t\tvariable.endsWith( THEME_VALUE_SUFFIX )\n\t) {\n\t\tparsedVar = variable\n\t\t\t.slice( THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length )\n\t\t\t.split( '--' );\n\t} else {\n\t\t// We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )`\n\t\treturn variable;\n\t}\n\n\tconst [ type, ...path ] = parsedVar;\n\tif ( type === 'preset' ) {\n\t\treturn getValueFromPresetVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\tif ( type === 'custom' ) {\n\t\treturn getValueFromCustomVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\treturn variable;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/utils.js"],"names":["get","find","isString","ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","valueFunc","slug","STYLE_PATH_TO_CSS_VAR_INFIX","findInPresetsBy","features","blockName","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","preset","highestPresetObjectWithSameSlug","undefined","getPresetVariableFromValue","variableStylePath","presetPropertyValue","metadata","getValueFromPresetVariable","variable","presetType","result","getValueFromVariable","getValueFromCustomVariable","USER_VALUE_PREFIX","THEME_VALUE_PREFIX","THEME_VALUE_SUFFIX","parsedVar","startsWith","slice","length","split","endsWith","type"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, find, isString } from 'lodash';\n\n/* Supporting data. */\nexport const ROOT_BLOCK_NAME = 'root';\nexport const ROOT_BLOCK_SELECTOR = 'body';\nexport const ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'buttonColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n];\n\nexport const PRESET_METADATA = [\n\t{\n\t\tpath: [ 'color', 'palette' ],\n\t\tvalueKey: 'color',\n\t\tcssVarInfix: 'color',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'color', propertyName: 'color' },\n\t\t\t{\n\t\t\t\tclassSuffix: 'background-color',\n\t\t\t\tpropertyName: 'background-color',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclassSuffix: 'border-color',\n\t\t\t\tpropertyName: 'border-color',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'gradients' ],\n\t\tvalueKey: 'gradient',\n\t\tcssVarInfix: 'gradient',\n\t\tclasses: [\n\t\t\t{\n\t\t\t\tclassSuffix: 'gradient-background',\n\t\t\t\tpropertyName: 'background',\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: [ 'color', 'duotone' ],\n\t\tcssVarInfix: 'duotone',\n\t\tvalueFunc: ( { slug } ) => `url( '#wp-duotone-${ slug }' )`,\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'font-size',\n\t\tclasses: [ { classSuffix: 'font-size', propertyName: 'font-size' } ],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontFamilies' ],\n\t\tvalueKey: 'fontFamily',\n\t\tcssVarInfix: 'font-family',\n\t\tclasses: [\n\t\t\t{ classSuffix: 'font-family', propertyName: 'font-family' },\n\t\t],\n\t},\n];\n\nconst STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'elements.link.color.text': 'color',\n\t'elements.button.color.text': 'color',\n\t'elements.button.backgroundColor': 'background-color',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\nfunction findInPresetsBy(\n\tfeatures,\n\tblockName,\n\tpresetPath,\n\tpresetProperty,\n\tpresetValueValue\n) {\n\t// Block presets take priority above root level presets.\n\tconst orderedPresetsByOrigin = [\n\t\tget( features, [ 'blocks', blockName, ...presetPath ] ),\n\t\tget( features, presetPath ),\n\t];\n\n\tfor ( const presetByOrigin of orderedPresetsByOrigin ) {\n\t\tif ( presetByOrigin ) {\n\t\t\t// Preset origins ordered by priority.\n\t\t\tconst origins = [ 'custom', 'theme', 'default' ];\n\t\t\tfor ( const origin of origins ) {\n\t\t\t\tconst presets = presetByOrigin[ origin ];\n\t\t\t\tif ( presets ) {\n\t\t\t\t\tconst presetObject = find(\n\t\t\t\t\t\tpresets,\n\t\t\t\t\t\t( preset ) =>\n\t\t\t\t\t\t\tpreset[ presetProperty ] === presetValueValue\n\t\t\t\t\t);\n\t\t\t\t\tif ( presetObject ) {\n\t\t\t\t\t\tif ( presetProperty === 'slug' ) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If there is a highest priority preset with the same slug but different value the preset we found was overwritten and should be ignored.\n\t\t\t\t\t\tconst highestPresetObjectWithSameSlug = findInPresetsBy(\n\t\t\t\t\t\t\tfeatures,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpresetPath,\n\t\t\t\t\t\t\t'slug',\n\t\t\t\t\t\t\tpresetObject.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thighestPresetObjectWithSameSlug[\n\t\t\t\t\t\t\t\tpresetProperty\n\t\t\t\t\t\t\t] === presetObject[ presetProperty ]\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn presetObject;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function getPresetVariableFromValue(\n\tfeatures,\n\tblockName,\n\tvariableStylePath,\n\tpresetPropertyValue\n) {\n\tif ( ! presetPropertyValue ) {\n\t\treturn presetPropertyValue;\n\t}\n\n\tconst cssVarInfix = STYLE_PATH_TO_CSS_VAR_INFIX[ variableStylePath ];\n\n\tconst metadata = find( PRESET_METADATA, [ 'cssVarInfix', cssVarInfix ] );\n\n\tif ( ! metadata ) {\n\t\t// The property doesn't have preset data\n\t\t// so the value should be returned as it is.\n\t\treturn presetPropertyValue;\n\t}\n\tconst { valueKey, path } = metadata;\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures,\n\t\tblockName,\n\t\tpath,\n\t\tvalueKey,\n\t\tpresetPropertyValue\n\t);\n\n\tif ( ! presetObject ) {\n\t\t// Value wasn't found in the presets,\n\t\t// so it must be a custom value.\n\t\treturn presetPropertyValue;\n\t}\n\n\treturn `var:preset|${ cssVarInfix }|${ presetObject.slug }`;\n}\n\nfunction getValueFromPresetVariable(\n\tfeatures,\n\tblockName,\n\tvariable,\n\t[ presetType, slug ]\n) {\n\tconst metadata = find( PRESET_METADATA, [ 'cssVarInfix', presetType ] );\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures,\n\t\tblockName,\n\t\tmetadata.path,\n\t\t'slug',\n\t\tslug\n\t);\n\n\tif ( presetObject ) {\n\t\tconst { valueKey } = metadata;\n\t\tconst result = presetObject[ valueKey ];\n\t\treturn getValueFromVariable( features, blockName, result );\n\t}\n\n\treturn variable;\n}\n\nfunction getValueFromCustomVariable( features, blockName, variable, path ) {\n\tconst result =\n\t\tget( features, [ 'blocks', blockName, 'custom', ...path ] ) ??\n\t\tget( features, [ 'custom', ...path ] );\n\tif ( ! result ) {\n\t\treturn variable;\n\t}\n\t// A variable may reference another variable so we need recursion until we find the value.\n\treturn getValueFromVariable( features, blockName, result );\n}\n\nexport function getValueFromVariable( features, blockName, variable ) {\n\tif ( ! variable || ! isString( variable ) ) {\n\t\treturn variable;\n\t}\n\tconst USER_VALUE_PREFIX = 'var:';\n\tconst THEME_VALUE_PREFIX = 'var(--wp--';\n\tconst THEME_VALUE_SUFFIX = ')';\n\n\tlet parsedVar;\n\n\tif ( variable.startsWith( USER_VALUE_PREFIX ) ) {\n\t\tparsedVar = variable.slice( USER_VALUE_PREFIX.length ).split( '|' );\n\t} else if (\n\t\tvariable.startsWith( THEME_VALUE_PREFIX ) &&\n\t\tvariable.endsWith( THEME_VALUE_SUFFIX )\n\t) {\n\t\tparsedVar = variable\n\t\t\t.slice( THEME_VALUE_PREFIX.length, -THEME_VALUE_SUFFIX.length )\n\t\t\t.split( '--' );\n\t} else {\n\t\t// We don't know how to parse the value: either is raw of uses complex CSS such as `calc(1px * var(--wp--variable) )`\n\t\treturn variable;\n\t}\n\n\tconst [ type, ...path ] = parsedVar;\n\tif ( type === 'preset' ) {\n\t\treturn getValueFromPresetVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\tif ( type === 'custom' ) {\n\t\treturn getValueFromCustomVariable(\n\t\t\tfeatures,\n\t\t\tblockName,\n\t\t\tvariable,\n\t\t\tpath\n\t\t);\n\t}\n\treturn variable;\n}\n"]}
@@ -5,7 +5,7 @@ import { createElement, Fragment } from "@wordpress/element";
5
5
  */
6
6
  import { useCallback, useRef } from '@wordpress/element';
7
7
  import { useViewportMatch } from '@wordpress/compose';
8
- import { ToolSelector, __experimentalPreviewOptions as PreviewOptions } from '@wordpress/block-editor';
8
+ import { ToolSelector, __experimentalPreviewOptions as PreviewOptions, NavigableToolbar } from '@wordpress/block-editor';
9
9
  import { useSelect, useDispatch } from '@wordpress/data';
10
10
  import { PinnedItems } from '@wordpress/interface';
11
11
  import { _x, __ } from '@wordpress/i18n';
@@ -101,33 +101,51 @@ export default function Header(_ref) {
101
101
  const isFocusMode = templateType === 'wp_template_part';
102
102
  return createElement("div", {
103
103
  className: "edit-site-header"
104
- }, createElement("div", {
105
- className: "edit-site-header_start"
104
+ }, createElement(NavigableToolbar, {
105
+ className: "edit-site-header_start",
106
+ "aria-label": __('Document tools')
106
107
  }, createElement("div", {
107
108
  className: "edit-site-header__toolbar"
108
- }, createElement(Button, {
109
+ }, createElement(ToolbarItem, {
109
110
  ref: inserterButton,
111
+ as: Button,
112
+ className: "edit-site-header-toolbar__inserter-toggle",
110
113
  variant: "primary",
111
114
  isPressed: isInserterOpen,
112
- className: "edit-site-header-toolbar__inserter-toggle",
113
- disabled: !isVisualMode,
114
115
  onMouseDown: preventDefault,
115
116
  onClick: openInserter,
116
- icon: plus,
117
- label: _x('Toggle block inserter', 'Generic label for block inserter button')
117
+ disabled: !isVisualMode,
118
+ icon: plus
119
+ /* translators: button label text should, if possible, be under 16
120
+ characters. */
121
+ ,
122
+ label: _x('Toggle block inserter', 'Generic label for block inserter button'),
123
+ showTooltip: !showIconLabels
118
124
  }, showIconLabels && (!isInserterOpen ? __('Add') : __('Close'))), isLargeViewport && createElement(Fragment, null, createElement(ToolbarItem, {
119
125
  as: ToolSelector,
126
+ showTooltip: !showIconLabels,
127
+ variant: showIconLabels ? 'tertiary' : undefined,
120
128
  disabled: !isVisualMode
121
- }), createElement(UndoButton, null), createElement(RedoButton, null), createElement(Button, {
129
+ }), createElement(ToolbarItem, {
130
+ as: UndoButton,
131
+ showTooltip: !showIconLabels,
132
+ variant: showIconLabels ? 'tertiary' : undefined
133
+ }), createElement(ToolbarItem, {
134
+ as: RedoButton,
135
+ showTooltip: !showIconLabels,
136
+ variant: showIconLabels ? 'tertiary' : undefined
137
+ }), createElement(ToolbarItem, {
138
+ as: Button,
122
139
  className: "edit-site-header-toolbar__list-view-toggle",
123
- disabled: !isVisualMode,
124
140
  icon: listView,
141
+ disabled: !isVisualMode,
125
142
  isPressed: isListViewOpen
126
143
  /* translators: button label text should, if possible, be under 16 characters. */
127
144
  ,
128
145
  label: __('List View'),
129
146
  onClick: toggleListView,
130
- shortcut: listViewShortcut
147
+ shortcut: listViewShortcut,
148
+ showTooltip: !showIconLabels
131
149
  })))), createElement("div", {
132
150
  className: "edit-site-header_center"
133
151
  }, createElement(DocumentActions, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header/index.js"],"names":["useCallback","useRef","useViewportMatch","ToolSelector","__experimentalPreviewOptions","PreviewOptions","useSelect","useDispatch","PinnedItems","_x","__","listView","plus","Button","ToolbarItem","store","keyboardShortcutsStore","editorStore","coreStore","MoreMenu","SaveButton","UndoButton","RedoButton","DocumentActions","TemplateDetails","editSiteStore","preventDefault","event","Header","openEntitiesSavedStates","isEntitiesSavedStatesOpen","showIconLabels","inserterButton","deviceType","entityTitle","template","templateType","isInserterOpen","isListViewOpen","listViewShortcut","isLoaded","isVisualMode","select","__experimentalGetPreviewDeviceType","getEditedPostType","getEditedPostId","isInserterOpened","isListViewOpened","getEditorMode","getEditedEntityRecord","__experimentalGetTemplateInfo","getTemplateInfo","getShortcutRepresentation","postType","postId","record","_isLoaded","title","__experimentalSetPreviewDeviceType","setPreviewDeviceType","setIsInserterOpened","setIsListViewOpened","isLargeViewport","openInserter","current","focus","toggleListView","isFocusMode","onClose"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tToolSelector,\n\t__experimentalPreviewOptions as PreviewOptions,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { PinnedItems } from '@wordpress/interface';\nimport { _x, __ } from '@wordpress/i18n';\nimport { listView, plus } from '@wordpress/icons';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MoreMenu from './more-menu';\nimport SaveButton from '../save-button';\nimport UndoButton from './undo-redo/undo';\nimport RedoButton from './undo-redo/redo';\nimport DocumentActions from './document-actions';\nimport TemplateDetails from '../template-details';\nimport { store as editSiteStore } from '../../store';\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nexport default function Header( {\n\topenEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n\tshowIconLabels,\n} ) {\n\tconst inserterButton = useRef();\n\tconst {\n\t\tdeviceType,\n\t\tentityTitle,\n\t\ttemplate,\n\t\ttemplateType,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tisLoaded,\n\t\tisVisualMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\tgetEditedPostType,\n\t\t\tgetEditedPostId,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\tgetEditorMode,\n\t\t} = select( editSiteStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\n\t\tconst postType = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\t\tconst record = getEditedEntityRecord( 'postType', postType, postId );\n\t\tconst _isLoaded = !! postId;\n\n\t\treturn {\n\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\tentityTitle: getTemplateInfo( record ).title,\n\t\t\tisLoaded: _isLoaded,\n\t\t\ttemplate: record,\n\t\t\ttemplateType: postType,\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/edit-site/toggle-list-view'\n\t\t\t),\n\t\t\tisVisualMode: getEditorMode() === 'visual',\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\t__experimentalSetPreviewDeviceType: setPreviewDeviceType,\n\t\tsetIsInserterOpened,\n\t\tsetIsListViewOpened,\n\t} = useDispatch( editSiteStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst openInserter = useCallback( () => {\n\t\tif ( isInserterOpen ) {\n\t\t\t// Focusing the inserter button closes the inserter popover.\n\t\t\tinserterButton.current.focus();\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpen, setIsInserterOpened ] );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst isFocusMode = templateType === 'wp_template_part';\n\n\treturn (\n\t\t<div className=\"edit-site-header\">\n\t\t\t<div className=\"edit-site-header_start\">\n\t\t\t\t<div className=\"edit-site-header__toolbar\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\t\t\tclassName=\"edit-site-header-toolbar__inserter-toggle\"\n\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\t\tonClick={ openInserter }\n\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Toggle block inserter',\n\t\t\t\t\t\t\t'Generic label for block inserter button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ showIconLabels &&\n\t\t\t\t\t\t\t( ! isInserterOpen ? __( 'Add' ) : __( 'Close' ) ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<UndoButton />\n\t\t\t\t\t\t\t<RedoButton />\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"edit-site-header-toolbar__list-view-toggle\"\n\t\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\tlabel={ __( 'List View' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"edit-site-header_center\">\n\t\t\t\t<DocumentActions\n\t\t\t\t\tentityTitle={ entityTitle }\n\t\t\t\t\tentityLabel={\n\t\t\t\t\t\ttemplateType === 'wp_template_part'\n\t\t\t\t\t\t\t? 'template part'\n\t\t\t\t\t\t\t: 'template'\n\t\t\t\t\t}\n\t\t\t\t\tisLoaded={ isLoaded }\n\t\t\t\t\tshowIconLabels={ showIconLabels }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t\ttemplate={ template }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</DocumentActions>\n\t\t\t</div>\n\n\t\t\t<div className=\"edit-site-header_end\">\n\t\t\t\t<div className=\"edit-site-header__actions\">\n\t\t\t\t\t{ ! isFocusMode && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tdeviceType={ deviceType }\n\t\t\t\t\t\t\tsetDeviceType={ setPreviewDeviceType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<SaveButton\n\t\t\t\t\t\topenEntitiesSavedStates={ openEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={ isEntitiesSavedStatesOpen }\n\t\t\t\t\t/>\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t<MoreMenu />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header/index.js"],"names":["useCallback","useRef","useViewportMatch","ToolSelector","__experimentalPreviewOptions","PreviewOptions","NavigableToolbar","useSelect","useDispatch","PinnedItems","_x","__","listView","plus","Button","ToolbarItem","store","keyboardShortcutsStore","editorStore","coreStore","MoreMenu","SaveButton","UndoButton","RedoButton","DocumentActions","TemplateDetails","editSiteStore","preventDefault","event","Header","openEntitiesSavedStates","isEntitiesSavedStatesOpen","showIconLabels","inserterButton","deviceType","entityTitle","template","templateType","isInserterOpen","isListViewOpen","listViewShortcut","isLoaded","isVisualMode","select","__experimentalGetPreviewDeviceType","getEditedPostType","getEditedPostId","isInserterOpened","isListViewOpened","getEditorMode","getEditedEntityRecord","__experimentalGetTemplateInfo","getTemplateInfo","getShortcutRepresentation","postType","postId","record","_isLoaded","title","__experimentalSetPreviewDeviceType","setPreviewDeviceType","setIsInserterOpened","setIsListViewOpened","isLargeViewport","openInserter","current","focus","toggleListView","isFocusMode","undefined","onClose"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tToolSelector,\n\t__experimentalPreviewOptions as PreviewOptions,\n\tNavigableToolbar,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { PinnedItems } from '@wordpress/interface';\nimport { _x, __ } from '@wordpress/i18n';\nimport { listView, plus } from '@wordpress/icons';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MoreMenu from './more-menu';\nimport SaveButton from '../save-button';\nimport UndoButton from './undo-redo/undo';\nimport RedoButton from './undo-redo/redo';\nimport DocumentActions from './document-actions';\nimport TemplateDetails from '../template-details';\nimport { store as editSiteStore } from '../../store';\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nexport default function Header( {\n\topenEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n\tshowIconLabels,\n} ) {\n\tconst inserterButton = useRef();\n\tconst {\n\t\tdeviceType,\n\t\tentityTitle,\n\t\ttemplate,\n\t\ttemplateType,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tisLoaded,\n\t\tisVisualMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\t__experimentalGetPreviewDeviceType,\n\t\t\tgetEditedPostType,\n\t\t\tgetEditedPostId,\n\t\t\tisInserterOpened,\n\t\t\tisListViewOpened,\n\t\t\tgetEditorMode,\n\t\t} = select( editSiteStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\n\t\tconst postType = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\t\tconst record = getEditedEntityRecord( 'postType', postType, postId );\n\t\tconst _isLoaded = !! postId;\n\n\t\treturn {\n\t\t\tdeviceType: __experimentalGetPreviewDeviceType(),\n\t\t\tentityTitle: getTemplateInfo( record ).title,\n\t\t\tisLoaded: _isLoaded,\n\t\t\ttemplate: record,\n\t\t\ttemplateType: postType,\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/edit-site/toggle-list-view'\n\t\t\t),\n\t\t\tisVisualMode: getEditorMode() === 'visual',\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\t__experimentalSetPreviewDeviceType: setPreviewDeviceType,\n\t\tsetIsInserterOpened,\n\t\tsetIsListViewOpened,\n\t} = useDispatch( editSiteStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst openInserter = useCallback( () => {\n\t\tif ( isInserterOpen ) {\n\t\t\t// Focusing the inserter button closes the inserter popover.\n\t\t\tinserterButton.current.focus();\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpen, setIsInserterOpened ] );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst isFocusMode = templateType === 'wp_template_part';\n\n\treturn (\n\t\t<div className=\"edit-site-header\">\n\t\t\t<NavigableToolbar\n\t\t\t\tclassName=\"edit-site-header_start\"\n\t\t\t\taria-label={ __( 'Document tools' ) }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-header__toolbar\">\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\tclassName=\"edit-site-header-toolbar__inserter-toggle\"\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tisPressed={ isInserterOpen }\n\t\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\t\tonClick={ openInserter }\n\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16\n\t\t\t\tcharacters. */\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Toggle block inserter',\n\t\t\t\t\t\t\t'Generic label for block inserter button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ showIconLabels &&\n\t\t\t\t\t\t\t( ! isInserterOpen ? __( 'Add' ) : __( 'Close' ) ) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ UndoButton }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\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<ToolbarItem\n\t\t\t\t\t\t\t\tas={ RedoButton }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\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<ToolbarItem\n\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\tclassName=\"edit-site-header-toolbar__list-view-toggle\"\n\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\tdisabled={ ! isVisualMode }\n\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\tlabel={ __( 'List View' ) }\n\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</NavigableToolbar>\n\n\t\t\t<div className=\"edit-site-header_center\">\n\t\t\t\t<DocumentActions\n\t\t\t\t\tentityTitle={ entityTitle }\n\t\t\t\t\tentityLabel={\n\t\t\t\t\t\ttemplateType === 'wp_template_part'\n\t\t\t\t\t\t\t? 'template part'\n\t\t\t\t\t\t\t: 'template'\n\t\t\t\t\t}\n\t\t\t\t\tisLoaded={ isLoaded }\n\t\t\t\t\tshowIconLabels={ showIconLabels }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t\ttemplate={ template }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</DocumentActions>\n\t\t\t</div>\n\n\t\t\t<div className=\"edit-site-header_end\">\n\t\t\t\t<div className=\"edit-site-header__actions\">\n\t\t\t\t\t{ ! isFocusMode && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tdeviceType={ deviceType }\n\t\t\t\t\t\t\tsetDeviceType={ setPreviewDeviceType }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<SaveButton\n\t\t\t\t\t\topenEntitiesSavedStates={ openEntitiesSavedStates }\n\t\t\t\t\t\tisEntitiesSavedStatesOpen={ isEntitiesSavedStatesOpen }\n\t\t\t\t\t/>\n\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t<MoreMenu />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -23,7 +23,10 @@ export default function SiteExport() {
23
23
  try {
24
24
  const response = await apiFetch({
25
25
  path: '/wp-block-editor/v1/export',
26
- parse: false
26
+ parse: false,
27
+ headers: {
28
+ Accept: 'application/zip'
29
+ }
27
30
  });
28
31
  const blob = await response.blob();
29
32
  const contentDisposition = response.headers.get('content-disposition');
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header/more-menu/site-export.js"],"names":["downloadjs","__","_x","MenuItem","apiFetch","download","useDispatch","store","noticesStore","SiteExport","createErrorNotice","handleExport","response","path","parse","blob","contentDisposition","headers","get","contentDispositionMatches","match","fileName","errorResponse","error","json","e","errorMessage","message","code","type"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,OAAOC,QAAP,MAAqB,sBAArB;AACA,SAASC,QAAT,QAAyB,kBAAzB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,KAAK,IAAIC,YAAlB,QAAsC,oBAAtC;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAM;AAAEC,IAAAA;AAAF,MAAwBJ,WAAW,CAAEE,YAAF,CAAzC;;AAEA,iBAAeG,YAAf,GAA8B;AAC7B,QAAI;AACH,YAAMC,QAAQ,GAAG,MAAMR,QAAQ,CAAE;AAChCS,QAAAA,IAAI,EAAE,4BAD0B;AAEhCC,QAAAA,KAAK,EAAE;AAFyB,OAAF,CAA/B;AAIA,YAAMC,IAAI,GAAG,MAAMH,QAAQ,CAACG,IAAT,EAAnB;AACA,YAAMC,kBAAkB,GAAGJ,QAAQ,CAACK,OAAT,CAAiBC,GAAjB,CAC1B,qBAD0B,CAA3B;AAGA,YAAMC,yBAAyB,GAC9BH,kBAAkB,CAACI,KAAnB,CAA0B,YAA1B,CADD;AAEA,YAAMC,QAAQ,GAAGF,yBAAyB,CAAE,CAAF,CAAzB,GACdA,yBAAyB,CAAE,CAAF,CADX,GAEd,kBAFH;AAIAnB,MAAAA,UAAU,CAAEe,IAAF,EAAQM,QAAQ,GAAG,MAAnB,EAA2B,iBAA3B,CAAV;AACA,KAhBD,CAgBE,OAAQC,aAAR,EAAwB;AACzB,UAAIC,KAAK,GAAG,EAAZ;;AACA,UAAI;AACHA,QAAAA,KAAK,GAAG,MAAMD,aAAa,CAACE,IAAd,EAAd;AACA,OAFD,CAEE,OAAQC,CAAR,EAAY,CAAE;;AAChB,YAAMC,YAAY,GACjBH,KAAK,CAACI,OAAN,IAAiBJ,KAAK,CAACK,IAAN,KAAe,eAAhC,GACGL,KAAK,CAACI,OADT,GAEG1B,EAAE,CAAE,mDAAF,CAHN;AAKAS,MAAAA,iBAAiB,CAAEgB,YAAF,EAAgB;AAAEG,QAAAA,IAAI,EAAE;AAAR,OAAhB,CAAjB;AACA;AACD;;AAED,SACC,cAAC,QAAD;AACC,IAAA,IAAI,EAAC,UADN;AAEC,IAAA,IAAI,EAAGxB,QAFR;AAGC,IAAA,OAAO,EAAGM,YAHX;AAIC,IAAA,IAAI,EAAGV,EAAE,CACR,wDADQ;AAJV,KAQGC,EAAE,CAAE,QAAF,EAAY,yBAAZ,CARL,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport downloadjs from 'downloadjs';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport apiFetch from '@wordpress/api-fetch';\nimport { download } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function SiteExport() {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tasync function handleExport() {\n\t\ttry {\n\t\t\tconst response = await apiFetch( {\n\t\t\t\tpath: '/wp-block-editor/v1/export',\n\t\t\t\tparse: false,\n\t\t\t} );\n\t\t\tconst blob = await response.blob();\n\t\t\tconst contentDisposition = response.headers.get(\n\t\t\t\t'content-disposition'\n\t\t\t);\n\t\t\tconst contentDispositionMatches =\n\t\t\t\tcontentDisposition.match( /=(.+)\\.zip/ );\n\t\t\tconst fileName = contentDispositionMatches[ 1 ]\n\t\t\t\t? contentDispositionMatches[ 1 ]\n\t\t\t\t: 'edit-site-export';\n\n\t\t\tdownloadjs( blob, fileName + '.zip', 'application/zip' );\n\t\t} catch ( errorResponse ) {\n\t\t\tlet error = {};\n\t\t\ttry {\n\t\t\t\terror = await errorResponse.json();\n\t\t\t} catch ( e ) {}\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the site export.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\trole=\"menuitem\"\n\t\t\ticon={ download }\n\t\t\tonClick={ handleExport }\n\t\t\tinfo={ __(\n\t\t\t\t'Download your theme with updated templates and styles.'\n\t\t\t) }\n\t\t>\n\t\t\t{ _x( 'Export', 'site exporter menu item' ) }\n\t\t</MenuItem>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header/more-menu/site-export.js"],"names":["downloadjs","__","_x","MenuItem","apiFetch","download","useDispatch","store","noticesStore","SiteExport","createErrorNotice","handleExport","response","path","parse","headers","Accept","blob","contentDisposition","get","contentDispositionMatches","match","fileName","errorResponse","error","json","e","errorMessage","message","code","type"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,OAAOC,QAAP,MAAqB,sBAArB;AACA,SAASC,QAAT,QAAyB,kBAAzB;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,KAAK,IAAIC,YAAlB,QAAsC,oBAAtC;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAM;AAAEC,IAAAA;AAAF,MAAwBJ,WAAW,CAAEE,YAAF,CAAzC;;AAEA,iBAAeG,YAAf,GAA8B;AAC7B,QAAI;AACH,YAAMC,QAAQ,GAAG,MAAMR,QAAQ,CAAE;AAChCS,QAAAA,IAAI,EAAE,4BAD0B;AAEhCC,QAAAA,KAAK,EAAE,KAFyB;AAGhCC,QAAAA,OAAO,EAAE;AACRC,UAAAA,MAAM,EAAE;AADA;AAHuB,OAAF,CAA/B;AAOA,YAAMC,IAAI,GAAG,MAAML,QAAQ,CAACK,IAAT,EAAnB;AACA,YAAMC,kBAAkB,GAAGN,QAAQ,CAACG,OAAT,CAAiBI,GAAjB,CAC1B,qBAD0B,CAA3B;AAGA,YAAMC,yBAAyB,GAC9BF,kBAAkB,CAACG,KAAnB,CAA0B,YAA1B,CADD;AAEA,YAAMC,QAAQ,GAAGF,yBAAyB,CAAE,CAAF,CAAzB,GACdA,yBAAyB,CAAE,CAAF,CADX,GAEd,kBAFH;AAIApB,MAAAA,UAAU,CAAEiB,IAAF,EAAQK,QAAQ,GAAG,MAAnB,EAA2B,iBAA3B,CAAV;AACA,KAnBD,CAmBE,OAAQC,aAAR,EAAwB;AACzB,UAAIC,KAAK,GAAG,EAAZ;;AACA,UAAI;AACHA,QAAAA,KAAK,GAAG,MAAMD,aAAa,CAACE,IAAd,EAAd;AACA,OAFD,CAEE,OAAQC,CAAR,EAAY,CAAE;;AAChB,YAAMC,YAAY,GACjBH,KAAK,CAACI,OAAN,IAAiBJ,KAAK,CAACK,IAAN,KAAe,eAAhC,GACGL,KAAK,CAACI,OADT,GAEG3B,EAAE,CAAE,mDAAF,CAHN;AAKAS,MAAAA,iBAAiB,CAAEiB,YAAF,EAAgB;AAAEG,QAAAA,IAAI,EAAE;AAAR,OAAhB,CAAjB;AACA;AACD;;AAED,SACC,cAAC,QAAD;AACC,IAAA,IAAI,EAAC,UADN;AAEC,IAAA,IAAI,EAAGzB,QAFR;AAGC,IAAA,OAAO,EAAGM,YAHX;AAIC,IAAA,IAAI,EAAGV,EAAE,CACR,wDADQ;AAJV,KAQGC,EAAE,CAAE,QAAF,EAAY,yBAAZ,CARL,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport downloadjs from 'downloadjs';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport apiFetch from '@wordpress/api-fetch';\nimport { download } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function SiteExport() {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tasync function handleExport() {\n\t\ttry {\n\t\t\tconst response = await apiFetch( {\n\t\t\t\tpath: '/wp-block-editor/v1/export',\n\t\t\t\tparse: false,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'application/zip',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst blob = await response.blob();\n\t\t\tconst contentDisposition = response.headers.get(\n\t\t\t\t'content-disposition'\n\t\t\t);\n\t\t\tconst contentDispositionMatches =\n\t\t\t\tcontentDisposition.match( /=(.+)\\.zip/ );\n\t\t\tconst fileName = contentDispositionMatches[ 1 ]\n\t\t\t\t? contentDispositionMatches[ 1 ]\n\t\t\t\t: 'edit-site-export';\n\n\t\t\tdownloadjs( blob, fileName + '.zip', 'application/zip' );\n\t\t} catch ( errorResponse ) {\n\t\t\tlet error = {};\n\t\t\ttry {\n\t\t\t\terror = await errorResponse.json();\n\t\t\t} catch ( e ) {}\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the site export.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\trole=\"menuitem\"\n\t\t\ticon={ download }\n\t\t\tonClick={ handleExport }\n\t\t\tinfo={ __(\n\t\t\t\t'Download your theme with updated templates and styles.'\n\t\t\t) }\n\t\t>\n\t\t\t{ _x( 'Export', 'site exporter menu item' ) }\n\t\t</MenuItem>\n\t);\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement } from "@wordpress/element";
2
3
 
3
4
  /**
@@ -9,12 +10,15 @@ import { useSelect, useDispatch } from '@wordpress/data';
9
10
  import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';
10
11
  import { displayShortcut } from '@wordpress/keycodes';
11
12
  import { store as coreStore } from '@wordpress/core-data';
12
- export default function RedoButton() {
13
+ import { forwardRef } from '@wordpress/element';
14
+
15
+ function RedoButton(props, ref) {
13
16
  const hasRedo = useSelect(select => select(coreStore).hasRedo(), []);
14
17
  const {
15
18
  redo
16
19
  } = useDispatch(coreStore);
17
- return createElement(Button, {
20
+ return createElement(Button, _extends({}, props, {
21
+ ref: ref,
18
22
  icon: !isRTL() ? redoIcon : undoIcon,
19
23
  label: __('Redo'),
20
24
  shortcut: displayShortcut.primaryShift('z') // If there are no undo levels we don't want to actually disable this
@@ -23,6 +27,8 @@ export default function RedoButton() {
23
27
  ,
24
28
  "aria-disabled": !hasRedo,
25
29
  onClick: hasRedo ? redo : undefined
26
- });
30
+ }));
27
31
  }
32
+
33
+ export default forwardRef(RedoButton);
28
34
  //# sourceMappingURL=redo.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header/undo-redo/redo.js"],"names":["__","isRTL","Button","useSelect","useDispatch","redo","redoIcon","undo","undoIcon","displayShortcut","store","coreStore","RedoButton","hasRedo","select","primaryShift","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,IAAI,IAAIC,QAAnC,QAAmD,kBAAnD;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAMC,OAAO,GAAGV,SAAS,CACtBW,MAAF,IAAcA,MAAM,CAAEH,SAAF,CAAN,CAAoBE,OAApB,EADU,EAExB,EAFwB,CAAzB;AAIA,QAAM;AAAER,IAAAA;AAAF,MAAWD,WAAW,CAAEO,SAAF,CAA5B;AACA,SACC,cAAC,MAAD;AACC,IAAA,IAAI,EAAG,CAAEV,KAAK,EAAP,GAAYK,QAAZ,GAAuBE,QAD/B;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,MAAF,CAFX;AAGC,IAAA,QAAQ,EAAGS,eAAe,CAACM,YAAhB,CAA8B,GAA9B,CAHZ,CAIC;AACA;AACA;AAND;AAOC,qBAAgB,CAAEF,OAPnB;AAQC,IAAA,OAAO,EAAGA,OAAO,GAAGR,IAAH,GAAUW;AAR5B,IADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function RedoButton() {\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<Button\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ displayShortcut.primaryShift( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header/undo-redo/redo.js"],"names":["__","isRTL","Button","useSelect","useDispatch","redo","redoIcon","undo","undoIcon","displayShortcut","store","coreStore","forwardRef","RedoButton","props","ref","hasRedo","select","primaryShift","undefined"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,IAAI,IAAIC,QAAnC,QAAmD,kBAAnD;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SAASC,UAAT,QAA2B,oBAA3B;;AAEA,SAASC,UAAT,CAAqBC,KAArB,EAA4BC,GAA5B,EAAkC;AACjC,QAAMC,OAAO,GAAGb,SAAS,CACtBc,MAAF,IAAcA,MAAM,CAAEN,SAAF,CAAN,CAAoBK,OAApB,EADU,EAExB,EAFwB,CAAzB;AAIA,QAAM;AAAEX,IAAAA;AAAF,MAAWD,WAAW,CAAEO,SAAF,CAA5B;AACA,SACC,cAAC,MAAD,eACMG,KADN;AAEC,IAAA,GAAG,EAAGC,GAFP;AAGC,IAAA,IAAI,EAAG,CAAEd,KAAK,EAAP,GAAYK,QAAZ,GAAuBE,QAH/B;AAIC,IAAA,KAAK,EAAGR,EAAE,CAAE,MAAF,CAJX;AAKC,IAAA,QAAQ,EAAGS,eAAe,CAACS,YAAhB,CAA8B,GAA9B,CALZ,CAMC;AACA;AACA;AARD;AASC,qBAAgB,CAAEF,OATnB;AAUC,IAAA,OAAO,EAAGA,OAAO,GAAGX,IAAH,GAAUc;AAV5B,KADD;AAcA;;AAED,eAAeP,UAAU,CAAEC,UAAF,CAAzB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { forwardRef } from '@wordpress/element';\n\nfunction RedoButton( props, ref ) {\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( coreStore ).hasRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( coreStore );\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ ref }\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ displayShortcut.primaryShift( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( RedoButton );\n"]}
@@ -1,3 +1,4 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement } from "@wordpress/element";
2
3
 
3
4
  /**
@@ -9,12 +10,15 @@ import { useSelect, useDispatch } from '@wordpress/data';
9
10
  import { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';
10
11
  import { displayShortcut } from '@wordpress/keycodes';
11
12
  import { store as coreStore } from '@wordpress/core-data';
12
- export default function UndoButton() {
13
+ import { forwardRef } from '@wordpress/element';
14
+
15
+ function UndoButton(props, ref) {
13
16
  const hasUndo = useSelect(select => select(coreStore).hasUndo(), []);
14
17
  const {
15
18
  undo
16
19
  } = useDispatch(coreStore);
17
- return createElement(Button, {
20
+ return createElement(Button, _extends({}, props, {
21
+ ref: ref,
18
22
  icon: !isRTL() ? undoIcon : redoIcon,
19
23
  label: __('Undo'),
20
24
  shortcut: displayShortcut.primary('z') // If there are no undo levels we don't want to actually disable this
@@ -23,6 +27,8 @@ export default function UndoButton() {
23
27
  ,
24
28
  "aria-disabled": !hasUndo,
25
29
  onClick: hasUndo ? undo : undefined
26
- });
30
+ }));
27
31
  }
32
+
33
+ export default forwardRef(UndoButton);
28
34
  //# sourceMappingURL=undo.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/header/undo-redo/undo.js"],"names":["__","isRTL","Button","useSelect","useDispatch","undo","undoIcon","redo","redoIcon","displayShortcut","store","coreStore","UndoButton","hasUndo","select","primary","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,IAAI,IAAIC,QAAnC,QAAmD,kBAAnD;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA,eAAe,SAASC,UAAT,GAAsB;AACpC,QAAMC,OAAO,GAAGV,SAAS,CACtBW,MAAF,IAAcA,MAAM,CAAEH,SAAF,CAAN,CAAoBE,OAApB,EADU,EAExB,EAFwB,CAAzB;AAIA,QAAM;AAAER,IAAAA;AAAF,MAAWD,WAAW,CAAEO,SAAF,CAA5B;AACA,SACC,cAAC,MAAD;AACC,IAAA,IAAI,EAAG,CAAEV,KAAK,EAAP,GAAYK,QAAZ,GAAuBE,QAD/B;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,MAAF,CAFX;AAGC,IAAA,QAAQ,EAAGS,eAAe,CAACM,OAAhB,CAAyB,GAAzB,CAHZ,CAIC;AACA;AACA;AAND;AAOC,qBAAgB,CAAEF,OAPnB;AAQC,IAAA,OAAO,EAAGA,OAAO,GAAGR,IAAH,GAAUW;AAR5B,IADD;AAYA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function UndoButton() {\n\tconst hasUndo = useSelect(\n\t\t( select ) => select( coreStore ).hasUndo(),\n\t\t[]\n\t);\n\tconst { undo } = useDispatch( coreStore );\n\treturn (\n\t\t<Button\n\t\t\ticon={ ! isRTL() ? undoIcon : redoIcon }\n\t\t\tlabel={ __( 'Undo' ) }\n\t\t\tshortcut={ displayShortcut.primary( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasUndo }\n\t\t\tonClick={ hasUndo ? undo : undefined }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/header/undo-redo/undo.js"],"names":["__","isRTL","Button","useSelect","useDispatch","undo","undoIcon","redo","redoIcon","displayShortcut","store","coreStore","forwardRef","UndoButton","props","ref","hasUndo","select","primary","undefined"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,KAAb,QAA0B,iBAA1B;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,IAAI,IAAIC,QAAjB,EAA2BC,IAAI,IAAIC,QAAnC,QAAmD,kBAAnD;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AACA,SAASC,UAAT,QAA2B,oBAA3B;;AAEA,SAASC,UAAT,CAAqBC,KAArB,EAA4BC,GAA5B,EAAkC;AACjC,QAAMC,OAAO,GAAGb,SAAS,CACtBc,MAAF,IAAcA,MAAM,CAAEN,SAAF,CAAN,CAAoBK,OAApB,EADU,EAExB,EAFwB,CAAzB;AAIA,QAAM;AAAEX,IAAAA;AAAF,MAAWD,WAAW,CAAEO,SAAF,CAA5B;AACA,SACC,cAAC,MAAD,eACMG,KADN;AAEC,IAAA,GAAG,EAAGC,GAFP;AAGC,IAAA,IAAI,EAAG,CAAEd,KAAK,EAAP,GAAYK,QAAZ,GAAuBE,QAH/B;AAIC,IAAA,KAAK,EAAGR,EAAE,CAAE,MAAF,CAJX;AAKC,IAAA,QAAQ,EAAGS,eAAe,CAACS,OAAhB,CAAyB,GAAzB,CALZ,CAMC;AACA;AACA;AARD;AASC,qBAAgB,CAAEF,OATnB;AAUC,IAAA,OAAO,EAAGA,OAAO,GAAGX,IAAH,GAAUc;AAV5B,KADD;AAcA;;AAED,eAAeP,UAAU,CAAEC,UAAF,CAAzB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { forwardRef } from '@wordpress/element';\n\nfunction UndoButton( props, ref ) {\n\tconst hasUndo = useSelect(\n\t\t( select ) => select( coreStore ).hasUndo(),\n\t\t[]\n\t);\n\tconst { undo } = useDispatch( coreStore );\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ ref }\n\t\t\ticon={ ! isRTL() ? undoIcon : redoIcon }\n\t\t\tlabel={ __( 'Undo' ) }\n\t\t\tshortcut={ displayShortcut.primary( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasUndo }\n\t\t\tonClick={ hasUndo ? undo : undefined }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( UndoButton );\n"]}
@@ -26,11 +26,28 @@ export const textFormattingShortcuts = [{
26
26
  character: 'k'
27
27
  },
28
28
  description: __('Remove a link.')
29
+ }, {
30
+ keyCombination: {
31
+ character: '[['
32
+ },
33
+ description: __('Insert a link to a post or page')
29
34
  }, {
30
35
  keyCombination: {
31
36
  modifier: 'primary',
32
37
  character: 'u'
33
38
  },
34
39
  description: __('Underline the selected text.')
40
+ }, {
41
+ keyCombination: {
42
+ modifier: 'access',
43
+ character: 'd'
44
+ },
45
+ description: __('Strikethrough the selected text.')
46
+ }, {
47
+ keyCombination: {
48
+ modifier: 'access',
49
+ character: 'x'
50
+ },
51
+ description: __('Make the selected text inline code.')
35
52
  }];
36
53
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/keyboard-shortcut-help-modal/config.js"],"names":["__","textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AAEA,OAAO,MAAMC,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CADsC,EAKtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gCAAF;AAFhB,CALsC,EAStC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,wCAAF;AAFhB,CATsC,EAatC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gBAAF;AAFhB,CAbsC,EAiBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CAjBsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n];\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/keyboard-shortcut-help-modal/config.js"],"names":["__","textFormattingShortcuts","keyCombination","modifier","character","description"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AAEA,OAAO,MAAMC,uBAAuB,GAAG,CACtC;AACCC,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CADsC,EAKtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gCAAF;AAFhB,CALsC,EAStC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,wCAAF;AAFhB,CATsC,EAatC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,cAAZ;AAA4BC,IAAAA,SAAS,EAAE;AAAvC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,gBAAF;AAFhB,CAbsC,EAiBtC;AACCE,EAAAA,cAAc,EAAE;AAAEE,IAAAA,SAAS,EAAE;AAAb,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,iCAAF;AAFhB,CAjBsC,EAqBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,SAAZ;AAAuBC,IAAAA,SAAS,EAAE;AAAlC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,8BAAF;AAFhB,CArBsC,EAyBtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,kCAAF;AAFhB,CAzBsC,EA6BtC;AACCE,EAAAA,cAAc,EAAE;AAAEC,IAAAA,QAAQ,EAAE,QAAZ;AAAsBC,IAAAA,SAAS,EAAE;AAAjC,GADjB;AAECC,EAAAA,WAAW,EAAEL,EAAE,CAAE,qCAAF;AAFhB,CA7BsC,CAAhC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n];\n"]}