@wordpress/block-editor 12.19.0 → 12.19.2

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 (66) hide show
  1. package/build/components/global-styles/border-panel.js +4 -3
  2. package/build/components/global-styles/border-panel.js.map +1 -1
  3. package/build/components/global-styles/get-global-styles-changes.js +61 -24
  4. package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
  5. package/build/components/global-styles/typography-panel.js +8 -6
  6. package/build/components/global-styles/typography-panel.js.map +1 -1
  7. package/build/components/iframe/index.js +4 -1
  8. package/build/components/iframe/index.js.map +1 -1
  9. package/build/components/rich-text/index.native.js +1 -0
  10. package/build/components/rich-text/index.native.js.map +1 -1
  11. package/build/components/rich-text/use-enter.js +1 -0
  12. package/build/components/rich-text/use-enter.js.map +1 -1
  13. package/build/components/rich-text/use-input-rules.js +1 -30
  14. package/build/components/rich-text/use-input-rules.js.map +1 -1
  15. package/build/hooks/use-bindings-attributes.js +1 -18
  16. package/build/hooks/use-bindings-attributes.js.map +1 -1
  17. package/build/hooks/utils.js +8 -4
  18. package/build/hooks/utils.js.map +1 -1
  19. package/build/store/get-block-settings.js +17 -4
  20. package/build/store/get-block-settings.js.map +1 -1
  21. package/build/store/private-actions.js +5 -0
  22. package/build/store/private-actions.js.map +1 -1
  23. package/build/store/reducer.js +2 -1
  24. package/build/store/reducer.js.map +1 -1
  25. package/build-module/components/global-styles/border-panel.js +5 -4
  26. package/build-module/components/global-styles/border-panel.js.map +1 -1
  27. package/build-module/components/global-styles/get-global-styles-changes.js +61 -25
  28. package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
  29. package/build-module/components/global-styles/typography-panel.js +9 -7
  30. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  31. package/build-module/components/iframe/index.js +4 -1
  32. package/build-module/components/iframe/index.js.map +1 -1
  33. package/build-module/components/rich-text/index.native.js +1 -0
  34. package/build-module/components/rich-text/index.native.js.map +1 -1
  35. package/build-module/components/rich-text/use-enter.js +1 -0
  36. package/build-module/components/rich-text/use-enter.js.map +1 -1
  37. package/build-module/components/rich-text/use-input-rules.js +2 -31
  38. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  39. package/build-module/hooks/use-bindings-attributes.js +1 -18
  40. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  41. package/build-module/hooks/utils.js +8 -4
  42. package/build-module/hooks/utils.js.map +1 -1
  43. package/build-module/store/get-block-settings.js +16 -4
  44. package/build-module/store/get-block-settings.js.map +1 -1
  45. package/build-module/store/private-actions.js +5 -0
  46. package/build-module/store/private-actions.js.map +1 -1
  47. package/build-module/store/reducer.js +2 -1
  48. package/build-module/store/reducer.js.map +1 -1
  49. package/build-style/style-rtl.css +0 -12
  50. package/build-style/style.css +0 -12
  51. package/package.json +31 -31
  52. package/src/components/global-styles/border-panel.js +4 -6
  53. package/src/components/global-styles/get-global-styles-changes.js +68 -28
  54. package/src/components/global-styles/test/get-global-styles-changes.js +114 -75
  55. package/src/components/global-styles/typography-panel.js +11 -7
  56. package/src/components/iframe/index.js +4 -1
  57. package/src/components/link-control/style.scss +0 -7
  58. package/src/components/rich-text/index.native.js +1 -0
  59. package/src/components/rich-text/use-enter.js +1 -0
  60. package/src/components/rich-text/use-input-rules.js +2 -30
  61. package/src/components/url-input/style.scss +0 -4
  62. package/src/hooks/use-bindings-attributes.js +1 -22
  63. package/src/hooks/utils.js +24 -8
  64. package/src/store/get-block-settings.js +15 -4
  65. package/src/store/private-actions.js +9 -0
  66. package/src/store/reducer.js +1 -1
@@ -79,6 +79,7 @@ function BorderPanel({
79
79
  name,
80
80
  defaultControls = DEFAULT_CONTROLS
81
81
  }) {
82
+ var _settings$shadow$pres, _overrideOrigins;
82
83
  const colors = (0, _hooks.useColorsPerOrigin)(settings);
83
84
  const decodeValue = (0, _element.useCallback)(rawValue => (0, _utils.getValueFromVariable)({
84
85
  settings
@@ -136,10 +137,10 @@ function BorderPanel({
136
137
 
137
138
  // Shadow
138
139
  const shadow = decodeValue(inheritedValue?.shadow);
139
- const shadowPresets = settings?.shadow?.presets;
140
- const mergedShadowPresets = shadowPresets ? (0, _getBlockSettings.mergeOrigins)(shadowPresets) : [];
140
+ const shadowPresets = (_settings$shadow$pres = settings?.shadow?.presets) !== null && _settings$shadow$pres !== void 0 ? _settings$shadow$pres : {};
141
+ const overriddenShadowPresets = (_overrideOrigins = (0, _getBlockSettings.overrideOrigins)(shadowPresets)) !== null && _overrideOrigins !== void 0 ? _overrideOrigins : [];
141
142
  const setShadow = newValue => {
142
- const slug = mergedShadowPresets?.find(({
143
+ const slug = overriddenShadowPresets?.find(({
143
144
  shadow: shadowName
144
145
  }) => shadowName === newValue)?.slug;
145
146
  onChange((0, _object.setImmutably)(value, ['shadow'], slug ? `var:preset|shadow|${slug}` : newValue || undefined));
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_borderRadiusControl","_interopRequireDefault","_hooks","_utils","_getBlockSettings","_object","_border","_shadowPanelComponents","useHasShadowControl","settings","shadow","useHasBorderPanel","controls","useHasBorderColorControl","useHasBorderRadiusControl","useHasBorderStyleControl","useHasBorderWidthControl","some","Boolean","border","color","radius","style","width","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","resetAll","updatedValue","_react","createElement","__experimentalToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","colors","useColorsPerOrigin","decodeValue","useCallback","rawValue","getValueFromVariable","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","useMemo","hasSplitBorders","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","hasBorderRadius","borderValues","Object","entries","hasShadowControl","shadowPresets","presets","mergedShadowPresets","mergeOrigins","setShadow","newValue","shadowName","setImmutably","hasShadow","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","getBorderPanelLabel","blockName","hasBorderControl","__experimentalToolsPanelItem","hasValue","isDefinedBorder","__","onDeselect","isShownByDefault","__experimentalBorderBoxControl","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","default","values","BaseControl","VisualLabel","__experimentalItemGroup","isBordered","isSeparated","ShadowPopover","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { mergeOrigins } from '../../store/get-block-settings';\nimport { setImmutably } from '../../utils/object';\nimport { getBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover } from './shadow-panel-components';\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = [\n\t\tuseHasBorderColorControl( settings ),\n\t\tuseHasBorderRadiusControl( settings ),\n\t\tuseHasBorderStyleControl( settings ),\n\t\tuseHasBorderWidthControl( settings ),\n\t\tuseHasShadowControl( settings ),\n\t];\n\n\treturn controls.some( Boolean );\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: false,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets;\n\tconst mergedShadowPresets = shadowPresets\n\t\t? mergeOrigins( shadowPresets )\n\t\t: [];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = mergedShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst label = getBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl:\n\t\t\tshowBorderColor ||\n\t\t\tshowBorderStyle ||\n\t\t\tshowBorderWidth ||\n\t\t\tshowBorderRadius,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_borderRadiusControl","_interopRequireDefault","_hooks","_utils","_getBlockSettings","_object","_border","_shadowPanelComponents","useHasShadowControl","settings","shadow","useHasBorderPanel","controls","useHasBorderColorControl","useHasBorderRadiusControl","useHasBorderStyleControl","useHasBorderWidthControl","some","Boolean","border","color","radius","style","width","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","resetAll","updatedValue","_react","createElement","__experimentalToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_overrideOrigins","colors","useColorsPerOrigin","decodeValue","useCallback","rawValue","getValueFromVariable","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","useMemo","hasSplitBorders","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","hasBorderRadius","borderValues","Object","entries","hasShadowControl","shadowPresets","presets","overriddenShadowPresets","overrideOrigins","setShadow","newValue","shadowName","setImmutably","hasShadow","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","getBorderPanelLabel","blockName","hasBorderControl","__experimentalToolsPanelItem","hasValue","isDefinedBorder","__","onDeselect","isShownByDefault","__experimentalBorderBoxControl","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","default","values","BaseControl","VisualLabel","__experimentalItemGroup","isBordered","isSeparated","ShadowPopover","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { overrideOrigins } from '../../store/get-block-settings';\nimport { setImmutably } from '../../utils/object';\nimport { getBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover } from './shadow-panel-components';\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = [\n\t\tuseHasBorderColorControl( settings ),\n\t\tuseHasBorderRadiusControl( settings ),\n\t\tuseHasBorderStyleControl( settings ),\n\t\tuseHasBorderWidthControl( settings ),\n\t\tuseHasShadowControl( settings ),\n\t];\n\n\treturn controls.some( Boolean );\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: false,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst overriddenShadowPresets = overrideOrigins( shadowPresets ) ?? [];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = overriddenShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst label = getBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl:\n\t\t\tshowBorderColor ||\n\t\t\tshowBorderStyle ||\n\t\t\tshowBorderWidth ||\n\t\t\tshowBorderRadius,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = getGlobalStylesChanges;
8
+ exports.getGlobalStylesChangelist = getGlobalStylesChangelist;
8
9
  var _memize = _interopRequireDefault(require("memize"));
9
10
  var _i18n = require("@wordpress/i18n");
10
11
  var _blocks = require("@wordpress/blocks");
@@ -29,8 +30,8 @@ const translationMap = {
29
30
  h4: (0, _i18n.__)('H4'),
30
31
  h5: (0, _i18n.__)('H5'),
31
32
  h6: (0, _i18n.__)('H6'),
32
- 'settings.color': (0, _i18n.__)('Color settings'),
33
- 'settings.typography': (0, _i18n.__)('Typography settings'),
33
+ 'settings.color': (0, _i18n.__)('Color'),
34
+ 'settings.typography': (0, _i18n.__)('Typography'),
34
35
  'styles.color': (0, _i18n.__)('Colors'),
35
36
  'styles.spacing': (0, _i18n.__)('Spacing'),
36
37
  'styles.typography': (0, _i18n.__)('Typography')
@@ -59,10 +60,7 @@ function getTranslation(key) {
59
60
  return blockName || keyArray[1];
60
61
  }
61
62
  if (keyArray?.[0] === 'elements') {
62
- const elementName = translationMap[keyArray[1]] || keyArray[1];
63
- return (0, _i18n.sprintf)(
64
- // translators: %s: element name, e.g., heading button, link, caption.
65
- (0, _i18n.__)('%s element'), elementName);
63
+ return translationMap[keyArray[1]] || keyArray[1];
66
64
  }
67
65
  return undefined;
68
66
  }
@@ -105,7 +103,7 @@ function deepCompare(changedObject, originalObject, parentPath = '') {
105
103
  *
106
104
  * @param {Object} next The changed object to compare.
107
105
  * @param {Object} previous The original object to compare against.
108
- * @return {string[]} An array of translated changes.
106
+ * @return {Array[]} A 2-dimensional array of tuples: [ "group", "translated change" ].
109
107
  */
110
108
  function getGlobalStylesChangelist(next, previous) {
111
109
  const cacheKey = JSON.stringify({
@@ -149,11 +147,11 @@ function getGlobalStylesChangelist(next, previous) {
149
147
  const result = [...new Set(changedValueTree)]
150
148
  /*
151
149
  * Translate the keys.
152
- * Remove duplicate or empty translations.
150
+ * Remove empty translations.
153
151
  */.reduce((acc, curr) => {
154
152
  const translation = getTranslation(curr);
155
- if (translation && !acc.includes(translation)) {
156
- acc.push(translation);
153
+ if (translation) {
154
+ acc.push([curr.split('.')[0], translation]);
157
155
  }
158
156
  return acc;
159
157
  }, []);
@@ -162,29 +160,68 @@ function getGlobalStylesChangelist(next, previous) {
162
160
  }
163
161
 
164
162
  /**
165
- * From a getGlobalStylesChangelist() result, returns a truncated array of translated changes.
166
- * Appends a translated string indicating the number of changes that were truncated.
163
+ * From a getGlobalStylesChangelist() result, returns an array of translated global styles changes, grouped by type.
164
+ * The types are 'blocks', 'elements', 'settings', and 'styles'.
167
165
  *
168
166
  * @param {Object} next The changed object to compare.
169
167
  * @param {Object} previous The original object to compare against.
170
168
  * @param {{maxResults:number}} options Options. maxResults: results to return before truncating.
171
- * @return {string[]} An array of translated changes.
169
+ * @return {string[]} An array of translated changes.
172
170
  */
173
171
  function getGlobalStylesChanges(next, previous, options = {}) {
174
- const changes = getGlobalStylesChangelist(next, previous);
175
- const changesLength = changes.length;
172
+ let changeList = getGlobalStylesChangelist(next, previous);
173
+ const changesLength = changeList.length;
176
174
  const {
177
175
  maxResults
178
176
  } = options;
179
-
180
- // Truncate to `n` results if necessary.
181
- if (!!maxResults && changesLength && changesLength > maxResults) {
182
- const deleteCount = changesLength - maxResults;
183
- const andMoreText = (0, _i18n.sprintf)(
184
- // translators: %d: number of global styles changes that are not displayed in the UI.
185
- (0, _i18n._n)('…and %d more change', '…and %d more changes', deleteCount), deleteCount);
186
- changes.splice(maxResults, deleteCount, andMoreText);
177
+ if (changesLength) {
178
+ // Truncate to `n` results if necessary.
179
+ if (!!maxResults && changesLength > maxResults) {
180
+ changeList = changeList.slice(0, maxResults);
181
+ }
182
+ return Object.entries(changeList.reduce((acc, curr) => {
183
+ const group = acc[curr[0]] || [];
184
+ if (!group.includes(curr[1])) {
185
+ acc[curr[0]] = [...group, curr[1]];
186
+ }
187
+ return acc;
188
+ }, {})).map(([key, changeValues]) => {
189
+ const changeValuesLength = changeValues.length;
190
+ const joinedChangesValue = changeValues.join((0, _i18n.__)(', '));
191
+ switch (key) {
192
+ case 'blocks':
193
+ {
194
+ return (0, _i18n.sprintf)(
195
+ // translators: %s: a list of block names separated by a comma.
196
+ (0, _i18n._n)('%s block.', '%s blocks.', changeValuesLength), joinedChangesValue);
197
+ }
198
+ case 'elements':
199
+ {
200
+ return (0, _i18n.sprintf)(
201
+ // translators: %s: a list of element names separated by a comma.
202
+ (0, _i18n._n)('%s element.', '%s elements.', changeValuesLength), joinedChangesValue);
203
+ }
204
+ case 'settings':
205
+ {
206
+ return (0, _i18n.sprintf)(
207
+ // translators: %s: a list of theme.json setting labels separated by a comma.
208
+ (0, _i18n.__)('%s settings.'), joinedChangesValue);
209
+ }
210
+ case 'styles':
211
+ {
212
+ return (0, _i18n.sprintf)(
213
+ // translators: %s: a list of theme.json top-level styles labels separated by a comma.
214
+ (0, _i18n.__)('%s styles.'), joinedChangesValue);
215
+ }
216
+ default:
217
+ {
218
+ return (0, _i18n.sprintf)(
219
+ // translators: %s: a list of global styles changes separated by a comma.
220
+ (0, _i18n.__)('%s.'), joinedChangesValue);
221
+ }
222
+ }
223
+ });
187
224
  }
188
- return changes;
225
+ return EMPTY_ARRAY;
189
226
  }
190
227
  //# sourceMappingURL=get-global-styles-changes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_memize","_interopRequireDefault","require","_i18n","_blocks","globalStylesChangesCache","Map","EMPTY_ARRAY","translationMap","caption","__","link","button","heading","h1","h2","h3","h4","h5","h6","getBlockNames","memoize","getBlockTypes","reduce","accumulator","name","title","isObject","obj","getTranslation","key","keyArray","split","blockName","elementName","sprintf","undefined","deepCompare","changedObject","originalObject","parentPath","slice","join","allKeys","Set","Object","keys","diffs","path","changedPath","concat","getGlobalStylesChangelist","next","previous","cacheKey","JSON","stringify","has","get","changedValueTree","styles","color","typography","spacing","blocks","elements","settings","length","set","result","acc","curr","translation","includes","push","getGlobalStylesChanges","options","changes","changesLength","maxResults","deleteCount","andMoreText","_n","splice"],"sources":["@wordpress/block-editor/src/components/global-styles/get-global-styles-changes.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { getBlockTypes } from '@wordpress/blocks';\n\nconst globalStylesChangesCache = new Map();\nconst EMPTY_ARRAY = [];\nconst translationMap = {\n\tcaption: __( 'Caption' ),\n\tlink: __( 'Link' ),\n\tbutton: __( 'Button' ),\n\theading: __( 'Heading' ),\n\th1: __( 'H1' ),\n\th2: __( 'H2' ),\n\th3: __( 'H3' ),\n\th4: __( 'H4' ),\n\th5: __( 'H5' ),\n\th6: __( 'H6' ),\n\t'settings.color': __( 'Color settings' ),\n\t'settings.typography': __( 'Typography settings' ),\n\t'styles.color': __( 'Colors' ),\n\t'styles.spacing': __( 'Spacing' ),\n\t'styles.typography': __( 'Typography' ),\n};\nconst getBlockNames = memoize( () =>\n\tgetBlockTypes().reduce( ( accumulator, { name, title } ) => {\n\t\taccumulator[ name ] = title;\n\t\treturn accumulator;\n\t}, {} )\n);\nconst isObject = ( obj ) => obj !== null && typeof obj === 'object';\n\n/**\n * Get the translation for a given global styles key.\n * @param {string} key A key representing a path to a global style property or setting.\n * @return {string|undefined} A translated key or undefined if no translation exists.\n */\nfunction getTranslation( key ) {\n\tif ( translationMap[ key ] ) {\n\t\treturn translationMap[ key ];\n\t}\n\n\tconst keyArray = key.split( '.' );\n\n\tif ( keyArray?.[ 0 ] === 'blocks' ) {\n\t\tconst blockName = getBlockNames()?.[ keyArray[ 1 ] ];\n\t\treturn blockName || keyArray[ 1 ];\n\t}\n\n\tif ( keyArray?.[ 0 ] === 'elements' ) {\n\t\tconst elementName = translationMap[ keyArray[ 1 ] ] || keyArray[ 1 ];\n\t\treturn sprintf(\n\t\t\t// translators: %s: element name, e.g., heading button, link, caption.\n\t\t\t__( '%s element' ),\n\t\t\telementName\n\t\t);\n\t}\n\n\treturn undefined;\n}\n\n/**\n * A deep comparison of two objects, optimized for comparing global styles.\n * @param {Object} changedObject The changed object to compare.\n * @param {Object} originalObject The original object to compare against.\n * @param {string} parentPath A key/value pair object of block names and their rendered titles.\n * @return {string[]} An array of paths whose values have changed.\n */\nfunction deepCompare( changedObject, originalObject, parentPath = '' ) {\n\t// We have two non-object values to compare.\n\tif ( ! isObject( changedObject ) && ! isObject( originalObject ) ) {\n\t\t/*\n\t\t * Only return a path if the value has changed.\n\t\t * And then only the path name up to 2 levels deep.\n\t\t */\n\t\treturn changedObject !== originalObject\n\t\t\t? parentPath.split( '.' ).slice( 0, 2 ).join( '.' )\n\t\t\t: undefined;\n\t}\n\n\t// Enable comparison when an object doesn't have a corresponding property to compare.\n\tchangedObject = isObject( changedObject ) ? changedObject : {};\n\toriginalObject = isObject( originalObject ) ? originalObject : {};\n\n\tconst allKeys = new Set( [\n\t\t...Object.keys( changedObject ),\n\t\t...Object.keys( originalObject ),\n\t] );\n\n\tlet diffs = [];\n\tfor ( const key of allKeys ) {\n\t\tconst path = parentPath ? parentPath + '.' + key : key;\n\t\tconst changedPath = deepCompare(\n\t\t\tchangedObject[ key ],\n\t\t\toriginalObject[ key ],\n\t\t\tpath\n\t\t);\n\t\tif ( changedPath ) {\n\t\t\tdiffs = diffs.concat( changedPath );\n\t\t}\n\t}\n\treturn diffs;\n}\n\n/**\n * Returns an array of translated summarized global styles changes.\n * Results are cached using a Map() key of `JSON.stringify( { next, previous } )`.\n *\n * @param {Object} next The changed object to compare.\n * @param {Object} previous The original object to compare against.\n * @return {string[]} An array of translated changes.\n */\nfunction getGlobalStylesChangelist( next, previous ) {\n\tconst cacheKey = JSON.stringify( { next, previous } );\n\n\tif ( globalStylesChangesCache.has( cacheKey ) ) {\n\t\treturn globalStylesChangesCache.get( cacheKey );\n\t}\n\n\t/*\n\t * Compare the two changesets with normalized keys.\n\t * The order of these keys determines the order in which\n\t * they'll appear in the results.\n\t */\n\tconst changedValueTree = deepCompare(\n\t\t{\n\t\t\tstyles: {\n\t\t\t\tcolor: next?.styles?.color,\n\t\t\t\ttypography: next?.styles?.typography,\n\t\t\t\tspacing: next?.styles?.spacing,\n\t\t\t},\n\t\t\tblocks: next?.styles?.blocks,\n\t\t\telements: next?.styles?.elements,\n\t\t\tsettings: next?.settings,\n\t\t},\n\t\t{\n\t\t\tstyles: {\n\t\t\t\tcolor: previous?.styles?.color,\n\t\t\t\ttypography: previous?.styles?.typography,\n\t\t\t\tspacing: previous?.styles?.spacing,\n\t\t\t},\n\t\t\tblocks: previous?.styles?.blocks,\n\t\t\telements: previous?.styles?.elements,\n\t\t\tsettings: previous?.settings,\n\t\t}\n\t);\n\n\tif ( ! changedValueTree.length ) {\n\t\tglobalStylesChangesCache.set( cacheKey, EMPTY_ARRAY );\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\t// Remove duplicate results.\n\tconst result = [ ...new Set( changedValueTree ) ]\n\t\t/*\n\t\t * Translate the keys.\n\t\t * Remove duplicate or empty translations.\n\t\t */\n\t\t.reduce( ( acc, curr ) => {\n\t\t\tconst translation = getTranslation( curr );\n\t\t\tif ( translation && ! acc.includes( translation ) ) {\n\t\t\t\tacc.push( translation );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\tglobalStylesChangesCache.set( cacheKey, result );\n\n\treturn result;\n}\n\n/**\n * From a getGlobalStylesChangelist() result, returns a truncated array of translated changes.\n * Appends a translated string indicating the number of changes that were truncated.\n *\n * @param {Object} next The changed object to compare.\n * @param {Object} previous The original object to compare against.\n * @param {{maxResults:number}} options Options. maxResults: results to return before truncating.\n * @return {string[]} An array of translated changes.\n */\nexport default function getGlobalStylesChanges( next, previous, options = {} ) {\n\tconst changes = getGlobalStylesChangelist( next, previous );\n\tconst changesLength = changes.length;\n\tconst { maxResults } = options;\n\n\t// Truncate to `n` results if necessary.\n\tif ( !! maxResults && changesLength && changesLength > maxResults ) {\n\t\tconst deleteCount = changesLength - maxResults;\n\t\tconst andMoreText = sprintf(\n\t\t\t// translators: %d: number of global styles changes that are not displayed in the UI.\n\t\t\t_n( '…and %d more change', '…and %d more changes', deleteCount ),\n\t\t\tdeleteCount\n\t\t);\n\t\tchanges.splice( maxResults, deleteCount, andMoreText );\n\t}\n\n\treturn changes;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_memize","_interopRequireDefault","require","_i18n","_blocks","globalStylesChangesCache","Map","EMPTY_ARRAY","translationMap","caption","__","link","button","heading","h1","h2","h3","h4","h5","h6","getBlockNames","memoize","getBlockTypes","reduce","accumulator","name","title","isObject","obj","getTranslation","key","keyArray","split","blockName","undefined","deepCompare","changedObject","originalObject","parentPath","slice","join","allKeys","Set","Object","keys","diffs","path","changedPath","concat","getGlobalStylesChangelist","next","previous","cacheKey","JSON","stringify","has","get","changedValueTree","styles","color","typography","spacing","blocks","elements","settings","length","set","result","acc","curr","translation","push","getGlobalStylesChanges","options","changeList","changesLength","maxResults","entries","group","includes","map","changeValues","changeValuesLength","joinedChangesValue","sprintf","_n"],"sources":["@wordpress/block-editor/src/components/global-styles/get-global-styles-changes.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { getBlockTypes } from '@wordpress/blocks';\n\nconst globalStylesChangesCache = new Map();\nconst EMPTY_ARRAY = [];\nconst translationMap = {\n\tcaption: __( 'Caption' ),\n\tlink: __( 'Link' ),\n\tbutton: __( 'Button' ),\n\theading: __( 'Heading' ),\n\th1: __( 'H1' ),\n\th2: __( 'H2' ),\n\th3: __( 'H3' ),\n\th4: __( 'H4' ),\n\th5: __( 'H5' ),\n\th6: __( 'H6' ),\n\t'settings.color': __( 'Color' ),\n\t'settings.typography': __( 'Typography' ),\n\t'styles.color': __( 'Colors' ),\n\t'styles.spacing': __( 'Spacing' ),\n\t'styles.typography': __( 'Typography' ),\n};\nconst getBlockNames = memoize( () =>\n\tgetBlockTypes().reduce( ( accumulator, { name, title } ) => {\n\t\taccumulator[ name ] = title;\n\t\treturn accumulator;\n\t}, {} )\n);\nconst isObject = ( obj ) => obj !== null && typeof obj === 'object';\n\n/**\n * Get the translation for a given global styles key.\n * @param {string} key A key representing a path to a global style property or setting.\n * @return {string|undefined} A translated key or undefined if no translation exists.\n */\nfunction getTranslation( key ) {\n\tif ( translationMap[ key ] ) {\n\t\treturn translationMap[ key ];\n\t}\n\n\tconst keyArray = key.split( '.' );\n\n\tif ( keyArray?.[ 0 ] === 'blocks' ) {\n\t\tconst blockName = getBlockNames()?.[ keyArray[ 1 ] ];\n\t\treturn blockName || keyArray[ 1 ];\n\t}\n\n\tif ( keyArray?.[ 0 ] === 'elements' ) {\n\t\treturn translationMap[ keyArray[ 1 ] ] || keyArray[ 1 ];\n\t}\n\n\treturn undefined;\n}\n\n/**\n * A deep comparison of two objects, optimized for comparing global styles.\n * @param {Object} changedObject The changed object to compare.\n * @param {Object} originalObject The original object to compare against.\n * @param {string} parentPath A key/value pair object of block names and their rendered titles.\n * @return {string[]} An array of paths whose values have changed.\n */\nfunction deepCompare( changedObject, originalObject, parentPath = '' ) {\n\t// We have two non-object values to compare.\n\tif ( ! isObject( changedObject ) && ! isObject( originalObject ) ) {\n\t\t/*\n\t\t * Only return a path if the value has changed.\n\t\t * And then only the path name up to 2 levels deep.\n\t\t */\n\t\treturn changedObject !== originalObject\n\t\t\t? parentPath.split( '.' ).slice( 0, 2 ).join( '.' )\n\t\t\t: undefined;\n\t}\n\n\t// Enable comparison when an object doesn't have a corresponding property to compare.\n\tchangedObject = isObject( changedObject ) ? changedObject : {};\n\toriginalObject = isObject( originalObject ) ? originalObject : {};\n\n\tconst allKeys = new Set( [\n\t\t...Object.keys( changedObject ),\n\t\t...Object.keys( originalObject ),\n\t] );\n\n\tlet diffs = [];\n\tfor ( const key of allKeys ) {\n\t\tconst path = parentPath ? parentPath + '.' + key : key;\n\t\tconst changedPath = deepCompare(\n\t\t\tchangedObject[ key ],\n\t\t\toriginalObject[ key ],\n\t\t\tpath\n\t\t);\n\t\tif ( changedPath ) {\n\t\t\tdiffs = diffs.concat( changedPath );\n\t\t}\n\t}\n\treturn diffs;\n}\n\n/**\n * Returns an array of translated summarized global styles changes.\n * Results are cached using a Map() key of `JSON.stringify( { next, previous } )`.\n *\n * @param {Object} next The changed object to compare.\n * @param {Object} previous The original object to compare against.\n * @return {Array[]} A 2-dimensional array of tuples: [ \"group\", \"translated change\" ].\n */\nexport function getGlobalStylesChangelist( next, previous ) {\n\tconst cacheKey = JSON.stringify( { next, previous } );\n\n\tif ( globalStylesChangesCache.has( cacheKey ) ) {\n\t\treturn globalStylesChangesCache.get( cacheKey );\n\t}\n\n\t/*\n\t * Compare the two changesets with normalized keys.\n\t * The order of these keys determines the order in which\n\t * they'll appear in the results.\n\t */\n\tconst changedValueTree = deepCompare(\n\t\t{\n\t\t\tstyles: {\n\t\t\t\tcolor: next?.styles?.color,\n\t\t\t\ttypography: next?.styles?.typography,\n\t\t\t\tspacing: next?.styles?.spacing,\n\t\t\t},\n\t\t\tblocks: next?.styles?.blocks,\n\t\t\telements: next?.styles?.elements,\n\t\t\tsettings: next?.settings,\n\t\t},\n\t\t{\n\t\t\tstyles: {\n\t\t\t\tcolor: previous?.styles?.color,\n\t\t\t\ttypography: previous?.styles?.typography,\n\t\t\t\tspacing: previous?.styles?.spacing,\n\t\t\t},\n\t\t\tblocks: previous?.styles?.blocks,\n\t\t\telements: previous?.styles?.elements,\n\t\t\tsettings: previous?.settings,\n\t\t}\n\t);\n\n\tif ( ! changedValueTree.length ) {\n\t\tglobalStylesChangesCache.set( cacheKey, EMPTY_ARRAY );\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\t// Remove duplicate results.\n\tconst result = [ ...new Set( changedValueTree ) ]\n\t\t/*\n\t\t * Translate the keys.\n\t\t * Remove empty translations.\n\t\t */\n\t\t.reduce( ( acc, curr ) => {\n\t\t\tconst translation = getTranslation( curr );\n\t\t\tif ( translation ) {\n\t\t\t\tacc.push( [ curr.split( '.' )[ 0 ], translation ] );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\tglobalStylesChangesCache.set( cacheKey, result );\n\n\treturn result;\n}\n\n/**\n * From a getGlobalStylesChangelist() result, returns an array of translated global styles changes, grouped by type.\n * The types are 'blocks', 'elements', 'settings', and 'styles'.\n *\n * @param {Object} next The changed object to compare.\n * @param {Object} previous The original object to compare against.\n * @param {{maxResults:number}} options Options. maxResults: results to return before truncating.\n * @return {string[]} An array of translated changes.\n */\nexport default function getGlobalStylesChanges( next, previous, options = {} ) {\n\tlet changeList = getGlobalStylesChangelist( next, previous );\n\tconst changesLength = changeList.length;\n\tconst { maxResults } = options;\n\n\tif ( changesLength ) {\n\t\t// Truncate to `n` results if necessary.\n\t\tif ( !! maxResults && changesLength > maxResults ) {\n\t\t\tchangeList = changeList.slice( 0, maxResults );\n\t\t}\n\t\treturn Object.entries(\n\t\t\tchangeList.reduce( ( acc, curr ) => {\n\t\t\t\tconst group = acc[ curr[ 0 ] ] || [];\n\t\t\t\tif ( ! group.includes( curr[ 1 ] ) ) {\n\t\t\t\t\tacc[ curr[ 0 ] ] = [ ...group, curr[ 1 ] ];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t}, {} )\n\t\t).map( ( [ key, changeValues ] ) => {\n\t\t\tconst changeValuesLength = changeValues.length;\n\t\t\tconst joinedChangesValue = changeValues.join( __( ', ' ) );\n\t\t\tswitch ( key ) {\n\t\t\t\tcase 'blocks': {\n\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t// translators: %s: a list of block names separated by a comma.\n\t\t\t\t\t\t_n( '%s block.', '%s blocks.', changeValuesLength ),\n\t\t\t\t\t\tjoinedChangesValue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcase 'elements': {\n\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t// translators: %s: a list of element names separated by a comma.\n\t\t\t\t\t\t_n( '%s element.', '%s elements.', changeValuesLength ),\n\t\t\t\t\t\tjoinedChangesValue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcase 'settings': {\n\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t// translators: %s: a list of theme.json setting labels separated by a comma.\n\t\t\t\t\t\t__( '%s settings.' ),\n\t\t\t\t\t\tjoinedChangesValue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcase 'styles': {\n\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t// translators: %s: a list of theme.json top-level styles labels separated by a comma.\n\t\t\t\t\t\t__( '%s styles.' ),\n\t\t\t\t\t\tjoinedChangesValue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\treturn sprintf(\n\t\t\t\t\t\t// translators: %s: a list of global styles changes separated by a comma.\n\t\t\t\t\t\t__( '%s.' ),\n\t\t\t\t\t\tjoinedChangesValue\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn EMPTY_ARRAY;\n}\n"],"mappings":"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"}
@@ -43,10 +43,10 @@ function useHasTypographyPanel(settings) {
43
43
  return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextTransform || hasFontSize || hasTextDecoration || hasWritingMode || hasTextColumns;
44
44
  }
45
45
  function useHasFontSizeControl(settings) {
46
- return (0, _getBlockSettings.hasMergedOrigins)(settings?.typography?.fontSizes) || settings?.typography?.customFontSize;
46
+ return (0, _getBlockSettings.hasOriginValue)(settings?.typography?.fontSizes) || settings?.typography?.customFontSize;
47
47
  }
48
48
  function useHasFontFamilyControl(settings) {
49
- return (0, _getBlockSettings.hasMergedOrigins)(settings?.typography?.fontFamilies);
49
+ return (0, _getBlockSettings.hasOriginValue)(settings?.typography?.fontFamilies);
50
50
  }
51
51
  function useHasLineHeightControl(settings) {
52
52
  return settings?.typography?.lineHeight;
@@ -79,10 +79,11 @@ function useHasTextColumnsControl(settings) {
79
79
  return settings?.typography?.textColumns;
80
80
  }
81
81
  function getUniqueFontSizesBySlug(settings) {
82
- const fontSizes = settings?.typography?.fontSizes;
83
- const mergedFontSizes = fontSizes ? (0, _getBlockSettings.mergeOrigins)(fontSizes) : [];
82
+ var _settings$typography$, _overrideOrigins;
83
+ const fontSizes = (_settings$typography$ = settings?.typography?.fontSizes) !== null && _settings$typography$ !== void 0 ? _settings$typography$ : {};
84
+ const overriddenFontSizes = (_overrideOrigins = (0, _getBlockSettings.overrideOrigins)(fontSizes)) !== null && _overrideOrigins !== void 0 ? _overrideOrigins : [];
84
85
  const uniqueSizes = [];
85
- for (const currentSize of mergedFontSizes) {
86
+ for (const currentSize of overriddenFontSizes) {
86
87
  if (!uniqueSizes.some(({
87
88
  slug
88
89
  }) => slug === currentSize.slug)) {
@@ -129,13 +130,14 @@ function TypographyPanel({
129
130
  panelId,
130
131
  defaultControls = DEFAULT_CONTROLS
131
132
  }) {
133
+ var _settings$typography$2;
132
134
  const decodeValue = rawValue => (0, _utils.getValueFromVariable)({
133
135
  settings
134
136
  }, '', rawValue);
135
137
 
136
138
  // Font Family
137
139
  const hasFontFamilyEnabled = useHasFontFamilyControl(settings);
138
- const fontFamilies = settings?.typography?.fontFamilies;
140
+ const fontFamilies = (_settings$typography$2 = settings?.typography?.fontFamilies) !== null && _settings$typography$2 !== void 0 ? _settings$typography$2 : {};
139
141
  const mergedFontFamilies = fontFamilies ? (0, _getBlockSettings.mergeOrigins)(fontFamilies) : [];
140
142
  const fontFamily = decodeValue(inheritedValue?.typography?.fontFamily);
141
143
  const setFontFamily = newValue => {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_getBlockSettings","_fontFamily","_interopRequireDefault","_fontAppearanceControl","_lineHeightControl","_letterSpacingControl","_textTransformControl","_textDecorationControl","_writingModeControl","_utils","_object","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","hasMergedOrigins","typography","fontSizes","customFontSize","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","__","letterSpacing","textTransform","textDecoration","writingMode","textColumns","getUniqueFontSizesBySlug","mergedFontSizes","mergeOrigins","uniqueSizes","currentSize","some","slug","push","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","_react","createElement","__experimentalToolsPanel","label","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","decodeValue","rawValue","getValueFromVariable","hasFontFamilyEnabled","mergedFontFamilies","setFontFamily","newValue","find","f","setImmutably","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","useCallback","previousValue","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","default","size","__nextHasNoMarginBottom","FontSizePicker","withReset","withSlider","className","__unstableInputWidth","__experimentalNumberControl","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { mergeOrigins, hasMergedOrigins } from '../../store/get-block-settings';\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\thasMergedOrigins( settings?.typography?.fontSizes ) ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn hasMergedOrigins( settings?.typography?.fontFamilies );\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\nfunction getUniqueFontSizesBySlug( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes;\n\tconst mergedFontSizes = fontSizes ? mergeOrigins( fontSizes ) : [];\n\tconst uniqueSizes = [];\n\tfor ( const currentSize of mergedFontSizes ) {\n\t\tif ( ! uniqueSizes.some( ( { slug } ) => slug === currentSize.slug ) ) {\n\t\t\tuniqueSizes.push( currentSize );\n\t\t}\n\t}\n\treturn uniqueSizes;\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamilies = settings?.typography?.fontFamilies;\n\tconst mergedFontFamilies = fontFamilies ? mergeOrigins( fontFamilies ) : [];\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = mergedFontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getUniqueFontSizesBySlug( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst setFontAppearance = ( {\n\t\tfontStyle: newFontStyle,\n\t\tfontWeight: newFontWeight,\n\t} ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = () => {\n\t\tsetFontAppearance( {} );\n\t};\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ mergedFontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Text columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_getBlockSettings","_fontFamily","_interopRequireDefault","_fontAppearanceControl","_lineHeightControl","_letterSpacingControl","_textTransformControl","_textDecorationControl","_writingModeControl","_utils","_object","MIN_TEXT_COLUMNS","MAX_TEXT_COLUMNS","useHasTypographyPanel","settings","hasFontFamily","useHasFontFamilyControl","hasLineHeight","useHasLineHeightControl","hasFontAppearance","useHasAppearanceControl","hasLetterSpacing","useHasLetterSpacingControl","hasTextTransform","useHasTextTransformControl","hasTextDecoration","useHasTextDecorationControl","hasWritingMode","useHasWritingModeControl","hasTextColumns","useHasTextColumnsControl","hasFontSize","useHasFontSizeControl","hasOriginValue","typography","fontSizes","customFontSize","fontFamilies","lineHeight","fontStyle","fontWeight","useAppearanceControlLabel","__","letterSpacing","textTransform","textDecoration","writingMode","textColumns","getUniqueFontSizesBySlug","_settings$typography$","_overrideOrigins","overriddenFontSizes","overrideOrigins","uniqueSizes","currentSize","some","slug","push","TypographyToolsPanel","resetAllFilter","onChange","value","panelId","children","resetAll","updatedValue","_react","createElement","__experimentalToolsPanel","label","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","DEFAULT_CONTROLS","fontFamily","fontSize","fontAppearance","TypographyPanel","as","Wrapper","inheritedValue","defaultControls","_settings$typography$2","decodeValue","rawValue","getValueFromVariable","hasFontFamilyEnabled","mergedFontFamilies","mergeOrigins","setFontFamily","newValue","find","f","setImmutably","undefined","resetFontFamily","hasFontSizeEnabled","disableCustomFontSizes","mergedFontSizes","setFontSize","metadata","actualValue","resetFontSize","hasAppearanceControl","appearanceControlLabel","hasFontStyles","hasFontWeights","setFontAppearance","newFontStyle","newFontWeight","resetFontAppearance","hasLineHeightEnabled","setLineHeight","resetLineHeight","hasLetterSpacingControl","setLetterSpacing","resetLetterSpacing","hasTextColumnsControl","setTextColumns","resetTextColumns","hasTextTransformControl","setTextTransform","resetTextTransform","hasTextDecorationControl","setTextDecoration","resetTextDecoration","hasWritingModeControl","setWritingMode","resetWritingMode","useCallback","previousValue","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","default","size","__nextHasNoMarginBottom","FontSizePicker","withReset","withSlider","className","__unstableInputWidth","__experimentalNumberControl","max","min","spinControls","initialPosition","showNone","isBlock"],"sources":["@wordpress/block-editor/src/components/global-styles/typography-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFontSizePicker,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tmergeOrigins,\n\toverrideOrigins,\n\thasOriginValue,\n} from '../../store/get-block-settings';\nimport FontFamilyControl from '../font-family';\nimport FontAppearanceControl from '../font-appearance-control';\nimport LineHeightControl from '../line-height-control';\nimport LetterSpacingControl from '../letter-spacing-control';\nimport TextTransformControl from '../text-transform-control';\nimport TextDecorationControl from '../text-decoration-control';\nimport WritingModeControl from '../writing-mode-control';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\n\nconst MIN_TEXT_COLUMNS = 1;\nconst MAX_TEXT_COLUMNS = 6;\n\nexport function useHasTypographyPanel( settings ) {\n\tconst hasFontFamily = useHasFontFamilyControl( settings );\n\tconst hasLineHeight = useHasLineHeightControl( settings );\n\tconst hasFontAppearance = useHasAppearanceControl( settings );\n\tconst hasLetterSpacing = useHasLetterSpacingControl( settings );\n\tconst hasTextTransform = useHasTextTransformControl( settings );\n\tconst hasTextDecoration = useHasTextDecorationControl( settings );\n\tconst hasWritingMode = useHasWritingModeControl( settings );\n\tconst hasTextColumns = useHasTextColumnsControl( settings );\n\tconst hasFontSize = useHasFontSizeControl( settings );\n\n\treturn (\n\t\thasFontFamily ||\n\t\thasLineHeight ||\n\t\thasFontAppearance ||\n\t\thasLetterSpacing ||\n\t\thasTextTransform ||\n\t\thasFontSize ||\n\t\thasTextDecoration ||\n\t\thasWritingMode ||\n\t\thasTextColumns\n\t);\n}\n\nfunction useHasFontSizeControl( settings ) {\n\treturn (\n\t\thasOriginValue( settings?.typography?.fontSizes ) ||\n\t\tsettings?.typography?.customFontSize\n\t);\n}\n\nfunction useHasFontFamilyControl( settings ) {\n\treturn hasOriginValue( settings?.typography?.fontFamilies );\n}\n\nfunction useHasLineHeightControl( settings ) {\n\treturn settings?.typography?.lineHeight;\n}\n\nfunction useHasAppearanceControl( settings ) {\n\treturn settings?.typography?.fontStyle || settings?.typography?.fontWeight;\n}\n\nfunction useAppearanceControlLabel( settings ) {\n\tif ( ! settings?.typography?.fontStyle ) {\n\t\treturn __( 'Font weight' );\n\t}\n\tif ( ! settings?.typography?.fontWeight ) {\n\t\treturn __( 'Font style' );\n\t}\n\treturn __( 'Appearance' );\n}\n\nfunction useHasLetterSpacingControl( settings ) {\n\treturn settings?.typography?.letterSpacing;\n}\n\nfunction useHasTextTransformControl( settings ) {\n\treturn settings?.typography?.textTransform;\n}\n\nfunction useHasTextDecorationControl( settings ) {\n\treturn settings?.typography?.textDecoration;\n}\n\nfunction useHasWritingModeControl( settings ) {\n\treturn settings?.typography?.writingMode;\n}\n\nfunction useHasTextColumnsControl( settings ) {\n\treturn settings?.typography?.textColumns;\n}\n\nfunction getUniqueFontSizesBySlug( settings ) {\n\tconst fontSizes = settings?.typography?.fontSizes ?? {};\n\tconst overriddenFontSizes = overrideOrigins( fontSizes ) ?? [];\n\tconst uniqueSizes = [];\n\tfor ( const currentSize of overriddenFontSizes ) {\n\t\tif ( ! uniqueSizes.some( ( { slug } ) => slug === currentSize.slug ) ) {\n\t\t\tuniqueSizes.push( currentSize );\n\t\t}\n\t}\n\treturn uniqueSizes;\n}\n\nfunction TypographyToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Typography' ) }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tfontFamily: true,\n\tfontSize: true,\n\tfontAppearance: true,\n\tlineHeight: true,\n\tletterSpacing: true,\n\ttextTransform: true,\n\ttextDecoration: true,\n\twritingMode: true,\n\ttextColumns: true,\n};\n\nexport default function TypographyPanel( {\n\tas: Wrapper = TypographyToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst decodeValue = ( rawValue ) =>\n\t\tgetValueFromVariable( { settings }, '', rawValue );\n\n\t// Font Family\n\tconst hasFontFamilyEnabled = useHasFontFamilyControl( settings );\n\tconst fontFamilies = settings?.typography?.fontFamilies ?? {};\n\tconst mergedFontFamilies = fontFamilies ? mergeOrigins( fontFamilies ) : [];\n\tconst fontFamily = decodeValue( inheritedValue?.typography?.fontFamily );\n\tconst setFontFamily = ( newValue ) => {\n\t\tconst slug = mergedFontFamilies?.find(\n\t\t\t( { fontFamily: f } ) => f === newValue\n\t\t)?.slug;\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontFamily' ],\n\t\t\t\tslug\n\t\t\t\t\t? `var:preset|font-family|${ slug }`\n\t\t\t\t\t: newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontFamily = () => !! value?.typography?.fontFamily;\n\tconst resetFontFamily = () => setFontFamily( undefined );\n\n\t// Font Size\n\tconst hasFontSizeEnabled = useHasFontSizeControl( settings );\n\tconst disableCustomFontSizes = ! settings?.typography?.customFontSize;\n\tconst mergedFontSizes = getUniqueFontSizesBySlug( settings );\n\n\tconst fontSize = decodeValue( inheritedValue?.typography?.fontSize );\n\tconst setFontSize = ( newValue, metadata ) => {\n\t\tconst actualValue = !! metadata?.slug\n\t\t\t? `var:preset|font-size|${ metadata?.slug }`\n\t\t\t: newValue;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'fontSize' ],\n\t\t\t\tactualValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasFontSize = () => !! value?.typography?.fontSize;\n\tconst resetFontSize = () => setFontSize( undefined );\n\n\t// Appearance\n\tconst hasAppearanceControl = useHasAppearanceControl( settings );\n\tconst appearanceControlLabel = useAppearanceControlLabel( settings );\n\tconst hasFontStyles = settings?.typography?.fontStyle;\n\tconst hasFontWeights = settings?.typography?.fontWeight;\n\tconst fontStyle = decodeValue( inheritedValue?.typography?.fontStyle );\n\tconst fontWeight = decodeValue( inheritedValue?.typography?.fontWeight );\n\tconst setFontAppearance = ( {\n\t\tfontStyle: newFontStyle,\n\t\tfontWeight: newFontWeight,\n\t} ) => {\n\t\tonChange( {\n\t\t\t...value,\n\t\t\ttypography: {\n\t\t\t\t...value?.typography,\n\t\t\t\tfontStyle: newFontStyle || undefined,\n\t\t\t\tfontWeight: newFontWeight || undefined,\n\t\t\t},\n\t\t} );\n\t};\n\tconst hasFontAppearance = () =>\n\t\t!! value?.typography?.fontStyle || !! value?.typography?.fontWeight;\n\tconst resetFontAppearance = () => {\n\t\tsetFontAppearance( {} );\n\t};\n\n\t// Line Height\n\tconst hasLineHeightEnabled = useHasLineHeightControl( settings );\n\tconst lineHeight = decodeValue( inheritedValue?.typography?.lineHeight );\n\tconst setLineHeight = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'lineHeight' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLineHeight = () => value?.typography?.lineHeight !== undefined;\n\tconst resetLineHeight = () => setLineHeight( undefined );\n\n\t// Letter Spacing\n\tconst hasLetterSpacingControl = useHasLetterSpacingControl( settings );\n\tconst letterSpacing = decodeValue(\n\t\tinheritedValue?.typography?.letterSpacing\n\t);\n\tconst setLetterSpacing = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'letterSpacing' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasLetterSpacing = () => !! value?.typography?.letterSpacing;\n\tconst resetLetterSpacing = () => setLetterSpacing( undefined );\n\n\t// Text Columns\n\tconst hasTextColumnsControl = useHasTextColumnsControl( settings );\n\tconst textColumns = decodeValue( inheritedValue?.typography?.textColumns );\n\tconst setTextColumns = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textColumns' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextColumns = () => !! value?.typography?.textColumns;\n\tconst resetTextColumns = () => setTextColumns( undefined );\n\n\t// Text Transform\n\tconst hasTextTransformControl = useHasTextTransformControl( settings );\n\tconst textTransform = decodeValue(\n\t\tinheritedValue?.typography?.textTransform\n\t);\n\tconst setTextTransform = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textTransform' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextTransform = () => !! value?.typography?.textTransform;\n\tconst resetTextTransform = () => setTextTransform( undefined );\n\n\t// Text Decoration\n\tconst hasTextDecorationControl = useHasTextDecorationControl( settings );\n\tconst textDecoration = decodeValue(\n\t\tinheritedValue?.typography?.textDecoration\n\t);\n\tconst setTextDecoration = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'textDecoration' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasTextDecoration = () => !! value?.typography?.textDecoration;\n\tconst resetTextDecoration = () => setTextDecoration( undefined );\n\n\t// Text Orientation\n\tconst hasWritingModeControl = useHasWritingModeControl( settings );\n\tconst writingMode = decodeValue( inheritedValue?.typography?.writingMode );\n\tconst setWritingMode = ( newValue ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'typography', 'writingMode' ],\n\t\t\t\tnewValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasWritingMode = () => !! value?.typography?.writingMode;\n\tconst resetWritingMode = () => setWritingMode( undefined );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\ttypography: {},\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t{ hasFontFamilyEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font family' ) }\n\t\t\t\t\thasValue={ hasFontFamily }\n\t\t\t\t\tonDeselect={ resetFontFamily }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontFamily }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontFamilyControl\n\t\t\t\t\t\tfontFamilies={ mergedFontFamilies }\n\t\t\t\t\t\tvalue={ fontFamily }\n\t\t\t\t\t\tonChange={ setFontFamily }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasFontSizeEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\thasValue={ hasFontSize }\n\t\t\t\t\tonDeselect={ resetFontSize }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontSize }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\tvalue={ fontSize }\n\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\tfontSizes={ mergedFontSizes }\n\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\twithReset={ false }\n\t\t\t\t\t\twithSlider\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasAppearanceControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ appearanceControlLabel }\n\t\t\t\t\thasValue={ hasFontAppearance }\n\t\t\t\t\tonDeselect={ resetFontAppearance }\n\t\t\t\t\tisShownByDefault={ defaultControls.fontAppearance }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FontAppearanceControl\n\t\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ setFontAppearance }\n\t\t\t\t\t\thasFontStyles={ hasFontStyles }\n\t\t\t\t\t\thasFontWeights={ hasFontWeights }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLineHeightEnabled && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Line height' ) }\n\t\t\t\t\thasValue={ hasLineHeight }\n\t\t\t\t\tonDeselect={ resetLineHeight }\n\t\t\t\t\tisShownByDefault={ defaultControls.lineHeight }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LineHeightControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t\tvalue={ lineHeight }\n\t\t\t\t\t\tonChange={ setLineHeight }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasLetterSpacingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\t\t\thasValue={ hasLetterSpacing }\n\t\t\t\t\tonDeselect={ resetLetterSpacing }\n\t\t\t\t\tisShownByDefault={ defaultControls.letterSpacing }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<LetterSpacingControl\n\t\t\t\t\t\tvalue={ letterSpacing }\n\t\t\t\t\t\tonChange={ setLetterSpacing }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextColumnsControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text columns' ) }\n\t\t\t\t\thasValue={ hasTextColumns }\n\t\t\t\t\tonDeselect={ resetTextColumns }\n\t\t\t\t\tisShownByDefault={ defaultControls.textColumns }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tlabel={ __( 'Text columns' ) }\n\t\t\t\t\t\tmax={ MAX_TEXT_COLUMNS }\n\t\t\t\t\t\tmin={ MIN_TEXT_COLUMNS }\n\t\t\t\t\t\tonChange={ setTextColumns }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tvalue={ textColumns }\n\t\t\t\t\t\tinitialPosition={ 1 }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextDecorationControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text decoration' ) }\n\t\t\t\t\thasValue={ hasTextDecoration }\n\t\t\t\t\tonDeselect={ resetTextDecoration }\n\t\t\t\t\tisShownByDefault={ defaultControls.textDecoration }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextDecorationControl\n\t\t\t\t\t\tvalue={ textDecoration }\n\t\t\t\t\t\tonChange={ setTextDecoration }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"auto\"\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasWritingModeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Text orientation' ) }\n\t\t\t\t\thasValue={ hasWritingMode }\n\t\t\t\t\tonDeselect={ resetWritingMode }\n\t\t\t\t\tisShownByDefault={ defaultControls.writingMode }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<WritingModeControl\n\t\t\t\t\t\tvalue={ writingMode }\n\t\t\t\t\t\tonChange={ setWritingMode }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasTextTransformControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Letter case' ) }\n\t\t\t\t\thasValue={ hasTextTransform }\n\t\t\t\t\tonDeselect={ resetTextTransform }\n\t\t\t\t\tisShownByDefault={ defaultControls.textTransform }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<TextTransformControl\n\t\t\t\t\t\tvalue={ textTransform }\n\t\t\t\t\t\tonChange={ setTextTransform }\n\t\t\t\t\t\tshowNone\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
@@ -227,13 +227,16 @@ function Iframe({
227
227
  src: src,
228
228
  title: (0, _i18n.__)('Editor canvas'),
229
229
  onKeyDown: event => {
230
+ if (props.onKeyDown) {
231
+ props.onKeyDown(event);
232
+ }
230
233
  // If the event originates from inside the iframe, it means
231
234
  // it bubbled through the portal, but only with React
232
235
  // events. We need to to bubble native events as well,
233
236
  // though by doing so we also trigger another React event,
234
237
  // so we need to stop the propagation of this event to avoid
235
238
  // duplication.
236
- if (event.currentTarget.ownerDocument !== event.target.ownerDocument) {
239
+ else if (event.currentTarget.ownerDocument !== event.target.ownerDocument) {
237
240
  event.stopPropagation();
238
241
  bubbleEvent(event, window.KeyboardEvent, event.currentTarget);
239
242
  }