@wordpress/block-editor 12.6.0 → 12.7.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 (199) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +2 -2
  3. package/build/autocompleters/block.js +6 -2
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-editing-mode/index.js +1 -1
  6. package/build/components/block-editing-mode/index.js.map +1 -1
  7. package/build/components/block-list/block.js +4 -2
  8. package/build/components/block-list/block.js.map +1 -1
  9. package/build/components/block-list/index.js +2 -4
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-parent-selector/index.js +6 -21
  12. package/build/components/block-parent-selector/index.js.map +1 -1
  13. package/build/components/block-preview/auto.js +6 -1
  14. package/build/components/block-preview/auto.js.map +1 -1
  15. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -17
  16. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  17. package/build/components/block-toolbar/index.js +4 -34
  18. package/build/components/block-toolbar/index.js.map +1 -1
  19. package/build/components/block-toolbar/utils.js +56 -51
  20. package/build/components/block-toolbar/utils.js.map +1 -1
  21. package/build/components/block-tools/block-contextual-toolbar.js +4 -2
  22. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  23. package/build/components/block-variation-picker/index.native.js +10 -20
  24. package/build/components/block-variation-picker/index.native.js.map +1 -1
  25. package/build/components/editor-styles/index.js +2 -2
  26. package/build/components/editor-styles/index.js.map +1 -1
  27. package/build/components/font-sizes/fluid-utils.js +11 -11
  28. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  29. package/build/components/global-styles/behaviors-panel.js +66 -0
  30. package/build/components/global-styles/behaviors-panel.js.map +1 -0
  31. package/build/components/global-styles/hooks.js +118 -4
  32. package/build/components/global-styles/hooks.js.map +1 -1
  33. package/build/components/global-styles/index.js +20 -0
  34. package/build/components/global-styles/index.js.map +1 -1
  35. package/build/components/global-styles/typography-utils.js +4 -4
  36. package/build/components/global-styles/typography-utils.js.map +1 -1
  37. package/build/components/global-styles/utils.js +1 -1
  38. package/build/components/global-styles/utils.js.map +1 -1
  39. package/build/components/inserter/hooks/use-block-types-state.js +6 -2
  40. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  41. package/build/components/inserter/hooks/use-debounced-input.js +5 -7
  42. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -1
  43. package/build/components/inserter/hooks/use-patterns-state.js +3 -2
  44. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  45. package/build/components/inserter/reusable-blocks-tab.js +3 -2
  46. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  47. package/build/components/inserter-list-item/index.js +1 -1
  48. package/build/components/inserter-list-item/index.js.map +1 -1
  49. package/build/components/link-control/index.js +47 -6
  50. package/build/components/link-control/index.js.map +1 -1
  51. package/build/components/link-control/link-preview.js +3 -3
  52. package/build/components/link-control/link-preview.js.map +1 -1
  53. package/build/components/list-view/use-list-view-drop-zone.js +6 -1
  54. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  55. package/build/components/media-replace-flow/index.native.js +15 -3
  56. package/build/components/media-replace-flow/index.native.js.map +1 -1
  57. package/build/components/rich-text/format-edit.js +57 -28
  58. package/build/components/rich-text/format-edit.js.map +1 -1
  59. package/build/components/rich-text/get-rich-text-values.js +11 -18
  60. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  61. package/build/components/spacing-sizes-control/utils.js +2 -2
  62. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  63. package/build/hooks/behaviors.js +5 -12
  64. package/build/hooks/behaviors.js.map +1 -1
  65. package/build/hooks/border.js +2 -1
  66. package/build/hooks/border.js.map +1 -1
  67. package/build/hooks/style.js +11 -2
  68. package/build/hooks/style.js.map +1 -1
  69. package/build/private-apis.js +4 -1
  70. package/build/private-apis.js.map +1 -1
  71. package/build/store/actions.js +2 -3
  72. package/build/store/actions.js.map +1 -1
  73. package/build/store/selectors.js +4 -71
  74. package/build/store/selectors.js.map +1 -1
  75. package/build-module/autocompleters/block.js +7 -3
  76. package/build-module/autocompleters/block.js.map +1 -1
  77. package/build-module/components/block-editing-mode/index.js +1 -1
  78. package/build-module/components/block-editing-mode/index.js.map +1 -1
  79. package/build-module/components/block-list/block.js +4 -2
  80. package/build-module/components/block-list/block.js.map +1 -1
  81. package/build-module/components/block-list/index.js +2 -3
  82. package/build-module/components/block-list/index.js.map +1 -1
  83. package/build-module/components/block-parent-selector/index.js +7 -22
  84. package/build-module/components/block-parent-selector/index.js.map +1 -1
  85. package/build-module/components/block-preview/auto.js +6 -1
  86. package/build-module/components/block-preview/auto.js.map +1 -1
  87. package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -18
  88. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  89. package/build-module/components/block-toolbar/index.js +6 -36
  90. package/build-module/components/block-toolbar/index.js.map +1 -1
  91. package/build-module/components/block-toolbar/utils.js +54 -49
  92. package/build-module/components/block-toolbar/utils.js.map +1 -1
  93. package/build-module/components/block-tools/block-contextual-toolbar.js +4 -2
  94. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  95. package/build-module/components/block-variation-picker/index.native.js +13 -23
  96. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  97. package/build-module/components/editor-styles/index.js +2 -2
  98. package/build-module/components/editor-styles/index.js.map +1 -1
  99. package/build-module/components/font-sizes/fluid-utils.js +11 -11
  100. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  101. package/build-module/components/global-styles/behaviors-panel.js +57 -0
  102. package/build-module/components/global-styles/behaviors-panel.js.map +1 -0
  103. package/build-module/components/global-styles/hooks.js +115 -5
  104. package/build-module/components/global-styles/hooks.js.map +1 -1
  105. package/build-module/components/global-styles/index.js +2 -1
  106. package/build-module/components/global-styles/index.js.map +1 -1
  107. package/build-module/components/global-styles/typography-utils.js +4 -4
  108. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  109. package/build-module/components/global-styles/utils.js +1 -1
  110. package/build-module/components/global-styles/utils.js.map +1 -1
  111. package/build-module/components/inserter/hooks/use-block-types-state.js +7 -3
  112. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  113. package/build-module/components/inserter/hooks/use-debounced-input.js +5 -7
  114. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -1
  115. package/build-module/components/inserter/hooks/use-patterns-state.js +3 -2
  116. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  117. package/build-module/components/inserter/reusable-blocks-tab.js +3 -2
  118. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  119. package/build-module/components/inserter-list-item/index.js +1 -1
  120. package/build-module/components/inserter-list-item/index.js.map +1 -1
  121. package/build-module/components/link-control/index.js +45 -6
  122. package/build-module/components/link-control/index.js.map +1 -1
  123. package/build-module/components/link-control/link-preview.js +3 -3
  124. package/build-module/components/link-control/link-preview.js.map +1 -1
  125. package/build-module/components/list-view/use-list-view-drop-zone.js +6 -1
  126. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  127. package/build-module/components/media-replace-flow/index.native.js +15 -3
  128. package/build-module/components/media-replace-flow/index.native.js.map +1 -1
  129. package/build-module/components/rich-text/format-edit.js +51 -26
  130. package/build-module/components/rich-text/format-edit.js.map +1 -1
  131. package/build-module/components/rich-text/get-rich-text-values.js +13 -18
  132. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  133. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  134. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  135. package/build-module/hooks/behaviors.js +5 -12
  136. package/build-module/hooks/behaviors.js.map +1 -1
  137. package/build-module/hooks/border.js +2 -1
  138. package/build-module/hooks/border.js.map +1 -1
  139. package/build-module/hooks/style.js +11 -2
  140. package/build-module/hooks/style.js.map +1 -1
  141. package/build-module/private-apis.js +3 -1
  142. package/build-module/private-apis.js.map +1 -1
  143. package/build-module/store/actions.js +2 -3
  144. package/build-module/store/actions.js.map +1 -1
  145. package/build-module/store/selectors.js +4 -69
  146. package/build-module/store/selectors.js.map +1 -1
  147. package/build-style/style-rtl.css +18 -5
  148. package/build-style/style.css +18 -5
  149. package/package.json +31 -31
  150. package/src/autocompleters/block.js +21 -6
  151. package/src/components/block-draggable/test/index.native.js +2 -3
  152. package/src/components/block-editing-mode/index.js +1 -1
  153. package/src/components/block-list/block.js +6 -1
  154. package/src/components/block-list/index.js +3 -6
  155. package/src/components/block-list/test/block-invalid-warning.native.js +8 -1
  156. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +24 -0
  157. package/src/components/block-parent-selector/index.js +30 -42
  158. package/src/components/block-preview/auto.js +8 -1
  159. package/src/components/block-preview/style.scss +2 -1
  160. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -13
  161. package/src/components/block-toolbar/index.js +36 -63
  162. package/src/components/block-toolbar/utils.js +57 -45
  163. package/src/components/block-tools/block-contextual-toolbar.js +43 -35
  164. package/src/components/block-tools/style.scss +17 -5
  165. package/src/components/block-variation-picker/index.native.js +52 -72
  166. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  167. package/src/components/editor-styles/index.js +2 -2
  168. package/src/components/font-sizes/fluid-utils.js +17 -17
  169. package/src/components/font-sizes/test/fluid-utils.js +6 -6
  170. package/src/components/global-styles/behaviors-panel.js +71 -0
  171. package/src/components/global-styles/hooks.js +114 -5
  172. package/src/components/global-styles/index.js +3 -0
  173. package/src/components/global-styles/test/typography-utils.js +6 -6
  174. package/src/components/global-styles/typography-utils.js +4 -4
  175. package/src/components/global-styles/utils.js +2 -1
  176. package/src/components/inserter/hooks/use-block-types-state.js +15 -6
  177. package/src/components/inserter/hooks/use-debounced-input.js +8 -7
  178. package/src/components/inserter/hooks/use-patterns-state.js +2 -1
  179. package/src/components/inserter/reusable-blocks-tab.js +4 -1
  180. package/src/components/inserter-list-item/index.js +3 -1
  181. package/src/components/link-control/README.md +12 -3
  182. package/src/components/link-control/index.js +43 -6
  183. package/src/components/link-control/link-preview.js +6 -4
  184. package/src/components/link-control/style.scss +3 -2
  185. package/src/components/link-control/test/index.js +2 -1
  186. package/src/components/list-view/use-list-view-drop-zone.js +5 -1
  187. package/src/components/media-replace-flow/index.native.js +12 -3
  188. package/src/components/media-upload/test/index.native.js +1 -0
  189. package/src/components/rich-text/format-edit.js +62 -38
  190. package/src/components/rich-text/get-rich-text-values.js +22 -28
  191. package/src/components/spacing-sizes-control/test/utils.js +9 -1
  192. package/src/components/spacing-sizes-control/utils.js +2 -2
  193. package/src/hooks/behaviors.js +10 -16
  194. package/src/hooks/border.js +2 -1
  195. package/src/hooks/style.js +7 -3
  196. package/src/private-apis.js +2 -0
  197. package/src/store/actions.js +22 -28
  198. package/src/store/selectors.js +3 -80
  199. package/src/store/test/selectors.js +7 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/hooks.js"],"names":["EMPTY_CONFIG","settings","styles","VALID_SETTINGS","useGlobalStylesReset","user","config","setUserConfig","GlobalStylesContext","canReset","useGlobalSetting","propertyPath","blockName","source","configs","appendedBlockPath","appendedPropertyPath","contextualPath","globalPath","sourceKey","settingValue","configToUse","result","forEach","setting","value","split","setSetting","newValue","currentConfig","useGlobalStyle","path","shouldDecodeEncode","merged","mergedConfig","base","baseConfig","userConfig","appendedPath","finalPath","setStyle","rawResult","useSettingsForBlockElement","parentSettings","element","supportedStyles","supports","select","blocksStore","getSupportedStyles","getBlockType","updatedSettings","includes","typography","fontSizes","customFontSize","fontFamilies","color","text","background","button","heading","link","caption","gradients","customGradient","defaultDuotone","customDuotone","key","textColumns","layout","spacing","sides","Array","isArray","length","dimensions","minHeight","charAt","toUpperCase","slice","border","shadow","useColorsPerOrigin","customColors","palette","custom","themeColors","theme","defaultColors","default","shouldDisplayDefaultColors","defaultPalette","push","name","colors","useGradientsPerOrigin","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { getValueFromObjectPath, setImmutably } from '../../utils/object';\nimport { GlobalStylesContext } from './context';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {} };\n\nconst VALID_SETTINGS = [\n\t'appearanceTools',\n\t'useRootPaddingAwareAlignments',\n\t'border.color',\n\t'border.radius',\n\t'border.style',\n\t'border.width',\n\t'shadow.presets',\n\t'shadow.defaultPresets',\n\t'color.background',\n\t'color.button',\n\t'color.caption',\n\t'color.custom',\n\t'color.customDuotone',\n\t'color.customGradient',\n\t'color.defaultDuotone',\n\t'color.defaultGradients',\n\t'color.defaultPalette',\n\t'color.duotone',\n\t'color.gradients',\n\t'color.heading',\n\t'color.link',\n\t'color.palette',\n\t'color.text',\n\t'custom',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.spacingSizes',\n\t'spacing.spacingScale',\n\t'spacing.blockGap',\n\t'spacing.margin',\n\t'spacing.padding',\n\t'spacing.units',\n\t'typography.fluid',\n\t'typography.customFontSize',\n\t'typography.dropCap',\n\t'typography.fontFamilies',\n\t'typography.fontSizes',\n\t'typography.fontStyle',\n\t'typography.fontWeight',\n\t'typography.letterSpacing',\n\t'typography.lineHeight',\n\t'typography.textColumns',\n\t'typography.textDecoration',\n\t'typography.textTransform',\n\t'typography.writingMode',\n];\n\nexport const useGlobalStylesReset = () => {\n\tconst { user: config, setUserConfig } = useContext( GlobalStylesContext );\n\tconst canReset = !! config && ! fastDeepEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback(\n\t\t\t() => setUserConfig( () => EMPTY_CONFIG ),\n\t\t\t[ setUserConfig ]\n\t\t),\n\t];\n};\n\nexport function useGlobalSetting( propertyPath, blockName, source = 'all' ) {\n\tconst { setUserConfig, ...configs } = useContext( GlobalStylesContext );\n\n\tconst appendedBlockPath = blockName ? '.blocks.' + blockName : '';\n\tconst appendedPropertyPath = propertyPath ? '.' + propertyPath : '';\n\tconst contextualPath = `settings${ appendedBlockPath }${ appendedPropertyPath }`;\n\tconst globalPath = `settings${ appendedPropertyPath }`;\n\tconst sourceKey = source === 'all' ? 'merged' : source;\n\n\tconst settingValue = useMemo( () => {\n\t\tconst configToUse = configs[ sourceKey ];\n\t\tif ( ! configToUse ) {\n\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\tif ( propertyPath ) {\n\t\t\treturn (\n\t\t\t\tgetValueFromObjectPath( configToUse, contextualPath ) ??\n\t\t\t\tgetValueFromObjectPath( configToUse, globalPath )\n\t\t\t);\n\t\t}\n\n\t\tlet result = {};\n\t\tVALID_SETTINGS.forEach( ( setting ) => {\n\t\t\tconst value =\n\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\tconfigToUse,\n\t\t\t\t\t`settings${ appendedBlockPath }.${ setting }`\n\t\t\t\t) ??\n\t\t\t\tgetValueFromObjectPath( configToUse, `settings.${ setting }` );\n\t\t\tif ( value ) {\n\t\t\t\tresult = setImmutably( result, setting.split( '.' ), value );\n\t\t\t}\n\t\t} );\n\t\treturn result;\n\t}, [\n\t\tconfigs,\n\t\tsourceKey,\n\t\tpropertyPath,\n\t\tcontextualPath,\n\t\tglobalPath,\n\t\tappendedBlockPath,\n\t] );\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably( currentConfig, contextualPath.split( '.' ), newValue )\n\t\t);\n\t};\n\n\treturn [ settingValue, setSetting ];\n}\n\nexport function useGlobalStyle(\n\tpath,\n\tblockName,\n\tsource = 'all',\n\t{ shouldDecodeEncode = true } = {}\n) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst appendedPath = path ? '.' + path : '';\n\tconst finalPath = ! blockName\n\t\t? `styles${ appendedPath }`\n\t\t: `styles.blocks.${ blockName }${ appendedPath }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably(\n\t\t\t\tcurrentConfig,\n\t\t\t\tfinalPath.split( '.' ),\n\t\t\t\tshouldDecodeEncode\n\t\t\t\t\t? getPresetVariableFromValue(\n\t\t\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tnewValue\n\t\t\t\t\t )\n\t\t\t\t\t: newValue\n\t\t\t)\n\t\t);\n\t};\n\n\tlet rawResult, result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\trawResult = getValueFromObjectPath( mergedConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\trawResult = getValueFromObjectPath( userConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\trawResult = getValueFromObjectPath( baseConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( baseConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\n/**\n * React hook that overrides a global settings object with block and element specific settings.\n *\n * @param {Object} parentSettings Settings object.\n * @param {blockName?} blockName Block name.\n * @param {element?} element Element name.\n *\n * @return {Object} Merge of settings and supports.\n */\nexport function useSettingsForBlockElement(\n\tparentSettings,\n\tblockName,\n\telement\n) {\n\tconst { supportedStyles, supports } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedStyles: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( blockName, element ),\n\t\t\t\tsupports:\n\t\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.supports,\n\t\t\t};\n\t\t},\n\t\t[ blockName, element ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst updatedSettings = { ...parentSettings };\n\n\t\tif ( ! supportedStyles.includes( 'fontSize' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontSizes: {},\n\t\t\t\tcustomFontSize: false,\n\t\t\t};\n\t\t}\n\n\t\tif ( ! supportedStyles.includes( 'fontFamily' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontFamilies: {},\n\t\t\t};\n\t\t}\n\n\t\tupdatedSettings.color = {\n\t\t\t...updatedSettings.color,\n\t\t\ttext:\n\t\t\t\tupdatedSettings.color?.text &&\n\t\t\t\tsupportedStyles.includes( 'color' ),\n\t\t\tbackground:\n\t\t\t\tupdatedSettings.color?.background &&\n\t\t\t\t( supportedStyles.includes( 'background' ) ||\n\t\t\t\t\tsupportedStyles.includes( 'backgroundColor' ) ),\n\t\t\tbutton:\n\t\t\t\tupdatedSettings.color?.button &&\n\t\t\t\tsupportedStyles.includes( 'buttonColor' ),\n\t\t\theading:\n\t\t\t\tupdatedSettings.color?.heading &&\n\t\t\t\tsupportedStyles.includes( 'headingColor' ),\n\t\t\tlink:\n\t\t\t\tupdatedSettings.color?.link &&\n\t\t\t\tsupportedStyles.includes( 'linkColor' ),\n\t\t\tcaption:\n\t\t\t\tupdatedSettings.color?.caption &&\n\t\t\t\tsupportedStyles.includes( 'captionColor' ),\n\t\t};\n\n\t\t// Some blocks can enable background colors but disable gradients.\n\t\tif ( ! supportedStyles.includes( 'background' ) ) {\n\t\t\tupdatedSettings.color.gradients = [];\n\t\t\tupdatedSettings.color.customGradient = false;\n\t\t}\n\n\t\t// If filters are not supported by the block/element, disable duotone.\n\t\tif ( ! supportedStyles.includes( 'filter' ) ) {\n\t\t\tupdatedSettings.color.defaultDuotone = false;\n\t\t\tupdatedSettings.color.customDuotone = false;\n\t\t}\n\n\t\t[\n\t\t\t'lineHeight',\n\t\t\t'fontStyle',\n\t\t\t'fontWeight',\n\t\t\t'letterSpacing',\n\t\t\t'textTransform',\n\t\t\t'textDecoration',\n\t\t\t'writingMode',\n\t\t].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.typography = {\n\t\t\t\t\t...updatedSettings.typography,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t// The column-count style is named text column to reduce confusion with\n\t\t// the columns block and manage expectations from the support.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/33587\n\t\tif ( ! supportedStyles.includes( 'columnCount' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\ttextColumns: false,\n\t\t\t};\n\t\t}\n\n\t\t[ 'contentSize', 'wideSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.layout = {\n\t\t\t\t\t...updatedSettings.layout,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'padding', 'margin', 'blockGap' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst sides = Array.isArray( supports?.spacing?.[ key ] )\n\t\t\t\t? supports?.spacing?.[ key ]\n\t\t\t\t: supports?.spacing?.[ key ]?.sides;\n\t\t\tif ( sides?.length ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: {\n\t\t\t\t\t\t...updatedSettings.spacing?.[ key ],\n\t\t\t\t\t\tsides,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tif ( ! supportedStyles.includes( 'minHeight' ) ) {\n\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\tminHeight: false,\n\t\t\t};\n\t\t}\n\n\t\t[ 'radius', 'color', 'style', 'width' ].forEach( ( key ) => {\n\t\t\tif (\n\t\t\t\t! supportedStyles.includes(\n\t\t\t\t\t'border' + key.charAt( 0 ).toUpperCase() + key.slice( 1 )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tupdatedSettings.border = {\n\t\t\t\t\t...updatedSettings.border,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tupdatedSettings.shadow = supportedStyles.includes( 'shadow' )\n\t\t\t? updatedSettings.shadow\n\t\t\t: false;\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports ] );\n}\n\nexport function useColorsPerOrigin( settings ) {\n\tconst customColors = settings?.color?.palette?.custom;\n\tconst themeColors = settings?.color?.palette?.theme;\n\tconst defaultColors = settings?.color?.palette?.default;\n\tconst shouldDisplayDefaultColors = settings?.color?.defaultPalette;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomColors,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tshouldDisplayDefaultColors,\n\t] );\n}\n\nexport function useGradientsPerOrigin( settings ) {\n\tconst customGradients = settings?.color?.gradients?.custom;\n\tconst themeGradients = settings?.color?.gradients?.theme;\n\tconst defaultGradients = settings?.color?.gradients?.default;\n\tconst shouldDisplayDefaultGradients = settings?.color?.defaultGradients;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomGradients,\n\t\tthemeGradients,\n\t\tdefaultGradients,\n\t\tshouldDisplayDefaultGradients,\n\t] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/hooks.js"],"names":["EMPTY_CONFIG","settings","styles","behaviors","VALID_SETTINGS","useGlobalStylesReset","user","config","setUserConfig","GlobalStylesContext","canReset","useGlobalSetting","propertyPath","blockName","source","configs","appendedBlockPath","appendedPropertyPath","contextualPath","globalPath","sourceKey","settingValue","configToUse","result","forEach","setting","value","split","setSetting","newValue","currentConfig","useGlobalStyle","path","shouldDecodeEncode","merged","mergedConfig","base","baseConfig","userConfig","appendedPath","finalPath","setStyle","rawResult","useSettingsForBlockElement","parentSettings","element","supportedStyles","supports","select","blocksStore","getSupportedStyles","getBlockType","updatedSettings","includes","typography","fontSizes","customFontSize","fontFamilies","color","text","background","button","heading","link","caption","gradients","customGradient","defaultDuotone","customDuotone","key","textColumns","layout","spacing","sides","Array","isArray","length","dimensions","minHeight","charAt","toUpperCase","slice","border","shadow","useColorsPerOrigin","customColors","palette","custom","themeColors","theme","defaultColors","default","shouldDisplayDefaultColors","defaultPalette","push","name","colors","useGradientsPerOrigin","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients","__experimentalUseGlobalBehaviors","animation","lightbox","setBehavior","newBehavior","enabled","behavior","undefined","inheritedBehaviors","__experimentalUseHasBehaviorsPanel","blockSupportOnly","hasSomeBlockSupport","Object","keys","some","values"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore, hasBlockSupport } from '@wordpress/blocks';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { getValueFromObjectPath, setImmutably } from '../../utils/object';\nimport { GlobalStylesContext } from './context';\nimport { unlock } from '../../lock-unlock';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {}, behaviors: {} };\n\nconst VALID_SETTINGS = [\n\t'appearanceTools',\n\t'behaviors',\n\t'useRootPaddingAwareAlignments',\n\t'border.color',\n\t'border.radius',\n\t'border.style',\n\t'border.width',\n\t'shadow.presets',\n\t'shadow.defaultPresets',\n\t'color.background',\n\t'color.button',\n\t'color.caption',\n\t'color.custom',\n\t'color.customDuotone',\n\t'color.customGradient',\n\t'color.defaultDuotone',\n\t'color.defaultGradients',\n\t'color.defaultPalette',\n\t'color.duotone',\n\t'color.gradients',\n\t'color.heading',\n\t'color.link',\n\t'color.palette',\n\t'color.text',\n\t'custom',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.spacingSizes',\n\t'spacing.spacingScale',\n\t'spacing.blockGap',\n\t'spacing.margin',\n\t'spacing.padding',\n\t'spacing.units',\n\t'typography.fluid',\n\t'typography.customFontSize',\n\t'typography.dropCap',\n\t'typography.fontFamilies',\n\t'typography.fontSizes',\n\t'typography.fontStyle',\n\t'typography.fontWeight',\n\t'typography.letterSpacing',\n\t'typography.lineHeight',\n\t'typography.textColumns',\n\t'typography.textDecoration',\n\t'typography.textTransform',\n\t'typography.writingMode',\n];\n\nexport const useGlobalStylesReset = () => {\n\tconst { user: config, setUserConfig } = useContext( GlobalStylesContext );\n\tconst canReset = !! config && ! fastDeepEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback(\n\t\t\t() => setUserConfig( () => EMPTY_CONFIG ),\n\t\t\t[ setUserConfig ]\n\t\t),\n\t];\n};\n\nexport function useGlobalSetting( propertyPath, blockName, source = 'all' ) {\n\tconst { setUserConfig, ...configs } = useContext( GlobalStylesContext );\n\tconst appendedBlockPath = blockName ? '.blocks.' + blockName : '';\n\tconst appendedPropertyPath = propertyPath ? '.' + propertyPath : '';\n\tconst contextualPath = `settings${ appendedBlockPath }${ appendedPropertyPath }`;\n\tconst globalPath = `settings${ appendedPropertyPath }`;\n\tconst sourceKey = source === 'all' ? 'merged' : source;\n\n\tconst settingValue = useMemo( () => {\n\t\tconst configToUse = configs[ sourceKey ];\n\t\tif ( ! configToUse ) {\n\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\tif ( propertyPath ) {\n\t\t\treturn (\n\t\t\t\tgetValueFromObjectPath( configToUse, contextualPath ) ??\n\t\t\t\tgetValueFromObjectPath( configToUse, globalPath )\n\t\t\t);\n\t\t}\n\n\t\tlet result = {};\n\t\tVALID_SETTINGS.forEach( ( setting ) => {\n\t\t\tconst value =\n\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\tconfigToUse,\n\t\t\t\t\t`settings${ appendedBlockPath }.${ setting }`\n\t\t\t\t) ??\n\t\t\t\tgetValueFromObjectPath( configToUse, `settings.${ setting }` );\n\t\t\tif ( value ) {\n\t\t\t\tresult = setImmutably( result, setting.split( '.' ), value );\n\t\t\t}\n\t\t} );\n\t\treturn result;\n\t}, [\n\t\tconfigs,\n\t\tsourceKey,\n\t\tpropertyPath,\n\t\tcontextualPath,\n\t\tglobalPath,\n\t\tappendedBlockPath,\n\t] );\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably( currentConfig, contextualPath.split( '.' ), newValue )\n\t\t);\n\t};\n\treturn [ settingValue, setSetting ];\n}\n\nexport function useGlobalStyle(\n\tpath,\n\tblockName,\n\tsource = 'all',\n\t{ shouldDecodeEncode = true } = {}\n) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst appendedPath = path ? '.' + path : '';\n\tconst finalPath = ! blockName\n\t\t? `styles${ appendedPath }`\n\t\t: `styles.blocks.${ blockName }${ appendedPath }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably(\n\t\t\t\tcurrentConfig,\n\t\t\t\tfinalPath.split( '.' ),\n\t\t\t\tshouldDecodeEncode\n\t\t\t\t\t? getPresetVariableFromValue(\n\t\t\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tnewValue\n\t\t\t\t\t )\n\t\t\t\t\t: newValue\n\t\t\t)\n\t\t);\n\t};\n\n\tlet rawResult, result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\trawResult = getValueFromObjectPath( mergedConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\trawResult = getValueFromObjectPath( userConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( mergedConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\trawResult = getValueFromObjectPath( baseConfig, finalPath );\n\t\t\tresult = shouldDecodeEncode\n\t\t\t\t? getValueFromVariable( baseConfig, blockName, rawResult )\n\t\t\t\t: rawResult;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\n/**\n * React hook that overrides a global settings object with block and element specific settings.\n *\n * @param {Object} parentSettings Settings object.\n * @param {blockName?} blockName Block name.\n * @param {element?} element Element name.\n *\n * @return {Object} Merge of settings and supports.\n */\nexport function useSettingsForBlockElement(\n\tparentSettings,\n\tblockName,\n\telement\n) {\n\tconst { supportedStyles, supports } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedStyles: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( blockName, element ),\n\t\t\t\tsupports:\n\t\t\t\t\tselect( blocksStore ).getBlockType( blockName )?.supports,\n\t\t\t};\n\t\t},\n\t\t[ blockName, element ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst updatedSettings = { ...parentSettings };\n\n\t\tif ( ! supportedStyles.includes( 'fontSize' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontSizes: {},\n\t\t\t\tcustomFontSize: false,\n\t\t\t};\n\t\t}\n\n\t\tif ( ! supportedStyles.includes( 'fontFamily' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\tfontFamilies: {},\n\t\t\t};\n\t\t}\n\n\t\tupdatedSettings.color = {\n\t\t\t...updatedSettings.color,\n\t\t\ttext:\n\t\t\t\tupdatedSettings.color?.text &&\n\t\t\t\tsupportedStyles.includes( 'color' ),\n\t\t\tbackground:\n\t\t\t\tupdatedSettings.color?.background &&\n\t\t\t\t( supportedStyles.includes( 'background' ) ||\n\t\t\t\t\tsupportedStyles.includes( 'backgroundColor' ) ),\n\t\t\tbutton:\n\t\t\t\tupdatedSettings.color?.button &&\n\t\t\t\tsupportedStyles.includes( 'buttonColor' ),\n\t\t\theading:\n\t\t\t\tupdatedSettings.color?.heading &&\n\t\t\t\tsupportedStyles.includes( 'headingColor' ),\n\t\t\tlink:\n\t\t\t\tupdatedSettings.color?.link &&\n\t\t\t\tsupportedStyles.includes( 'linkColor' ),\n\t\t\tcaption:\n\t\t\t\tupdatedSettings.color?.caption &&\n\t\t\t\tsupportedStyles.includes( 'captionColor' ),\n\t\t};\n\n\t\t// Some blocks can enable background colors but disable gradients.\n\t\tif ( ! supportedStyles.includes( 'background' ) ) {\n\t\t\tupdatedSettings.color.gradients = [];\n\t\t\tupdatedSettings.color.customGradient = false;\n\t\t}\n\n\t\t// If filters are not supported by the block/element, disable duotone.\n\t\tif ( ! supportedStyles.includes( 'filter' ) ) {\n\t\t\tupdatedSettings.color.defaultDuotone = false;\n\t\t\tupdatedSettings.color.customDuotone = false;\n\t\t}\n\n\t\t[\n\t\t\t'lineHeight',\n\t\t\t'fontStyle',\n\t\t\t'fontWeight',\n\t\t\t'letterSpacing',\n\t\t\t'textTransform',\n\t\t\t'textDecoration',\n\t\t\t'writingMode',\n\t\t].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.typography = {\n\t\t\t\t\t...updatedSettings.typography,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t// The column-count style is named text column to reduce confusion with\n\t\t// the columns block and manage expectations from the support.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/33587\n\t\tif ( ! supportedStyles.includes( 'columnCount' ) ) {\n\t\t\tupdatedSettings.typography = {\n\t\t\t\t...updatedSettings.typography,\n\t\t\t\ttextColumns: false,\n\t\t\t};\n\t\t}\n\n\t\t[ 'contentSize', 'wideSize' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.layout = {\n\t\t\t\t\t...updatedSettings.layout,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\t[ 'padding', 'margin', 'blockGap' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst sides = Array.isArray( supports?.spacing?.[ key ] )\n\t\t\t\t? supports?.spacing?.[ key ]\n\t\t\t\t: supports?.spacing?.[ key ]?.sides;\n\t\t\t// Check if spacing type is supported before adding sides.\n\t\t\tif ( sides?.length && updatedSettings.spacing?.[ key ] ) {\n\t\t\t\tupdatedSettings.spacing = {\n\t\t\t\t\t...updatedSettings.spacing,\n\t\t\t\t\t[ key ]: {\n\t\t\t\t\t\t...updatedSettings.spacing?.[ key ],\n\t\t\t\t\t\tsides,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tif ( ! supportedStyles.includes( 'minHeight' ) ) {\n\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\tminHeight: false,\n\t\t\t};\n\t\t}\n\n\t\t[ 'radius', 'color', 'style', 'width' ].forEach( ( key ) => {\n\t\t\tif (\n\t\t\t\t! supportedStyles.includes(\n\t\t\t\t\t'border' + key.charAt( 0 ).toUpperCase() + key.slice( 1 )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tupdatedSettings.border = {\n\t\t\t\t\t...updatedSettings.border,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\n\t\t\t}\n\t\t} );\n\n\t\tupdatedSettings.shadow = supportedStyles.includes( 'shadow' )\n\t\t\t? updatedSettings.shadow\n\t\t\t: false;\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports ] );\n}\n\nexport function useColorsPerOrigin( settings ) {\n\tconst customColors = settings?.color?.palette?.custom;\n\tconst themeColors = settings?.color?.palette?.theme;\n\tconst defaultColors = settings?.color?.palette?.default;\n\tconst shouldDisplayDefaultColors = settings?.color?.defaultPalette;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomColors,\n\t\tthemeColors,\n\t\tdefaultColors,\n\t\tshouldDisplayDefaultColors,\n\t] );\n}\n\nexport function useGradientsPerOrigin( settings ) {\n\tconst customGradients = settings?.color?.gradients?.custom;\n\tconst themeGradients = settings?.color?.gradients?.theme;\n\tconst defaultGradients = settings?.color?.gradients?.default;\n\tconst shouldDisplayDefaultGradients = settings?.color?.defaultGradients;\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [\n\t\tcustomGradients,\n\t\tthemeGradients,\n\t\tdefaultGradients,\n\t\tshouldDisplayDefaultGradients,\n\t] );\n}\n\nexport function __experimentalUseGlobalBehaviors( blockName, source = 'all' ) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst finalPath = ! blockName\n\t\t? `behaviors`\n\t\t: `behaviors.blocks.${ blockName }`;\n\n\tlet rawResult, result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\trawResult = getValueFromObjectPath( mergedConfig, finalPath );\n\t\t\tresult = getValueFromVariable( mergedConfig, blockName, rawResult );\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\trawResult = getValueFromObjectPath( userConfig, finalPath );\n\t\t\tresult = getValueFromVariable( mergedConfig, blockName, rawResult );\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\trawResult = getValueFromObjectPath( baseConfig, finalPath );\n\t\t\tresult = getValueFromVariable( baseConfig, blockName, rawResult );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\tconst animation = result?.lightbox?.animation || 'zoom';\n\n\tconst setBehavior = ( newValue ) => {\n\t\tlet newBehavior;\n\t\t// The user saves with Apply Globally option.\n\t\tif ( typeof newValue === 'object' ) {\n\t\t\tnewBehavior = newValue;\n\t\t} else {\n\t\t\tswitch ( newValue ) {\n\t\t\t\tcase 'lightbox':\n\t\t\t\t\tnewBehavior = {\n\t\t\t\t\t\tlightbox: {\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tanimation,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'fade':\n\t\t\t\t\tnewBehavior = {\n\t\t\t\t\t\tlightbox: {\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tanimation: 'fade',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'zoom':\n\t\t\t\t\tnewBehavior = {\n\t\t\t\t\t\tlightbox: {\n\t\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\t\tanimation: 'zoom',\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase '':\n\t\t\t\t\tnewBehavior = {\n\t\t\t\t\t\tlightbox: {\n\t\t\t\t\t\t\tenabled: false,\n\t\t\t\t\t\t\tanimation,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tsetUserConfig( ( currentConfig ) =>\n\t\t\tsetImmutably( currentConfig, finalPath.split( '.' ), newBehavior )\n\t\t);\n\t};\n\tlet behavior = '';\n\tif ( result === undefined ) behavior = 'default';\n\tif ( result?.lightbox.enabled ) behavior = 'lightbox';\n\n\treturn { behavior, inheritedBehaviors: result, setBehavior };\n}\n\nexport function __experimentalUseHasBehaviorsPanel(\n\tsettings,\n\tname,\n\t{ blockSupportOnly = false } = {}\n) {\n\tif ( ! settings?.behaviors ) {\n\t\treturn false;\n\t}\n\n\t// If every behavior is disabled on block supports, do not show the behaviors inspector control.\n\tconst hasSomeBlockSupport = Object.keys( settings?.behaviors ).some(\n\t\t( key ) => hasBlockSupport( name, `behaviors.${ key }` )\n\t);\n\n\tif ( blockSupportOnly ) {\n\t\treturn hasSomeBlockSupport;\n\t}\n\n\t// If every behavior is disabled, do not show the behaviors inspector control.\n\treturn Object.values( settings?.behaviors ).some(\n\t\t( value ) => value === true && hasSomeBlockSupport\n\t);\n}\n"]}
@@ -53,6 +53,24 @@ Object.defineProperty(exports, "TypographyPanel", {
53
53
  return _typographyPanel.default;
54
54
  }
55
55
  });
56
+ Object.defineProperty(exports, "__experimentalBehaviorsPanel", {
57
+ enumerable: true,
58
+ get: function () {
59
+ return _behaviorsPanel.default;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, "__experimentalUseGlobalBehaviors", {
63
+ enumerable: true,
64
+ get: function () {
65
+ return _hooks.__experimentalUseGlobalBehaviors;
66
+ }
67
+ });
68
+ Object.defineProperty(exports, "__experimentalUseHasBehaviorsPanel", {
69
+ enumerable: true,
70
+ get: function () {
71
+ return _hooks.__experimentalUseHasBehaviorsPanel;
72
+ }
73
+ });
56
74
  Object.defineProperty(exports, "areGlobalStyleConfigsEqual", {
57
75
  enumerable: true,
58
76
  get: function () {
@@ -164,6 +182,8 @@ var _effectsPanel = _interopRequireWildcard(require("./effects-panel"));
164
182
 
165
183
  var _filtersPanel = _interopRequireWildcard(require("./filters-panel"));
166
184
 
185
+ var _behaviorsPanel = _interopRequireDefault(require("./behaviors-panel"));
186
+
167
187
  var _advancedPanel = _interopRequireDefault(require("./advanced-panel"));
168
188
 
169
189
  var _utils = require("./utils");
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;AACA;;AAKA;;AACA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {\n\tuseGlobalStylesReset,\n\tuseGlobalSetting,\n\tuseGlobalStyle,\n\tuseSettingsForBlockElement,\n} from './hooks';\nexport { getBlockCSSSelector } from './get-block-css-selector';\nexport {\n\tgetLayoutStyles,\n\tuseGlobalStylesOutput,\n\tuseGlobalStylesOutputWithConfig,\n} from './use-global-styles-output';\nexport { GlobalStylesContext } from './context';\nexport {\n\tdefault as TypographyPanel,\n\tuseHasTypographyPanel,\n} from './typography-panel';\nexport {\n\tdefault as DimensionsPanel,\n\tuseHasDimensionsPanel,\n} from './dimensions-panel';\nexport { default as BorderPanel, useHasBorderPanel } from './border-panel';\nexport { default as ColorPanel, useHasColorPanel } from './color-panel';\nexport { default as EffectsPanel, useHasEffectsPanel } from './effects-panel';\nexport { default as FiltersPanel, useHasFiltersPanel } from './filters-panel';\nexport { default as AdvancedPanel } from './advanced-panel';\nexport { areGlobalStyleConfigsEqual } from './utils';\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AAKA;;AACA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export {\n\t__experimentalUseGlobalBehaviors,\n\t__experimentalUseHasBehaviorsPanel,\n\tuseGlobalStylesReset,\n\tuseGlobalSetting,\n\tuseGlobalStyle,\n\tuseSettingsForBlockElement,\n} from './hooks';\nexport { getBlockCSSSelector } from './get-block-css-selector';\nexport {\n\tgetLayoutStyles,\n\tuseGlobalStylesOutput,\n\tuseGlobalStylesOutputWithConfig,\n} from './use-global-styles-output';\nexport { GlobalStylesContext } from './context';\nexport {\n\tdefault as TypographyPanel,\n\tuseHasTypographyPanel,\n} from './typography-panel';\nexport {\n\tdefault as DimensionsPanel,\n\tuseHasDimensionsPanel,\n} from './dimensions-panel';\nexport { default as BorderPanel, useHasBorderPanel } from './border-panel';\nexport { default as ColorPanel, useHasColorPanel } from './color-panel';\nexport { default as EffectsPanel, useHasEffectsPanel } from './effects-panel';\nexport { default as FiltersPanel, useHasFiltersPanel } from './filters-panel';\nexport { default as __experimentalBehaviorsPanel } from './behaviors-panel';\nexport { default as AdvancedPanel } from './advanced-panel';\nexport { areGlobalStyleConfigsEqual } from './utils';\n"]}
@@ -34,8 +34,8 @@ var _fluidUtils = require("../font-sizes/fluid-utils");
34
34
 
35
35
  /**
36
36
  * @typedef {Object} TypographySettings
37
- * @property {?string} minViewPortWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.
38
- * @property {?string} maxViewPortWidth Maximum size up to which type will have fluidity. Optional if size is specified.
37
+ * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.
38
+ * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified.
39
39
  * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.
40
40
  * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.
41
41
  * @property {?string} minFontSize The smallest a calculated font size may be. Optional.
@@ -76,7 +76,7 @@ function getTypographyFontSizeValue(preset, typographyOptions) {
76
76
  maximumFontSize: preset?.fluid?.max,
77
77
  fontSize: defaultSize,
78
78
  minimumFontSizeLimit: fluidTypographySettings?.minFontSize,
79
- maximumViewPortWidth: fluidTypographySettings?.maxViewPortWidth
79
+ maximumViewportWidth: fluidTypographySettings?.maxViewportWidth
80
80
  });
81
81
 
82
82
  if (!!fluidFontSizeValue) {
@@ -105,7 +105,7 @@ function getFluidTypographyOptionsFromSettings(settings) {
105
105
  const layoutSettings = settings?.layout;
106
106
  return isFluidTypographyEnabled(typographySettings) && layoutSettings?.wideSize ? {
107
107
  fluid: {
108
- maxViewPortWidth: layoutSettings.wideSize,
108
+ maxViewportWidth: layoutSettings.wideSize,
109
109
  ...typographySettings.fluid
110
110
  }
111
111
  } : {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/typography-utils.js"],"names":["getTypographyFontSizeValue","preset","typographyOptions","size","defaultSize","isFluidTypographyEnabled","fluid","fluidTypographySettings","fluidFontSizeValue","minimumFontSize","min","maximumFontSize","max","fontSize","minimumFontSizeLimit","minFontSize","maximumViewPortWidth","maxViewPortWidth","typographySettings","fluidSettings","Object","keys","length","getFluidTypographyOptionsFromSettings","settings","typography","layoutSettings","layout","wideSize"],"mappings":";;;;;;;;AASA;;AATA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,0BAAT,CAAqCC,MAArC,EAA6CC,iBAA7C,EAAiE;AACvE,QAAM;AAAEC,IAAAA,IAAI,EAAEC;AAAR,MAAwBH,MAA9B;;AAEA,MAAK,CAAEI,wBAAwB,CAAEH,iBAAF,CAA/B,EAAuD;AACtD,WAAOE,WAAP;AACA;AACD;AACD;AACA;AACA;AACA;;;AACC,MAAK,CAAEA,WAAF,IAAiB,QAAQA,WAAzB,IAAwC,UAAUH,MAAM,EAAEK,KAA/D,EAAuE;AACtE,WAAOF,WAAP;AACA;;AAED,QAAMG,uBAAuB,GAC5B,OAAOL,iBAAiB,EAAEI,KAA1B,KAAoC,QAApC,GACGJ,iBAAiB,EAAEI,KADtB,GAEG,EAHJ;AAKA,QAAME,kBAAkB,GAAG,iDAAiC;AAC3DC,IAAAA,eAAe,EAAER,MAAM,EAAEK,KAAR,EAAeI,GAD2B;AAE3DC,IAAAA,eAAe,EAAEV,MAAM,EAAEK,KAAR,EAAeM,GAF2B;AAG3DC,IAAAA,QAAQ,EAAET,WAHiD;AAI3DU,IAAAA,oBAAoB,EAAEP,uBAAuB,EAAEQ,WAJY;AAK3DC,IAAAA,oBAAoB,EAAET,uBAAuB,EAAEU;AALY,GAAjC,CAA3B;;AAQA,MAAK,CAAC,CAAET,kBAAR,EAA6B;AAC5B,WAAOA,kBAAP;AACA;;AAED,SAAOJ,WAAP;AACA;;AAED,SAASC,wBAAT,CAAmCa,kBAAnC,EAAwD;AACvD,QAAMC,aAAa,GAAGD,kBAAkB,EAAEZ,KAA1C;AACA,SACC,SAASa,aAAT,IACEA,aAAa,IACd,OAAOA,aAAP,KAAyB,QADxB,IAEDC,MAAM,CAACC,IAAP,CAAaF,aAAb,EAA6BG,MAA7B,GAAsC,CAJxC;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,qCAAT,CAAgDC,QAAhD,EAA2D;AACjE,QAAMN,kBAAkB,GAAGM,QAAQ,EAAEC,UAArC;AACA,QAAMC,cAAc,GAAGF,QAAQ,EAAEG,MAAjC;AACA,SAAOtB,wBAAwB,CAAEa,kBAAF,CAAxB,IACNQ,cAAc,EAAEE,QADV,GAEJ;AACAtB,IAAAA,KAAK,EAAE;AACNW,MAAAA,gBAAgB,EAAES,cAAc,CAACE,QAD3B;AAEN,SAAGV,kBAAkB,CAACZ;AAFhB;AADP,GAFI,GAQJ;AACAA,IAAAA,KAAK,EAAEY,kBAAkB,EAAEZ;AAD3B,GARH;AAWA","sourcesContent":["/**\n * The fluid utilities must match the backend equivalent.\n * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php\n * ---------------------------------------------------------------\n */\n\n/**\n * Internal dependencies\n */\nimport { getComputedFluidTypographyValue } from '../font-sizes/fluid-utils';\n\n/**\n * @typedef {Object} FluidPreset\n * @property {string|undefined} max A maximum font size value.\n * @property {?string|undefined} min A minimum font size value.\n */\n\n/**\n * @typedef {Object} Preset\n * @property {?string|?number} size A default font size.\n * @property {string} name A font size name, displayed in the UI.\n * @property {string} slug A font size slug\n * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size.\n */\n\n/**\n * @typedef {Object} TypographySettings\n * @property {?string} minViewPortWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.\n * @property {?string} maxViewPortWidth Maximum size up to which type will have fluidity. Optional if size is specified.\n * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.\n * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.\n * @property {?string} minFontSize The smallest a calculated font size may be. Optional.\n */\n\n/**\n * Returns a font-size value based on a given font-size preset.\n * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values.\n *\n * @param {Preset} preset\n * @param {Object} typographyOptions\n * @param {boolean|TypographySettings} typographyOptions.fluid Whether fluid typography is enabled, and, optionally, fluid font size options.\n *\n * @return {string|*} A font-size value or the value of preset.size.\n */\nexport function getTypographyFontSizeValue( preset, typographyOptions ) {\n\tconst { size: defaultSize } = preset;\n\n\tif ( ! isFluidTypographyEnabled( typographyOptions ) ) {\n\t\treturn defaultSize;\n\t}\n\t/*\n\t * Checks whether a font size has explicitly bypassed fluid calculations.\n\t * Also catches falsy values and 0/'0'.\n\t * Fluid calculations cannot be performed on `0`.\n\t */\n\tif ( ! defaultSize || '0' === defaultSize || false === preset?.fluid ) {\n\t\treturn defaultSize;\n\t}\n\n\tconst fluidTypographySettings =\n\t\ttypeof typographyOptions?.fluid === 'object'\n\t\t\t? typographyOptions?.fluid\n\t\t\t: {};\n\n\tconst fluidFontSizeValue = getComputedFluidTypographyValue( {\n\t\tminimumFontSize: preset?.fluid?.min,\n\t\tmaximumFontSize: preset?.fluid?.max,\n\t\tfontSize: defaultSize,\n\t\tminimumFontSizeLimit: fluidTypographySettings?.minFontSize,\n\t\tmaximumViewPortWidth: fluidTypographySettings?.maxViewPortWidth,\n\t} );\n\n\tif ( !! fluidFontSizeValue ) {\n\t\treturn fluidFontSizeValue;\n\t}\n\n\treturn defaultSize;\n}\n\nfunction isFluidTypographyEnabled( typographySettings ) {\n\tconst fluidSettings = typographySettings?.fluid;\n\treturn (\n\t\ttrue === fluidSettings ||\n\t\t( fluidSettings &&\n\t\t\ttypeof fluidSettings === 'object' &&\n\t\t\tObject.keys( fluidSettings ).length > 0 )\n\t);\n}\n\n/**\n * Returns fluid typography settings from theme.json setting object.\n *\n * @param {Object} settings Theme.json settings\n * @param {Object} settings.typography Theme.json typography settings\n * @param {Object} settings.layout Theme.json layout settings\n * @return {TypographySettings} Fluid typography settings\n */\nexport function getFluidTypographyOptionsFromSettings( settings ) {\n\tconst typographySettings = settings?.typography;\n\tconst layoutSettings = settings?.layout;\n\treturn isFluidTypographyEnabled( typographySettings ) &&\n\t\tlayoutSettings?.wideSize\n\t\t? {\n\t\t\t\tfluid: {\n\t\t\t\t\tmaxViewPortWidth: layoutSettings.wideSize,\n\t\t\t\t\t...typographySettings.fluid,\n\t\t\t\t},\n\t\t }\n\t\t: {\n\t\t\t\tfluid: typographySettings?.fluid,\n\t\t };\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/typography-utils.js"],"names":["getTypographyFontSizeValue","preset","typographyOptions","size","defaultSize","isFluidTypographyEnabled","fluid","fluidTypographySettings","fluidFontSizeValue","minimumFontSize","min","maximumFontSize","max","fontSize","minimumFontSizeLimit","minFontSize","maximumViewportWidth","maxViewportWidth","typographySettings","fluidSettings","Object","keys","length","getFluidTypographyOptionsFromSettings","settings","typography","layoutSettings","layout","wideSize"],"mappings":";;;;;;;;AASA;;AATA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,0BAAT,CAAqCC,MAArC,EAA6CC,iBAA7C,EAAiE;AACvE,QAAM;AAAEC,IAAAA,IAAI,EAAEC;AAAR,MAAwBH,MAA9B;;AAEA,MAAK,CAAEI,wBAAwB,CAAEH,iBAAF,CAA/B,EAAuD;AACtD,WAAOE,WAAP;AACA;AACD;AACD;AACA;AACA;AACA;;;AACC,MAAK,CAAEA,WAAF,IAAiB,QAAQA,WAAzB,IAAwC,UAAUH,MAAM,EAAEK,KAA/D,EAAuE;AACtE,WAAOF,WAAP;AACA;;AAED,QAAMG,uBAAuB,GAC5B,OAAOL,iBAAiB,EAAEI,KAA1B,KAAoC,QAApC,GACGJ,iBAAiB,EAAEI,KADtB,GAEG,EAHJ;AAKA,QAAME,kBAAkB,GAAG,iDAAiC;AAC3DC,IAAAA,eAAe,EAAER,MAAM,EAAEK,KAAR,EAAeI,GAD2B;AAE3DC,IAAAA,eAAe,EAAEV,MAAM,EAAEK,KAAR,EAAeM,GAF2B;AAG3DC,IAAAA,QAAQ,EAAET,WAHiD;AAI3DU,IAAAA,oBAAoB,EAAEP,uBAAuB,EAAEQ,WAJY;AAK3DC,IAAAA,oBAAoB,EAAET,uBAAuB,EAAEU;AALY,GAAjC,CAA3B;;AAQA,MAAK,CAAC,CAAET,kBAAR,EAA6B;AAC5B,WAAOA,kBAAP;AACA;;AAED,SAAOJ,WAAP;AACA;;AAED,SAASC,wBAAT,CAAmCa,kBAAnC,EAAwD;AACvD,QAAMC,aAAa,GAAGD,kBAAkB,EAAEZ,KAA1C;AACA,SACC,SAASa,aAAT,IACEA,aAAa,IACd,OAAOA,aAAP,KAAyB,QADxB,IAEDC,MAAM,CAACC,IAAP,CAAaF,aAAb,EAA6BG,MAA7B,GAAsC,CAJxC;AAMA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,qCAAT,CAAgDC,QAAhD,EAA2D;AACjE,QAAMN,kBAAkB,GAAGM,QAAQ,EAAEC,UAArC;AACA,QAAMC,cAAc,GAAGF,QAAQ,EAAEG,MAAjC;AACA,SAAOtB,wBAAwB,CAAEa,kBAAF,CAAxB,IACNQ,cAAc,EAAEE,QADV,GAEJ;AACAtB,IAAAA,KAAK,EAAE;AACNW,MAAAA,gBAAgB,EAAES,cAAc,CAACE,QAD3B;AAEN,SAAGV,kBAAkB,CAACZ;AAFhB;AADP,GAFI,GAQJ;AACAA,IAAAA,KAAK,EAAEY,kBAAkB,EAAEZ;AAD3B,GARH;AAWA","sourcesContent":["/**\n * The fluid utilities must match the backend equivalent.\n * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php\n * ---------------------------------------------------------------\n */\n\n/**\n * Internal dependencies\n */\nimport { getComputedFluidTypographyValue } from '../font-sizes/fluid-utils';\n\n/**\n * @typedef {Object} FluidPreset\n * @property {string|undefined} max A maximum font size value.\n * @property {?string|undefined} min A minimum font size value.\n */\n\n/**\n * @typedef {Object} Preset\n * @property {?string|?number} size A default font size.\n * @property {string} name A font size name, displayed in the UI.\n * @property {string} slug A font size slug\n * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size.\n */\n\n/**\n * @typedef {Object} TypographySettings\n * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.\n * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified.\n * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.\n * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.\n * @property {?string} minFontSize The smallest a calculated font size may be. Optional.\n */\n\n/**\n * Returns a font-size value based on a given font-size preset.\n * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values.\n *\n * @param {Preset} preset\n * @param {Object} typographyOptions\n * @param {boolean|TypographySettings} typographyOptions.fluid Whether fluid typography is enabled, and, optionally, fluid font size options.\n *\n * @return {string|*} A font-size value or the value of preset.size.\n */\nexport function getTypographyFontSizeValue( preset, typographyOptions ) {\n\tconst { size: defaultSize } = preset;\n\n\tif ( ! isFluidTypographyEnabled( typographyOptions ) ) {\n\t\treturn defaultSize;\n\t}\n\t/*\n\t * Checks whether a font size has explicitly bypassed fluid calculations.\n\t * Also catches falsy values and 0/'0'.\n\t * Fluid calculations cannot be performed on `0`.\n\t */\n\tif ( ! defaultSize || '0' === defaultSize || false === preset?.fluid ) {\n\t\treturn defaultSize;\n\t}\n\n\tconst fluidTypographySettings =\n\t\ttypeof typographyOptions?.fluid === 'object'\n\t\t\t? typographyOptions?.fluid\n\t\t\t: {};\n\n\tconst fluidFontSizeValue = getComputedFluidTypographyValue( {\n\t\tminimumFontSize: preset?.fluid?.min,\n\t\tmaximumFontSize: preset?.fluid?.max,\n\t\tfontSize: defaultSize,\n\t\tminimumFontSizeLimit: fluidTypographySettings?.minFontSize,\n\t\tmaximumViewportWidth: fluidTypographySettings?.maxViewportWidth,\n\t} );\n\n\tif ( !! fluidFontSizeValue ) {\n\t\treturn fluidFontSizeValue;\n\t}\n\n\treturn defaultSize;\n}\n\nfunction isFluidTypographyEnabled( typographySettings ) {\n\tconst fluidSettings = typographySettings?.fluid;\n\treturn (\n\t\ttrue === fluidSettings ||\n\t\t( fluidSettings &&\n\t\t\ttypeof fluidSettings === 'object' &&\n\t\t\tObject.keys( fluidSettings ).length > 0 )\n\t);\n}\n\n/**\n * Returns fluid typography settings from theme.json setting object.\n *\n * @param {Object} settings Theme.json settings\n * @param {Object} settings.typography Theme.json typography settings\n * @param {Object} settings.layout Theme.json layout settings\n * @return {TypographySettings} Fluid typography settings\n */\nexport function getFluidTypographyOptionsFromSettings( settings ) {\n\tconst typographySettings = settings?.typography;\n\tconst layoutSettings = settings?.layout;\n\treturn isFluidTypographyEnabled( typographySettings ) &&\n\t\tlayoutSettings?.wideSize\n\t\t? {\n\t\t\t\tfluid: {\n\t\t\t\t\tmaxViewportWidth: layoutSettings.wideSize,\n\t\t\t\t\t...typographySettings.fluid,\n\t\t\t\t},\n\t\t }\n\t\t: {\n\t\t\t\tfluid: typographySettings?.fluid,\n\t\t };\n}\n"]}
@@ -352,6 +352,6 @@ function areGlobalStyleConfigsEqual(original, variation) {
352
352
  return original === variation;
353
353
  }
354
354
 
355
- return (0, _es.default)(original?.styles, variation?.styles) && (0, _es.default)(original?.settings, variation?.settings);
355
+ return (0, _es.default)(original?.styles, variation?.styles) && (0, _es.default)(original?.settings, variation?.settings) && (0, _es.default)(original?.behaviors, variation?.behaviors);
356
356
  }
357
357
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/utils.js"],"names":["ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","valueFunc","slug","preset","settings","size","STYLE_PATH_TO_CSS_VAR_INFIX","shadow","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","findInPresetsBy","features","blockName","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","find","highestPresetObjectWithSameSlug","undefined","getPresetVariableFromValue","variableStylePath","presetPropertyValue","metadata","data","getValueFromPresetVariable","variable","presetType","result","getValueFromVariable","getValueFromCustomVariable","ref","refPath","split","USER_VALUE_PREFIX","THEME_VALUE_PREFIX","THEME_VALUE_SUFFIX","parsedVar","startsWith","slice","length","endsWith","type","scopeSelector","scope","selector","scopes","selectors","selectorsScoped","forEach","outer","inner","push","trim","join","areGlobalStyleConfigsEqual","original","variation","styles"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetTypographyFontSizeValue,\n\tgetFluidTypographyOptionsFromSettings,\n} from './typography-utils';\nimport { getValueFromObjectPath } from '../../utils/object';\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'captionColor',\n\t'buttonColor',\n\t'headingColor',\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\tvalueKey: 'colors',\n\t\tcssVarInfix: 'duotone',\n\t\tvalueFunc: ( { slug } ) => `url( '#wp-duotone-${ slug }' )`,\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'shadow', 'presets' ],\n\t\tvalueKey: 'shadow',\n\t\tcssVarInfix: 'shadow',\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueFunc: ( preset, settings ) =>\n\t\t\tgetTypographyFontSizeValue(\n\t\t\t\tpreset,\n\t\t\t\tgetFluidTypographyOptionsFromSettings( settings )\n\t\t\t),\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\t{\n\t\tpath: [ 'spacing', 'spacingSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'spacing',\n\t\tvalueFunc: ( { size } ) => size,\n\t\tclasses: [],\n\t},\n];\n\nexport const STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'filter.duotone': 'duotone',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.caption.color.text': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tshadow: 'shadow',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// A static list of block attributes that store global style preset slugs.\nexport const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\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\tgetValueFromObjectPath( features, [\n\t\t\t'blocks',\n\t\t\tblockName,\n\t\t\t...presetPath,\n\t\t] ),\n\t\tgetValueFromObjectPath( 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 = presets.find(\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 = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === cssVarInfix\n\t);\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 = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === presetType\n\t);\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures.settings,\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\tgetValueFromObjectPath( features.settings, [\n\t\t\t'blocks',\n\t\t\tblockName,\n\t\t\t'custom',\n\t\t\t...path,\n\t\t] ) ??\n\t\tgetValueFromObjectPath( features.settings, [ '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\n/**\n * Attempts to fetch the value of a theme.json CSS variable.\n *\n * @param {Object} features GlobalStylesContext config, e.g., user, base or merged. Represents the theme.json tree.\n * @param {string} blockName The name of a block as represented in the styles property. E.g., 'root' for root-level, and 'core/${blockName}' for blocks.\n * @param {string|*} variable An incoming style value. A CSS var value is expected, but it could be any value.\n * @return {string|*|{ref}} The value of the CSS var, if found. If not found, the passed variable argument.\n */\nexport function getValueFromVariable( features, blockName, variable ) {\n\tif ( ! variable || typeof variable !== 'string' ) {\n\t\tif ( variable?.ref && typeof variable?.ref === 'string' ) {\n\t\t\tconst refPath = variable.ref.split( '.' );\n\t\t\tvariable = getValueFromObjectPath( features, refPath );\n\t\t\t// Presence of another ref indicates a reference to another dynamic value.\n\t\t\t// Pointing to another dynamic value is not supported.\n\t\t\tif ( ! variable || !! variable?.ref ) {\n\t\t\t\treturn variable;\n\t\t\t}\n\t\t} else {\n\t\t\treturn variable;\n\t\t}\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\n/**\n * Function that scopes a selector with another one. This works a bit like\n * SCSS nesting except the `&` operator isn't supported.\n *\n * @example\n * ```js\n * const scope = '.a, .b .c';\n * const selector = '> .x, .y';\n * const merged = scopeSelector( scope, selector );\n * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y'\n * ```\n *\n * @param {string} scope Selector to scope to.\n * @param {string} selector Original selector.\n *\n * @return {string} Scoped selector.\n */\nexport function scopeSelector( scope, selector ) {\n\tconst scopes = scope.split( ',' );\n\tconst selectors = selector.split( ',' );\n\n\tconst selectorsScoped = [];\n\tscopes.forEach( ( outer ) => {\n\t\tselectors.forEach( ( inner ) => {\n\t\t\tselectorsScoped.push( `${ outer.trim() } ${ inner.trim() }` );\n\t\t} );\n\t} );\n\n\treturn selectorsScoped.join( ', ' );\n}\n\n/**\n * Compares global style variations according to their styles and settings properties.\n *\n * @example\n * ```js\n * const globalStyles = { styles: { typography: { fontSize: '10px' } }, settings: {} };\n * const variation = { styles: { typography: { fontSize: '10000px' } }, settings: {} };\n * const isEqual = areGlobalStyleConfigsEqual( globalStyles, variation );\n * // false\n * ```\n *\n * @param {Object} original A global styles object.\n * @param {Object} variation A global styles object.\n *\n * @return {boolean} Whether `original` and `variation` match.\n */\nexport function areGlobalStyleConfigsEqual( original, variation ) {\n\tif ( typeof original !== 'object' || typeof variation !== 'object' ) {\n\t\treturn original === variation;\n\t}\n\treturn (\n\t\tfastDeepEqual( original?.styles, variation?.styles ) &&\n\t\tfastDeepEqual( original?.settings, variation?.settings )\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/global-styles/utils.js"],"names":["ROOT_BLOCK_NAME","ROOT_BLOCK_SELECTOR","ROOT_BLOCK_SUPPORTS","PRESET_METADATA","path","valueKey","cssVarInfix","classes","classSuffix","propertyName","valueFunc","slug","preset","settings","size","STYLE_PATH_TO_CSS_VAR_INFIX","shadow","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","findInPresetsBy","features","blockName","presetPath","presetProperty","presetValueValue","orderedPresetsByOrigin","presetByOrigin","origins","origin","presets","presetObject","find","highestPresetObjectWithSameSlug","undefined","getPresetVariableFromValue","variableStylePath","presetPropertyValue","metadata","data","getValueFromPresetVariable","variable","presetType","result","getValueFromVariable","getValueFromCustomVariable","ref","refPath","split","USER_VALUE_PREFIX","THEME_VALUE_PREFIX","THEME_VALUE_SUFFIX","parsedVar","startsWith","slice","length","endsWith","type","scopeSelector","scope","selector","scopes","selectors","selectorsScoped","forEach","outer","inner","push","trim","join","areGlobalStyleConfigsEqual","original","variation","styles","behaviors"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetTypographyFontSizeValue,\n\tgetFluidTypographyOptionsFromSettings,\n} from './typography-utils';\nimport { getValueFromObjectPath } from '../../utils/object';\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'captionColor',\n\t'buttonColor',\n\t'headingColor',\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\tvalueKey: 'colors',\n\t\tcssVarInfix: 'duotone',\n\t\tvalueFunc: ( { slug } ) => `url( '#wp-duotone-${ slug }' )`,\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'shadow', 'presets' ],\n\t\tvalueKey: 'shadow',\n\t\tcssVarInfix: 'shadow',\n\t\tclasses: [],\n\t},\n\t{\n\t\tpath: [ 'typography', 'fontSizes' ],\n\t\tvalueFunc: ( preset, settings ) =>\n\t\t\tgetTypographyFontSizeValue(\n\t\t\t\tpreset,\n\t\t\t\tgetFluidTypographyOptionsFromSettings( settings )\n\t\t\t),\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\t{\n\t\tpath: [ 'spacing', 'spacingSizes' ],\n\t\tvalueKey: 'size',\n\t\tcssVarInfix: 'spacing',\n\t\tvalueFunc: ( { size } ) => size,\n\t\tclasses: [],\n\t},\n];\n\nexport const STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'filter.duotone': 'duotone',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.caption.color.text': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tshadow: 'shadow',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// A static list of block attributes that store global style preset slugs.\nexport const STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\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\tgetValueFromObjectPath( features, [\n\t\t\t'blocks',\n\t\t\tblockName,\n\t\t\t...presetPath,\n\t\t] ),\n\t\tgetValueFromObjectPath( 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 = presets.find(\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 = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === cssVarInfix\n\t);\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 = PRESET_METADATA.find(\n\t\t( data ) => data.cssVarInfix === presetType\n\t);\n\tif ( ! metadata ) {\n\t\treturn variable;\n\t}\n\n\tconst presetObject = findInPresetsBy(\n\t\tfeatures.settings,\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\tgetValueFromObjectPath( features.settings, [\n\t\t\t'blocks',\n\t\t\tblockName,\n\t\t\t'custom',\n\t\t\t...path,\n\t\t] ) ??\n\t\tgetValueFromObjectPath( features.settings, [ '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\n/**\n * Attempts to fetch the value of a theme.json CSS variable.\n *\n * @param {Object} features GlobalStylesContext config, e.g., user, base or merged. Represents the theme.json tree.\n * @param {string} blockName The name of a block as represented in the styles property. E.g., 'root' for root-level, and 'core/${blockName}' for blocks.\n * @param {string|*} variable An incoming style value. A CSS var value is expected, but it could be any value.\n * @return {string|*|{ref}} The value of the CSS var, if found. If not found, the passed variable argument.\n */\nexport function getValueFromVariable( features, blockName, variable ) {\n\tif ( ! variable || typeof variable !== 'string' ) {\n\t\tif ( variable?.ref && typeof variable?.ref === 'string' ) {\n\t\t\tconst refPath = variable.ref.split( '.' );\n\t\t\tvariable = getValueFromObjectPath( features, refPath );\n\t\t\t// Presence of another ref indicates a reference to another dynamic value.\n\t\t\t// Pointing to another dynamic value is not supported.\n\t\t\tif ( ! variable || !! variable?.ref ) {\n\t\t\t\treturn variable;\n\t\t\t}\n\t\t} else {\n\t\t\treturn variable;\n\t\t}\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\n/**\n * Function that scopes a selector with another one. This works a bit like\n * SCSS nesting except the `&` operator isn't supported.\n *\n * @example\n * ```js\n * const scope = '.a, .b .c';\n * const selector = '> .x, .y';\n * const merged = scopeSelector( scope, selector );\n * // merged is '.a > .x, .a .y, .b .c > .x, .b .c .y'\n * ```\n *\n * @param {string} scope Selector to scope to.\n * @param {string} selector Original selector.\n *\n * @return {string} Scoped selector.\n */\nexport function scopeSelector( scope, selector ) {\n\tconst scopes = scope.split( ',' );\n\tconst selectors = selector.split( ',' );\n\n\tconst selectorsScoped = [];\n\tscopes.forEach( ( outer ) => {\n\t\tselectors.forEach( ( inner ) => {\n\t\t\tselectorsScoped.push( `${ outer.trim() } ${ inner.trim() }` );\n\t\t} );\n\t} );\n\n\treturn selectorsScoped.join( ', ' );\n}\n\n/**\n * Compares global style variations according to their styles and settings properties.\n *\n * @example\n * ```js\n * const globalStyles = { styles: { typography: { fontSize: '10px' } }, settings: {} };\n * const variation = { styles: { typography: { fontSize: '10000px' } }, settings: {} };\n * const isEqual = areGlobalStyleConfigsEqual( globalStyles, variation );\n * // false\n * ```\n *\n * @param {Object} original A global styles object.\n * @param {Object} variation A global styles object.\n *\n * @return {boolean} Whether `original` and `variation` match.\n */\nexport function areGlobalStyleConfigsEqual( original, variation ) {\n\tif ( typeof original !== 'object' || typeof variation !== 'object' ) {\n\t\treturn original === variation;\n\t}\n\treturn (\n\t\tfastDeepEqual( original?.styles, variation?.styles ) &&\n\t\tfastDeepEqual( original?.settings, variation?.settings ) &&\n\t\tfastDeepEqual( original?.behaviors, variation?.behaviors )\n\t);\n}\n"]}
@@ -50,9 +50,13 @@ const useBlockTypesState = (rootClientId, onInsert) => {
50
50
  const onSelectItem = (0, _element.useCallback)(({
51
51
  name,
52
52
  initialAttributes,
53
- innerBlocks
53
+ innerBlocks,
54
+ syncStatus,
55
+ content
54
56
  }, shouldFocusBlock) => {
55
- const insertedBlock = (0, _blocks.createBlock)(name, initialAttributes, (0, _blocks.createBlocksFromInnerBlocksTemplate)(innerBlocks));
57
+ const insertedBlock = syncStatus === 'unsynced' ? (0, _blocks.parse)(content, {
58
+ __unstableSkipMigrationLogs: true
59
+ }) : (0, _blocks.createBlock)(name, initialAttributes, (0, _blocks.createBlocksFromInnerBlocksTemplate)(innerBlocks));
56
60
  onInsert(insertedBlock, undefined, shouldFocusBlock);
57
61
  }, [onInsert]);
58
62
  return [items, categories, collections, onSelectItem];
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-block-types-state.js"],"names":["useBlockTypesState","rootClientId","onInsert","categories","collections","items","select","getInserterItems","blockEditorStore","getCategories","getCollections","blocksStore","onSelectItem","name","initialAttributes","innerBlocks","shouldFocusBlock","insertedBlock","undefined"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AAdA;AACA;AACA;;AASA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,kBAAkB,GAAG,CAAEC,YAAF,EAAgBC,QAAhB,KAA8B;AACxD,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,WAAd;AAA2BC,IAAAA;AAA3B,MAAqC,qBACxCC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAEE,YAAF,CAAnC;AACA,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAoCJ,MAAM,CAAEK,aAAF,CAAhD;AAEA,WAAO;AACNR,MAAAA,UAAU,EAAEM,aAAa,EADnB;AAENL,MAAAA,WAAW,EAAEM,cAAc,EAFrB;AAGNL,MAAAA,KAAK,EAAEE,gBAAgB,CAAEN,YAAF;AAHjB,KAAP;AAKA,GAVyC,EAW1C,CAAEA,YAAF,CAX0C,CAA3C;AAcA,QAAMW,YAAY,GAAG,0BACpB,CAAE;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,iBAAR;AAA2BC,IAAAA;AAA3B,GAAF,EAA4CC,gBAA5C,KAAkE;AACjE,UAAMC,aAAa,GAAG,yBACrBJ,IADqB,EAErBC,iBAFqB,EAGrB,iDAAqCC,WAArC,CAHqB,CAAtB;AAMAb,IAAAA,QAAQ,CAAEe,aAAF,EAAiBC,SAAjB,EAA4BF,gBAA5B,CAAR;AACA,GATmB,EAUpB,CAAEd,QAAF,CAVoB,CAArB;AAaA,SAAO,CAAEG,KAAF,EAASF,UAAT,EAAqBC,WAArB,EAAkCQ,YAAlC,CAAP;AACA,CA7BD;;eA+BeZ,kB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Retrieves the block types inserter state.\n *\n * @param {string=} rootClientId Insertion's root client ID.\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler)\n */\nconst useBlockTypesState = ( rootClientId, onInsert ) => {\n\tconst { categories, collections, items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst { getCategories, getCollections } = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tcategories: getCategories(),\n\t\t\t\tcollections: getCollections(),\n\t\t\t\titems: getInserterItems( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst onSelectItem = useCallback(\n\t\t( { name, initialAttributes, innerBlocks }, shouldFocusBlock ) => {\n\t\t\tconst insertedBlock = createBlock(\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocks )\n\t\t\t);\n\n\t\t\tonInsert( insertedBlock, undefined, shouldFocusBlock );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\n\treturn [ items, categories, collections, onSelectItem ];\n};\n\nexport default useBlockTypesState;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-block-types-state.js"],"names":["useBlockTypesState","rootClientId","onInsert","categories","collections","items","select","getInserterItems","blockEditorStore","getCategories","getCollections","blocksStore","onSelectItem","name","initialAttributes","innerBlocks","syncStatus","content","shouldFocusBlock","insertedBlock","__unstableSkipMigrationLogs","undefined"],"mappings":";;;;;;;AAGA;;AAMA;;AACA;;AAKA;;AAfA;AACA;AACA;;AAUA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,kBAAkB,GAAG,CAAEC,YAAF,EAAgBC,QAAhB,KAA8B;AACxD,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,WAAd;AAA2BC,IAAAA;AAA3B,MAAqC,qBACxCC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAEE,YAAF,CAAnC;AACA,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAoCJ,MAAM,CAAEK,aAAF,CAAhD;AAEA,WAAO;AACNR,MAAAA,UAAU,EAAEM,aAAa,EADnB;AAENL,MAAAA,WAAW,EAAEM,cAAc,EAFrB;AAGNL,MAAAA,KAAK,EAAEE,gBAAgB,CAAEN,YAAF;AAHjB,KAAP;AAKA,GAVyC,EAW1C,CAAEA,YAAF,CAX0C,CAA3C;AAcA,QAAMW,YAAY,GAAG,0BACpB,CACC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,iBAAR;AAA2BC,IAAAA,WAA3B;AAAwCC,IAAAA,UAAxC;AAAoDC,IAAAA;AAApD,GADD,EAECC,gBAFD,KAGK;AACJ,UAAMC,aAAa,GAClBH,UAAU,KAAK,UAAf,GACG,mBAAOC,OAAP,EAAgB;AAChBG,MAAAA,2BAA2B,EAAE;AADb,KAAhB,CADH,GAIG,yBACAP,IADA,EAEAC,iBAFA,EAGA,iDAAqCC,WAArC,CAHA,CALJ;AAWAb,IAAAA,QAAQ,CAAEiB,aAAF,EAAiBE,SAAjB,EAA4BH,gBAA5B,CAAR;AACA,GAjBmB,EAkBpB,CAAEhB,QAAF,CAlBoB,CAArB;AAqBA,SAAO,CAAEG,KAAF,EAASF,UAAT,EAAqBC,WAArB,EAAkCQ,YAAlC,CAAP;AACA,CArCD;;eAuCeZ,kB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n\tparse,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Retrieves the block types inserter state.\n *\n * @param {string=} rootClientId Insertion's root client ID.\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler)\n */\nconst useBlockTypesState = ( rootClientId, onInsert ) => {\n\tconst { categories, collections, items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst { getCategories, getCollections } = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tcategories: getCategories(),\n\t\t\t\tcollections: getCollections(),\n\t\t\t\titems: getInserterItems( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst onSelectItem = useCallback(\n\t\t(\n\t\t\t{ name, initialAttributes, innerBlocks, syncStatus, content },\n\t\t\tshouldFocusBlock\n\t\t) => {\n\t\t\tconst insertedBlock =\n\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t } )\n\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocks )\n\t\t\t\t\t );\n\n\t\t\tonInsert( insertedBlock, undefined, shouldFocusBlock );\n\t\t},\n\t\t[ onInsert ]\n\t);\n\n\treturn [ items, categories, collections, onSelectItem ];\n};\n\nexport default useBlockTypesState;\n"]}
@@ -14,13 +14,11 @@ var _compose = require("@wordpress/compose");
14
14
  */
15
15
  function useDebouncedInput(defaultValue = '') {
16
16
  const [input, setInput] = (0, _element.useState)(defaultValue);
17
- const [debounced, setter] = (0, _element.useState)(defaultValue);
18
- const setDebounced = (0, _compose.useDebounce)(setter, 250);
17
+ const [debouncedInput, setDebouncedState] = (0, _element.useState)(defaultValue);
18
+ const setDebouncedInput = (0, _compose.useDebounce)(setDebouncedState, 250);
19
19
  (0, _element.useEffect)(() => {
20
- if (debounced !== input) {
21
- setDebounced(input);
22
- }
23
- }, [debounced, input]);
24
- return [input, setInput, debounced];
20
+ setDebouncedInput(input);
21
+ }, [input]);
22
+ return [input, setInput, debouncedInput];
25
23
  }
26
24
  //# sourceMappingURL=use-debounced-input.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-debounced-input.js"],"names":["useDebouncedInput","defaultValue","input","setInput","debounced","setter","setDebounced"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,YAAY,GAAG,EAA3C,EAAgD;AAC9D,QAAM,CAAEC,KAAF,EAASC,QAAT,IAAsB,uBAAUF,YAAV,CAA5B;AACA,QAAM,CAAEG,SAAF,EAAaC,MAAb,IAAwB,uBAAUJ,YAAV,CAA9B;AACA,QAAMK,YAAY,GAAG,0BAAaD,MAAb,EAAqB,GAArB,CAArB;AACA,0BAAW,MAAM;AAChB,QAAKD,SAAS,KAAKF,KAAnB,EAA2B;AAC1BI,MAAAA,YAAY,CAAEJ,KAAF,CAAZ;AACA;AACD,GAJD,EAIG,CAAEE,SAAF,EAAaF,KAAb,CAJH;AAKA,SAAO,CAAEA,KAAF,EAASC,QAAT,EAAmBC,SAAnB,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\nexport default function useDebouncedInput( defaultValue = '' ) {\n\tconst [ input, setInput ] = useState( defaultValue );\n\tconst [ debounced, setter ] = useState( defaultValue );\n\tconst setDebounced = useDebounce( setter, 250 );\n\tuseEffect( () => {\n\t\tif ( debounced !== input ) {\n\t\t\tsetDebounced( input );\n\t\t}\n\t}, [ debounced, input ] );\n\treturn [ input, setInput, debounced ];\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-debounced-input.js"],"names":["useDebouncedInput","defaultValue","input","setInput","debouncedInput","setDebouncedState","setDebouncedInput"],"mappings":";;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,iBAAT,CAA4BC,YAAY,GAAG,EAA3C,EAAgD;AAC9D,QAAM,CAAEC,KAAF,EAASC,QAAT,IAAsB,uBAAUF,YAAV,CAA5B;AACA,QAAM,CAAEG,cAAF,EAAkBC,iBAAlB,IAAwC,uBAAUJ,YAAV,CAA9C;AAEA,QAAMK,iBAAiB,GAAG,0BAAaD,iBAAb,EAAgC,GAAhC,CAA1B;AAEA,0BAAW,MAAM;AAChBC,IAAAA,iBAAiB,CAAEJ,KAAF,CAAjB;AACA,GAFD,EAEG,CAAEA,KAAF,CAFH;AAIA,SAAO,CAAEA,KAAF,EAASC,QAAT,EAAmBC,cAAnB,CAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\nexport default function useDebouncedInput( defaultValue = '' ) {\n\tconst [ input, setInput ] = useState( defaultValue );\n\tconst [ debouncedInput, setDebouncedState ] = useState( defaultValue );\n\n\tconst setDebouncedInput = useDebounce( setDebouncedState, 250 );\n\n\tuseEffect( () => {\n\t\tsetDebouncedInput( input );\n\t}, [ input ] );\n\n\treturn [ input, setInput, debouncedInput ];\n}\n"]}
@@ -27,7 +27,7 @@ var _store = require("../../../store");
27
27
  const CUSTOM_CATEGORY = {
28
28
  name: 'custom',
29
29
  label: (0, _i18n.__)('My patterns'),
30
- description: (0, _i18n.__)('Custom patterns add by site users')
30
+ description: (0, _i18n.__)('Custom patterns added by site users')
31
31
  };
32
32
  /**
33
33
  * Retrieves the block patterns inserter state.
@@ -61,7 +61,8 @@ const usePatternsState = (onInsert, rootClientId) => {
61
61
  createSuccessNotice((0, _i18n.sprintf)(
62
62
  /* translators: %s: block pattern title. */
63
63
  (0, _i18n.__)('Block pattern "%s" inserted.'), pattern.title), {
64
- type: 'snackbar'
64
+ type: 'snackbar',
65
+ id: 'block-pattern-inserted-notice'
65
66
  });
66
67
  }, [createSuccessNotice, onInsert]);
67
68
  return [patterns, allCategories, onClickPattern];
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-patterns-state.js"],"names":["CUSTOM_CATEGORY","name","label","description","usePatternsState","onInsert","rootClientId","patternCategories","patterns","select","__experimentalGetAllowedPatterns","getSettings","blockEditorStore","__experimentalBlockPatternCategories","allCategories","createSuccessNotice","noticesStore","onClickPattern","pattern","blocks","map","block","title","type"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAGA,MAAMA,eAAe,GAAG;AACvBC,EAAAA,IAAI,EAAE,QADiB;AAEvBC,EAAAA,KAAK,EAAE,cAAI,aAAJ,CAFgB;AAGvBC,EAAAA,WAAW,EAAE,cAAI,mCAAJ;AAHU,CAAxB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,CAAEC,QAAF,EAAYC,YAAZ,KAA8B;AACtD,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAkC,qBACrCC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,gCAAF;AAAoCC,MAAAA;AAApC,QACLF,MAAM,CAAEG,YAAF,CADP;AAGA,WAAO;AACNJ,MAAAA,QAAQ,EAAEE,gCAAgC,CAAEJ,YAAF,CADpC;AAENC,MAAAA,iBAAiB,EAChBI,WAAW,GAAGE;AAHT,KAAP;AAKA,GAVsC,EAWvC,CAAEP,YAAF,CAXuC,CAAxC;AAcA,QAAMQ,aAAa,GAAG,sBACrB,MAAM,CAAE,GAAGP,iBAAL,EAAwBP,eAAxB,CADe,EAErB,CAAEO,iBAAF,CAFqB,CAAtB;AAKA,QAAM;AAAEQ,IAAAA;AAAF,MAA0B,uBAAaC,cAAb,CAAhC;AACA,QAAMC,cAAc,GAAG,0BACtB,CAAEC,OAAF,EAAWC,MAAX,KAAuB;AACtBd,IAAAA,QAAQ,CACP,CAAEc,MAAF,aAAEA,MAAF,cAAEA,MAAF,GAAY,EAAZ,EAAiBC,GAAjB,CAAwBC,KAAF,IAAa,wBAAYA,KAAZ,CAAnC,CADO,EAEPH,OAAO,CAACjB,IAFD,CAAR;AAIAc,IAAAA,mBAAmB,CAClB;AACC;AACA,kBAAI,8BAAJ,CAFD,EAGCG,OAAO,CAACI,KAHT,CADkB,EAMlB;AACCC,MAAAA,IAAI,EAAE;AADP,KANkB,CAAnB;AAUA,GAhBqB,EAiBtB,CAAER,mBAAF,EAAuBV,QAAvB,CAjBsB,CAAvB;AAoBA,SAAO,CAAEG,QAAF,EAAYM,aAAZ,EAA2BG,cAA3B,CAAP;AACA,CA1CD;;eA4Ceb,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\nconst CUSTOM_CATEGORY = {\n\tname: 'custom',\n\tlabel: __( 'My patterns' ),\n\tdescription: __( 'Custom patterns add by site users' ),\n};\n\n/**\n * Retrieves the block patterns inserter state.\n *\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @param {string=} rootClientId Insertion's root client ID.\n *\n * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)\n */\nconst usePatternsState = ( onInsert, rootClientId ) => {\n\tconst { patternCategories, patterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tpatterns: __experimentalGetAllowedPatterns( rootClientId ),\n\t\t\t\tpatternCategories:\n\t\t\t\t\tgetSettings().__experimentalBlockPatternCategories,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst allCategories = useMemo(\n\t\t() => [ ...patternCategories, CUSTOM_CATEGORY ],\n\t\t[ patternCategories ]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onClickPattern = useCallback(\n\t\t( pattern, blocks ) => {\n\t\t\tonInsert(\n\t\t\t\t( blocks ?? [] ).map( ( block ) => cloneBlock( block ) ),\n\t\t\t\tpattern.name\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: block pattern title. */\n\t\t\t\t\t__( 'Block pattern \"%s\" inserted.' ),\n\t\t\t\t\tpattern.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ createSuccessNotice, onInsert ]\n\t);\n\n\treturn [ patterns, allCategories, onClickPattern ];\n};\n\nexport default usePatternsState;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-patterns-state.js"],"names":["CUSTOM_CATEGORY","name","label","description","usePatternsState","onInsert","rootClientId","patternCategories","patterns","select","__experimentalGetAllowedPatterns","getSettings","blockEditorStore","__experimentalBlockPatternCategories","allCategories","createSuccessNotice","noticesStore","onClickPattern","pattern","blocks","map","block","title","type","id"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAZA;AACA;AACA;;AAOA;AACA;AACA;AAGA,MAAMA,eAAe,GAAG;AACvBC,EAAAA,IAAI,EAAE,QADiB;AAEvBC,EAAAA,KAAK,EAAE,cAAI,aAAJ,CAFgB;AAGvBC,EAAAA,WAAW,EAAE,cAAI,qCAAJ;AAHU,CAAxB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,CAAEC,QAAF,EAAYC,YAAZ,KAA8B;AACtD,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAkC,qBACrCC,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,gCAAF;AAAoCC,MAAAA;AAApC,QACLF,MAAM,CAAEG,YAAF,CADP;AAGA,WAAO;AACNJ,MAAAA,QAAQ,EAAEE,gCAAgC,CAAEJ,YAAF,CADpC;AAENC,MAAAA,iBAAiB,EAChBI,WAAW,GAAGE;AAHT,KAAP;AAKA,GAVsC,EAWvC,CAAEP,YAAF,CAXuC,CAAxC;AAcA,QAAMQ,aAAa,GAAG,sBACrB,MAAM,CAAE,GAAGP,iBAAL,EAAwBP,eAAxB,CADe,EAErB,CAAEO,iBAAF,CAFqB,CAAtB;AAKA,QAAM;AAAEQ,IAAAA;AAAF,MAA0B,uBAAaC,cAAb,CAAhC;AACA,QAAMC,cAAc,GAAG,0BACtB,CAAEC,OAAF,EAAWC,MAAX,KAAuB;AACtBd,IAAAA,QAAQ,CACP,CAAEc,MAAF,aAAEA,MAAF,cAAEA,MAAF,GAAY,EAAZ,EAAiBC,GAAjB,CAAwBC,KAAF,IAAa,wBAAYA,KAAZ,CAAnC,CADO,EAEPH,OAAO,CAACjB,IAFD,CAAR;AAIAc,IAAAA,mBAAmB,CAClB;AACC;AACA,kBAAI,8BAAJ,CAFD,EAGCG,OAAO,CAACI,KAHT,CADkB,EAMlB;AACCC,MAAAA,IAAI,EAAE,UADP;AAECC,MAAAA,EAAE,EAAE;AAFL,KANkB,CAAnB;AAWA,GAjBqB,EAkBtB,CAAET,mBAAF,EAAuBV,QAAvB,CAlBsB,CAAvB;AAqBA,SAAO,CAAEG,QAAF,EAAYM,aAAZ,EAA2BG,cAA3B,CAAP;AACA,CA3CD;;eA6Ceb,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\nconst CUSTOM_CATEGORY = {\n\tname: 'custom',\n\tlabel: __( 'My patterns' ),\n\tdescription: __( 'Custom patterns added by site users' ),\n};\n\n/**\n * Retrieves the block patterns inserter state.\n *\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @param {string=} rootClientId Insertion's root client ID.\n *\n * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)\n */\nconst usePatternsState = ( onInsert, rootClientId ) => {\n\tconst { patternCategories, patterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tpatterns: __experimentalGetAllowedPatterns( rootClientId ),\n\t\t\t\tpatternCategories:\n\t\t\t\t\tgetSettings().__experimentalBlockPatternCategories,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst allCategories = useMemo(\n\t\t() => [ ...patternCategories, CUSTOM_CATEGORY ],\n\t\t[ patternCategories ]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onClickPattern = useCallback(\n\t\t( pattern, blocks ) => {\n\t\t\tonInsert(\n\t\t\t\t( blocks ?? [] ).map( ( block ) => cloneBlock( block ) ),\n\t\t\t\tpattern.name\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: block pattern title. */\n\t\t\t\t\t__( 'Block pattern \"%s\" inserted.' ),\n\t\t\t\t\tpattern.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'block-pattern-inserted-notice',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ createSuccessNotice, onInsert ]\n\t);\n\n\treturn [ patterns, allCategories, onClickPattern ];\n};\n\nexport default usePatternsState;\n"]}
@@ -41,8 +41,9 @@ function ReusableBlocksList({
41
41
  const [items,,, onSelectItem] = (0, _useBlockTypesState.default)(rootClientId, onInsert);
42
42
  const filteredItems = (0, _element.useMemo)(() => {
43
43
  return items.filter(({
44
- category
45
- }) => category === 'reusable');
44
+ category,
45
+ syncStatus
46
+ }) => category === 'reusable' && syncStatus !== 'unsynced');
46
47
  }, [items]);
47
48
 
48
49
  if (filteredItems.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.js"],"names":["ReusableBlocksList","onHover","onInsert","rootClientId","items","onSelectItem","filteredItems","filter","category","length","ReusableBlocksTab","post_type"],"mappings":";;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAfA;AACA;AACA;;AAMA;AACA;AACA;AAOA,SAASA,kBAAT,CAA6B;AAAEC,EAAAA,OAAF;AAAWC,EAAAA,QAAX;AAAqBC,EAAAA;AAArB,CAA7B,EAAmE;AAClE,QAAM,CAAEC,KAAF,IAAaC,YAAb,IAA8B,iCACnCF,YADmC,EAEnCD,QAFmC,CAApC;AAKA,QAAMI,aAAa,GAAG,sBAAS,MAAM;AACpC,WAAOF,KAAK,CAACG,MAAN,CAAc,CAAE;AAAEC,MAAAA;AAAF,KAAF,KAAoBA,QAAQ,KAAK,UAA/C,CAAP;AACA,GAFqB,EAEnB,CAAEJ,KAAF,CAFmB,CAAtB;;AAIA,MAAKE,aAAa,CAACG,MAAd,KAAyB,CAA9B,EAAkC;AACjC,WAAO,4BAAC,kBAAD,OAAP;AACA;;AAED,SACC,4BAAC,cAAD;AAAe,IAAA,KAAK,EAAG,cAAI,iBAAJ;AAAvB,KACC,4BAAC,uBAAD;AACC,IAAA,KAAK,EAAGH,aADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGJ,OAHX;AAIC,IAAA,KAAK,EAAG,cAAI,iBAAJ;AAJT,IADD,CADD;AAUA,C,CAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASS,iBAAT,CAA4B;AAAEP,EAAAA,YAAF;AAAgBD,EAAAA,QAAhB;AAA0BD,EAAAA;AAA1B,CAA5B,EAAkE;AACxE,SACC,qDACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,gCAAD,OADD,CADD,EAIC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAGA,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGC;AAHhB,IAJD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,+CADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,IAAI,EAAG,uBAAc,UAAd,EAA0B;AAChCQ,MAAAA,SAAS,EAAE;AADqB,KAA1B;AAHR,KAOG,cAAI,oBAAJ,CAPH,CADD,CATD,CADD;AAuBA;;eAEcD,iB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport ReusableBlocksRenameHint from './reusable-block-rename-hint';\n\nfunction ReusableBlocksList( { onHover, onInsert, rootClientId } ) {\n\tconst [ items, , , onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst filteredItems = useMemo( () => {\n\t\treturn items.filter( ( { category } ) => category === 'reusable' );\n\t}, [ items ] );\n\n\tif ( filteredItems.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<InserterPanel title={ __( 'Synced patterns' ) }>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ filteredItems }\n\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Synced patterns' ) }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n}\n\n// The unwrapped component is only exported for use by unit tests.\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object} props Component props.\n * @param {?string} props.rootClientId Client id of block to insert into.\n * @param {Function} props.onInsert Callback to run when item is inserted.\n * @param {Function} props.onHover Callback to run when item is hovered.\n *\n * @return {WPComponent} The component.\n */\nexport function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"block-editor-inserter__hint\">\n\t\t\t\t<ReusableBlocksRenameHint />\n\t\t\t</div>\n\t\t\t<ReusableBlocksList\n\t\t\t\tonHover={ onHover }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t<div className=\"block-editor-inserter__manage-reusable-blocks-container\">\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__manage-reusable-blocks\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage my patterns' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.js"],"names":["ReusableBlocksList","onHover","onInsert","rootClientId","items","onSelectItem","filteredItems","filter","category","syncStatus","length","ReusableBlocksTab","post_type"],"mappings":";;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAfA;AACA;AACA;;AAMA;AACA;AACA;AAOA,SAASA,kBAAT,CAA6B;AAAEC,EAAAA,OAAF;AAAWC,EAAAA,QAAX;AAAqBC,EAAAA;AAArB,CAA7B,EAAmE;AAClE,QAAM,CAAEC,KAAF,IAAaC,YAAb,IAA8B,iCACnCF,YADmC,EAEnCD,QAFmC,CAApC;AAKA,QAAMI,aAAa,GAAG,sBAAS,MAAM;AACpC,WAAOF,KAAK,CAACG,MAAN,CACN,CAAE;AAAEC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,KAAF,KACCD,QAAQ,KAAK,UAAb,IAA2BC,UAAU,KAAK,UAFrC,CAAP;AAIA,GALqB,EAKnB,CAAEL,KAAF,CALmB,CAAtB;;AAOA,MAAKE,aAAa,CAACI,MAAd,KAAyB,CAA9B,EAAkC;AACjC,WAAO,4BAAC,kBAAD,OAAP;AACA;;AAED,SACC,4BAAC,cAAD;AAAe,IAAA,KAAK,EAAG,cAAI,iBAAJ;AAAvB,KACC,4BAAC,uBAAD;AACC,IAAA,KAAK,EAAGJ,aADT;AAEC,IAAA,QAAQ,EAAGD,YAFZ;AAGC,IAAA,OAAO,EAAGJ,OAHX;AAIC,IAAA,KAAK,EAAG,cAAI,iBAAJ;AAJT,IADD,CADD;AAUA,C,CAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASU,iBAAT,CAA4B;AAAER,EAAAA,YAAF;AAAgBD,EAAAA,QAAhB;AAA0BD,EAAAA;AAA1B,CAA5B,EAAkE;AACxE,SACC,qDACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,gCAAD,OADD,CADD,EAIC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAGA,OADX;AAEC,IAAA,QAAQ,EAAGC,QAFZ;AAGC,IAAA,YAAY,EAAGC;AAHhB,IAJD,EASC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAC,+CADX;AAEC,IAAA,OAAO,EAAC,WAFT;AAGC,IAAA,IAAI,EAAG,uBAAc,UAAd,EAA0B;AAChCS,MAAAA,SAAS,EAAE;AADqB,KAA1B;AAHR,KAOG,cAAI,oBAAJ,CAPH,CADD,CATD,CADD;AAuBA;;eAEcD,iB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport InserterPanel from './panel';\nimport InserterNoResults from './no-results';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport ReusableBlocksRenameHint from './reusable-block-rename-hint';\n\nfunction ReusableBlocksList( { onHover, onInsert, rootClientId } ) {\n\tconst [ items, , , onSelectItem ] = useBlockTypesState(\n\t\trootClientId,\n\t\tonInsert\n\t);\n\n\tconst filteredItems = useMemo( () => {\n\t\treturn items.filter(\n\t\t\t( { category, syncStatus } ) =>\n\t\t\t\tcategory === 'reusable' && syncStatus !== 'unsynced'\n\t\t);\n\t}, [ items ] );\n\n\tif ( filteredItems.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\treturn (\n\t\t<InserterPanel title={ __( 'Synced patterns' ) }>\n\t\t\t<BlockTypesList\n\t\t\t\titems={ filteredItems }\n\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\tonHover={ onHover }\n\t\t\t\tlabel={ __( 'Synced patterns' ) }\n\t\t\t/>\n\t\t</InserterPanel>\n\t);\n}\n\n// The unwrapped component is only exported for use by unit tests.\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object} props Component props.\n * @param {?string} props.rootClientId Client id of block to insert into.\n * @param {Function} props.onInsert Callback to run when item is inserted.\n * @param {Function} props.onHover Callback to run when item is hovered.\n *\n * @return {WPComponent} The component.\n */\nexport function ReusableBlocksTab( { rootClientId, onInsert, onHover } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"block-editor-inserter__hint\">\n\t\t\t\t<ReusableBlocksRenameHint />\n\t\t\t</div>\n\t\t\t<ReusableBlocksList\n\t\t\t\tonHover={ onHover }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t\t<div className=\"block-editor-inserter__manage-reusable-blocks-container\">\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-inserter__manage-reusable-blocks\"\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\t\t\tpost_type: 'wp_block',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Manage my patterns' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
@@ -51,7 +51,7 @@ function InserterListItem({
51
51
  const blocks = (0, _element.useMemo)(() => {
52
52
  return [(0, _blocks.createBlock)(item.name, item.initialAttributes, (0, _blocks.createBlocksFromInnerBlocksTemplate)(item.innerBlocks))];
53
53
  }, [item.name, item.initialAttributes, item.initialAttributes]);
54
- const isSynced = (0, _blocks.isReusableBlock)(item) || (0, _blocks.isTemplatePart)(item);
54
+ const isSynced = (0, _blocks.isReusableBlock)(item) && item.syncStatus !== 'unsynced' || (0, _blocks.isTemplatePart)(item);
55
55
  return (0, _element.createElement)(_inserterDraggableBlocks.default, {
56
56
  isEnabled: isDraggable && !item.disabled,
57
57
  blocks: blocks,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inserter-list-item/index.js"],"names":["InserterListItem","className","isFirst","item","onSelect","onHover","isDraggable","props","isDragging","itemIconStyle","icon","backgroundColor","background","color","foreground","blocks","name","initialAttributes","innerBlocks","isSynced","disabled","draggable","onDragStart","onDragEnd","event","current","isDisabled","preventDefault","metaKey","ctrlKey","keyCode","ENTER","title"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAMA;;AACA;;AAKA;;AACA;;AACA;;AAvBA;AACA;AACA;;AAGA;AACA;AACA;;AAWA;AACA;AACA;AAKA,SAASA,gBAAT,CAA2B;AAC1BC,EAAAA,SAD0B;AAE1BC,EAAAA,OAF0B;AAG1BC,EAAAA,IAH0B;AAI1BC,EAAAA,QAJ0B;AAK1BC,EAAAA,OAL0B;AAM1BC,EAAAA,WAN0B;AAO1B,KAAGC;AAPuB,CAA3B,EAQI;AACH,QAAMC,UAAU,GAAG,qBAAQ,KAAR,CAAnB;AACA,QAAMC,aAAa,GAAGN,IAAI,CAACO,IAAL,GACnB;AACAC,IAAAA,eAAe,EAAER,IAAI,CAACO,IAAL,CAAUE,UAD3B;AAEAC,IAAAA,KAAK,EAAEV,IAAI,CAACO,IAAL,CAAUI;AAFjB,GADmB,GAKnB,EALH;AAMA,QAAMC,MAAM,GAAG,sBAAS,MAAM;AAC7B,WAAO,CACN,yBACCZ,IAAI,CAACa,IADN,EAECb,IAAI,CAACc,iBAFN,EAGC,iDAAqCd,IAAI,CAACe,WAA1C,CAHD,CADM,CAAP;AAOA,GARc,EAQZ,CAAEf,IAAI,CAACa,IAAP,EAAab,IAAI,CAACc,iBAAlB,EAAqCd,IAAI,CAACc,iBAA1C,CARY,CAAf;AAUA,QAAME,QAAQ,GAAG,6BAAiBhB,IAAjB,KAA2B,4BAAgBA,IAAhB,CAA5C;AAEA,SACC,4BAAC,gCAAD;AACC,IAAA,SAAS,EAAGG,WAAW,IAAI,CAAEH,IAAI,CAACiB,QADnC;AAEC,IAAA,MAAM,EAAGL,MAFV;AAGC,IAAA,IAAI,EAAGZ,IAAI,CAACO;AAHb,KAKG,CAAE;AAAEW,IAAAA,SAAF;AAAaC,IAAAA,WAAb;AAA0BC,IAAAA;AAA1B,GAAF,KACD;AACC,IAAA,SAAS,EAAG,yBACX,0CADW,EAGX;AACC,mBAAaJ;AADd,KAHW,CADb;AAQC,IAAA,SAAS,EAAGE,SARb;AASC,IAAA,WAAW,EAAKG,KAAF,IAAa;AAC1BhB,MAAAA,UAAU,CAACiB,OAAX,GAAqB,IAArB;;AACA,UAAKH,WAAL,EAAmB;AAClBjB,QAAAA,OAAO,CAAE,IAAF,CAAP;AACAiB,QAAAA,WAAW,CAAEE,KAAF,CAAX;AACA;AACD,KAfF;AAgBC,IAAA,SAAS,EAAKA,KAAF,IAAa;AACxBhB,MAAAA,UAAU,CAACiB,OAAX,GAAqB,KAArB;;AACA,UAAKF,SAAL,EAAiB;AAChBA,QAAAA,SAAS,CAAEC,KAAF,CAAT;AACA;AACD;AArBF,KAuBC,4BAAC,oCAAD;AACC,IAAA,OAAO,EAAGtB,OADX;AAEC,IAAA,SAAS,EAAG,yBACX,qCADW,EAEXD,SAFW,CAFb;AAMC,IAAA,QAAQ,EAAGE,IAAI,CAACuB,UANjB;AAOC,IAAA,OAAO,EAAKF,KAAF,IAAa;AACtBA,MAAAA,KAAK,CAACG,cAAN;AACAvB,MAAAA,QAAQ,CACPD,IADO,EAEP,6BAAcqB,KAAK,CAACI,OAApB,GAA8BJ,KAAK,CAACK,OAF7B,CAAR;AAIAxB,MAAAA,OAAO,CAAE,IAAF,CAAP;AACA,KAdF;AAeC,IAAA,SAAS,EAAKmB,KAAF,IAAa;AACxB,YAAM;AAAEM,QAAAA;AAAF,UAAcN,KAApB;;AACA,UAAKM,OAAO,KAAKC,eAAjB,EAAyB;AACxBP,QAAAA,KAAK,CAACG,cAAN;AACAvB,QAAAA,QAAQ,CACPD,IADO,EAEP,6BAAcqB,KAAK,CAACI,OAApB,GAA8BJ,KAAK,CAACK,OAF7B,CAAR;AAIAxB,QAAAA,OAAO,CAAE,IAAF,CAAP;AACA;AACD,KAzBF;AA0BC,IAAA,YAAY,EAAG,MAAM;AACpB,UAAKG,UAAU,CAACiB,OAAhB,EAA0B;AACzB;AACA;;AACDpB,MAAAA,OAAO,CAAEF,IAAF,CAAP;AACA,KA/BF;AAgCC,IAAA,YAAY,EAAG,MAAME,OAAO,CAAE,IAAF,CAhC7B;AAAA,OAiCME;AAjCN,KAmCC;AACC,IAAA,SAAS,EAAC,0CADX;AAEC,IAAA,KAAK,EAAGE;AAFT,KAIC,4BAAC,kBAAD;AAAW,IAAA,IAAI,EAAGN,IAAI,CAACO,IAAvB;AAA8B,IAAA,UAAU;AAAxC,IAJD,CAnCD,EAyCC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,4BAAC,kCAAD;AAAU,IAAA,aAAa,EAAG;AAA1B,KACGP,IAAI,CAAC6B,KADR,CADD,CAzCD,CAvBD,CANF,CADD;AAiFA;;eAEc,mBAAMhC,gBAAN,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useRef, memo } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { ENTER, isAppleOS } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { InserterListboxItem } from '../inserter-listbox';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nfunction InserterListItem( {\n\tclassName,\n\tisFirst,\n\titem,\n\tonSelect,\n\tonHover,\n\tisDraggable,\n\t...props\n} ) {\n\tconst isDragging = useRef( false );\n\tconst itemIconStyle = item.icon\n\t\t? {\n\t\t\t\tbackgroundColor: item.icon.background,\n\t\t\t\tcolor: item.icon.foreground,\n\t\t }\n\t\t: {};\n\tconst blocks = useMemo( () => {\n\t\treturn [\n\t\t\tcreateBlock(\n\t\t\t\titem.name,\n\t\t\t\titem.initialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( item.innerBlocks )\n\t\t\t),\n\t\t];\n\t}, [ item.name, item.initialAttributes, item.initialAttributes ] );\n\n\tconst isSynced = isReusableBlock( item ) || isTemplatePart( item );\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable && ! item.disabled }\n\t\t\tblocks={ blocks }\n\t\t\ticon={ item.icon }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-types-list__list-item',\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-synced': isSynced,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tisDragging.current = true;\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tisDragging.current = false;\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<InserterListboxItem\n\t\t\t\t\t\tisFirst={ isFirst }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-types-list__item',\n\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdisabled={ item.isDisabled }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\tif ( isDragging.current ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( item );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseLeave={ () => onHover( null ) }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-block-types-list__item-icon\"\n\t\t\t\t\t\t\tstyle={ itemIconStyle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } showColors />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className=\"block-editor-block-types-list__item-title\">\n\t\t\t\t\t\t\t<Truncate numberOfLines={ 3 }>\n\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</InserterListboxItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nexport default memo( InserterListItem );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inserter-list-item/index.js"],"names":["InserterListItem","className","isFirst","item","onSelect","onHover","isDraggable","props","isDragging","itemIconStyle","icon","backgroundColor","background","color","foreground","blocks","name","initialAttributes","innerBlocks","isSynced","syncStatus","disabled","draggable","onDragStart","onDragEnd","event","current","isDisabled","preventDefault","metaKey","ctrlKey","keyCode","ENTER","title"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useRef, memo } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { ENTER, isAppleOS } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { InserterListboxItem } from '../inserter-listbox';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nfunction InserterListItem( {\n\tclassName,\n\tisFirst,\n\titem,\n\tonSelect,\n\tonHover,\n\tisDraggable,\n\t...props\n} ) {\n\tconst isDragging = useRef( false );\n\tconst itemIconStyle = item.icon\n\t\t? {\n\t\t\t\tbackgroundColor: item.icon.background,\n\t\t\t\tcolor: item.icon.foreground,\n\t\t }\n\t\t: {};\n\tconst blocks = useMemo( () => {\n\t\treturn [\n\t\t\tcreateBlock(\n\t\t\t\titem.name,\n\t\t\t\titem.initialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( item.innerBlocks )\n\t\t\t),\n\t\t];\n\t}, [ item.name, item.initialAttributes, item.initialAttributes ] );\n\n\tconst isSynced =\n\t\t( isReusableBlock( item ) && item.syncStatus !== 'unsynced' ) ||\n\t\tisTemplatePart( item );\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable && ! item.disabled }\n\t\t\tblocks={ blocks }\n\t\t\ticon={ item.icon }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-types-list__list-item',\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-synced': isSynced,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tisDragging.current = true;\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tisDragging.current = false;\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<InserterListboxItem\n\t\t\t\t\t\tisFirst={ isFirst }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-types-list__item',\n\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdisabled={ item.isDisabled }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\tif ( isDragging.current ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( item );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseLeave={ () => onHover( null ) }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-block-types-list__item-icon\"\n\t\t\t\t\t\t\tstyle={ itemIconStyle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } showColors />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className=\"block-editor-block-types-list__item-title\">\n\t\t\t\t\t\t\t<Truncate numberOfLines={ 3 }>\n\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</InserterListboxItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nexport default memo( InserterListItem );\n"]}