@wordpress/block-editor 13.0.0 → 13.1.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 (218) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-actions/index.js +4 -6
  3. package/build/components/block-actions/index.js.map +1 -1
  4. package/build/components/block-draggable/index.js +1 -1
  5. package/build/components/block-draggable/index.js.map +1 -1
  6. package/build/components/block-list/block.js +2 -2
  7. package/build/components/block-list/block.js.map +1 -1
  8. package/build/components/block-list/block.native.js +2 -2
  9. package/build/components/block-list/block.native.js.map +1 -1
  10. package/build/components/block-list/use-in-between-inserter.js +3 -1
  11. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  12. package/build/components/block-lock/use-block-lock.js +2 -4
  13. package/build/components/block-lock/use-block-lock.js.map +1 -1
  14. package/build/components/block-mover/index.js +1 -1
  15. package/build/components/block-mover/index.js.map +1 -1
  16. package/build/components/block-mover/index.native.js +1 -1
  17. package/build/components/block-mover/index.native.js.map +1 -1
  18. package/build/components/block-settings-menu/block-settings-dropdown.js +1 -1
  19. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  20. package/build/components/block-switcher/block-variation-transformations.js +1 -3
  21. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  22. package/build/components/block-switcher/index.js +13 -6
  23. package/build/components/block-switcher/index.js.map +1 -1
  24. package/build/components/block-toolbar/index.js +6 -10
  25. package/build/components/block-toolbar/index.js.map +1 -1
  26. package/build/components/block-tools/block-selection-button.js +2 -2
  27. package/build/components/block-tools/block-selection-button.js.map +1 -1
  28. package/build/components/button-block-appender/index.js +4 -1
  29. package/build/components/button-block-appender/index.js.map +1 -1
  30. package/build/components/date-format-picker/index.js +18 -10
  31. package/build/components/date-format-picker/index.js.map +1 -1
  32. package/build/components/global-styles/background-panel.js +3 -3
  33. package/build/components/global-styles/background-panel.js.map +1 -1
  34. package/build/components/global-styles/hooks.js +2 -2
  35. package/build/components/global-styles/hooks.js.map +1 -1
  36. package/build/components/global-styles/use-global-styles-output.js +14 -1
  37. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  38. package/build/components/inserter/block-types-tab.js +3 -3
  39. package/build/components/inserter/block-types-tab.js.map +1 -1
  40. package/build/components/inserter/block-types-tab.native.js +1 -1
  41. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  42. package/build/components/inserter/hooks/use-block-types-state.js +3 -2
  43. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  44. package/build/components/link-control/link-preview.js +13 -1
  45. package/build/components/link-control/link-preview.js.map +1 -1
  46. package/build/components/link-control/search-input.js +1 -1
  47. package/build/components/link-control/search-input.js.map +1 -1
  48. package/build/components/list-view/block.js +7 -6
  49. package/build/components/list-view/block.js.map +1 -1
  50. package/build/components/list-view/branch.js +3 -1
  51. package/build/components/list-view/branch.js.map +1 -1
  52. package/build/components/list-view/use-clipboard-handler.js +1 -1
  53. package/build/components/list-view/use-clipboard-handler.js.map +1 -1
  54. package/build/components/provider/use-block-sync.js +1 -7
  55. package/build/components/provider/use-block-sync.js.map +1 -1
  56. package/build/components/rich-text/index.native.js +4 -0
  57. package/build/components/rich-text/index.native.js.map +1 -1
  58. package/build/components/rich-text/native/index.native.js +6 -4
  59. package/build/components/rich-text/native/index.native.js.map +1 -1
  60. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +9 -12
  61. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  62. package/build/components/use-block-commands/index.js +3 -3
  63. package/build/components/use-block-commands/index.js.map +1 -1
  64. package/build/components/writing-flow/use-clipboard-handler.js +22 -3
  65. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  66. package/build/hooks/block-bindings.js +19 -16
  67. package/build/hooks/block-bindings.js.map +1 -1
  68. package/build/hooks/block-style-variation.js +2 -2
  69. package/build/hooks/block-style-variation.js.map +1 -1
  70. package/build/hooks/use-bindings-attributes.js +7 -2
  71. package/build/hooks/use-bindings-attributes.js.map +1 -1
  72. package/build/private-apis.js +3 -1
  73. package/build/private-apis.js.map +1 -1
  74. package/build/store/actions.js +4 -4
  75. package/build/store/actions.js.map +1 -1
  76. package/build/store/private-actions.js +1 -36
  77. package/build/store/private-actions.js.map +1 -1
  78. package/build/store/selectors.js +19 -20
  79. package/build/store/selectors.js.map +1 -1
  80. package/build-module/components/block-actions/index.js +4 -6
  81. package/build-module/components/block-actions/index.js.map +1 -1
  82. package/build-module/components/block-draggable/index.js +1 -1
  83. package/build-module/components/block-draggable/index.js.map +1 -1
  84. package/build-module/components/block-list/block.js +2 -2
  85. package/build-module/components/block-list/block.js.map +1 -1
  86. package/build-module/components/block-list/block.native.js +2 -2
  87. package/build-module/components/block-list/block.native.js.map +1 -1
  88. package/build-module/components/block-list/use-in-between-inserter.js +3 -1
  89. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  90. package/build-module/components/block-lock/use-block-lock.js +2 -4
  91. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  92. package/build-module/components/block-mover/index.js +1 -1
  93. package/build-module/components/block-mover/index.js.map +1 -1
  94. package/build-module/components/block-mover/index.native.js +1 -1
  95. package/build-module/components/block-mover/index.native.js.map +1 -1
  96. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -1
  97. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  98. package/build-module/components/block-switcher/block-variation-transformations.js +1 -3
  99. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  100. package/build-module/components/block-switcher/index.js +15 -8
  101. package/build-module/components/block-switcher/index.js.map +1 -1
  102. package/build-module/components/block-toolbar/index.js +7 -10
  103. package/build-module/components/block-toolbar/index.js.map +1 -1
  104. package/build-module/components/block-tools/block-selection-button.js +2 -2
  105. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  106. package/build-module/components/button-block-appender/index.js +4 -1
  107. package/build-module/components/button-block-appender/index.js.map +1 -1
  108. package/build-module/components/date-format-picker/index.js +19 -11
  109. package/build-module/components/date-format-picker/index.js.map +1 -1
  110. package/build-module/components/global-styles/background-panel.js +4 -4
  111. package/build-module/components/global-styles/background-panel.js.map +1 -1
  112. package/build-module/components/global-styles/hooks.js +2 -2
  113. package/build-module/components/global-styles/hooks.js.map +1 -1
  114. package/build-module/components/global-styles/use-global-styles-output.js +14 -1
  115. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  116. package/build-module/components/inserter/block-types-tab.js +3 -3
  117. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  118. package/build-module/components/inserter/block-types-tab.native.js +1 -1
  119. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  120. package/build-module/components/inserter/hooks/use-block-types-state.js +4 -3
  121. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  122. package/build-module/components/link-control/link-preview.js +15 -1
  123. package/build-module/components/link-control/link-preview.js.map +1 -1
  124. package/build-module/components/link-control/search-input.js +1 -1
  125. package/build-module/components/link-control/search-input.js.map +1 -1
  126. package/build-module/components/list-view/block.js +7 -6
  127. package/build-module/components/list-view/block.js.map +1 -1
  128. package/build-module/components/list-view/branch.js +3 -1
  129. package/build-module/components/list-view/branch.js.map +1 -1
  130. package/build-module/components/list-view/use-clipboard-handler.js +1 -1
  131. package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
  132. package/build-module/components/provider/use-block-sync.js +1 -7
  133. package/build-module/components/provider/use-block-sync.js.map +1 -1
  134. package/build-module/components/rich-text/index.native.js +4 -0
  135. package/build-module/components/rich-text/index.native.js.map +1 -1
  136. package/build-module/components/rich-text/native/index.native.js +6 -4
  137. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  138. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +9 -12
  139. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  140. package/build-module/components/use-block-commands/index.js +3 -3
  141. package/build-module/components/use-block-commands/index.js.map +1 -1
  142. package/build-module/components/writing-flow/use-clipboard-handler.js +23 -4
  143. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  144. package/build-module/hooks/block-bindings.js +20 -17
  145. package/build-module/hooks/block-bindings.js.map +1 -1
  146. package/build-module/hooks/block-style-variation.js +2 -2
  147. package/build-module/hooks/block-style-variation.js.map +1 -1
  148. package/build-module/hooks/use-bindings-attributes.js +7 -2
  149. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  150. package/build-module/private-apis.js +3 -1
  151. package/build-module/private-apis.js.map +1 -1
  152. package/build-module/store/actions.js +4 -4
  153. package/build-module/store/actions.js.map +1 -1
  154. package/build-module/store/private-actions.js +1 -35
  155. package/build-module/store/private-actions.js.map +1 -1
  156. package/build-module/store/selectors.js +19 -20
  157. package/build-module/store/selectors.js.map +1 -1
  158. package/build-style/content-rtl.css +1 -1
  159. package/build-style/content.css +1 -1
  160. package/build-style/style-rtl.css +13 -17
  161. package/build-style/style.css +13 -17
  162. package/package.json +31 -31
  163. package/src/components/block-actions/index.js +3 -7
  164. package/src/components/block-canvas/style.scss +2 -2
  165. package/src/components/block-draggable/index.js +1 -1
  166. package/src/components/block-list/block.js +2 -2
  167. package/src/components/block-list/block.native.js +2 -2
  168. package/src/components/block-list/use-in-between-inserter.js +3 -1
  169. package/src/components/block-lock/use-block-lock.js +2 -4
  170. package/src/components/block-mover/index.js +1 -1
  171. package/src/components/block-mover/index.native.js +1 -1
  172. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -1
  173. package/src/components/block-switcher/block-variation-transformations.js +4 -9
  174. package/src/components/block-switcher/index.js +27 -12
  175. package/src/components/block-switcher/style.scss +5 -0
  176. package/src/components/block-toolbar/index.js +7 -9
  177. package/src/components/block-toolbar/style.scss +9 -6
  178. package/src/components/block-tools/block-selection-button.js +2 -2
  179. package/src/components/block-variation-picker/content.scss +1 -1
  180. package/src/components/button-block-appender/index.js +2 -0
  181. package/src/components/date-format-picker/index.js +25 -13
  182. package/src/components/global-styles/background-panel.js +13 -4
  183. package/src/components/global-styles/hooks.js +2 -4
  184. package/src/components/global-styles/use-global-styles-output.js +24 -4
  185. package/src/components/inserter/block-types-tab.js +0 -1
  186. package/src/components/inserter/block-types-tab.native.js +2 -1
  187. package/src/components/inserter/hooks/use-block-types-state.js +10 -5
  188. package/src/components/inserter/style.scss +4 -0
  189. package/src/components/link-control/link-preview.js +19 -1
  190. package/src/components/link-control/search-input.js +1 -1
  191. package/src/components/list-view/block.js +7 -7
  192. package/src/components/list-view/branch.js +5 -1
  193. package/src/components/list-view/use-clipboard-handler.js +1 -6
  194. package/src/components/provider/use-block-sync.js +0 -6
  195. package/src/components/rich-text/index.native.js +4 -0
  196. package/src/components/rich-text/native/index.native.js +3 -1
  197. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -4
  198. package/src/components/use-block-commands/index.js +3 -4
  199. package/src/components/writing-flow/use-clipboard-handler.js +29 -7
  200. package/src/hooks/block-bindings.js +28 -22
  201. package/src/hooks/block-style-variation.js +2 -2
  202. package/src/hooks/use-bindings-attributes.js +11 -1
  203. package/src/private-apis.js +2 -0
  204. package/src/store/actions.js +4 -10
  205. package/src/store/private-actions.js +1 -34
  206. package/src/store/selectors.js +22 -27
  207. package/src/style.scss +0 -1
  208. package/build/components/block-bindings-toolbar-indicator/index.js +0 -106
  209. package/build/components/block-bindings-toolbar-indicator/index.js.map +0 -1
  210. package/build/store/undo-ignore.js +0 -11
  211. package/build/store/undo-ignore.js.map +0 -1
  212. package/build-module/components/block-bindings-toolbar-indicator/index.js +0 -99
  213. package/build-module/components/block-bindings-toolbar-indicator/index.js.map +0 -1
  214. package/build-module/store/undo-ignore.js +0 -5
  215. package/build-module/store/undo-ignore.js.map +0 -1
  216. package/src/components/block-bindings-toolbar-indicator/index.js +0 -135
  217. package/src/components/block-bindings-toolbar-indicator/style.scss +0 -12
  218. package/src/store/undo-ignore.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_date","_element","_components","_jsxRuntime","EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","jsxs","className","children","jsx","VisuallyHidden","as","__","ToggleControl","__nextHasNoMarginBottom","label","help","dateI18n","checked","NonDefaultControls","_suggestedOptions$fin","suggestedFormats","Set","_x","suggestedOptions","map","suggestedFormat","index","key","name","customOption","__experimentalHint","isCustom","setIsCustom","useState","includes","__experimentalVStack","CustomSelectControl","options","value","find","option","selectedItem","TextControl","hideLabelFromVision","createInterpolateElement","Link","ExternalLink","href"],"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\tEXAMPLE_DATE\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t'Y-m-d',\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/customize-date-and-time-format/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_date","_element","_components","_jsxRuntime","exampleDate","Date","setDate","setMonth","getMonth","DateFormatPicker","format","defaultFormat","onChange","jsxs","className","children","jsx","VisuallyHidden","as","__","ToggleControl","__nextHasNoMarginBottom","label","help","dateI18n","checked","NonDefaultControls","_suggestedOptions$fin","suggestedFormats","Set","_x","suggestedOptions","map","suggestedFormat","index","key","name","humanTimeDiff","customOption","__experimentalHint","isCustom","setIsCustom","useState","some","option","__experimentalVStack","CustomSelectControl","options","value","find","selectedItem","TextControl","hideLabelFromVision","createInterpolateElement","Link","ExternalLink","href"],"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n, humanTimeDiff } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we illustrate the different formats in the dropdown properly, show a date that is\n// somwhat recent, has a day greater than 12, and a month with more than three letters.\nconst exampleDate = new Date();\nexampleDate.setDate( 20 );\nexampleDate.setMonth( exampleDate.getMonth() - 3 );\nif ( exampleDate.getMonth() === 4 ) {\n\t// May has three letters, so use March.\n\texampleDate.setMonth( 3 );\n}\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\texampleDate\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t'Y-m-d',\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t/* translators: See https://www.php.net/manual/datetime.format.php */\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = [\n\t\t...suggestedFormats.map( ( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, exampleDate ),\n\t\t\tformat: suggestedFormat,\n\t\t} ) ),\n\t\t{\n\t\t\tkey: 'human-diff',\n\t\t\tname: humanTimeDiff( exampleDate ),\n\t\t\tformat: 'human-diff',\n\t\t},\n\t];\n\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() =>\n\t\t\t!! format &&\n\t\t\t! suggestedOptions.some( ( option ) => option.format === format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/customize-date-and-time-format/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -417,13 +417,13 @@ function BackgroundSizeToolsPanelItem({
417
417
  help: backgroundSizeHelpText(sizeValue || defaultValues?.backgroundSize),
418
418
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
419
419
  value: "cover",
420
- label: (0, _i18n.__)('Cover')
420
+ label: (0, _i18n._x)('Cover', 'Size option for background image control')
421
421
  }, "cover"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
422
422
  value: "contain",
423
- label: (0, _i18n.__)('Contain')
423
+ label: (0, _i18n._x)('Contain', 'Size option for background image control')
424
424
  }, "contain"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
425
425
  value: "auto",
426
- label: (0, _i18n.__)('Tile')
426
+ label: (0, _i18n._x)('Tile', 'Size option for background image control')
427
427
  }, "tile")]
428
428
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
429
429
  justify: "flex-start",
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_object","_mediaReplaceFlow","_store","_themeFileUriUtils","_jsxRuntime","IMAGE_BACKGROUND_TYPE","DEFAULT_CONTROLS","backgroundImage","backgroundSize","useHasBackgroundPanel","settings","Platform","OS","background","hasBackgroundSizeValue","style","backgroundPosition","undefined","hasBackgroundImageValue","id","url","backgroundSizeHelpText","value","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreview","label","filename","imgUrl","imgLabel","getFilename","jsx","__experimentalItemGroup","as","children","jsxs","__experimentalHStack","justify","className","clsx","FlexItem","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","BackgroundImageToolsPanelItem","panelId","isShownByDefault","onChange","inheritedValue","themeFileURIs","mediaUpload","useSelect","select","blockEditorStore","getSettings","title","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","positionValue","source","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","resetAllFilter","useCallback","previousValue","hasValue","closeAndFocus","toggleButton","focus","tabbable","find","current","click","onRemove","canRemove","__experimentalToolsPanelItem","onDeselect","ref","default","mediaId","mediaURL","accept","onSelect","name","getResolvedThemeFilePath","variant","MenuItem","onClick","DropZone","BackgroundSizeToolsPanelItem","defaultValues","repeatValue","backgroundRepeat","imageValue","currentValueForToggle","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","resetBackgroundSize","__experimentalVStack","ToolsPanelItem","spacing","FocalPointPicker","__next40pxDefaultSize","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","__experimentalUnitControl","__unstableInputWidth","min","placeholder","ToggleControl","checked","BackgroundToolsPanel","headerLabel","resetAll","updatedValue","ToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","BackgroundPanel","Wrapper","defaultControls","shouldShowBackgroundSizeControls"],"sources":["@wordpress/block-editor/src/components/global-styles/background-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useCallback, Platform, useRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\nimport { getResolvedThemeFilePath } from './theme-file-uri-utils';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\nconst DEFAULT_CONTROLS = {\n\tbackgroundImage: true,\n\tbackgroundSize: false,\n};\n\n/**\n * Checks site settings to see if the background panel may be used.\n * `settings.background.backgroundSize` exists also,\n * but can only be used if settings?.background?.backgroundImage is `true`.\n *\n * @param {Object} settings Site settings\n * @return {boolean} Whether site settings has activated background panel.\n */\nexport function useHasBackgroundPanel( settings ) {\n\treturn Platform.OS === 'web' && settings?.background?.backgroundImage;\n}\n\n/**\n * Checks if there is a current value in the background size block support\n * attributes. Background size values include background size as well\n * as background position.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background size value set.\n */\nexport function hasBackgroundSizeValue( style ) {\n\treturn (\n\t\tstyle?.background?.backgroundPosition !== undefined ||\n\t\tstyle?.background?.backgroundSize !== undefined\n\t);\n}\n\n/**\n * Checks if there is a current value in the background image block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background image value set.\n */\nexport function hasBackgroundImageValue( style ) {\n\treturn (\n\t\t!! style?.background?.backgroundImage?.id ||\n\t\t// Supports url() string values in theme.json.\n\t\t'string' === typeof style?.background?.backgroundImage ||\n\t\t!! style?.background?.backgroundImage?.url\n\t);\n}\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreview( { label, filename, url: imgUrl } ) {\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<ItemGroup as=\"span\">\n\t\t\t<HStack justify={ imgUrl ? 'flex-start' : 'center' } as=\"span\">\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles-background-panel__inspector-image-indicator-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-image': imgUrl,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ imgLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || imgLabel\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundImageToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tthemeFileURIs,\n} ) {\n\tconst mediaUpload = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().mediaUpload,\n\t\t[]\n\t);\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\n\tconst replaceContainerRef = useRef();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue = style?.background?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\treplaceContainerRef.current\n\t\t);\n\t\t// Focus the toggle button and close the dropdown menu.\n\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\ttoggleButton?.focus();\n\t\ttoggleButton?.click();\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background', 'backgroundImage' ], 'none' )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Background image' ) }\n\t\t\tonDeselect={ resetBackgroundImage }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-container\"\n\t\t\t\tref={ replaceContainerRef }\n\t\t\t>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={\n\t\t\t\t\t\t<InspectorImagePreview\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\t\turl={ getResolvedThemeFilePath(\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\tthemeFileURIs\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasValue && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\t\tresetBackgroundImage();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset ' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t<DropZone\n\t\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction BackgroundSizeToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n\tthemeFileURIs,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\n\t/*\n\t * An `undefined` value is replaced with any supplied\n\t * default control value for the toggle group control.\n\t * An empty string is treated as `auto` - this allows a user\n\t * to select \"Size\" and then enter a custom value, with an\n\t * empty value being treated as `auto`.\n\t */\n\tconst currentValueForToggle =\n\t\t( sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ) ||\n\t\tsizeValue === ''\n\t\t\t? 'auto'\n\t\t\t: sizeValue || defaultValues?.backgroundSize;\n\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst hasValue = hasBackgroundSizeValue( style );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...previousValue.style?.background,\n\t\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\t\tbackgroundSize: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst resetBackgroundSize = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: undefined,\n\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\tbackgroundSize: undefined,\n\t\t\t} )\n\t\t);\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Size' ) }\n\t\t\tonDeselect={ resetBackgroundSize }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<FocalPointPicker\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\turl={ getResolvedThemeFilePath( imageValue, themeFileURIs ) }\n\t\t\t\tvalue={ backgroundPositionToCoords( positionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ __( 'Cover' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ __( 'Contain' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ __( 'Tile' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t{ currentValueForToggle !== undefined &&\n\t\t\t\tcurrentValueForToggle !== 'cover' &&\n\t\t\t\tcurrentValueForToggle !== 'contain' ? (\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t{ currentValueForToggle !== 'cover' && (\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction BackgroundToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\theaderLabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanel }\n\t\t\tspacing={ 4 }\n\t\t\tlabel={ headerLabel }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundPanel( {\n\tas: Wrapper = BackgroundToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tdefaultValues = {},\n\theaderLabel = __( 'Background image' ),\n\tthemeFileURIs,\n} ) {\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tbackground: {},\n\t\t};\n\t}, [] );\n\tconst shouldShowBackgroundSizeControls =\n\t\tsettings?.background?.backgroundSize;\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\theaderLabel={ headerLabel }\n\t\t>\n\t\t\t<BackgroundImageToolsPanelItem\n\t\t\t\tonChange={ onChange }\n\t\t\t\tpanelId={ panelId }\n\t\t\t\tisShownByDefault={ defaultControls.backgroundImage }\n\t\t\t\tstyle={ value }\n\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t\tthemeFileURIs={ themeFileURIs }\n\t\t\t/>\n\t\t\t{ shouldShowBackgroundSizeControls && (\n\t\t\t\t<BackgroundSizeToolsPanelItem\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={ defaultControls.backgroundSize }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tthemeFileURIs={ themeFileURIs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_object","_mediaReplaceFlow","_store","_themeFileUriUtils","_jsxRuntime","IMAGE_BACKGROUND_TYPE","DEFAULT_CONTROLS","backgroundImage","backgroundSize","useHasBackgroundPanel","settings","Platform","OS","background","hasBackgroundSizeValue","style","backgroundPosition","undefined","hasBackgroundImageValue","id","url","backgroundSizeHelpText","value","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreview","label","filename","imgUrl","imgLabel","getFilename","jsx","__experimentalItemGroup","as","children","jsxs","__experimentalHStack","justify","className","clsx","FlexItem","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","BackgroundImageToolsPanelItem","panelId","isShownByDefault","onChange","inheritedValue","themeFileURIs","mediaUpload","useSelect","select","blockEditorStore","getSettings","title","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","positionValue","source","onFilesDrop","filesList","allowedTypes","onFileChange","image","onError","resetAllFilter","useCallback","previousValue","hasValue","closeAndFocus","toggleButton","focus","tabbable","find","current","click","onRemove","canRemove","__experimentalToolsPanelItem","onDeselect","ref","default","mediaId","mediaURL","accept","onSelect","name","getResolvedThemeFilePath","variant","MenuItem","onClick","DropZone","BackgroundSizeToolsPanelItem","defaultValues","repeatValue","backgroundRepeat","imageValue","currentValueForToggle","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","resetBackgroundSize","__experimentalVStack","ToolsPanelItem","spacing","FocalPointPicker","__next40pxDefaultSize","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","ToggleControl","checked","BackgroundToolsPanel","headerLabel","resetAll","updatedValue","ToolsPanel","dropdownMenuProps","TOOLSPANEL_DROPDOWNMENU_PROPS","BackgroundPanel","Wrapper","defaultControls","shouldShowBackgroundSizeControls"],"sources":["@wordpress/block-editor/src/components/global-styles/background-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useCallback, Platform, useRef } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\nimport { getResolvedThemeFilePath } from './theme-file-uri-utils';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\nconst DEFAULT_CONTROLS = {\n\tbackgroundImage: true,\n\tbackgroundSize: false,\n};\n\n/**\n * Checks site settings to see if the background panel may be used.\n * `settings.background.backgroundSize` exists also,\n * but can only be used if settings?.background?.backgroundImage is `true`.\n *\n * @param {Object} settings Site settings\n * @return {boolean} Whether site settings has activated background panel.\n */\nexport function useHasBackgroundPanel( settings ) {\n\treturn Platform.OS === 'web' && settings?.background?.backgroundImage;\n}\n\n/**\n * Checks if there is a current value in the background size block support\n * attributes. Background size values include background size as well\n * as background position.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background size value set.\n */\nexport function hasBackgroundSizeValue( style ) {\n\treturn (\n\t\tstyle?.background?.backgroundPosition !== undefined ||\n\t\tstyle?.background?.backgroundSize !== undefined\n\t);\n}\n\n/**\n * Checks if there is a current value in the background image block support\n * attributes.\n *\n * @param {Object} style Style attribute.\n * @return {boolean} Whether the block has a background image value set.\n */\nexport function hasBackgroundImageValue( style ) {\n\treturn (\n\t\t!! style?.background?.backgroundImage?.id ||\n\t\t// Supports url() string values in theme.json.\n\t\t'string' === typeof style?.background?.backgroundImage ||\n\t\t!! style?.background?.backgroundImage?.url\n\t);\n}\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreview( { label, filename, url: imgUrl } ) {\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<ItemGroup as=\"span\">\n\t\t\t<HStack justify={ imgUrl ? 'flex-start' : 'center' } as=\"span\">\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-global-styles-background-panel__inspector-image-indicator-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-image': imgUrl,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ imgLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || imgLabel\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\nfunction BackgroundImageToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tthemeFileURIs,\n} ) {\n\tconst mediaUpload = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().mediaUpload,\n\t\t[]\n\t);\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\n\tconst replaceContainerRef = useRef();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue = style?.background?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: undefined,\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\treplaceContainerRef.current\n\t\t);\n\t\t// Focus the toggle button and close the dropdown menu.\n\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\ttoggleButton?.focus();\n\t\ttoggleButton?.click();\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background', 'backgroundImage' ], 'none' )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Background image' ) }\n\t\t\tonDeselect={ resetBackgroundImage }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-container\"\n\t\t\t\tref={ replaceContainerRef }\n\t\t\t>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tname={\n\t\t\t\t\t\t<InspectorImagePreview\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\t\turl={ getResolvedThemeFilePath(\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\tthemeFileURIs\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ hasValue && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\t\tresetBackgroundImage();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset ' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t\t<DropZone\n\t\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction BackgroundSizeToolsPanelItem( {\n\tpanelId,\n\tisShownByDefault,\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n\tthemeFileURIs,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\n\t/*\n\t * An `undefined` value is replaced with any supplied\n\t * default control value for the toggle group control.\n\t * An empty string is treated as `auto` - this allows a user\n\t * to select \"Size\" and then enter a custom value, with an\n\t * empty value being treated as `auto`.\n\t */\n\tconst currentValueForToggle =\n\t\t( sizeValue !== undefined &&\n\t\t\tsizeValue !== 'cover' &&\n\t\t\tsizeValue !== 'contain' ) ||\n\t\tsizeValue === ''\n\t\t\t? 'auto'\n\t\t\t: sizeValue || defaultValues?.backgroundSize;\n\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst hasValue = hasBackgroundSizeValue( style );\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tstyle: {\n\t\t\t\t...previousValue.style,\n\t\t\t\tbackground: {\n\t\t\t\t\t...previousValue.style?.background,\n\t\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\t\tbackgroundSize: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}, [] );\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst resetBackgroundSize = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: undefined,\n\t\t\t\tbackgroundRepeat: undefined,\n\t\t\t\tbackgroundSize: undefined,\n\t\t\t} )\n\t\t);\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\tclassName=\"single-column\"\n\t\t\thasValue={ () => hasValue }\n\t\t\tlabel={ __( 'Size' ) }\n\t\t\tonDeselect={ resetBackgroundSize }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<FocalPointPicker\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\turl={ getResolvedThemeFilePath( imageValue, themeFileURIs ) }\n\t\t\t\tvalue={ backgroundPositionToCoords( positionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t{ currentValueForToggle !== undefined &&\n\t\t\t\tcurrentValueForToggle !== 'cover' &&\n\t\t\t\tcurrentValueForToggle !== 'contain' ? (\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t{ currentValueForToggle !== 'cover' && (\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction BackgroundToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\theaderLabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanel }\n\t\t\tspacing={ 4 }\n\t\t\tlabel={ headerLabel }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundPanel( {\n\tas: Wrapper = BackgroundToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tdefaultControls = DEFAULT_CONTROLS,\n\tdefaultValues = {},\n\theaderLabel = __( 'Background image' ),\n\tthemeFileURIs,\n} ) {\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tbackground: {},\n\t\t};\n\t}, [] );\n\tconst shouldShowBackgroundSizeControls =\n\t\tsettings?.background?.backgroundSize;\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\theaderLabel={ headerLabel }\n\t\t>\n\t\t\t<BackgroundImageToolsPanelItem\n\t\t\t\tonChange={ onChange }\n\t\t\t\tpanelId={ panelId }\n\t\t\t\tisShownByDefault={ defaultControls.backgroundImage }\n\t\t\t\tstyle={ value }\n\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t\tthemeFileURIs={ themeFileURIs }\n\t\t\t/>\n\t\t\t{ shouldShowBackgroundSizeControls && (\n\t\t\t\t<BackgroundSizeToolsPanelItem\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t\tisShownByDefault={ defaultControls.backgroundSize }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ inheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tthemeFileURIs={ themeFileURIs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -43,7 +43,7 @@ const useGlobalStylesReset = () => {
43
43
  setUserConfig
44
44
  } = (0, _element.useContext)(_context.GlobalStylesContext);
45
45
  const canReset = !!config && !(0, _es.default)(config, EMPTY_CONFIG);
46
- return [canReset, (0, _element.useCallback)(() => setUserConfig(() => EMPTY_CONFIG), [setUserConfig])];
46
+ return [canReset, (0, _element.useCallback)(() => setUserConfig(EMPTY_CONFIG), [setUserConfig])];
47
47
  };
48
48
  exports.useGlobalStylesReset = useGlobalStylesReset;
49
49
  function useGlobalSetting(propertyPath, blockName, source = 'all') {
@@ -178,7 +178,7 @@ function useSettingsForBlockElement(parentSettings, blockName, element) {
178
178
  updatedSettings.color.defaultDuotone = false;
179
179
  updatedSettings.color.customDuotone = false;
180
180
  }
181
- ['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textTransform', 'textDecoration', 'writingMode'].forEach(key => {
181
+ ['lineHeight', 'fontStyle', 'fontWeight', 'letterSpacing', 'textAlign', 'textTransform', 'textDecoration', 'writingMode'].forEach(key => {
182
182
  if (!supportedStyles.includes(key)) {
183
183
  updatedSettings.typography = {
184
184
  ...updatedSettings.typography,
@@ -1 +1 @@
1
- {"version":3,"names":["_es","_interopRequireDefault","require","_element","_data","_blocks","_i18n","_utils","_object","_context","_lockUnlock","EMPTY_CONFIG","settings","styles","VALID_SETTINGS","useGlobalStylesReset","user","config","setUserConfig","useContext","GlobalStylesContext","canReset","fastDeepEqual","useCallback","exports","useGlobalSetting","propertyPath","blockName","source","configs","appendedBlockPath","appendedPropertyPath","contextualPath","globalPath","sourceKey","settingValue","useMemo","configToUse","_getValueFromObjectPa","getValueFromObjectPath","result","forEach","setting","_getValueFromObjectPa2","value","undefined","setImmutably","split","setSetting","newValue","currentConfig","useGlobalStyle","path","shouldDecodeEncode","merged","mergedConfig","base","baseConfig","userConfig","appendedPath","finalPath","setStyle","getPresetVariableFromValue","rawResult","getValueFromVariable","useGlobalStyleLinks","_links","useSettingsForBlockElement","parentSettings","element","supportedStyles","supports","useSelect","select","unlock","blocksStore","getSupportedStyles","getBlockType","updatedSettings","includes","typography","fontSizes","customFontSize","defaultFontSizes","fontFamilies","color","text","background","button","heading","link","caption","gradients","customGradient","defaultDuotone","customDuotone","key","textColumns","layout","spacing","sides","Array","isArray","length","dimensions","charAt","toUpperCase","slice","border","shadow","textAlign","useColorsPerOrigin","customColors","palette","custom","themeColors","theme","defaultColors","default","shouldDisplayDefaultColors","defaultPalette","push","name","_x","colors","useGradientsPerOrigin","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients"],"sources":["@wordpress/block-editor/src/components/global-styles/hooks.js"],"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'background.backgroundImage',\n\t'background.backgroundRepeat',\n\t'background.backgroundSize',\n\t'background.backgroundPosition',\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.aspectRatio',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'lightbox.enabled',\n\t'lightbox.allowEditing',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.defaultSpacingSizes',\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.defaultFontSizes',\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.textAlign',\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 !== undefined ) {\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\nexport function useGlobalStyleLinks() {\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\treturn mergedConfig?._links;\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\tdefaultFontSizes: 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\t[ 'aspectRatio', 'minHeight' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\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\t// Text alignment is only available for blocks.\n\t\tif ( element ) {\n\t\t\tupdatedSettings.typography.textAlign = false;\n\t\t}\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports, element ] );\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_es","_interopRequireDefault","require","_element","_data","_blocks","_i18n","_utils","_object","_context","_lockUnlock","EMPTY_CONFIG","settings","styles","VALID_SETTINGS","useGlobalStylesReset","user","config","setUserConfig","useContext","GlobalStylesContext","canReset","fastDeepEqual","useCallback","exports","useGlobalSetting","propertyPath","blockName","source","configs","appendedBlockPath","appendedPropertyPath","contextualPath","globalPath","sourceKey","settingValue","useMemo","configToUse","_getValueFromObjectPa","getValueFromObjectPath","result","forEach","setting","_getValueFromObjectPa2","value","undefined","setImmutably","split","setSetting","newValue","currentConfig","useGlobalStyle","path","shouldDecodeEncode","merged","mergedConfig","base","baseConfig","userConfig","appendedPath","finalPath","setStyle","getPresetVariableFromValue","rawResult","getValueFromVariable","useGlobalStyleLinks","_links","useSettingsForBlockElement","parentSettings","element","supportedStyles","supports","useSelect","select","unlock","blocksStore","getSupportedStyles","getBlockType","updatedSettings","includes","typography","fontSizes","customFontSize","defaultFontSizes","fontFamilies","color","text","background","button","heading","link","caption","gradients","customGradient","defaultDuotone","customDuotone","key","textColumns","layout","spacing","sides","Array","isArray","length","dimensions","charAt","toUpperCase","slice","border","shadow","textAlign","useColorsPerOrigin","customColors","palette","custom","themeColors","theme","defaultColors","default","shouldDisplayDefaultColors","defaultPalette","push","name","_x","colors","useGradientsPerOrigin","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients"],"sources":["@wordpress/block-editor/src/components/global-styles/hooks.js"],"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'background.backgroundImage',\n\t'background.backgroundRepeat',\n\t'background.backgroundSize',\n\t'background.backgroundPosition',\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.aspectRatio',\n\t'dimensions.minHeight',\n\t'layout.contentSize',\n\t'layout.definitions',\n\t'layout.wideSize',\n\t'lightbox.enabled',\n\t'lightbox.allowEditing',\n\t'position.fixed',\n\t'position.sticky',\n\t'spacing.customSpacingSize',\n\t'spacing.defaultSpacingSizes',\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.defaultFontSizes',\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.textAlign',\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( () => setUserConfig( EMPTY_CONFIG ), [ setUserConfig ] ),\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 !== undefined ) {\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\nexport function useGlobalStyleLinks() {\n\tconst { merged: mergedConfig } = useContext( GlobalStylesContext );\n\treturn mergedConfig?._links;\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\tdefaultFontSizes: 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'textAlign',\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\t[ 'aspectRatio', 'minHeight' ].forEach( ( key ) => {\n\t\t\tif ( ! supportedStyles.includes( key ) ) {\n\t\t\t\tupdatedSettings.dimensions = {\n\t\t\t\t\t...updatedSettings.dimensions,\n\t\t\t\t\t[ key ]: false,\n\t\t\t\t};\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\t// Text alignment is only available for blocks.\n\t\tif ( element ) {\n\t\t\tupdatedSettings.typography.textAlign = false;\n\t\t}\n\n\t\treturn updatedSettings;\n\t}, [ parentSettings, supportedStyles, supports, element ] );\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"],"mappings":"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","ignoreList":[]}
@@ -479,6 +479,9 @@ const getNodesWithStyles = (tree, blockSelectors) => {
479
479
  Object.entries(node.variations).forEach(([variationName, variation]) => {
480
480
  var _variation$elements, _variation$blocks;
481
481
  variations[variationName] = pickStyleKeys(variation);
482
+ if (variation?.css) {
483
+ variations[variationName].css = variation.css;
484
+ }
482
485
  const variationSelector = blockSelectors[blockName].styleVariationSelectors?.[variationName];
483
486
 
484
487
  // Process the variation's inner element styles.
@@ -500,13 +503,17 @@ const getNodesWithStyles = (tree, blockSelectors) => {
500
503
  const variationBlockSelector = (0, _utils.scopeSelector)(variationSelector, blockSelectors[variationBlockName].selector);
501
504
  const variationDuotoneSelector = (0, _utils.scopeSelector)(variationSelector, blockSelectors[variationBlockName].duotoneSelector);
502
505
  const variationFeatureSelectors = (0, _utils.scopeFeatureSelectors)(variationSelector, blockSelectors[variationBlockName].featureSelectors);
506
+ const variationBlockStyleNodes = pickStyleKeys(variationBlockStyles);
507
+ if (variationBlockStyles?.css) {
508
+ variationBlockStyleNodes.css = variationBlockStyles.css;
509
+ }
503
510
  nodes.push({
504
511
  selector: variationBlockSelector,
505
512
  duotoneSelector: variationDuotoneSelector,
506
513
  featureSelectors: variationFeatureSelectors,
507
514
  fallbackGapValue: blockSelectors[variationBlockName].fallbackGapValue,
508
515
  hasLayoutSupport: blockSelectors[variationBlockName].hasLayoutSupport,
509
- styles: pickStyleKeys(variationBlockStyles)
516
+ styles: variationBlockStyleNodes
510
517
  });
511
518
 
512
519
  // Process element styles for the inner blocks
@@ -717,6 +724,9 @@ const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGapSuppor
717
724
  if (styleDeclarations?.length) {
718
725
  ruleset += `:root :where(${selector}){${styleDeclarations.join(';')};}`;
719
726
  }
727
+ if (styles?.css) {
728
+ ruleset += processCSSNesting(styles.css, `:root :where(${selector})`);
729
+ }
720
730
  if (styleVariationSelectors) {
721
731
  Object.entries(styleVariationSelectors).forEach(([styleVariationName, styleVariationSelector]) => {
722
732
  const styleVariations = styles?.variations?.[styleVariationName];
@@ -738,6 +748,9 @@ const toStyles = (tree, blockSelectors, hasBlockGapSupport, hasFallbackGapSuppor
738
748
  if (styleVariationDeclarations.length) {
739
749
  ruleset += `:root :where(${styleVariationSelector}){${styleVariationDeclarations.join(';')};}`;
740
750
  }
751
+ if (styleVariations?.css) {
752
+ ruleset += processCSSNesting(styleVariations.css, `:root :where(${styleVariationSelector})`);
753
+ }
741
754
  }
742
755
  });
743
756
  }