@wordpress/block-editor 14.7.0 → 14.8.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 (204) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-controls/slot.js +6 -3
  3. package/build/components/block-controls/slot.js.map +1 -1
  4. package/build/components/block-inspector/index.js +1 -2
  5. package/build/components/block-inspector/index.js.map +1 -1
  6. package/build/components/block-lock/modal.js +1 -1
  7. package/build/components/block-lock/modal.js.map +1 -1
  8. package/build/components/block-manager/category.js +79 -0
  9. package/build/components/block-manager/category.js.map +1 -0
  10. package/build/components/block-manager/checklist.js +40 -0
  11. package/build/components/block-manager/checklist.js.map +1 -0
  12. package/build/components/block-manager/index.js +108 -0
  13. package/build/components/block-manager/index.js.map +1 -0
  14. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  15. package/build/components/block-settings-menu/index.js.map +1 -1
  16. package/build/components/block-toolbar/index.js +16 -4
  17. package/build/components/block-toolbar/index.js.map +1 -1
  18. package/build/components/block-toolbar/switch-section-style.js +105 -0
  19. package/build/components/block-toolbar/switch-section-style.js.map +1 -0
  20. package/build/components/collab/block-comment-icon-slot.js +2 -6
  21. package/build/components/collab/block-comment-icon-slot.js.map +1 -1
  22. package/build/components/collab/block-comment-icon-toolbar-slot.js +2 -6
  23. package/build/components/collab/block-comment-icon-toolbar-slot.js.map +1 -1
  24. package/build/components/color-palette/with-color-context.js +4 -2
  25. package/build/components/color-palette/with-color-context.js.map +1 -1
  26. package/build/components/font-family/index.js +14 -13
  27. package/build/components/font-family/index.js.map +1 -1
  28. package/build/components/global-styles/use-global-styles-output.js +1 -1
  29. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  30. package/build/components/iframe/index.js +13 -100
  31. package/build/components/iframe/index.js.map +1 -1
  32. package/build/components/iframe/use-scale-canvas.js +377 -0
  33. package/build/components/iframe/use-scale-canvas.js.map +1 -0
  34. package/build/components/image-editor/use-save-image.js +22 -3
  35. package/build/components/image-editor/use-save-image.js.map +1 -1
  36. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -5
  37. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  38. package/build/components/inserter/category-tabs/index.js +7 -8
  39. package/build/components/inserter/category-tabs/index.js.map +1 -1
  40. package/build/components/inserter-draggable-blocks/index.js +2 -1
  41. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  42. package/build/components/inspector-controls/slot.js +7 -4
  43. package/build/components/inspector-controls/slot.js.map +1 -1
  44. package/build/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  45. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  46. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -4
  47. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  48. package/build/components/media-placeholder/index.js +29 -21
  49. package/build/components/media-placeholder/index.js.map +1 -1
  50. package/build/hooks/border.js +3 -3
  51. package/build/hooks/border.js.map +1 -1
  52. package/build/hooks/color.js +1 -1
  53. package/build/hooks/color.js.map +1 -1
  54. package/build/hooks/dimensions.js +2 -2
  55. package/build/hooks/dimensions.js.map +1 -1
  56. package/build/hooks/style.js +6 -6
  57. package/build/hooks/style.js.map +1 -1
  58. package/build/hooks/supports.js +1 -1
  59. package/build/hooks/supports.js.map +1 -1
  60. package/build/hooks/typography.js +1 -1
  61. package/build/hooks/typography.js.map +1 -1
  62. package/build/hooks/utils.js +1 -1
  63. package/build/hooks/utils.js.map +1 -1
  64. package/build/layouts/flex.js +11 -9
  65. package/build/layouts/flex.js.map +1 -1
  66. package/build/private-apis.js +4 -4
  67. package/build/private-apis.js.map +1 -1
  68. package/build/store/private-selectors.js +1 -1
  69. package/build/store/private-selectors.js.map +1 -1
  70. package/build/store/selectors.js +3 -0
  71. package/build/store/selectors.js.map +1 -1
  72. package/build-module/components/block-controls/slot.js +6 -3
  73. package/build-module/components/block-controls/slot.js.map +1 -1
  74. package/build-module/components/block-inspector/index.js +1 -2
  75. package/build-module/components/block-inspector/index.js.map +1 -1
  76. package/build-module/components/block-lock/modal.js +1 -1
  77. package/build-module/components/block-lock/modal.js.map +1 -1
  78. package/build-module/components/block-manager/category.js +71 -0
  79. package/build-module/components/block-manager/category.js.map +1 -0
  80. package/build-module/components/block-manager/checklist.js +32 -0
  81. package/build-module/components/block-manager/checklist.js.map +1 -0
  82. package/build-module/components/block-manager/index.js +102 -0
  83. package/build-module/components/block-manager/index.js.map +1 -0
  84. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
  85. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  86. package/build-module/components/block-settings-menu/index.js +2 -2
  87. package/build-module/components/block-settings-menu/index.js.map +1 -1
  88. package/build-module/components/block-toolbar/index.js +16 -4
  89. package/build-module/components/block-toolbar/index.js.map +1 -1
  90. package/build-module/components/block-toolbar/switch-section-style.js +97 -0
  91. package/build-module/components/block-toolbar/switch-section-style.js.map +1 -0
  92. package/build-module/components/collab/block-comment-icon-slot.js +2 -6
  93. package/build-module/components/collab/block-comment-icon-slot.js.map +1 -1
  94. package/build-module/components/collab/block-comment-icon-toolbar-slot.js +2 -6
  95. package/build-module/components/collab/block-comment-icon-toolbar-slot.js.map +1 -1
  96. package/build-module/components/color-palette/with-color-context.js +4 -2
  97. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  98. package/build-module/components/font-family/index.js +15 -14
  99. package/build-module/components/font-family/index.js.map +1 -1
  100. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  101. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  102. package/build-module/components/iframe/index.js +15 -102
  103. package/build-module/components/iframe/index.js.map +1 -1
  104. package/build-module/components/iframe/use-scale-canvas.js +371 -0
  105. package/build-module/components/iframe/use-scale-canvas.js.map +1 -0
  106. package/build-module/components/image-editor/use-save-image.js +22 -3
  107. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  108. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -5
  109. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  110. package/build-module/components/inserter/category-tabs/index.js +8 -9
  111. package/build-module/components/inserter/category-tabs/index.js.map +1 -1
  112. package/build-module/components/inserter-draggable-blocks/index.js +2 -1
  113. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  114. package/build-module/components/inspector-controls/slot.js +7 -4
  115. package/build-module/components/inspector-controls/slot.js.map +1 -1
  116. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +1 -1
  117. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  118. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +4 -4
  119. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  120. package/build-module/components/media-placeholder/index.js +29 -21
  121. package/build-module/components/media-placeholder/index.js.map +1 -1
  122. package/build-module/hooks/border.js +3 -3
  123. package/build-module/hooks/border.js.map +1 -1
  124. package/build-module/hooks/color.js +1 -1
  125. package/build-module/hooks/color.js.map +1 -1
  126. package/build-module/hooks/dimensions.js +2 -2
  127. package/build-module/hooks/dimensions.js.map +1 -1
  128. package/build-module/hooks/style.js +6 -6
  129. package/build-module/hooks/style.js.map +1 -1
  130. package/build-module/hooks/supports.js +1 -1
  131. package/build-module/hooks/supports.js.map +1 -1
  132. package/build-module/hooks/typography.js +1 -1
  133. package/build-module/hooks/typography.js.map +1 -1
  134. package/build-module/hooks/utils.js +1 -1
  135. package/build-module/hooks/utils.js.map +1 -1
  136. package/build-module/layouts/flex.js +11 -9
  137. package/build-module/layouts/flex.js.map +1 -1
  138. package/build-module/private-apis.js +6 -6
  139. package/build-module/private-apis.js.map +1 -1
  140. package/build-module/store/private-selectors.js +1 -1
  141. package/build-module/store/private-selectors.js.map +1 -1
  142. package/build-module/store/selectors.js +3 -0
  143. package/build-module/store/selectors.js.map +1 -1
  144. package/build-style/content-rtl.css +27 -28
  145. package/build-style/content.css +27 -28
  146. package/build-style/style-rtl.css +108 -0
  147. package/build-style/style.css +108 -0
  148. package/package.json +2 -2
  149. package/src/components/block-canvas/style.scss +2 -1
  150. package/src/components/block-controls/slot.js +5 -3
  151. package/src/components/block-inspector/index.js +0 -2
  152. package/src/components/block-lock/modal.js +1 -1
  153. package/src/components/block-manager/category.js +102 -0
  154. package/src/components/block-manager/checklist.js +34 -0
  155. package/src/components/block-manager/index.js +127 -0
  156. package/src/components/block-manager/style.scss +82 -0
  157. package/src/components/block-mover/README.md +15 -8
  158. package/src/components/block-mover/stories/index.story.js +73 -71
  159. package/src/components/block-mover/style.scss +3 -0
  160. package/src/components/block-settings-menu/block-settings-dropdown.js +2 -2
  161. package/src/components/block-settings-menu/index.js +2 -2
  162. package/src/components/block-toolbar/index.js +14 -0
  163. package/src/components/block-toolbar/switch-section-style.js +115 -0
  164. package/src/components/block-tools/style.scss +39 -0
  165. package/src/components/collab/block-comment-icon-slot.js +2 -6
  166. package/src/components/collab/block-comment-icon-toolbar-slot.js +3 -5
  167. package/src/components/color-palette/test/__snapshots__/control.js.snap +2 -2
  168. package/src/components/color-palette/with-color-context.js +25 -7
  169. package/src/components/font-family/index.js +13 -13
  170. package/src/components/global-styles/test/use-global-styles-output.js +1 -1
  171. package/src/components/global-styles/use-global-styles-output.js +1 -1
  172. package/src/components/iframe/content.scss +49 -43
  173. package/src/components/iframe/index.js +14 -171
  174. package/src/components/iframe/use-scale-canvas.js +468 -0
  175. package/src/components/image-editor/use-save-image.js +27 -2
  176. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -16
  177. package/src/components/inserter/category-tabs/index.js +8 -9
  178. package/src/components/inserter-draggable-blocks/index.js +10 -1
  179. package/src/components/inspector-controls/README.md +2 -0
  180. package/src/components/inspector-controls/slot.js +6 -4
  181. package/src/components/inspector-controls-tabs/position-controls-panel.js +1 -3
  182. package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +10 -10
  183. package/src/components/media-placeholder/index.js +37 -33
  184. package/src/components/provider/test/use-block-sync.js +3 -1
  185. package/src/components/rich-text/content.scss +15 -10
  186. package/src/hooks/border.js +3 -9
  187. package/src/hooks/color.js +1 -1
  188. package/src/hooks/dimensions.js +2 -2
  189. package/src/hooks/style.js +6 -12
  190. package/src/hooks/supports.js +1 -1
  191. package/src/hooks/test/style.js +1 -2
  192. package/src/hooks/typography.js +1 -1
  193. package/src/hooks/utils.js +1 -1
  194. package/src/layouts/flex.js +26 -18
  195. package/src/private-apis.js +6 -6
  196. package/src/store/private-selectors.js +1 -1
  197. package/src/store/selectors.js +3 -0
  198. package/src/store/test/selectors.js +87 -58
  199. package/src/style.scss +1 -0
  200. package/build/components/block-info-slot-fill/index.js +0 -39
  201. package/build/components/block-info-slot-fill/index.js.map +0 -1
  202. package/build-module/components/block-info-slot-fill/index.js +0 -32
  203. package/build-module/components/block-info-slot-fill/index.js.map +0 -1
  204. package/src/components/block-info-slot-fill/index.js +0 -27
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Button","FormFileUpload","Placeholder","DropZone","__experimentalInputControl","InputControl","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","withFilters","__","useState","useEffect","useSelect","keyboardReturn","pasteHandler","deprecated","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","noop","InsertFromURLPopover","src","onChange","onSubmit","onClose","popoverAnchor","anchor","children","className","__next40pxDefaultSize","label","hideLabelFromVision","placeholder","value","suffix","variant","size","icon","type","URLSelectionUI","onChangeSrc","onSelectURL","setPopoverAnchor","isURLInputVisible","setIsURLInputVisible","openURLInput","closeURLInput","focus","onSubmitSrc","event","preventDefault","onClick","isPressed","ref","MediaPlaceholder","allowedTypes","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onToggleFeaturedImage","onDoubleClick","onFilesPreUpload","onHTMLDrop","deprecatedOnHTMLDrop","mediaLibraryButton","style","since","version","mediaUpload","select","getSettings","setSrc","_value$src","onlyAllowsImages","length","every","allowedType","startsWith","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","handleBlocksDrop","blocks","Array","isArray","recursivelyFindMediaFromBlocks","_blocks","flatMap","block","name","attributes","innerBlocks","mediaBlocks","uploadedMediaList","Promise","all","resolve","reject","window","fetch","then","response","blob","additionalData","title","alt_text","alt","caption","catch","err","HTML","onUpload","target","defaultRenderPlaceholder","content","instructions","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","preview","renderPlaceholder","renderDropZone","onFilesDrop","renderCancelLink","renderUrlSelectionUI","renderFeaturedImageToggle","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","gallery","mode","render","openFileDialog","fallback"],"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\t__experimentalInputControl as InputControl,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { keyboardReturn } from '@wordpress/icons';\nimport { pasteHandler } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nconst InsertFromURLPopover = ( {\n\tsrc,\n\tonChange,\n\tonSubmit,\n\tonClose,\n\tpopoverAnchor,\n} ) => (\n\t<URLPopover anchor={ popoverAnchor } onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<InputControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'URL' ) }\n\t\t\t\thideLabelFromVision\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t\tsuffix={\n\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t}\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nconst URLSelectionUI = ( { src, onChangeSrc, onSelectURL } ) => {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t\tpopoverAnchor?.focus();\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\tonClick={ openURLInput }\n\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t>\n\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t</Button>\n\t\t\t{ isURLInputVisible && (\n\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonToggleFeaturedImage,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop: deprecatedOnHTMLDrop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tif ( deprecatedOnHTMLDrop ) {\n\t\tdeprecated( 'wp.blockEditor.MediaPlaceholder onHTMLDrop prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t} );\n\t}\n\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif (\n\t\t\t! handleUpload ||\n\t\t\t( typeof handleUpload === 'function' && ! handleUpload( files ) )\n\t\t) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tasync function handleBlocksDrop( blocks ) {\n\t\tif ( ! blocks || ! Array.isArray( blocks ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction recursivelyFindMediaFromBlocks( _blocks ) {\n\t\t\treturn _blocks.flatMap( ( block ) =>\n\t\t\t\t( block.name === 'core/image' ||\n\t\t\t\t\tblock.name === 'core/audio' ||\n\t\t\t\t\tblock.name === 'core/video' ) &&\n\t\t\t\tblock.attributes.url\n\t\t\t\t\t? [ block ]\n\t\t\t\t\t: recursivelyFindMediaFromBlocks( block.innerBlocks )\n\t\t\t);\n\t\t}\n\n\t\tconst mediaBlocks = recursivelyFindMediaFromBlocks( blocks );\n\n\t\tif ( ! mediaBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst uploadedMediaList = await Promise.all(\n\t\t\tmediaBlocks.map( ( block ) =>\n\t\t\t\tblock.attributes.id\n\t\t\t\t\t? block.attributes\n\t\t\t\t\t: new Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\twindow\n\t\t\t\t\t\t\t\t.fetch( block.attributes.url )\n\t\t\t\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t\t\t\t.then( ( blob ) =>\n\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\t\t\tadditionalData: {\n\t\t\t\t\t\t\t\t\t\t\ttitle: block.attributes.title,\n\t\t\t\t\t\t\t\t\t\t\talt_text: block.attributes.alt,\n\t\t\t\t\t\t\t\t\t\t\tcaption: block.attributes.caption,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( media.id ) {\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( media );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tallowedTypes,\n\t\t\t\t\t\t\t\t\t\tonError: reject,\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\t.catch( () => resolve( block.attributes.url ) );\n\t\t\t\t\t } )\n\t\t\t)\n\t\t).catch( ( err ) => onError( err ) );\n\n\t\tif ( multiple ) {\n\t\t\tonSelect( uploadedMediaList );\n\t\t} else {\n\t\t\tonSelect( uploadedMediaList[ 0 ] );\n\t\t}\n\t}\n\n\tasync function onHTMLDrop( HTML ) {\n\t\tconst blocks = pasteHandler( { HTML } );\n\t\treturn await handleBlocksDrop( blocks );\n\t}\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Drag and drop an image or video, upload, or choose from your library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Drag and drop an audio file, upload, or choose from your library.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<URLSelectionUI\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChangeSrc={ setSrc }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t/>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderFeaturedImageToggle = () => {\n\t\treturn (\n\t\t\tonToggleFeaturedImage && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ onToggleFeaturedImage }\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tmode=\"browse\"\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t/>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( disableMediaButtons ) {\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Button","FormFileUpload","Placeholder","DropZone","__experimentalInputControl","InputControl","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","withFilters","__","useState","useEffect","useSelect","keyboardReturn","pasteHandler","deprecated","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","noop","InsertFromURLPopover","src","onChange","onSubmit","onClose","popoverAnchor","anchor","children","className","__next40pxDefaultSize","label","hideLabelFromVision","placeholder","value","suffix","variant","size","icon","type","URLSelectionUI","onChangeSrc","onSelectURL","setPopoverAnchor","isURLInputVisible","setIsURLInputVisible","openURLInput","closeURLInput","focus","onSubmitSrc","event","preventDefault","onClick","isPressed","ref","MediaPlaceholder","allowedTypes","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onToggleFeaturedImage","onDoubleClick","onFilesPreUpload","onHTMLDrop","deprecatedOnHTMLDrop","mediaLibraryButton","style","since","version","mediaUpload","select","getSettings","setSrc","_value$src","onlyAllowsImages","length","every","allowedType","startsWith","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","handleBlocksDrop","blocks","Array","isArray","recursivelyFindMediaFromBlocks","_blocks","flatMap","block","name","attributes","innerBlocks","mediaBlocks","uploadedMediaList","Promise","all","blockType","split","resolve","reject","window","fetch","then","response","blob","additionalData","title","alt_text","alt","caption","catch","err","onDrop","HTML","dataTransfer","getData","onUpload","target","defaultRenderPlaceholder","content","instructions","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","preview","renderPlaceholder","renderDropZone","onFilesDrop","renderCancelLink","renderUrlSelectionUI","renderFeaturedImageToggle","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","gallery","mode","render","openFileDialog","fallback"],"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\t__experimentalInputControl as InputControl,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { keyboardReturn } from '@wordpress/icons';\nimport { pasteHandler } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nconst InsertFromURLPopover = ( {\n\tsrc,\n\tonChange,\n\tonSubmit,\n\tonClose,\n\tpopoverAnchor,\n} ) => (\n\t<URLPopover anchor={ popoverAnchor } onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<InputControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'URL' ) }\n\t\t\t\thideLabelFromVision\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t\tsuffix={\n\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t}\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nconst URLSelectionUI = ( { src, onChangeSrc, onSelectURL } ) => {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t\tpopoverAnchor?.focus();\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\tonClick={ openURLInput }\n\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t>\n\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t</Button>\n\t\t\t{ isURLInputVisible && (\n\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonToggleFeaturedImage,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop: deprecatedOnHTMLDrop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tif ( deprecatedOnHTMLDrop ) {\n\t\tdeprecated( 'wp.blockEditor.MediaPlaceholder onHTMLDrop prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t} );\n\t}\n\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif (\n\t\t\t! handleUpload ||\n\t\t\t( typeof handleUpload === 'function' && ! handleUpload( files ) )\n\t\t) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tasync function handleBlocksDrop( blocks ) {\n\t\tif ( ! blocks || ! Array.isArray( blocks ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction recursivelyFindMediaFromBlocks( _blocks ) {\n\t\t\treturn _blocks.flatMap( ( block ) =>\n\t\t\t\t( block.name === 'core/image' ||\n\t\t\t\t\tblock.name === 'core/audio' ||\n\t\t\t\t\tblock.name === 'core/video' ) &&\n\t\t\t\t( block.attributes.url || block.attributes.src )\n\t\t\t\t\t? [ block ]\n\t\t\t\t\t: recursivelyFindMediaFromBlocks( block.innerBlocks )\n\t\t\t);\n\t\t}\n\n\t\tconst mediaBlocks = recursivelyFindMediaFromBlocks( blocks );\n\n\t\tif ( ! mediaBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst uploadedMediaList = await Promise.all(\n\t\t\tmediaBlocks.map( ( block ) => {\n\t\t\t\tconst blockType = block.name.split( '/' )[ 1 ];\n\t\t\t\tif ( block.attributes.id ) {\n\t\t\t\t\tblock.attributes.type = blockType;\n\t\t\t\t\treturn block.attributes;\n\t\t\t\t}\n\t\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\t\twindow\n\t\t\t\t\t\t.fetch( block.attributes.url )\n\t\t\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t\t\t.then( ( blob ) =>\n\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\t\t\tadditionalData: {\n\t\t\t\t\t\t\t\t\ttitle: block.attributes.title,\n\t\t\t\t\t\t\t\t\talt_text: block.attributes.alt,\n\t\t\t\t\t\t\t\t\tcaption: block.attributes.caption,\n\t\t\t\t\t\t\t\t\ttype: blockType,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\t\t\t\t\t\tif ( media.id ) {\n\t\t\t\t\t\t\t\t\t\tresolve( media );\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\tallowedTypes,\n\t\t\t\t\t\t\t\tonError: reject,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.catch( () => resolve( block.attributes.url ) );\n\t\t\t\t} );\n\t\t\t} )\n\t\t).catch( ( err ) => onError( err ) );\n\n\t\tif ( multiple ) {\n\t\t\tonSelect( uploadedMediaList );\n\t\t} else {\n\t\t\tonSelect( uploadedMediaList[ 0 ] );\n\t\t}\n\t}\n\n\tasync function onDrop( event ) {\n\t\tconst blocks = pasteHandler( {\n\t\t\tHTML: event.dataTransfer?.getData( 'default' ),\n\t\t} );\n\t\treturn await handleBlocksDrop( blocks );\n\t}\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Drag and drop an image or video, upload, or choose from your library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Drag and drop an audio file, upload, or choose from your library.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn <DropZone onFilesDrop={ onFilesUpload } onDrop={ onDrop } />;\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<URLSelectionUI\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tonChangeSrc={ setSrc }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t/>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderFeaturedImageToggle = () => {\n\t\treturn (\n\t\t\tonToggleFeaturedImage && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ onToggleFeaturedImage }\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Use featured image' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tmode=\"browse\"\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ !! multiple }\n\t\t\t\t\t/>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderFeaturedImageToggle() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( disableMediaButtons ) {\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,7 @@ import { useHasBorderPanel, useHasBorderPanelControls, BorderPanel as StylesBord
23
23
  import { store as blockEditorStore } from '../store';
24
24
  import { __ } from '@wordpress/i18n';
25
25
  import { jsx as _jsx } from "react/jsx-runtime";
26
- export const BORDER_SUPPORT_KEY = '__experimentalBorder';
26
+ export const BORDER_SUPPORT_KEY = 'border';
27
27
  export const SHADOW_SUPPORT_KEY = 'shadow';
28
28
  const getColorByProperty = (colors, property, value) => {
29
29
  let matchedColor;
@@ -156,8 +156,8 @@ export function BorderPanel({
156
156
  return null;
157
157
  }
158
158
  const defaultControls = {
159
- ...getBlockSupport(name, [BORDER_SUPPORT_KEY, '__experimentalDefaultControls']),
160
- ...getBlockSupport(name, [SHADOW_SUPPORT_KEY, '__experimentalDefaultControls'])
159
+ ...getBlockSupport(name, [BORDER_SUPPORT_KEY, 'defaultControls']),
160
+ ...getBlockSupport(name, [SHADOW_SUPPORT_KEY, 'defaultControls'])
161
161
  };
162
162
  return /*#__PURE__*/_jsx(StylesBorderPanel, {
163
163
  as: BordersInspectorControl,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","hasBlockSupport","getBlockSupport","__experimentalHasSplitBorders","hasSplitBorders","Platform","useCallback","useMemo","addFilter","useSelect","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","cleanEmptyObject","shouldSkipSerialization","useBlockSettings","useHasBorderPanel","useHasBorderPanelControls","BorderPanel","StylesBorderPanel","store","blockEditorStore","__","jsx","_jsx","BORDER_SUPPORT_KEY","SHADOW_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","attributesToStyle","attributes","BordersInspectorControl","label","children","resetAllFilter","attributesResetAllFilter","existingStyle","group","clientId","name","setAttributes","settings","isEnabled","selector","select","getBlockAttributes","onChange","newStyle","defaultControls","as","panelId","hasBorderSupport","blockName","feature","OS","support","radius","width","hasShadowSupport","useBorderPanelLabel","hasBorderControl","hasShadowControl","controls","hasBorderColor","hasBorderStyle","hasBorderWidth","hasBorderRadius","hasShadow","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","useBlockProps","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = '__experimentalBorder';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [\n\t\t\tBORDER_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t\t...getBlockSupport( name, [\n\t\t\tSHADOW_SUPPORT_KEY,\n\t\t\t'__experimentalDefaultControls',\n\t\t] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function useBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst controls = useHasBorderPanelControls( settings );\n\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl =\n\t\t\tcontrols?.hasBorderColor ||\n\t\t\tcontrols?.hasBorderStyle ||\n\t\t\tcontrols?.hasBorderWidth ||\n\t\t\tcontrols?.hasBorderRadius;\n\t\thasShadowControl = controls?.hasShadow;\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = clsx( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn clsx( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","hasBlockSupport","getBlockSupport","__experimentalHasSplitBorders","hasSplitBorders","Platform","useCallback","useMemo","addFilter","useSelect","getColorClassName","InspectorControls","useMultipleOriginColorsAndGradients","cleanEmptyObject","shouldSkipSerialization","useBlockSettings","useHasBorderPanel","useHasBorderPanelControls","BorderPanel","StylesBorderPanel","store","blockEditorStore","__","jsx","_jsx","BORDER_SUPPORT_KEY","SHADOW_SUPPORT_KEY","getColorByProperty","colors","property","value","matchedColor","some","origin","color","getMultiOriginColor","namedColor","customColor","colorObject","undefined","getColorSlugFromVariable","exec","styleToAttributes","style","border","borderColor","borderColorValue","borderColorSlug","startsWith","substring","length","updatedStyle","attributesToStyle","attributes","BordersInspectorControl","label","children","resetAllFilter","attributesResetAllFilter","existingStyle","group","clientId","name","setAttributes","settings","isEnabled","selector","select","getBlockAttributes","onChange","newStyle","defaultControls","as","panelId","hasBorderSupport","blockName","feature","OS","support","radius","width","hasShadowSupport","useBorderPanelLabel","hasBorderControl","hasShadowControl","controls","hasBorderColor","hasBorderStyle","hasBorderWidth","hasBorderRadius","hasShadow","removeBorderAttribute","attribute","addAttributes","type","addSaveProps","props","blockNameOrType","borderClasses","getBorderClasses","newClassName","className","borderColorClass","useBlockProps","borderTopColor","top","borderRightColor","right","borderBottomColor","bottom","borderLeftColor","left","extraStyles","attributeKeys","hasSupport"],"sources":["@wordpress/block-editor/src/hooks/border.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { hasBlockSupport, getBlockSupport } from '@wordpress/blocks';\nimport { __experimentalHasSplitBorders as hasSplitBorders } from '@wordpress/components';\nimport { Platform, useCallback, useMemo } from '@wordpress/element';\nimport { addFilter } from '@wordpress/hooks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getColorClassName } from '../components/colors';\nimport InspectorControls from '../components/inspector-controls';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tcleanEmptyObject,\n\tshouldSkipSerialization,\n\tuseBlockSettings,\n} from './utils';\nimport {\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n\tBorderPanel as StylesBorderPanel,\n} from '../components/global-styles';\nimport { store as blockEditorStore } from '../store';\nimport { __ } from '@wordpress/i18n';\n\nexport const BORDER_SUPPORT_KEY = 'border';\nexport const SHADOW_SUPPORT_KEY = 'shadow';\n\nconst getColorByProperty = ( colors, property, value ) => {\n\tlet matchedColor;\n\n\tcolors.some( ( origin ) =>\n\t\torigin.colors.some( ( color ) => {\n\t\t\tif ( color[ property ] === value ) {\n\t\t\t\tmatchedColor = color;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} )\n\t);\n\n\treturn matchedColor;\n};\n\nexport const getMultiOriginColor = ( { colors, namedColor, customColor } ) => {\n\t// Search each origin (default, theme, or user) for matching color by name.\n\tif ( namedColor ) {\n\t\tconst colorObject = getColorByProperty( colors, 'slug', namedColor );\n\t\tif ( colorObject ) {\n\t\t\treturn colorObject;\n\t\t}\n\t}\n\n\t// Skip if no custom color or matching named color.\n\tif ( ! customColor ) {\n\t\treturn { color: undefined };\n\t}\n\n\t// Attempt to find color via custom color value or build new object.\n\tconst colorObject = getColorByProperty( colors, 'color', customColor );\n\treturn colorObject ? colorObject : { color: customColor };\n};\n\nfunction getColorSlugFromVariable( value ) {\n\tconst namedColor = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( namedColor && namedColor[ 1 ] ) {\n\t\treturn namedColor[ 1 ];\n\t}\n\treturn null;\n}\n\nfunction styleToAttributes( style ) {\n\tif ( hasSplitBorders( style?.border ) ) {\n\t\treturn {\n\t\t\tstyle,\n\t\t\tborderColor: undefined,\n\t\t};\n\t}\n\n\tconst borderColorValue = style?.border?.color;\n\tconst borderColorSlug = borderColorValue?.startsWith( 'var:preset|color|' )\n\t\t? borderColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.border = {\n\t\t...updatedStyle.border,\n\t\tcolor: borderColorSlug ? undefined : borderColorValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\tborderColor: borderColorSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\tif ( hasSplitBorders( attributes.style?.border ) ) {\n\t\treturn attributes.style;\n\t}\n\treturn {\n\t\t...attributes.style,\n\t\tborder: {\n\t\t\t...attributes.style?.border,\n\t\t\tcolor: attributes.borderColor\n\t\t\t\t? 'var:preset|color|' + attributes.borderColor\n\t\t\t\t: attributes.style?.border?.color,\n\t\t},\n\t};\n}\n\nfunction BordersInspectorControl( { label, children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"border\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function BorderPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasBorderPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, borderColor } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, borderColor };\n\t}\n\tconst { style, borderColor } = useSelect( selector, [ clientId ] );\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( { style, borderColor } );\n\t}, [ style, borderColor ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = {\n\t\t...getBlockSupport( name, [ BORDER_SUPPORT_KEY, 'defaultControls' ] ),\n\t\t...getBlockSupport( name, [ SHADOW_SUPPORT_KEY, 'defaultControls' ] ),\n\t};\n\n\treturn (\n\t\t<StylesBorderPanel\n\t\t\tas={ BordersInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t/>\n\t);\n}\n\n/**\n * Determine whether there is block support for border properties.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Border feature to check support for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasBorderSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, BORDER_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! (\n\t\t\tsupport?.color ||\n\t\t\tsupport?.radius ||\n\t\t\tsupport?.width ||\n\t\t\tsupport?.style\n\t\t);\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\n/**\n * Determine whether there is block support for shadow properties.\n *\n * @param {string} blockName Block name.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasShadowSupport( blockName ) {\n\treturn hasBlockSupport( blockName, SHADOW_SUPPORT_KEY );\n}\n\nexport function useBorderPanelLabel( {\n\tblockName,\n\thasBorderControl,\n\thasShadowControl,\n} = {} ) {\n\tconst settings = useBlockSettings( blockName );\n\tconst controls = useHasBorderPanelControls( settings );\n\n\tif ( ! hasBorderControl && ! hasShadowControl && blockName ) {\n\t\thasBorderControl =\n\t\t\tcontrols?.hasBorderColor ||\n\t\t\tcontrols?.hasBorderStyle ||\n\t\t\tcontrols?.hasBorderWidth ||\n\t\t\tcontrols?.hasBorderRadius;\n\t\thasShadowControl = controls?.hasShadow;\n\t}\n\n\tif ( hasBorderControl && hasShadowControl ) {\n\t\treturn __( 'Border & Shadow' );\n\t}\n\n\tif ( hasShadowControl ) {\n\t\treturn __( 'Shadow' );\n\t}\n\n\treturn __( 'Border' );\n}\n\n/**\n * Returns a new style object where the specified border attribute has been\n * removed.\n *\n * @param {Object} style Styles from block attributes.\n * @param {string} attribute The border style attribute to clear.\n *\n * @return {Object} Style object with the specified attribute removed.\n */\nexport function removeBorderAttribute( style, attribute ) {\n\treturn cleanEmptyObject( {\n\t\t...style,\n\t\tborder: {\n\t\t\t...style?.border,\n\t\t\t[ attribute ]: undefined,\n\t\t},\n\t} );\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockNameOrType, 'color' ) ||\n\t\tshouldSkipSerialization( blockNameOrType, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst borderClasses = getBorderClasses( attributes );\n\tconst newClassName = clsx( props.className, borderClasses );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Generates a CSS class name consisting of all the applicable border color\n * classes given the current block attributes.\n *\n * @param {Object} attributes Block's attributes.\n *\n * @return {string} CSS class name.\n */\nexport function getBorderClasses( attributes ) {\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\treturn clsx( {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n}\n\nfunction useBlockProps( { name, borderColor, style } ) {\n\tconst { colors } = useMultipleOriginColorsAndGradients();\n\n\tif (\n\t\t! hasBorderSupport( name, 'color' ) ||\n\t\tshouldSkipSerialization( name, BORDER_SUPPORT_KEY, 'color' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst { color: borderColorValue } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: borderColor,\n\t} );\n\tconst { color: borderTopColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.top?.color ),\n\t} );\n\tconst { color: borderRightColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.right?.color ),\n\t} );\n\n\tconst { color: borderBottomColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.bottom?.color ),\n\t} );\n\tconst { color: borderLeftColor } = getMultiOriginColor( {\n\t\tcolors,\n\t\tnamedColor: getColorSlugFromVariable( style?.border?.left?.color ),\n\t} );\n\n\tconst extraStyles = {\n\t\tborderTopColor: borderTopColor || borderColorValue,\n\t\tborderRightColor: borderRightColor || borderColorValue,\n\t\tborderBottomColor: borderBottomColor || borderColorValue,\n\t\tborderLeftColor: borderLeftColor || borderColorValue,\n\t};\n\n\treturn addSaveProps(\n\t\t{ style: cleanEmptyObject( extraStyles ) || {} },\n\t\tname,\n\t\t{ borderColor, style }\n\t);\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'borderColor', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasBorderSupport( name, 'color' );\n\t},\n};\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addAttributes',\n\taddAttributes\n);\n"],"mappings":"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","ignoreList":[]}
@@ -222,7 +222,7 @@ export function ColorEdit({
222
222
  if (!isEnabled) {
223
223
  return null;
224
224
  }
225
- const defaultControls = getBlockSupport(name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
225
+ const defaultControls = getBlockSupport(name, [COLOR_SUPPORT_KEY, 'defaultControls']);
226
226
  const enableContrastChecking = Platform.OS === 'web' && !value?.color?.gradient && (settings?.color?.text || settings?.color?.link) &&
227
227
  // Contrast checking is enabled by default.
228
228
  // Deactivating it requires `enableContrastChecker` to have
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","addFilter","getBlockSupport","useMemo","Platform","useCallback","useSelect","getColorClassName","getColorObjectByAttributeValues","__experimentalGetGradientClass","cleanEmptyObject","transformStyles","shouldSkipSerialization","getBackgroundImageClasses","useSettings","InspectorControls","useHasColorPanel","default","StylesColorPanel","BlockColorContrastChecker","store","blockEditorStore","jsx","_jsx","COLOR_SUPPORT_KEY","hasColorSupport","blockNameOrType","colorSupport","link","gradient","background","text","hasLinkColorSupport","blockType","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","shouldSerialize","feature","textClass","undefined","gradientClass","backgroundClass","serializeHasBackground","hasBackground","color","newClassName","className","elements","styleToAttributes","textColorValue","textColorSlug","startsWith","substring","length","backgroundColorValue","backgroundColorSlug","gradientValue","gradientSlug","updatedStyle","attributesToStyle","ColorInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","group","ColorEdit","clientId","name","setAttributes","isEnabled","selector","select","getBlockAttributes","value","onChange","newStyle","defaultControls","enableContrastChecking","as","panelId","enableContrastChecker","useBlockProps","userPalette","themePalette","defaultPalette","colors","extraStyles","saveProps","hasBackgroundValue","attributeKeys","hasSupport","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"sources":["@wordpress/block-editor/src/hooks/color.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useMemo, Platform, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport { __experimentalGetGradientClass } from '../components/gradients';\nimport {\n\tcleanEmptyObject,\n\ttransformStyles,\n\tshouldSkipSerialization,\n} from './utils';\nimport { getBackgroundImageClasses } from './background';\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tuseHasColorPanel,\n\tdefault as StylesColorPanel,\n} from '../components/global-styles/color-panel';\nimport BlockColorContrastChecker from './contrast-checker';\nimport { store as blockEditorStore } from '../store';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockNameOrType ) => {\n\tconst colorSupport = getBlockSupport( blockNameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\nconst hasGradientSupport = ( blockNameOrType ) => {\n\tconst colorSupport = getBlockSupport( blockNameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockNameOrType ) ||\n\t\tshouldSkipSerialization( blockNameOrType, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockNameOrType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst shouldSerialize = ( feature ) =>\n\t\t! shouldSkipSerialization(\n\t\t\tblockNameOrType,\n\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\tfeature\n\t\t);\n\n\t// Primary color classes must come before the `has-text-color`,\n\t// `has-background` and `has-link-color` classes to maintain backwards\n\t// compatibility and avoid block invalidations.\n\tconst textClass = shouldSerialize( 'text' )\n\t\t? getColorClassName( 'color', textColor )\n\t\t: undefined;\n\n\tconst gradientClass = shouldSerialize( 'gradients' )\n\t\t? __experimentalGetGradientClass( gradient )\n\t\t: undefined;\n\n\tconst backgroundClass = shouldSerialize( 'background' )\n\t\t? getColorClassName( 'background-color', backgroundColor )\n\t\t: undefined;\n\n\tconst serializeHasBackground =\n\t\tshouldSerialize( 'background' ) || shouldSerialize( 'gradients' );\n\tconst hasBackground =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\t( hasGradient && ( gradient || style?.color?.gradient ) );\n\n\tconst newClassName = clsx( props.className, textClass, gradientClass, {\n\t\t// Don't apply the background class if there's a custom gradient.\n\t\t[ backgroundClass ]:\n\t\t\t( ! hasGradient || ! style?.color?.gradient ) && !! backgroundClass,\n\t\t'has-text-color':\n\t\t\tshouldSerialize( 'text' ) && ( textColor || style?.color?.text ),\n\t\t'has-background': serializeHasBackground && hasBackground,\n\t\t'has-link-color':\n\t\t\tshouldSerialize( 'link' ) && style?.elements?.link?.color,\n\t} );\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\nfunction styleToAttributes( style ) {\n\tconst textColorValue = style?.color?.text;\n\tconst textColorSlug = textColorValue?.startsWith( 'var:preset|color|' )\n\t\t? textColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst backgroundColorValue = style?.color?.background;\n\tconst backgroundColorSlug = backgroundColorValue?.startsWith(\n\t\t'var:preset|color|'\n\t)\n\t\t? backgroundColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst gradientValue = style?.color?.gradient;\n\tconst gradientSlug = gradientValue?.startsWith( 'var:preset|gradient|' )\n\t\t? gradientValue.substring( 'var:preset|gradient|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.color = {\n\t\t...updatedStyle.color,\n\t\ttext: textColorSlug ? undefined : textColorValue,\n\t\tbackground: backgroundColorSlug ? undefined : backgroundColorValue,\n\t\tgradient: gradientSlug ? undefined : gradientValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\ttextColor: textColorSlug,\n\t\tbackgroundColor: backgroundColorSlug,\n\t\tgradient: gradientSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\treturn {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\ttext: attributes.textColor\n\t\t\t\t? 'var:preset|color|' + attributes.textColor\n\t\t\t\t: attributes.style?.color?.text,\n\t\t\tbackground: attributes.backgroundColor\n\t\t\t\t? 'var:preset|color|' + attributes.backgroundColor\n\t\t\t\t: attributes.style?.color?.background,\n\t\t\tgradient: attributes.gradient\n\t\t\t\t? 'var:preset|gradient|' + attributes.gradient\n\t\t\t\t: attributes.style?.color?.gradient,\n\t\t},\n\t};\n}\n\nfunction ColorInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"color\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function ColorEdit( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasColorPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, textColor, backgroundColor, gradient } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, textColor, backgroundColor, gradient };\n\t}\n\tconst { style, textColor, backgroundColor, gradient } = useSelect(\n\t\tselector,\n\t\t[ clientId ]\n\t);\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( {\n\t\t\tstyle,\n\t\t\ttextColor,\n\t\t\tbackgroundColor,\n\t\t\tgradient,\n\t\t} );\n\t}, [ style, textColor, backgroundColor, gradient ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = getBlockSupport( name, [\n\t\tCOLOR_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' &&\n\t\t! value?.color?.gradient &&\n\t\t( settings?.color?.text || settings?.color?.link ) &&\n\t\t// Contrast checking is enabled by default.\n\t\t// Deactivating it requires `enableContrastChecker` to have\n\t\t// an explicit value of `false`.\n\t\tfalse !==\n\t\t\tgetBlockSupport( name, [\n\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t'enableContrastChecker',\n\t\t\t] );\n\n\treturn (\n\t\t<StylesColorPanel\n\t\t\tas={ ColorInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t\tenableContrastChecker={\n\t\t\t\tfalse !==\n\t\t\t\tgetBlockSupport( name, [\n\t\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t\t'enableContrastChecker',\n\t\t\t\t] )\n\t\t\t}\n\t\t>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<BlockColorContrastChecker clientId={ clientId } />\n\t\t\t) }\n\t\t</StylesColorPanel>\n\t);\n}\n\nfunction useBlockProps( {\n\tname,\n\tbackgroundColor,\n\ttextColor,\n\tgradient,\n\tstyle,\n} ) {\n\tconst [ userPalette, themePalette, defaultPalette ] = useSettings(\n\t\t'color.palette.custom',\n\t\t'color.palette.theme',\n\t\t'color.palette.default'\n\t);\n\n\tconst colors = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tif (\n\t\t! hasColorSupport( name ) ||\n\t\tshouldSkipSerialization( name, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn {};\n\t}\n\tconst extraStyles = {};\n\n\tif (\n\t\ttextColor &&\n\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'text' )\n\t) {\n\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\ttextColor\n\t\t)?.color;\n\t}\n\tif (\n\t\tbackgroundColor &&\n\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'background' )\n\t) {\n\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t)?.color;\n\t}\n\n\tconst saveProps = addSaveProps( { style: extraStyles }, name, {\n\t\ttextColor,\n\t\tbackgroundColor,\n\t\tgradient,\n\t\tstyle,\n\t} );\n\n\tconst hasBackgroundValue =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\tgradient ||\n\t\tstyle?.color?.gradient;\n\n\treturn {\n\t\t...saveProps,\n\t\tclassName: clsx(\n\t\t\tsaveProps.className,\n\t\t\t// Add background image classes in the editor, if not already handled by background color values.\n\t\t\t! hasBackgroundValue && getBackgroundImageClasses( style )\n\t\t),\n\t};\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'backgroundColor', 'textColor', 'gradient', 'style' ],\n\thasSupport: hasColorSupport,\n};\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,QAAQ,oBAAoB;AACnE,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,SACCC,iBAAiB,EACjBC,+BAA+B,QACzB,sBAAsB;AAC7B,SAASC,8BAA8B,QAAQ,yBAAyB;AACxE,SACCC,gBAAgB,EAChBC,eAAe,EACfC,uBAAuB,QACjB,SAAS;AAChB,SAASC,yBAAyB,QAAQ,cAAc;AACxD,SAASC,WAAW,QAAQ,4BAA4B;AACxD,OAAOC,iBAAiB,MAAM,kCAAkC;AAChE,SACCC,gBAAgB,EAChBC,OAAO,IAAIC,gBAAgB,QACrB,yCAAyC;AAChD,OAAOC,yBAAyB,MAAM,oBAAoB;AAC1D,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErD,OAAO,MAAMC,iBAAiB,GAAG,OAAO;AAExC,MAAMC,eAAe,GAAKC,eAAe,IAAM;EAC9C,MAAMC,YAAY,GAAGzB,eAAe,CAAEwB,eAAe,EAAEF,iBAAkB,CAAC;EAC1E,OACCG,YAAY,KACVA,YAAY,CAACC,IAAI,KAAK,IAAI,IAC3BD,YAAY,CAACE,QAAQ,KAAK,IAAI,IAC9BF,YAAY,CAACG,UAAU,KAAK,KAAK,IACjCH,YAAY,CAACI,IAAI,KAAK,KAAK,CAAE;AAEhC,CAAC;AAED,MAAMC,mBAAmB,GAAKC,SAAS,IAAM;EAC5C,IAAK7B,QAAQ,CAAC8B,EAAE,KAAK,KAAK,EAAG;IAC5B,OAAO,KAAK;EACb;EAEA,MAAMP,YAAY,GAAGzB,eAAe,CAAE+B,SAAS,EAAET,iBAAkB,CAAC;EAEpE,OACCG,YAAY,KAAK,IAAI,IACrB,OAAOA,YAAY,KAAK,QAAQ,IAChC,CAAC,CAAEA,YAAY,CAACC,IAAI;AAEtB,CAAC;AAED,MAAMO,kBAAkB,GAAKT,eAAe,IAAM;EACjD,MAAMC,YAAY,GAAGzB,eAAe,CAAEwB,eAAe,EAAEF,iBAAkB,CAAC;EAE1E,OACCG,YAAY,KAAK,IAAI,IACrB,OAAOA,YAAY,KAAK,QAAQ,IAChC,CAAC,CAAEA,YAAY,CAACS,SAAS;AAE3B,CAAC;AAED,MAAMC,yBAAyB,GAAKJ,SAAS,IAAM;EAClD,MAAMN,YAAY,GAAGzB,eAAe,CAAE+B,SAAS,EAAET,iBAAkB,CAAC;EAEpE,OAAOG,YAAY,IAAIA,YAAY,CAACG,UAAU,KAAK,KAAK;AACzD,CAAC;AAED,MAAMQ,mBAAmB,GAAKL,SAAS,IAAM;EAC5C,MAAMN,YAAY,GAAGzB,eAAe,CAAE+B,SAAS,EAAET,iBAAkB,CAAC;EAEpE,OAAOG,YAAY,IAAIA,YAAY,CAACI,IAAI,KAAK,KAAK;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASQ,aAAaA,CAAEC,QAAQ,EAAG;EAClC,IAAK,CAAEf,eAAe,CAAEe,QAAS,CAAC,EAAG;IACpC,OAAOA,QAAQ;EAChB;;EAEA;EACA,IAAK,CAAEA,QAAQ,CAACC,UAAU,CAACC,eAAe,EAAG;IAC5CC,MAAM,CAACC,MAAM,CAAEJ,QAAQ,CAACC,UAAU,EAAE;MACnCC,eAAe,EAAE;QAChBG,IAAI,EAAE;MACP;IACD,CAAE,CAAC;EACJ;EACA,IAAK,CAAEL,QAAQ,CAACC,UAAU,CAACK,SAAS,EAAG;IACtCH,MAAM,CAACC,MAAM,CAAEJ,QAAQ,CAACC,UAAU,EAAE;MACnCK,SAAS,EAAE;QACVD,IAAI,EAAE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,IAAKV,kBAAkB,CAAEK,QAAS,CAAC,IAAI,CAAEA,QAAQ,CAACC,UAAU,CAACZ,QAAQ,EAAG;IACvEc,MAAM,CAACC,MAAM,CAAEJ,QAAQ,CAACC,UAAU,EAAE;MACnCZ,QAAQ,EAAE;QACTgB,IAAI,EAAE;MACP;IACD,CAAE,CAAC;EACJ;EAEA,OAAOL,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,YAAYA,CAAEC,KAAK,EAAEtB,eAAe,EAAEe,UAAU,EAAG;EAClE,IACC,CAAEhB,eAAe,CAAEC,eAAgB,CAAC,IACpCd,uBAAuB,CAAEc,eAAe,EAAEF,iBAAkB,CAAC,EAC5D;IACD,OAAOwB,KAAK;EACb;EAEA,MAAMC,WAAW,GAAGd,kBAAkB,CAAET,eAAgB,CAAC;;EAEzD;EACA,MAAM;IAAEgB,eAAe;IAAEI,SAAS;IAAEjB,QAAQ;IAAEqB;EAAM,CAAC,GAAGT,UAAU;EAElE,MAAMU,eAAe,GAAKC,OAAO,IAChC,CAAExC,uBAAuB,CACxBc,eAAe,EACfF,iBAAiB,EACjB4B,OACD,CAAC;;EAEF;EACA;EACA;EACA,MAAMC,SAAS,GAAGF,eAAe,CAAE,MAAO,CAAC,GACxC5C,iBAAiB,CAAE,OAAO,EAAEuC,SAAU,CAAC,GACvCQ,SAAS;EAEZ,MAAMC,aAAa,GAAGJ,eAAe,CAAE,WAAY,CAAC,GACjD1C,8BAA8B,CAAEoB,QAAS,CAAC,GAC1CyB,SAAS;EAEZ,MAAME,eAAe,GAAGL,eAAe,CAAE,YAAa,CAAC,GACpD5C,iBAAiB,CAAE,kBAAkB,EAAEmC,eAAgB,CAAC,GACxDY,SAAS;EAEZ,MAAMG,sBAAsB,GAC3BN,eAAe,CAAE,YAAa,CAAC,IAAIA,eAAe,CAAE,WAAY,CAAC;EAClE,MAAMO,aAAa,GAClBhB,eAAe,IACfQ,KAAK,EAAES,KAAK,EAAE7B,UAAU,IACtBmB,WAAW,KAAMpB,QAAQ,IAAIqB,KAAK,EAAES,KAAK,EAAE9B,QAAQ,CAAI;EAE1D,MAAM+B,YAAY,GAAG5D,IAAI,CAAEgD,KAAK,CAACa,SAAS,EAAER,SAAS,EAAEE,aAAa,EAAE;IACrE;IACA,CAAEC,eAAe,GAChB,CAAE,CAAEP,WAAW,IAAI,CAAEC,KAAK,EAAES,KAAK,EAAE9B,QAAQ,KAAM,CAAC,CAAE2B,eAAe;IACpE,gBAAgB,EACfL,eAAe,CAAE,MAAO,CAAC,KAAML,SAAS,IAAII,KAAK,EAAES,KAAK,EAAE5B,IAAI,CAAE;IACjE,gBAAgB,EAAE0B,sBAAsB,IAAIC,aAAa;IACzD,gBAAgB,EACfP,eAAe,CAAE,MAAO,CAAC,IAAID,KAAK,EAAEY,QAAQ,EAAElC,IAAI,EAAE+B;EACtD,CAAE,CAAC;EACHX,KAAK,CAACa,SAAS,GAAGD,YAAY,GAAGA,YAAY,GAAGN,SAAS;EAEzD,OAAON,KAAK;AACb;AAEA,SAASe,iBAAiBA,CAAEb,KAAK,EAAG;EACnC,MAAMc,cAAc,GAAGd,KAAK,EAAES,KAAK,EAAE5B,IAAI;EACzC,MAAMkC,aAAa,GAAGD,cAAc,EAAEE,UAAU,CAAE,mBAAoB,CAAC,GACpEF,cAAc,CAACG,SAAS,CAAE,mBAAmB,CAACC,MAAO,CAAC,GACtDd,SAAS;EACZ,MAAMe,oBAAoB,GAAGnB,KAAK,EAAES,KAAK,EAAE7B,UAAU;EACrD,MAAMwC,mBAAmB,GAAGD,oBAAoB,EAAEH,UAAU,CAC3D,mBACD,CAAC,GACEG,oBAAoB,CAACF,SAAS,CAAE,mBAAmB,CAACC,MAAO,CAAC,GAC5Dd,SAAS;EACZ,MAAMiB,aAAa,GAAGrB,KAAK,EAAES,KAAK,EAAE9B,QAAQ;EAC5C,MAAM2C,YAAY,GAAGD,aAAa,EAAEL,UAAU,CAAE,sBAAuB,CAAC,GACrEK,aAAa,CAACJ,SAAS,CAAE,sBAAsB,CAACC,MAAO,CAAC,GACxDd,SAAS;EACZ,MAAMmB,YAAY,GAAG;IAAE,GAAGvB;EAAM,CAAC;EACjCuB,YAAY,CAACd,KAAK,GAAG;IACpB,GAAGc,YAAY,CAACd,KAAK;IACrB5B,IAAI,EAAEkC,aAAa,GAAGX,SAAS,GAAGU,cAAc;IAChDlC,UAAU,EAAEwC,mBAAmB,GAAGhB,SAAS,GAAGe,oBAAoB;IAClExC,QAAQ,EAAE2C,YAAY,GAAGlB,SAAS,GAAGiB;EACtC,CAAC;EACD,OAAO;IACNrB,KAAK,EAAExC,gBAAgB,CAAE+D,YAAa,CAAC;IACvC3B,SAAS,EAAEmB,aAAa;IACxBvB,eAAe,EAAE4B,mBAAmB;IACpCzC,QAAQ,EAAE2C;EACX,CAAC;AACF;AAEA,SAASE,iBAAiBA,CAAEjC,UAAU,EAAG;EACxC,OAAO;IACN,GAAGA,UAAU,CAACS,KAAK;IACnBS,KAAK,EAAE;MACN,GAAGlB,UAAU,CAACS,KAAK,EAAES,KAAK;MAC1B5B,IAAI,EAAEU,UAAU,CAACK,SAAS,GACvB,mBAAmB,GAAGL,UAAU,CAACK,SAAS,GAC1CL,UAAU,CAACS,KAAK,EAAES,KAAK,EAAE5B,IAAI;MAChCD,UAAU,EAAEW,UAAU,CAACC,eAAe,GACnC,mBAAmB,GAAGD,UAAU,CAACC,eAAe,GAChDD,UAAU,CAACS,KAAK,EAAES,KAAK,EAAE7B,UAAU;MACtCD,QAAQ,EAAEY,UAAU,CAACZ,QAAQ,GAC1B,sBAAsB,GAAGY,UAAU,CAACZ,QAAQ,GAC5CY,UAAU,CAACS,KAAK,EAAES,KAAK,EAAE9B;IAC7B;EACD,CAAC;AACF;AAEA,SAAS8C,qBAAqBA,CAAE;EAAEC,QAAQ;EAAEC;AAAe,CAAC,EAAG;EAC9D,MAAMC,wBAAwB,GAAGzE,WAAW,CACzCoC,UAAU,IAAM;IACjB,MAAMsC,aAAa,GAAGL,iBAAiB,CAAEjC,UAAW,CAAC;IACrD,MAAMgC,YAAY,GAAGI,cAAc,CAAEE,aAAc,CAAC;IACpD,OAAO;MACN,GAAGtC,UAAU;MACb,GAAGsB,iBAAiB,CAAEU,YAAa;IACpC,CAAC;EACF,CAAC,EACD,CAAEI,cAAc,CACjB,CAAC;EAED,oBACCtD,IAAA,CAACR,iBAAiB;IACjBiE,KAAK,EAAC,OAAO;IACbH,cAAc,EAAGC,wBAA0B;IAAAF,QAAA,EAEzCA;EAAQ,CACQ,CAAC;AAEtB;AAEA,OAAO,SAASK,SAASA,CAAE;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,aAAa;EAAE5C;AAAS,CAAC,EAAG;EACxE,MAAM6C,SAAS,GAAGrE,gBAAgB,CAAEwB,QAAS,CAAC;EAC9C,SAAS8C,QAAQA,CAAEC,MAAM,EAAG;IAC3B,MAAM;MAAErC,KAAK;MAAEJ,SAAS;MAAEJ,eAAe;MAAEb;IAAS,CAAC,GACpD0D,MAAM,CAAElE,gBAAiB,CAAC,CAACmE,kBAAkB,CAAEN,QAAS,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO;MAAEhC,KAAK;MAAEJ,SAAS;MAAEJ,eAAe;MAAEb;IAAS,CAAC;EACvD;EACA,MAAM;IAAEqB,KAAK;IAAEJ,SAAS;IAAEJ,eAAe;IAAEb;EAAS,CAAC,GAAGvB,SAAS,CAChEgF,QAAQ,EACR,CAAEJ,QAAQ,CACX,CAAC;EACD,MAAMO,KAAK,GAAGtF,OAAO,CAAE,MAAM;IAC5B,OAAOuE,iBAAiB,CAAE;MACzBxB,KAAK;MACLJ,SAAS;MACTJ,eAAe;MACfb;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEqB,KAAK,EAAEJ,SAAS,EAAEJ,eAAe,EAAEb,QAAQ,CAAG,CAAC;EAEpD,MAAM6D,QAAQ,GAAKC,QAAQ,IAAM;IAChCP,aAAa,CAAErB,iBAAiB,CAAE4B,QAAS,CAAE,CAAC;EAC/C,CAAC;EAED,IAAK,CAAEN,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMO,eAAe,GAAG1F,eAAe,CAAEiF,IAAI,EAAE,CAC9C3D,iBAAiB,EACjB,+BAA+B,CAC9B,CAAC;EAEH,MAAMqE,sBAAsB,GAC3BzF,QAAQ,CAAC8B,EAAE,KAAK,KAAK,IACrB,CAAEuD,KAAK,EAAE9B,KAAK,EAAE9B,QAAQ,KACtBW,QAAQ,EAAEmB,KAAK,EAAE5B,IAAI,IAAIS,QAAQ,EAAEmB,KAAK,EAAE/B,IAAI,CAAE;EAClD;EACA;EACA;EACA,KAAK,KACJ1B,eAAe,CAAEiF,IAAI,EAAE,CACtB3D,iBAAiB,EACjB,uBAAuB,CACtB,CAAC;EAEL,oBACCD,IAAA,CAACL,gBAAgB;IAChB4E,EAAE,EAAGnB,qBAAuB;IAC5BoB,OAAO,EAAGb,QAAU;IACpB1C,QAAQ,EAAGA,QAAU;IACrBiD,KAAK,EAAGA,KAAO;IACfC,QAAQ,EAAGA,QAAU;IACrBE,eAAe,EAAGA,eAAiB;IACnCI,qBAAqB,EACpB,KAAK,KACL9F,eAAe,CAAEiF,IAAI,EAAE,CACtB3D,iBAAiB,EACjB,uBAAuB,CACtB,CACF;IAAAoD,QAAA,EAECiB,sBAAsB,iBACvBtE,IAAA,CAACJ,yBAAyB;MAAC+D,QAAQ,EAAGA;IAAU,CAAE;EAClD,CACgB,CAAC;AAErB;AAEA,SAASe,aAAaA,CAAE;EACvBd,IAAI;EACJzC,eAAe;EACfI,SAAS;EACTjB,QAAQ;EACRqB;AACD,CAAC,EAAG;EACH,MAAM,CAAEgD,WAAW,EAAEC,YAAY,EAAEC,cAAc,CAAE,GAAGtF,WAAW,CAChE,sBAAsB,EACtB,qBAAqB,EACrB,uBACD,CAAC;EAED,MAAMuF,MAAM,GAAGlG,OAAO,CACrB,MAAM,CACL,IAAK+F,WAAW,IAAI,EAAE,CAAE,EACxB,IAAKC,YAAY,IAAI,EAAE,CAAE,EACzB,IAAKC,cAAc,IAAI,EAAE,CAAE,CAC3B,EACD,CAAEF,WAAW,EAAEC,YAAY,EAAEC,cAAc,CAC5C,CAAC;EACD,IACC,CAAE3E,eAAe,CAAE0D,IAAK,CAAC,IACzBvE,uBAAuB,CAAEuE,IAAI,EAAE3D,iBAAkB,CAAC,EACjD;IACD,OAAO,CAAC,CAAC;EACV;EACA,MAAM8E,WAAW,GAAG,CAAC,CAAC;EAEtB,IACCxD,SAAS,IACT,CAAElC,uBAAuB,CAAEuE,IAAI,EAAE3D,iBAAiB,EAAE,MAAO,CAAC,EAC3D;IACD8E,WAAW,CAAC3C,KAAK,GAAGnD,+BAA+B,CAClD6F,MAAM,EACNvD,SACD,CAAC,EAAEa,KAAK;EACT;EACA,IACCjB,eAAe,IACf,CAAE9B,uBAAuB,CAAEuE,IAAI,EAAE3D,iBAAiB,EAAE,YAAa,CAAC,EACjE;IACD8E,WAAW,CAAC5D,eAAe,GAAGlC,+BAA+B,CAC5D6F,MAAM,EACN3D,eACD,CAAC,EAAEiB,KAAK;EACT;EAEA,MAAM4C,SAAS,GAAGxD,YAAY,CAAE;IAAEG,KAAK,EAAEoD;EAAY,CAAC,EAAEnB,IAAI,EAAE;IAC7DrC,SAAS;IACTJ,eAAe;IACfb,QAAQ;IACRqB;EACD,CAAE,CAAC;EAEH,MAAMsD,kBAAkB,GACvB9D,eAAe,IACfQ,KAAK,EAAES,KAAK,EAAE7B,UAAU,IACxBD,QAAQ,IACRqB,KAAK,EAAES,KAAK,EAAE9B,QAAQ;EAEvB,OAAO;IACN,GAAG0E,SAAS;IACZ1C,SAAS,EAAE7D,IAAI,CACduG,SAAS,CAAC1C,SAAS;IACnB;IACA,CAAE2C,kBAAkB,IAAI3F,yBAAyB,CAAEqC,KAAM,CAC1D;EACD,CAAC;AACF;AAEA,eAAe;EACd+C,aAAa;EACblD,YAAY;EACZ0D,aAAa,EAAE,CAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAE;EACtEC,UAAU,EAAEjF;AACb,CAAC;AAED,MAAMkF,eAAe,GAAG;EACvBC,SAAS,EAAE,CAAE,CAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAE,CAAE;EAC/D9D,SAAS,EAAE,CAAE,CAAE,WAAW,CAAE,EAAE,CAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAE,CAAE;EAC5DJ,eAAe,EAAE,CAChB,CAAE,iBAAiB,CAAE,EACrB,CAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAE,CAClC;EACDb,QAAQ,EAAE,CAAE,CAAE,UAAU,CAAE,EAAE,CAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAE;AAC7D,CAAC;AAED,OAAO,SAASgF,aAAaA,CAAEC,MAAM,EAAEC,MAAM,EAAEC,KAAK,EAAEC,OAAO,EAAG;EAC/D,MAAMC,oBAAoB,GAAGJ,MAAM,CAAC3B,IAAI;EACxC,MAAMgC,cAAc,GAAG;IACtBP,SAAS,EAAE5E,mBAAmB,CAAEkF,oBAAqB,CAAC;IACtDpE,SAAS,EAAER,mBAAmB,CAAE4E,oBAAqB,CAAC;IACtDxE,eAAe,EAAEL,yBAAyB,CAAE6E,oBAAqB,CAAC;IAClErF,QAAQ,EAAEM,kBAAkB,CAAE+E,oBAAqB;EACpD,CAAC;EACD,OAAOvG,eAAe,CACrBwG,cAAc,EACdR,eAAe,EACfG,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,OACD,CAAC;AACF;AAEAhH,SAAS,CACR,0BAA0B,EAC1B,yBAAyB,EACzBsC,aACD,CAAC;AAEDtC,SAAS,CACR,2CAA2C,EAC3C,0BAA0B,EAC1B4G,aACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["clsx","addFilter","getBlockSupport","useMemo","Platform","useCallback","useSelect","getColorClassName","getColorObjectByAttributeValues","__experimentalGetGradientClass","cleanEmptyObject","transformStyles","shouldSkipSerialization","getBackgroundImageClasses","useSettings","InspectorControls","useHasColorPanel","default","StylesColorPanel","BlockColorContrastChecker","store","blockEditorStore","jsx","_jsx","COLOR_SUPPORT_KEY","hasColorSupport","blockNameOrType","colorSupport","link","gradient","background","text","hasLinkColorSupport","blockType","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","shouldSerialize","feature","textClass","undefined","gradientClass","backgroundClass","serializeHasBackground","hasBackground","color","newClassName","className","elements","styleToAttributes","textColorValue","textColorSlug","startsWith","substring","length","backgroundColorValue","backgroundColorSlug","gradientValue","gradientSlug","updatedStyle","attributesToStyle","ColorInspectorControl","children","resetAllFilter","attributesResetAllFilter","existingStyle","group","ColorEdit","clientId","name","setAttributes","isEnabled","selector","select","getBlockAttributes","value","onChange","newStyle","defaultControls","enableContrastChecking","as","panelId","enableContrastChecker","useBlockProps","userPalette","themePalette","defaultPalette","colors","extraStyles","saveProps","hasBackgroundValue","attributeKeys","hasSupport","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"sources":["@wordpress/block-editor/src/hooks/color.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { useMemo, Platform, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport { __experimentalGetGradientClass } from '../components/gradients';\nimport {\n\tcleanEmptyObject,\n\ttransformStyles,\n\tshouldSkipSerialization,\n} from './utils';\nimport { getBackgroundImageClasses } from './background';\nimport { useSettings } from '../components/use-settings';\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tuseHasColorPanel,\n\tdefault as StylesColorPanel,\n} from '../components/global-styles/color-panel';\nimport BlockColorContrastChecker from './contrast-checker';\nimport { store as blockEditorStore } from '../store';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockNameOrType ) => {\n\tconst colorSupport = getBlockSupport( blockNameOrType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.link\n\t);\n};\n\nconst hasGradientSupport = ( blockNameOrType ) => {\n\tconst colorSupport = getBlockSupport( blockNameOrType, COLOR_SUPPORT_KEY );\n\n\treturn (\n\t\tcolorSupport !== null &&\n\t\ttypeof colorSupport === 'object' &&\n\t\t!! colorSupport.gradients\n\t);\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object|string} blockNameOrType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockNameOrType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockNameOrType ) ||\n\t\tshouldSkipSerialization( blockNameOrType, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockNameOrType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst shouldSerialize = ( feature ) =>\n\t\t! shouldSkipSerialization(\n\t\t\tblockNameOrType,\n\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\tfeature\n\t\t);\n\n\t// Primary color classes must come before the `has-text-color`,\n\t// `has-background` and `has-link-color` classes to maintain backwards\n\t// compatibility and avoid block invalidations.\n\tconst textClass = shouldSerialize( 'text' )\n\t\t? getColorClassName( 'color', textColor )\n\t\t: undefined;\n\n\tconst gradientClass = shouldSerialize( 'gradients' )\n\t\t? __experimentalGetGradientClass( gradient )\n\t\t: undefined;\n\n\tconst backgroundClass = shouldSerialize( 'background' )\n\t\t? getColorClassName( 'background-color', backgroundColor )\n\t\t: undefined;\n\n\tconst serializeHasBackground =\n\t\tshouldSerialize( 'background' ) || shouldSerialize( 'gradients' );\n\tconst hasBackground =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\t( hasGradient && ( gradient || style?.color?.gradient ) );\n\n\tconst newClassName = clsx( props.className, textClass, gradientClass, {\n\t\t// Don't apply the background class if there's a custom gradient.\n\t\t[ backgroundClass ]:\n\t\t\t( ! hasGradient || ! style?.color?.gradient ) && !! backgroundClass,\n\t\t'has-text-color':\n\t\t\tshouldSerialize( 'text' ) && ( textColor || style?.color?.text ),\n\t\t'has-background': serializeHasBackground && hasBackground,\n\t\t'has-link-color':\n\t\t\tshouldSerialize( 'link' ) && style?.elements?.link?.color,\n\t} );\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\nfunction styleToAttributes( style ) {\n\tconst textColorValue = style?.color?.text;\n\tconst textColorSlug = textColorValue?.startsWith( 'var:preset|color|' )\n\t\t? textColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst backgroundColorValue = style?.color?.background;\n\tconst backgroundColorSlug = backgroundColorValue?.startsWith(\n\t\t'var:preset|color|'\n\t)\n\t\t? backgroundColorValue.substring( 'var:preset|color|'.length )\n\t\t: undefined;\n\tconst gradientValue = style?.color?.gradient;\n\tconst gradientSlug = gradientValue?.startsWith( 'var:preset|gradient|' )\n\t\t? gradientValue.substring( 'var:preset|gradient|'.length )\n\t\t: undefined;\n\tconst updatedStyle = { ...style };\n\tupdatedStyle.color = {\n\t\t...updatedStyle.color,\n\t\ttext: textColorSlug ? undefined : textColorValue,\n\t\tbackground: backgroundColorSlug ? undefined : backgroundColorValue,\n\t\tgradient: gradientSlug ? undefined : gradientValue,\n\t};\n\treturn {\n\t\tstyle: cleanEmptyObject( updatedStyle ),\n\t\ttextColor: textColorSlug,\n\t\tbackgroundColor: backgroundColorSlug,\n\t\tgradient: gradientSlug,\n\t};\n}\n\nfunction attributesToStyle( attributes ) {\n\treturn {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\ttext: attributes.textColor\n\t\t\t\t? 'var:preset|color|' + attributes.textColor\n\t\t\t\t: attributes.style?.color?.text,\n\t\t\tbackground: attributes.backgroundColor\n\t\t\t\t? 'var:preset|color|' + attributes.backgroundColor\n\t\t\t\t: attributes.style?.color?.background,\n\t\t\tgradient: attributes.gradient\n\t\t\t\t? 'var:preset|gradient|' + attributes.gradient\n\t\t\t\t: attributes.style?.color?.gradient,\n\t\t},\n\t};\n}\n\nfunction ColorInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributesToStyle( attributes );\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\t...styleToAttributes( updatedStyle ),\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"color\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function ColorEdit( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasColorPanel( settings );\n\tfunction selector( select ) {\n\t\tconst { style, textColor, backgroundColor, gradient } =\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId ) || {};\n\t\treturn { style, textColor, backgroundColor, gradient };\n\t}\n\tconst { style, textColor, backgroundColor, gradient } = useSelect(\n\t\tselector,\n\t\t[ clientId ]\n\t);\n\tconst value = useMemo( () => {\n\t\treturn attributesToStyle( {\n\t\t\tstyle,\n\t\t\ttextColor,\n\t\t\tbackgroundColor,\n\t\t\tgradient,\n\t\t} );\n\t}, [ style, textColor, backgroundColor, gradient ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( styleToAttributes( newStyle ) );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultControls = getBlockSupport( name, [\n\t\tCOLOR_SUPPORT_KEY,\n\t\t'defaultControls',\n\t] );\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' &&\n\t\t! value?.color?.gradient &&\n\t\t( settings?.color?.text || settings?.color?.link ) &&\n\t\t// Contrast checking is enabled by default.\n\t\t// Deactivating it requires `enableContrastChecker` to have\n\t\t// an explicit value of `false`.\n\t\tfalse !==\n\t\t\tgetBlockSupport( name, [\n\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t'enableContrastChecker',\n\t\t\t] );\n\n\treturn (\n\t\t<StylesColorPanel\n\t\t\tas={ ColorInspectorControl }\n\t\t\tpanelId={ clientId }\n\t\t\tsettings={ settings }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tdefaultControls={ defaultControls }\n\t\t\tenableContrastChecker={\n\t\t\t\tfalse !==\n\t\t\t\tgetBlockSupport( name, [\n\t\t\t\t\tCOLOR_SUPPORT_KEY,\n\t\t\t\t\t'enableContrastChecker',\n\t\t\t\t] )\n\t\t\t}\n\t\t>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<BlockColorContrastChecker clientId={ clientId } />\n\t\t\t) }\n\t\t</StylesColorPanel>\n\t);\n}\n\nfunction useBlockProps( {\n\tname,\n\tbackgroundColor,\n\ttextColor,\n\tgradient,\n\tstyle,\n} ) {\n\tconst [ userPalette, themePalette, defaultPalette ] = useSettings(\n\t\t'color.palette.custom',\n\t\t'color.palette.theme',\n\t\t'color.palette.default'\n\t);\n\n\tconst colors = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tif (\n\t\t! hasColorSupport( name ) ||\n\t\tshouldSkipSerialization( name, COLOR_SUPPORT_KEY )\n\t) {\n\t\treturn {};\n\t}\n\tconst extraStyles = {};\n\n\tif (\n\t\ttextColor &&\n\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'text' )\n\t) {\n\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\ttextColor\n\t\t)?.color;\n\t}\n\tif (\n\t\tbackgroundColor &&\n\t\t! shouldSkipSerialization( name, COLOR_SUPPORT_KEY, 'background' )\n\t) {\n\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t)?.color;\n\t}\n\n\tconst saveProps = addSaveProps( { style: extraStyles }, name, {\n\t\ttextColor,\n\t\tbackgroundColor,\n\t\tgradient,\n\t\tstyle,\n\t} );\n\n\tconst hasBackgroundValue =\n\t\tbackgroundColor ||\n\t\tstyle?.color?.background ||\n\t\tgradient ||\n\t\tstyle?.color?.gradient;\n\n\treturn {\n\t\t...saveProps,\n\t\tclassName: clsx(\n\t\t\tsaveProps.className,\n\t\t\t// Add background image classes in the editor, if not already handled by background color values.\n\t\t\t! hasBackgroundValue && getBackgroundImageClasses( style )\n\t\t),\n\t};\n}\n\nexport default {\n\tuseBlockProps,\n\taddSaveProps,\n\tattributeKeys: [ 'backgroundColor', 'textColor', 'gradient', 'style' ],\n\thasSupport: hasColorSupport,\n};\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"],"mappings":"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","ignoreList":[]}
@@ -75,8 +75,8 @@ export function DimensionsPanel({
75
75
  if (!isEnabled) {
76
76
  return null;
77
77
  }
78
- const defaultDimensionsControls = getBlockSupport(name, [DIMENSIONS_SUPPORT_KEY, '__experimentalDefaultControls']);
79
- const defaultSpacingControls = getBlockSupport(name, [SPACING_SUPPORT_KEY, '__experimentalDefaultControls']);
78
+ const defaultDimensionsControls = getBlockSupport(name, [DIMENSIONS_SUPPORT_KEY, 'defaultControls']);
79
+ const defaultSpacingControls = getBlockSupport(name, [SPACING_SUPPORT_KEY, 'defaultControls']);
80
80
  const defaultControls = {
81
81
  ...defaultDimensionsControls,
82
82
  ...defaultSpacingControls
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Platform","useState","useEffect","useCallback","useDispatch","useSelect","getBlockSupport","deprecated","InspectorControls","DimensionsPanel","StylesDimensionsPanel","useHasDimensionsPanel","MarginVisualizer","PaddingVisualizer","store","blockEditorStore","unlock","cleanEmptyObject","shouldSkipSerialization","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizer","property","setProperty","hideBlockInterface","showBlockInterface","DimensionsInspectorControl","children","resetAllFilter","attributesResetAllFilter","attributes","existingStyle","style","updatedStyle","group","clientId","name","setAttributes","settings","isEnabled","value","select","getBlockAttributes","visualizedProperty","setVisualizedProperty","onChange","newStyle","defaultDimensionsControls","defaultSpacingControls","defaultControls","as","panelId","onVisualize","spacing","padding","forceShow","margin","hasDimensionsSupport","blockName","feature","OS","support","aspectRatio","minHeight","useBlockProps","attributeKeys","hasSupport","className","dimensions","inlineStyleOverrides","useCustomSides","since","version"],"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useState, useEffect, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tDimensionsPanel as StylesDimensionsPanel,\n\tuseHasDimensionsPanel,\n} from '../components/global-styles';\nimport { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizer() {\n\tconst [ property, setProperty ] = useState( false );\n\tconst { hideBlockInterface, showBlockInterface } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tuseEffect( () => {\n\t\tif ( ! property ) {\n\t\t\tshowBlockInterface();\n\t\t} else {\n\t\t\thideBlockInterface();\n\t\t}\n\t}, [ property, showBlockInterface, hideBlockInterface ] );\n\n\treturn [ property, setProperty ];\n}\n\nfunction DimensionsInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributes.style;\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tstyle: updatedStyle,\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"dimensions\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function DimensionsPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasDimensionsPanel( settings );\n\tconst value = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\tconst [ visualizedProperty, setVisualizedProperty ] = useVisualizer();\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultSpacingControls = getBlockSupport( name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\tconst defaultControls = {\n\t\t...defaultDimensionsControls,\n\t\t...defaultSpacingControls,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<StylesDimensionsPanel\n\t\t\t\tas={ DimensionsInspectorControl }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tdefaultControls={ defaultControls }\n\t\t\t\tonVisualize={ setVisualizedProperty }\n\t\t\t/>\n\t\t\t{ !! settings?.spacing?.padding && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'padding' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! settings?.spacing?.margin && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'margin' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determine whether there is block support for dimensions.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Background image feature to check for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, DIMENSIONS_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! ( support?.aspectRatio || !! support?.minHeight );\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'minHeight', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasDimensionsSupport( name, 'aspectRatio' );\n\t},\n};\n\nfunction useBlockProps( { name, minHeight, style } ) {\n\tif (\n\t\t! hasDimensionsSupport( name, 'aspectRatio' ) ||\n\t\tshouldSkipSerialization( name, DIMENSIONS_SUPPORT_KEY, 'aspectRatio' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst className = clsx( {\n\t\t'has-aspect-ratio': !! style?.dimensions?.aspectRatio,\n\t} );\n\n\t// Allow dimensions-based inline style overrides to override any global styles rules that\n\t// might be set for the block, and therefore affect the display of the aspect ratio.\n\tconst inlineStyleOverrides = {};\n\n\t// Apply rules to unset incompatible styles.\n\t// Note that a set `aspectRatio` will win out if both an aspect ratio and a minHeight are set.\n\t// This is because the aspect ratio is a newer block support, so (in theory) any aspect ratio\n\t// that is set should be intentional and should override any existing minHeight. The Cover block\n\t// and dimensions controls have logic that will manually clear the aspect ratio if a minHeight\n\t// is set.\n\tif ( style?.dimensions?.aspectRatio ) {\n\t\t// To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule.\n\t\tinlineStyleOverrides.minHeight = 'unset';\n\t} else if ( minHeight || style?.dimensions?.minHeight ) {\n\t\t// To ensure the minHeight does not get overridden by `aspectRatio` unset any existing rule.\n\t\tinlineStyleOverrides.aspectRatio = 'unset';\n\t}\n\n\treturn { className, style: inlineStyleOverrides };\n}\n\n/**\n * @deprecated\n */\nexport function useCustomSides() {\n\tdeprecated( 'wp.blockEditor.__experimentalUseCustomSides', {\n\t\tsince: '6.3',\n\t\tversion: '6.4',\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Platform","useState","useEffect","useCallback","useDispatch","useSelect","getBlockSupport","deprecated","InspectorControls","DimensionsPanel","StylesDimensionsPanel","useHasDimensionsPanel","MarginVisualizer","PaddingVisualizer","store","blockEditorStore","unlock","cleanEmptyObject","shouldSkipSerialization","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DIMENSIONS_SUPPORT_KEY","SPACING_SUPPORT_KEY","ALL_SIDES","AXIAL_SIDES","useVisualizer","property","setProperty","hideBlockInterface","showBlockInterface","DimensionsInspectorControl","children","resetAllFilter","attributesResetAllFilter","attributes","existingStyle","style","updatedStyle","group","clientId","name","setAttributes","settings","isEnabled","value","select","getBlockAttributes","visualizedProperty","setVisualizedProperty","onChange","newStyle","defaultDimensionsControls","defaultSpacingControls","defaultControls","as","panelId","onVisualize","spacing","padding","forceShow","margin","hasDimensionsSupport","blockName","feature","OS","support","aspectRatio","minHeight","useBlockProps","attributeKeys","hasSupport","className","dimensions","inlineStyleOverrides","useCustomSides","since","version"],"sources":["@wordpress/block-editor/src/hooks/dimensions.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useState, useEffect, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\nimport {\n\tDimensionsPanel as StylesDimensionsPanel,\n\tuseHasDimensionsPanel,\n} from '../components/global-styles';\nimport { MarginVisualizer, PaddingVisualizer } from './spacing-visualizer';\nimport { store as blockEditorStore } from '../store';\nimport { unlock } from '../lock-unlock';\nimport { cleanEmptyObject, shouldSkipSerialization } from './utils';\n\nexport const DIMENSIONS_SUPPORT_KEY = 'dimensions';\nexport const SPACING_SUPPORT_KEY = 'spacing';\nexport const ALL_SIDES = [ 'top', 'right', 'bottom', 'left' ];\nexport const AXIAL_SIDES = [ 'vertical', 'horizontal' ];\n\nfunction useVisualizer() {\n\tconst [ property, setProperty ] = useState( false );\n\tconst { hideBlockInterface, showBlockInterface } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\tuseEffect( () => {\n\t\tif ( ! property ) {\n\t\t\tshowBlockInterface();\n\t\t} else {\n\t\t\thideBlockInterface();\n\t\t}\n\t}, [ property, showBlockInterface, hideBlockInterface ] );\n\n\treturn [ property, setProperty ];\n}\n\nfunction DimensionsInspectorControl( { children, resetAllFilter } ) {\n\tconst attributesResetAllFilter = useCallback(\n\t\t( attributes ) => {\n\t\t\tconst existingStyle = attributes.style;\n\t\t\tconst updatedStyle = resetAllFilter( existingStyle );\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tstyle: updatedStyle,\n\t\t\t};\n\t\t},\n\t\t[ resetAllFilter ]\n\t);\n\n\treturn (\n\t\t<InspectorControls\n\t\t\tgroup=\"dimensions\"\n\t\t\tresetAllFilter={ attributesResetAllFilter }\n\t\t>\n\t\t\t{ children }\n\t\t</InspectorControls>\n\t);\n}\n\nexport function DimensionsPanel( { clientId, name, setAttributes, settings } ) {\n\tconst isEnabled = useHasDimensionsPanel( settings );\n\tconst value = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockAttributes( clientId )?.style,\n\t\t[ clientId ]\n\t);\n\tconst [ visualizedProperty, setVisualizedProperty ] = useVisualizer();\n\tconst onChange = ( newStyle ) => {\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t} );\n\t};\n\n\tif ( ! isEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst defaultDimensionsControls = getBlockSupport( name, [\n\t\tDIMENSIONS_SUPPORT_KEY,\n\t\t'defaultControls',\n\t] );\n\tconst defaultSpacingControls = getBlockSupport( name, [\n\t\tSPACING_SUPPORT_KEY,\n\t\t'defaultControls',\n\t] );\n\tconst defaultControls = {\n\t\t...defaultDimensionsControls,\n\t\t...defaultSpacingControls,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<StylesDimensionsPanel\n\t\t\t\tas={ DimensionsInspectorControl }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tsettings={ settings }\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tdefaultControls={ defaultControls }\n\t\t\t\tonVisualize={ setVisualizedProperty }\n\t\t\t/>\n\t\t\t{ !! settings?.spacing?.padding && (\n\t\t\t\t<PaddingVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'padding' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! settings?.spacing?.margin && (\n\t\t\t\t<MarginVisualizer\n\t\t\t\t\tforceShow={ visualizedProperty === 'margin' }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\n/**\n * Determine whether there is block support for dimensions.\n *\n * @param {string} blockName Block name.\n * @param {string} feature Background image feature to check for.\n *\n * @return {boolean} Whether there is support.\n */\nexport function hasDimensionsSupport( blockName, feature = 'any' ) {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst support = getBlockSupport( blockName, DIMENSIONS_SUPPORT_KEY );\n\n\tif ( support === true ) {\n\t\treturn true;\n\t}\n\n\tif ( feature === 'any' ) {\n\t\treturn !! ( support?.aspectRatio || !! support?.minHeight );\n\t}\n\n\treturn !! support?.[ feature ];\n}\n\nexport default {\n\tuseBlockProps,\n\tattributeKeys: [ 'minHeight', 'style' ],\n\thasSupport( name ) {\n\t\treturn hasDimensionsSupport( name, 'aspectRatio' );\n\t},\n};\n\nfunction useBlockProps( { name, minHeight, style } ) {\n\tif (\n\t\t! hasDimensionsSupport( name, 'aspectRatio' ) ||\n\t\tshouldSkipSerialization( name, DIMENSIONS_SUPPORT_KEY, 'aspectRatio' )\n\t) {\n\t\treturn {};\n\t}\n\n\tconst className = clsx( {\n\t\t'has-aspect-ratio': !! style?.dimensions?.aspectRatio,\n\t} );\n\n\t// Allow dimensions-based inline style overrides to override any global styles rules that\n\t// might be set for the block, and therefore affect the display of the aspect ratio.\n\tconst inlineStyleOverrides = {};\n\n\t// Apply rules to unset incompatible styles.\n\t// Note that a set `aspectRatio` will win out if both an aspect ratio and a minHeight are set.\n\t// This is because the aspect ratio is a newer block support, so (in theory) any aspect ratio\n\t// that is set should be intentional and should override any existing minHeight. The Cover block\n\t// and dimensions controls have logic that will manually clear the aspect ratio if a minHeight\n\t// is set.\n\tif ( style?.dimensions?.aspectRatio ) {\n\t\t// To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule.\n\t\tinlineStyleOverrides.minHeight = 'unset';\n\t} else if ( minHeight || style?.dimensions?.minHeight ) {\n\t\t// To ensure the minHeight does not get overridden by `aspectRatio` unset any existing rule.\n\t\tinlineStyleOverrides.aspectRatio = 'unset';\n\t}\n\n\treturn { className, style: inlineStyleOverrides };\n}\n\n/**\n * @deprecated\n */\nexport function useCustomSides() {\n\tdeprecated( 'wp.blockEditor.__experimentalUseCustomSides', {\n\t\tsince: '6.3',\n\t\tversion: '6.4',\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -70,12 +70,12 @@ function addAttribute(settings) {
70
70
  * @type {Record<string, string[]>}
71
71
  */
72
72
  const skipSerializationPathsEdit = {
73
- [`${BORDER_SUPPORT_KEY}.__experimentalSkipSerialization`]: ['border'],
74
- [`${COLOR_SUPPORT_KEY}.__experimentalSkipSerialization`]: [COLOR_SUPPORT_KEY],
75
- [`${TYPOGRAPHY_SUPPORT_KEY}.__experimentalSkipSerialization`]: [TYPOGRAPHY_SUPPORT_KEY],
76
- [`${DIMENSIONS_SUPPORT_KEY}.__experimentalSkipSerialization`]: [DIMENSIONS_SUPPORT_KEY],
77
- [`${SPACING_SUPPORT_KEY}.__experimentalSkipSerialization`]: [SPACING_SUPPORT_KEY],
78
- [`${SHADOW_SUPPORT_KEY}.__experimentalSkipSerialization`]: [SHADOW_SUPPORT_KEY]
73
+ [`${BORDER_SUPPORT_KEY}.skipSerialization`]: ['border'],
74
+ [`${COLOR_SUPPORT_KEY}.skipSerialization`]: [COLOR_SUPPORT_KEY],
75
+ [`${TYPOGRAPHY_SUPPORT_KEY}.skipSerialization`]: [TYPOGRAPHY_SUPPORT_KEY],
76
+ [`${DIMENSIONS_SUPPORT_KEY}.skipSerialization`]: [DIMENSIONS_SUPPORT_KEY],
77
+ [`${SPACING_SUPPORT_KEY}.skipSerialization`]: [SPACING_SUPPORT_KEY],
78
+ [`${SHADOW_SUPPORT_KEY}.skipSerialization`]: [SHADOW_SUPPORT_KEY]
79
79
  };
80
80
 
81
81
  /**